  .eyebrow{font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:#b8c3d0;margin-bottom:9px}.world-title{font-family:Georgia,"Times New Roman",serif;font-weight:500;font-size:clamp(28px,4vw,50px);letter-spacing:-.035em;margin:0;text-shadow:0 8px 40px rgba(0,0,0,.7)}
  .world-sub{margin-top:8px;color:#aab4c1;font-size:12px;letter-spacing:.04em}
  .progress{margin:16px auto 0;display:flex;gap:7px;justify-content:center}.progress i{display:block;width:34px;height:2px;border-radius:2px;background:rgba(255,255,255,.15);overflow:hidden}.progress i::before{content:"";display:block;height:100%;width:0;background:rgba(255,255,255,.9);transition:.35s}.progress i.done::before,.progress i.active::before{width:100%}.progress i.active{box-shadow:0 0 10px rgba(255,255,255,.24)}
  .gate-zone{position:absolute;z-index:14;left:50%;top:53%;width:min(970px,94vw);transform:translate(-50%,-50%);display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,2vw,28px);align-items:end;padding:28px 0 8px;transition:.45s}
  .gate-zone.resolving{z-index:46;pointer-events:none}
  .gate-zone.resolving .gate{transition:transform .72s cubic-bezier(.16,.78,.18,1),opacity .42s ease,filter .55s ease}
  .gate-zone.resolving .gate:not(.selected){opacity:.08;filter:blur(7px) brightness(.55);transform:scale(.88)}
  .gate-zone.resolving .gate.selected{z-index:4;transform:translateY(-3vh) scale(1.12);filter:drop-shadow(0 30px 75px rgba(0,0,0,.62))}
  .game.target-0 .gate-zone.resolving .gate.selected{transform:translateX(calc(100% + clamp(12px,2vw,28px))) translateY(-3vh) scale(1.12)}
  .game.target-2 .gate-zone.resolving .gate.selected{transform:translateX(calc(-100% - clamp(12px,2vw,28px))) translateY(-3vh) scale(1.12)}
  .gate-zone.resolving .gate.selected .gate-copy{opacity:.12;transform:translateY(14px)}
  .gate-copy{transition:opacity .35s ease,transform .45s ease}
  .portal{position:absolute;z-index:2;inset:10.5% 21% 8.5%;border-radius:49% 49% 8% 8% / 28% 28% 7% 7%;overflow:hidden;opacity:.06;transform:scale(.9);transition:opacity .45s ease,transform .8s cubic-bezier(.16,.78,.18,1);background:radial-gradient(ellipse at 50% 52%,rgba(255,255,255,.96) 0 2%,var(--gate-light) 8%,rgba(3,5,8,.92) 54%,#010203 74%);box-shadow:inset 0 0 42px #000,0 0 56px var(--gate-glow);pointer-events:none}
  .portal::before{content:"";position:absolute;inset:-28%;background:conic-gradient(from 20deg,transparent 0 8%,rgba(255,255,255,.28) 10%,transparent 15% 25%,rgba(255,255,255,.13) 29%,transparent 36% 54%,rgba(255,255,255,.18) 60%,transparent 68%);filter:blur(6px);animation:spin 7s linear infinite}
  .portal::after{content:"";position:absolute;left:50%;top:50%;width:34%;height:64%;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(ellipse,rgba(255,255,255,.72),rgba(255,255,255,.05) 38%,transparent 70%);filter:blur(10px);animation:pulse 1.8s ease-in-out infinite alternate}
  @keyframes spin{to{transform:rotate(360deg)}} @keyframes pulse{to{transform:translate(-50%,-50%) scale(1.2);opacity:.5}}
  .gate.selected .portal{opacity:1;transform:scale(1)}
  .gate.selected .arch::before{filter:brightness(1.7) saturate(1.12);box-shadow:inset 0 0 42px rgba(0,0,0,.18),0 0 92px var(--gate-glow)}
  .game.resolving .stage-meta,.game.resolving .hint,.game.resolving .status-strip,.game.resolving .dock{opacity:.16;filter:blur(2px);transition:opacity .3s ease,filter .3s ease}
  .game.resolving .moon{transform:translateX(-50%) scale(1.18);filter:blur(1px);opacity:1}
  .game.resolving .scene::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 48%,rgba(255,255,255,.11),transparent 38%);animation:vignette-breathe .9s ease-in-out infinite alternate;pointer-events:none}
  @keyframes vignette-breathe{to{opacity:.28}}
  .game.resolving.target-0 .hero,.game.resolving.target-1 .hero,.game.resolving.target-2 .hero{transform:translateX(-50%) translateY(-12vh) scale(.72);opacity:.48}
  .game.resolving.commit .hero{transition:transform .52s cubic-bezier(.5,0,.86,.2),opacity .46s ease;transform:translateX(-50%) translateY(-27vh) scale(.28);opacity:.04}
  .gate.selected.commit{transform:translateY(-5vh) scale(1.22)}
  .game.target-0 .gate-zone.resolving .gate.selected.commit{transform:translateX(calc(100% + clamp(12px,2vw,28px))) translateY(-5vh) scale(1.22)}
  .game.target-2 .gate-zone.resolving .gate.selected.commit{transform:translateX(calc(-100% - clamp(12px,2vw,28px))) translateY(-5vh) scale(1.22)}
  .gate.selected.outcome-win .portal{background:radial-gradient(ellipse at 50% 50%,#fff 0 5%,#e9ffd0 14%,rgba(185,255,132,.46) 30%,rgba(4,8,5,.96) 72%);box-shadow:inset 0 0 35px rgba(0,0,0,.2),0 0 115px rgba(205,255,155,.5)}
  .gate.selected.outcome-lose .portal{background:radial-gradient(ellipse at 50% 50%,#ffd7d2 0 3%,rgba(255,105,94,.44) 16%,rgba(34,3,4,.94) 48%,#010203 74%);box-shadow:inset 0 0 55px #120102,0 0 90px rgba(255,77,66,.35)}
  .game.stage-shift .scene{animation:stageShift .72s cubic-bezier(.16,.78,.18,1)}
  @keyframes stageShift{0%{filter:brightness(2.2) saturate(.5);transform:scale(1.04)}100%{filter:none;transform:none}}
  .gate{position:relative;height:clamp(250px,34vh,390px);border:0;background:transparent;cursor:pointer;padding:0;outline:none;transition:.22s ease;transform-origin:50% 100%;filter:drop-shadow(0 22px 38px rgba(0,0,0,.42))}
  .gate:disabled{cursor:default}.gate:not(:disabled):hover{transform:translateY(-8px) scale(1.015)}.gate:not(:disabled):focus-visible{outline:2px solid white;outline-offset:8px;border-radius:140px 140px 18px 18px}
  .arch{position:absolute;inset:0 10%;border-radius:48% 48% 13% 13% / 26% 26% 10% 10%;border:1px solid rgba(255,255,255,.19);background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,.02) 18%,rgba(0,0,0,.62) 100%);box-shadow:inset 0 0 0 7px rgba(0,0,0,.20),inset 0 0 0 8px rgba(255,255,255,.05),0 0 45px rgba(0,0,0,.3)}
  .arch::before{content:"";position:absolute;inset:8% 12% 7%;border-radius:50% 50% 9% 9% / 27% 27% 8% 8%;background:
    radial-gradient(ellipse at 50% 54%,var(--gate-light),transparent 54%),
    linear-gradient(180deg,rgba(255,255,255,.08),rgba(0,0,0,.8));box-shadow:inset 0 0 55px rgba(0,0,0,.54),0 0 32px var(--gate-glow);transition:.22s;overflow:hidden}
  .arch::after{content:"";position:absolute;left:50%;bottom:7%;width:58%;height:2px;transform:translateX(-50%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.58),transparent);box-shadow:0 0 16px var(--gate-glow)}
  .gate:hover .arch::before{filter:brightness(1.18);box-shadow:inset 0 0 50px rgba(0,0,0,.36),0 0 58px var(--gate-glow)}
  .gate[data-p=".8"]{--gate-light:rgba(181,243,255,.58);--gate-glow:rgba(130,229,255,.30)}
  .gate[data-p=".6"]{--gate-light:rgba(255,221,133,.62);--gate-glow:rgba(255,210,98,.30)}
  .gate[data-p=".4"]{--gate-light:rgba(255,126,190,.62);--gate-glow:rgba(255,98,172,.30)}
  .gate-copy{position:absolute;z-index:3;left:0;right:0;bottom:19%;display:flex;flex-direction:column;align-items:center;text-shadow:0 3px 20px #000}
  .gate-name{font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:#d4dbe3;margin-bottom:5px}.chance{font-family:Georgia,"Times New Roman",serif;font-size:clamp(34px,4vw,52px);line-height:.95;letter-spacing:-.04em}.gate-label{margin-top:10px;font-size:10px;color:#c4ccd5;letter-spacing:.04em}.gate-win{font-size:15px;font-weight:760;margin-top:4px;font-variant-numeric:tabular-nums}.gate-floor{font-size:9px;color:#8f99a7;margin-top:5px;font-variant-numeric:tabular-nums}
  .gate .risk-dot{position:absolute;z-index:4;top:15%;left:50%;width:7px;height:7px;border-radius:50%;transform:translateX(-50%);background:white;box-shadow:0 0 18px white,0 0 45px var(--gate-glow);opacity:.8;animation:pulse 1.8s ease-in-out infinite}
  @keyframes pulse{50%{transform:translateX(-50%) scale(1.9);opacity:.28}}
  .game.traversing .gate-zone{transform:translate(-50%,-48%) scale(1.18);filter:blur(3px);opacity:.2}
  .status-strip{position:absolute;z-index:20;left:50%;bottom:118px;transform:translateX(-50%);display:flex;gap:8px;padding:7px;border:1px solid var(--line);border-radius:18px;background:rgba(4,7,10,.63);backdrop-filter:blur(20px);box-shadow:0 20px 70px rgba(0,0,0,.28);transition:.25s}
  .stat{min-width:124px;padding:9px 12px;border-radius:12px}.stat small{display:block;color:#8e99a8;font-size:9px;letter-spacing:.16em;text-transform:uppercase;margin-bottom:4px}.stat strong{font-size:15px;font-variant-numeric:tabular-nums}.stat.primary{background:rgba(255,255,255,.06)}
  .dock{position:absolute;z-index:25;left:50%;bottom:max(16px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(940px,calc(100vw - 28px));min-height:86px;border:1px solid rgba(255,255,255,.13);border-radius:24px;background:linear-gradient(180deg,rgba(12,16,21,.90),rgba(5,8,11,.92));backdrop-filter:blur(22px);box-shadow:0 24px 80px rgba(0,0,0,.45);display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px}
