/* ============================================================
   DS Editing — écran « Choose your language » (accueil)
   Affiché tant qu'aucune langue n'est enregistrée (localStorage ds_lang) ou si l'URL ne porte pas ?lang=xx.
   Charte : docs/CHARTE.md (verre, Geist, accent blanc-chrome).
   ============================================================ */
html:not(.lang-ok) body{overflow:hidden}
html.lang-ok .lgate{display:none}
.lgate{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:24px 16px;
  background:radial-gradient(1100px 650px at 80% -10%,rgba(125,155,195,.22),transparent 60%),radial-gradient(900px 600px at -10% 110%,rgba(160,170,185,.10),transparent 60%),rgba(5,6,7,.78);
  -webkit-backdrop-filter:blur(34px) saturate(1.5);backdrop-filter:blur(34px) saturate(1.5);
  font-family:'Geist',system-ui,-apple-system,sans-serif;color:#F5F5F1;-webkit-font-smoothing:antialiased;
  transition:opacity .55s cubic-bezier(.2,.7,.2,1),visibility .55s}
.lgate.out{opacity:0;visibility:hidden}
.lgate.out .lgate-in{transform:scale(1.04);filter:blur(6px)}
.lgate-in{width:100%;max-width:680px;text-align:center;transition:transform .55s cubic-bezier(.2,.7,.2,1),filter .55s;animation:lgIn .9s cubic-bezier(.2,.7,.2,1) both}
@keyframes lgIn{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
.lgate-logo{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:22px;letter-spacing:-.04em;line-height:1;color:#F5F5F1}
.lgate-logo i{width:9px;height:9px;border-radius:50%;background:#DCE3EA;box-shadow:0 0 12px #DCE3EA;animation:lgBlink 1.6s infinite;margin-right:2px}
.lgate-logo em{font-style:normal;font-size:11px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:#9AA3AD;margin-left:2px}
@keyframes lgBlink{50%{opacity:.2}}
.lgate-t{position:relative;height:1.1em;margin:34px 0 10px;font-size:clamp(34px,7vw,60px);font-weight:600;letter-spacing:-.035em;line-height:1.05}
.lgate-t span{position:absolute;left:0;right:0;top:0;white-space:nowrap;opacity:0;transform:translateY(10px);transition:opacity .6s,transform .6s cubic-bezier(.2,.7,.2,1);
  background:linear-gradient(180deg,#FFFFFF 0%,#E3E7EC 38%,#9BA4AE 72%,#D6DBE0 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.lgate-t span.on{opacity:1;transform:none}
.lgate-s{margin:0 0 34px;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#9AA3AD}
.lgate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.lgate-grid button{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:76px;padding:0 22px;border-radius:22px;cursor:pointer;text-align:left;
  font:inherit;color:#F5F5F1;background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.10);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);transition:border-color .2s,background .2s,transform .2s}
.lgate-grid button:hover,.lgate-grid button:focus-visible{border-color:rgba(220,230,240,.45);background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,.04));transform:translateY(-2px);outline:none}
.lgate-grid button:focus-visible{box-shadow:0 0 0 3px rgba(220,227,234,.18)}
.lgate-grid b{display:block;font-size:20px;font-weight:600;letter-spacing:-.02em}
.lgate-grid small{display:block;margin-top:3px;font-size:13px;color:#9AA3AD}
.lgate-grid .code{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.08em;color:#9AA3AD;border:1px solid rgba(255,255,255,.12);transition:background .2s,color .2s}
.lgate-grid button:hover .code,.lgate-grid button:focus-visible .code{background:linear-gradient(180deg,#FFFFFF,#C9D0D7);color:#0A0B0D;border-color:transparent}
.lgate-grid button.sug{border-color:rgba(220,230,240,.32)}
.lgate-grid button.sug small::after{content:" · " attr(data-sug)}
.lgate-f{margin:30px 0 0;font-size:12px;color:rgba(154,163,173,.75)}
@media(max-width:560px){.lgate-grid{grid-template-columns:minmax(0,1fr)}.lgate-grid button{min-height:66px}.lgate-t{margin-top:26px}.lgate-s{margin-bottom:26px}}
@media(prefers-reduced-motion:reduce){.lgate,.lgate-in,.lgate-t span,.lgate-grid button{transition:none;animation:none}}
/* Choix de la langue dans le menu mobile (le sélecteur EN/FR/NL/DA de l'en-tête est masqué sous 600 px) */
.mm .ml-lang{display:inline-flex;align-items:center;gap:8px}
