:root{--ground:#1a1c3a;--ground-deep:#141630;--ground-raised:#24274d;--ink:#f2efe6;--ink-dim:#b8b5ad;--gold:#e8b84b;--card-frame:#d8cfae;--danger:#d55e00;--serif:Georgia, "Iowan Old Style", "Times New Roman", serif;--sans:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box;margin:0}html,body,#root{height:100%}body{background:var(--ground-deep);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}img{max-width:100%;display:block}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes pop{0%{opacity:0;transform:scale(.6)}70%{transform:scale(1.06)}to{opacity:1;transform:scale(1)}}@keyframes flipIn{0%{opacity:.2;transform:rotateY(90deg)}to{opacity:1;transform:rotateY(0)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.tv-viewport{background:var(--ground-deep);place-items:center;height:100%;display:grid;overflow:hidden}.tv-canvas{background:linear-gradient(180deg, var(--ground-raised) 0%, var(--ground) 45%, var(--ground-deep) 100%);flex-direction:column;width:1920px;height:1080px;display:flex;position:relative;overflow:hidden}.tv-context{height:90px;color:var(--ink-dim);justify-content:center;align-items:center;gap:28px;font-size:30px;display:flex}.tv-context .finallap{color:var(--gold);letter-spacing:.02em;font-size:26px;font-weight:700}.tv-context .clue{font-family:var(--serif);color:var(--ink);font-size:46px;font-style:italic}.tv-stage{flex-direction:column;flex:1;justify-content:center;align-items:center;padding:0 40px;display:flex;position:relative}.tv-instruction{justify-content:center;align-items:center;height:64px;font-size:44px;font-weight:600;display:flex}.tv-rail{justify-content:center;align-items:center;gap:22px;height:100px;padding-bottom:8px;display:flex}.railchip{background:#00000040;border:2px solid #0000;border-radius:999px;align-items:center;gap:10px;padding:10px 18px;font-size:30px;transition:opacity .4s;display:flex}.railchip .glyph{font-size:36px}.railchip .score{color:var(--gold);font-size:34px;font-weight:700}.railchip.gone{opacity:.35}.railchip.acted{border-color:#ffffff80}.tv-corner-qr{letter-spacing:.15em;color:var(--ink-dim);background:#0006;border-radius:12px;align-items:center;gap:10px;padding:8px 14px 8px 8px;font-size:26px;display:flex;position:absolute;top:12px;right:20px}.tv-corner-qr img{border-radius:4px;width:62px;height:62px}.tv-title{font-family:var(--serif);letter-spacing:.04em;color:var(--gold);font-size:110px}.tv-bigqr{background:#fff;border-radius:18px;padding:18px}.tv-bigqr img{width:360px;height:360px}.tv-roomcode{letter-spacing:.35em;padding-left:.35em;font-size:86px;font-weight:800}.tv-howto{color:var(--ink-dim);font-size:34px;font-family:var(--serif);font-style:italic;animation:.6s ease-out rise}.tv-gearbtn{opacity:.25;z-index:5;border-radius:10px;padding:8px;font-size:26px;position:absolute;bottom:16px;left:16px}.tv-gearbtn:hover{opacity:1;background:#ffffff1f}.tv-controls{border:2px solid var(--gold);z-index:10;background:#080814f5;border-radius:16px;flex-direction:column;gap:8px;width:620px;max-height:860px;padding:18px;font-size:24px;animation:.25s ease-out rise;display:flex;position:absolute;bottom:20px;left:20px;overflow-y:auto}.tv-controls .head{justify-content:space-between;align-items:center;margin-bottom:4px;font-size:28px;display:flex}.tv-controls .row{text-align:left;background:#ffffff0f;border-radius:10px;align-items:center;gap:10px;width:100%;padding:10px 12px;display:flex}.tv-controls .row.action{flex-direction:column;align-items:flex-start;gap:2px}.tv-controls .row.action:disabled{opacity:.4}.tv-controls .row .name{flex:1}.tv-controls .row button{background:#ffffff24;border-radius:8px;padding:8px 14px;font-size:20px}.tv-controls .row button:hover{background:#ffffff42}.tv-controls .row button.danger,.tv-controls .head button:hover{background:var(--danger);color:#fff}.tv-controls .hint{color:var(--ink-dim);font-size:19px;line-height:1.35}.tv-soundbtn{opacity:.35;border-radius:10px;padding:8px;font-size:28px;position:absolute;top:16px;left:16px}.tv-soundbtn:hover{opacity:1;background:#ffffff1f}.tv-setupbtn{color:var(--ink-dim);background:#ffffff1a;border-radius:999px;margin-top:18px;padding:10px 22px;font-size:24px}.tv-setupbtn:hover{color:var(--ink);background:#ffffff2e}.tv-variants{background:#0000004d;border-radius:16px;flex-direction:column;gap:12px;margin-top:34px;padding:18px 22px;display:flex}.tv-variants .title{color:var(--gold);letter-spacing:.04em;font-size:26px}.tv-variants .label{color:var(--ink-dim);font-size:22px}.tv-variants .opts{gap:10px;margin-top:4px;display:flex}.tv-variants .opt{background:#ffffff0f;border:2px solid #0000;border-radius:10px;flex:1;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;font-size:24px;transition:border-color .3s,background .3s;display:flex}.tv-variants .opt.leading{border-color:var(--gold);background:#e8b84b24}.tv-variants .voters{gap:2px;font-size:26px;display:flex}.tv-intro{text-align:center;animation:.5s ease-out rise}.tv-intro .who{font-family:var(--serif);color:var(--gold);font-size:96px}.tv-intro .round{color:var(--ink-dim);font-size:44px}.cardback{border:3px solid var(--card-frame);width:180px;height:270px;color:var(--gold);background:radial-gradient(circle at 50% 40%,#2c2a54 0%,#1a1c3a 70%);border-radius:14px;place-items:center;font-size:64px;animation:.5s ease-out pop;display:grid;box-shadow:0 12px 30px #00000080}.spreadcard{border:3px solid var(--card-frame);border-radius:14px;transition:box-shadow .5s,transform .5s,opacity .5s;animation:.8s ease-out both flipIn;position:relative;overflow:hidden;box-shadow:0 12px 30px #00000080}.spreadcard.spotlit{border-color:var(--gold);z-index:2;transform:scale(1.06);box-shadow:0 0 60px #e8b84ba6}.spreadcard.dimmed{opacity:.55}.spreadcard .letter{border:2px solid var(--ink);background:#000000b3;border-radius:50%;place-items:center;width:64px;height:64px;font-size:40px;font-weight:800;display:grid;position:absolute;top:10px;left:10px}.spreadcard .nameplate{text-align:center;background:#000000bf;padding:8px 4px;font-size:26px;animation:.4s ease-out rise;position:absolute;bottom:0;left:0;right:0}.spreadcard .votechips{flex-direction:column;gap:4px;display:flex;position:absolute;top:8px;right:8px}.votechip{background:#000000a6;border:3px solid;border-radius:50%;place-items:center;width:48px;height:48px;font-size:28px;animation:.45s ease-out both pop;display:grid}.scoretrack{width:100%;margin:0 auto;position:relative}.scoretrack-rail{background:linear-gradient(90deg,#ffffff1f,#e8b84b8c);border-radius:3px;height:6px;position:absolute;top:34px}.scoretrack-rail .tick{background:#ffffff40;width:2px;height:18px;position:absolute;top:-6px;transform:translate(-50%)}.scoretrack-rail .tick span{color:var(--ink-dim);font-size:20px;position:absolute;top:-30px;left:50%;transform:translate(-50%)}.scoretrack-rail .tick.finish{background:var(--gold);height:26px}.scoretrack-rail .tick.finish span{font-size:30px}.scoretrack-piece{white-space:nowrap;text-shadow:0 2px 6px #000c;align-items:center;gap:6px;transition:left 1.1s cubic-bezier(.34,1.3,.5,1);display:flex;position:absolute;transform:translate(-50%)}.scoretrack-piece .score{color:var(--ink);font-weight:800}@media (prefers-reduced-motion:reduce){.scoretrack-piece{transition:none}}.tv-rail.as-track{align-items:flex-start;height:auto;min-height:100px;padding:10px 0 18px}.spread-shrink{transform-origin:top;transition:transform .7s}.spread-shrink.small{transform:scale(.62)}@media (prefers-reduced-motion:reduce){.spread-shrink{transition:none}}.tv-scorestrip{background:#0000008c;border-radius:16px;flex-direction:column;gap:8px;padding:18px 28px;font-size:30px;animation:.5s ease-out rise;display:flex;position:absolute;bottom:12px;left:60px;right:60px}.tv-scorestrip .delta{color:var(--gold);font-weight:700}.tv-endgame{text-align:center}.tv-endgame .winner{font-size:140px;animation:.8s ease-out pop}.tv-endgame .winner-name{font-family:var(--serif);color:var(--gold);font-size:76px}.tv-standings{flex-direction:column;gap:10px;margin-top:30px;font-size:38px;display:flex}.ph{max-width:560px;height:100%;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);flex-direction:column;margin:0 auto;display:flex}.ph-context{text-align:center;color:var(--ink-dim);min-height:52px;padding:14px 16px;font-size:15px}.ph-context .clue{font-family:var(--serif);color:var(--ink);font-size:20px;font-style:italic;display:block}.ph-content{flex-direction:column;flex:1;gap:12px;padding:8px 16px;display:flex;overflow-y:auto}.ph-content.centered{text-align:center;justify-content:center;align-items:center;gap:18px}.ph-action{padding:12px 16px calc(12px + env(safe-area-inset-bottom))}.btn{background:var(--gold);color:#241a00;border-radius:14px;width:100%;min-height:56px;padding:16px;font-size:19px;font-weight:700}.btn:disabled{opacity:.45}.btn.ghost{background:var(--ground-raised);color:var(--ink)}.btn.danger{background:var(--danger);color:#fff}.handgrid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.handgrid .cardthumb{border:2px solid var(--card-frame);border-radius:10px;padding:0;position:relative;overflow:hidden}.cardthumb.dimmed{opacity:.55}.cardthumb .letter{border:1px solid var(--ink);background:#000000b3;border-radius:50%;place-items:center;width:34px;height:34px;font-size:19px;font-weight:800;display:grid;position:absolute;top:6px;left:6px}.cardthumb .yoursdot{background:var(--gold);border-radius:50%;width:12px;height:12px;position:absolute;top:8px;right:8px}.pager{background:var(--ground-deep);z-index:20;flex-direction:column;display:flex;position:fixed;inset:0}.pager .art{flex:1;place-items:center;min-height:0;padding:12px;display:grid}.pager .art img{border:3px solid var(--card-frame);border-radius:14px;max-height:100%}.pager .nav{gap:10px;padding:0 16px;display:flex}.pager .nav button{background:var(--ground-raised);border-radius:12px;flex:1;min-height:52px;padding:12px;font-size:24px}.identity-card{background:var(--ground-raised);border-left:8px solid;border-radius:16px;align-items:center;gap:14px;padding:16px;display:flex}.identity-card .glyph{font-size:44px}.roster{flex-direction:column;gap:8px;display:flex}.houserules{background:var(--ground-raised);border-radius:14px;flex-direction:column;gap:10px;padding:14px;display:flex}.houserules .rule .opts{gap:8px;margin-top:6px;display:flex}.houserules .opt{background:#0000004d;border-radius:10px;flex:1;min-height:48px;padding:12px 8px;font-size:15px;position:relative}.houserules .opt.mine{outline:2px solid var(--gold);background:#e8b84b29}.houserules .opt .count{background:var(--gold);color:#241a00;border-radius:999px;min-width:20px;margin-left:6px;padding:1px 6px;font-size:13px;font-weight:700;display:inline-block}.roster .row{background:#00000040;border-radius:10px;align-items:center;gap:10px;padding:10px 12px;font-size:17px;display:flex}.roster .row.gone{opacity:.4}.bigmoment{font-family:var(--serif);font-size:30px;line-height:1.3}.subtle{color:var(--ink-dim);font-size:15px}.ph-banner{background:var(--danger);color:#fff;text-align:center;padding:8px;font-size:14px;font-weight:600}.ph-prompt{background:var(--ground-raised);border:2px solid var(--gold);border-radius:14px;margin:10px 12px 0;padding:14px 16px;font-size:16px;animation:.3s ease-out rise}.ph-toast{border:1px solid var(--danger);color:var(--ink);text-align:center;z-index:40;background:#000;border-radius:12px;padding:12px 16px;animation:.3s ease-out rise;position:fixed;bottom:100px;left:16px;right:16px}.traybtn{z-index:30;opacity:.7;padding:8px;font-size:24px;position:fixed;top:10px;right:10px}.tray{z-index:35;background:#000000d9;flex-direction:column;gap:10px;padding:60px 20px 20px;display:flex;position:fixed;inset:0;overflow-y:auto}.tray .row{background:var(--ground-raised);border-radius:10px;align-items:center;gap:8px;padding:10px;display:flex}.tray .row .name{flex:1;font-size:17px}.tray .row button{background:#ffffff1f;border-radius:8px;min-height:40px;padding:8px 12px;font-size:14px}.clueinput{border:1px solid var(--ink-dim);background:var(--ground-deep);width:100%;color:var(--ink);font-size:18px;font-family:var(--serif);border-radius:12px;padding:14px;font-style:italic}input.nameinput{border:1px solid var(--ink-dim);background:var(--ground-raised);width:100%;color:var(--ink);text-align:center;border-radius:12px;padding:16px;font-size:20px}
