:root{--ink: #0b1726;--night: #0d1c2d;--sea: #153553;--sea-light: #1c4466;--sea-deep: #0e2439;--panel: #12263b;--panel-hi: #1a3550;--line: #2b4a68;--text: #f7f2e6;--text-dim: #9fb4c8;--accent: #ffc83d;--accent-deep: #b97a0c;--good: #5fd672;--bad: #f0554c;--radius: 14px;--radius-sm: 10px;--gap: 10px;--font-sans: "Rubik", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--font-display: "Lilita One", "Rubik", ui-sans-serif, system-ui, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--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);--anim-scale: 1}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--night);color:var(--text);font-family:var(--font-sans);font-size:16px;line-height:1.4;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}h1,h2,h3,p{margin:0}button,input{font:inherit;color:inherit}button{touch-action:manipulation}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.btn{--face: var(--panel-hi);--edge: var(--ink);--label: var(--text);display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border:2px solid var(--ink);border-radius:12px;background:var(--face);color:var(--label);box-shadow:0 4px 0 var(--edge);font-family:var(--font-display);font-size:17px;letter-spacing:.03em;line-height:1;white-space:nowrap;cursor:pointer;user-select:none;-webkit-user-select:none;transition:transform .08s ease,box-shadow .08s ease,filter .15s ease}@media(hover:hover){.btn:hover:not(:disabled){filter:brightness(1.1)}}.btn:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px 0 var(--edge)}.btn:disabled{--face: #1b2c3f;--label: #5f7489;--edge: var(--ink);cursor:default}.btn-primary{--face: var(--accent);--edge: var(--accent-deep);--label: var(--ink)}.btn-secondary{--face: var(--panel-hi);--edge: #07101b}.btn-danger{--face: var(--bad);--edge: #8f231d;--label: #fff}.btn-ghost{--face: transparent;--label: var(--text-dim);border-color:var(--line);box-shadow:none}.btn-ghost:active:not(:disabled){transform:none;box-shadow:none;background:var(--panel-hi)}@media(hover:hover){.btn-ghost:hover:not(:disabled){filter:none;background:var(--panel-hi);color:var(--text)}}.btn-lg{min-height:54px;padding:0 26px;border-radius:14px;font-size:20px}.btn-block{width:100%}.btn-icon{width:44px;padding:0;flex:none}.panel{background:var(--panel);border:2px solid var(--ink);border-radius:var(--radius);box-shadow:0 5px #040b148c}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:calc(16px + var(--safe-top)) calc(16px + var(--safe-right)) calc(16px + var(--safe-bottom)) calc(16px + var(--safe-left));background:#050d18b8;animation:overlay-in .18s ease-out}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.modal{width:100%;max-width:380px;max-height:100%;overflow-y:auto;padding:24px;background:var(--panel);border:2px solid var(--ink);border-radius:18px;box-shadow:0 8px #040b1499;animation:modal-in .22s cubic-bezier(.2,.9,.3,1.2)}@keyframes modal-in{0%{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}.modal h2{font-family:var(--font-display);font-weight:400;font-size:30px;letter-spacing:.02em;line-height:1.1}.modal-text{margin-top:6px;color:var(--text-dim)}.modal-actions{display:flex;flex-direction:column;gap:12px;margin-top:22px}.toggle{position:relative;width:58px;height:32px;padding:0;border:2px solid var(--ink);border-radius:999px;background:#0c1a2a;cursor:pointer;transition:background .18s ease}.toggle:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:var(--text-dim);transition:transform .18s ease,background .18s ease}.toggle.on{background:var(--accent)}.toggle.on:after{transform:translate(26px);background:var(--ink)}.segmented{display:inline-flex;padding:3px;gap:3px;border:2px solid var(--ink);border-radius:12px;background:#0c1a2a}.seg{min-width:44px;min-height:34px;padding:0 12px;border:none;border-radius:8px;background:transparent;color:var(--text-dim);font-family:var(--font-display);font-size:16px;cursor:pointer;transition:background .15s ease,color .15s ease}.seg.active{background:var(--accent);color:var(--ink)}@media(prefers-reduced-motion:reduce){.overlay,.modal{animation:none}}.board-wrap{position:absolute;top:0;right:0;bottom:0;left:0}.board-svg{display:block;width:100%;height:100%;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.sea-grid-line{fill:none;stroke:#aad7ff13;stroke-width:1.3}.cell-water{fill:#2a6a94;opacity:.4}.land-shadow{fill:#020a14;opacity:.45;pointer-events:none}.mountain-face,.mountain-side,.mountain-peak{stroke:var(--ink);stroke-linejoin:round}.mountain-face{fill:#5d6875;stroke-width:3}.mountain-side{fill:#262d37;stroke-width:3}.mountain-peak{fill:#8f9aa8;stroke-width:1.6}.mountain-snow{fill:#f4f7fa}.layer-mountains{pointer-events:none}.terr-side,.terr-face{stroke:var(--ink);stroke-width:3.2;stroke-linejoin:round;transition:fill .25s ease}.terr-side{pointer-events:none}.terr-face.is-actionable{cursor:pointer}@media(hover:hover){.terr-face.is-actionable:hover{filter:brightness(1.13)}}.layer-highlights path{fill:none;stroke:#fff;stroke-linejoin:round;stroke-linecap:round;pointer-events:none}.hl-selected,.hl-attacker{stroke-width:5.5}.hl-selected-glow{stroke-width:15;opacity:.28;animation:glow-pulse calc(var(--anim-scale, 1) * 1.3s) ease-in-out infinite}.hl-target,.hl-defender{stroke-width:4.5;stroke-dasharray:13 10;animation:march calc(var(--anim-scale, 1) * .9s) linear infinite}@keyframes glow-pulse{0%,to{opacity:.16}50%{opacity:.42}}@keyframes march{to{stroke-dashoffset:-23}}.fog-reveal{animation:fog-reveal calc(var(--anim-scale, 1) * .15s) ease-out}@keyframes fog-reveal{0%{opacity:0}to{opacity:1}}.layer-pieces,.layer-fx{pointer-events:none}.piece-hit,.piece-reach{fill:transparent;pointer-events:all}.piece-hit.is-actionable{cursor:pointer}.piece{transition:opacity .2s ease}.piece.is-dimmed{opacity:.8}.die-left,.die-right,.die-top{stroke:var(--ink);stroke-width:1.7;stroke-linejoin:round}.die-top{fill:#fffdf6}.die-left{fill:#e6dfcc}.die-right{fill:#c8bfa8}.die-pips{fill:var(--ink);opacity:.8}.die-ace{fill:#e5443b}.stack-shadow{fill:#040c1857}.dice-stack use{animation:die-drop calc(var(--anim-scale, 1) * .3s) cubic-bezier(.3,1.45,.6,1) backwards}.static-board .dice-stack use{animation:none}@keyframes die-drop{0%{opacity:0;transform:translateY(-18px)}}.count-badge,.feature-badge{fill:var(--ink);stroke:#ffffffe6;stroke-width:1.7}.count-text{fill:#fff;font-family:var(--font-display);font-size:18px}.glyph-capital{fill:#ffc83d}.glyph-fortress{fill:#e8edf3}.glyph-mine{fill:#5fe3ff;stroke:var(--ink);stroke-width:1.1;stroke-linejoin:round}.odds{animation:fx-in calc(var(--anim-scale, 1) * .16s) ease-out both}.odds rect{stroke:var(--ink);stroke-width:2.2}.odds text{font-family:var(--font-display);font-size:19px;fill:var(--ink)}.odds-good rect{fill:#5fd672}.odds-even rect{fill:#ffc83d}.odds-bad rect{fill:#f0554c}.odds-bad text{fill:#fff}.attack-arrow{animation:fx-in calc(var(--anim-scale, 1) * .15s) ease-out both}.attack-arrow path{fill:#fff;stroke:var(--ink);stroke-width:2.6;stroke-linejoin:round}@keyframes fx-in{0%{opacity:0}to{opacity:1}}.reinforcement-anim{font-family:var(--font-display);font-size:30px;fill:#fff;stroke:var(--ink);stroke-width:5;stroke-linejoin:round;paint-order:stroke;opacity:0;animation:float-up calc(var(--anim-scale, 1) * .8s) ease-out forwards}@keyframes float-up{0%{opacity:0;transform:translateY(12px) scale(.6)}20%{opacity:1;transform:translateY(0) scale(1.15)}to{opacity:0;transform:translateY(-34px) scale(1)}}.game-screen{position:relative;height:100vh;height:100dvh;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;grid-template-areas:"top" "play" "dock";gap:8px;padding:calc(8px + var(--safe-top)) calc(8px + var(--safe-right)) calc(8px + var(--safe-bottom)) calc(8px + var(--safe-left));background:radial-gradient(ellipse 95% 85% at 50% 45%,var(--sea-light) 0%,var(--sea) 55%,var(--sea-deep) 100%)}.topbar,.dock{position:relative;z-index:2}.play-area{grid-area:play;position:relative;min-width:0;min-height:0}.play-area .board-svg{overflow:visible}.play-area.busy .terr-face,.play-area.busy .piece-hit,.play-area.busy .piece-reach{pointer-events:none}.topbar{grid-area:top;display:flex;align-items:center;gap:8px;padding:6px}.topbar .btn-icon{--face: var(--panel);border-color:var(--ink);color:var(--text);box-shadow:0 3px #040b148c}.topbar-title{flex:1;min-width:0;display:flex;align-items:baseline;gap:10px;padding:0 6px}.topbar-name{overflow:hidden;font-family:var(--font-display);font-size:20px;letter-spacing:.02em;white-space:nowrap;text-overflow:ellipsis}.topbar-turn{flex:none;color:var(--text-dim);font-size:14px;font-weight:500;font-variant-numeric:tabular-nums}.objective-tracker{position:relative;flex:none}.obj-button{display:flex;align-items:center;gap:3px;min-height:44px;padding:0 10px;border:none;border-radius:12px;background:none;cursor:pointer}.obj-star{display:grid;place-items:center;width:24px;height:24px;color:#56708b;transition:color .2s ease,transform .2s ease}.obj-star svg{width:100%;height:100%}.obj-star.obj-achieved{color:var(--accent);transform:scale(1.1)}.obj-star.obj-failed{color:var(--bad)}.obj-popover{position:absolute;top:calc(100% + 6px);right:0;z-index:30;width:max-content;max-width:min(320px,calc(100vw - 32px));padding:12px 14px;display:flex;flex-direction:column;gap:10px;animation:modal-in .16s ease-out}.obj-line{display:flex;align-items:center;gap:10px;font-size:15px}.obj-icon{flex:none;display:grid;place-items:center;width:20px;height:20px;color:#56708b}.obj-icon svg{width:100%;height:100%}.obj-icon.obj-achieved{color:var(--accent)}.obj-icon.obj-failed{color:var(--bad)}.obj-line.obj-failed span:last-child{color:var(--text-dim);text-decoration:line-through}.obj-toast{position:absolute;top:calc(100% + 6px);right:0;z-index:31;width:max-content;max-width:min(320px,calc(100vw - 32px));padding:9px 13px;border:2px solid var(--ink);border-radius:12px;background:var(--bad);color:#fff;font-size:14px;font-weight:500;box-shadow:0 4px #040b148c;animation:modal-in .2s ease-out}.dock{grid-area:dock;display:flex;flex-direction:column;gap:10px;padding:10px}.dock-action{display:flex;align-items:center;gap:12px}.turn-status{flex:1;min-width:0;display:flex;align-items:center;gap:9px;font-size:15px;font-weight:500;line-height:1.25}.turn-status-dot{flex:none;width:14px;height:14px;border:2px solid var(--ink);border-radius:4px;background:var(--c)}.turn-status.is-waiting .turn-status-dot{animation:thinking .9s ease-in-out infinite}@keyframes thinking{0%,to{transform:scale(1)}50%{transform:scale(.65)}}.end-turn{flex:none}.end-turn kbd{display:none;padding:3px 6px;border-radius:5px;background:#0b172629;font-family:var(--font-sans);font-size:11px;font-weight:600;letter-spacing:.04em}.player-strip{display:flex;gap:6px;margin:0;padding:0;list-style:none}.player-chip{position:relative;flex:1 1 0;min-width:0;max-width:76px;display:flex;flex-direction:column;align-items:center;gap:3px;transition:opacity .25s ease,transform .2s ease}.chip-tile{width:100%;height:34px;display:grid;place-items:center;border:2px solid var(--ink);border-radius:9px;background:var(--c);box-shadow:0 3px color-mix(in srgb,var(--c) 50%,var(--ink));color:var(--ink);font-family:var(--font-display);font-size:18px;line-height:1;font-variant-numeric:tabular-nums}.chip-name{max-width:100%;overflow:hidden;color:var(--text-dim);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis}.chip-detail{display:none}.player-strip.is-crowded .chip-name{visibility:hidden}.player-strip.is-crowded .is-you .chip-name{visibility:visible}.player-chip.is-current{transform:translateY(-3px)}.player-chip.is-current .chip-tile{outline:3px solid #fff;outline-offset:1px}.player-chip.is-current .chip-name{color:var(--text)}.player-chip.is-out{opacity:.28}.player-chip.is-out .chip-tile{box-shadow:none}.combat{position:absolute;left:50%;z-index:20;width:max-content;max-width:calc(100% - 12px);padding:10px 12px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px 12px;align-items:center;pointer-events:none;transform:translate(-50%);animation:combat-in calc(var(--anim-scale, 1) * .16s) ease-out both}.combat[data-place=top]{top:6px}.combat[data-place=bottom]{bottom:6px}@keyframes combat-in{0%{opacity:0;transform:translate(-50%) scale(.94)}to{opacity:1;transform:translate(-50%)}}.combat-side{display:contents}.combat-who{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;transition:opacity .2s ease}.combat-who:before{content:"";width:12px;height:12px;border:2px solid var(--ink);border-radius:4px;background:var(--side-color)}.dice-row{display:flex;flex-wrap:wrap;gap:4px;transition:opacity .2s ease}.combat-die{--size: 30px;width:var(--size);height:var(--size);padding:calc(var(--size) * .15);display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);place-items:center;border:2px solid var(--ink);border-radius:7px;background:var(--side-color);box-shadow:0 3px color-mix(in srgb,var(--side-color) 50%,var(--ink));opacity:0;animation:die-in calc(var(--anim-scale, 1) * .26s) cubic-bezier(.3,1.5,.6,1) forwards}.combat-die .pip{width:calc(var(--size) * .17);height:calc(var(--size) * .17);border-radius:50%}.combat-die .pip.on{background:#fff;box-shadow:0 0 0 1px #0b172659}@keyframes die-in{0%{opacity:0;transform:translateY(-14px) rotate(-25deg)}to{opacity:1;transform:none}}.combat-sum{min-width:38px;font-family:var(--font-display);font-size:28px;line-height:1;text-align:right;font-variant-numeric:tabular-nums;opacity:0;transition:opacity .15s ease,color .15s ease,transform .2s cubic-bezier(.3,1.6,.6,1)}.combat.is-revealed .combat-sum{opacity:1}.combat.is-revealed .is-winner .combat-sum{color:var(--accent);transform:scale(1.18)}.combat.is-revealed .is-loser>*{opacity:.5}.capital-fall{position:absolute;top:0;right:0;bottom:0;left:0;z-index:25;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;pointer-events:none}.crown-drop{width:96px;height:96px;filter:drop-shadow(0 6px 0 rgba(4,11,20,.6));animation:crown-drop calc(var(--anim-scale, 1) * .6s) cubic-bezier(.34,1.56,.64,1) forwards}.crown-drop path{fill:var(--c);stroke:var(--ink);stroke-width:1.4;stroke-linejoin:round}@keyframes crown-drop{0%{opacity:0;transform:translateY(-120px) rotate(-25deg) scale(.6)}60%{opacity:1;transform:translateY(10px) rotate(6deg) scale(1.1)}to{opacity:1;transform:none}}.capital-fall-banner{padding:6px 16px;border:2px solid var(--ink);border-radius:12px;background:var(--c);color:var(--ink);font-family:var(--font-display);font-size:26px;letter-spacing:.04em;box-shadow:0 4px #040b1499;animation:modal-in calc(var(--anim-scale, 1) * .3s) ease-out both}.endgame{text-align:center}.endgame-badge{width:84px;height:84px;margin:0 auto 10px}.endgame.win h2,.endgame.win .endgame-badge{color:var(--accent)}.endgame.lose .endgame-badge{color:#7d93aa}@media(max-width:759px){.topbar-title{flex-direction:column;align-items:flex-start;gap:0}.topbar-name{max-width:100%;font-size:19px;line-height:1.15}.topbar-turn{font-size:13px;line-height:1.2}}@media(min-width:760px)and (min-height:561px){.game-screen{gap:10px;padding:calc(12px + var(--safe-top)) calc(14px + var(--safe-right)) calc(14px + var(--safe-bottom)) calc(14px + var(--safe-left))}.topbar{padding:8px}.topbar-name{font-size:22px}.topbar-turn{font-size:15px}.dock{flex-direction:row;flex-wrap:wrap;align-items:center;gap:12px 22px;padding:12px 14px}.player-strip{flex:1 1 auto;flex-wrap:wrap;gap:8px 10px;min-width:0}.player-chip{flex:0 0 auto;max-width:none;flex-direction:row;gap:9px;padding:5px 12px 5px 5px;border:2px solid transparent;border-radius:13px}.chip-tile{width:40px;height:40px;font-size:20px}.chip-text{display:flex;flex-direction:column;min-width:0}.chip-name{font-size:12px}.chip-detail{display:block;color:var(--text-dim);font-size:12px;white-space:nowrap}.player-chip.is-current{transform:none;border-color:var(--line);background:var(--panel-hi)}.player-chip.is-current .chip-tile{outline-width:2px}.player-strip.is-crowded .player-chip{flex-direction:column;gap:3px;padding:4px 6px}.player-strip.is-crowded .chip-tile{width:46px;height:36px}.player-strip.is-crowded .chip-detail{display:none}.player-strip.is-crowded .chip-name{font-size:11px;visibility:visible}.dock-action{flex:0 1 auto;gap:18px;margin-left:auto}.turn-status{flex:0 1 auto;max-width:340px}.end-turn kbd{display:inline-block}.combat{padding:14px 18px;gap:10px 16px}.combat-die{--size: 38px;border-radius:9px}.combat-sum{min-width:50px;font-size:36px}.combat-who{font-size:14px}}@media(orientation:landscape)and (max-height:560px){.game-screen{grid-template-columns:minmax(0,1fr) clamp(168px,24vw,220px);grid-template-rows:auto minmax(0,1fr);grid-template-areas:"play top" "play dock"}.topbar-title{flex-direction:column;align-items:flex-start;gap:0;padding:0 2px}.topbar-name{max-width:100%;font-size:16px}.topbar-turn{font-size:12px}.topbar .btn-icon{width:40px;min-height:40px}.obj-button{min-height:40px;padding:0 4px;gap:1px}.obj-star{width:18px;height:18px}.dock{justify-content:space-between;min-height:0;padding:8px}.player-strip{flex-wrap:wrap;gap:5px}.player-chip{flex:0 0 calc(25% - 4px)}.chip-tile{height:28px;font-size:16px}.chip-name{font-size:10px}.dock-action{flex-direction:column;align-items:stretch;gap:8px}.turn-status{font-size:13px}.end-turn{width:100%}.combat-die{--size: 26px}}@media(orientation:portrait)and (max-height:700px){.topbar{padding:2px 6px}.dock{gap:8px;padding:8px}.chip-text{display:none}.chip-tile{height:30px;font-size:17px}.end-turn.btn-lg{min-height:46px;font-size:18px}}@media(max-width:380px){.combat-die{--size: 26px}.combat{gap:6px 8px;padding:8px 10px}}@media(prefers-reduced-motion:reduce){.turn-status.is-waiting .turn-status-dot,.dice-stack use,.hl-selected-glow,.hl-target,.hl-defender{animation:none}}.title-screen,.menu-screen{position:relative;height:100vh;height:100dvh;overflow:hidden;background:radial-gradient(ellipse 95% 85% at 50% 45%,var(--sea-light) 0%,var(--sea) 55%,var(--sea-deep) 100%)}.title-screen{display:flex;overflow-y:auto;padding:calc(20px + var(--safe-top)) calc(20px + var(--safe-right)) calc(20px + var(--safe-bottom)) calc(20px + var(--safe-left))}.static-board{position:absolute;top:0;right:0;bottom:0;left:0}.static-board .board-svg{overflow:visible}.title-backdrop,.results-backdrop{position:fixed;pointer-events:none}.title-backdrop{top:-4%;right:-4%;bottom:-4%;left:-4%;opacity:.5}.title-backdrop:after,.results-backdrop:after{content:"";position:absolute;top:-10%;right:-10%;bottom:-10%;left:-10%;background:radial-gradient(ellipse 60% 55% at 50% 50%,#0d1c2de6,#0d1c2d8c 60%,#0d1c2d40)}.title-backdrop .count-badge,.title-backdrop .count-text{display:none}.settings-fab{--face: var(--panel);position:fixed;top:calc(14px + var(--safe-top));right:calc(14px + var(--safe-right));z-index:5;box-shadow:0 3px #040b148c}.title-column{position:relative;z-index:1;width:100%;max-width:380px;margin:auto;display:flex;flex-direction:column;align-items:center;gap:clamp(20px,4.5vh,40px)}.logo{display:flex;flex-direction:column;align-items:center;transform:rotate(-3deg)}.logo-dice{width:clamp(104px,20vh,168px);margin-bottom:-6px;overflow:visible}.logo-name{display:flex;flex-direction:column;align-items:center;font-family:var(--font-display);font-weight:400;font-size:clamp(60px,13vh,104px);line-height:.84;letter-spacing:.02em;text-transform:uppercase;color:var(--text);-webkit-text-stroke:.09em var(--ink);paint-order:stroke fill;text-shadow:0 .09em 0 var(--ink)}.logo-name span:last-child{color:var(--accent)}.title-menu{width:100%;display:flex;flex-direction:column;gap:14px}.continue-row{display:flex;gap:10px}.continue-btn{flex:1;min-width:0;min-height:64px;justify-content:flex-start;gap:14px}.continue-row .btn-icon{width:58px;min-height:64px}.btn-stack{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:4px}.btn-stack small{max-width:100%;overflow:hidden;font-family:var(--font-sans);font-size:13px;font-weight:500;letter-spacing:0;text-overflow:ellipsis;opacity:.75}.confirm-row{min-height:64px;padding:8px 8px 8px 16px;display:flex;align-items:center;gap:8px;font-weight:500}.confirm-row span{flex:1}.title-foot{color:var(--text-dim);font-size:13px;text-decoration:none;opacity:.7}.title-foot:hover{opacity:1;text-decoration:underline}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.modal-note{margin-top:18px;padding:10px 12px;border-radius:var(--radius-sm);background:#ffc83d1f;color:var(--accent);font-size:14px}.field{margin-top:18px}.field-label{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:8px;font-size:13px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--text-dim)}.field-hint{font-weight:400;letter-spacing:0;text-transform:none}.field-error{margin-top:8px;color:#ff9a93;font-size:14px}.segmented-fill{display:flex}.segmented-fill .seg{flex:1;min-width:0;min-height:42px;padding:0}.code-field{margin-top:18px;padding-top:14px;border-top:2px solid rgba(43,74,104,.5)}.code-field summary{color:var(--text-dim);font-size:14px;font-weight:500;cursor:pointer}.code-row{display:flex;gap:8px;margin-top:12px}.code-row input{flex:1;min-width:0;min-height:44px;padding:0 12px;border:2px solid var(--ink);border-radius:12px;background:#0c1a2a;font-family:var(--font-mono);font-size:16px;text-transform:uppercase}.code-row input::placeholder{color:#4f667c}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:62px;padding:8px 0;border-top:2px solid rgba(43,74,104,.5)}.settings-label{display:flex;flex-direction:column;font-size:17px;font-weight:500}.settings-label small{color:var(--text-dim);font-size:13px;font-weight:400}.code-copy{gap:10px;padding:0 12px;font-family:var(--font-mono);font-size:13px;letter-spacing:0}.menu-screen{display:flex;flex-direction:column}.menu-head{position:relative;z-index:2;flex:none;display:flex;align-items:center;gap:12px;padding:calc(12px + var(--safe-top)) calc(14px + var(--safe-right)) 12px calc(14px + var(--safe-left));background:var(--panel);border-bottom:2px solid var(--ink)}.menu-head h1{flex:1;font-family:var(--font-display);font-weight:400;font-size:26px;letter-spacing:.02em}.star-total{display:flex;align-items:center;gap:5px;padding:6px 12px;border:2px solid var(--ink);border-radius:999px;background:#0c1a2a;font-family:var(--font-display);font-size:18px;font-variant-numeric:tabular-nums}.star-total svg{color:var(--accent)}.star-total span{color:var(--text-dim)}.wm-worlds{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:22px calc(16px + var(--safe-right)) calc(32px + var(--safe-bottom)) calc(16px + var(--safe-left))}.wm-world{max-width:1080px;margin:0 auto 30px}.wm-world-head{display:flex;align-items:baseline;gap:10px;margin-bottom:12px;color:var(--text-dim)}.wm-world-no{font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.wm-world-head h2{flex:1;font-family:var(--font-display);font-weight:400;font-size:22px;color:var(--text)}.wm-world-stars{font-size:14px;font-weight:500;font-variant-numeric:tabular-nums}.wm-world.locked h2{color:var(--text-dim)}.wm-nodes{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.mnode{min-height:104px;padding:12px 14px;display:flex;flex-direction:column;align-items:flex-start;gap:2px;border:2px solid var(--ink);border-radius:var(--radius);background:var(--panel-hi);box-shadow:0 4px #040b1499;text-align:left;cursor:pointer;transition:transform .08s ease,box-shadow .08s ease,filter .15s ease}@media(hover:hover){.mnode:hover:not(:disabled){filter:brightness(1.12)}}.mnode:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px #040b1499}.mnode-index{color:var(--text-dim);font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}.mnode-title{flex:1;display:flex;align-items:flex-start;gap:6px;font-family:var(--font-display);font-size:19px;line-height:1.1}.mnode-stars{display:inline-flex;gap:2px}.mnode-stars .pip{display:grid;width:20px;height:20px;color:#0b172699}.mnode-stars .pip svg{width:100%;height:100%}.mnode-stars .pip.on{color:var(--accent)}.mnode.is-next{background:var(--accent);color:var(--ink);box-shadow:0 4px 0 var(--accent-deep)}.mnode.is-next .mnode-index{color:#0b1726b3}.mnode.is-next .pip{color:#0b172640}.mnode.is-next:active{box-shadow:0 1px 0 var(--accent-deep)}.mnode.locked{background:transparent;border-color:#2b4a68b3;box-shadow:none;color:#5d758d;cursor:default}.mnode.locked .mnode-index{color:inherit}.mnode.locked .mnode-title{align-items:center;font-family:var(--font-sans);font-size:14px;font-weight:500}.mnode.locked .mnode-stars{visibility:hidden}.briefing-screen,.results-screen{align-items:center;justify-content:center;padding:calc(12px + var(--safe-top)) calc(12px + var(--safe-right)) calc(12px + var(--safe-bottom)) calc(12px + var(--safe-left))}.briefing{width:100%;max-width:480px;max-height:100%;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(150px,34vh) minmax(0,auto) auto;overflow:hidden}.briefing-map{position:relative;overflow:hidden;background:radial-gradient(ellipse 95% 85% at 50% 45%,var(--sea-light) 0%,var(--sea) 60%,var(--sea-deep) 100%);border-bottom:2px solid var(--ink)}.briefing-map .static-board{top:6px;right:6px;bottom:6px;left:6px}.briefing-body{min-height:0;overflow-y:auto;padding:18px 20px 6px}.eyebrow{color:var(--text-dim);font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.briefing-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:4px}.briefing-title h1,.results-card h1{font-family:var(--font-display);font-weight:400;font-size:34px;line-height:1.05;letter-spacing:.01em}.dispatch{margin-top:10px;color:#c6d4e1;font-size:16px;line-height:1.5}.tags{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0 0;padding:0;list-style:none}.tags li{padding:4px 10px;border-radius:999px;background:#0c1a2a;color:var(--text-dim);font-size:13px;font-weight:500}.objective-list{display:flex;flex-direction:column;gap:10px;margin:16px 0 0;padding:0;list-style:none}.objective{display:flex;align-items:center;gap:10px;font-weight:500}.objective-icon{flex:none;display:grid;width:22px;height:22px;color:var(--accent)}.objective-icon svg{width:100%;height:100%}.objective.is-missed{color:var(--text-dim)}.objective.is-missed .objective-icon{color:#56708b}.briefing-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px 20px}.briefing-actions .btn-primary{flex:1;max-width:240px}.results-backdrop{top:0;right:0;bottom:0;left:0;opacity:.55}.results-card{position:relative;z-index:1;width:100%;max-width:420px;max-height:100%;overflow-y:auto;padding:24px;text-align:center;animation:modal-in .3s cubic-bezier(.2,.9,.3,1.2)}.results-stars{display:flex;justify-content:center;align-items:flex-end;gap:6px;margin-bottom:8px}.big-star{display:grid;width:64px;height:64px;color:#0c1a2a}.big-star:nth-child(2){width:80px;height:80px}.big-star svg{width:100%;height:100%;stroke:var(--ink)}.big-star.on{color:var(--accent);animation:star-pop .45s cubic-bezier(.3,1.7,.5,1) both}@keyframes star-pop{0%{opacity:0;transform:scale(.2) rotate(-40deg)}to{opacity:1;transform:none}}.results-card.win h1{color:var(--accent)}.results-subtitle{margin-top:4px;color:var(--text-dim)}.results-card .objective-list{margin-top:18px;padding:14px 16px;border-radius:var(--radius-sm);background:#0c1a2a;text-align:left}.results-actions{display:flex;flex-direction:column;gap:12px;margin-top:20px}.results-actions-row{display:flex;gap:10px}.results-actions-row .btn{flex:1}@media(min-width:860px)and (min-height:520px){.briefing{max-width:960px;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;min-height:min(520px,100%)}.briefing-map{grid-row:1 / -1;border-bottom:none;border-right:2px solid var(--ink)}.briefing-map .static-board{top:14px;right:14px;bottom:14px;left:14px}.briefing-body{padding:28px 30px 8px}.briefing-title h1{font-size:40px}.briefing-actions{padding:18px 30px 28px}.wm-worlds{padding-top:30px}.wm-nodes{grid-template-columns:repeat(auto-fill,minmax(164px,1fr));gap:14px}.menu-head{padding-left:calc(24px + var(--safe-left));padding-right:calc(24px + var(--safe-right))}}@media(orientation:landscape)and (max-height:519px){.briefing{max-width:900px;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);grid-template-rows:minmax(0,1fr) auto;height:100%}.briefing-map{grid-row:1 / -1;border-bottom:none;border-right:2px solid var(--ink)}.briefing-body{padding:14px 18px 4px}.briefing-title h1{font-size:28px}.dispatch{font-size:15px}.briefing-actions{padding:10px 18px 14px}.title-column{max-width:640px;flex-direction:row;gap:32px}.logo-dice{width:96px}.logo-name{font-size:58px}.title-foot{display:none}.results-card{max-width:620px;padding:16px 20px}.big-star{width:44px;height:44px}.big-star:nth-child(2){width:54px;height:54px}.results-card .objective-list{margin-top:10px}.results-actions{flex-direction:row;margin-top:14px}.results-actions>*{flex:1}}@media(prefers-reduced-motion:reduce){.big-star.on,.results-card{animation:none}}
