:root{--ink: #16120e;--ink-2: #221c16;--ink-3: #2f271f;--paper: #efe6d2;--paper-ink: #2a2118;--brass: #c9a45c;--brass-dim: #8f7745;--blood: #8a2f2a;--text: #ece4d4;--muted: #a99c86;--line: #3b3127;--radius: 10px;--serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Times New Roman", serif;--sans: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;background:var(--ink);color:var(--text);font:16px/1.5 var(--sans);-webkit-text-size-adjust:100%}#root{min-height:100dvh}h1,h2,h3,h4{font-family:var(--serif);font-weight:600;line-height:1.2;margin:0 0 .4em}h1{font-size:1.9rem}h2{font-size:1.35rem}h3{font-size:1.1rem}h4{font-size:1rem}p{margin:0 0 .75em}.screen{max-width:560px;margin:0 auto;padding:max(16px,env(safe-area-inset-top)) 16px calc(max(16px,env(safe-area-inset-bottom)) + 72px);display:flex;flex-direction:column;gap:16px}.screen.center{min-height:100dvh;justify-content:center}.masthead{text-align:center;padding:24px 0 8px}.masthead h1{font-size:2.6rem;letter-spacing:.02em;color:var(--brass)}.masthead.small{padding-top:8px}.masthead.small h1{font-size:1.8rem}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;color:var(--brass-dim);margin:0 0 4px}.lede{font-family:var(--serif);font-size:1.1rem;color:var(--text)}.muted{color:var(--muted)}.hint{display:block;color:var(--muted);font-size:.85rem;font-weight:400;margin-top:4px}.center-text{text-align:center}.error{color:#f0a39b}.card{background:var(--ink-2);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.card.paper{background:var(--paper);color:var(--paper-ink);border-color:#d6c8a8;box-shadow:0 1px #00000040}.card.paper .hint{color:#7a6a52}.card.paper h3{margin-top:1em;color:var(--blood)}.card.faction{border-color:var(--blood);background:#2a1614}.card.ghost{border-color:#5a6b7a;background:#1b2128}.form{display:flex;flex-direction:column;gap:16px}label{display:block;font-weight:600}input,select{display:block;width:100%;margin-top:6px;padding:12px;font:inherit;font-weight:400;color:var(--text);background:var(--ink);border:1px solid var(--line);border-radius:8px;min-height:48px}input:focus,select:focus,button:focus-visible{outline:2px solid var(--brass);outline-offset:1px}.code-input{font-family:var(--serif);font-size:1.6rem;letter-spacing:.3em;text-align:center;text-transform:uppercase}fieldset{border:0;padding:0;margin:0}legend{font-weight:600;margin-bottom:6px}.radio{display:flex;gap:10px;align-items:flex-start;font-weight:400;padding:10px 0;border-bottom:1px solid var(--line)}.radio input{width:20px;min-height:20px;margin:2px 0 0;flex:none;accent-color:var(--brass)}.inline{display:flex;gap:8px;align-items:stretch}.inline input{margin-top:0}button{font:inherit;font-weight:600;color:var(--text);background:var(--ink-3);border:1px solid var(--line);border-radius:8px;padding:12px 16px;min-height:48px;cursor:pointer}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--brass);border-color:var(--brass);color:var(--ink)}button.small{min-height:36px;padding:6px 12px;font-size:.9rem}button.link{background:none;border:0;color:var(--muted);text-decoration:underline;min-height:40px}button.veil{display:flex;flex-direction:column;align-items:center;padding:20px}button.veil .hint{color:var(--ink-3)}.segmented{display:flex;background:var(--ink-2);border:1px solid var(--line);border-radius:10px;padding:4px;gap:4px}.segmented.wrap{flex-wrap:wrap}.segmented button{flex:1;background:none;border:0;min-height:40px;color:var(--muted)}.segmented button[aria-selected=true]{background:var(--ink-3);color:var(--text)}.actions{display:flex;flex-direction:column;gap:8px}.code{font-size:3.2rem!important;letter-spacing:.25em;margin-right:-.25em}.qr{width:min(240px,70vw);aspect-ratio:1;margin:0 auto;border-radius:var(--radius)}.players{list-style:none;padding:0;margin:0}.players li{padding:10px 0;border-bottom:1px solid var(--line)}.tag{margin-left:8px;font-size:.75rem;color:var(--brass);border:1px solid var(--brass-dim);border-radius:999px;padding:1px 8px}.phase{display:flex;flex-direction:column;gap:8px;position:sticky;top:0;z-index:5;background:var(--ink);padding:env(safe-area-inset-top,0px) 0 8px;border-bottom:1px solid var(--line)}.phase h1{font-size:1.5rem;margin:0}.phase-row{display:flex;justify-content:space-between;align-items:flex-end;gap:12px}.clock{font-family:var(--serif);font-size:1.8rem;color:var(--brass);font-variant-numeric:tabular-nums}.script{margin:0;padding:12px 14px;border-left:3px solid var(--brass);background:var(--ink-2);font-family:var(--serif);font-style:italic;font-size:1.05rem}.host-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:.9rem}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line)}.tabs button{flex:1;background:none;border:0;border-bottom:2px solid transparent;border-radius:0;color:var(--muted);padding:10px 4px;font-size:.92rem}.tabs button[aria-selected=true]{color:var(--text);border-bottom-color:var(--brass)}.role,.stations,.clues{display:flex;flex-direction:column;gap:12px}.goals{padding-left:0;list-style:none}.goals li{padding:4px 0}.points{display:inline-block;min-width:2.2em;font-weight:700;color:var(--blood)}.station{padding:0;overflow:hidden}.station-head{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left;background:none;border:0;border-radius:0;padding:14px 16px}.station-head .hint{margin-top:2px}.count{min-width:28px;text-align:center;color:var(--brass);border:1px solid var(--brass-dim);border-radius:999px;font-size:.85rem;padding:1px 6px}.station-body{display:flex;flex-direction:column;gap:10px;padding:0 16px 16px}.clue{background:var(--paper);color:var(--paper-ink);border-radius:8px;padding:12px 14px;font-family:var(--serif)}.clue h4{margin-bottom:4px}.clue p:last-child{margin-bottom:0}.clue .found{margin-top:10px;padding:10px 12px;border-left:3px solid var(--blood);background:#e4d8bd;border-radius:4px}.clue button{margin-top:8px;background:var(--paper-ink);color:var(--paper);border-color:var(--paper-ink)}.clue .hint{color:#7a6a52;font-family:var(--sans)}.restricted{color:var(--muted);font-style:italic}.lock{border:1px dashed var(--brass-dim);border-radius:8px;padding:12px}.lock.opened{border-style:solid;color:var(--brass)}.section-title{margin:8px 0 0;color:var(--brass)}.log{padding-left:20px;color:var(--muted);font-size:.92rem}.log li{margin-bottom:6px}.vote-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}.scores{width:100%;border-collapse:collapse;font-size:.92rem}.scores th,.scores td{text-align:left;padding:8px 4px;border-bottom:1px solid var(--line)}.scores .num{text-align:right;font-variant-numeric:tabular-nums}.banner{border-radius:8px;padding:10px 14px;font-size:.95rem}.banner.warn{position:sticky;top:0;z-index:30;background:#5a4416;text-align:center;border-radius:0}.banner.danger{background:var(--blood)}.banner.ghost{background:#1b2128;border:1px solid #5a6b7a}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px;background:#000c}.overlay.dark{background:#000;text-align:center}.overlay .big{font-family:var(--serif);font-size:2.4rem;color:var(--muted)}.faction-panel{justify-content:flex-start;padding-top:max(48px,env(safe-area-inset-top));overflow-y:auto}.faction-form{width:100%;max-width:480px;display:flex;flex-direction:column;gap:10px;text-align:left}.toasts{position:fixed;left:16px;right:16px;bottom:calc(max(16px,env(safe-area-inset-bottom)) + 60px);z-index:40;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{pointer-events:auto;max-width:528px;margin:0 auto;width:100%;background:var(--paper);color:var(--paper-ink);border-radius:8px;padding:12px 14px;box-shadow:0 6px 24px #000a}.toast.error{background:#f3d3cf}.cover{border-radius:var(--radius);overflow:hidden;aspect-ratio:400 / 220;background:var(--ink-3)}.cover svg{display:block;width:100%;height:100%}.tagline{display:block;font-family:var(--serif);font-style:italic;font-size:1.1rem;color:var(--text)}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.chip{font-size:.78rem;padding:2px 10px;border-radius:999px;border:1px solid var(--brass-dim);color:var(--brass)}.chip.quiet{border-color:var(--line);color:var(--muted)}.scenarios{display:flex;flex-direction:column;gap:12px}.scenario-card{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--ink)}.scenario-card.selected{border-color:var(--brass);box-shadow:0 0 0 1px var(--brass)}.scenario-pick{display:block;width:100%;padding:0;border:0;border-radius:0;background:none;text-align:left;font-weight:400}.scenario-pick .cover{border-radius:0}.scenario-text{display:block;padding:12px 14px 14px}.scenario-title{display:block;font-family:var(--serif);font-size:1.35rem;margin-bottom:2px}.scenario-more{padding:0 14px 14px;border-top:1px solid var(--line)}.prologue-teaser{font-family:var(--serif);margin-top:12px}.about{display:flex;flex-direction:column;gap:6px}.about .cover{margin-bottom:8px}.prologue p{font-family:var(--serif);font-size:1.05rem;line-height:1.6}.prologue .quote,.card .quote{margin:4px 0 16px;padding:10px 14px;border-left:3px solid var(--blood);font-family:var(--serif);font-style:italic;font-size:1.2rem;color:var(--brass)}.cast{list-style:none;padding:0;margin:0}.cast li{padding:10px 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:2px}.cast li span:last-child{color:var(--muted);font-size:.92rem}.relations{padding-left:18px}.relations li{margin-bottom:8px}.intro{display:flex;flex-direction:column;gap:12px}.steps{list-style:none;display:flex;justify-content:center;gap:4px;padding:0;margin:4px 0 0}.steps button{min-height:28px;padding:6px;background:none;border:0}.steps .dot{display:block;width:8px;height:8px;border-radius:999px;background:var(--line)}.steps li[aria-current=step] .dot{background:var(--brass);width:22px}.intro-page h2{font-size:1.6rem}.intro-page .cover{margin-bottom:12px}.card.paper .lead,.lead{font-family:var(--serif);font-size:1.15rem;line-height:1.6}.intro-lead{font-family:var(--serif);font-style:italic;font-size:1.2rem;color:var(--brass);text-align:center;margin:4px 0 0}.rules{padding-left:20px;line-height:1.6}.rules li{margin-bottom:10px}.intro-nav{display:flex;gap:8px;position:sticky;bottom:0;margin:0 -16px;padding:12px 16px max(12px,env(safe-area-inset-bottom));background:linear-gradient(to bottom,transparent,var(--ink) 30%)}.intro-nav button{flex:1}.ready{text-align:center;display:flex;flex-direction:column;gap:12px;align-items:stretch}.host-start{border-top:1px solid var(--line);padding-top:12px;display:flex;flex-direction:column;gap:8px}.paths{display:flex;flex-direction:column;gap:12px}.path{display:flex;flex-direction:column;gap:6px;text-align:left;padding:18px;min-height:0}.path-title{font-family:var(--serif);font-size:1.35rem}.path-text{font-weight:400;font-size:.95rem;line-height:1.45}.path.primary .path-text{color:var(--ink-3)}.path:not(.primary) .path-text{color:var(--muted)}.link.back{align-self:flex-start;padding:0;min-height:0;text-decoration:none}.invite{font-family:var(--serif);font-size:1.1rem}.share{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}.share .hint{word-break:break-all}.remote{display:flex;flex-direction:column;gap:10px}.channels{list-style:none;padding:0;margin:0}.channels li{display:flex;justify-content:space-between;gap:8px;padding:6px 0;border-bottom:1px solid var(--line)}.channels .hint{margin:0}.button-link{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 16px;border-radius:8px;font-weight:600;text-decoration:none;background:var(--brass);color:var(--ink)}.button-link.small{min-height:36px;padding:6px 12px;font-size:.9rem;background:var(--ink-3);color:var(--text);border:1px solid var(--brass-dim);align-self:flex-start}.whispers{display:flex;flex-direction:column;gap:10px}.threads{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.threads button{width:100%;text-align:left;display:flex;flex-direction:column;gap:2px}.threads .hint{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.thread{display:flex;flex-direction:column;gap:6px;min-height:120px;max-height:50dvh;overflow-y:auto;padding:8px;background:var(--ink-2);border-radius:var(--radius)}.bubble{max-width:80%;margin:0;padding:8px 12px;border-radius:14px 14px 14px 4px;background:var(--ink-3);align-self:flex-start}.bubble.mine{align-self:flex-end;border-radius:14px 14px 4px;background:var(--paper);color:var(--paper-ink)}.tabs button{white-space:nowrap;padding:10px 2px;font-size:.9rem;display:inline-flex;align-items:center;justify-content:center;gap:5px}.badge{min-width:18px;padding:0 5px;border-radius:999px;font-size:.72rem;line-height:18px;background:var(--ink-3);color:var(--brass);border:1px solid var(--brass-dim)}.badge.alert{background:var(--blood);color:var(--text);border-color:var(--blood)}.tag.quiet{color:var(--muted);border-color:var(--line)}.players li{display:flex;align-items:center;gap:6px}.link.remove{margin-left:auto;min-height:32px;font-size:.85rem}.bots{margin-top:12px;display:flex;flex-direction:column;gap:4px;align-items:flex-start}.header-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}button.stop{background:var(--blood);border-color:var(--blood);color:var(--text)}.overlay.paused{background:#000000e6;z-index:50}.overlay.paused .card{max-width:420px}.consent fieldset,.radio.level span{display:flex;flex-direction:column}.radio.disabled{opacity:.45}.roses{display:flex;flex-direction:column;gap:12px}.rose-count{text-align:center;font-family:var(--serif);color:var(--brass)}.big-number{font-size:2.6rem;vertical-align:middle;margin-right:4px}.request{border-color:var(--blood)}.question{font-family:var(--serif);font-size:1.2rem}.mission{display:flex;flex-direction:column;gap:8px}.mission .chip{align-self:flex-start}.mission-text{font-family:var(--serif);font-size:1.05rem;margin:0}.riddle{font-style:italic;color:var(--brass)}.inline.wrap{flex-wrap:wrap}.shop,.stack{display:flex;flex-direction:column;gap:8px}.bought{padding-left:18px}.bought li{margin-bottom:6px}details.card summary{cursor:pointer;font-weight:600}.age-gate{display:flex;flex-direction:column;gap:12px;text-align:center}.age-gate .button-link.small{align-self:center}.adult-check{border-bottom:0}.resume{border-color:var(--brass-dim)}.presence{display:inline-flex;align-items:center;gap:5px}.presence .dot{width:9px;height:9px;border-radius:999px;display:inline-block}.presence.on .dot{background:#6fbf73;box-shadow:0 0 0 3px #6fbf7333}.presence.off .dot{background:var(--muted)}.presence-text{font-size:.75rem;color:var(--muted)}.ready-list{text-align:left}.ready-list li{display:flex;gap:8px;align-items:center}.ready-list .who{flex:1}.ready-mark{color:#6fbf73;font-weight:600;font-size:.9rem}.next-step{border-left:3px solid var(--brass);background:var(--ink-2);border-radius:0 var(--radius) var(--radius) 0;padding:12px 14px;display:flex;flex-direction:column;gap:8px}.next-step .eyebrow{margin:0;color:var(--brass)}.next-text{margin:0;font-family:var(--serif);font-size:1.08rem;line-height:1.5}.next-step .hint{margin:0}.tabs button.suggested{color:var(--brass);position:relative}.tabs button.suggested:after{content:"";position:absolute;top:6px;right:6px;width:7px;height:7px;border-radius:999px;background:var(--brass);animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}@media(prefers-reduced-motion:reduce){.tabs button.suggested:after{animation:none}}.phase h1{font-size:clamp(1.15rem,5.2vw,1.5rem)}.phase .clock{font-size:clamp(1.4rem,6.5vw,1.8rem)}.host-row .more{min-width:40px;font-size:1.1rem;line-height:1}.host-menu{display:flex;gap:8px;flex-basis:100%}.torn-notes{margin-bottom:1.5em}.card.paper.torn h3{margin-top:.2em}.torn .halves{display:grid;gap:0;margin:.6em 0 1em}.torn .half{margin:0;padding:.7em .8em;font-family:var(--serif);font-size:1.05rem;background:#f7f0df;border:1px solid #d6c8a8}.torn .half:first-child{clip-path:polygon(0 0,100% 0,100% 88%,92% 100%,80% 90%,66% 100%,52% 91%,38% 100%,24% 90%,10% 100%,0 92%);padding-bottom:1.1em}.torn .half:last-child{clip-path:polygon(0 8%,10% 0,24% 10%,38% 0,52% 9%,66% 0,80% 10%,92% 0,100% 12%,100% 100%,0 100%);padding-top:1.1em;margin-top:-.4em}.torn .half.missing{background:transparent;border-style:dashed;color:#a8987c;text-align:center;letter-spacing:.4em}.card.paper.torn.whole .eyebrow{color:var(--blood)}.torn select{flex:1;min-width:0}.reader.floating{position:fixed;right:16px;bottom:max(16px,env(safe-area-inset-bottom));z-index:45;display:flex;border-radius:999px;overflow:hidden;border:1px solid var(--brass-dim);box-shadow:0 4px 16px #00000080}.reader button{border:0;border-radius:0;margin:0;min-height:44px;background:var(--ink-3);color:var(--text)}.reader .reader-main{padding:0 18px;font-weight:600}.reader .reader-auto{padding:0 14px;border-left:1px solid var(--brass-dim);color:var(--muted)}.reader .reader-auto[aria-pressed=true]{background:var(--brass);color:var(--ink)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}body:has(.intro-nav) .reader.floating{display:none}.reader.inline{position:static;display:flex;flex:0 0 auto;border:1px solid var(--brass-dim);border-radius:var(--radius);overflow:hidden}.intro-nav .reader.inline button{flex:0 0 auto;min-width:44px;padding:0 12px}.intro-nav>button{min-width:0}.intro-nav .reader.inline .reader-auto{padding:0 10px}.scenes{display:flex;flex-direction:column;gap:12px}.card.scene{border-color:var(--blood);background:linear-gradient(180deg,#2a1614,var(--ink-2))}.card.scene h3{margin:.2em 0 .4em}.scene-rule{border-left:3px solid var(--brass);padding-left:10px;font-weight:600}
