:root{color-scheme:light;--ink: #000;--paper: #f4eedc;--paper-bright: #fffaf0;--stamp-red: #d12b1f;--stamp-red-dark: #9f1c14;--gray-50: #fbf6e9;--gray-100: #e9dfc8;--gray-200: #d4c7ac;--gray-400: #9b927f;--gray-700: #333;--gray-900: #111;--border-md: 3px solid var(--ink);--border-heavy: 5px solid var(--ink);--shadow-sm: 4px 4px 0 var(--ink);--shadow-md: 7px 7px 0 var(--ink);--shadow-lg: 10px 10px 0 var(--ink);--radius: 7px;--font-display: Impact, Haettenschweiler, "Franklin Gothic Heavy", "Arial Black", sans-serif;--font-body: "Avenir Next Condensed", "Franklin Gothic Medium", "Trebuchet MS", sans-serif}*{box-sizing:border-box}html{min-height:100%;background:var(--paper)}body{min-width:320px;min-height:100vh;margin:0;color:var(--ink);background-color:var(--paper);font-family:var(--font-body);font-size:18px;line-height:1.35;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}body:before{position:fixed;inset:0;z-index:-1;border:14px double rgba(0,0,0,.08);background-image:radial-gradient(circle,rgba(0,0,0,.12) 1px,transparent 1.4px);background-position:0 0;background-size:13px 13px;content:"";pointer-events:none;animation:paper-develop .7s ease-out backwards}@keyframes paper-develop{0%{opacity:0}to{opacity:1}}button,input{font:inherit}input,textarea{-webkit-touch-callout:default;-webkit-user-select:text;user-select:text}button{cursor:pointer}button:disabled,input:disabled{cursor:not-allowed;opacity:.55}button:focus-visible,input:focus-visible{outline:4px dashed var(--ink);outline-offset:4px}h1,h2,p{margin:0}h1,h2,.section-title,.timer-readout{font-family:var(--font-display);font-weight:900;letter-spacing:0;text-transform:uppercase}h1{font-size:clamp(3.25rem,15vw,6.5rem);line-height:.9}h2{font-size:clamp(1.7rem,7vw,2.8rem);line-height:.92}ul{padding-left:1.2rem;margin:0}#root{min-height:100vh}.app-shell{width:min(100%,560px);min-height:100vh;margin:0 auto;padding:calc(16px + env(safe-area-inset-top)) 16px calc(24px + env(safe-area-inset-bottom))}.setup-layout,.reveal-layout,.discussion-layout,.voting-layout,.results-layout{display:flex;flex-direction:column;gap:20px}.hero-panel,.form-block,.notice-panel,.pass-card,.timer-panel,.result-banner,.info-card,.scoreboard{border:var(--border-heavy);border-radius:var(--radius);background:var(--paper-bright);box-shadow:var(--shadow-md)}.hero-panel{position:relative;padding:22px 18px;overflow:hidden;transform:rotate(-.5deg)}.hero-panel>*,.pass-card>*,.result-banner>*,.timer-panel>*{position:relative;z-index:1}.hero-panel:after,.result-banner:after{position:absolute;top:12px;right:14px;width:48px;height:48px;background-image:url(/spy-icon.svg);background-size:contain;background-repeat:no-repeat;background-position:center;content:""}.hero-panel:before,.pass-card:before,.timer-panel:before,.result-banner:before,.reveal-card:after{position:absolute;inset:0;z-index:0;background-image:radial-gradient(circle,rgba(0,0,0,.16) 1.25px,transparent 1.35px);background-position:0 0;background-size:10px 10px;content:"";opacity:.38;pointer-events:none}.pass-card:before,.timer-panel:before{opacity:.24}.hero-panel p,.pass-card p,.timer-panel p,.result-banner p{max-width:30rem;margin-top:10px;font-size:1.1rem;font-weight:800}.eyebrow,.label-stamp,.section-title{display:inline-flex;align-items:center;width:fit-content;min-height:32px;padding:3px 10px;border:var(--border-md);background:var(--gray-200);box-shadow:var(--shadow-sm);font-family:var(--font-display);font-size:.98rem;line-height:1;text-transform:uppercase}.eyebrow{margin-bottom:14px;transform:rotate(1deg)}.label-stamp{margin-bottom:8px;transform:rotate(-1deg)}.form-block{padding:16px}.form-block__heading,.mini-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.mini-header{min-height:54px;padding:0 2px;font-weight:900;text-transform:uppercase}.player-input-list,.control-grid,.score-list{display:grid;gap:12px;margin-top:16px}.player-input-row{display:grid;grid-template-columns:84px minmax(0,1fr) 52px;gap:16px;align-items:center}.player-input-row label,.field>span,.field legend,.inline-field span{font-weight:900;text-transform:uppercase}input{width:100%;min-height:52px;border:var(--border-md);border-radius:4px;background:var(--paper);padding:8px 10px;font-weight:900;box-shadow:inset 3px 3px 0 var(--gray-200)}input:focus-visible{outline-offset:3px}.field{display:grid;gap:8px;min-width:0;margin:0;padding:0;border:0}.field small{font-size:.9rem;font-weight:800}.field--wide{grid-column:1 / -1}.stepper{display:flex;align-items:center;gap:10px}.stepper__value{min-width:2ch;text-align:center;font-family:var(--font-display);font-size:1.5rem;font-weight:900}.inline-field{display:grid;grid-template-columns:92px minmax(0,1fr);gap:10px;align-items:center;margin-top:12px}.categories-row{display:flex;align-items:center;width:100%;min-height:52px;padding:8px 12px;border:var(--border-md);border-radius:5px;background:var(--paper);color:var(--ink);box-shadow:var(--shadow-sm);font-weight:900;text-transform:uppercase;gap:8px;cursor:pointer;text-align:left}.categories-row__label{flex:1}.categories-row__value{opacity:.6;font-size:.9em}.categories-row__chevron{font-size:1.5em;line-height:1;opacity:.5}.sheet-overlay{position:fixed;inset:0;z-index:100;background:#0000008c}.sheet-panel{position:fixed;bottom:0;left:0;right:0;z-index:101;background:var(--paper-bright);border-top:var(--border-heavy);border-radius:var(--radius) var(--radius) 0 0;padding:0 16px env(safe-area-inset-bottom,16px);max-height:80dvh;overflow-y:auto}.sheet-header{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;padding:16px 0 12px;background:var(--paper-bright);border-bottom:var(--border-md);margin-bottom:16px}.sheet-title{font-weight:900;font-size:1.05rem;text-transform:uppercase}.sheet-done{background:var(--ink);color:var(--paper);border:none;border-radius:4px;padding:6px 18px;font:inherit;font-weight:900;text-transform:uppercase;cursor:pointer}.sheet-body{padding-bottom:24px}.segmented,.choice-grid,.checkbox-grid,.player-button-grid,.action-row,.result-grid{display:grid;gap:10px}.segmented,.choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.checkbox-grid,.player-button-grid,.result-grid{grid-template-columns:1fr}.checkbox-grid{grid-template-columns:minmax(0,1fr)}.segmented button,.choice-grid button,.player-choice,.comic-check{min-height:52px;border:var(--border-md);border-radius:5px;background:var(--paper);color:var(--ink);box-shadow:var(--shadow-sm);font-weight:900;text-align:center;text-transform:uppercase}.segmented button,.choice-grid button,.player-choice{padding:8px 10px}.segmented button.is-active,.choice-grid button.is-active,.player-choice.is-active,.comic-check:has(input:checked){background:var(--ink);color:var(--paper);transform:translate(3px,3px);box-shadow:1px 1px 0 var(--ink)}.comic-check{display:flex;align-items:center;gap:10px;padding:10px;text-align:left}.comic-check input{width:24px;min-height:24px;box-shadow:none;accent-color:var(--ink)}.comic-check span{min-width:0;white-space:nowrap}.btn,.icon-btn{border:var(--border-heavy);border-radius:5px;color:var(--ink);font-family:var(--font-display);font-weight:900;letter-spacing:0;text-transform:uppercase;transition:transform .12s ease,box-shadow .12s ease}.btn{min-height:58px;padding:12px 16px;background:var(--paper);box-shadow:var(--shadow-md);font-size:1.25rem}.btn--primary{background:var(--paper)}.btn--secondary{background:var(--gray-200)}.btn--danger{background:var(--stamp-red);color:var(--paper-bright)}.btn--ghost{background:transparent}.btn:active,.icon-btn:active,.player-choice:active,.segmented button:active,.choice-grid button:active{transform:translate(5px,5px) scale(.98);box-shadow:2px 2px 0 var(--ink)}@media(hover:hover){.btn:hover:not(:disabled),.icon-btn:hover:not(:disabled){transform:translate(-1px,-1px);box-shadow:8px 8px 0 var(--ink)}.btn--primary:hover:not(:disabled){background:var(--paper-bright)}}.icon-btn{display:grid;width:52px;height:52px;place-items:center;background:var(--gray-200);box-shadow:var(--shadow-sm);font-size:2rem;line-height:1}.wide-action{width:100%}.reveal-actions{display:grid;gap:14px}.notice-panel{padding:16px;background:var(--gray-50)}.notice-panel ul{margin-top:12px;font-weight:900}.pass-card,.timer-panel,.result-banner{position:relative;padding:22px 18px}.pass-card{transform:rotate(.5deg)}.do-not-peek{display:inline-block;margin-bottom:10px;padding:4px 10px;border:var(--border-md);background:var(--stamp-red);color:var(--paper);font-family:var(--font-display);font-size:1.15rem;transform:rotate(-2deg)}.reveal-card{position:relative;display:grid;min-height:250px;width:100%;place-items:center;overflow:hidden;border:6px solid var(--ink);border-radius:var(--radius);background:var(--paper-bright);box-shadow:var(--shadow-lg);color:var(--ink);contain:layout paint;padding:34px 20px;text-align:center;perspective:1200px}.reveal-card__inner{position:relative;width:100%;min-height:200px;transform-style:preserve-3d;transition:transform .52s cubic-bezier(.34,1.4,.5,1)}.reveal-card.is-revealed .reveal-card__inner{transform:rotateY(180deg)}.reveal-card__face{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;backface-visibility:hidden;-webkit-backface-visibility:hidden}.reveal-card__face--front{transform:rotateY(0)}.reveal-card__face--back{transform:rotateY(180deg)}.reveal-card.is-revealed .reveal-card__inner{min-height:232px}.reveal-card:before{position:absolute;inset:12px;border:3px dashed var(--ink);content:"";z-index:1}.reveal-card>*{position:relative;z-index:2}.reveal-card:after{opacity:.28}.reveal-card.is-revealed{min-height:280px;padding:48px 24px;transform:none}.card-cover{position:relative;z-index:1;display:inline-flex;min-height:68px;align-items:center;justify-content:center;border:var(--border-heavy);background:var(--stamp-red);box-shadow:var(--shadow-md);color:var(--paper-bright);padding:12px 18px;font-family:var(--font-display);font-size:clamp(2rem,10vw,3.4rem);line-height:.95;text-transform:uppercase}.scratch-lines{position:absolute;inset:34px;border-top:5px solid var(--ink);border-bottom:5px solid var(--ink);transition:opacity .22s ease-out}.reveal-card.is-revealed .scratch-lines{opacity:0}.scratch-lines:before,.scratch-lines:after{position:absolute;left:-14px;right:-14px;height:5px;background:var(--ink);content:""}.scratch-lines:before{top:46px}.scratch-lines:after{bottom:46px}.reveal-kicker{display:block;margin:0;font-weight:900;text-transform:uppercase}.reveal-hint{display:block;font-size:.95rem;font-weight:800;opacity:.7}.reveal-content{display:flex;width:100%;max-width:92%;min-height:178px;flex-direction:column;align-items:center;justify-content:center;gap:12px}.reveal-card strong{display:block;max-width:100%;font-family:var(--font-display);font-size:clamp(2.35rem,11vw,4.75rem);line-height:.9;text-transform:uppercase;overflow-wrap:anywhere}.reveal-card small{display:block;max-width:100%;margin-top:0;font-size:1.05rem;font-weight:900}.timer-panel{display:grid;min-height:360px;align-content:center;text-align:center;transform:rotate(-.5deg);overflow:hidden}.timer-readout{display:inline-flex;justify-content:center;align-items:baseline;margin:12px 0;font-size:clamp(5rem,24vw,9rem);line-height:.85;font-variant-numeric:tabular-nums;will-change:transform,color}.timer-digit{display:inline-block;text-align:center;vertical-align:baseline}.timer-digit--sep{padding:0 .05em}.timer-readout.is-urgent{animation:timer-pulse 1s ease-in-out infinite}.timer-readout.is-critical{animation-duration:.5s}@keyframes timer-pulse{0%,to{transform:scale(1);color:var(--ink)}50%{transform:scale(1.05);color:var(--stamp-red)}}.pause-stamp{display:inline-block;margin:6px auto 0;padding:6px 18px;border:var(--border-heavy);background:var(--ink);color:var(--paper-bright);box-shadow:var(--shadow-md);font-family:var(--font-display);font-size:clamp(1.4rem,6vw,2rem);text-transform:uppercase;letter-spacing:.02em}.timer-panel.is-finished{animation:shake .32s steps(3,end) infinite}.timer-panel.is-paused .timer-readout,.timer-panel.is-paused .eyebrow,.timer-panel.is-paused p{opacity:.45}.player-choice{width:100%;font-size:1.2rem}.is-saved{background:var(--gray-50)}.result-banner{transform:rotate(-.5deg);overflow:hidden}.result-banner h1{font-size:clamp(3rem,13vw,5.5rem)}.result-grid{margin-top:2px}.info-card,.scoreboard{padding:16px}.info-card ul{margin-top:12px;font-weight:900}.score-matrix{width:100%;margin-top:14px;border:var(--border-heavy);border-collapse:collapse;background:var(--paper-bright);box-shadow:var(--shadow-sm);font-weight:900;table-layout:fixed;text-transform:uppercase}.score-matrix caption{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.score-matrix th,.score-matrix td{border:var(--border-md);padding:10px 8px;text-align:left;vertical-align:middle}.score-matrix thead th{background:var(--ink);color:var(--paper-bright);font-family:var(--font-display);font-size:1rem;line-height:1}.score-matrix tbody th{width:48%;overflow-wrap:anywhere}.score-matrix tbody tr:nth-child(2n) th,.score-matrix tbody tr:nth-child(2n) td{background:var(--paper)}.score-matrix__points{font-family:var(--font-display);font-size:1.45rem;line-height:1;text-align:center}.scoreboard-header{display:flex;align-items:center;justify-content:space-between}.scoreboard-edit-btn{background:none;border:var(--border-sm, 2px solid var(--ink));border-radius:4px;padding:2px 10px;font:inherit;font-size:.95rem;font-weight:900;cursor:pointer}.name-edit-input{width:100%;min-height:unset;padding:2px 6px;font-size:inherit;font-weight:900;box-shadow:none}.result-banner.spy-wins .eyebrow,.result-banner.town-wins .eyebrow,.notice-panel .section-title,.result-banner.spy-caught{background:var(--stamp-red);color:var(--paper-bright)}.result-banner.spy-caught .do-not-peek{background:var(--ink);color:var(--paper-bright);border-color:var(--paper-bright)}.action-row{grid-template-columns:1fr}@keyframes card-pop{0%{transform:scale(.96)}70%{transform:scale(1.03)}to{transform:scale(1)}}@keyframes reveal-content-pop{0%{opacity:0;transform:translateY(8px) scale(.98)}70%{opacity:1;transform:translateY(-2px) scale(1.01)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes shake{0%,to{transform:translate(0) rotate(-.5deg)}33%{transform:translate(-5px) rotate(-1deg)}66%{transform:translate(5px) rotate(1deg)}}@media(min-width:540px){.app-shell{padding-inline:22px}.control-grid,.player-button-grid,.result-grid,.action-row{grid-template-columns:repeat(2,minmax(0,1fr))}.checkbox-grid{grid-template-columns:minmax(0,1fr)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}.quit-dialog{position:fixed;inset:0;z-index:102;display:flex;flex-direction:column;gap:10px;width:min(92%,420px);margin:auto;height:fit-content;padding:24px 20px 20px;background:var(--paper-bright);border:var(--border-heavy);border-radius:var(--radius);box-shadow:var(--shadow-lg)}.quit-dialog:before{position:absolute;inset:0;border-radius:inherit;z-index:0;background-image:radial-gradient(circle,rgba(0,0,0,.13) 1.25px,transparent 1.35px);background-size:10px 10px;content:"";pointer-events:none}.quit-dialog>*{position:relative;z-index:1}.quit-dialog__kicker{font-family:var(--font-display);font-size:.78rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase;opacity:.5}.quit-dialog__heading{font-size:clamp(1.5rem,6vw,2.2rem)}.quit-dialog__body{font-size:.95rem;opacity:.7}.quit-dialog__actions{display:grid;gap:12px;margin-top:6px}.home-btn{position:relative;z-index:10}
