:root{color-scheme:light;--ink: #17243b;--ink-soft: #5d6677;--paper: #f6f3ec;--paper-deep: #eae5da;--white: #fffdfa;--line: #d9d3c7;--navy: #17243b;--navy-bright: #263b5d;--fix: #07866f;--fix-dark: #056555;--fix-soft: #d7f5e9;--error: #d94d35;--error-dark: #a83325;--error-soft: #ffe4dc;--story: #b76a00;--story-dark: #7a4600;--story-soft: #fff0c7;--yellow: #f3c851;--shadow-sm: 0 2px 0 rgb(23 36 59 / 12%);--shadow-md: 0 12px 34px rgb(23 36 59 / 12%), 0 3px 0 rgb(23 36 59 / 9%);--shadow-lg: 0 28px 80px rgb(23 36 59 / 18%), 0 5px 0 rgb(23 36 59 / 10%);--radius-sm: 8px;--radius-md: 14px;--radius-lg: 24px;--font-ui: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace}*{box-sizing:border-box}html{min-width:320px;background:var(--paper);color:var(--ink);font-family:var(--font-ui)}body{min-width:320px;min-height:100vh;min-height:100dvh;margin:0;background:radial-gradient(circle at 8% 15%,rgb(243 200 81 / 10%),transparent 25rem),var(--paper)}#app{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}button,textarea{font:inherit}button{color:inherit}button:focus-visible,summary:focus-visible,a:focus-visible,textarea:focus-visible,input:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}.skip-link{position:fixed;z-index:100;top:.75rem;left:.75rem;padding:.7rem 1rem;border-radius:var(--radius-sm);background:var(--white);color:var(--navy);transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.app-header{flex:0 0 auto;min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem clamp(1rem,4vw,4rem);border-bottom:1px solid rgb(23 36 59 / 11%);background:#f6f3ece0;backdrop-filter:blur(12px)}.brand{display:inline-flex;align-items:center;gap:.7rem;color:var(--navy);font-weight:800;letter-spacing:-.02em;text-decoration:none}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--navy);box-shadow:3px 3px 0 var(--yellow);color:#fff;font-family:var(--font-mono);font-size:.8rem}.brand-mark span{color:var(--error)}.app-version{padding:.2rem .4rem;border-radius:999px;background:var(--paper-deep);color:var(--ink-soft);font-family:var(--font-mono);font-size:.58rem;letter-spacing:.03em}.settings{display:flex;align-items:center;gap:.5rem}.icon-button{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:var(--white);cursor:pointer;font-family:var(--font-mono);font-weight:800}.header-control-icon{width:23px;height:23px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.9}.header-new-game,.header-minigames{min-height:44px;padding:.55rem .9rem;border:1px solid var(--line);border-radius:999px;background:var(--white);cursor:pointer;font-size:.78rem;font-weight:800}.header-minigames{display:inline-flex;align-items:center;gap:.45rem;border-color:var(--navy);background:var(--yellow);color:var(--navy)}.header-new-game:hover:not(:disabled),.header-minigames:hover:not(:disabled){border-color:var(--navy);transform:translateY(-1px)}.header-new-game:disabled,.header-minigames:disabled{cursor:wait;opacity:.55}.icon-button:hover{border-color:var(--navy);transform:translateY(-1px)}.eyebrow,.panel-kicker{margin:0 0 .65rem;color:var(--ink-soft);font-family:var(--font-mono);font-size:.75rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.primary-button,.secondary-button,.text-button{min-height:48px;border-radius:999px;cursor:pointer;font-weight:800}.primary-button{display:inline-flex;align-items:center;justify-content:space-between;gap:2rem;padding:.85rem 1.35rem;border:2px solid var(--navy);background:var(--navy);box-shadow:4px 4px 0 var(--yellow);color:#fff}.primary-button:hover:not(:disabled){background:var(--navy-bright);transform:translate(-1px,-1px);box-shadow:6px 6px 0 var(--yellow)}.primary-button:active:not(:disabled){transform:translate(2px,2px);box-shadow:2px 2px 0 var(--yellow)}.primary-button:disabled{cursor:wait;opacity:.68;box-shadow:2px 2px 0 var(--line)}.secondary-button{padding:.75rem 1.2rem;border:1px solid var(--navy);background:var(--white)}.text-button{padding:.75rem .5rem;border:0;background:transparent;color:var(--navy);text-decoration:underline;text-underline-offset:4px}.welcome-shell,.game-shell,.complete-shell{width:min(1680px,100%);margin:0 auto;padding:clamp(2rem,5vw,5rem) clamp(1rem,4vw,4rem)}.welcome-shell{display:grid;grid-template-columns:minmax(0,.95fr) minmax(420px,1.05fr);gap:clamp(2rem,7vw,7rem);align-items:center;min-height:calc(100vh - 74px)}.hero h1,.completion-hero h1{max-width:780px;margin:0;font-size:clamp(2.75rem,6vw,6.6rem);line-height:.92;letter-spacing:-.065em}.hero h1 em{color:var(--error);font-family:Georgia,serif;font-weight:400}.hero-copy{max-width:650px;margin:1.8rem 0;color:var(--ink-soft);font-size:clamp(1rem,1.4vw,1.2rem);line-height:1.7}.start-button{min-width:min(280px,100%)}.game-setup{display:grid;gap:.85rem;max-width:650px;margin:0 0 1.4rem;padding:1rem;border:0;border-radius:var(--radius-md);background:#fffdfab8;box-shadow:inset 0 0 0 1px #17243b17}.game-setup legend{padding:0 .35rem;color:var(--ink-soft);font-family:var(--font-mono);font-size:.67rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.game-setup label{display:grid;gap:.35rem}.game-setup label>span{display:flex;justify-content:space-between;gap:1rem}.game-setup b{font-size:.8rem}.game-setup output{color:var(--ink-soft);font-family:var(--font-mono);font-size:.7rem}.game-setup input{width:100%;accent-color:var(--navy)}.session-note{margin:1.1rem 0 0;color:var(--ink-soft);font-family:var(--font-mono);font-size:.72rem}.preview-card{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--white);box-shadow:var(--shadow-lg);transform:rotate(1deg)}.window-bar{display:flex;align-items:center;gap:.4rem;height:50px;padding:0 1rem;border-bottom:1px solid var(--line);background:#eeebe4}.window-bar span{width:10px;height:10px;border-radius:50%;background:var(--line)}.window-bar span:first-child{background:var(--error)}.window-bar span:nth-child(2){background:var(--yellow)}.window-bar span:nth-child(3){background:var(--fix)}.window-bar strong{margin-left:auto;color:var(--ink-soft);font-family:var(--font-mono);font-size:.7rem}.preview-content{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;min-height:370px;padding:2rem;background-image:radial-gradient(var(--line) 1px,transparent 1px);background-size:18px 18px}.preview-step{position:relative;z-index:2;display:grid;gap:.55rem;min-width:0;padding:1rem;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--white);box-shadow:var(--shadow-sm)}.preview-step.active{border:2px solid var(--navy);box-shadow:5px 5px 0 var(--yellow)}.preview-step span{color:var(--ink-soft);font-family:var(--font-mono);font-weight:800}.preview-step small{overflow:hidden;font-weight:700;text-overflow:ellipsis}.preview-route{position:relative;z-index:1;width:76px;padding:.65rem .2rem;border-top:4px solid currentColor;text-align:center}.preview-route b,.preview-route span{display:block}.preview-route b{font-family:var(--font-mono);font-size:.8rem}.preview-route span{font-size:.58rem}.fix-preview{color:var(--fix)}.error-preview{color:var(--error);border-top-style:dashed}.preview-caption{margin:0;padding:1rem 1.5rem;border-top:1px solid var(--line);color:var(--ink-soft);font-family:var(--font-mono);font-size:.7rem}.pulse-dot{display:inline-block;width:8px;height:8px;margin-right:.5rem;border-radius:50%;background:var(--fix)}.how-strip{grid-column:1 / -1;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:1rem;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--line)}.how-strip article{display:flex;gap:1rem;padding:1.25rem;background:var(--white)}.how-strip article>b{color:var(--error);font-family:var(--font-mono)}.how-strip article span,.how-strip article strong{display:block}.how-strip article span{color:var(--ink-soft);font-size:.8rem;line-height:1.45}.how-strip article strong{margin-bottom:.25rem;color:var(--ink);font-size:.9rem}.fatal-error{width:min(680px,calc(100% - 2rem));margin:10vh auto;padding:2rem;border:2px solid var(--error);border-radius:var(--radius-lg);background:var(--white);box-shadow:8px 8px 0 var(--error-soft)}@media(max-width:960px){.welcome-shell{grid-template-columns:1fr;min-height:auto}.preview-card{transform:none}}@media(max-width:700px){.brand>span:nth-child(2){display:none}.app-header{min-height:64px}.welcome-shell,.game-shell,.complete-shell{padding-top:2rem}.preview-content{min-height:280px;padding:1rem}.preview-route{width:34px}.preview-route span{display:none}.preview-step{padding:.65rem}.preview-step small{font-size:.68rem}.how-strip{grid-template-columns:1fr}}@media(max-width:520px){.header-new-game,.header-minigames{width:44px;padding-inline:0;justify-content:center;overflow:hidden;font-size:0}.header-new-game span,.header-minigames>span:last-child{font-size:1rem}.header-minigames-label{display:none}}@media(max-width:380px){.app-header{gap:.5rem;padding-inline:.75rem}.settings{gap:.35rem}.app-version{display:none}}@media(forced-colors:active){*{box-shadow:none!important}.route-path{forced-color-adjust:auto}}.game-shell{display:grid;flex:1 1 auto;width:100%;min-height:0;padding:clamp(.45rem,1.4dvh,.85rem) clamp(.5rem,2vw,2rem);overflow:hidden}.board-topline{position:relative;z-index:25;display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:68px;padding:.65rem 1rem;background:#fffdfaf5}.current-step{min-width:0}.current-step>span{display:block;margin-bottom:.18rem;color:var(--ink-soft);font-family:var(--font-mono);font-size:.6rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.current-step h1{margin:0;overflow:hidden;font-size:clamp(1.1rem,1.8vw,1.65rem);letter-spacing:-.035em;text-overflow:ellipsis;white-space:nowrap}.board-disclosures{display:flex;flex:0 0 auto;gap:.4rem}.compact-disclosure{position:relative}.compact-disclosure>summary{display:flex;align-items:center;justify-content:center;gap:.4rem;min-width:42px;min-height:38px;padding:.4rem .7rem;border:0;border-radius:999px;background:var(--paper);cursor:pointer;font-size:.72rem;font-weight:850;list-style:none}.compact-disclosure>summary::-webkit-details-marker{display:none}.compact-disclosure>summary span{color:var(--ink-soft);font-family:var(--font-mono)}.run-popover,.help-popover{position:absolute;z-index:40;top:calc(100% + .45rem);right:0;width:260px;margin:0;padding:.8rem;border-radius:var(--radius-sm);background:var(--white);box-shadow:0 12px 35px #17243b2e}.run-popover{width:280px}.run-stats{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;margin:0}.run-stats dt{color:var(--ink-soft);font-size:.6rem;text-transform:uppercase}.run-stats dd{margin:.12rem 0 0;font-family:var(--font-mono);font-size:.75rem;font-weight:850}.help-popover{width:min(330px,84vw)}.help-popover p{margin:.4rem 0 .75rem;color:var(--ink-soft);font-size:.75rem;line-height:1.45}.auto-roll-toggle{display:flex;align-items:center;justify-content:space-between;gap:.8rem;width:100%;margin-top:.8rem;padding:.7rem 0;border:0;border-top:1px solid var(--line);background:transparent;cursor:pointer;text-align:left}.auto-roll-toggle span{display:grid;gap:.1rem}.auto-roll-toggle small{color:var(--ink-soft);font-size:.62rem}.auto-roll-toggle i{position:relative;width:36px;height:20px;border-radius:999px;background:var(--line)}.auto-roll-toggle i:after{position:absolute;content:"";top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:#fff;transition:transform .16s ease}.auto-roll-toggle[aria-checked=true] i{background:var(--fix)}.auto-roll-toggle[aria-checked=true] i:after{transform:translate(16px)}.board-stage{position:relative;display:grid;min-height:0}.roll-die-control.roll-button{position:absolute;z-index:20;top:1rem;right:1.15rem;width:54px;min-height:0;padding:0;border:0;border-radius:14px;background:transparent;cursor:pointer}.roll-die-control:disabled{cursor:wait;opacity:.82}.roll-die-control .dice{display:block;width:54px;height:54px;margin:0;border-width:2px;border-radius:13px;box-shadow:inset -4px -4px 7px #17243b1f,3px 4px #09111f,5px 7px 14px #17243b2e;transform:rotate(-2deg)}.roll-die-control .dice:before{inset:4px;border-radius:8px}.roll-die-control .dice i{width:8px;height:8px}.roll-die-control .dice i[data-pip=tl]{top:10px;left:10px}.roll-die-control .dice i[data-pip=ml]{left:10px}.roll-die-control .dice i[data-pip=bl]{bottom:10px;left:10px}.roll-die-control .dice i[data-pip=tr]{top:10px;right:10px}.roll-die-control .dice i[data-pip=mr]{right:10px}.roll-die-control .dice i[data-pip=br]{right:10px;bottom:10px}.game-heading{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:1.5rem}.game-heading h1{margin:0;font-size:clamp(1.7rem,3vw,3rem);letter-spacing:-.045em}.status-live{display:inline-block;margin-left:.45rem;padding:.25rem .5rem;border-radius:999px;background:var(--fix-soft);color:var(--fix-dark);letter-spacing:.04em}.status-live:before{content:"";display:inline-block;width:6px;height:6px;margin-right:.35rem;border-radius:50%;background:currentColor}.compact-stats{display:flex;margin:0;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--white)}.compact-stats div{min-width:88px;padding:.75rem 1rem;border-left:1px solid var(--line)}.compact-stats div:first-child{border-left:0}.compact-stats dt{color:var(--ink-soft);font-size:.66rem;text-transform:uppercase}.compact-stats dd{margin:.18rem 0 0;font-family:var(--font-mono);font-weight:800}.game-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(1rem,2vw,2rem);align-items:start}.board-panel,.turn-card,.event-card,.help-card{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--white);box-shadow:var(--shadow-sm)}.board-panel{display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:100%;min-width:0;min-height:0;overflow:hidden;border:0;box-shadow:0 10px 35px #17243b1a}.board-toolbar{display:flex;align-items:end;justify-content:space-between;gap:1rem;min-height:52px;padding:.55rem 1rem;border-bottom:1px solid var(--line)}.board-toolbar h2{margin:0;font-size:1rem}.board-toolbar .panel-kicker{margin-bottom:.25rem}.legend{display:flex;gap:1rem;color:var(--ink-soft);font-size:.72rem;font-weight:700}.hud-help{position:relative;margin-left:auto;font-size:.75rem}.hud-help summary{min-height:36px;display:grid;place-items:center;padding:.45rem .75rem;border:1px solid var(--line);border-radius:999px;background:var(--white);cursor:pointer;font-weight:800;list-style:none}.hud-help summary::-webkit-details-marker{display:none}.hud-help p{position:absolute;z-index:30;top:calc(100% + .5rem);right:0;width:min(340px,80vw);margin:0;padding:.85rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--white);box-shadow:var(--shadow-md);line-height:1.5}.legend span{display:flex;align-items:center;gap:.4rem}.legend i{display:inline-block;width:23px;height:5px}.fix-key{border-top:4px solid var(--fix)}.story-key{border-top:4px dashed var(--story)}.error-key{border-top:4px dashed var(--error)}.board{position:relative;display:grid;height:100%;min-height:0;grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(var(--board-rows),minmax(0,1fr));gap:4px;padding:clamp(.5rem,1.5vw,1.25rem);background:linear-gradient(135deg,rgb(23 36 59 / 3%) 25%,transparent 25%) 0 0 / 18px 18px,var(--paper-deep);isolation:isolate}.board-square{position:relative;z-index:1;display:flex;flex-direction:column;min-width:0;min-height:0;padding:clamp(.32rem,.65vw,.7rem);overflow:visible;border:1px solid transparent;border-radius:clamp(4px,.7vw,10px);background:#fffdfaf0;box-shadow:0 1px 3px #17243b14}.board-square:nth-of-type(odd){background:#f9f7f1f5}.board-square.visited{background:#e9e6de;color:#747a84}.board-square.milestone{border-color:#8993a2;background-image:linear-gradient(135deg,rgb(243 200 81 / 20%),transparent 60%)}.board-square.route-start.fix{border:2px solid var(--fix);background:var(--fix-soft)}.board-square.route-start.incident{border:2px solid var(--error);background:repeating-linear-gradient(-45deg,transparent 0 8px,rgb(217 77 53 / 8%) 8px 12px),var(--error-soft)}.board-square.current{z-index:4;border:2px solid var(--navy);background:var(--white);box-shadow:4px 4px 0 var(--yellow)}.square-number{color:var(--ink-soft);font-family:var(--font-mono);font-size:clamp(.62rem,.82vw,.82rem);font-weight:800}.square-label{display:-webkit-box;margin-top:auto;overflow:hidden;font-size:clamp(.65rem,.88vw,.92rem);font-weight:750;line-height:1.15;-webkit-box-orient:vertical;-webkit-line-clamp:2}.route-badge{position:absolute;z-index:5;top:.32rem;right:.3rem;padding:.14rem .28rem;border-radius:3px;color:#fff;font-family:var(--font-mono);font-size:clamp(.46rem,.62vw,.62rem);letter-spacing:-.04em}.fix .route-badge{background:var(--fix)}.incident .route-badge{background:var(--error)}.story-bugged .route-badge{background:var(--story)}.route-overlay{position:absolute;z-index:3;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.route-path{fill:none;opacity:.1;stroke-linecap:round;stroke-linejoin:round;transition:opacity .18s ease,stroke-width .18s ease;vector-effect:non-scaling-stroke}.route-path.fix{stroke:var(--fix);stroke-width:3}.route-path.incident{stroke:var(--error);stroke-width:3;stroke-dasharray:3 11}.route-path.story-bug{stroke:var(--story);stroke-width:3;stroke-dasharray:15 7 3 7;opacity:.22}.route-path.active-route{opacity:.96;stroke-width:7;filter:drop-shadow(0 2px 0 white)}.customer-token{position:absolute;z-index:8;left:0;top:0;width:clamp(20px,2vw,28px);height:clamp(24px,2.4vw,34px);opacity:0;filter:drop-shadow(0 2px 1px rgb(23 36 59 / 18%));pointer-events:none;will-change:transform}.customer-token.is-positioned{opacity:.92}.customer-token.is-moving{transition:transform var(--token-step-duration, .18s) cubic-bezier(.22,.75,.3,1)}.token-head,.token-body,.token-folder{position:absolute;display:block}.token-head{top:0;left:34%;width:31%;aspect-ratio:1;border:2px solid var(--navy);border-radius:50%;background:var(--yellow)}.token-body{bottom:0;left:18%;width:64%;height:67%;border:2px solid var(--navy);border-radius:45% 45% 20% 20%;background:var(--navy-bright)}.token-folder{right:0;bottom:3%;width:53%;height:38%;border:2px solid var(--navy);border-radius:3px;background:var(--yellow);transform:rotate(-8deg)}.route-summary{min-height:0;color:var(--ink-soft);font-size:.78rem}.route-summary[open]{max-height:min(35dvh,260px);overflow:auto}.route-summary summary{min-height:44px;padding:.85rem 1rem;cursor:pointer;font-weight:700}.route-summary ul{columns:2;margin:0;padding:0 2rem 1rem}.route-summary li{margin-bottom:.35rem}.control-panel{order:-1;position:sticky;z-index:20;top:.75rem;display:grid;grid-template-columns:minmax(380px,.8fr) minmax(360px,1.2fr) minmax(240px,.65fr);gap:1rem;margin:-.6rem;padding:.6rem;border-radius:calc(var(--radius-md) + .6rem);background:#f6f3eceb;box-shadow:0 10px 28px #17243b14;backdrop-filter:blur(14px)}.turn-card,.event-card,.help-card{padding:1.25rem}.turn-card{display:grid;grid-template-columns:118px minmax(0,1fr);grid-template-rows:auto auto auto auto;align-items:center;text-align:left}.turn-card>.panel-kicker{grid-column:1 / -1}.dice-shell{display:flex;flex-direction:column;align-items:center;gap:.35rem}.dice-label{color:var(--ink-soft);font-family:var(--font-mono);font-size:.58rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.dice{position:relative;width:76px;height:76px;margin:0 auto;border:2px solid #0d1829;border-radius:15px;background:linear-gradient(145deg,#fff,#f6f3ec 72%,#d8d4ca);box-shadow:inset 4px 4px 8px #ffffffe0,inset -7px -7px 10px #17243b1f,5px 7px #101c30,8px 10px 12px #17243b33;transform:rotate(-3deg) skewY(1deg)}.dice:before{position:absolute;content:"";inset:6px;border:1px solid rgb(23 36 59 / 10%);border-radius:10px}.dice i{position:absolute;display:none;width:11px;height:11px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#43577a 0 18%,#17243b 24% 68%,#09111f 72%);box-shadow:inset 1px 2px 2px #ffffff29}.dice i[data-pip=tl]{top:14px;left:14px}.dice i[data-pip=ml]{top:50%;left:14px;transform:translateY(-50%)}.dice i[data-pip=bl]{bottom:14px;left:14px}.dice i[data-pip=c]{top:50%;left:50%;transform:translate(-50%,-50%)}.dice i[data-pip=tr]{top:14px;right:14px}.dice i[data-pip=mr]{top:50%;right:14px;transform:translateY(-50%)}.dice i[data-pip=br]{right:14px;bottom:14px}.dice[data-value="1"] i[data-pip=c],.dice[data-value="2"] i[data-pip=tl],.dice[data-value="2"] i[data-pip=br],.dice[data-value="3"] i[data-pip=tl],.dice[data-value="3"] i[data-pip=c],.dice[data-value="3"] i[data-pip=br],.dice[data-value="4"] i[data-pip=tl],.dice[data-value="4"] i[data-pip=tr],.dice[data-value="4"] i[data-pip=bl],.dice[data-value="4"] i[data-pip=br],.dice[data-value="5"] i[data-pip=tl],.dice[data-value="5"] i[data-pip=tr],.dice[data-value="5"] i[data-pip=c],.dice[data-value="5"] i[data-pip=bl],.dice[data-value="5"] i[data-pip=br],.dice[data-value="6"] i[data-pip=tl],.dice[data-value="6"] i[data-pip=ml],.dice[data-value="6"] i[data-pip=bl],.dice[data-value="6"] i[data-pip=tr],.dice[data-value="6"] i[data-pip=mr],.dice[data-value="6"] i[data-pip=br]{display:block}.phase-label{min-height:1.5em;margin:0 0 1rem;font-weight:800}.roll-button{width:100%}.keyboard-note{grid-column:2;margin:.9rem 0 0;color:var(--ink-soft);font-size:.67rem}kbd{padding:.1rem .3rem;border:1px solid var(--line);border-bottom-width:2px;border-radius:4px;background:var(--paper);font-family:var(--font-mono)}.event-card{position:relative;overflow:hidden}.event-card:after{position:absolute;content:"";top:0;left:0;width:5px;height:100%;background:var(--line)}.event-card.incident{border-color:#eeb3a7;background:var(--error-soft)}.event-card.incident:after{background:var(--error)}.event-card.incident-contained{border-color:#7dc4b2;background:var(--fix-soft)}.event-card.incident-contained:after{background:var(--fix)}.event-card.fix{border-color:#9fd8c8;background:var(--fix-soft)}.event-card.fix:after{background:var(--fix)}.event-card.story-bug{border-color:#dfb35f;background:var(--story-soft)}.event-card.story-bug:after{background:var(--story)}.event-card>p{margin:0 0 .65rem;color:var(--ink-soft);font-family:var(--font-mono);font-size:.65rem}.event-card h2{margin:0 0 .6rem;font-size:1rem}.event-message{color:var(--ink-soft);font-size:.84rem;line-height:1.55}.event-toast{position:fixed;z-index:80;right:clamp(.75rem,3vw,2rem);bottom:clamp(.75rem,3vw,2rem);display:flex;align-items:start;justify-content:space-between;gap:1rem;width:min(410px,calc(100vw - 1.5rem));padding:.9rem .85rem .9rem 1rem;border-radius:16px;background:#fffdfaf5;box-shadow:0 18px 50px #17243b3d;backdrop-filter:blur(14px)}.event-toast:before{position:absolute;content:"";top:1rem;left:0;width:5px;height:24px;border-radius:0 5px 5px 0;background:var(--fix)}.event-toast.incident:before{background:var(--error)}.event-toast.story-bug:before{background:var(--story)}.event-toast.boss:before{background:var(--error)}.event-toast>div{min-width:0}.event-toast span{color:var(--ink-soft);font-family:var(--font-mono);font-size:.58rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.event-toast h2{margin:.18rem 0 .3rem;font-size:.9rem}.event-toast .event-message{display:-webkit-box;margin:0;overflow:hidden;font-size:.75rem;line-height:1.4;-webkit-box-orient:vertical;-webkit-line-clamp:2}.event-toast>button{flex:0 0 auto;width:32px;height:32px;padding:0;border:0;border-radius:50%;background:var(--paper);cursor:pointer;font-size:1rem}.help-card summary{min-height:24px;cursor:pointer;font-weight:800}.help-card p{margin:.8rem 0 0;color:var(--ink-soft);font-size:.8rem;line-height:1.55}.complete-shell{display:grid;grid-template-columns:minmax(0,.8fr) minmax(460px,1.2fr);gap:clamp(2rem,7vw,7rem);align-items:center;min-height:calc(100vh - 74px)}.completion-hero{text-align:center}.completion-hero h1{font-size:clamp(3rem,6vw,6rem)}.completion-hero>p:last-child{color:var(--ink-soft);font-size:1.05rem;line-height:1.6}.success-orbit{position:relative;display:grid;place-items:center;width:140px;height:140px;margin:0 auto 2rem;border:2px dashed var(--fix);border-radius:50%}.success-orbit span{display:grid;place-items:center;width:88px;height:88px;border-radius:50%;background:var(--fix);box-shadow:7px 7px 0 var(--yellow);color:#fff;font-size:3rem;font-weight:900}.success-orbit i{position:absolute;width:10px;height:10px;border-radius:50%;background:var(--error)}.success-orbit i:nth-child(2){top:10px;right:13px}.success-orbit i:nth-child(3){bottom:-8px;left:40px;background:var(--yellow)}.success-orbit i:nth-child(4){top:41px;left:-12px;background:var(--navy)}.report-card{padding:clamp(1.2rem,3vw,2rem);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--white);box-shadow:var(--shadow-lg)}.report-heading{display:flex;align-items:start;justify-content:space-between;gap:1rem}.report-heading h2{margin:0;font-size:clamp(1.5rem,3vw,2.5rem);letter-spacing:-.04em}.seed-chip{padding:.45rem .65rem;border:1px solid var(--line);border-radius:999px;font-family:var(--font-mono);font-size:.7rem}.report-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:1.5rem 0;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--line)}.report-grid article{padding:1rem;background:var(--paper)}.report-grid strong,.report-grid span{display:block}.report-grid strong{font-family:var(--font-mono);font-size:1.6rem}.report-grid span{margin-top:.25rem;color:var(--ink-soft);font-size:.68rem}.report-grid .error-stat strong{color:var(--error)}.report-grid .fix-stat strong{color:var(--fix)}.report-grid .story-stat strong{color:var(--story)}.report-grid .contain-stat strong{color:var(--fix)}.report-label{display:block;margin-bottom:.5rem;font-size:.75rem;font-weight:800}#report-text{width:100%;min-height:150px;resize:vertical;padding:1rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:#1d2939;color:#e5edf7;font-family:var(--font-mono);font-size:.72rem;line-height:1.5}.completion-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem}@media(max-width:1100px){.control-panel{position:static;grid-template-columns:1fr 1fr;margin:0;padding:0;background:transparent;box-shadow:none;backdrop-filter:none}.help-card{grid-column:1 / -1}.complete-shell{grid-template-columns:1fr}.completion-hero h1{margin-inline:auto}}@media(max-width:760px){.game-heading{align-items:stretch;flex-direction:column}.compact-stats{align-self:start}.compact-stats div{min-width:78px;padding:.65rem .7rem}.control-panel{grid-template-columns:1fr}.help-card{grid-column:auto}.route-summary ul{columns:1}.report-grid{grid-template-columns:1fr 1fr}.current-step h1{font-size:1.05rem}}@media(max-width:520px){.board{gap:2px;padding:.35rem}.board-square{padding:.2rem;border-radius:4px}.square-label{display:none}.route-badge{top:auto;right:.12rem;bottom:.15rem;padding:.08rem .15rem}.route-path.fix,.route-path.incident,.route-path.story-bug{stroke-width:4}.legend{width:100%;flex-direction:column;gap:.45rem}.report-heading{flex-direction:column}.completion-actions>*{width:100%;justify-content:center}.board-topline{min-height:60px;padding:.55rem .65rem}.current-step>span{font-size:.52rem}.current-step h1{font-size:.92rem}.compact-disclosure>summary{min-width:38px;min-height:36px;padding-inline:.55rem}.run-details>summary{font-size:0}.run-details>summary:before{content:"•••";font-size:.7rem;letter-spacing:.08em}.run-details>summary span{display:none}.roll-die-control.roll-button{top:.55rem;right:.55rem;width:44px}.roll-die-control .dice{width:44px;height:44px}.roll-die-control .dice i{width:7px;height:7px}.roll-die-control .dice i[data-pip=tl]{top:8px;left:8px}.roll-die-control .dice i[data-pip=ml]{left:8px}.roll-die-control .dice i[data-pip=bl]{bottom:8px;left:8px}.roll-die-control .dice i[data-pip=tr]{top:8px;right:8px}.roll-die-control .dice i[data-pip=mr]{right:8px}.roll-die-control .dice i[data-pip=br]{right:8px;bottom:8px}.event-toast{right:.75rem;bottom:.75rem}}@media(max-width:420px){.compact-stats{display:grid;grid-template-columns:1fr 1fr;width:100%}.compact-stats div{min-width:0;border-top:1px solid var(--line)}.compact-stats div:nth-child(-n+2){border-top:0}.compact-stats div:nth-child(odd){border-left:0}.turn-card{grid-template-columns:96px minmax(0,1fr)}.dice{width:76px;height:76px}.dice i[data-pip=tl]{top:13px;left:13px}.dice i[data-pip=ml]{left:13px}.dice i[data-pip=bl]{bottom:13px;left:13px}.dice i[data-pip=tr]{top:13px;right:13px}.dice i[data-pip=mr]{right:13px}.dice i[data-pip=br]{right:13px;bottom:13px}.keyboard-note{display:none}}@keyframes die-tumble{0%{transform:rotate(-2deg) scale(1)}30%{transform:rotate(18deg) scale(.9)}60%{transform:rotate(-14deg) scale(1.08)}to{transform:rotate(-2deg) scale(1)}}@keyframes incident-shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}@keyframes route-flow{to{stroke-dashoffset:-26}}@keyframes orbit{to{transform:rotate(360deg)}}@keyframes toast-in{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toast-out{to{opacity:0;transform:translateY(8px) scale(.98)}}.dice[data-value]{transition:transform .18s ease}.game-shell[data-phase=rolling] .dice{animation:die-tumble .42s ease-out}.event-toast{animation:toast-in .22s ease-out}.event-toast.incident{animation:incident-shake .26s ease-out}.event-toast.is-leaving{animation:toast-out .18s ease-in forwards}.route-path.incident.active-route{animation:route-flow 1.1s linear infinite}.route-path.story-bug.active-route{animation:route-flow 1.6s linear infinite}.success-orbit{animation:orbit 16s linear infinite}.success-orbit span{animation:orbit 16s linear infinite reverse}.reduce-motion *,.reduce-motion *:before,.reduce-motion *:after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.incident-dialog{width:min(620px,calc(100vw - 2rem));max-height:calc(100dvh - 2rem);padding:0;overflow:auto;border:0;border-radius:var(--radius-lg);background:var(--white);box-shadow:0 35px 100px #070d1873,8px 8px 0 var(--error);color:var(--ink)}.incident-dialog::backdrop{background:#0d1728b8;backdrop-filter:blur(5px)}.challenge-shell{padding:clamp(1.25rem,4vw,2.25rem);background:repeating-linear-gradient(-45deg,transparent 0 14px,rgb(217 77 53 / 3%) 14px 18px),var(--white)}.challenge-topline{display:flex;align-items:center;justify-content:space-between;gap:1rem;color:var(--error-dark);font-family:var(--font-mono);font-size:.7rem;font-weight:900;letter-spacing:.08em}.challenge-timer{min-width:4.6rem;color:var(--error);font-size:1.5rem;text-align:right}.challenge-progress{width:100%;height:12px;margin:.8rem 0 1.5rem;overflow:hidden;border:0;border-radius:999px;accent-color:var(--error)}.challenge-progress::-webkit-progress-bar{background:var(--error-soft)}.challenge-progress::-webkit-progress-value{background:var(--error);border-radius:inherit}.challenge-progress::-moz-progress-bar{background:var(--error);border-radius:inherit}.incident-dialog h2{margin:0;font-size:clamp(1.65rem,5vw,2.6rem);letter-spacing:-.045em}.challenge-instructions{margin:.7rem 0 1.25rem;color:var(--ink-soft);line-height:1.55}.challenge-objective{display:grid;grid-template-columns:auto 1fr;gap:.7rem;align-items:baseline;margin:-.45rem 0 1.25rem;padding:.2rem 0 .2rem .75rem;border-left:3px solid var(--yellow)}.challenge-objective strong{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase}.challenge-objective p{margin:0;color:var(--ink-soft);font-size:.82rem;font-weight:700;line-height:1.4}.challenge-work{display:grid;gap:1rem}.choice-options,.sequence-options,.match-options{display:grid;grid-template-columns:repeat(3,1fr);gap:.65rem}.connection-canvas{position:relative;min-height:220px;overflow:hidden;border:2px solid var(--navy);border-radius:var(--radius-md);background:linear-gradient(rgb(23 36 59 / 6%) 1px,transparent 1px) 0 0 / 18px 18px,linear-gradient(90deg,rgb(23 36 59 / 6%) 1px,transparent 1px) 0 0 / 18px 18px,var(--paper);touch-action:none;user-select:none}.connection-svg{position:absolute;z-index:1;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.connection-line{fill:none;opacity:.42;stroke:var(--error);stroke-linecap:round;stroke-linejoin:round;stroke-width:5;vector-effect:non-scaling-stroke}.connection-line.is-active{opacity:.8;stroke-dasharray:8 6}.connection-line.is-complete{opacity:1;stroke-dasharray:none}.connection-svg marker path{fill:var(--error)}.connection-port{position:absolute;z-index:2;top:50%;width:min(142px,38%);min-height:46px;padding:.55rem .65rem;border:3px solid var(--navy);border-radius:10px;background:var(--white);cursor:grab;font-size:.75rem;font-weight:850;line-height:1.15;transform:translateY(-50%)}.connection-port:active:not(:disabled){cursor:grabbing}.connection-source{left:.65rem;padding-right:1rem;text-align:right}.connection-target{right:.65rem;padding-left:1rem;text-align:left}.connection-port:disabled{cursor:default;opacity:.72}.connection-port[data-complete=true]{background:var(--fix-soft)}.connection-canvas[data-armed=true] .connection-target,.connection-canvas[data-armed-wire] .connection-target{box-shadow:0 0 0 3px var(--yellow)}.wire-amber{--wire-color: var(--story)}.wire-teal{--wire-color: var(--fix)}.wire-red{--wire-color: var(--error)}.connection-port.wire-port{border-color:var(--wire-color)}.connection-source.wire-port{box-shadow:inset -7px 0 0 var(--wire-color)}.connection-target.wire-port{box-shadow:inset 7px 0 0 var(--wire-color)}.connection-line.wire-line{stroke:var(--wire-color)}.challenge-counter{display:flex;align-items:baseline;justify-content:center;padding:.6rem;color:var(--navy)}.challenge-counter strong{font-family:var(--font-mono);font-size:3.6rem;line-height:1}.challenge-counter span{color:var(--ink-soft);font-family:var(--font-mono);font-size:1.4rem;font-weight:800}.challenge-counter-button{min-height:64px;border:2px solid var(--navy);border-radius:var(--radius-md);background:var(--navy);box-shadow:5px 5px 0 var(--yellow);color:#fff;cursor:pointer;font-size:1.05rem;font-weight:900}.challenge-counter-button:active:not(:disabled){transform:translate(3px,3px);box-shadow:2px 2px 0 var(--yellow)}.challenge-flags{display:grid;gap:.55rem}.challenge-flag{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem;min-height:50px;padding:.65rem .8rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--white);cursor:pointer;font-weight:800}.challenge-flag input{width:24px;height:24px;accent-color:var(--fix)}.challenge-flag b{color:var(--ink-soft);font-family:var(--font-mono);font-size:.7rem}.challenge-check .check-fail{color:var(--error)}.challenge-check .check-pass{color:var(--fix-dark)}.challenge-capacity{display:grid;gap:.8rem;padding:.85rem;border-radius:var(--radius-sm);background:var(--paper)}.challenge-range-readouts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.challenge-range-readouts>div{min-width:0;padding:.65rem .75rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--white)}.challenge-range-readouts span{display:block;margin-bottom:.25rem;color:var(--ink-soft);font-family:var(--font-mono);font-size:.65rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.challenge-range-readouts output,.challenge-range-readouts strong,.keypad-output{display:block;color:var(--navy);font-family:var(--font-mono);font-size:1.45rem;font-weight:900;text-align:center}.challenge-range-required{border-color:var(--yellow)!important;background:#fff8d8!important}.challenge-range-required strong{color:var(--error-dark)}.challenge-keypad-form{display:grid;gap:.8rem}input.keypad-output{width:100%;min-height:54px;padding:.65rem 1rem;border:2px solid var(--navy);border-radius:var(--radius-sm);background:var(--white);letter-spacing:.35em}.challenge-capacity input{width:100%;accent-color:var(--fix)}.challenge-keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:.55rem}.challenge-keypad .challenge-option{min-height:46px}.challenge-keypad .challenge-option[data-key=Clear]{grid-column:span 2}.challenge-option,.challenge-submit{min-height:52px;padding:.7rem .9rem;border:2px solid var(--navy);border-radius:var(--radius-sm);background:var(--white);cursor:pointer;font-weight:850}.challenge-option:hover:not(:disabled),.challenge-submit:hover:not(:disabled){background:var(--navy);color:#fff;transform:translateY(-2px)}.challenge-option[data-complete],.challenge-option[data-selected]{border-color:var(--fix);background:var(--fix-soft);color:var(--fix-dark)}.challenge-option[data-complete]:before{content:attr(data-complete) ". "}.challenge-command,.challenge-sequence-order{display:block;padding:1rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:#17243b;color:#eff6ff;font-family:var(--font-mono);font-size:clamp(.82rem,3vw,1.05rem);font-weight:800;letter-spacing:.04em;text-align:center}.challenge-form{display:grid;grid-template-columns:1fr auto;gap:.65rem}.challenge-form label{grid-column:1 / -1;font-size:.75rem;font-weight:800}.challenge-form input{min-width:0;min-height:52px;padding:.7rem .9rem;border:2px solid var(--navy);border-radius:var(--radius-sm);background:var(--white);color:var(--ink);font-family:var(--font-mono);font-weight:800;text-transform:uppercase}.challenge-submit{background:var(--navy);color:#fff}.challenge-feedback{min-height:1.6em;margin:1rem 0 0;color:var(--error-dark);font-weight:800}.incident-dialog.challenge-success{box-shadow:0 35px 100px #070d1873,8px 8px 0 var(--fix)}.incident-dialog.challenge-success .challenge-progress::-webkit-progress-value{background:var(--fix)}.incident-dialog.challenge-success .challenge-feedback{color:var(--fix-dark)}.incident-dialog.challenge-timeout{box-shadow:0 35px 100px #070d1873,8px 8px 0 var(--error)}.boss-dialog{width:min(760px,calc(100vw - 2rem))}.boss-shell{display:grid;gap:.9rem}.boss-shell .challenge-progress{margin-bottom:.4rem}.boss-shell .challenge-instructions,.boss-shell .challenge-objective{margin-bottom:0}.boss-work{gap:.7rem}.boss-sequence-options{grid-template-columns:repeat(4,1fr)}.boss-match-options{margin-top:-.35rem}.boss-phrase{margin-top:.2rem}.minigame-picker-dialog{width:min(840px,calc(100vw - 2rem));max-height:calc(100dvh - 2rem);padding:0;overflow:auto;border:0;border-radius:var(--radius-lg);background:var(--paper);box-shadow:0 35px 100px #070d1873,8px 8px 0 var(--yellow);color:var(--ink)}.minigame-picker-dialog::backdrop{background:#0d1728b8;backdrop-filter:blur(5px)}.minigame-picker-shell{padding:clamp(1rem,3vw,1.75rem)}.minigame-picker-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.minigame-picker-eyebrow{margin:0 0 .35rem;color:var(--fix-dark);font-family:var(--font-mono);font-size:.68rem;font-weight:900;letter-spacing:.08em}.minigame-picker-header h2{margin:0;font-size:clamp(1.8rem,5vw,2.7rem);letter-spacing:-.045em}.minigame-picker-header p:last-child{max-width:56ch;margin:.35rem 0 0;color:var(--ink-soft);line-height:1.45}.minigame-picker-close{flex:0 0 auto;width:42px;height:42px;border:1px solid var(--line);border-radius:50%;background:var(--white);color:var(--navy);cursor:pointer;font-size:1.5rem;line-height:1}.minigame-picker-status{margin:0 0 1rem;padding:.65rem .8rem;border-left:4px solid var(--fix);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--fix-soft);color:var(--fix-dark);font-weight:800}.minigame-picker-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem}.minigame-picker-card{display:grid;grid-template-columns:2.25rem minmax(0,1fr);gap:.65rem;align-items:center;min-height:72px;padding:.65rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--white);color:var(--ink);cursor:pointer;text-align:left}.minigame-picker-card:hover,.minigame-picker-extra:hover,.minigame-picker-close:hover{border-color:var(--navy);transform:translateY(-1px)}.minigame-picker-icon{display:grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:10px;background:var(--navy);color:#fff;font-family:var(--font-mono);font-size:.75rem;font-weight:900}.minigame-picker-copy strong,.minigame-picker-copy small{display:block}.minigame-picker-copy strong{margin-bottom:.15rem;font-size:.86rem}.minigame-picker-copy small{color:var(--ink-soft);font-size:.7rem;line-height:1.25}.minigame-picker-extras{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin-top:.75rem}.minigame-picker-extra{min-height:62px;padding:.65rem .85rem;border:2px solid var(--navy);border-radius:var(--radius-sm);background:var(--yellow);color:var(--navy);cursor:pointer;text-align:left}.minigame-picker-boss{background:var(--navy);color:#fff}.minigame-picker-extra strong,.minigame-picker-extra span{display:block}.minigame-picker-extra span{margin-top:.15rem;font-size:.72rem;opacity:.8}@media(max-width:560px){.incident-dialog{width:calc(100vw - 1rem);max-height:calc(100dvh - 1rem)}.challenge-shell{padding:1rem}.choice-options,.sequence-options,.match-options,.challenge-form{grid-template-columns:1fr}.challenge-submit{width:100%}.connection-canvas{min-height:190px}.connection-port{width:39%;min-height:42px;padding:.45rem;font-size:.66rem}.connection-source{left:.35rem;padding-right:.75rem}.connection-target{right:.35rem;padding-left:.75rem}.minigame-picker-dialog{width:calc(100vw - 1rem);max-height:calc(100dvh - 1rem)}.minigame-picker-shell{padding:.75rem}.minigame-picker-header{margin-bottom:.75rem}.minigame-picker-header p:last-child{font-size:.9rem;line-height:1.35}.minigame-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.minigame-picker-card{grid-template-columns:1.9rem minmax(0,1fr);min-height:62px;padding:.5rem}.minigame-picker-icon{width:1.9rem;height:1.9rem}.minigame-picker-copy small{display:none}.minigame-picker-extras{grid-template-columns:1fr}.minigame-picker-extra{min-height:56px;padding-block:.5rem}}
