:root{--ink:#17241d;--paper:#f4efdf;--paper-deep:#e8dfc8;--red:#a33327;--red-dark:#79241c;--gold:#c7a75a;--muted:#687067;--line:#17241d2e;--shadow:0 18px 55px #121d171f;color:var(--ink);background:var(--paper);font-synthesis:none;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-height:100vh;margin:0}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}.paper-noise{pointer-events:none;opacity:.17;z-index:10;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.15'/%3E%3C/svg%3E");position:fixed;inset:0}.site-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;max-width:1160px;margin:auto;padding:25px 30px;display:flex}.brand{color:inherit;align-items:center;gap:12px;text-decoration:none;display:flex}.brand-mark{background:var(--red);width:52px;height:52px;color:var(--paper);place-items:center;font:700 20px Georgia,serif;display:grid;transform:rotate(-2deg)}.brand strong{text-transform:uppercase;letter-spacing:.12em;font:700 21px Georgia,serif;display:block}.brand small{color:var(--muted);letter-spacing:.05em;margin-top:3px;font-size:10px;display:block}.edition{text-transform:uppercase;letter-spacing:.16em;color:var(--muted);font-size:10px}#app{max-width:1160px;min-height:calc(100vh - 190px);margin:auto;padding:42px 30px 60px}.loading{text-align:center;color:var(--muted);padding:100px 0}.site-footer{border-top:1px solid var(--line);max-width:1160px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin:auto;padding:22px 30px;font-size:11px}.site-footer span{margin:0 8px}.hero{grid-template-columns:1.25fr .75fr;align-items:center;gap:60px;display:grid}.eyebrow{color:var(--red);letter-spacing:.17em;text-transform:uppercase;align-items:center;gap:10px;font-size:11px;font-weight:800;display:flex}.eyebrow:before{content:"";background:var(--red);width:28px;height:3px}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.045em;margin:20px 0;font:700 clamp(48px,7vw,88px)/.94 Georgia,serif}h1 em{color:var(--red);font-weight:400;display:block}.lead{color:#4c574e;max-width:580px;font-size:18px;line-height:1.6}.hero-note{text-transform:uppercase;letter-spacing:.08em;gap:22px;margin-top:28px;font-size:12px;font-weight:700;display:flex}.hero-note span{border-left:2px solid var(--gold);padding-left:12px}.join-card,.panel{border:1px solid var(--line);box-shadow:var(--shadow);background:#fffcf1ad}.join-card{padding:30px;position:relative}.join-card:before{content:"";border:1px solid var(--line);pointer-events:none;position:absolute;inset:8px}.join-card>*{position:relative}.join-card h2{margin-bottom:8px;font:700 28px Georgia,serif}.join-card p{color:var(--muted);font-size:13px;line-height:1.5}.field{margin:20px 0 14px;display:block}.field span{letter-spacing:.1em;text-transform:uppercase;margin-bottom:7px;font-size:11px;font-weight:800;display:block}input{border:1px solid var(--line);background:var(--paper);width:100%;color:var(--ink);border-radius:0;outline:none;padding:15px;font-size:17px}input:focus{border-color:var(--red);box-shadow:0 0 0 2px #a333271f}.primary,.secondary,.text-button{border:0;border-radius:0;font-weight:800}.primary{background:var(--red);color:#fff8e9;text-transform:uppercase;letter-spacing:.1em;width:100%;box-shadow:4px 4px 0 var(--ink);padding:16px 20px;font-size:12px;transition:transform .12s,box-shadow .12s}.primary:hover{background:var(--red-dark);box-shadow:2px 2px 0 var(--ink);transform:translate(2px,2px)}.secondary{color:var(--ink);border:1px solid var(--line);background:0 0;padding:12px 16px;font-size:12px}.secondary:hover{border-color:var(--ink)}.text-button{color:var(--muted);background:0 0;padding:6px;font-size:12px;text-decoration:underline}.divider{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;align-items:center;gap:12px;margin:20px 0;font-size:10px;display:flex}.divider:before,.divider:after{content:"";background:var(--line);flex:1;height:1px}.error{border-left:3px solid var(--red);color:var(--red-dark);background:#a3332717;margin:14px 0;padding:12px 14px;font-size:13px;line-height:1.45}.game-head{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:24px;display:flex}.game-head h1{margin:10px 0 0;font-size:clamp(34px,5vw,56px)}.room-code{text-align:right}.room-code small{color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-size:10px;display:block}.room-code strong{letter-spacing:.12em;font:700 30px Georgia,serif}.progress{grid-template-columns:repeat(4,1fr);gap:7px;margin-bottom:24px;display:grid}.progress-step{background:var(--line);height:5px}.progress-step.done{background:var(--gold)}.progress-step.active{background:var(--red)}.narrator{background:var(--ink);color:var(--paper);box-shadow:var(--shadow);margin-bottom:20px;padding:26px 28px;position:relative}.narrator-label{color:#d6bd7c;letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:8px;margin-bottom:12px;font-size:10px;font-weight:800;display:flex}.narrator-label:before{content:"";background:#d6bd7c;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #d6bd7c1f}.narrator p{margin:0;font:400 21px/1.45 Georgia,serif}.crisis{background:#a333270e;border:1px solid #a3332759;margin-bottom:20px;padding:25px 28px}.crisis small{color:var(--red);letter-spacing:.14em;text-transform:uppercase;margin-bottom:9px;font-size:10px;font-weight:800;display:block}.crisis strong{font:700 23px/1.35 Georgia,serif}.layout{grid-template-columns:minmax(0,1.45fr) minmax(260px,.55fr);align-items:start;gap:20px;display:grid}.panel{box-shadow:none;padding:24px}.panel-title{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.panel-title h2{margin:0;font:700 24px Georgia,serif}.panel-title small{color:var(--muted);font-size:11px}.candidate{border-top:1px solid var(--line);padding:18px 0}.candidate:first-of-type{border-top:0;padding-top:0}.candidate.me{background:#c7a75a14;margin:0 -12px;padding-left:12px;padding-right:12px}.candidate-top{justify-content:space-between;align-items:center;gap:15px;display:flex}.candidate-name{font-size:16px;font-weight:800}.you{color:var(--red);letter-spacing:.1em;text-transform:uppercase;margin-left:6px;font-size:9px}.score{white-space:nowrap;font:700 22px Georgia,serif}.score small{color:var(--muted);text-transform:uppercase;font:400 10px Inter,sans-serif}.track{background:#17241d14;height:7px;margin:10px 0 12px;overflow:hidden}.track-fill{background:var(--red);min-width:3px;height:100%;transition:width .5s}.traits{gap:6px;display:grid}.trait{color:#4f5a51;font-size:12px;line-height:1.45}.trait b{color:var(--ink);font-weight:700}.trait.scandal{color:var(--red-dark)}.vote-button{border:1px solid var(--red);width:100%;color:var(--red);background:0 0;margin-top:12px;padding:12px;font-size:12px;font-weight:800}.vote-button:hover,.vote-button.selected{background:var(--red);color:var(--paper)}.round-points{color:var(--red);margin-left:5px;font-size:12px;font-weight:800}.action-panel{position:sticky;top:20px}.action-panel h2{margin-bottom:12px;font:700 27px/1.1 Georgia,serif}.action-panel p{color:var(--muted);font-size:13px;line-height:1.55}.action-panel .primary{margin-top:10px}.action-panel .secondary,.action-panel .text-button{width:100%;margin-top:12px}.vote-status{background:#c7a75a1f;padding:12px;font-size:12px;line-height:1.5}.qr{width:min(100%,230px);margin:12px auto 20px;display:block}.join-link{border:1px dashed var(--line);word-break:break-all;color:var(--muted);text-align:center;margin-bottom:12px;padding:10px;font-size:11px}.lobby-players{flex-wrap:wrap;gap:8px;display:flex}.lobby-player{border:1px solid var(--line);background:var(--paper);padding:9px 12px;font-size:12px;font-weight:700}.winner{border:2px solid var(--gold);text-align:center;background:#c7a75a1a;margin-bottom:20px;padding:25px}.winner small{text-transform:uppercase;letter-spacing:.15em;color:var(--muted)}.winner h2{color:var(--red);margin:8px 0 0;font:700 34px Georgia,serif}.rules{color:var(--muted);text-align:center;margin-top:20px;font-size:11px;line-height:1.6}.legend{border-left:4px solid var(--gold);background:#c7a75a17;margin-bottom:20px;padding:24px 28px}.legend small{color:var(--red);letter-spacing:.14em;text-transform:uppercase;margin-bottom:8px;font-size:10px;font-weight:800;display:block}.legend p{margin:0;font:400 18px/1.5 Georgia,serif}.candidate-status{color:var(--red);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:800}.candidate-status.out{color:var(--muted)}.candidate.eliminated{opacity:.55}.candidate.eliminated .traits{text-decoration:none}.card-choices{gap:9px;margin:18px 0;display:grid}.card-choice{border:1px solid var(--line);background:var(--paper);width:100%;color:var(--ink);text-align:left;padding:13px 14px}.card-choice:hover,.card-choice.selected{border-color:var(--red);background:#a333270f}.card-choice b{color:var(--red);letter-spacing:.1em;text-transform:uppercase;margin-bottom:4px;font-size:10px;display:block}.card-choice span{font-size:12px;line-height:1.4;display:block}.action-panel .card-choices+.vote-status{margin-bottom:12px}@media (width<=800px){.site-header{padding:18px}.edition{display:none}#app{padding:28px 18px 45px}.hero{grid-template-columns:1fr;gap:35px}h1{font-size:clamp(48px,14vw,72px)}.layout{grid-template-columns:1fr}.action-panel{order:-1;position:static}.site-footer{padding:20px 18px}}@media (width<=480px){.brand small{display:none}.brand-mark{width:44px;height:44px}.hero-note{gap:12px;font-size:10px}.join-card,.panel{padding:20px}.narrator{padding:22px}.narrator p{font-size:19px}.crisis{padding:20px}.crisis strong{font-size:20px}.game-head{align-items:center}.game-head h1{font-size:34px}.room-code strong{font-size:24px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important}}
