*,*:before,*:after{box-sizing:border-box}:root{color-scheme:dark;--slate: #262A26;--slate-deep: #1C201C;--slate-raised: #30352E;--chalk: #F5F1E8;--chalk-dim: rgba(245, 241, 232, .64);--chalk-faint: rgba(245, 241, 232, .3);--paper: #EFE7D6;--paper-deep: #E3D9C3;--ink: #262A26;--ink-dim: #5C6053;--amber: #E9B04A;--amber-deep: #C89233;--red: #C9352E;--red-chalk: #E06A5F;--bg: var(--slate);--card: var(--paper);--text: var(--chalk);--text-dim: var(--chalk-dim);--accent: var(--amber);--yellow: var(--amber);--green: var(--amber);--font-body: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-stamp: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--grain-slate: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='linear' slope='.14'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23g)'/%3E%3C/svg%3E");--grain-paper: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='90'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='linear' slope='.05'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='90' height='90' filter='url(%23p)'/%3E%3C/svg%3E");--pen-circle: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 64'%3E%3Cellipse cx='50.5' cy='32.5' rx='44' ry='23' fill='none' stroke='%23C9352E' stroke-width='2.6' opacity='.88' transform='rotate(-3 50 32)'/%3E%3C/svg%3E")}html{font-size:clamp(15px,calc(.5vw + 13.4px),19px)}body{margin:0;min-height:100svh;background-color:var(--slate);background-image:radial-gradient(140% 85% at 50% -16%,rgba(233,176,74,.09),transparent 58%),var(--grain-slate);color:var(--chalk);font-family:var(--font-body)}.app{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:.85rem 1rem}.screen{position:relative;min-height:calc(100svh - 4rem);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.9rem;padding:1.25rem 1.1rem 2.6rem}.card{position:relative;background:var(--paper);background-image:var(--grain-paper);color:var(--ink);border:1px solid rgba(38,42,38,.42);box-shadow:0 3px 6px #00000061,inset 0 0 2px #0000000d;border-radius:10px;padding:1.15rem 1.3rem;text-align:left}.card:before{content:"";position:absolute;left:12%;right:12%;top:.55rem;height:3px;background:var(--red);border-radius:2px}.card h1,.card h2,.card h3{color:var(--ink)}h1{font-weight:900;text-transform:uppercase;letter-spacing:.05em;font-size:clamp(2rem,9vw,3.4rem);line-height:1.02;color:var(--chalk)}h2{font-size:1.5rem;line-height:1.2}h3{font-family:var(--font-stamp);font-size:1rem;letter-spacing:.08em;text-transform:uppercase}.center-text{text-align:center;color:var(--chalk-dim);max-width:min(100%,26rem)}.muted{color:var(--chalk-dim)}.subtitle{font-family:var(--font-stamp);text-transform:uppercase;letter-spacing:.14em;font-size:.82rem;color:var(--chalk-dim);text-align:center}.hint{font-family:var(--font-stamp);font-size:.85rem;letter-spacing:.06em;color:var(--amber);text-align:center}.stat{font-family:var(--font-stamp);font-weight:700;font-size:clamp(1.7rem,8vw,2.6rem);letter-spacing:.05em;color:var(--chalk)}.countdown{font-family:var(--font-stamp);font-weight:700;font-size:clamp(1.5rem,7vw,2.3rem);letter-spacing:.08em;color:var(--amber)}.error-banner{font-family:var(--font-stamp);font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:.95rem;color:var(--red-chalk);border:2px dashed rgba(224,106,95,.55);border-radius:8px;padding:.7rem 1rem;max-width:22rem}.error-banner.room-error{cursor:pointer}.room-actions,.host-controls,.home-actions{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem}.language-bar{font-family:var(--font-stamp);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--chalk-dim)}.language-bar:before{content:"";display:block;width:min(60%,22rem);height:2px;margin:0 auto .55rem;background:var(--chalk-faint);border-radius:1px}.language-bar label,.host-controls label{font-family:var(--font-stamp);color:var(--chalk-dim)}.language-bar select{width:min(8.5rem,40vw)}button{font-family:var(--font-body);font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:.95rem;border-radius:999px;padding:.8rem 1.65rem;min-height:2.4rem;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,filter .12s ease}button:focus-visible{outline:3px solid var(--chalk);outline-offset:4px}button:disabled{opacity:.42;cursor:default}.btn-primary{background-color:var(--amber);background-image:radial-gradient(circle,rgba(200,146,51,.3) 1px,transparent 1.6px);background-size:7px 7px;color:var(--slate-deep);border:1px solid var(--amber-deep);box-shadow:inset 0 0 0 3px #262a262e,0 4px #1013108c}.btn-primary:active:not(:disabled){transform:translateY(2px);box-shadow:inset 0 0 0 3px #262a2638,0 1px #1013108c}.btn-secondary{background-color:#30352e8c;color:var(--chalk);border:2px solid var(--chalk-faint)}.btn-success{background-color:var(--amber);color:var(--slate-deep);border:2px solid var(--chalk)}.btn-small{font-size:.78rem;padding:.5rem 1rem;min-height:1.9rem}input{background:var(--paper);color:var(--ink);border:2px solid var(--ink-dim);border-radius:8px;padding:.7rem .95rem;font-family:var(--font-body);font-size:1.05rem}input:focus-visible{outline:3px solid var(--chalk);outline-offset:4px}select{background:var(--paper);color:var(--ink);border:2px solid var(--ink-dim);border-radius:8px;padding:.55rem .8rem;font-family:var(--font-body)}option{background:var(--paper);color:var(--ink)}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:.85rem;width:min(100%,22rem)}.settings-row label,.settings-row span{font-family:var(--font-stamp);color:var(--chalk-dim)}.settings-row input[type=number]{width:7rem;padding:.35rem .6rem}.toggle{position:relative;width:4rem;height:1.5rem;border:2px solid var(--chalk-faint);border-radius:999px;cursor:pointer}.toggle:after{content:"";position:absolute;top:.15rem;left:.15rem;width:1.1rem;height:1.1rem;border-radius:999px;background:var(--chalk-dim);transition:transform .18s ease,background .18s ease}.toggle.active:after{transform:translate(2.55rem);background:var(--amber)}.player-list{display:flex;flex-direction:column;gap:.55rem;align-items:stretch;justify-content:center}.player-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.45rem;text-align:center}.player-row .name{font-weight:700;font-size:1.05rem;color:var(--chalk)}.player-row .disconnected{display:block;font-family:var(--font-stamp);font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:var(--red-chalk)}.badge{font-family:var(--font-stamp);font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;padding:.35rem .7rem;border:1px solid var(--chalk-faint);border-radius:6px;color:var(--chalk-dim)}.badge.host,.badge.ready{color:var(--amber);border-color:#e9b04a8c}.badge.waiting{color:var(--chalk-dim)}.badge.disconnected{color:var(--red-chalk);border-style:dashed}.room-code{position:relative;font-family:var(--font-stamp);font-weight:700;text-transform:uppercase;letter-spacing:.18em;font-size:clamp(2.2rem,11vw,3.4rem);color:var(--chalk);animation:stamp-in .55s ease-out both}.room-code:before{content:"";position:absolute;top:-.28rem;right:-.4rem;bottom:-.28rem;left:-.4rem;border:3px solid rgba(233,176,74,.75);border-radius:12px;transform:rotate(-2.5deg);pointer-events:none}.room-code:after{content:"";position:absolute;top:-.62rem;right:.35rem;bottom:-.62rem;left:.35rem;border:2px solid rgba(233,176,74,.28);border-radius:14px;transform:rotate(1.8deg);pointer-events:none}@keyframes stamp-in{0%{transform:scale(1.9) rotate(-5deg);opacity:0}62%{transform:scale(.94) rotate(.6deg);opacity:1}to{transform:none;opacity:1}}.round-indicator{font-family:var(--font-stamp);text-transform:uppercase;letter-spacing:.14em;font-size:.85rem;color:var(--chalk-dim)}.turn-order{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem;max-width:min(100%,34rem)}.turn-chip{font-family:var(--font-stamp);font-weight:700;font-size:.92rem;letter-spacing:.06em;color:var(--chalk-dim);border:1px solid var(--chalk-faint);border-radius:8px;padding:.5rem .95rem}.turn-chip.active{color:var(--amber);border-color:#e9b04a99;box-shadow:0 0 10px #e9b04a47}.turn-chip.done{color:var(--chalk-faint);border-color:#f5f1e824;text-decoration:line-through}.waiting-turn{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;max-width:min(100%,26rem)}.waiting-name{font-weight:900;font-size:clamp(1.5rem,7vw,2.2rem);letter-spacing:.03em;color:var(--chalk)}.secret-word,.secret-word-reveal{font-family:var(--font-stamp);font-weight:700;font-size:clamp(1.5rem,7vw,2.4rem);letter-spacing:.16em;text-transform:uppercase;color:var(--chalk);animation:develop .9s ease-out both}.secret-word-reveal{font-size:clamp(1.8rem,8vw,2.8rem)}@keyframes develop{0%{opacity:0;letter-spacing:.02em;filter:contrast(.15) brightness(1.6)}55%{opacity:1;filter:contrast(.85) brightness(1.1)}to{opacity:1;letter-spacing:.16em;filter:none}}.secret-word,.secret-word-reveal{text-shadow:0 0 14px rgba(245,241,232,.22)}.bluff-text{font-size:1rem;line-height:1.5;color:var(--chalk-dim);max-width:min(100%,28rem)}.private-word{border-color:#262a2699;box-shadow:0 3px 7px #0006,inset 0 0 2px #c9352e2e}.role-word{font-family:var(--font-stamp);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}.card.private-word:before{background:var(--red)}.card.private-word h2,.card.private-word h3{color:var(--ink)}.voting-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));gap:.65rem;justify-items:center;max-width:min(100%,34rem)}.vote-btn{background-color:#30352e99;color:var(--chalk);border:1px solid var(--chalk-faint);border-radius:10px;padding:.7rem 1.2rem}.vote-btn.selected{background-color:#30352ebf;background-image:var(--pen-circle);background-repeat:no-repeat;background-position:center;background-size:96% 112%;border-color:#c9352ed9}.vote-progress{font-family:var(--font-stamp);font-size:.82rem;letter-spacing:.08em;color:var(--chalk-dim)}.winner-banner{background:var(--chalk);color:var(--ink);border-radius:10px;padding:1rem 1.6rem;font-weight:900;text-transform:uppercase;letter-spacing:.05em;font-size:clamp(1.25rem,6vw,2.1rem);box-shadow:0 4px 8px #0006}.winner-banner.hochstapler{color:var(--red)}.winner-banner.players{color:var(--slate-deep)}.reveal-player{text-align:center}.reveal-player .hochstapler-name{font-family:var(--font-stamp);font-weight:700;font-size:clamp(1.4rem,6vw,2rem);color:var(--ink)}.tally-card{background:var(--paper);background-image:var(--grain-paper);color:var(--ink);border:1px solid rgba(38,42,38,.42);box-shadow:0 3px 6px #00000061,inset 0 0 2px #0000000d;border-radius:10px;padding:1.2rem 1.35rem;text-align:left}.tally-card:before{background:var(--red)}.vote-tally,.tally-row{display:flex;flex-direction:column;gap:.8rem}.vote-tally{align-items:stretch;justify-content:center;max-width:min(100%,30rem)}.tally-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:.65rem;width:min(100%,26rem)}.tally-name{font-weight:700;color:var(--ink)}.tally-accused{font-weight:900;font-size:1.35rem;color:var(--red)}.tally-bar{position:relative;min-width:6rem;height:1.05rem;background:var(--paper-deep);border:1px solid rgba(38,42,38,.3);border-radius:6px}.tally-fill{position:absolute;left:0;top:0;height:100%;min-width:.5rem;background-color:var(--amber);border:1px solid var(--amber-deep);border-radius:6px;transform-origin:left center;animation:grow-bar .5s ease-out both}@keyframes grow-bar{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.tally-count{font-family:var(--font-stamp);font-weight:700;color:var(--ink-dim);min-width:1.2em}.round-start{position:relative;background:#30352ebf;border:1px solid var(--chalk-faint);border-radius:12px;padding:1.4rem 1.6rem;text-align:center}.round-start:before{content:"";position:absolute;left:14%;right:14%;top:.75rem;height:3px;background:var(--amber);border-radius:2px}.round-start h1,.round-start h2,.round-start h3{color:var(--chalk)}.big-name{font-weight:900;text-transform:uppercase;letter-spacing:.04em;font-size:clamp(1.7rem,8vw,2.6rem);color:var(--chalk);animation:chalk-in .5s ease-out both}@keyframes chalk-in{0%{opacity:0;transform:translateY(.35rem)}to{opacity:1;transform:none}}.shelf{position:absolute;left:12%;right:12%;bottom:1rem;height:1.4rem;pointer-events:none}.shelf:before{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--chalk-faint);border-radius:1px}.shelf span{position:relative;display:inline-block;font-family:var(--font-stamp);font-size:.85rem;letter-spacing:.1em;color:var(--chalk-faint);margin:0 .4rem}.shelf .tick-active{color:var(--amber);text-shadow:0 0 8px rgba(233,176,74,.5)}.shelf .tick-active:after{content:"";display:block;position:absolute;left:50%;bottom:-.32rem;width:8px;height:3px;background:var(--amber);border-radius:1px}.screen.home{gap:1.25rem}.card.form-card,.card.quiz-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.85rem}.card.quiz-card{padding:1.6rem 1.5rem 1.3rem}.card.quiz-card .promise{font-weight:700;color:var(--ink);font-size:1.1rem;cursor:pointer}.card.house-rules{max-width:24rem}.card.house-rules h3{font-family:var(--font-stamp);font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;color:var(--red);margin-bottom:.4rem}.card.house-rules ol{padding-left:1.4rem;margin:.3rem 0}.card.house-rules li{margin-bottom:.4rem}.settings-card{padding:1rem 1.2rem}.turn-prompt{font-weight:800;font-size:1.2rem;color:var(--ink)}.home-actions{flex-direction:column;gap:.85rem}.card .muted,.card .vote-progress{color:var(--ink-dim)}.card .stat,.card .secret-word,.card .secret-word-reveal{color:var(--ink);text-shadow:none}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01s!important;animation-delay:0s!important;transition-duration:.01s!important}}@media (min-width: 46rem){.screen{padding-inline:clamp(1.5rem,12vw,9rem)}}
