@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2) format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2) format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2) format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff) format("woff")}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-condensed-latin-500-normal-BgYH2mbd.woff2) format("woff2"),url(/assets/barlow-condensed-latin-500-normal-HIEiP5Ov.woff) format("woff")}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-600-normal-DepVgxBB.woff2) format("woff2"),url(/assets/barlow-condensed-latin-600-normal-BFJEwTuo.woff) format("woff")}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-latin-700-normal-v1xN8_Wq.woff2) format("woff2"),url(/assets/barlow-condensed-latin-700-normal-Dmwat-ge.woff) format("woff")}:root{color-scheme:dark;--font-display: "Barlow Condensed", "Arial Narrow", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-ui: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-num: "Barlow Condensed", "Arial Narrow", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--spine-red: #E5534B;--spine-orange: #EE8A3C;--spine-gold: #F2B33D;--spine-teal: #2FB3A5;--spine: linear-gradient(90deg, var(--spine-red) 0 25%, var(--spine-orange) 25% 50%, var(--spine-gold) 50% 75%, var(--spine-teal) 75% 100%);--bg: #0F1115;--surface: #161920;--surface-2: #1D2027;--surface-sunk: #0B0D10;--ink: #ECEEF2;--ink-2: #A2A8B3;--ink-3: #858B97;--ink-4: #5A606B;--accent: #F2B33D;--accent-hover: #F5C462;--on-accent: #0F1115;--accent-soft: rgba(242, 179, 61, .14);--accent-ring: rgba(242, 179, 61, .35);--primary: #ECEEF2;--primary-hover: #FFFFFF;--on-primary: #0F1115;--amber: #EE8A3C;--amber-deep: #F3A266;--amber-soft: rgba(238, 138, 60, .12);--amber-ring: rgba(238, 138, 60, .22);--teal: #2FB3A5;--success: #5FD38D;--success-soft: rgba(95, 211, 141, .14);--danger: #E5534B;--danger-soft: rgba(229, 83, 75, .14);--clash: #EE8A3C;--muted-soft: #1D2027;--border: #262A32;--border-2: #2E333C;--border-strong: #6B717C;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .3);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .35);--shadow-md: 0 4px 12px rgba(0, 0, 0, .35);--shadow-lg: 0 16px 40px rgba(0, 0, 0, .5);--shadow-up: 0 -2px 8px rgba(0, 0, 0, .3);--scrim: rgba(5, 6, 8, .6);--map-bg: #0F1115;--map-grid: #1A1D24;--map-node: #161920;--map-node-stroke: #858B97;--map-node-text: #ECEEF2;--map-past: #161920;--map-past-stroke: #676D78;--map-past-text: #A2A8B3;--map-unvisited-fill: #0F1115;--map-unvisited-stroke: #2FB3A5;--map-unvisited-text: #A2A8B3;--map-edge: #9AA0AB;--map-choice-edge: #626873;--map-you: #F2B33D;--map-you-text: #0F1115;--map-you-ring: rgba(242, 179, 61, .4);--map-won: #5FD38D;--map-died: #E5534B;--map-clash: #EE8A3C;--map-item: #EE8A3C;--map-room-fill: rgba(47, 179, 165, .05);--map-room-stroke: #2E333C;--map-room-text: #A2A8B3;--map-label-fill: rgba(22, 25, 32, .95);--map-label-stroke: #2E333C;--map-label-text: #A2A8B3;--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-xl: 24px;--r-pill: 999px;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-6: 24px;--s-8: 32px;--gutter: 24px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--fs-xs: .75rem;--fs-sm: .875rem;--fs-md: 1rem;--fs-lg: 1.25rem;--fs-xl: 1.5rem;--tap: 44px;--app-max: 480px;--app-max-wide: 1100px;--bar-h: 64px;--row-h: 48px;--row-h-2: 64px;--row-pad: 8px;--box-pad: 16px;--gap-section: 24px;--gap-label: 8px;--overlay-inset: 16px;--side-col: 132px;--t-fast: .12s cubic-bezier(.2, 0, .2, 1);--t-med: .2s cubic-bezier(.2, 0, .2, 1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scrollbar-gutter:stable}body{background:var(--bg);color:var(--ink);font-family:var(--font-ui);font-size:var(--fs-md);line-height:1.5;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:disabled{cursor:not-allowed}ul,ol{list-style:none}strong{font-weight:600}:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}.num{font-family:var(--font-num);font-variant-numeric:lining-nums tabular-nums}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.label{font-family:var(--font-num);font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}.hint{font-size:var(--fs-sm);color:var(--ink-3);line-height:1.45}.hint--center{text-align:center;margin-top:var(--sp-5)}.lead{font-size:var(--fs-md);color:var(--ink-2);line-height:1.5}.empty{color:var(--ink-2);text-align:center;padding:var(--sp-6) var(--sp-4);line-height:1.5}.row{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center}.stack{display:flex;flex-direction:column;gap:var(--sp-2)}.status{font-size:var(--fs-sm)}.status--ok{color:var(--success)}.status--error{color:var(--danger)}.app{display:flex;flex-direction:column;min-height:calc(100dvh - var(--warn-h, 0px));width:100%;max-width:var(--app-max);margin:0 auto;background:var(--bg)}.app--run{height:calc(100dvh - var(--warn-h, 0px));overflow:hidden}#root{padding-top:var(--warn-h, 0px)}.save-warning{position:fixed;top:0;left:0;right:0;z-index:40;display:flex;align-items:center;gap:var(--sp-3);max-width:var(--app-max);margin:0 auto;padding:var(--sp-2) var(--gutter);background:var(--danger-soft);color:var(--danger);border-bottom:1px solid var(--danger);font-size:var(--fs-sm);line-height:1.4}.save-warning svg{flex:none}.save-warning-actions{display:flex;flex-direction:column;gap:var(--sp-2);flex:none}.save-warning-body{flex:1;color:var(--ink)}.save-warning-body strong,.save-warning-err{color:var(--danger)}@media (min-width: 900px){.app--run.app--wide{max-width:var(--app-max-wide)}}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:var(--sp-2);min-height:calc(var(--bar-h) + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) var(--gutter) 0;background:var(--bg);border-bottom:1px solid var(--border)}.topbar-back{--icon: 20px;display:inline-grid;place-items:center;width:var(--tap);height:var(--tap);margin-left:calc((var(--icon) - var(--tap)) / 2);border:none;border-radius:var(--r-md);background:none;color:var(--ink-2);flex:none}.topbar-back:active{background:var(--surface-2)}.topbar-title{flex:1;min-width:0}.topbar-title h1{font-size:var(--fs-lg);font-weight:700;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-title p{font-size:var(--fs-xs);color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-btn{flex:none;display:inline-flex;align-items:center;justify-content:center;width:var(--tap);height:var(--tap);border-radius:var(--r-pill);border:1px solid var(--border-2);background:var(--surface);color:var(--ink-2)}.settings-btn:active{background:var(--surface-2)}.page{flex:1;padding:var(--gap-section) var(--gutter) var(--sp-6)}.bottom{position:sticky;bottom:0;padding:var(--sp-4) var(--gutter);padding-bottom:max(var(--sp-4),env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--border)}.section-title{font-size:var(--fs-md);font-weight:700;margin:var(--gap-section) 0 var(--gap-label)}.group{display:flex;flex-direction:column;gap:var(--gap-label)}.group+.group{margin-top:var(--gap-section)}.group-title{font-size:var(--fs-md);font-weight:700;color:var(--ink);display:flex;align-items:center;gap:var(--sp-2)}.optional{font-size:var(--fs-xs);font-weight:500;color:var(--ink-3)}.step-no{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--accent);color:var(--on-accent);font-family:var(--font-num);font-size:var(--fs-xs)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:48px;padding:0 var(--sp-4);border-radius:var(--r-md);border:1px solid transparent;font-weight:600;transition:background var(--t-fast),border-color var(--t-fast)}.btn--primary{background:var(--accent);color:var(--on-accent)}.btn--primary:active:not(:disabled){background:var(--accent-hover)}.btn--primary:disabled{background:var(--surface-2);color:var(--ink-3)}.btn--secondary{background:var(--surface);color:var(--ink);border-color:var(--border-strong)}.btn--secondary:active:not(:disabled){background:var(--surface-2)}.btn--secondary:disabled{opacity:.5}.btn--ghost{background:none;color:var(--accent);padding:0}.btn--danger{background:none;color:var(--danger);border-color:color-mix(in srgb,var(--danger) 55%,transparent)}.btn--won svg{color:var(--success)}.btn--died svg{color:var(--danger)}.btn--small{min-height:var(--tap);padding:0 var(--sp-3);font-size:var(--fs-sm)}.btn--block{width:100%}.text-btn{min-height:var(--tap);padding:0;border:none;background:none;color:var(--accent);font-weight:600;text-align:left;align-self:flex-start}.icon-btn{flex:none;display:inline-grid;place-items:center;min-width:var(--tap);min-height:var(--tap);border:none;border-radius:var(--r-md);background:none;color:var(--ink-2)}.icon-btn:active{background:var(--surface-2)}.chip{display:inline-flex;align-items:center;gap:var(--sp-2);min-height:48px;padding:0 var(--sp-4);border-radius:var(--r-md);border:1px solid var(--border-strong);background:var(--surface);color:var(--ink);font-weight:600}.chip--on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.chip--dashed{border-style:dashed;font-weight:500;color:var(--ink-2);align-self:flex-start}.pill{display:inline-flex;align-items:baseline;gap:var(--sp-1);padding:var(--sp-1) var(--sp-2);border-radius:var(--r-sm);background:var(--surface-2);color:var(--ink-2);font-size:var(--fs-sm)}.pill .num{color:var(--ink);font-weight:600}.field{width:100%;min-height:48px;padding:var(--sp-2) var(--box-pad);border-radius:var(--r-md);border:1px solid var(--border-strong);background:var(--surface);color:var(--ink);font-size:var(--fs-md)}.field::placeholder{color:var(--ink-3)}.field--area{resize:vertical;min-height:76px}.field-label{font-size:var(--fs-sm);font-weight:600;color:var(--ink-2);margin-top:var(--sp-2)}input[type=search]::-webkit-search-cancel-button{filter:grayscale(1)}.list{display:flex;flex-direction:column;border-top:1px solid var(--border)}.list-row{display:flex;align-items:center;gap:var(--sp-2);border-bottom:1px solid var(--border)}.list-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--sp-1);min-height:var(--row-h-2);justify-content:center;padding:var(--row-pad) 0;border:none;background:none;text-align:left}button.list-main:active{background:var(--surface-2)}.list-title{font-weight:600;line-height:24px}.list-meta{font-size:var(--fs-sm);line-height:20px;color:var(--ink-3)}.list-meta .num{color:var(--ink-2);font-weight:600}.list-note{font-size:var(--fs-sm);line-height:20px;color:var(--ink-2)}.btn-row{display:flex;gap:var(--sp-2)}.btn-row>.btn{flex:1 1 0;min-width:0}.list-row>.icon-btn,.sheet-head>.icon-btn,.map-list-show{margin-right:calc((var(--icon, 20px) - var(--tap)) / 2)}.list-row>.icon-btn,.map-list-show{--icon: 18px}.sheet-head>.icon-btn{--icon: 22px}.sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;flex-direction:column;justify-content:flex-end;align-items:center}.sheet-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--scrim)}.sheet-panel{position:relative;width:100%;max-width:var(--app-max);max-height:88dvh;display:flex;flex-direction:column;background:var(--bg);border-radius:var(--r-xl) var(--r-xl) 0 0;box-shadow:var(--shadow-lg);animation:rr-rise .18s ease-out}@media (min-width: 700px){.sheet{justify-content:center}.sheet-panel{border-radius:var(--r-xl);max-height:80dvh}}.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);flex:none;min-height:var(--bar-h);padding:0 var(--gutter);border-bottom:1px solid var(--border)}.sheet-title{flex:1;min-width:0;font-size:var(--fs-lg);font-weight:700}.sheet-title .num{font-size:1.25em}.sheet-body{overflow-y:auto;padding:var(--gap-section) var(--gutter) calc(var(--gap-section) + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:var(--gap-section)}.sheet-body>.group+.group{margin-top:0}.sheet-foot{padding:var(--sp-4) var(--gutter);padding-bottom:max(var(--sp-4),env(safe-area-inset-bottom));border-top:1px solid var(--border)}.defs{display:grid;gap:var(--sp-1) 0}.defs dt{font-weight:700;margin-top:var(--sp-2)}.defs dd,.sheet-body p{color:var(--ink-2)}@keyframes rr-rise{0%{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}.snackbar-slot{position:relative;height:0;z-index:30}.snackbar-slot--above{position:absolute;left:0;right:0;top:0}.snackbar{position:absolute;left:var(--gutter);right:var(--gutter);display:flex;align-items:center;gap:var(--sp-3);min-height:52px;padding:var(--sp-1) var(--sp-2) var(--sp-1) var(--sp-4);border-radius:var(--r-md);background:var(--ink);color:var(--bg);box-shadow:var(--shadow-lg)}.snackbar-slot--top .snackbar{top:var(--sp-2)}.snackbar-slot--above .snackbar{bottom:var(--sp-2);left:0;right:0}.snackbar-text{flex:1;font-weight:500}.snackbar-action{min-height:var(--tap);padding:0 var(--sp-3);border:none;border-radius:var(--r-sm);background:none;color:var(--bg);font-weight:700;text-decoration:underline;text-underline-offset:3px}.welcome{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-4)}.welcome h2{font-size:var(--fs-xl);line-height:1.25}.welcome p{color:var(--ink-2)}.welcome-icon{color:var(--accent)}.continue{position:relative;width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:var(--sp-4) 56px var(--sp-4) var(--sp-4);border-radius:var(--r-lg);border:1px solid var(--accent);background:var(--surface);text-align:left;box-shadow:var(--shadow-sm)}.continue .label{color:var(--accent)}.continue-book{font-size:var(--fs-lg);font-weight:700;line-height:1.25}.continue-meta{color:var(--ink-2)}.continue-meta .num{color:var(--ink);font-weight:600;font-size:1.1em}.continue-chevron{position:absolute;right:var(--box-pad);top:50%;transform:translateY(-50%);color:var(--accent)}.continue:active{background:var(--surface-2)}.book+.book{margin-top:var(--gap-section)}.book-title{font-size:var(--fs-sm);line-height:20px;font-weight:600;color:var(--ink-2);margin-bottom:var(--gap-label)}.picker{display:flex;flex-direction:column;gap:var(--sp-2)}.search{position:relative}.search svg{position:absolute;left:var(--box-pad);top:50%;transform:translateY(-50%);color:var(--ink-3);pointer-events:none}.search .field{padding-left:calc(var(--box-pad) + 18px + var(--sp-2))}.picker-list{max-height:46dvh;overflow-y:auto;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface)}.picker-series{position:sticky;top:0;padding:var(--sp-2) var(--box-pad);background:var(--surface-2)}.picker-item{width:100%;display:flex;align-items:center;gap:var(--sp-3);min-height:var(--row-h);padding:var(--sp-3) var(--box-pad);border:none;border-bottom:1px solid var(--border);background:none;text-align:left}.picker-item:active{background:var(--surface-2)}.picker-item--on{background:var(--accent-soft)}.picker-item--on svg{color:var(--accent)}.picker-num{width:2ch;text-align:right;color:var(--ink-3);font-size:var(--fs-sm);flex:none}.picker-title{flex:1;line-height:24px}.picker-empty{padding:var(--box-pad)}.banner{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-2) var(--sp-4);background:var(--surface-2);color:var(--ink-2);font-size:var(--fs-sm)}.banner--won{background:var(--success-soft);color:var(--success)}.banner--died{background:var(--danger-soft);color:var(--danger)}.panel{flex:1;min-height:0;display:flex;flex-direction:column;overflow-y:auto;position:relative}.panel--map{overflow:hidden}.panel-intro{padding:var(--sp-2) var(--gutter);font-size:var(--fs-xs);line-height:16px;color:var(--ink-3);border-bottom:1px solid var(--border);flex:none}.tabbar{display:flex;flex:none;border-top:1px solid var(--border);background:var(--surface);padding-bottom:env(safe-area-inset-bottom)}.tab{flex:1;min-height:58px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:none;background:none;color:var(--ink-3);font-size:var(--fs-xs);font-weight:600}.tab--on{color:var(--accent)}.add{flex:1;display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4)}.add--ended{justify-content:center}.add-ended{color:var(--ink-2);text-align:center;line-height:1.5}.here-row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3)}.here-num{font-size:clamp(3rem,15vw,4.25rem);font-weight:600;line-height:1;margin-top:2px}.here-room{margin-top:var(--sp-1);color:var(--ink-2)}.here-start{font-size:var(--fs-lg);font-weight:600;margin-top:var(--sp-1)}.here-actions{flex:none;min-width:var(--side-col);display:flex;flex-direction:column;gap:var(--sp-2);align-items:stretch}.memory{display:flex;gap:var(--sp-2);align-items:flex-start;margin-top:var(--sp-2);font-size:var(--fs-sm);color:var(--ink-2)}.memory svg{flex:none;margin-top:2px;color:var(--accent)}.turn-row{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-2)}.turn-btn{position:relative;display:inline-flex;align-items:center;gap:var(--sp-2);min-height:52px;padding:0 var(--sp-4);border-radius:var(--r-md);border:1px solid var(--border-strong);background:var(--surface)}.turn-btn:active{border-color:var(--accent);background:var(--accent-soft)}.turn-label{font-size:var(--fs-sm);color:var(--ink-2);font-weight:500}.turn-num{font-size:1.4rem;font-weight:600}.turn-btn--deadly .turn-num{text-decoration:line-through;text-decoration-color:var(--danger);text-decoration-thickness:2px}.turn-icon{color:var(--danger)}.turn-new{position:absolute;top:6px;right:6px;width:8px;height:8px;border-radius:50%;background:var(--accent)}.turn-key{display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-4);margin-top:var(--sp-2);font-size:var(--fs-xs)}.turn-key span{display:inline-flex;align-items:center;gap:var(--sp-1)}.turn-key .dot{width:8px;height:8px;border-radius:50%;background:var(--accent)}.turn-key svg{color:var(--danger)}.entry{position:relative;display:flex;gap:var(--sp-2);align-items:stretch;margin-top:auto}.entry-num{flex:1;display:flex;align-items:center;min-height:56px;padding:0 var(--sp-1);border-bottom:2px solid var(--ink);font-size:1.9rem;font-weight:600}.entry-num--empty{font-family:var(--font-ui);font-size:var(--fs-md);font-weight:400;color:var(--ink-3);border-bottom-color:var(--border-strong)}.go{flex:none;min-height:56px;min-width:var(--side-col);font-size:1.05rem}.exits-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.exits-title{font-size:var(--fs-lg);font-weight:600;color:var(--ink-2)}.exits-title .num{font-size:1.6rem;color:var(--ink);margin-left:var(--sp-1)}.exits-so-far{display:flex;flex-wrap:wrap;gap:var(--sp-1)}.exit-pick{display:flex;flex-direction:column;gap:var(--sp-2)}.compass{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-1);max-width:260px;width:100%;margin:0 auto}.compass-btn{min-height:var(--tap);border-radius:var(--r-sm);border:1px solid var(--border-strong);background:var(--surface);font-family:var(--font-num);font-weight:600}.compass-btn--none{font-family:var(--font-ui);font-size:var(--fs-xs);color:var(--ink-2)}.compass-btn:active:not(:disabled){background:var(--accent);color:var(--on-accent)}.compass-btn:disabled{opacity:.45}.word-row{display:flex;gap:var(--sp-2)}.word-row .field{flex:1}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-2)}.key{min-height:clamp(48px,7dvh,60px);display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-1);border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface);font-family:var(--font-num);font-size:1.6rem;font-weight:500}.key:active:not(:disabled){background:var(--surface-2);border-color:var(--border-strong)}.key--fn{font-family:var(--font-ui);font-size:var(--fs-md);font-weight:600;color:var(--ink-2)}@media (max-height: 760px){.add{gap:var(--sp-2);padding-top:var(--sp-2)}.here-num{font-size:2.75rem}.turn-btn,.entry-num,.go{min-height:48px}.keypad{gap:6px}.key{min-height:46px;font-size:1.4rem}.tab{min-height:52px}.panel-intro{display:none}}@media (max-height: 690px){.key{min-height:var(--tap)}.keypad,.compass{gap:5px}}.story{display:flex;flex-direction:column;gap:var(--gap-label);padding:var(--gap-section) var(--gutter)}.story-summary{font-size:var(--fs-sm);line-height:20px;color:var(--ink-3)}.story-summary .num{color:var(--ink-2);font-weight:600}.story-list{display:flex;flex-direction:column;border-top:1px solid var(--border)}.story-row{width:100%;display:flex;align-items:flex-start;gap:var(--sp-3);min-height:var(--row-h-2);padding:var(--sp-4) 0;border:none;border-bottom:1px solid var(--border);background:none;text-align:left}.story-row:active{background:var(--surface-2)}.story-row--now{background:var(--surface)}.story-num{flex:none;min-width:4ch;text-align:left;font-size:1.4rem;font-weight:600;line-height:1.2}.story-row--now .story-num{color:var(--accent)}.story-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;padding-top:2px}.story-tagline{font-size:var(--fs-xs);font-weight:600;color:var(--ink-3)}.story-row--now .story-tagline{color:var(--accent)}.story-text{line-height:1.4}.story-text--quiet{color:var(--ink-3);font-size:var(--fs-sm)}.story-note{font-size:var(--fs-sm);color:var(--ink-2);border-left:2px solid var(--border-strong);padding-left:var(--sp-2)}.story-exits,.story-also{font-size:var(--fs-sm);color:var(--ink-3)}.story-exits .num{color:var(--ink-2)}.story-chevron{flex:none;color:var(--ink-3);margin-top:7px}.earlier{display:flex;flex-direction:column;gap:var(--gap-label);margin-top:calc(var(--gap-section) - var(--gap-label))}.earlier .section-title{margin:0}.earlier-run{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface)}.earlier-run summary{display:flex;align-items:baseline;gap:var(--sp-2);min-height:var(--row-h);padding:var(--sp-3) var(--box-pad);cursor:pointer;list-style:none}.earlier-run summary::-webkit-details-marker{display:none}.earlier-run summary:before{content:"▸";color:var(--ink-3)}.earlier-run[open] summary:before{content:"▾"}.earlier-name{font-weight:600}.earlier-text{color:var(--ink-3);font-size:var(--fs-sm)}.earlier-text--died{color:var(--danger)}.earlier-text--won{color:var(--success)}.earlier-route{padding:0 var(--box-pad) var(--box-pad);color:var(--ink-2);font-size:var(--fs-sm);line-height:1.6;word-break:break-word}.map-wrap{position:relative;flex:1;min-height:0;background-color:var(--map-bg)}.map-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none}.map-canvas:active{cursor:grabbing}.map-canvas:focus-visible{outline-offset:-4px}.map-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-1);padding:var(--sp-5);color:var(--ink-3);text-align:center;pointer-events:none;z-index:1}.map-empty-ornament{color:var(--ink-4);margin-bottom:var(--sp-2)}.map-empty .btn{pointer-events:auto;margin-top:var(--sp-4)}.map-legend{position:absolute;top:var(--sp-2);left:var(--sp-2);right:var(--sp-2);z-index:1;display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-3);padding:6px var(--sp-3);border-radius:var(--r-md);background:color-mix(in srgb,var(--surface) 90%,transparent);font-size:var(--fs-xs);color:var(--ink-2);pointer-events:none}.legend-item{display:inline-flex;align-items:center;gap:6px}.legend-dot{width:10px;height:10px;border-radius:3px;flex:none}.legend-dot--you{background:var(--map-you);border-radius:50%;box-shadow:0 0 0 2px var(--map-bg),0 0 0 3.5px var(--map-you)}.legend-dot--cur{background:var(--map-node)}.legend-dot--past{background:var(--map-past)}.legend-dot--unvisited{border:1.5px dashed var(--map-unvisited-stroke)}.legend-dot--won{background:var(--map-won);border-radius:50%}.legend-dot--died{background:var(--map-died);border-radius:50%}.legend-dot--item{background:var(--map-item);border-radius:50%;width:8px;height:8px}.legend-line{width:16px;height:0;border-top:2px dashed var(--map-clash)}.map-bar{position:absolute;left:var(--sp-2);right:var(--sp-2);bottom:var(--sp-2);z-index:2;display:flex;gap:6px}.map-btn{min-width:var(--tap);min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:0 var(--sp-3);border-radius:var(--r-md);border:1px solid var(--border-strong);background:var(--surface);color:var(--ink);font-weight:600;box-shadow:var(--shadow-sm)}.map-btn--grow{flex:1;justify-content:flex-start}.map-btn--on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.map-btn:active{background:var(--surface-2)}.map-list{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;overflow-y:auto;padding:var(--sp-3) var(--sp-3) 80px;background:var(--bg)}.map-list-intro{font-size:var(--fs-sm);line-height:20px;color:var(--ink-3);margin-bottom:var(--gap-label)}.map-list ul{border-top:1px solid var(--border)}.map-list-row{display:flex;align-items:center;gap:var(--sp-3);min-height:var(--row-h-2);padding:var(--row-pad) 0;border-bottom:1px solid var(--border)}.map-list-row--here .map-list-num{color:var(--accent)}.map-list-num{min-width:3.2rem;text-align:left;font-size:1.2rem;font-weight:600;flex:none}.map-list-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.map-list-state{font-size:var(--fs-xs);color:var(--ink-3)}.map-list-exits{font-size:var(--fs-sm);color:var(--ink-2)}.map-list-show{min-width:var(--tap);min-height:var(--tap);display:grid;place-items:center;border:none;border-radius:var(--r-md);background:none;color:var(--ink-2)}.map-list-show:active{background:var(--surface-2)}.error-screen{justify-content:center;gap:var(--sp-4);padding:var(--gutter)}.error-screen h1{font-size:var(--fs-xl)}.error-screen p{color:var(--ink-2)}.topbar,.sheet-head{border-bottom:0;background-image:var(--spine);background-size:100% 2px;background-position:left bottom;background-repeat:no-repeat}.topbar{background-color:var(--bg)}.sheet-head{background-color:var(--surface);border-radius:var(--r-xl) var(--r-xl) 0 0}.topbar-title h1{font-family:var(--font-display);font-size:var(--fs-lg);line-height:24px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.topbar-title p{font-size:var(--fs-xs);line-height:16px;color:var(--ink-2)}.sheet-panel{background:var(--surface)}.welcome h2,.sheet-title,.error-screen h1{font-family:var(--font-display);font-size:var(--fs-xl);line-height:32px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.section-title,.group-title{font-family:var(--font-display);font-size:var(--fs-md);line-height:24px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.group-title .optional{font-family:var(--font-ui);letter-spacing:0;text-transform:none}.sheet-title .num{font-size:var(--fs-xl)}.earlier-name{font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase}.step-no{font-family:var(--font-num);font-size:var(--fs-sm);font-weight:700}.banner,.panel-intro{padding-left:var(--gutter);padding-right:var(--gutter)}.add{padding:var(--gap-section) var(--gutter) var(--sp-4);gap:var(--gap-section)}.map-list{padding:var(--gap-section) var(--gutter) calc(48px + 2 * var(--overlay-inset))}.label{font-family:var(--font-ui);font-size:var(--fs-xs);line-height:16px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}.save-warning{padding:var(--sp-2) var(--gutter);background:var(--surface);border-bottom:2px solid var(--spine-red);line-height:20px}.continue{padding:var(--box-pad) calc(var(--box-pad) + 24px + var(--sp-2)) var(--box-pad) var(--box-pad);background:var(--accent-soft);box-shadow:none}.continue-book{font-size:var(--fs-lg);font-weight:600}.continue-meta .num{font-size:var(--fs-md)}.here-num{font-family:var(--font-num);font-size:clamp(72px,26vw,104px);font-weight:700;line-height:.9;letter-spacing:-.01em;margin-top:var(--sp-2)}.here-num:after{content:"";display:block;width:72px;height:3px;margin-top:var(--sp-4);background:var(--spine)}.here-start,.exits-title{font-family:var(--font-display);font-size:var(--fs-xl);line-height:32px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.exits-title .num{font-size:32px}.memory{margin-top:var(--sp-4);padding:var(--sp-4);gap:var(--sp-2);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);font-size:var(--fs-sm);line-height:20px;color:var(--ink-2)}.memory svg{color:var(--danger);margin-top:2px}.here-room{margin-top:var(--sp-2);font-size:var(--fs-sm);line-height:20px}.turn-row{gap:var(--sp-2);margin-top:var(--sp-2)}.turn-btn{min-height:56px;padding:0 var(--sp-4);gap:var(--sp-2);border-color:var(--border-2);background:var(--surface)}.turn-btn:active{border-color:var(--border-strong);background:var(--surface-2)}.turn-label{font-size:var(--fs-sm);line-height:20px}.turn-num{font-size:32px;line-height:32px;font-weight:600}.turn-new{top:12px;right:12px;width:6px;height:6px;background:var(--teal)}.turn-key{gap:var(--sp-1) var(--sp-4);margin-top:var(--sp-2);font-size:var(--fs-xs);line-height:16px}.turn-key .dot{width:6px;height:6px;background:var(--teal)}.entry{gap:var(--sp-2)}.entry-num{min-height:56px;border-bottom:1px solid var(--border-strong);font-size:32px;line-height:1}.entry-num--empty{font-size:var(--fs-md);border-bottom-color:var(--border)}.go{min-height:56px;padding:0 var(--sp-4);background:var(--primary);color:var(--on-primary);font-family:var(--font-display);font-size:var(--fs-lg);line-height:24px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.go:active:not(:disabled){background:var(--primary-hover)}.go:disabled{background:var(--surface-2);color:var(--ink-3)}.keypad{gap:var(--sp-2)}.key{min-height:48px;border-color:var(--border);font-size:var(--fs-xl);line-height:24px;font-weight:500}.key--fn{font-family:var(--font-ui);font-size:var(--fs-sm)}.key--on{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.compass{gap:var(--sp-2)}.compass-btn{min-height:48px;font-size:var(--fs-lg)}.compass-btn--none{font-family:var(--font-ui);font-size:var(--fs-sm)}.chip{border-color:var(--border-2);font-size:var(--fs-sm)}.row>.chip{flex:1 1 auto;justify-content:center}.chip--on{border-color:var(--accent)}@media (max-height: 760px){.add{gap:var(--sp-4);padding-top:var(--sp-4)}.here-num{font-size:72px}.key{min-height:var(--tap);font-size:var(--fs-xl)}.turn-btn,.entry-num,.go{min-height:48px}}.tabbar{background:var(--bg);border-top:1px solid var(--border);padding:0 var(--gutter) env(safe-area-inset-bottom)}.tab{position:relative;min-height:64px;gap:var(--sp-1);font-size:var(--fs-xs);line-height:16px;font-weight:500;color:var(--ink-2)}.tab--on{color:var(--ink);font-weight:600}.tab--on:before{content:"";position:absolute;top:-1px;left:50%;width:28px;height:2px;margin-left:-14px;background:var(--spine)}@media (max-height: 760px){.tab{min-height:52px}}.story-num{font-family:var(--font-num);font-size:32px;line-height:32px;font-weight:700}.story-tagline{letter-spacing:.14em;text-transform:uppercase}.map-legend{top:var(--overlay-inset);left:var(--overlay-inset);right:var(--overlay-inset);gap:var(--sp-2) var(--sp-1);padding:var(--sp-2);border-radius:var(--r-md);background:color-mix(in srgb,var(--bg) 90%,transparent);font-size:var(--fs-xs);line-height:16px;color:var(--ink-2)}.legend-item{flex:1 1 auto;gap:var(--sp-2);padding-top:var(--sp-2);border-top:3px solid var(--legend-c, var(--ink-4));white-space:nowrap}.legend-item--you{--legend-c: var(--map-you)}.legend-item--cur,.legend-item--past{--legend-c: var(--ink-4)}.legend-item--unvisited{--legend-c: var(--map-unvisited-stroke)}.legend-item--item{--legend-c: var(--map-item)}.legend-item--won{--legend-c: var(--map-won)}.legend-item--died{--legend-c: var(--map-died)}.legend-item--clash{--legend-c: var(--map-clash)}.legend-dot{width:8px;height:8px;border-radius:50%}.legend-dot--you{background:var(--map-you);box-shadow:0 0 0 3px var(--map-you-ring)}.legend-dot--cur{background:var(--map-node);border:1.5px solid var(--map-node-stroke);border-radius:3px}.legend-dot--past{background:var(--map-past);border:1.5px dashed var(--map-past-stroke);border-radius:3px}.legend-dot--unvisited{border:1.5px dashed var(--map-unvisited-stroke);border-radius:3px}.legend-dot--won{background:var(--map-won)}.legend-dot--died{background:var(--map-died)}.legend-dot--item{width:7px;height:7px;border-radius:0;background:var(--map-item);transform:rotate(45deg)}.map-bar{left:var(--overlay-inset);right:var(--overlay-inset);bottom:var(--overlay-inset);gap:var(--sp-1)}.map-btn{min-height:48px;border-color:var(--border-2);background:var(--surface);font-size:var(--fs-sm)}.map-btn--on{background:var(--surface-2);border-color:var(--border-strong);color:var(--ink)}.map-list-num{font-size:var(--fs-xl)}.map-empty-ornament{color:var(--accent)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
