/* Source Serif 4 : titres uniquement (voir --disp) — Inter reste la police de
   corps/interface (déjà chargée par les pages). Chargée ici en CSS pur pour
   respecter la règle "aucune modification du DOM". */
@import url('https://fonts.googleapis.com/css2?family=Source+Serif+4:opsz,wght@8..60,500;8..60,600;8..60,700&display=swap');

/* ═══════════════════════════════════════════════════════════════════════
   DIRECTION ARTISTIQUE — dossier d'enquête, nuit de crise
   Fond quasi-noir chaud (jamais bleu/gris froid) + texte sable, dans l'esprit
   de la charte NormIAnce, mais avec l'identité couleur EscapeIT conservée.
   Deux couches de tokens :
   1) Surfaces/texte : sombre par défaut, [data-mode="light"] = variante claire.
   2) Accent de marque : bloc ACCENT ci-dessous, swappable en un bloc.
      - défaut ......... vert EscapeIT (identité actuelle du site)
      - [data-theme="ambre"] . ambre / vert bouteille (palette NormIAnce)
   ═══════════════════════════════════════════════════════════════════════ */
:root{
    /* --- Surfaces & texte (sombre, défaut) --- */
    /* Neutres, sans teinte de marque : seul l'accent doit porter la couleur,
       pour que les presets restent interchangeables sans que cartes/bordures
       se fondent dans l'accent actif. */
    --color-bg-primary:#0B0C0B; --color-bg-secondary:#17181A;
    --color-text-primary:#F2EEE3; --color-text-secondary:#ACADA6;
    --color-border:#2A2B29;
    --ink:var(--color-bg-primary); --bg2:var(--color-bg-secondary); --panel:var(--color-bg-secondary); --panel2:#1F2022; --line:var(--color-border); --line2:#3A3C3A;
    --txt:var(--color-text-primary); --txt2:var(--color-text-secondary); --muted:var(--color-text-secondary); --dim:#727369;
    --shadow:rgba(0,0,0,.55);
    --ring: inset 0 0 0 1px rgba(242,238,227,.055);

    /* --- ACCENT (bloc à remplacer pour changer d'identité de marque) ---
       Preset actif : vert EscapeIT (identité actuelle, inchangée). */
    --color-accent-primary:#0F6B4C; --color-accent-hover:#0B5039;
    --accent:var(--color-accent-primary); --accent2:var(--color-accent-hover);
    --safe:#1E8E5A; --danger:#E5484D; --ink-on-accent:#F2EEE3;
    --glow:rgba(15,107,76,.12);

    --sans:"Inter",system-ui,sans-serif; --disp:"Source Serif 4",Georgia,serif; --mono:"JetBrains Mono",ui-monospace,monospace;
    --maxw:1120px; --r:16px;
  }
  /* --- Preset alternatif : ambre / vert bouteille (NormIAnce) — <html data-theme="ambre"> --- */
  html[data-theme="ambre"]{ --accent:#D4621C; --accent2:#E8752A; --safe:#3AA56B; --ink-on-accent:#0B0C0A; --glow:rgba(212,98,28,.10); }

  /* --- Variante claire, optionnelle (bascule .mode-toggle) --- */
  html[data-mode="light"]{
    --ink:#FFFFFF; --bg2:#F6F5F0; --panel:#FFFFFF; --panel2:#F6F5F0; --line:#E5E1D6; --line2:#D3CDBC;
    --txt:#181A14; --txt2:#54584C; --muted:#54584C; --dim:#8B8F80; --shadow:rgba(21,24,15,.08);
    --ring: inset 0 0 0 1px rgba(24,26,20,.04);
  }
  *{box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{margin:0;color:var(--txt);font-family:var(--sans);line-height:1.6;background:var(--ink);
    background-image:radial-gradient(1100px 620px at 82% -12%, var(--glow), transparent 60%),
      radial-gradient(800px 540px at -8% 4%, rgba(242,238,227,.035), transparent 60%);
    -webkit-font-smoothing:antialiased}
  .grid-bg{position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.4;
    background-image:linear-gradient(rgba(242,238,227,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(242,238,227,.05) 1px,transparent 1px);
    background-size:60px 60px;-webkit-mask-image:radial-gradient(circle at 50% 25%,#000,transparent 82%);mask-image:radial-gradient(circle at 50% 25%,#000,transparent 82%)}
  html[data-mode="light"] .grid-bg{
    background-image:linear-gradient(rgba(15,23,42,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(15,23,42,.035) 1px,transparent 1px)}
  /* Titre en dégradé ambre → vert (mots clés du H1, façon NormIAnce) */
  .grad-text{background-image:linear-gradient(100deg,var(--txt),var(--accent2) 55%,var(--accent));-webkit-background-clip:text;background-clip:text;color:transparent}
  a{color:inherit;text-decoration:none}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px}
  .eyebrow{font-family:var(--mono);font-size:12.5px;letter-spacing:.01em;color:var(--muted);position:relative;padding-left:15px}
  .eyebrow::before{content:"";position:absolute;left:0;top:.55em;width:9px;height:2px;background:var(--accent)}
  h1,h2,h3{font-family:var(--disp);font-weight:600;letter-spacing:-.005em;margin:0}
  h1{font-size:clamp(38px,6.2vw,64px);line-height:1.05;letter-spacing:-.01em}
  h2{font-size:clamp(26px,3.6vw,40px);line-height:1.14}
  h3{font-size:19px;font-weight:600}
  p{margin:0}
  .lead{font-size:clamp(17px,1.9vw,20px);color:var(--txt2);max-width:58ch}
  .muted{color:var(--muted)}
  .btn{display:inline-flex;align-items:center;gap:.55em;font-family:var(--sans);font-weight:600;border-radius:8px;padding:13px 20px;border:1px solid transparent;cursor:pointer;transition:background .2s,border-color .2s,color .2s;font-size:15px}
  .btn:active{transform:translateY(1px)}
  .btn-accent{background:var(--accent);color:var(--ink-on-accent)}
  .btn-accent:hover{background:var(--accent2)}
  .btn-ghost{border-color:var(--line);color:var(--txt);background:var(--panel)}
  .btn-ghost:hover{border-color:var(--accent);color:var(--accent)}
  .btn-lg{padding:16px 26px;font-size:17px}
  .nav{position:sticky;top:0;z-index:30;backdrop-filter:blur(10px);background:color-mix(in srgb,var(--ink) 72%,transparent);border-bottom:1px solid var(--line)}
  .nav .row{display:flex;align-items:center;gap:22px;height:62px}
  .brand{display:flex;align-items:center;gap:11px;font-family:var(--disp);font-weight:700;font-size:18px}
  .brand svg{filter:drop-shadow(0 0 8px var(--glow))}
  .nav .links{display:flex;gap:22px;margin-left:8px}
  .nav .links a{font-size:14px;color:var(--muted)}
  .nav .links a:hover{color:var(--txt)}
  .nav .sp{margin-left:auto}
  .theme{display:flex;align-items:center;gap:7px;margin-right:4px}
  .theme span{font-family:var(--mono);font-size:11px;color:var(--dim)}
  .theme button{width:18px;height:18px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0}
  .theme button[aria-pressed="true"]{border-color:var(--txt)}
  .sw-aurore{background:#059669}.sw-cobalt{background:#5b8cff}.sw-emeraude{background:#059669}
  .mode-toggle{width:30px;height:30px;border-radius:9px;border:1px solid var(--line);background:var(--panel);color:var(--muted);cursor:pointer;display:grid;place-items:center;margin-left:2px}
  .mode-toggle:hover{color:var(--txt);border-color:var(--line2)}
  .mode-toggle .i-sun{display:none}
  html[data-mode="light"] .mode-toggle .i-sun{display:block}
  html[data-mode="light"] .mode-toggle .i-moon{display:none}
  section{padding:88px 0}
  .sec-head{max-width:62ch;margin-bottom:38px}
  .sec-head h2{margin:.25em 0 .35em}
  .hero{padding:60px 0 40px}
  .hero .grid{display:grid;grid-template-columns:1.08fr .92fr;gap:44px;align-items:center}
  .hero h1{margin:.25em 0 .3em}
  .hero h1 .hl{background-image:linear-gradient(transparent 62%, color-mix(in srgb,var(--accent) 22%, transparent) 62%);color:var(--txt)}
  .hero .cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px}
  .trust{margin-top:18px;display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:12px;color:var(--dim)}
  .trust .d{width:6px;height:6px;border-radius:50%;background:var(--safe);box-shadow:0 0 8px var(--safe)}
  /* fenêtre d'app + aperçu de scène */
  .win{border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,var(--panel),var(--panel2));overflow:hidden;box-shadow:0 24px 48px -24px var(--shadow),var(--ring)}
  .win .chrome{display:flex;align-items:center;gap:8px;padding:11px 14px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.02)}
  .win .chrome i{width:10px;height:10px;border-radius:50%;background:#31425e}
  .win .chrome i:first-child{background:#e0575b}.win .chrome i:nth-child(2){background:#e2a83a}.win .chrome i:nth-child(3){background:#49c3a6}
  .win .chrome .t{margin-left:8px;font-family:var(--mono);font-size:11.5px;color:var(--dim)}
  .stage{position:relative;aspect-ratio:16/10;background:radial-gradient(120% 90% at 50% 0%,#16233c,#0b1424 70%)}
  .stage svg{position:absolute;inset:0;width:100%;height:100%}
  .hud{position:absolute;left:0;right:0;top:0;display:flex;align-items:center;gap:10px;padding:10px 12px;z-index:3}
  .hud .chip{font-family:var(--mono);font-size:11px;color:var(--txt);background:rgba(6,12,22,.72);border:1px solid var(--line);border-radius:8px;padding:4px 8px}
  .hud .pips{display:flex;gap:5px;margin-left:auto}
  .hud .pips b{width:22px;height:6px;border-radius:3px;background:var(--line)}
  .hud .pips b.on{background:var(--safe);box-shadow:0 0 8px var(--safe)}
  .hot{position:absolute;width:26px;height:26px;border-radius:50%;transform:translate(-50%,-50%);z-index:4;cursor:pointer}
  .hot::before{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--accent);opacity:.9}
  .hot::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid var(--accent);opacity:.5;animation:pulse 2.4s ease-out infinite}
  @keyframes pulse{0%{transform:scale(.6);opacity:.7}100%{transform:scale(1.5);opacity:0}}
  @media (prefers-reduced-motion:reduce){.hot::after{animation:none}}
  .tray{position:absolute;left:0;right:0;bottom:0;display:flex;gap:8px;padding:10px 12px;z-index:3}
  .tray .tk{font-family:var(--mono);font-size:11px;color:var(--safe);border:1px solid color-mix(in srgb,var(--safe) 40%,transparent);background:color-mix(in srgb,var(--safe) 12%,transparent);border-radius:8px;padding:4px 8px}
  /* steps */
  .steps{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
  .step{border:1px solid var(--line);border-radius:var(--r);padding:22px;background:var(--panel);box-shadow:var(--ring)}
  .step .n{font-family:var(--disp);font-weight:600;font-size:30px;color:var(--line2);line-height:1}
  .step .ic{width:40px;height:40px;display:grid;place-items:center;color:var(--accent);margin:10px 0 12px}
  .step h3{margin-bottom:6px}.step p{color:var(--txt2);font-size:14.5px}
  .step .tag{margin-top:12px;font-family:var(--mono);font-size:11px;color:var(--accent);letter-spacing:.08em}
  /* teaser mail */
  .teaser{display:grid;grid-template-columns:1.2fr .8fr;gap:22px;align-items:start}
  @media(max-width:900px){.teaser{grid-template-columns:1fr}}
  .mailwin{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:linear-gradient(180deg,var(--panel),var(--panel2));box-shadow:0 20px 40px -24px var(--shadow)}
  .mailwin .tb{display:flex;align-items:center;gap:14px;padding:10px 14px;border-bottom:1px solid var(--line);color:var(--dim)}
  .mailwin .tb svg{opacity:.7}
  .mailwin .tb .sp{margin-left:auto;font-family:var(--mono);font-size:11px}
  .mailwin .head{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;gap:12px;align-items:flex-start}
  .avatar{width:40px;height:40px;border-radius:50%;flex:none;display:grid;place-items:center;font-family:var(--disp);font-weight:700;color:#fff;background:linear-gradient(135deg,#64748B,#334155)}
  .head .who{font-size:14px}.head .who b{color:var(--txt)}.head .when{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--dim)}
  .subj{padding:12px 18px 0;font-size:15px;color:var(--txt2)}
  .body{padding:12px 18px 18px;color:var(--txt2);font-size:14.5px}
  .clk{border-bottom:1px dashed var(--line2);cursor:pointer;padding:1px 3px;border-radius:5px;transition:.12s;white-space:normal}
  .clk:hover{background:rgba(255,255,255,.05)}
  .clk.sel{background:color-mix(in srgb,var(--accent) 16%,transparent);border-bottom-color:var(--accent);color:var(--accent2)}
  .clk.good{background:color-mix(in srgb,var(--safe) 16%,transparent);border-bottom:1px solid var(--safe);color:var(--safe)}
  .clk.bad{background:color-mix(in srgb,var(--danger) 16%,transparent);border-bottom:1px solid var(--danger);color:var(--danger)}
  .clk.miss{border-bottom:2px solid var(--safe);color:var(--safe)}
  .badge{font-family:var(--mono);font-size:9.5px;padding:1px 5px;border-radius:6px;margin-left:5px;vertical-align:middle}
  .badge.g{background:var(--safe);color:#04231c}.badge.b{background:var(--danger);color:#2a0608}.badge.m{background:transparent;border:1px solid var(--safe);color:var(--safe)}
  .panel-side{border:1px solid var(--line);border-radius:16px;background:var(--panel);padding:20px}
  .panel-side .score{font-family:var(--disp);font-size:34px;font-weight:700}
  .panel-side .score small{font-size:15px;color:var(--muted);font-weight:500}
  .checklist{list-style:none;padding:0;margin:14px 0 0}
  .checklist li{display:flex;gap:9px;align-items:flex-start;padding:7px 0;border-top:1px solid var(--line);font-size:13.5px;color:var(--txt2)}
  .checklist li .mk{color:var(--dim);font-family:var(--mono);margin-top:1px}
  .checklist li.hit .mk{color:var(--safe)}
  .side-cta{margin-top:16px;display:none}
  .side-cta.show{display:block}
  /* cards */
  .cards{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
  .card{border:1px solid var(--line);border-radius:var(--r);padding:24px;background:var(--panel);display:flex;gap:16px;box-shadow:var(--ring)}
  .card .ic{flex:none;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 12%,transparent);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent)}
  .card h3{margin-bottom:5px}.card p{color:var(--txt2);font-size:14.5px}
  /* recherche */
  .rnote{border-left:3px solid var(--safe);padding:16px 20px;background:color-mix(in srgb,var(--safe) 8%,transparent);border-radius:0 14px 14px 0;max-width:82ch;color:var(--txt2)}
  .studies{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:26px}
  .study{border:1px solid var(--line);border-radius:var(--r);padding:22px;background:var(--panel);border-left:3px solid var(--accent)}
  .study .tag{font-family:var(--mono);font-size:11.5px;letter-spacing:.01em;color:var(--accent)}
  .study h3{margin:.4em 0}.study p{color:var(--txt2);font-size:14.5px}
  .study .msg{color:var(--txt);font-weight:600;margin-top:.55em;font-size:14.5px}
  .study .ref{font-family:var(--mono);font-size:11.5px;color:var(--dim);margin-top:.8em;border-top:1px dashed var(--line);padding-top:.6em}
  .study .ref a{color:var(--safe)}
  .esbar{display:flex;align-items:center;gap:10px;margin:.6em 0}
  .esbar .track{flex:1;height:8px;border-radius:5px;background:var(--line);overflow:hidden}
  .esbar .fill{height:100%;background:linear-gradient(90deg,var(--safe),var(--accent));width:0}
  .esbar small{font-family:var(--mono);font-size:11px;color:var(--muted)}
  .method{font-family:var(--mono);font-size:12px;color:var(--dim);margin-top:22px;max-width:82ch}
  .band{border:1px solid var(--line);border-radius:24px;padding:40px;background:
      radial-gradient(600px 300px at 15% -40%,var(--glow),transparent),linear-gradient(180deg,var(--panel),var(--panel2));
    display:flex;gap:26px;align-items:center;justify-content:space-between;flex-wrap:wrap}
  footer{border-top:1px solid var(--line);padding:34px 0;color:var(--dim);font-family:var(--mono);font-size:12px}
  footer .row{display:flex;gap:18px;flex-wrap:wrap;justify-content:space-between;align-items:center}
  /* Le fade-in au scroll systématique sur chaque section (.rev) a été
     désactivé : effet dispersé et générique, cf. brief design. Un seul
     moment animé reste volontairement : le pulse des points d'intérêt de
     la démo (.hot::after) — mouvement qui répond à une vraie interaction,
     pas une entrée décorative. */
  .rev{opacity:1;transform:none}
  @media(max-width:900px){.hero .grid{grid-template-columns:1fr}.steps{grid-template-columns:1fr 1fr}.cards,.studies{grid-template-columns:1fr}.nav .links{display:none}}
  :focus-visible{outline:2px solid var(--safe);outline-offset:3px;border-radius:8px}

/* --- fil d'Ariane, FAQ, prose sous-pages, skip-link --- */
.skip{position:absolute;left:-9999px;top:0;background:var(--accent);color:var(--ink-on-accent);padding:10px 14px;border-radius:8px;z-index:100}
.skip:focus{left:12px;top:10px}
.crumbs{padding-top:22px}
.crumbs ol{list-style:none;display:flex;gap:8px;flex-wrap:wrap;margin:0;padding:0;font-family:var(--mono);font-size:12px;color:var(--dim)}
.crumbs a{color:var(--muted)}.crumbs a:hover{color:var(--txt)}
.crumbs li+li::before{content:"/";margin-right:8px;color:var(--line2)}
.prose{max-width:72ch}
.prose p{color:var(--txt2);margin:0 0 1em}
.prose h2{margin:1.6em 0 .5em}
.prose ul{color:var(--txt2);padding-left:1.1em}.prose li{margin:.3em 0}
/* --- Téléchargement / auto-hébergement --- */
.dl-card{border:1px solid var(--line);border-radius:20px;background:var(--panel);padding:26px}
.dl-list{list-style:none;padding:0;margin:14px 0;display:grid;gap:8px}
.dl-list li{display:flex;gap:9px;align-items:flex-start;color:var(--txt2);font-size:14.5px}
.dl-list li::before{content:"✓";color:var(--safe);font-weight:700}
.code{font-family:var(--mono);font-size:13px;background:#14181D;border:1px solid var(--line);border-radius:12px;padding:14px 16px;white-space:pre;overflow:auto;color:#E7ECF5}
.faq{display:grid;gap:12px;max-width:80ch}
.faq details{border:1px solid var(--line);border-radius:14px;background:var(--panel);padding:2px 18px}
.faq summary{cursor:pointer;list-style:none;padding:16px 0;font-family:var(--disp);font-weight:600;font-size:16px;display:flex;align-items:center;gap:10px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"+";color:var(--accent);font-family:var(--mono);font-size:20px;line-height:1}
.faq details[open] summary::before{content:"–"}
.faq details p{color:var(--txt2);font-size:14.5px;margin:0 0 16px}
.pagelead{max-width:60ch;margin:.4em 0 8px;color:var(--txt2);font-size:clamp(17px,1.9vw,20px)}

/* --- Modale de capture de lead (démo) --- */
.lead-ov{position:fixed;inset:0;z-index:60;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(5,9,18,.72);backdrop-filter:blur(6px)}
.lead-ov.open{display:flex}
.lead-modal{width:100%;max-width:460px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(180deg,var(--panel),var(--panel2));box-shadow:0 24px 56px -20px var(--shadow);padding:26px;position:relative}
.lead-modal h2{font-size:23px;margin:0 0 4px}
.lead-modal .sub{color:var(--muted);font-size:14px;margin:0 0 18px}
.lead-close{position:absolute;top:14px;right:14px;width:32px;height:32px;border-radius:9px;border:1px solid var(--line);background:transparent;color:var(--muted);cursor:pointer;font-size:16px;line-height:1}
.lead-close:hover{color:var(--txt);border-color:var(--line2)}
.lead-modal label{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:12px 0 5px}
.lead-modal input{width:100%;padding:11px 13px;border-radius:11px;border:1px solid var(--line);background:var(--ink);color:var(--txt);font:inherit;font-size:15px}
.lead-modal input:focus{outline:2px solid var(--safe);outline-offset:1px;border-color:var(--safe)}
.lead-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.lead-consent{display:flex;gap:9px;align-items:flex-start;margin:14px 0 4px;font-size:12.5px;color:var(--muted);line-height:1.45}
.lead-consent input{width:16px;height:16px;margin-top:2px;flex:none}
.lead-consent a{color:var(--safe)}
.lead-modal .err{display:none;margin-top:10px;color:var(--danger);font-size:13px}
.lead-modal .err.show{display:block}
.lead-submit{width:100%;justify-content:center;margin-top:16px}
.lead-submit[disabled]{opacity:.6;cursor:default}
.lead-foot{margin-top:12px;font-family:var(--mono);font-size:11px;color:var(--dim);text-align:center}

/* ================= Escape autonome (site) ================= */
#app{max-width:var(--maxw);margin:0 auto;padding:16px 22px 60px}
.eg-msg{padding:40px;text-align:center;color:var(--muted)}
.eg-hud{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:10px;padding:10px 0;background:var(--ink);flex-wrap:wrap}
.eg-chip{font-family:var(--mono);font-size:12px;color:var(--txt);border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:5px 9px}
.eg-pips{display:flex;gap:5px;margin-left:auto}.eg-pips i{width:20px;height:6px;border-radius:3px;background:var(--line)}.eg-pips i.on{background:var(--safe);box-shadow:0 0 8px var(--safe)}
.eg-quit{font-family:var(--mono);font-size:12px;color:var(--muted)}
.eg-stage{position:relative;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:linear-gradient(180deg,var(--panel),var(--panel2))}
.eg-scene{position:relative;aspect-ratio:16/7;display:grid;place-items:center;overflow:hidden;background:radial-gradient(120% 120% at 50% 0,#16233c,#0b1424 70%)}
.eg-scene-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.eg-scene:has(.eg-scene-img)::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,9,18,.15),rgba(5,9,18,.65))}
.eg-scene-title{position:relative;z-index:1;font-family:var(--disp);font-weight:700;font-size:clamp(20px,4vw,34px);color:#33507a}
.eg-scene:has(.eg-scene-img) .eg-scene-title{color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.6)}
.eg-caption{padding:16px 18px;color:var(--txt);font-size:15px;border-top:1px solid var(--line)}
.eg-row{display:grid;grid-template-columns:1fr auto;gap:20px;margin-top:16px}
@media(max-width:700px){.eg-row{grid-template-columns:1fr}}
.eg-objs,.eg-exits{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.eg-obj,.eg-exit{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--panel);color:var(--txt);border-radius:10px;padding:9px 12px;font-size:14px}
.eg-obj:hover,.eg-exit:hover:not([disabled]){border-color:var(--accent);color:var(--accent)}
.eg-exit[disabled]{opacity:.5;cursor:not-allowed}
.eg-done{color:var(--safe)}
.eg-inv{margin-top:16px;border-top:1px solid var(--line);padding-top:12px}
.eg-tk{display:inline-block;font-family:var(--mono);font-size:12px;color:var(--safe);border:1px solid color-mix(in srgb,var(--safe) 40%,transparent);background:color-mix(in srgb,var(--safe) 12%,transparent);border-radius:8px;padding:3px 8px}
.eg-ov{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(5,9,18,.72);backdrop-filter:blur(6px)}
.eg-modal{width:100%;max-width:560px;max-height:88vh;overflow:auto;border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,var(--panel),var(--panel2));padding:22px;position:relative;box-shadow:0 24px 56px -20px var(--shadow)}
.eg-close{position:absolute;top:12px;right:12px;width:30px;height:30px;border-radius:8px;border:1px solid var(--line);background:transparent;color:var(--muted);cursor:pointer}
.eg-narr{color:var(--txt2);margin:.3em 0 1em}.eg-sm{font-size:13px;margin:.2em 0 .6em}.eg-speaker{color:var(--accent);font-weight:600}
.eg-invrem{display:flex;flex-wrap:wrap;gap:6px;margin:.2em 0 1em}
.eg-actions{display:flex;flex-direction:column;gap:8px}
.eg-rows,.eg-sort,.eg-q{display:flex;flex-direction:column;gap:8px;margin:.4em 0}
.eg-check{display:flex;gap:9px;align-items:flex-start;border:1px solid var(--line);border-radius:10px;padding:9px 11px;cursor:pointer;background:var(--ink);font-size:14px}
.eg-check input{margin-top:3px}
.eg-sortitem{display:flex;gap:8px;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:10px;padding:8px 11px;background:var(--ink);font-size:14px}
.eg-sortitem select{background:var(--ink);border:1px solid var(--line);color:var(--txt);border-radius:8px;padding:5px}
.eg-order{list-style:decimal inside;padding:0;margin:.4em 0;display:flex;flex-direction:column;gap:6px}
.eg-order li{border:1px solid var(--safe);border-radius:8px;padding:7px 10px;background:color-mix(in srgb,var(--safe) 10%,transparent);font-size:14px}
.eg-picks{display:flex;flex-wrap:wrap;gap:6px}
.eg-decoder{border:1px solid color-mix(in srgb,var(--accent) 50%,transparent);background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--txt);border-radius:10px;padding:9px 11px;margin-bottom:10px;font-size:14px}
.eg-code{width:100%;font-family:var(--mono);font-size:26px;letter-spacing:.4em;text-align:center;background:var(--ink);border:1px dashed var(--line);border-radius:12px;padding:12px;color:var(--safe)}
.eg-pz-actions{display:flex;gap:8px;margin-top:14px}
.eg-err{color:var(--danger);font-size:13px;min-height:1em;margin-top:8px}
.eg-end{text-align:center;max-width:620px;margin:24px auto}
.eg-end h1{font-size:clamp(28px,6vw,46px);margin:.2em 0}
.eg-end.win h1{color:var(--safe)} .eg-end.lose h1{color:var(--danger)}
.eg-endtext{color:var(--txt2)}.eg-time{font-family:var(--mono);margin:.4em 0}
.eg-debrief{text-align:left;border:1px solid var(--line);border-radius:14px;background:var(--panel);padding:16px;margin:16px 0}
.eg-debrief ul{margin:.4em 0 0;padding-left:1.1em;color:var(--txt2)}.eg-debrief li{margin:.3em 0}
.eg-share,.eg-rate{margin:16px 0}
.eg-star{font-size:26px;background:none;border:0;cursor:pointer;color:var(--txt);opacity:.3}.eg-star.on{opacity:1;color:var(--accent)}
.eg-endcta{margin-top:18px;display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.eg-toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);background:var(--panel);border:1px solid var(--accent);color:var(--txt);border-radius:12px;padding:12px 16px;max-width:90vw;z-index:80;opacity:0;transition:.3s;font-size:14px}
.eg-toast.show{opacity:1;transform:translate(-50%,0)}
.eg-lb{margin:16px 0}
.eg-lb-row{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.eg-lb-row input{background:var(--ink);border:1px solid var(--line);color:var(--txt);border-radius:10px;padding:9px 12px;font-size:14px}
.eg-lb-res{color:var(--safe);font-size:15px}
.eg-lb-res a{color:var(--safe)}
