@font-face{font-family:VT323;font-style:normal;font-display:swap;font-weight:400;src:url(/archive/assets/vt323-vietnamese-400-normal-DXYSXa9B.woff2) format("woff2"),url(/archive/assets/vt323-vietnamese-400-normal-CwhZGgAM.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:VT323;font-style:normal;font-display:swap;font-weight:400;src:url(/archive/assets/vt323-latin-ext-400-normal-C0dxqyaI.woff2) format("woff2"),url(/archive/assets/vt323-latin-ext-400-normal-QkjK6OZo.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:VT323;font-style:normal;font-display:swap;font-weight:400;src:url(/archive/assets/vt323-latin-400-normal-C5q55ueI.woff2) format("woff2"),url(/archive/assets/vt323-latin-400-normal-JZdnI__-.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Share Tech Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/archive/assets/share-tech-mono-latin-400-normal-CCqdbj5z.woff2) format("woff2"),url(/archive/assets/share-tech-mono-latin-400-normal-CcsJ_J2r.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #05060a;--panel: #0b0e16;--line: #1c2740;--fg: #f3dcae;--dim: #8f8169;--amber: #ffb547;--cyan: #3ef0ff;--magenta: #ff3ea5;--green: #7dff9a;--font-pixel: "VT323", ui-monospace, monospace;--font-mono: "Share Tech Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;color-scheme:dark;font:16px/1.6 var(--font-mono)}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--fg)}body{background:radial-gradient(120% 80% at 50% 0%,#0f1530 0%,transparent 60%),radial-gradient(90% 60% at 50% 120%,#2a0b24 0%,transparent 55%),var(--bg);min-height:100vh}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:50;background:repeating-linear-gradient(to bottom,rgba(255,255,255,.035) 0 1px,transparent 1px 3px),radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.55) 100%)}#root{min-height:100vh}.shell{max-width:36rem;margin:0 auto;padding:max(28px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 110px max(16px,env(safe-area-inset-left))}h1{font-family:var(--font-pixel);font-weight:400;font-size:2.4rem;line-height:1;letter-spacing:.06em;text-transform:uppercase;color:var(--amber);margin:0 0 1.4rem;text-shadow:0 0 6px rgba(255,181,71,.55),2px 0 0 rgba(255,62,165,.35),-2px 0 0 rgba(62,240,255,.3)}h1:before{content:"> ";color:var(--cyan)}h2{font-family:var(--font-pixel);font-weight:400;font-size:1.4rem;letter-spacing:.12em;text-transform:uppercase;color:var(--cyan);margin:2rem 0 .6rem;display:flex;align-items:center;gap:.6rem}h2:after{content:"";flex:1;border-top:1px dashed var(--line)}p{margin:0 0 1rem}a{color:var(--cyan);text-underline-offset:3px}a:hover{text-shadow:0 0 6px var(--cyan)}.dim{color:var(--dim);font-size:.85rem}.warn{color:var(--amber)}.good{color:var(--green)}.bad{color:var(--magenta);text-shadow:0 0 6px rgba(255,62,165,.5)}code,.code{word-break:break-all;color:var(--cyan)}input,textarea{width:100%;background:#070a12;color:var(--green);caret-color:var(--green);border:1px solid var(--line);border-left:3px solid var(--cyan);border-radius:0;padding:.7rem .8rem;font:1.15rem/1.4 var(--font-mono);letter-spacing:.14em}input::placeholder,textarea::placeholder{color:#3b4a5f;letter-spacing:.1em}input:focus,textarea:focus{outline:none;box-shadow:0 0 0 1px var(--cyan),0 0 14px #3ef0ff40}button:focus-visible,a:focus-visible{outline:1px solid var(--amber);outline-offset:3px}button{font-family:var(--font-pixel);font-size:1.35rem;line-height:1;letter-spacing:.1em;text-transform:uppercase;background:var(--cyan);color:#04121a;border:0;border-radius:0;padding:.55rem 1.1rem .5rem;cursor:pointer;box-shadow:4px 4px 0 var(--magenta);transition:transform .08s,box-shadow .08s}button:hover:not([disabled]){transform:translate(-1px,-1px);box-shadow:5px 5px 0 var(--magenta),0 0 18px #3ef0ff59}button:active:not([disabled]){transform:translate(3px,3px);box-shadow:1px 1px 0 var(--magenta)}button[disabled]{opacity:.4;cursor:not-allowed;box-shadow:none}button.ghost{background:transparent;color:var(--cyan);border:1px solid var(--cyan);box-shadow:none}button.ghost:hover:not([disabled]){background:#3ef0ff14;box-shadow:0 0 12px #3ef0ff40}.row{display:flex;gap:.8rem;align-items:center;flex-wrap:wrap}.stack{display:grid;gap:.9rem}.card{position:relative;background:linear-gradient(180deg,#0f1530b3,#0b0e16e6);border:3px double var(--line);padding:1.1rem 1rem 1rem;border-radius:0}.card:before,.card:after{content:"";position:absolute;width:10px;height:10px;border-color:var(--cyan);border-style:solid}.card:before{top:-3px;left:-3px;border-width:2px 0 0 2px}.card:after{bottom:-3px;right:-3px;border-width:0 2px 2px 0}.card.sealed{border-color:#3a1630}.card.sealed:before,.card.sealed:after{border-color:var(--magenta)}.list{list-style:none;padding:0;margin:0;display:grid;gap:0}.list li{border-bottom:1px dashed var(--line);padding:.65rem 0}.sealed{color:var(--dim)}.pill{display:inline-block;font-family:var(--font-pixel);font-size:1rem;letter-spacing:.12em;text-transform:uppercase;border:1px solid currentColor;padding:0 .4rem;color:var(--dim)}.pill.done{color:var(--green);text-shadow:0 0 6px rgba(125,255,154,.5)}.pill.open{color:var(--cyan)}.pill.locked{color:var(--magenta)}.sheet{display:grid;grid-template-columns:auto 1fr;gap:.2rem 1rem;font-size:.95rem}.sheet dt{font-family:var(--font-pixel);font-size:1.2rem;color:var(--dim);letter-spacing:.1em;text-transform:uppercase}.sheet dd{margin:0;color:var(--fg)}.sheet dd.big{font-family:var(--font-pixel);font-size:1.6rem;color:var(--amber);line-height:1}.meter{height:12px;margin:.4rem 0 0;border:1px solid var(--line);background:#070a12;padding:2px}.meter>i{display:block;height:100%;background:repeating-linear-gradient(90deg,var(--green) 0 10px,transparent 10px 13px);box-shadow:0 0 8px #7dff9a59}nav.tabs{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;justify-content:center;gap:1.4rem;padding:.7rem max(16px,env(safe-area-inset-left)) calc(.8rem + env(safe-area-inset-bottom));background:#05060af0;border-top:3px double var(--line)}nav.tabs a{font-family:var(--font-pixel);font-size:1.35rem;letter-spacing:.1em;text-decoration:none;color:var(--dim);text-transform:uppercase}nav.tabs a.active{color:var(--amber);text-shadow:0 0 8px rgba(255,181,71,.6)}nav.tabs a.active:before{content:"▶";color:var(--cyan);margin-right:.25rem}@media (prefers-reduced-motion: no-preference){.fade{animation:boot .3s steps(4) both}@keyframes boot{0%{opacity:.7;filter:brightness(1.6)}to{opacity:1;filter:none}}.blink:after{content:"_";animation:blink 1s steps(1) infinite;color:var(--green)}@keyframes blink{50%{opacity:0}}}@media (max-width: 420px){nav.tabs{gap:.8rem}nav.tabs a{font-size:1.15rem}h1{font-size:2rem}}.graph{position:relative;margin:1.2rem 0 .2rem}.graph-edges{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible}.edge{fill:none;stroke:var(--line);stroke-width:1.5}.edge.walked{stroke:var(--green);opacity:.8}.edge.current{stroke:var(--amber);stroke-width:2.5;filter:drop-shadow(0 0 4px rgba(255,181,71,.7))}.edge.open{stroke:var(--cyan);stroke-dasharray:5 5}.edge.sealed{stroke:#2a3550;stroke-dasharray:2 6}.edge.circle:not(.walked):not(.current){stroke:var(--magenta);opacity:.75}.edge.lit{stroke-width:3;opacity:1}.edge-mark{position:absolute;transform:translate(-50%,-50%);color:var(--magenta);font-size:.9rem;line-height:1;background:var(--bg);padding:0 .15rem;text-shadow:0 0 6px rgba(255,62,165,.6);pointer-events:none}button.node{position:absolute;transform:translate(-50%);max-width:15rem;display:flex;flex-direction:column;justify-content:center;gap:.1rem;padding:.3rem .5rem;text-align:left;text-transform:none;letter-spacing:.02em;line-height:1.05;background:#070a12;color:var(--fg);border:1px solid var(--line);box-shadow:none;overflow:hidden}button.node:hover:not([disabled]){transform:translate(-50%) translateY(-1px);box-shadow:0 0 12px #3ef0ff33}button.node:active:not([disabled]){transform:translate(-50%);box-shadow:none}.node-no{font-size:.95rem;color:var(--dim);letter-spacing:.1em}.node-title{font-size:1.15rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.node-circle{color:var(--magenta)}.node-fork{position:absolute;left:50%;bottom:-1px;transform:translate(-50%,50%);color:var(--amber);font-size:.8rem;line-height:1}button.node.walked{border-color:var(--green);color:var(--green)}button.node.walked .node-title{color:var(--fg)}button.node.open{border-color:var(--cyan);color:var(--cyan);box-shadow:0 0 10px #3ef0ff40}button.node.sealed{border-color:#3a1630;opacity:.7}button.node.unseen{border-style:dashed;border-color:#3a1630;color:var(--magenta);background:repeating-linear-gradient(45deg,#0b0710 0,#0b0710 4px,#120a18 4px,#120a18 8px)}button.node.unseen .node-title{letter-spacing:.1em}button.node.selected{outline:2px solid var(--amber);outline-offset:3px;opacity:1}@media (prefers-reduced-motion: no-preference){button.node.open{animation:pulse 2.4s ease-in-out infinite}@keyframes pulse{50%{box-shadow:0 0 18px #3ef0ff73}}.edge.open{animation:march 1.2s linear infinite}@keyframes march{to{stroke-dashoffset:-10}}}.legend{display:flex;flex-wrap:wrap;gap:.3rem .9rem;margin:0}.lg.walked{color:var(--green)}.lg.current{color:var(--amber)}.lg.open{color:var(--cyan)}.lg.circle,.lg.unseen{color:var(--magenta)}.detail-head{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap;margin-bottom:.6rem}.room-no{font-family:var(--font-pixel);font-size:1.2rem;color:var(--dim)}.detail-title{font-family:var(--font-pixel);font-size:1.5rem;color:var(--amber);letter-spacing:.04em}.pill.unseen{color:var(--magenta);border-style:dashed}.steps li:before{content:"◈ ";color:var(--dim)}.steps li.done:before{color:var(--green)}.seal-reasons li{color:var(--magenta);font-size:.9rem}.ways{list-style:none;padding:0;margin:.8rem 0;display:grid;gap:.25rem;font-size:.92rem}.way{color:var(--dim)}.way.walked{color:var(--green)}.way.current{color:var(--amber)}.way.open{color:var(--cyan)}.way.sealed{opacity:.75}.enter{font-family:var(--font-pixel);font-size:1.3rem;letter-spacing:.08em}.hint{color:var(--amber);font-style:italic;border-left:2px solid var(--amber);padding-left:.7rem}button.choice.sealed{border-color:#3a1630;color:var(--magenta)}.branch-tag{font-family:var(--font-pixel);color:var(--magenta);letter-spacing:.1em;text-transform:uppercase;font-size:1rem;margin:0}.unseen{margin-top:1rem;color:var(--magenta);font-family:var(--font-pixel);font-size:1.25rem;letter-spacing:.08em}.access-code{font-family:var(--font-pixel);font-size:2.2rem;letter-spacing:.12em;color:var(--green);text-shadow:0 0 10px rgba(125,255,154,.45);margin:0 0 .8rem;word-break:break-all}.invite-code{font-family:var(--font-pixel);font-size:1.4rem;letter-spacing:.1em}button.small{font-size:1rem;padding:.3rem .6rem}button.choice{text-align:left}button.choice.current{background:var(--amber);color:#1a0f00;box-shadow:4px 4px 0 var(--magenta)}.tagline{font-size:.9rem;opacity:.8}.diary{font-style:italic;color:var(--amber)}nav.tabs{gap:1rem}@media (max-width: 420px){nav.tabs{gap:.55rem}nav.tabs a{font-size:1.05rem}}.env-banner{position:sticky;top:0;z-index:60;text-align:center;padding:.25rem 16px;font-family:var(--font-pixel);font-size:1rem;letter-spacing:.14em;text-transform:uppercase;color:#1a0f00;background:repeating-linear-gradient(135deg,var(--amber) 0 14px,#e09a2a 14px 28px)}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;display:flex;align-items:flex-end;justify-content:center;background:#030408cc;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.sheet-panel{width:min(36rem,100%);max-height:78vh;overflow:auto;outline:none;padding:0 12px calc(3.9rem + env(safe-area-inset-bottom))}.sheet-panel .card{margin:0;background:#0b0e16;box-shadow:0 -8px 30px #3ef0ff2e,0 0 0 1px var(--line)}.sheet-close{position:absolute;top:.4rem;right:.4rem;background:transparent;color:var(--dim);border:0;box-shadow:none;font-size:1.3rem;padding:.3rem .55rem}.sheet-close:hover:not([disabled]){color:var(--cyan);transform:none;box-shadow:none}.enter-button{display:inline-block;font-family:var(--font-pixel);font-size:1.35rem;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;background:var(--cyan);color:#04121a;padding:.5rem 1.1rem .45rem;box-shadow:4px 4px 0 var(--magenta)}@media (min-width: 700px){.sheet-backdrop{align-items:center}}@media (prefers-reduced-motion: no-preference){.sheet-panel{animation:sheet-up .18s steps(3) both}@keyframes sheet-up{0%{transform:translateY(24px);opacity:.4}to{transform:none;opacity:1}}}button.node.missed{border-style:dashed;border-color:#4a2a3a;opacity:.55}button.node.missed .node-title{text-decoration:line-through;text-decoration-color:#ff3ea599}.pill.missed{color:var(--magenta);border-style:dotted}.lg.missed{color:var(--magenta)}.missed-note{color:var(--magenta);font-style:italic}.volume.sealed h2{color:var(--magenta)}.volume-sealed .unseen{margin:.2rem 0 .6rem}.pill.draft{color:var(--amber);border-style:dashed;margin-left:.5rem;font-size:.7rem}nav.tabs{flex-wrap:wrap;row-gap:.35rem}nav.tabs a.out{color:var(--cyan);opacity:.8}@media (max-width: 480px){.shell{padding-bottom:150px}.sheet-panel{padding-bottom:calc(6rem + env(safe-area-inset-bottom))}}.two-rooms .rooms{display:grid;grid-template-columns:1fr 1fr;gap:10px}.two-rooms .room{display:grid;gap:1px;background:#070910;border:1px solid var(--line);padding:2px}.two-rooms .tile{aspect-ratio:1;display:grid;place-items:center;font-size:clamp(.7rem,3.2vw,1.2rem);line-height:1}.two-rooms .t-wall{color:#1d2740;background:#141b2e}.two-rooms .t-exit{color:var(--amber)}.two-rooms .t-spike{color:var(--magenta)}.two-rooms .t-plate{color:var(--green)}.two-rooms .t-door{color:var(--magenta);background:#ff3ea51f}.two-rooms .t-door-open{color:var(--green)}.two-rooms .tile.me{color:var(--cyan);text-shadow:0 0 8px rgba(62,240,255,.8)}.two-rooms .pad{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.two-rooms .pad button{font-size:1.6rem;padding:.6rem 0}.two-rooms .level-tabs button.current{color:var(--amber);border-color:var(--amber)}.two-rooms .pieces{display:flex;gap:.8rem;font-family:var(--font-pixel);font-size:1.6rem;letter-spacing:.12em}.two-rooms .piece{color:var(--green)}.two-rooms .piece.missing{color:var(--dim)}.two-rooms .moves{align-self:center}
