@font-face{font-family:Barlow;src:url('assets/body.ttf') format('truetype');font-display:swap;font-weight:400}
@font-face{font-family:BarlowCondensed;src:url('assets/display.ttf') format('truetype');font-display:swap;font-weight:800}
:root{--ink:#352d29;--dark:#272422;--paper:#e9d8b5;--paper-light:#f4e8cf;--rust:#ad422e;--rust-ink:#963726;--rust-bright:#c44c34;--ochre:#e5af58;--teal:#577b7b;--feedback-teal:#3d6060;--muted:#c4b596;--line:#807361;--display:BarlowCondensed,sans-serif;--body:Barlow,sans-serif;--ease:cubic-bezier(.16,1,.3,1)}
*{box-sizing:border-box}html{min-height:100%;background:var(--dark);scrollbar-color:var(--rust) var(--ink)}body{margin:0;color:var(--paper);background:var(--ink);font:18px/1.45 var(--body);min-height:100svh;overflow-x:hidden}::selection{background:var(--ochre);color:var(--ink)}button,input,select{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default;opacity:.45}button,input,select,a{touch-action:manipulation}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid var(--ochre);outline-offset:5px}input{caret-color:var(--rust)}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--display);font-weight:800;line-height:.94}h1{text-wrap:balance}h2{font-size:clamp(2.3rem,5vw,4rem)}h3{font-size:1.6rem}button{border:0}svg{width:24px;height:24px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}img{max-width:100%;display:block}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}
.world{position:fixed;inset:0;pointer-events:none;background:linear-gradient(125deg,#44382f 0%,#352d29 55%,#242525 100%);z-index:-1}.topbar{max-width:1440px;margin:auto;height:84px;padding:18px 5vw;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{min-height:48px;min-width:48px;display:flex;align-items:center;gap:12px;color:var(--paper);background:none;padding:0;font:800 1.1rem var(--display);letter-spacing:.025em}.brand img{width:39px;height:30px}.top-actions{display:flex;gap:9px}.icon-button{width:48px;height:48px;display:grid;place-items:center;background:transparent;color:var(--paper);border-radius:6px;transition:background .2s,transform .2s}.icon-button:hover{background:#ffffff10;transform:rotate(-5deg)}.icon-button[aria-pressed=true]{color:var(--ochre)}#game{outline:none;min-height:calc(100svh - 84px);display:flex;align-items:center;justify-content:center;padding:20px 5vw 36px;position:relative}.screen{width:100%;max-width:1140px;position:relative}.center-screen{max-width:740px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:24px}.screen-title{font-size:clamp(2.8rem,6vw,4.5rem);color:var(--paper-light)}.subline{color:var(--muted);max-width:40ch;text-wrap:pretty}.action{position:relative;min-height:58px;padding:15px 30px;background:var(--rust);color:var(--paper-light);font:800 1.4rem var(--display);letter-spacing:.035em;display:inline-flex;justify-content:center;align-items:center;gap:12px;border-radius:5px;box-shadow:0 7px 18px #170e0a40;transition:transform .2s var(--ease),background .2s,box-shadow .2s}.action:hover{background:var(--rust-bright);transform:translateY(-3px) rotate(-.5deg);box-shadow:0 12px 25px #170e0a60}.action:active{transform:translateY(2px) scale(.98)}.action.secondary{background:var(--paper);color:var(--ink)}.action.small{min-height:48px;font-size:1.1rem;padding:10px 20px}.text-button{min-height:48px;min-width:48px;color:var(--paper);background:none;padding:12px;font-size:1rem;text-decoration:underline;text-underline-offset:5px}.text-button:hover{color:var(--ochre)}.action-row{display:flex;align-items:center;justify-content:center;gap:18px;flex-wrap:wrap}.requirements{display:flex;gap:25px;color:var(--muted);font-size:.94rem;align-items:center;flex-wrap:wrap}.requirements span{display:flex;gap:8px;align-items:center}.requirements svg{width:19px;height:19px}.phase-track{display:flex;align-items:center;justify-content:center;gap:9px;margin-bottom:6px}.phase-track span{height:6px;width:28px;background:#e9d8b52b;border-radius:2px}.phase-track .active{background:var(--ochre)}
/* The opening stage is deliberately a game title screen. */
.start-screen{display:grid;grid-template-columns:1fr 1.2fr;align-items:center;min-height:540px;gap:0}.title-block{position:relative;z-index:2;padding-left:20px}.game-title{font-size:clamp(4rem,7.5vw,6rem);letter-spacing:-.015em;transform:rotate(-2deg);line-height:.87;margin:0 0 30px}.game-title span{display:block}.game-title .title-accent{color:var(--paper-light);display:inline-block;background:var(--rust);padding:3px 17px 12px;margin-top:8px;transform:rotate(1deg)}.title-blurb{font-size:1.25rem;max-width:25ch;margin:0 0 30px;color:var(--paper)}.start-actions{display:flex;align-items:center;gap:20px;margin-bottom:28px}.start-actions .action{min-width:172px;min-height:64px;font-size:1.7rem}.hero-art{position:relative;align-self:stretch;display:flex;align-items:center;justify-content:center;perspective:1000px}.hero-art img{width:115%;max-width:none;max-height:600px;object-fit:contain;filter:drop-shadow(0 20px 16px #00000040);transform-origin:50% 80%;will-change:transform}.hero-stamp{position:absolute;bottom:40px;right:15px;border:3px solid var(--ochre);padding:9px 18px;font:800 1.2rem var(--display);color:var(--ochre);transform:rotate(-8deg);background:var(--ink)}
/* Casting roster: the wider source portraits are cropped, never stretched. */
.lobby-screen{max-width:910px;margin:auto}.lobby-head{margin-bottom:28px}.lobby-head p{margin-top:12px}.roster{display:grid;grid-template-columns:1fr 1fr;gap:12px 26px;margin-bottom:25px}.player-row{display:flex;align-items:center;gap:16px;padding:12px 0;border-bottom:1px solid #e9d8b530;min-width:0}.portrait{background-image:url('assets/avatar-sheet.jpg');background-size:auto 400%;background-repeat:no-repeat;flex-shrink:0;width:66px;height:76px;border-radius:6px;background-color:var(--paper);box-shadow:0 4px 12px #00000024}.player-input{width:100%;min-width:0;background:none;color:var(--paper-light);border:0;border-radius:0;border-bottom:1px solid transparent;padding:10px 0;font-size:1.25rem}.player-input:focus{border-bottom-color:var(--ochre);outline:0}.player-row .icon-button{flex-shrink:0;width:48px;height:48px}.add-player{background:none;color:var(--paper);display:flex;align-items:center;gap:10px;padding:14px 0;font-size:1rem}.add-player:hover{color:var(--ochre)}.lobby-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:28px}.lobby-footer .action{min-width:230px}.roster-note{font-size:.92rem;color:var(--muted)}.error-text{color:var(--ochre);margin:12px 0;font-size:1rem}
/* Briefing and dossier */
.scene-slate{width:100%;max-width:620px;background:var(--paper);color:var(--ink);padding:38px 42px 40px;border-radius:8px;text-align:left;transform:rotate(-1.2deg);box-shadow:0 17px 30px #17141250;position:relative}.scene-slate:before{content:'';position:absolute;left:24px;top:-7px;width:60px;height:15px;background:var(--teal);transform:rotate(-6deg)}.scene-icon{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;color:var(--rust)}.scene-icon>svg{width:44px;height:44px}.slate-meta{font:800 1rem var(--display);letter-spacing:.08em}.scene-slate h2,.scene-slate .screen-title{color:var(--ink);font-size:clamp(3rem,6vw,4.2rem);margin-bottom:20px}.scene-slate p{font-size:1.2rem;max-width:40ch}.mini-rules{display:flex;gap:25px;justify-content:center;flex-wrap:wrap;font-size:.94rem;color:var(--muted)}.mini-rules span{display:flex;align-items:center;gap:9px}.dossier-wrap{width:100%;max-width:490px;perspective:1200px}.dossier{background:var(--paper);color:var(--ink);padding:24px 30px;border-radius:8px;min-height:335px;position:relative;box-shadow:0 18px 36px #14121150;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:20px;transform-style:preserve-3d}.dossier.sealed{background:#4c4b43;color:var(--paper);border:2px solid #716e5d}.sealed-mark{width:92px;height:92px;border:2px solid #e9d8b552;border-radius:50%;display:grid;place-items:center}.sealed-mark svg{width:46px;height:46px}.sealed-title{font:800 1.6rem var(--display);letter-spacing:.04em}.private-content{width:100%;display:flex;flex-direction:column;gap:15px;text-align:left}.identity{display:flex;align-items:center;gap:18px}.identity .portrait{width:78px;height:89px}.identity h2{font-size:2.25rem}.impulse{font-size:1.18rem}.secret-block{border-top:2px solid #352d2930;padding-top:14px}.secret-label{display:flex;gap:8px;align-items:center;font:800 .94rem var(--display);color:var(--rust);letter-spacing:.07em;margin-bottom:7px}.secret-label svg{width:19px;height:19px}.secret-text{font-size:1.12rem}.bluffer-label{background:var(--rust);color:var(--paper-light);padding:6px 12px;font:800 1.45rem var(--display);display:inline-block;transform:rotate(-2deg)}.peek-button{width:100%;margin-top:18px;min-height:72px;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:none;position:relative;overflow:hidden}.peek-button .hold-fill{position:absolute;inset:0;background:#e9d8b529;transform:scaleX(0);transform-origin:left;pointer-events:none}.peek-button>span:not(.hold-fill),.peek-button>svg{position:relative;z-index:1}.peek-button.holding{background:var(--teal)}.peek-button.holding .hold-fill{transform:scaleX(1);transition:transform .35s linear}.player-counter{font:800 1rem var(--display);color:var(--muted);display:flex;gap:12px;align-items:center}.player-counter .pip{width:8px;height:8px;border-radius:50%;background:#e9d8b545}.player-counter .pip.done{background:var(--teal)}.player-counter .pip.current{background:var(--ochre)}.pass-name{font-size:clamp(2.8rem,6vw,4rem)}.next-player{width:100%;margin-top:12px}.next-player:not(:disabled){animation:button-ready .5s var(--ease)}
/* Conversation stage */
.play-screen{max-width:1060px;display:grid;grid-template-columns:1fr 1fr;gap:45px;align-items:center}.stage-picture{position:relative;border-radius:8px;overflow:hidden;min-height:350px;background:var(--dark)}.stage-picture img{width:100%;height:350px;object-fit:cover}.stage-picture:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#272422fa 0%,#27242200 70%)}.stage-caption{position:absolute;bottom:22px;left:28px;right:22px;z-index:1}.stage-caption h2{font-size:3rem;margin-bottom:12px}.stage-caption p{font-size:1rem;max-width:40ch;color:var(--paper-light)}.timer-panel{text-align:center;display:flex;flex-direction:column;align-items:center;gap:20px}.timer-caption{display:flex;align-items:center;gap:10px;font-size:1.08rem;color:var(--paper)}.timer-digits{font:800 clamp(6rem,12vw,9rem)/.85 var(--display);font-variant-numeric:tabular-nums;letter-spacing:-.035em;color:var(--paper-light)}.timer-digits.urgent{color:var(--ochre)}.timer-track{height:8px;background:#e9d8b51a;width:100%;max-width:340px;border-radius:3px;overflow:hidden}.timer-track span{height:100%;display:block;background:var(--ochre);transform-origin:left;transition:transform .3s linear}.complication{background:var(--ochre);color:var(--ink);padding:22px 24px;border-radius:5px;text-align:left;max-width:450px;width:100%;box-shadow:0 9px 22px #15121140}.complication h3{font-size:1.4rem;display:flex;gap:10px;align-items:center;margin-bottom:10px}.complication p{font-size:1.15rem}.opening-reminder{min-height:56px;max-width:32ch;color:var(--muted);font-size:1rem}.paused-tag{color:var(--ochre);font:800 1.4rem var(--display)}
/* Pointing, accusation, reveal */
.point-icon{width:100px;height:100px;display:grid;place-items:center;color:var(--ochre)}.point-icon svg{width:80px;height:80px}.point-count{font:800 7rem/.9 var(--display);color:var(--ochre)}.suspect-grid{display:grid;grid-template-columns:repeat(4,1fr);width:100%;gap:16px;margin:12px 0}.suspect{background:none;color:var(--paper);padding:14px 6px;border-radius:6px;display:flex;align-items:center;flex-direction:column;gap:12px;transition:background .2s,transform .2s}.suspect:hover{background:#ffffff0d;transform:translateY(-5px)}.suspect[aria-pressed=true]{background:var(--paper);color:var(--ink)}.suspect .portrait{width:90px;height:102px}.suspect-name{font-size:1rem;overflow-wrap:anywhere}.tie-button{background:none;color:var(--muted);padding:12px 20px;border:1px solid #e9d8b53b;border-radius:5px;font-size:1rem}.tie-button[aria-pressed=true]{background:var(--paper);color:var(--ink)}.outcome-stamp{font:800 clamp(3.5rem,7vw,5.5rem)/.9 var(--display);background:var(--rust);color:var(--paper-light);padding:14px 28px 20px;transform:rotate(-3deg);position:relative;z-index:2;box-shadow:0 10px 25px #18131255}.outcome-stamp.escaped{background:var(--teal)}.reveal-person{display:flex;align-items:center;gap:22px;margin-top:6px}.reveal-person .portrait{width:116px;height:132px;transform:rotate(3deg)}.reveal-person h2{font-size:2.8rem;text-align:left;overflow-wrap:anywhere;max-width:15ch}.reveal-person p{text-align:left;color:var(--muted);margin-top:9px}.reveal-secret{padding:22px 28px;color:var(--ink);background:var(--paper);border-radius:6px;max-width:580px;width:100%;text-align:left}.reveal-secret p{font-size:1.2rem}.cast-list{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:14px 28px;text-align:left;margin:10px 0}.cast-person{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid #e9d8b52b}.cast-person .portrait{width:52px;height:60px}.cast-person h3{font-size:1.25rem;line-height:1.1}.cast-person p{font-size:.92rem;color:var(--muted);margin-top:5px}.cast-person .cast-name{font-size:.88rem;color:var(--ochre);margin-bottom:3px}.cast-person.bluffer .cast-name{color:var(--paper-light)}.reveal-actions{position:relative;padding:18px 0;width:100%;background:none;z-index:3}.rules-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:25px;max-width:500px;margin:10px 0 20px;text-align:left}.rules-list li{display:flex;gap:22px;align-items:flex-start}.rules-list svg{width:34px;height:34px;color:var(--ochre)}.rules-list h3{margin-bottom:8px;font-size:1.5rem}.rules-list p{font-size:1.08rem;color:var(--muted)}.settings{position:fixed;right:5vw;top:75px;width:min(370px,90vw);padding:24px;background:var(--paper);color:var(--ink);z-index:30;border-radius:8px;box-shadow:0 16px 40px #00000060}.settings-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:24px}.settings-heading h2{font-size:1.65rem}.settings .icon-button{color:var(--ink)}.setting-row{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:18px 0;font-size:1rem}.setting-row select{max-width:190px;background:var(--paper-light);color:var(--ink);padding:9px 12px;border:1px solid #352d2950;border-radius:4px;font-size:1rem}.settings .text-button{color:var(--rust);padding:12px 0}.curtain{position:fixed;inset:0;z-index:50;pointer-events:none;display:flex;align-items:center;justify-content:center;visibility:hidden}.curtain-panel{position:absolute;left:-5%;width:110%;height:55%;background:var(--rust);box-shadow:0 10px 35px #00000050}.curtain-panel.top{top:0;transform:translateY(-110%) skewY(-3deg)}.curtain-panel.bottom{bottom:0;transform:translateY(110%) skewY(-3deg);background:#713126}.curtain>span{position:relative;color:var(--paper-light);font:800 clamp(2rem,5vw,4rem) var(--display);letter-spacing:.01em;opacity:0;text-align:center;max-width:85vw;transform:rotate(-3deg)}#effects{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:55}.no-script{padding:30px;color:var(--paper);text-align:center}@keyframes button-ready{0%{transform:scale(.96)}65%{transform:scale(1.03)}100%{transform:scale(1)}}
@media(min-width:1500px){.topbar{padding:18px 60px}.start-screen{min-height:640px}.hero-art img{max-height:660px}}
@media(max-width:760px){body{font-size:17px}.topbar{height:72px;padding:12px 6vw}.brand{font-size:1rem;gap:8px}.brand img{width:32px}.top-actions{gap:8px}.icon-button{width:48px;height:48px}#game{min-height:calc(100svh - 72px);padding:18px 6vw 28px;align-items:center}.start-screen{display:flex;flex-direction:column;min-height:0;gap:0;max-width:450px;text-align:center}.title-block{padding:0;display:contents}.game-title{font-size:clamp(2rem,15.5vw,5.5rem);margin:0;order:0}.game-title span:first-child{white-space:nowrap}.game-title .title-accent{padding:0 16px 8px;margin-top:5px}.title-blurb{font-size:1.07rem;max-width:29ch;margin:18px 0 0;order:1}.hero-art{order:2;width:100%;height:270px;margin-top:0}.hero-art img{width:116%;height:310px;max-height:none}.hero-stamp{font-size:1rem;bottom:5px;right:8px;padding:5px 10px}.start-actions{order:3;margin:18px 0 15px;width:100%;justify-content:center;gap:12px}.start-actions .action{min-width:180px;min-height:60px;font-size:1.55rem}.start-actions .text-button{font-size:.92rem;padding:10px 5px}.requirements{order:4;gap:20px;justify-content:center;font-size:.9rem}.requirements svg{width:17px}.center-screen{gap:22px}.screen-title{font-size:3rem}.lobby-head{display:block;margin-bottom:18px}.roster{grid-template-columns:1fr;gap:0;margin-bottom:6px}.player-row{padding:10px 0;gap:16px}.player-row .portrait{width:50px;height:56px}.player-input{font-size:1.18rem}.lobby-footer{margin-top:16px;flex-direction:column;align-items:stretch;gap:15px}.lobby-footer .action{width:100%}.roster-note{text-align:center}.scene-slate{padding:28px 28px 32px}.scene-slate h2,.scene-slate .screen-title{color:var(--ink);font-size:3.1rem}.scene-slate p{font-size:1.1rem}.scene-icon{margin-bottom:22px}.mini-rules{gap:14px;font-size:.87rem}.mini-rules svg{width:20px}.dossier{padding:22px;min-height:323px;gap:16px}.identity{gap:14px}.identity h2{font-size:2rem}.identity .portrait{width:67px;height:76px}.impulse{font-size:1.1rem}.secret-text{font-size:1.04rem}.pass-name{font-size:3rem}.dossier-wrap{max-width:420px}.play-screen{grid-template-columns:1fr;gap:26px;max-width:540px}.stage-picture{min-height:180px}.stage-picture img{height:200px}.stage-caption{left:20px;bottom:18px;right:20px}.stage-caption h2{font-size:2.3rem;margin-bottom:8px}.stage-caption p{font-size:.96rem}.timer-panel{gap:17px}.timer-digits{font-size:7rem}.timer-caption{font-size:.98rem}.timer-track{max-width:100%}.opening-reminder{min-height:30px;font-size:.96rem}.complication{padding:18px 20px}.complication p{font-size:1.04rem}.suspect-grid{grid-template-columns:repeat(2,1fr);gap:10px}.suspect{padding:12px 6px;gap:8px}.suspect .portrait{width:75px;height:85px}.reveal-person .portrait{width:92px;height:106px}.reveal-person h2{font-size:2.2rem}.reveal-secret{padding:20px 23px}.reveal-secret p{font-size:1.12rem}.cast-list{grid-template-columns:1fr;gap:4px}.reveal-actions .action{flex:1;min-width:160px}.rules-list{gap:24px}.settings{right:6vw;top:67px}.outcome-stamp{font-size:3.8rem;padding:12px 24px 17px}}
@media(max-width:380px){.brand span{font-size:.9rem}.game-title{font-size:14.5vw}.hero-art{height:230px}.hero-art img{height:265px}.start-actions{gap:8px}.start-actions .action{min-width:154px}.requirements{gap:13px;font-size:.82rem}.dossier{padding:18px;min-height:305px}.identity h2{font-size:1.85rem}.identity .portrait{width:58px;height:67px}.secret-text{font-size:1rem}.pass-name{font-size:2.7rem}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.hero-art img{will-change:auto}}body.calm *,body.calm *:before,body.calm *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}

.brand{min-width:0}.brand span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top-actions{flex-shrink:0}.identity h2{overflow-wrap:anywhere}#game{overflow-x:clip}

.scene-icon,.secret-label,.settings .text-button{color:var(--rust-ink)}

/* Game format is chosen before casting; each format keeps its own names. */
.mode-switch{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 24px;width:100%;max-width:520px}.mode-choice{flex:1 1 7.5rem;min-width:0;min-height:74px;padding:14px 18px;background:#e9d8b511;color:var(--paper);display:flex;align-items:center;gap:14px;border-radius:5px;text-align:left;transition:background .2s,transform .2s var(--ease)}.mode-choice:hover{background:#e9d8b521;transform:translateY(-2px)}.mode-choice[aria-pressed=true]{background:var(--paper);color:var(--ink)}.mode-choice>svg{width:28px;height:28px}.mode-choice>span{min-width:0;overflow-wrap:anywhere}.mode-choice strong{display:block;font:800 1.3rem var(--display);line-height:1.1}.mode-choice small{display:block;font-size:.86rem;margin-top:4px}.mode-note{font-size:1rem;color:var(--muted);margin:-6px 0 18px}.duel-card-rule{font-size:.95rem;margin-top:12px}.duel-choices{display:flex;flex-direction:column;gap:12px;width:100%;max-width:520px;margin:6px 0}.duel-choice{display:flex;gap:16px;align-items:center;text-align:left;min-height:76px;padding:18px 22px;background:#e9d8b514;color:var(--paper-light);border-radius:5px;font-size:1.1rem;transition:transform .2s var(--ease)}.duel-choice:hover{background:#e9d8b528;transform:translateX(3px)}.duel-choice[aria-pressed=true]{background:var(--paper);color:var(--ink)}.duel-choice span{overflow-wrap:anywhere}.reveal-secret .guess-summary{font-size:.96rem;margin-top:12px;padding-top:12px;border-top:1px solid #352d2940}
@media(max-width:760px){.mode-switch{gap:10px;margin-bottom:18px}.mode-choice{padding:12px 14px;gap:10px;min-height:72px}.mode-choice strong{font-size:1.2rem}.mode-choice>svg{width:24px;height:24px}.mode-choice small{font-size:.8rem}.duel-choice{padding:16px 18px;font-size:1.02rem}.mode-note{font-size:.94rem}}
@media(max-width:380px){.mode-choice{padding:12px 10px;gap:8px}.mode-choice strong{font-size:1.08rem}.mode-choice>svg{width:21px;height:21px}}
/* The expanded show stays inside the warm painted stage. */
textarea{font:inherit;caret-color:var(--rust);touch-action:manipulation}textarea:focus-visible{outline:3px solid var(--ochre);outline-offset:4px}.inline-back,.mode-footer .text-button,.director-controls .text-button,.action-row .text-button{display:inline-flex;align-items:center;gap:9px}.inline-back{padding:0 0 22px;text-decoration:none;color:var(--muted)}.family-portrait{position:relative;overflow:hidden;background-image:none;background-color:var(--paper)}.family-portrait img{position:absolute;width:260%;max-width:none;left:-80%;top:-10%;height:auto}.mode-screen{max-width:1180px}.mode-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:28px}.mode-heading .subline{max-width:22ch;text-align:right;margin-bottom:5px}.mode-theater{display:grid;grid-template-columns:1.25fr 1fr;gap:34px;align-items:stretch}.mode-feature{position:relative;min-height:485px;background:var(--dark);border-radius:8px;overflow:hidden;box-shadow:0 17px 30px #17141250}.mode-backdrop{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.48}.mode-feature:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,var(--dark) 10%,#27242200 85%);pointer-events:none}.mode-feature-art{position:absolute;inset:0 0 18%;display:flex;justify-content:center;align-items:flex-end}.mode-feature-art img{width:37%;height:95%;object-fit:contain;object-position:bottom;filter:drop-shadow(0 10px 12px #17141270);transform:translateY(calc(var(--actor)*10px)) rotate(calc((var(--actor) - 1)*-5deg));margin:0 -2%}.mode-feature-copy{position:absolute;z-index:2;bottom:30px;left:30px;right:30px}.mode-feature-copy h2{font-size:clamp(2.3rem,4vw,3.6rem);color:var(--paper-light);margin-bottom:12px}.mode-feature-copy p{max-width:34ch;margin-bottom:16px}.mode-feature-copy .mini-rules{justify-content:flex-start;color:var(--paper)}.mode-feature-symbol{display:inline-grid;place-items:center;width:50px;height:50px;background:var(--rust);color:var(--paper-light);border-radius:5px;margin-bottom:14px;transform:rotate(-5deg)}.mode-feature-symbol svg{width:30px;height:30px}.mode-program{display:flex;flex-direction:column;justify-content:space-between;gap:6px}.program-choice{background:transparent;color:var(--paper);display:flex;align-items:center;gap:17px;padding:12px 16px;text-align:left;border-radius:5px;min-height:58px;transition:transform .2s var(--ease),background .2s}.program-choice>svg:first-child{width:29px;height:29px}.program-choice>svg:last-child{margin-left:auto;width:20px;height:20px}.program-choice>span{font:800 1.35rem/1.05 var(--display);min-width:0}.program-choice small{display:block;font:400 .8rem/1.3 var(--body);margin-top:5px}.program-choice:hover{background:#e9d8b511;transform:translateX(4px)}.program-choice[aria-pressed=true]{background:var(--paper);color:var(--ink)}.mode-footer{display:flex;justify-content:space-between;align-items:center;gap:22px;margin-top:28px}.mode-footer .action{max-width:100%;white-space:normal;overflow-wrap:anywhere}.casting-screen{max-width:1000px;text-align:center}.casting-heading{margin:8px 0 20px}.casting-heading .screen-title{font-size:clamp(2.6rem,5vw,4rem);overflow-wrap:anywhere}.casting-heading p{margin:14px auto 0}.character-lineup{display:flex;gap:20px;justify-content:center;align-items:flex-end;perspective:1200px;padding:4px 10px 20px}.character-standee{position:relative;flex:1;max-width:235px;min-width:0;background:none;color:var(--muted);padding:0 8px 16px;isolation:isolate;transition:transform .35s var(--ease),color .2s}.character-standee img{height:330px;width:100%;object-fit:contain;object-position:bottom;filter:drop-shadow(0 14px 10px #170e0a40);transition:filter .3s,transform .3s var(--ease);position:relative}.character-standee:not(.selected) img{filter:drop-shadow(0 10px 10px #170e0a40) saturate(.7);transform:scale(.92)}.character-standee:hover img{transform:translateY(-8px)}.character-standee.selected{color:var(--paper-light)}.character-standee.selected:after{content:'';position:absolute;bottom:0;left:15%;right:15%;height:5px;background:var(--ochre);border-radius:3px}.standee-light{position:absolute;width:90%;height:70%;left:5%;bottom:40px;background:var(--paper);opacity:0;z-index:-1;border-radius:8px;transform:skewY(-4deg);transition:opacity .3s}.selected .standee-light{opacity:.06}.character-name{display:block;font:800 2rem/1 var(--display);margin-top:12px}.character-tagline{display:block;font-size:.9rem;margin-top:5px}.cast-seats{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin:10px 0 22px}.cast-seat{display:flex;align-items:center;gap:8px;padding:6px 10px;color:var(--muted);font-size:.9rem;border-radius:5px}.cast-seat.active{background:var(--paper);color:var(--ink)}.cast-seat .portrait{width:30px;height:34px}.cast-seat>svg{width:17px;height:17px}.cast-seat>span:not(.portrait){max-width:16ch;overflow-wrap:anywhere}.casting-footer{display:flex;justify-content:center;align-items:center;gap:28px;flex-wrap:wrap}.casting-footer .action{min-width:240px}.ready-cast,.bow-cast{display:flex;justify-content:center;align-items:flex-end;max-width:500px;width:100%;height:190px}.ready-cast img,.bow-cast img{width:32%;height:100%;object-fit:contain;object-position:bottom;margin:0 -1%;filter:drop-shadow(0 12px 10px #170e0a40)}.bow-cast{height:170px}.live-cue{position:relative;width:100%;max-width:450px;min-height:80px;display:flex;justify-content:center;align-items:center;padding:12px 4px}.live-cue.has-cue{display:block;background:var(--ochre);color:var(--ink);padding:20px 48px 22px 22px;border-radius:5px;box-shadow:0 9px 22px #15121140;text-align:left}.cue-title{font:800 1.3rem var(--display);display:flex;align-items:center;gap:9px;margin-bottom:8px}.live-cue p{font-size:1.08rem}.cue-replay{position:absolute;right:4px;top:8px;color:var(--ink)}.director-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.director-actions .action{flex:1;min-width:150px;padding:12px 15px;letter-spacing:0}.director-controls{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;max-width:420px}.director-controls .text-button{padding:8px}.director-note{font-size:.85rem;color:var(--muted)}.ai-status{font:800 1rem var(--display);color:var(--rust-ink);margin:16px 0 0}.audience-console{display:flex;flex-direction:column;gap:16px;width:100%;max-width:460px}.audience-console .action{align-self:center;min-width:180px}#audience-input{width:100%;resize:vertical;min-height:120px;max-height:250px;padding:20px;color:var(--ink);background:var(--paper);border:0;border-radius:8px;box-shadow:0 18px 36px #14121150;font-size:1.1rem;line-height:1.4}#audience-input::placeholder{color:#65533f;opacity:1}.audience-status{font-size:.86rem;line-height:1.45;color:var(--muted);min-height:2.9em}.reveal-screen .cast-list{max-width:680px}.cast-person{min-width:0}.cast-person>div{min-width:0}.cast-name{overflow-wrap:anywhere}.rules-list>li>p{font-size:1.1rem;color:var(--paper)}.director-actions .action svg{width:20px;height:20px}.play-screen .stage-picture{align-self:stretch;display:flex;min-height:450px}.play-screen .stage-picture img{height:100%;min-height:450px}.stage-caption p{max-height:none}.stage-caption h1{font-size:clamp(2rem,3.7vw,3rem)}
@media(max-width:760px){.mode-heading{display:block;margin-bottom:22px}.mode-heading .subline{text-align:left;max-width:none;margin-top:12px}.mode-heading .screen-title{font-size:3rem}.mode-theater{display:flex;flex-direction:column;gap:20px}.mode-feature{min-height:360px}.mode-feature-art{inset:0 0 27%}.mode-feature-art img{width:35%;height:95%;margin:0 -1%}.mode-feature-copy{bottom:22px;left:22px;right:22px}.mode-feature-copy h2{font-size:2.8rem}.mode-feature-symbol{width:40px;height:40px;margin-bottom:10px}.mode-feature-symbol svg{width:25px;height:25px}.mode-feature-copy p{font-size:1rem;margin-bottom:12px}.mode-feature-copy .mini-rules{font-size:.86rem;gap:16px}.mode-program{display:grid;grid-template-columns:1fr 1fr;gap:9px}.program-choice{background:#e9d8b509;padding:13px 12px;gap:10px;min-height:80px;align-items:center}.program-choice>svg:first-child{width:23px;height:23px}.program-choice>svg:last-child{display:none}.program-choice>span{font-size:1.17rem;line-height:1.05;overflow-wrap:normal}.program-choice small{font-size:.78rem}.mode-footer{margin-top:22px;flex-direction:column-reverse;gap:10px}.mode-footer .action{width:100%;font-size:1.3rem;padding:15px 20px}.casting-heading .screen-title{font-size:2.8rem}.character-lineup{gap:5px;padding:0 0 16px}.character-standee{padding:0 4px 14px}.character-standee img{height:210px}.character-name{font-size:1.55rem}.character-tagline{font-size:.78rem;line-height:1.25;margin-top:7px}.casting-footer{gap:15px}.casting-footer .action{width:100%;min-width:0}.cast-seats{gap:5px;margin:12px 0 20px}.cast-seat{padding:5px 7px;gap:5px;font-size:.8rem}.cast-seat .portrait{width:25px;height:29px}.ready-cast{height:160px}.play-screen .stage-picture{min-height:255px}.play-screen .stage-picture img{min-height:255px;height:255px}.stage-caption h1{font-size:2.2rem}.stage-caption p{font-size:.95rem}.timer-panel{gap:16px}.timer-digits{font-size:6rem}.director-actions{width:100%;gap:9px}.director-actions .action{min-width:130px;font-size:1.05rem;padding:11px 10px}.live-cue.has-cue{padding:18px 44px 20px 20px}.live-cue p{font-size:1.03rem}.scene-slate p{font-size:1.08rem}.audience-screen .point-icon{height:70px}.bow-cast{height:150px}.reveal-screen .outcome-stamp{font-size:clamp(2.7rem,11vw,3.8rem);max-width:100%;overflow-wrap:normal}.reveal-person{max-width:100%}.reveal-person h2{overflow-wrap:anywhere}.settings{max-height:calc(100svh - 90px);overflow:auto}}
@media(max-width:380px){.mode-feature{min-height:340px}.mode-feature-copy h2{font-size:2.4rem}.program-choice{padding:12px 9px;gap:7px}.program-choice>span{font-size:1.08rem}.character-standee img{height:175px}.character-name{font-size:1.4rem}.character-tagline{font-size:.74rem}.casting-heading .screen-title{font-size:2.5rem}.director-actions .action{min-width:120px;font-size:1rem}.director-actions .action>svg{width:18px}.stage-caption h1{font-size:2rem}}
@media(prefers-reduced-motion:reduce){.character-standee img{transform:none!important}.mode-feature-art img{transform:none}}
/* Cast art has room to perform; enlarged type keeps every mode in flow. */
.character-standee img{height:410px;width:150%;max-width:none;margin-left:-25%}.character-tagline{min-height:2.9em}.cast-person p{white-space:pre-line}.second-line{margin-top:10px}
@media(max-width:760px){.character-standee img{height:270px;width:175%;margin-left:-37.5%}.mode-program{grid-template-columns:repeat(auto-fit,minmax(min(100%,8.5rem),1fr))}.program-choice{min-width:0}.mode-feature-copy{position:relative;bottom:auto;left:auto;right:auto;padding:200px 22px 22px}.mode-feature-art{height:245px;inset:0 0 auto}.mode-feature-copy h2{overflow-wrap:anywhere}.mode-feature-symbol{position:relative}.mode-feature{min-height:0}}
@media(max-width:380px){.character-standee img{height:235px}.mode-feature-copy{padding:190px 20px 22px}.mode-feature-art{height:230px}}
/* Three distinct games share the original paper props and painted cast. */
.start-note{font-size:.87rem;color:var(--muted);margin-top:18px;max-width:32ch}
.mode-program{justify-content:flex-start;gap:12px}.program-choice{min-height:86px;padding:16px 20px}.program-choice small{font-size:.87rem;line-height:1.4}.program-summary{margin-top:14px;padding:0 12px;color:var(--paper)}.program-summary h3{font-size:1.5rem;margin-bottom:16px}.program-summary ol{padding-left:22px;margin:0;display:flex;flex-direction:column;gap:14px;font-size:.98rem;line-height:1.45}.program-summary li{padding-left:4px}
.candidate-words{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 22px;text-align:left;margin-top:22px;width:100%;font-size:1.08rem}.candidate-words span{overflow-wrap:anywhere;padding:5px 0}.public-category{background:var(--paper);color:var(--ink);border-radius:8px;padding:22px 28px;width:100%;max-width:520px;text-align:left}.public-category h3{color:var(--rust-ink);font-size:1.6rem}.public-category .candidate-words{margin-top:12px}.small-note{font-size:.9rem}.party-setting{max-width:520px;font-size:1rem;color:var(--paper);text-wrap:pretty}.guest-checklist{display:flex;justify-content:center;flex-wrap:wrap;gap:10px}.guest-checklist .action{min-height:48px;font-size:1.15rem}.team-list{width:100%;max-width:600px;display:flex;gap:24px;text-align:left}.team-list>div{flex:1;min-width:0}.team-list h3{margin-bottom:10px}.team-list p{overflow-wrap:anywhere;color:var(--muted);font-size:1rem}.relay-scores{display:flex;justify-content:center;gap:28px;flex-wrap:wrap;font:800 1.2rem var(--display);color:var(--paper)}.relay-scores strong{font-size:1.8rem;margin-left:8px;font-variant-numeric:tabular-nums}.turn-limit{color:var(--ochre);font-size:.94rem}.relay-playing{max-width:560px;gap:16px}.relay-heading h1{font-size:2.8rem}.relay-heading p{margin-top:10px;color:var(--muted);overflow-wrap:anywhere}.relay-playing .timer-digits{font-size:4.5rem}.relay-playing .dossier{min-height:175px;padding:22px}.relay-playing .sealed-mark{width:48px;height:48px}.relay-playing .sealed-title{font-size:1.4rem}.relay-private{display:flex;flex-direction:column;gap:18px;align-items:center;justify-content:center;min-height:130px}.relay-private h2{font-size:2.8rem;overflow-wrap:anywhere}.relay-private p{font-size:.92rem;max-width:40ch}.relay-playing .peek-button{min-height:58px}.relay-card-actions{display:flex;gap:12px;width:100%;max-width:420px}.relay-card-actions .action{flex:1;padding:14px 22px}.guest-playing .timer-digits{font-size:6rem}.screen>.timer-track{width:100%;max-width:340px}.reveal-screen .relay-scores{color:var(--paper-light)}
@media(max-width:760px){.mode-program{display:flex;flex-direction:column;gap:10px}.program-choice{min-height:78px;padding:16px}.program-choice>svg:last-child{display:block}.program-choice>span{font-size:1.35rem}.program-choice small{font-size:.82rem}.program-summary{margin:12px 0 0;padding:0 4px}.program-summary ol{font-size:.97rem;gap:14px}.team-list{flex-direction:column;gap:18px}.candidate-words{font-size:1rem;gap:5px 16px}.public-category{padding:18px 22px}.relay-playing{gap:14px}.relay-playing .timer-digits{font-size:4rem}.relay-heading h1{font-size:2.5rem}.relay-playing .dossier{min-height:160px}.relay-private h2{font-size:2.45rem}.relay-playing .action-row{gap:16px}.guest-playing .timer-digits{font-size:5rem}.start-note{max-width:none}.relay-scores{gap:20px}}
@media(max-width:380px){.public-category{padding:18px}.relay-heading h1{font-size:2.15rem}.relay-card-actions .action{padding:12px 16px}.program-choice{gap:12px}}
.setting-note{font-size:.87rem;color:var(--ink);margin:14px 0 8px;max-width:30ch}
/* Family seats are fixed identities. The phone opens one private ballot at a time. */
.family-roster{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:24px 0 22px}.family-member{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0;padding:16px 12px 18px;background:#e9d8b50b;border:2px solid transparent;border-radius:6px;color:var(--muted);transition:background .2s,border-color .2s}.family-member[aria-pressed=true]{background:#e9d8b515;border-color:var(--ochre);color:var(--paper-light)}.family-member:disabled{opacity:1;cursor:default}.family-member img{width:100%;height:200px;object-fit:contain;object-position:bottom;filter:drop-shadow(0 10px 8px #17141260)}.family-member[aria-pressed=false] img{opacity:.55}.family-member>span{font:800 1.8rem/1 var(--display)}.family-member small{font-size:.9rem;line-height:1.3}.family-member>svg{position:absolute;right:12px;top:12px;width:22px;height:22px;color:var(--ochre)}.family-player-name{flex:1;min-width:0;font-size:1.35rem;font-weight:600}.guest-portrait{display:grid;place-items:center;background:var(--paper);color:var(--rust-ink)}.guest-portrait svg{width:55%;height:55%}
.center-screen>.action{max-width:100%;white-space:normal;overflow-wrap:anywhere}.private-vote,.escape-screen{max-width:640px}.private-vote .subline,.escape-screen .subline{max-width:43ch}.ballot-paper{width:100%;background:var(--paper);color:var(--ink);padding:26px;border-radius:8px;box-shadow:0 15px 30px #17141240}.ballot-paper .private-content{display:flex;flex-direction:column;gap:22px;align-items:center}.ballot-paper h2{font-size:1.9rem;color:var(--rust-ink)}.ballot-paper p{max-width:40ch;font-size:1rem;line-height:1.45}.ballot-paper .suspect-grid{margin:0;gap:12px}.ballot-paper .suspect{color:var(--ink);background:#352d2910;border:2px solid transparent}.ballot-paper .suspect[aria-pressed=true]{background:var(--paper-light);border-color:var(--rust-ink)}.ballot-paper .suspect-name{color:inherit;overflow-wrap:anywhere}.ballot-paper .suspect .portrait{width:72px;height:82px}.ballot-paper .action{max-width:100%;white-space:normal;overflow-wrap:anywhere}.vote-tally{list-style:none;margin:0;padding:0;width:100%;max-width:450px;display:flex;flex-direction:column;gap:8px;text-align:left}.vote-tally li{display:flex;align-items:center;gap:14px;padding:10px 14px;background:#e9d8b50e;border-radius:5px}.vote-tally .portrait{width:38px;height:43px;flex-shrink:0}.vote-tally .tally-name{flex:1;min-width:0;overflow-wrap:anywhere}.vote-tally strong{font:800 1.25rem var(--display);white-space:nowrap;color:var(--ochre)}.final-guess-handoff{width:100%;max-width:520px;text-align:left;padding:24px;background:#e9d8b50b;border-radius:4px}.final-guess-handoff .reveal-person{gap:16px;justify-content:flex-start;margin-bottom:16px}.final-guess-handoff .portrait{width:50px;height:58px}.final-guess-handoff h2{font-size:1.8rem}.final-guess-handoff p{font-size:1.05rem;line-height:1.5}.final-guess-handoff p+p{margin-top:12px;color:var(--ochre)}.escape-screen .reveal-person{gap:20px}.escape-screen .pass-name{font-size:clamp(2.7rem,5vw,3.9rem);overflow-wrap:anywhere}.escape-screen .duel-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;max-width:none}.escape-screen .duel-choice{justify-content:space-between;gap:8px;padding:14px 16px;min-height:60px;background:#352d2910;color:var(--ink);border:2px solid transparent;font-size:1.06rem}.escape-screen .duel-choice:hover{transform:none;background:#352d2920}.escape-screen .duel-choice[aria-pressed=true]{background:var(--paper-light);border-color:var(--rust-ink)}.escape-screen .duel-choice svg{width:20px;height:20px;flex-shrink:0}.ballot-paper .player-counter{color:var(--rust-ink)}
@media(max-width:760px){.family-roster{gap:9px;margin:20px 0 14px}.family-member{padding:14px 5px;gap:7px}.family-member img{height:140px}.family-member>span{font-size:1.45rem}.family-member small{font-size:.78rem}.family-member>svg{width:17px;height:17px;right:7px;top:7px}.family-player-name{font-size:1.18rem}.ballot-paper{padding:20px}.ballot-paper .private-content{gap:18px}.ballot-paper .suspect-grid{gap:10px}.ballot-paper .suspect .portrait{width:64px;height:74px}.ballot-paper h2{font-size:1.65rem}.final-guess-handoff{padding:20px}.final-guess-handoff p{font-size:1rem}.escape-screen .reveal-person{gap:14px}.escape-screen .pass-name{font-size:2.7rem}.escape-screen .reveal-person .portrait{width:65px;height:75px}.escape-screen .duel-choice{font-size:1rem;padding:12px;min-height:56px}.private-vote>.action,.escape-screen .action{font-size:1.3rem}.vote-tally li{padding:8px 12px}.vote-tally strong{font-size:1.15rem}}
@media(max-width:380px){.family-member img{height:115px}.family-member>span{font-size:1.3rem}.family-member small{font-size:.73rem}.ballot-paper{padding:16px}.escape-screen .pass-name{font-size:2.4rem}.escape-screen .duel-choice{padding:10px;font-size:.94rem}.vote-tally{font-size:.95rem}}
/* At the curtain call, sealed ballots unfold into voter → choice pairs. */
.vote-totals{width:100%;max-width:450px}.vote-totals h2{font-size:1.5rem;color:var(--muted);margin-bottom:14px}.vote-recap{width:100%;max-width:520px;text-align:left}.recap-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px;min-height:52px}.recap-heading h2{font-size:1.75rem;line-height:.98;color:var(--paper-light)}.recap-heading .text-button{font-size:.88rem;padding:10px 0;flex-shrink:0}.ballot-recap{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.ballot-recap li{display:grid;grid-template-columns:minmax(0,1fr) 22px minmax(0,1fr);gap:12px;align-items:center;background:#e9d8b50e;padding:10px 12px;border-radius:5px;min-height:84px}.ballot-voter,.ballot-target{display:flex;align-items:center;gap:10px;min-width:0;width:100%}.ballot-voter>span:last-child,.ballot-choice-name{overflow-wrap:anywhere;min-width:0;font-size:1rem;line-height:1.25}.ballot-recap .portrait{width:38px;height:43px;flex-shrink:0}.ballot-arrow{color:var(--ochre);display:grid;place-items:center}.ballot-arrow svg{width:22px;height:22px}.ballot-target-slot{min-width:0;display:flex;align-items:center;min-height:64px;perspective:450px}.ballot-target{background:var(--paper);color:var(--ink);padding:10px;border-radius:4px;min-height:64px;transform-origin:top}.ballot-choice-name{font-weight:600}.ballot-sealed{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;min-height:64px;background:#27242266;border-radius:4px;color:var(--muted);font:800 1rem var(--display);letter-spacing:.04em}.ballot-sealed svg{width:20px;height:20px}
@media(max-width:760px){.vote-recap{max-width:450px}.recap-heading{margin-bottom:14px}.recap-heading h2{font-size:1.6rem}.ballot-recap li{gap:8px;padding:8px;grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr)}.ballot-recap .portrait{width:32px;height:37px}.ballot-voter,.ballot-target{gap:7px}.ballot-target{padding:8px}.ballot-voter>span:last-child,.ballot-choice-name{font-size:.94rem}.ballot-arrow svg{width:18px;height:18px}}
@media(max-width:380px){.ballot-recap li{gap:6px;grid-template-columns:minmax(0,1fr) 16px minmax(0,1fr)}.ballot-recap .portrait{width:26px;height:30px}.ballot-voter,.ballot-target{gap:6px}.ballot-target{padding:6px}.ballot-voter>span:last-child,.ballot-choice-name{font-size:.89rem}.ballot-sealed{font-size:.94rem}.recap-heading h2{font-size:1.5rem}}

@media(max-width:760px){.ballot-target.long-name .portrait{display:none}}

/* One visible owner and one stable secret slot, sealed or open. */
.turn-holder{display:flex;align-items:center;justify-content:center;gap:16px;max-width:100%;text-align:left;color:var(--paper-light)}
.turn-holder>div{min-width:0}.turn-holder .holder-name{font-size:2.25rem;overflow-wrap:anywhere}
.holder-role{font:800 .9rem/1.25 var(--display);letter-spacing:.04em;color:var(--muted);margin-top:6px}
.turn-holder .portrait{width:64px;height:72px;flex-shrink:0}
.dossier{min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);justify-content:stretch;align-items:stretch;gap:18px;border:2px solid transparent;height:27rem;width:100%;transform-style:flat}
.dossier.sealed{border:2px solid #716e5d}.dossier>.turn-holder{justify-content:flex-start;color:var(--ink);padding-bottom:14px;border-bottom:1px solid #352d2933}
.dossier>.turn-holder .holder-role{color:#65533f}.dossier.sealed>.turn-holder{color:var(--paper-light);border-color:#e9d8b533}.dossier.sealed>.turn-holder .holder-role{color:var(--paper)}
.dossier-body{min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-color:var(--rust) transparent;overscroll-behavior:contain;display:flex;flex-direction:column;justify-content:flex-start}
.dossier-body>.private-content{margin-block:auto;flex-shrink:0}.dossier-body .identity .portrait{display:none}.dossier-body .identity h2{font-size:1.7rem}.dossier-body .impulse{font-size:1rem;line-height:1.4}
.sealed-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;min-height:100%;text-align:center}.sealed-content p{font-size:.9rem;color:var(--paper)}
.relay-playing .dossier{height:18.5rem;min-height:0;padding:20px;gap:14px}.relay-playing .dossier>.turn-holder{padding-bottom:12px}.relay-playing .dossier .portrait{width:50px;height:57px}.relay-playing .holder-name{font-size:1.9rem}.relay-playing .holder-role{font-size:.8rem}
.relay-playing .sealed-content{gap:14px}.relay-playing .sealed-mark svg{width:28px;height:28px}.relay-playing .sealed-content p{font-size:.87rem}.relay-private{min-height:0;gap:14px;text-align:center}.relay-private h2{font-size:2.65rem;line-height:1.02}.relay-private p{line-height:1.35}
.card-instruction{font-size:.9rem;line-height:1.35;color:var(--muted);min-height:2.7em;max-width:34ch;display:flex;align-items:center;justify-content:center}
.card-feedback{position:absolute;inset:0;background:var(--feedback-teal);color:var(--paper-light);border-radius:6px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:14px;text-align:center;padding:24px;z-index:2;pointer-events:none}
.card-feedback[data-feedback=pass]{background:var(--ink)}.relay-playing .card-feedback>.portrait{width:64px;height:72px}.card-feedback strong{display:flex;align-items:center;gap:12px;font:800 clamp(2.2rem,8vw,3.4rem)/1 var(--display)}.card-feedback strong>svg{width:32px;height:32px;flex-shrink:0}.card-feedback span{font-size:1.1rem}
.guest-checklist .portrait{width:30px;height:35px}.guest-checklist .action{gap:9px}
/* The curtain call gives the characters the stage, then explains the score. */
.reveal-screen{max-width:850px}.finale-stage{display:flex;align-items:flex-end;justify-content:center;width:100%;gap:14px;padding:8px 0 18px}
.result-character{flex:1;max-width:260px;min-width:0;text-align:center;transform-origin:50% 100%}.reaction-art{width:100%;height:270px;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 14px 14px #170e0a50)}
.result-character[data-outcome=lose] .reaction-art{height:215px}.result-character h2{font-size:2rem;color:var(--paper-light);margin-top:14px}.result-character p{font:800 1rem var(--display);letter-spacing:.04em;color:var(--ochre);margin-top:8px}.result-character[data-outcome=lose] p{color:var(--muted)}
.standings{width:100%;max-width:600px;text-align:left}.standings>h2{font-size:2rem}.standings>p{font-size:.92rem;color:var(--muted);margin-top:10px;line-height:1.45}.standings table{border-collapse:collapse;width:100%;margin-top:20px;font-variant-numeric:tabular-nums}.standings thead th{font:800 1rem var(--display);text-align:right;color:var(--muted);padding:0 10px 12px}.standings thead th:first-child{text-align:left}.standings td{padding:16px 10px;text-align:right;font:800 1.7rem var(--display);white-space:nowrap}.standings td>span{font:400 .85rem var(--body);color:var(--muted)}.standings tbody tr{border-top:1px solid #e9d8b530}.standings tbody th{display:flex;align-items:center;gap:12px;padding:16px 0;min-width:0;font:800 1.4rem var(--display)}.standings .portrait{width:38px;height:43px}.standing-winner{display:flex;gap:5px;align-items:center;font:800 .8rem var(--display);color:var(--ochre);margin-top:6px}.standing-winner svg{width:15px;height:15px}.standings .speed-note{font-size:.85rem;margin-top:16px;max-width:60ch}
@media(max-width:760px){
 .turn-holder{gap:14px}.turn-holder .holder-name{font-size:2rem}.dossier{height:24rem;padding:20px}.dossier>.turn-holder .portrait{width:50px;height:57px}.dossier .holder-name{font-size:1.8rem}.holder-role{font-size:.8rem}
 .relay-playing{gap:10px}.relay-playing .dossier{height:15.5rem;padding:18px}.relay-playing .dossier .portrait{width:44px;height:50px}.relay-playing .timer-digits{font-size:3.7rem}.relay-playing .peek-button{margin-top:12px}.relay-private h2{font-size:2.3rem}.relay-playing .card-instruction{font-size:.85rem}.relay-playing .player-counter{font-size:.92rem;min-height:1.45em}.relay-heading p{font-size:.85rem;margin-top:6px}
 .finale-stage{gap:4px;padding-bottom:4px}.reaction-art{height:220px}.result-character[data-outcome=lose] .reaction-art{height:175px}.result-character h2{font-size:1.55rem}.result-character p{font-size:.83rem;margin-top:6px}.standings thead th{font-size:.88rem;padding:0 5px 12px}.standings td{font-size:1.5rem;padding:14px 5px}.standings td>span{font-size:.75rem}.standings tbody th{gap:8px;font-size:1.2rem}.standings .portrait{width:30px;height:35px}
}
@media(max-width:380px){.dossier{padding:16px}.dossier .holder-role{font-size:.73rem}.relay-playing .dossier{padding:16px}.reaction-art{height:185px}.result-character[data-outcome=lose] .reaction-art{height:150px}.result-character h2{font-size:1.4rem}.result-character p{font-size:.76rem}.standings td>span{display:block}.standings thead th{font-size:.8rem}.standings .portrait{width:26px;height:30px}}
.dossier-wrap>[data-action=next-player]{display:flex;width:100%;margin-top:4px}
@media(max-width:760px){.reaction-art{width:180%;max-width:none;margin-left:-40%}.reveal-actions{width:100%;flex-direction:column;gap:8px}.reveal-actions>.action{width:100%}}
/* Reusable result scenes: art, captions and decoration compose independently. */
.finale-composition{width:100%;max-width:850px}
.finale-stage[data-scene]{position:relative;isolation:isolate;overflow:hidden;padding:12px 0 24px}
.finale-stage[data-scene] .result-character{position:relative;flex:1;min-width:0;max-width:none;--art-height:270px}
.finale-stage[data-scene] .reaction-art{height:var(--art-height);width:var(--art-height);max-width:none;margin-left:calc((100% - var(--art-height))/2 + var(--art-height)*var(--art-shift,0));object-fit:contain;object-position:center;filter:drop-shadow(0 14px 14px #170e0a50)}
.finale-stage[data-scene] .result-character[data-outcome=lose]{--art-height:215px}
.finale-stage[data-scene] .result-label{position:relative;z-index:3;padding:0 5px}
.finale-stage[data-scene] h2{overflow-wrap:anywhere}
.finale-stage[data-scene=spotlight]{min-height:490px;justify-content:center}
.finale-stage[data-scene=spotlight] .result-character{flex:none;width:100%;max-width:580px;--art-height:420px}
.finale-stage[data-scene=spotlight] h2{font-size:3.6rem;margin-top:0}
.finale-stage[data-scene=spotlight] p{font-size:1.15rem}
.finale-stage[data-scene=thought-bubbles]{display:block;padding-top:0}
.finale-stage[data-scene=thought-bubbles] .scene-hero{width:100%;--art-height:365px;margin-top:90px}
.scene-thoughts{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;gap:20px;padding:4px 40px;z-index:2}
.finale-stage[data-scene] .thought-character{flex:none;max-width:190px;width:190px;background:var(--paper-light);color:var(--ink);border-radius:48% 48% 42% 42%;padding:10px 8px 15px;box-shadow:0 12px 18px #170e0a30;--art-height:135px!important}
.thought-character:after,.thought-character:before{content:'';position:absolute;bottom:-17px;right:15%;width:20px;height:17px;border-radius:50%;background:var(--paper-light)}
.thought-character:before{bottom:-34px;right:24%;width:10px;height:9px}
.thought-character:last-child:after{left:15%;right:auto}.thought-character:last-child:before{left:24%;right:auto}
.scene-thoughts[data-count='1']{justify-content:flex-end}
.finale-stage[data-scene] .thought-character h2{color:var(--ink);font-size:1.6rem;margin-top:0}
.finale-stage[data-scene] .thought-character p{color:var(--rust-ink);font-size:.85rem;margin-top:5px}
.finale-stage[data-scene=backdrop]{display:block;min-height:480px}
.scene-backdrop{position:absolute;inset:26px 0 55px;display:flex;align-items:center;justify-content:space-between;overflow:hidden;z-index:-1}
.finale-stage[data-scene] .scene-backdrop .reaction-art{--art-height:350px;width:48%;height:350px;margin:0;opacity:.38;filter:blur(5px) saturate(.65);object-fit:contain;transform:scale(1.2)}
.finale-stage[data-scene=backdrop] .scene-hero{width:100%;--art-height:420px}
.finale-stage[data-scene=backdrop] .result-label{margin:-98px auto 0;width:fit-content;max-width:95%;background:var(--ink);padding:14px 30px 18px;transform:rotate(-2deg)}
.finale-stage[data-scene=backdrop] h2{font-size:4.2rem;margin-top:0}
.finale-stage[data-scene=backdrop] p{font-size:1.15rem}
.finale-stage[data-scene=shared]{display:block}
.scene-ensemble,.scene-supporting{display:flex;justify-content:center;align-items:flex-end;gap:16px;width:100%}
.finale-stage[data-scene=shared] .scene-ensemble .result-character{max-width:320px;--art-height:310px}
.finale-stage[data-scene=shared] .scene-ensemble .result-character[data-outcome=lose]{--art-height:270px}
.scene-supporting{margin-top:32px}
.finale-stage[data-scene=shared] .supporting-character{max-width:220px;--art-height:160px}
.finale-stage[data-scene=shared] .supporting-character h2{font-size:1.65rem}
@media(max-width:760px){
 .finale-stage[data-scene]{padding-bottom:20px;gap:6px}
 .finale-stage[data-scene] .result-character{--art-height:200px}
 .finale-stage[data-scene] .result-character[data-outcome=lose]{--art-height:170px}
 .finale-stage[data-scene=spotlight]{min-height:410px}
 .finale-stage[data-scene=spotlight] .result-character{--art-height:340px}
 .finale-stage[data-scene=spotlight] h2{font-size:3rem}
 .finale-stage[data-scene=thought-bubbles] .scene-hero{--art-height:315px;margin-top:145px}
 .scene-thoughts{padding:4px 2px;gap:12px}
 .finale-stage[data-scene] .thought-character{width:130px;max-width:44%;padding:8px 6px 12px;--art-height:112px!important}
 .finale-stage[data-scene] .thought-character h2{font-size:1.35rem}
 .finale-stage[data-scene] .thought-character p{font-size:.75rem}
 .finale-stage[data-scene=backdrop]{min-height:395px}
 .finale-stage[data-scene=backdrop] .scene-hero{--art-height:350px}
 .finale-stage[data-scene] .scene-backdrop .reaction-art{--art-height:300px;height:300px;transform:scale(1.35);opacity:.32}
 .finale-stage[data-scene=backdrop] .result-label{margin-top:-85px;padding:12px 24px 16px}
 .finale-stage[data-scene=backdrop] h2{font-size:3.4rem}
 .scene-ensemble,.scene-supporting{gap:8px}
 .finale-stage[data-scene=shared] .scene-ensemble .result-character{--art-height:235px}
 .finale-stage[data-scene=shared] .scene-ensemble[data-count='3'] .result-character{--art-height:190px}
 .finale-stage[data-scene=shared] .scene-ensemble .result-character[data-outcome=lose]{--art-height:200px}
 .finale-stage[data-scene=shared] .scene-ensemble[data-count='3'] .result-character[data-outcome=lose]{--art-height:170px}
 .finale-stage[data-scene=shared] .supporting-character{--art-height:140px}
}
@media(max-width:380px){
 .finale-stage[data-scene] .result-character{--art-height:175px}
 .finale-stage[data-scene] .result-character[data-outcome=lose]{--art-height:145px}
 .finale-stage[data-scene=spotlight] .result-character{--art-height:310px}
 .finale-stage[data-scene=spotlight]{min-height:380px}
 .finale-stage[data-scene=thought-bubbles] .scene-hero{--art-height:285px;margin-top:150px}
 .finale-stage[data-scene=backdrop] .scene-hero{--art-height:310px}
 .finale-stage[data-scene=backdrop]{min-height:365px}
 .finale-stage[data-scene=shared] .scene-ensemble .result-character{--art-height:205px}
 .finale-stage[data-scene=shared] .scene-ensemble[data-count='3'] .result-character{--art-height:165px}
}
/* Leave the widest authored gestures and the winner's face clear on phones. */
.finale-stage[data-scene=shared] .result-character.supporting-character[data-outcome=lose]{--art-height:160px}
@media(max-width:760px){
 .finale-stage[data-scene=lineup]{padding-inline:20px}
 .finale-stage[data-scene=lineup][data-players='3'] .result-character{--art-height:180px}
 .scene-ensemble{padding-inline:16px}
 .finale-stage[data-scene=shared] .scene-ensemble[data-count='3']{padding-inline:22px}
 .finale-stage[data-scene=shared] .scene-ensemble[data-count='3'] .result-character{--art-height:180px}
 .finale-stage[data-scene=thought-bubbles] .scene-hero{margin-top:210px}
 .finale-stage[data-scene] .scene-backdrop .reaction-art{object-position:center top;opacity:.42}
 .finale-stage[data-scene=shared] .result-character.supporting-character[data-outcome=lose]{--art-height:140px}
}
@media(max-width:380px){
 .finale-stage[data-scene=lineup]{padding-inline:12px}
 .finale-stage[data-scene=lineup][data-players='3'] .result-character{--art-height:135px}
 .finale-stage[data-scene=shared] .scene-ensemble .result-character{--art-height:200px}
 .finale-stage[data-scene=shared] .scene-ensemble[data-count='3']{padding-inline:12px}
 .finale-stage[data-scene=shared] .scene-ensemble[data-count='3'] .result-character{--art-height:135px}
 .finale-stage[data-scene=thought-bubbles] .scene-hero{margin-top:220px}
 .finale-stage[data-scene=shared] .result-character.supporting-character[data-outcome=lose]{--art-height:125px}
}

/* Account controls stay inside the existing settings paper. */
.pro-account{padding:16px 0;margin:12px 0;border-top:1px solid #352d2930;border-bottom:1px solid #352d2930}
.pro-account h3{font:800 1.1rem/1.15 var(--display);margin-bottom:8px}
.pro-account p{font-size:.9rem;line-height:1.4;margin:0 0 8px}
.pro-actions{display:flex;flex-wrap:wrap;gap:8px 18px}
.pro-actions .text-button{min-height:48px;color:var(--rust-ink);text-align:left}
.pro-actions [hidden]{display:none}
.settings{max-height:calc(100dvh - 88px);overflow-y:auto}
