:root{--paper: #e8dfc4;--paper-dim: #a79e86;--mustard: #c9b46c;--dusk: #6f6652;--ink: #0e0d0a;--ink-80: rgba(14, 13, 10, .82);--ink-60: rgba(14, 13, 10, .6);--alarm: #b43a2a;--tube: #8eb0ba;--line: rgba(232, 223, 196, .22);--font: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", "URW Palladio L", Georgia, serif;color-scheme:dark}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;background:#000;color:var(--paper);font-family:var(--font);font-size:17px;line-height:1.45;-webkit-font-smoothing:antialiased;overflow:hidden}button,input,select{font:inherit;color:inherit}button{background:none;border:0;padding:0;cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--mustard);outline-offset:3px}.app{position:fixed;inset:0}.backdrop{position:absolute;inset:0;z-index:0}.backdrop canvas{width:100%;height:100%;display:block;filter:saturate(.85) brightness(.8)}.menu{position:absolute;inset:0;z-index:1;display:grid;grid-template-columns:minmax(320px,520px) 1fr;background:linear-gradient(90deg,var(--ink) 0%,var(--ink-80) 46%,rgba(14,13,10,.15) 75%,rgba(14,13,10,0) 100%)}.menu-column{padding:clamp(28px,5vh,64px) clamp(20px,4vw,56px);display:flex;flex-direction:column;gap:28px;overflow-y:auto;min-height:0}.title{margin:0;font-weight:400;font-size:clamp(44px,6vw,72px);letter-spacing:.22em;line-height:1;color:var(--paper);animation:tube-on 2.4s steps(1,end) 1}@keyframes tube-on{0%{opacity:.1}8%{opacity:.9}12%{opacity:.2}20%{opacity:1}24%{opacity:.35}30%{opacity:1}45%{opacity:.8}50%{opacity:1}to{opacity:1}}@media (prefers-reduced-motion: reduce){.title{animation:none}*{transition:none!important}}.subtitle{margin:10px 0 0;color:var(--paper-dim);font-size:17px;max-width:38ch}.doors{display:grid;grid-template-columns:1fr 1fr;gap:18px}.door{position:relative;display:flex;flex-direction:column;justify-content:flex-end;gap:8px;min-height:210px;padding:18px 16px 16px;border:1px solid var(--line);border-top-width:6px;text-align:left;color:var(--paper);transition:border-color .16s ease,background-color .16s ease}.door:hover,.door:focus-visible{border-color:var(--mustard);background:#c9b46c0f}.door.dread:hover,.door.dread:focus-visible{border-color:var(--alarm);background:#b43a2a12}.door-name{font-size:30px;line-height:1;letter-spacing:.04em}.door-tagline{color:var(--mustard);font-size:15px}.door.dread .door-tagline{color:#d8705f}.door-text{color:var(--paper-dim);font-size:14px;line-height:1.4}.online{display:flex;flex-direction:column;gap:16px;padding-top:22px;border-top:1px solid var(--line)}.online.solo{padding-top:0;border-top:0}.online-head{display:flex;flex-direction:column;gap:4px}.online-title{font-size:22px;letter-spacing:.08em;color:var(--paper)}.online-sub,.online-note{color:var(--paper-dim);font-size:14px}.door.online{min-height:170px}.door.online:hover,.door.online:focus-visible{border-color:var(--tube);background:#8eb0ba12}.door.online .door-tagline{color:var(--tube)}.door.online:disabled{opacity:.45;cursor:not-allowed}.door-count{color:var(--dusk);font-size:13px}.hud-online{position:absolute;top:18px;right:22px;display:flex;align-items:center;gap:10px;font-size:13px;color:var(--paper-dim);letter-spacing:.04em}.hud-world{color:var(--paper);text-transform:uppercase}.hud-dot{width:7px;height:7px;border-radius:50%;background:var(--tube)}.hud-dot.reconnecting,.hud-dot.connecting{background:var(--mustard)}.hud-dot.closed{background:var(--alarm)}.hud-players{max-width:40vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.continue{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--paper);text-align:left}.continue:hover .continue-action,.continue:focus-visible .continue-action{color:var(--mustard)}.continue-meta{color:var(--paper-dim);font-size:14px}.seed-row{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.seed-row label{color:var(--paper-dim)}.seed-input{flex:1 1 140px;min-width:120px;background:transparent;border:0;border-bottom:1px solid var(--line);padding:4px 0;font-size:19px;letter-spacing:.04em;color:var(--paper)}.seed-input:focus{border-bottom-color:var(--mustard);outline:none}.textlink{color:var(--paper-dim);text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:4px}.textlink:hover,.textlink:focus-visible{color:var(--mustard);text-decoration-color:var(--mustard)}.menu-links{display:flex;gap:22px;flex-wrap:wrap;margin-top:auto}.menu-footer{color:var(--dusk);font-size:13px}@media (max-width: 760px){.menu{grid-template-columns:1fr;background:var(--ink-80)}.doors{grid-template-columns:1fr}.door{min-height:0}}.panel-scrim{position:absolute;inset:0;z-index:5;display:grid;place-items:center;background:#0000008c;padding:16px}.panel{width:min(680px,100%);max-height:min(86vh,900px);overflow-y:auto;background:var(--ink);border:1px solid var(--line);padding:28px 32px 24px}.panel h2{margin:0 0 18px;font-weight:400;font-size:28px;letter-spacing:.08em}.panel-close{float:right;color:var(--paper-dim);font-size:15px;padding:4px 0}.panel-close:hover{color:var(--mustard)}.setting{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:9px 0;border-bottom:1px solid rgba(232,223,196,.1)}.setting-label{display:flex;flex-direction:column}.setting-hint{color:var(--paper-dim);font-size:13px}.seg{display:inline-flex;border:1px solid var(--line)}.seg button{padding:5px 12px;color:var(--paper-dim);border-right:1px solid var(--line)}.seg button:last-child{border-right:0}.seg button[aria-pressed=true]{background:var(--paper);color:var(--ink)}input[type=range]{width:160px;accent-color:var(--mustard)}.toggle[aria-pressed=true]{color:var(--mustard)}.toggle{padding:4px 10px;border:1px solid var(--line);color:var(--paper-dim);min-width:64px}.controls-table{width:100%;border-collapse:collapse}.controls-table td{padding:7px 0;border-bottom:1px solid rgba(232,223,196,.1);vertical-align:top}.controls-table td:first-child{width:34%;color:var(--mustard);letter-spacing:.04em}.game-root{position:absolute;inset:0;background:#000}.overlay{position:absolute;inset:0;z-index:4;display:grid;place-items:center;background:#00000080}.overlay-inner{width:min(560px,92vw);background:var(--ink-80);border:1px solid var(--line);padding:30px 34px}.overlay h2{margin:0 0 8px;font-weight:400;font-size:30px;letter-spacing:.1em}.overlay p{margin:0 0 18px;color:var(--paper-dim)}.overlay-actions{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--line)}.overlay-actions button{text-align:left;padding:12px 0;border-bottom:1px solid var(--line);font-size:19px;color:var(--paper);display:flex;justify-content:space-between}.overlay-actions button:hover,.overlay-actions button:focus-visible{color:var(--mustard)}.overlay-actions .key{color:var(--dusk);font-size:15px}.begin{cursor:pointer;text-align:center}.begin h2{font-size:22px;letter-spacing:.3em}.begin p{margin-bottom:0}.ready-hint{position:absolute;bottom:28px;left:0;right:0;text-align:center;color:var(--paper-dim);font-size:14px;z-index:4;pointer-events:none}.dead .overlay-inner{border-color:#b43a2a99}.dead h2{color:#d8705f}.escaped h2{color:var(--mustard)}.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:6px 18px;margin-bottom:18px;color:var(--paper-dim)}.stats b{font-weight:400;color:var(--paper)}.hud{position:absolute;inset:0;z-index:2;pointer-events:none;font-size:15px}.crosshair{position:absolute;left:50%;top:50%;width:3px;height:3px;margin:-1.5px 0 0 -1.5px;background:#e8dfc473;border-radius:50%}.prompt{position:absolute;left:50%;top:56%;transform:translate(-50%);color:var(--paper);background:var(--ink-60);padding:6px 14px;letter-spacing:.02em}.notice{position:absolute;left:50%;bottom:max(12%,84px);transform:translate(-50%);width:min(460px,86vw);text-align:center;animation:notice-in .6s ease both}.notice-title{font-size:20px;letter-spacing:.1em;color:var(--paper)}.notice-title.phenomenon{color:var(--paper-dim);font-size:17px}.notice-text{color:var(--paper-dim);font-size:14px;margin-top:4px}@keyframes notice-in{0%{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%)}}.hotbar{position:absolute;left:50%;bottom:22px;transform:translate(-50%);display:flex;align-items:flex-end;gap:8px;color:var(--paper-dim);font-size:12px;letter-spacing:.06em}.slot{position:relative;width:34px;height:40px;border:1px solid var(--line);background:var(--ink-60);display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding-bottom:4px;gap:5px}.slot.selected{border-color:var(--mustard)}.slot-num{position:absolute;top:2px;left:4px;font-size:10px;color:var(--paper-dim)}.tool{display:block;background:var(--tool);box-shadow:0 0 0 1px #e8dfc440}.tool.spray{width:9px;height:18px;border-radius:3px 3px 1px 1px}.tool.marker{width:5px;height:18px;border-radius:2px}.tool.chalk{width:14px;height:4px;border-radius:1px;background:#ebebe0}.charge{display:block;width:24px;height:2px;background:#e8dfc42e}.charge>i{display:block;height:100%;background:var(--paper)}.counts{display:flex;flex-direction:column;gap:2px;margin-left:6px}.stamp-name{position:absolute;bottom:48px;left:50%;transform:translate(-50%);white-space:nowrap}.survival{position:absolute;left:28px;bottom:24px;display:flex;align-items:flex-end;gap:18px}.battery{width:10px;height:34px;border:1px solid rgba(232,223,196,.35);position:relative}.battery:before{content:"";position:absolute;top:-4px;left:2px;width:4px;height:3px;background:#e8dfc459}.battery>i{position:absolute;left:1px;right:1px;bottom:1px;background:var(--paper);transition:height .3s linear}.battery.low>i{background:var(--alarm)}.battery.off>i{opacity:.35}.receiver{position:absolute;right:28px;bottom:24px;display:flex;flex-direction:column;align-items:flex-end;gap:6px;color:var(--paper-dim);font-size:13px;letter-spacing:.04em}.receiver-dial{position:relative;width:64px;height:64px;border:1px solid rgba(232,223,196,.25);border-radius:50%}.receiver-needle{position:absolute;left:50%;top:50%;width:2px;height:26px;margin-left:-1px;background:var(--paper);transform-origin:50% 100%;transform:translateY(-100%) rotate(var(--bearing));transition:transform .15s linear}.receiver-needle.exit{background:var(--mustard)}.receiver-dot{position:absolute;left:50%;top:50%;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:var(--paper);animation:receiver-pulse var(--rate) ease-in-out infinite}@keyframes receiver-pulse{0%,to{opacity:.2;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}.fragments{display:flex;gap:6px}.fragments>i{width:10px;height:10px;transform:rotate(45deg);border:1px solid rgba(232,223,196,.5)}.fragments>i.got{background:var(--paper);border-color:var(--paper)}.lock-notice{position:absolute;top:16px;left:50%;transform:translate(-50%);color:var(--paper-dim);font-size:13px}.journal-list{display:flex;flex-direction:column}.journal-entry{display:grid;grid-template-columns:1fr auto;gap:2px 16px;padding:10px 0;border-bottom:1px solid rgba(232,223,196,.1)}.journal-entry .name{font-size:19px}.journal-entry .time{color:var(--dusk);font-size:13px;text-align:right}.journal-entry .desc{grid-column:1 / -1;color:var(--paper-dim);font-size:14px}.journal-entry.phenomenon .name{color:var(--paper-dim);font-size:17px}.journal-entry.phenomenon{border-left:2px solid rgba(232,223,196,.15);padding-left:12px}.journal-empty{color:var(--paper-dim);padding:20px 0}.journal-tabs{display:flex;gap:18px;margin-bottom:10px}.journal-tabs button{color:var(--paper-dim);padding-bottom:4px;border-bottom:1px solid transparent}.journal-tabs button[aria-pressed=true]{color:var(--paper);border-bottom-color:var(--mustard)}.debug{position:absolute;top:12px;left:12px;z-index:3;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.35;color:#cfe7b5;background:#0000008c;padding:8px 10px;pointer-events:none;white-space:pre}.debug-map{position:absolute;right:12px;top:12px;z-index:3;background:#000000b3;border:1px solid var(--line)}.unsupported{position:fixed;inset:0;display:grid;place-items:center;padding:24px;text-align:center;color:var(--paper)}.unsupported h1{font-weight:400;letter-spacing:.2em}.unsupported p{color:var(--paper-dim);max-width:44ch}.text-entry{position:absolute;left:50%;top:58%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:6px}.text-entry input{width:min(360px,80vw);background:var(--ink-80);border:1px solid var(--mustard);color:var(--paper);font-family:var(--font);font-size:18px;padding:8px 12px;outline:none;text-align:center}.text-entry-hint{color:var(--paper-dim);font-size:12px;letter-spacing:.06em}
