/* Self-contained shell formerly supplied by ../_shared/arcade.css */
*,*::before,*::after{box-sizing:border-box}
:root{--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color-scheme:dark}
html,body{width:100%;height:100%;margin:0;overflow:hidden;overscroll-behavior:none}
body{color:#dce7f2;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
button,a,input{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid #e0b84c;outline-offset:3px}
.game-shell{position:fixed;inset:0;display:grid;grid-template-rows:auto minmax(0,1fr);min-width:280px;isolation:isolate}
.game-bar{height:50px;padding:var(--safe-top) max(12px,var(--safe-right)) 0 max(12px,var(--safe-left));display:flex;align-items:center;gap:10px;z-index:100;border-bottom:1px solid rgba(255,255,255,.08);user-select:none}
.back-link{display:inline-flex;align-items:center;gap:4px;color:#9fb2c8;text-decoration:none;white-space:nowrap;font-size:.78rem}
.back-link:hover{color:#fff}
.game-bar-title{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;font-size:.78rem;font-weight:700;letter-spacing:.03em}
.player-pill{max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:4px 9px;border:1px solid rgba(255,255,255,.12);border-radius:999px;font-size:.68rem;color:#b7c7d8;background:rgba(0,0,0,.25)}
.icon-btn,.hud-btn{display:inline-grid;place-items:center;padding:0;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.06);color:#d6e1eb;cursor:pointer}
.icon-btn{width:36px;height:32px;border-radius:7px;font-size:.68rem;font-weight:800}
.icon-btn:hover,.hud-btn:hover{background:rgba(255,255,255,.12)}
.icon-btn.is-muted{color:#d76a61;border-color:rgba(215,106,97,.45)}
.game-wrap{position:relative;min-height:0;width:100%;height:100%;overflow:hidden;background:#030814;touch-action:none}
#game-canvas{position:absolute;inset:0;display:block;width:100%;height:100%;outline:none;touch-action:none}
.screen{position:absolute;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;overflow:auto;padding:clamp(16px,4vw,38px) max(14px,var(--safe-right)) max(18px,var(--safe-bottom)) max(14px,var(--safe-left));text-align:center}
.screen:not(.screen-active){display:none}
.panel{width:min(620px,calc(100vw - 28px));max-height:calc(100% - 12px);overflow:auto;padding:clamp(22px,4vw,38px);border:1px solid rgba(255,255,255,.12)}
.panel-sm{width:min(420px,calc(100vw - 28px))}
.panel h1,.panel h2,.panel h3,.panel p{margin-top:0}
.panel h1{margin-bottom:12px;line-height:.95}
.panel h2{margin-bottom:10px}
.eyebrow{margin-bottom:8px;font-size:.72rem;font-weight:800}
.menu-actions{display:grid;gap:9px;margin-top:20px}
.menu-actions.compact{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));align-items:stretch}
.menu-actions button,.nn-nudge-later{width:100%;padding:10px 14px;border:1px solid rgba(255,255,255,.14);cursor:pointer}
.menu-actions button:active,.nn-nudge-later:active{transform:translateY(1px)}
.summary-grid,.how-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:9px;margin-top:16px}
.summary-grid div,.how-grid div{padding:12px;border:1px solid rgba(255,255,255,.08);font-size:.78rem;line-height:1.45}
.summary-grid b,.how-grid b{display:block;color:#e0d5a0;margin-bottom:3px}
.stat-strip{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:16px}
.stat-strip span{padding:7px 11px;font-size:.76rem}
.hud{position:absolute;inset:0;z-index:15;pointer-events:none}
.hud button{pointer-events:auto}
.nn-score-nudge{margin:12px 0;padding:12px;border:1px solid}
.nn-score-nudge p{margin-bottom:9px}
.nn-nudge-btns{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.nn-nudge-signup,.nn-nudge-later{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:8px 12px;text-decoration:none;font-size:.78rem}
.nn-nudge-signup{background:#c9a447;color:#0d0a02;font-weight:800}
.nn-nudge-later{width:auto;background:transparent;color:#c4d4e8}
.readable{line-height:1.55;text-align:left}
.drowning::after{content:"";position:absolute;inset:0;z-index:14;pointer-events:none;background:linear-gradient(rgba(13,49,74,.12),rgba(9,51,77,.4));animation:drown-pulse 1.1s ease-in-out infinite alternate}
@keyframes drown-pulse{to{opacity:.55}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@media (max-width:560px){.player-pill{display:none}.game-bar-title{text-align:left}.screen{align-items:flex-start}.panel{margin:auto 0}.menu-actions.compact{grid-template-columns:1fr}.summary-grid,.how-grid{grid-template-columns:1fr 1fr}}
@media (max-height:520px) and (orientation:landscape){.game-bar{height:42px}.screen{align-items:flex-start;padding-top:8px}.panel{padding:16px}.panel h1{font-size:1.55rem}.subtitle{display:none}.menu-actions{margin-top:10px}.menu-actions button{min-height:38px!important}.summary-grid,.how-grid{margin-top:8px}}

:root{
  --accent:#c9a447;
  --accent2:#5f8bb4;
  --gold:#e0b84c;
  --cold:#4a7ca6;
  --hot:#d64c3a;
  --bg:#040a12;
}

html,body{background:#040a12}
.game-shell{background:radial-gradient(circle at 50% 0%,#0d1f3a 0%,#081423 28%,#040a12 100%)}
.game-bar{background:rgba(4,8,18,.82);border-bottom-color:rgba(201,164,71,.22)}
.game-bar-title{letter-spacing:.06em;background:linear-gradient(90deg,#c9a447,#e0d5a0,#c9a447);-webkit-background-clip:text;background-clip:text;color:transparent;font-variant:small-caps}
.icon-btn{border-radius:8px;font-size:.72rem;font-weight:1000;color:#c4d4e8;border-color:rgba(201,164,71,.22);background:rgba(6,14,28,.7)}
.icon-btn.is-muted{color:#4e5b7c}
.game-wrap{display:block;background:#040a12}
#game-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}

/* Cinematic overlays */
.lightning-flash{position:absolute;inset:0;z-index:8;pointer-events:none;background:rgba(140,180,255,.12);opacity:0;transition:opacity .04s ease-in,.15s ease-out .04s}
.lightning-flash.active{opacity:1;transition:opacity .02s ease-in}
/* The grain tile is streaks only. It used to carry an opaque black 4x4 base
   rect, so at .55 opacity this overlay was multiplying the entire game by ~45%
   every frame — by far the largest single cause of the scene being unreadable.
   The streaks carry the rain, so their alpha is raised to compensate. */
.rain-grain{position:absolute;inset:0;z-index:6;pointer-events:none;background:url("data:image/svg+xml,%3Csvg viewBox='0 0 4 4' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='1' y='0' width='.5' height='3' fill='rgba(255,255,255,.16)'/%3E%3C/svg%3E") repeat;opacity:.5;animation:rain-drift .22s linear infinite}
@keyframes rain-drift { to { transform:translateY(4px) } }
/* Softened: at 120px/.55 the inset shadow ate a wide black margin on top of an
   already very dark scene. */
.vignette{position:absolute;inset:0;z-index:5;pointer-events:none;box-shadow:inset 0 0 90px rgba(0,0,0,.32),inset 0 0 30px rgba(0,0,0,.16)}

/* Fade */
.fade-overlay{position:absolute;inset:0;z-index:50;pointer-events:none;background:#000;opacity:0;transition:opacity .5s ease}
.fade-overlay.active{opacity:1}
.fade-overlay.flash{opacity:.65;transition:opacity .04s ease-in,.2s ease-out .04s}

/* HUD */
.hud{padding:10px 12px max(12px,var(--safe-bottom));gap:9px}
.objective{position:absolute;top:18px;left:50%;transform:translateX(-50%);font-family:monospace;font-size:.85rem;letter-spacing:.05em;color:#e0d5a0;text-shadow:0 0 14px rgba(201,164,71,.45),0 2px 6px rgba(0,0,0,.85);text-align:center;white-space:nowrap;transition:opacity .35s}
.objective.hidden{opacity:0}
.prompt{position:absolute;bottom:60px;left:50%;transform:translateX(-50%);font-family:monospace;font-size:.82rem;letter-spacing:.04em;color:#c9a447;text-shadow:0 0 10px rgba(201,164,71,.5);transition:opacity .25s}
.prompt kbd{display:inline-block;padding:2px 8px;border-radius:4px;border:1px solid rgba(201,164,71,.45);background:rgba(4,8,18,.72);margin-right:6px;font-size:.78rem;font-weight:700}
.prompt.hidden{opacity:0}
.water-danger{position:absolute;bottom:90px;right:20px;display:flex;flex-direction:column;align-items:center;gap:5px;transition:opacity .4s}
.water-danger.hidden{opacity:0}
.wd-label{font-family:monospace;font-size:.68rem;letter-spacing:.08em;color:#d64c3a;text-shadow:0 0 8px rgba(214,76,58,.6);animation:wd-pulse .8s ease-in-out infinite}
@keyframes wd-pulse{50%{opacity:.5}}
.wd-bar{width:8px;height:80px;border-radius:4px;background:rgba(4,8,18,.7);border:1px solid rgba(214,76,58,.3);overflow:hidden}
.wd-bar i{display:block;width:100%;height:0%;background:linear-gradient(to bottom,#d64c3a,#ff6b4a);transition:height .25s linear;border-radius:4px}
.storm-card{position:absolute;top:88px;right:20px;min-width:170px;padding:8px 10px;border-radius:8px;background:rgba(4,8,18,.62);border:1px solid rgba(95,139,180,.28);backdrop-filter:blur(6px);transition:opacity .4s,border-color .4s}
.storm-card.hidden{opacity:0;pointer-events:none}
.storm-card.surging{border-color:rgba(214,76,58,.55);box-shadow:0 0 18px rgba(214,76,58,.22)}
.storm-head{display:flex;align-items:center;gap:6px;font-family:monospace;font-size:.62rem;letter-spacing:.09em;color:rgba(200,215,230,.72)}
.storm-head b{font-weight:700;color:#cfe0f2}
.storm-head em{margin-left:auto;font-style:normal;font-weight:700;color:#7fb0dc}
.storm-card.surging .storm-head em{color:#ff8a68;animation:wd-pulse .8s ease-in-out infinite}
.storm-bar{margin-top:6px;height:4px;border-radius:2px;background:rgba(4,8,18,.75);border:1px solid rgba(255,255,255,.09);overflow:hidden}
.storm-bar i{display:block;height:100%;width:0%;border-radius:2px;background:linear-gradient(90deg,#5f8bb4,#a0d0f0);transition:width .25s linear}
.storm-card.surging .storm-bar i{background:linear-gradient(90deg,#d64c3a,#ffb46a)}
.storm-hint{margin-top:5px;font-family:monospace;font-size:.55rem;letter-spacing:.04em;color:rgba(200,215,230,.42)}
@media (prefers-reduced-motion:reduce){.storm-card.surging .storm-head em{animation:none}}
.stamina{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);width:80px;height:4px;border-radius:2px;background:rgba(4,8,18,.6);border:1px solid rgba(255,255,255,.1);overflow:hidden;transition:opacity .5s}
.stamina i{display:block;height:100%;width:100%;border-radius:2px;background:linear-gradient(90deg,#5f8bb4,#a0d0f0);transition:width .15s linear}
.stamina.depleted{opacity:.35}
.controls-hint{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);font-family:monospace;font-size:.62rem;color:rgba(200,215,230,.35);white-space:nowrap;transition:opacity .6s}
.controls-hint.hidden{opacity:0}
.pause-btn{position:absolute;top:10px;right:14px;width:36px;height:36px;border-radius:8px;background:rgba(4,8,18,.55);border:1px solid rgba(255,255,255,.12);color:#c4d4e8;font-size:.8rem;cursor:pointer}

/* Screens */
.screen{background:radial-gradient(circle at 50% 12%,rgba(201,164,71,.08),rgba(8,14,28,.55) 40%,rgba(0,0,0,.78));backdrop-filter:blur(6px)}
.panel{border-radius:8px;background:linear-gradient(180deg,rgba(8,14,30,.92),rgba(4,6,14,.9));border-color:rgba(201,164,71,.18);box-shadow:0 26px 90px rgba(0,0,0,.65),0 0 40px rgba(201,164,71,.08)}
.panel h1{letter-spacing:0;font-size:clamp(1.9rem,8vw,3.2rem);background:linear-gradient(135deg,#f0e8d0,#c9a447,#8b6914);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none}
.panel h1 span{display:block;font-size:.42em;letter-spacing:.14em;margin-top:.08em;opacity:.8}
.panel h2{letter-spacing:.04em;font-variant:small-caps}
.eyebrow{color:#c9a447;font-variant:small-caps;letter-spacing:.1em}
.subtitle{max-width:36rem;margin:0 auto;color:#b0c4d6;font-size:.88rem;line-height:1.5}
.menu-actions button,.summary-grid div,.how-grid div,.lb-row,.nn-score-nudge,.stat-strip span,.settings-list div{border-radius:8px}
.menu-actions button{min-height:48px;background:rgba(255,255,255,.06);border-color:rgba(201,164,71,.16);color:#d4dfe8}
.menu-actions button:hover{border-color:rgba(201,164,71,.32);box-shadow:0 0 18px rgba(201,164,71,.08)}
.menu-actions .primary{background:linear-gradient(135deg,#8b6914,#c9a447);color:#0d0a02}
.stat-strip span{background:rgba(6,14,28,.56);color:#8fa0b8}
.how-grid div{background:rgba(6,14,28,.56);border-color:rgba(255,255,255,.08)}
.over-panel{width:min(560px,calc(100vw - 26px))}
.nn-score-nudge{border-color:rgba(224,184,76,.35);background:rgba(224,184,76,.08)}
.nn-nudge-signup,.nn-nudge-later{border-radius:8px}

/* Settings */
.settings-list{display:flex;flex-direction:column;gap:14px;margin-top:12px}
.setting-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 14px;background:rgba(6,14,28,.42);border-radius:8px;border:1px solid rgba(255,255,255,.06)}
.setting-row span{font-size:.84rem;color:#b0c4d6}
.setting-row input[type="range"]{width:120px;accent-color:#c9a447}
.seg{display:flex;gap:4px}
.seg button{padding:5px 12px;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.04);color:#8fa0b8;border-radius:6px;font-size:.76rem;cursor:pointer}
.seg button.active{background:rgba(201,164,71,.25);border-color:rgba(201,164,71,.5);color:#e0d5a0}

/* Loading */
.loading-panel{overflow:hidden}
.logo-rain{height:70px;width:96px;margin:0 auto 16px;display:flex;align-items:flex-end;justify-content:center;gap:4px;filter:drop-shadow(0 0 20px rgba(201,164,71,.35))}
.logo-rain i{display:block;width:18px;border:1px solid rgba(201,164,71,.35);background:linear-gradient(180deg,rgba(139,105,20,.7),rgba(10,20,40,.8));box-shadow:0 0 16px rgba(201,164,71,.2);animation:logo-drop 1.4s ease-in-out infinite}
.logo-rain i:nth-child(1){height:38px;animation-delay:0s}
.logo-rain i:nth-child(2){height:62px;animation-delay:.18s}
.logo-rain i:nth-child(3){height:50px;animation-delay:.36s}
.logo-rain i:nth-child(4){height:44px;animation-delay:.54s}
@keyframes logo-drop{50%{transform:translateY(-10px);filter:brightness(1.5);border-color:rgba(201,164,71,.65)}}
.load-bar{height:8px;margin:18px auto 0;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden;border:1px solid rgba(255,255,255,.1)}
.load-bar i{display:block;height:100%;width:10%;border-radius:999px;background:linear-gradient(90deg,#5f8bb4,#c9a447,#8b6914);transition:width .25s ease}

/* Toast */
.toast{position:absolute;bottom:110px;left:50%;transform:translateX(-50%);z-index:40;font-family:monospace;font-size:.78rem;letter-spacing:.04em;color:#e0d5a0;background:rgba(4,8,20,.82);border:1px solid rgba(201,164,71,.25);border-radius:6px;padding:6px 16px;opacity:0;transition:opacity .25s;pointer-events:none}
.toast.show{opacity:1}

/* Chapter complete */
#screen-complete .panel{width:min(520px,calc(100vw - 26px))}
#screen-complete h2{color:#e0d5a0}
#screen-complete h3{font-size:.82rem;letter-spacing:.08em;color:#c9a447;margin-top:14px}
.leaderboard-list{max-height:180px;overflow-y:auto;margin-top:6px;display:flex;flex-direction:column;gap:4px}
.leaderboard-list.large{margin-top:10px;max-height:200px}
.lb-row{display:flex;align-items:center;gap:10px;padding:6px 12px;background:rgba(6,14,28,.42);border:1px solid rgba(255,255,255,.06);font-size:.78rem;border-radius:8px}
.lb-row .rk{font-weight:700;color:#c9a447;min-width:20px;text-align:center}
.lb-row .nm{flex:1;color:#c4d4e8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lb-row .sc{font-weight:700;color:#e0d5a0;font-variant-numeric:tabular-nums}
.muted{color:#6a7a90;font-size:.76rem;text-align:center;padding:8px}
#nnShareBtn{min-height:30px;font-size:.8rem}

/* Mobile touch controls */
.mobile-ctrls{position:absolute;inset:0;z-index:20;pointer-events:none}
.mobile-ctrls .mc-joystick{position:absolute;bottom:80px;left:24px;width:100px;height:100px;border-radius:50%;background:rgba(201,164,71,.08);border:2px solid rgba(201,164,71,.22);pointer-events:auto;touch-action:none}
.mobile-ctrls .mc-joystick i{display:block;width:42px;height:42px;border-radius:50%;background:rgba(201,164,71,.28);border:2px solid rgba(224,213,160,.35);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none}
.mobile-ctrls .mc-btns{position:absolute;bottom:80px;right:16px;display:flex;flex-direction:column;gap:10px;pointer-events:auto}
.mc-btn{width:52px;height:52px;border-radius:50%;border:2px solid rgba(255,255,255,.2);background:rgba(4,8,20,.65);color:#c4d4e8;font-size:1.2rem;display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-tap-highlight-color:transparent;user-select:none;touch-action:manipulation}
.mc-btn:active{background:rgba(201,164,71,.25);border-color:rgba(201,164,71,.5)}
.mc-pause{position:absolute;top:10px;right:14px;width:36px;height:36px;border-radius:8px;border:1px solid rgba(255,255,255,.15);background:rgba(4,8,20,.55);color:#c4d4e8;font-size:.8rem;cursor:pointer;pointer-events:auto}
.hidden{display:none !important}

@media (max-width:700px){
  .game-bar{height:48px;padding-left:9px;padding-right:9px}
  .game-bar-title{font-size:.7rem}
  .back-link{font-size:.72rem}
  .hud{padding-left:8px;padding-right:8px}
  .objective{font-size:.72rem}
  .prompt{font-size:.7rem;bottom:52px}
  .controls-hint{bottom:8px;font-size:.56rem}
  .panel{padding:20px 18px}
  .setting-row{flex-direction:column;align-items:flex-start;gap:8px}
  .setting-row input[type="range"]{width:100%}
  .water-danger{right:10px}
  .storm-card{right:10px;min-width:150px}
}

@media (max-width:420px){
  .hud{gap:5px}
  .objective{top:12px;font-size:.66rem}
  .prompt{font-size:.66rem}
  .controls-hint{font-size:.52rem;display:none}
  .water-danger{bottom:70px}
  .wd-bar{height:50px}
  .storm-card{top:74px;right:8px;min-width:0;width:132px;padding:6px 8px}
  .storm-hint{display:none}
}

@media (pointer:coarse){.hud .pause-btn{display:none}.mc-btn{min-width:52px;min-height:52px}}

/* Masterclass polish layer */
.objective-card{position:absolute;top:14px;left:50%;transform:translateX(-50%);min-width:min(520px,calc(100vw - 150px));max-width:min(620px,calc(100vw - 130px));padding:9px 18px 8px;border:1px solid rgba(201,164,71,.2);border-radius:10px;background:linear-gradient(180deg,rgba(4,8,18,.78),rgba(4,8,18,.42));box-shadow:0 8px 28px rgba(0,0,0,.28),inset 0 1px rgba(255,255,255,.025);backdrop-filter:blur(8px);text-align:center;transition:transform .28s ease,border-color .28s ease,background .28s ease}
.objective-card.changed{transform:translateX(-50%) scale(1.025);border-color:rgba(224,184,76,.54);background:linear-gradient(180deg,rgba(31,27,15,.88),rgba(4,8,18,.5))}
.objective-kicker{font-family:monospace;font-size:.54rem;letter-spacing:.16em;color:rgba(159,178,200,.68);margin-bottom:2px}
.objective{position:static;transform:none;font-size:.83rem;white-space:normal;line-height:1.25;color:#f1e7bd}
.objective-sub{margin-top:4px;font-size:.65rem;color:#90abc1;line-height:1.25;animation:hint-in .24s ease both}
@keyframes hint-in{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}
.chapter-progress{display:flex;justify-content:center;gap:5px;margin-top:7px}
.chapter-progress i{display:block;width:18px;height:2px;border-radius:999px;background:rgba(255,255,255,.12);transition:background .3s,box-shadow .3s,transform .3s}
.chapter-progress i.active{background:#c9a447;box-shadow:0 0 8px rgba(201,164,71,.55);transform:scaleX(1.08)}
.seal-counter{position:absolute;top:17px;left:14px;display:flex;align-items:center;gap:4px;padding:7px 10px;border-radius:9px;background:rgba(4,8,18,.68);border:1px solid rgba(95,139,180,.24);font-family:monospace;font-size:.72rem;color:#a9c6dd;backdrop-filter:blur(6px);transition:transform .24s,border-color .24s}
.seal-counter.pulse{transform:scale(1.12);border-color:rgba(224,184,76,.7)}
.seal-glyph{color:#6fbde6;text-shadow:0 0 9px rgba(95,180,230,.8)}
.loading-tip{margin:12px 0 0;color:#71859d;font-size:.7rem;line-height:1.4;min-height:2em}

.achievement-toast{position:absolute;z-index:70;top:76px;right:18px;width:min(340px,calc(100vw - 32px));display:flex;gap:12px;align-items:center;padding:13px 15px;border-radius:10px;background:linear-gradient(135deg,rgba(12,20,39,.97),rgba(34,26,10,.94));border:1px solid rgba(224,184,76,.42);box-shadow:0 20px 55px rgba(0,0,0,.55),0 0 26px rgba(201,164,71,.13);transform:translateX(calc(100% + 30px));opacity:0;pointer-events:none;transition:transform .4s cubic-bezier(.2,.8,.2,1),opacity .3s}
.achievement-toast.show{transform:translateX(0);opacity:1}
.achievement-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:rgba(95,139,180,.16);color:#8fd7ff;font-size:1.2rem;box-shadow:inset 0 0 14px rgba(95,180,230,.2)}
.achievement-toast small{display:block;color:#c9a447;font-size:.55rem;letter-spacing:.14em;margin-bottom:2px}
.achievement-toast b{display:block;color:#f4e8bd;font-size:.85rem}
.achievement-toast p{margin:2px 0 0;color:#9eb0c2;font-size:.67rem;line-height:1.35}
.checkpoint-flash{position:absolute;z-index:45;left:50%;top:22%;transform:translate(-50%,-8px);padding:7px 16px;border-top:1px solid rgba(224,184,76,.35);border-bottom:1px solid rgba(224,184,76,.35);font-family:monospace;font-size:.62rem;letter-spacing:.16em;color:#f0d77d;background:rgba(4,8,18,.55);opacity:0;pointer-events:none;transition:opacity .25s,transform .25s}
.checkpoint-flash.show{opacity:1;transform:translate(-50%,0)}
.orientation-note{display:none;position:absolute;z-index:65;left:50%;bottom:10px;transform:translateX(-50%);padding:6px 12px;border-radius:999px;background:rgba(4,8,18,.78);border:1px solid rgba(255,255,255,.12);font-size:.62rem;color:#9fb2c8;pointer-events:none}

.completion-rank{width:78px;height:78px;margin:4px auto 10px;display:grid;place-items:center;border-radius:50%;font-family:Georgia,serif;font-size:2.7rem;font-weight:900;color:#f7e7aa;background:radial-gradient(circle,rgba(201,164,71,.3),rgba(45,32,8,.4) 58%,rgba(4,8,18,.2));border:2px solid rgba(224,184,76,.58);box-shadow:0 0 30px rgba(201,164,71,.22),inset 0 0 18px rgba(224,184,76,.14);animation:rank-arrive .7s cubic-bezier(.16,.8,.22,1) both}
@keyframes rank-arrive{from{opacity:0;transform:scale(.55) rotate(-8deg)}to{opacity:1;transform:none}}
.completion-stats{margin-top:9px}
.completion-note{margin:7px auto 4px;color:#8fa7bb;font-size:.72rem}
.achievement-summary{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:9px 0 3px}
.achievement-chip{padding:5px 8px;border-radius:999px;background:rgba(95,139,180,.12);border:1px solid rgba(95,139,180,.23);font-size:.62rem;color:#a9c6dd}
.achievement-chip.new{border-color:rgba(224,184,76,.45);color:#f0d77d;background:rgba(201,164,71,.1)}

.high-contrast .vignette{box-shadow:inset 0 0 60px rgba(0,0,0,.18),inset 0 0 18px rgba(0,0,0,.08)}
.high-contrast .rain-grain{opacity:.34}
.high-contrast .objective-card,.high-contrast .seal-counter{background:rgba(2,5,12,.9);border-color:rgba(255,220,112,.48)}
.high-contrast .objective{color:#fff4c8;text-shadow:0 0 12px rgba(255,220,112,.34),0 2px 5px #000}
.high-contrast .prompt{color:#ffe781}
.high-contrast .controls-hint{color:rgba(225,238,250,.62)}
.high-contrast .mobile-ctrls .mc-joystick,.high-contrast .mc-btn{border-color:rgba(255,230,145,.5);background:rgba(2,5,12,.8)}
.reduced-effects .rain-grain{display:none}
.reduced-effects .lightning-flash{display:none}
.reduced-effects .wd-label{animation:none}
.reduced-effects .logo-rain i{animation:none}
.reduced-effects .drowning::after{animation:none;opacity:.35}
.reduced-effects .completion-rank{animation:none}

.settings-list{padding-right:2px}
.setting-row button{min-height:32px}
.menu-actions button,.seg button,.mc-btn,.icon-btn,.hud-btn{transition:transform .16s ease,background .18s,border-color .18s,box-shadow .18s}
.menu-actions button:hover,.seg button:hover{transform:translateY(-1px)}
.menu-actions button:active,.seg button:active,.icon-btn:active,.hud-btn:active{transform:translateY(1px) scale(.985)}
.screen-active .panel{animation:panel-enter .34s cubic-bezier(.2,.8,.2,1) both}
@keyframes panel-enter{from{opacity:0;transform:translateY(9px) scale(.985)}to{opacity:1;transform:none}}

@media (max-width:700px){
  .objective-card{top:8px;min-width:calc(100vw - 126px);max-width:calc(100vw - 112px);padding:7px 9px 6px}
  .objective-kicker{display:none}
  .objective{font-size:.68rem}
  .objective-sub{font-size:.58rem}
  .chapter-progress{margin-top:5px}
  .chapter-progress i{width:12px}
  .seal-counter{top:9px;left:8px;padding:6px 8px;font-size:.65rem}
  .achievement-toast{top:58px;right:10px}
  .checkpoint-flash{top:18%;font-size:.56rem}
  .completion-rank{width:64px;height:64px;font-size:2.2rem}
}
@media (max-width:480px) and (orientation:portrait){
  .orientation-note{display:block}
  .mobile-ctrls .mc-joystick{bottom:92px;left:15px;width:92px;height:92px}
  .mobile-ctrls .mc-btns{bottom:88px;right:10px}
  .mc-btn{width:50px;height:50px}
}
@media (max-height:520px) and (orientation:landscape){
  .objective-card{top:5px;padding:5px 12px;min-width:350px}
  .objective-sub{display:none!important}
  .seal-counter{top:7px}
  .chapter-progress{margin-top:3px}
  .mobile-ctrls .mc-joystick{bottom:24px;width:88px;height:88px}
  .mobile-ctrls .mc-btns{bottom:18px;flex-direction:row}
}
@media (prefers-reduced-motion:reduce){.achievement-toast,.checkpoint-flash,.objective-card,.screen-active .panel{transition:none!important;animation:none!important}}
