/* One continuous, theme-aware language transition across the full page reload. */
html[data-sv-locale-motion] .sv-page-curtain{display:none!important}
html[data-sv-locale-motion="arrival"] body{visibility:hidden}
html[data-sv-locale-motion="arrival"] .sv-locale-stage{visibility:visible}
.sv-locale-stage{position:fixed;inset:0;z-index:2147483500;overflow:hidden;display:grid;place-items:center;isolation:isolate;color:#fff;background:#313131;background-image:linear-gradient(120deg,#0005,#0002),var(--sv-theme-gradient,linear-gradient(115deg,#500d20,#a92246));animation:sv-locale-cover .48s cubic-bezier(.22,1,.36,1) both;cursor:progress}
.sv-locale-content{position:relative;z-index:2;text-align:center;padding:28px;animation:sv-locale-rise .65s cubic-bezier(.22,1,.36,1) both}
.sv-locale-brand{display:block;font:600 17px Georgia,serif;letter-spacing:.04em;color:#fff}
.sv-locale-route{display:flex;align-items:center;justify-content:center;gap:18px;margin:32px 0 22px;font:600 13px/1.4 Arial,sans-serif;letter-spacing:.14em;color:#fff}
.sv-locale-route>span:first-child{color:#fff}.sv-locale-route>strong{display:grid;place-items:center;width:46px;height:46px;border:1px solid #ffffff85;border-radius:50%;background:#ffffff16}
.sv-locale-track{position:relative;width:100px;height:1px;background:#ffffff65}.sv-locale-track i{position:absolute;width:7px;height:7px;top:-3px;left:0;border-radius:50%;background:white;box-shadow:0 0 15px #fff;animation:sv-locale-travel .75s cubic-bezier(.25,.8,.25,1) both}
.sv-locale-greeting{overflow:hidden}.sv-locale-greeting span{display:block;font:600 clamp(54px,9vw,102px)/1.15 Georgia,serif;letter-spacing:-.045em;color:#fff;animation:sv-locale-word .65s .1s cubic-bezier(.22,1,.36,1) both}
.sv-locale-caption{display:block;margin-top:20px;font:400 13px/1.5 Arial,sans-serif;letter-spacing:.2em;color:#fff}
.sv-locale-orbit{position:absolute;width:min(85vw,920px);aspect-ratio:1;border:1px solid #ffffff28;border-radius:50%;transform:rotateX(58deg) rotate(-28deg);animation:sv-locale-orbit 4s linear infinite;pointer-events:none}.sv-locale-orbit.second{width:min(110vw,1200px);border-color:#ffffff15;animation-direction:reverse}
.sv-locale-shine{position:absolute;inset:-50%;background:linear-gradient(105deg,transparent 40%,#ffffff15 49%,transparent 58%);animation:sv-locale-light 1.5s ease-out both;pointer-events:none}
.sv-locale-stage.is-arrival{animation:none}.sv-locale-stage.is-arrival .sv-locale-content,.sv-locale-stage.is-arrival .sv-locale-greeting span,.sv-locale-stage.is-arrival .sv-locale-track i{animation:none}.sv-locale-stage.is-arrival .sv-locale-track i{left:calc(100% - 7px)}
.sv-locale-stage.is-revealing{animation:sv-locale-uncover .85s cubic-bezier(.76,0,.24,1) both}.sv-locale-stage.is-revealing .sv-locale-content{animation:sv-locale-farewell .5s ease-in both}
html[data-sv-locale-motion="arrival"]:has(.is-revealing) body{visibility:visible}
@keyframes sv-locale-cover{from{clip-path:polygon(0 100%,100% 100%,100% 100%,0 100%)}to{clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}}
@keyframes sv-locale-uncover{from{clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}to{clip-path:polygon(0 0,100% 0,100% 0,0 0)}}
@keyframes sv-locale-rise{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
@keyframes sv-locale-word{from{transform:translateY(110%) rotate(3deg)}to{transform:none}}
@keyframes sv-locale-farewell{to{opacity:0;transform:translateY(-24px)}}
@keyframes sv-locale-travel{to{left:calc(100% - 7px)}}
@keyframes sv-locale-light{from{transform:translateX(-45%)}to{transform:translateX(45%)}}
@keyframes sv-locale-orbit{to{transform:rotateX(58deg) rotate(332deg)}}
@media(max-width:600px){.sv-locale-orbit{width:120vw}.sv-locale-orbit.second{width:160vw}.sv-locale-route{margin-top:24px}}
@media(prefers-reduced-motion:reduce){.sv-locale-stage{display:none!important}html[data-sv-locale-motion] body{visibility:visible!important}}
@media print{.sv-locale-stage{display:none!important}}

/* A visible translation: the original greeting gives way to the selected language. */
.sv-locale-world{position:relative;width:112px;height:112px;margin:24px auto 0;perspective:350px}
.sv-locale-world svg{width:100%;height:100%;opacity:.7;animation:sv-locale-globe-turn 1.15s cubic-bezier(.22,.7,.3,1) both}
.sv-locale-world-light{position:absolute;left:50%;top:50%;width:6px;height:6px;border-radius:50%;background:white;box-shadow:0 0 18px 4px #ffffff50;animation:sv-locale-globe-route 1.1s ease-in-out both}
.sv-locale-route{margin:20px 0 24px;gap:20px}
.sv-locale-code{display:flex!important;gap:8px;align-items:center;justify-content:center}
.sv-locale-route>strong{width:auto;height:40px;padding:0 13px;border-radius:24px}
.sv-locale-flag{width:23px;height:15px;display:inline-block;border-radius:3px;box-shadow:0 0 0 1px #ffffff50}
.flag-fr{background:linear-gradient(90deg,#193f91 0 33.33%,#fff 33.33% 66.66%,#d13c4a 66.66%)}
.flag-en{background:linear-gradient(0deg,transparent 38%,#c83c4b 38% 62%,transparent 62%),linear-gradient(90deg,transparent 43%,#c83c4b 43% 57%,transparent 57%),linear-gradient(0deg,transparent 30%,white 30% 70%,transparent 70%),linear-gradient(90deg,transparent 35%,white 35% 65%,transparent 65%),linear-gradient(32deg,transparent 42%,white 42% 48%,#c83c4b 48% 52%,white 52% 58%,transparent 58%),linear-gradient(-32deg,#223f78 42%,white 42% 48%,#c83c4b 48% 52%,white 52% 58%,#223f78 58%)}
.sv-locale-greeting{display:grid;perspective:500px;min-width:min(80vw,520px)}
.sv-locale-greeting span{grid-area:1/1;backface-visibility:hidden;transform-origin:center center}
.sv-locale-greeting .sv-locale-word-out{animation:sv-locale-translate-out .55s .25s cubic-bezier(.65,0,.35,1) both}
.sv-locale-greeting .sv-locale-word-in{animation:sv-locale-translate-in .65s .5s cubic-bezier(.22,1,.36,1) both}
.sv-locale-caption{letter-spacing:.06em;animation:sv-locale-caption .5s .65s both}
.sv-locale-stage.is-arrival .sv-locale-word-out{display:none}
.sv-locale-stage.is-arrival .sv-locale-word-in,.sv-locale-stage.is-arrival .sv-locale-caption{animation:none}
.sv-locale-stage.is-arrival .sv-locale-world svg{animation:none;transform:rotateY(180deg)}
.sv-locale-stage.is-arrival .sv-locale-world-light{animation:none;transform:translate(35px,-18px)}
@keyframes sv-locale-translate-out{0%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-65%) rotateX(60deg)}}
@keyframes sv-locale-translate-in{0%{opacity:0;transform:translateY(75%) rotateX(-60deg)}100%{opacity:1;transform:none}}
@keyframes sv-locale-globe-turn{from{transform:rotateY(-35deg)}to{transform:rotateY(180deg)}}
@keyframes sv-locale-globe-route{0%{transform:translate(-40px,10px);opacity:0}25%{opacity:1}60%{transform:translate(0,-38px)}100%{transform:translate(35px,-18px)}}
@keyframes sv-locale-caption{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:600px){.sv-locale-world{width:88px;height:88px;margin-top:20px}.sv-locale-content{padding:20px}.sv-locale-greeting span{font-size:clamp(46px,13vw,72px)}}
