:root{--bg:#fff;--bg-deep:#f6f8f7;--surface:#fff;--surface-sunken:#f5f8f8;--surface-lift:#edf5f4;--edge:#d6e1e3;--edge-soft:#e6edee;--edge-strong:#a5b9bf;--fog:#657b84;--fog-haze:#9aa3ae14;--fog-thin:#9aa3ae0a;--moon:#247a83;--moon-soft:#20beb510;--moon-edge:#27858b55;--scrim:#05070acc;--text:#193b4b;--text-dim:#506773;--text-faint:#617581;--on-accent:#fff;--lantern:#147b79;--lantern-deep:#11635f;--lantern-soft:#20beb520;--lantern-glow:#20beb512;--lantern-wash:#e5f6f3;--ember:#c54e37;--ember-deep:#a83d2b;--ember-soft:#ff775c20;--good:#24714d;--good-deep:#216242;--good-soft:#24714d15;--good-wash:#edf7f0;--bad:#b6372b;--bad-soft:#b6372b12;--bad-edge:#b6372b44;--scatter-ink:#ebe7df0c;--scatter-edge:#ebe7df08;--scatter-fill:#ebe7df04;--qr-light:#193b4b;--qr-dark:#fff;--display:"Arial Black", "Archivo", "Segoe UI", sans-serif;--ui:"Archivo", "Segoe UI", system-ui, -apple-system, sans-serif;--data:"Space Mono", ui-monospace, "Courier New", monospace;--shadow-card:0 18px 45px #193b4b14;--shadow-lift:0 10px 28px #193b4b12;--shadow-sheet:0 -18px 50px #193b4b22;color:var(--text);background:var(--bg);font-family:var(--ui);font-synthesis:none}*{box-sizing:border-box}body{background:var(--bg);min-width:320px;min-height:100dvh;color:var(--text);margin:0}button,input,select{font:inherit}button{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--lantern);outline-offset:2px}.ttt-layout{width:min(760px,100%);margin:auto;padding:38px 0 24px}.ttt-layout h1{font-size:clamp(32px,6vw,52px)}.ttt-layout h1:focus{outline:none}.ttt-setup{margin-top:28px;padding:clamp(18px,4vw,30px)}.ttt-bank-note{color:var(--text-dim);margin:16px 0 26px;font-size:13px;line-height:1.5}.ttt-caption{margin-bottom:24px}.ttt-board{table-layout:fixed;border-collapse:collapse;background:var(--surface);width:100%;box-shadow:var(--shadow-card)}.ttt-board td{border:2px solid var(--edge-strong);text-align:center;vertical-align:middle;height:clamp(110px,19vw,180px);font-family:var(--display);overflow-wrap:anywhere;padding:clamp(6px,2vw,18px);font-size:clamp(16px,3.5vw,32px);font-weight:600}.ttt-actions{gap:12px;margin-top:24px;display:flex}.ttt-actions .primary-button{flex:1;width:auto}.app-shell{isolation:isolate;min-height:calc(100dvh - var(--keyboard-inset,0px));flex-direction:column;padding:22px clamp(16px,5vw,72px) 18px;display:flex;position:relative;overflow:hidden}.app-shell:before{content:"";z-index:-2;background:radial-gradient(ellipse 70% 40% at 20% -6%, var(--fog-haze) 0 30%, transparent 70%), radial-gradient(circle at 92% 72%, var(--lantern-glow) 0 10%, transparent 38%), linear-gradient(170deg, var(--bg), var(--bg-deep));position:fixed;inset:0}.app-shell:after{content:"";z-index:-1;pointer-events:none;background:radial-gradient(ellipse 38% 14% at 30% 62%, var(--fog-haze), transparent 70%), radial-gradient(ellipse 30% 10% at 70% 30%, var(--fog-thin), transparent 70%), radial-gradient(ellipse 45% 12% at 55% 88%, var(--fog-haze), transparent 70%);animation:38s ease-in-out infinite alternate fog-drift;position:fixed;inset:-20% -40%}@keyframes fog-drift{0%{transform:translate(-6%)}to{transform:translate(6%)}}.brand{font-family:var(--data);text-transform:uppercase;letter-spacing:.2em;color:var(--text-dim);flex:none;align-items:center;gap:11px;font-size:11px;display:flex}.brand-mark{width:34px;height:34px;color:var(--on-accent);background:var(--lantern);font-family:var(--display);letter-spacing:-.03em;border:0;border-radius:9px;place-items:center;font-size:13px;font-weight:700;display:grid}.brand-home{cursor:pointer;padding:0;transition:filter .15s}.brand-home:hover:not(:disabled){filter:brightness(1.1)}h1,h2{font-family:var(--display);letter-spacing:-.02em;text-wrap:balance;margin:0;font-weight:600}.eyebrow{color:var(--lantern);font-family:var(--data);text-transform:uppercase;letter-spacing:.2em;margin:0 0 9px;font-size:11px}.intro{color:var(--text-dim);max-width:56ch;font-size:clamp(15px,1.7vw,18px);line-height:1.55}.field-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);margin:0 0 8px;font-size:11px;font-weight:700;display:block}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.paper-card{background:var(--surface);border:1px solid var(--edge);box-shadow:var(--shadow-card);border-radius:20px}.text-input,.code-input,.share-link,.address-select{border:1px solid var(--edge);background:var(--surface-sunken);width:100%;color:var(--text);border-radius:12px;outline:none;transition:border-color .18s,box-shadow .18s}.text-input{margin-bottom:13px;padding:13px 15px}.text-input::placeholder{color:var(--text-faint)}.text-input:focus,.code-input:focus,.share-link:focus,.address-select:focus{border-color:var(--lantern);box-shadow:0 0 0 3px var(--lantern-soft)}.primary-button,.secondary-button,.danger-button,.win-button,.loss-button,.copy-button{font-family:var(--ui);cursor:pointer;border:1px solid #0000;border-radius:12px;min-height:50px;font-weight:700;transition:transform .15s,filter .15s,opacity .15s}.primary-button{width:100%;color:var(--on-accent);background:var(--lantern)}.secondary-button{color:var(--text);background:var(--surface-lift);border-color:var(--edge-strong);padding:0 22px}.danger-button{width:100%;color:var(--ember);border-color:var(--ember-deep);background:0 0}.win-button{color:var(--on-accent);background:var(--good)}.loss-button{color:var(--text-dim);border-color:var(--edge-strong);background:0 0}.copy-button{width:100%;color:var(--on-accent);background:var(--lantern);min-height:44px;margin:6px 0 10px}.primary-button:hover:not(:disabled),.secondary-button:hover:not(:disabled),.danger-button:hover:not(:disabled),.win-button:hover:not(:disabled),.loss-button:hover:not(:disabled),.copy-button:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px)}button:disabled{opacity:.4;cursor:not-allowed}.text-button{color:var(--text-faint);cursor:pointer;background:0 0;border:0;border-radius:8px;margin:18px auto 0;padding:8px 10px;text-decoration:underline;display:block}.text-button:hover:not(:disabled){color:var(--text-dim)}.divider{color:var(--text-faint);font-family:var(--data);text-transform:uppercase;letter-spacing:.16em;align-items:center;gap:12px;margin:22px 0 16px;font-size:10px;display:flex}.divider:before,.divider:after{content:"";background:var(--edge);flex:1;height:1px}.error-message{color:var(--bad);background:var(--bad-soft);border:1px solid var(--bad-edge);border-radius:10px;margin:14px 0 0;padding:10px 12px;font-size:13px}.poll-dot{background:var(--good);width:8px;height:8px;box-shadow:0 0 0 5px var(--good-soft);border-radius:50%;margin-right:8px;animation:1.5s infinite pulse;display:inline-block}@keyframes pulse{50%{opacity:.35;transform:scale(.75)}}.letter-scatter i{z-index:-1;width:64px;height:64px;font-family:var(--display);color:var(--scatter-ink);border:1px solid var(--scatter-edge);background:var(--scatter-fill);border-radius:14px;place-items:center;font-size:35px;font-style:normal;font-weight:700;display:grid;position:fixed}.letter-scatter i:first-child{top:17%;left:3%;transform:rotate(-14deg)}.letter-scatter i:nth-child(2){top:10%;right:5%;transform:rotate(8deg)}.letter-scatter i:nth-child(3){bottom:9%;left:7%;transform:rotate(12deg)}.letter-scatter i:nth-child(4){bottom:18%;right:3%;transform:rotate(-9deg)}.letter-scatter i:nth-child(5){top:4%;left:48%;transform:rotate(4deg)}footer{text-align:center;color:var(--text-faint);margin-top:auto;padding-top:22px;font-size:11.5px}.home-layout{flex-direction:column;flex:auto;justify-content:center;width:min(560px,100%);margin:0 auto;padding:18px 0 10px;animation:.4s both home-reveal;display:flex}.home-intro{margin-bottom:22px}.home-play-intro{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.home-play-intro p{color:var(--text-dim);margin:0;font-size:14px}.setup-values{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.scrambled-setup-values{grid-template-columns:repeat(2,minmax(0,1fr))}.setup-value{border:1px solid var(--moon-edge);background:var(--moon-soft);min-width:0;color:var(--moon);cursor:pointer;border-radius:12px;flex-direction:column;align-items:center;gap:9px;padding:16px 6px;display:flex}.setup-value>span{font-size:12px;font-weight:700}.setup-value strong{font-size:clamp(14px,3.8vw,20px)}.setup-value:hover:not(:disabled){border-color:var(--moon);background:var(--surface-lift)}.setup-value:focus-visible,.setting-dialog button:focus-visible{outline:2px solid var(--moon);outline-offset:3px}.setup-value:disabled{cursor:default;opacity:.6}.setting-dialog{border:1px solid var(--moon-edge);background:var(--surface);width:min(360px,100% - 32px);color:var(--text);box-shadow:var(--shadow-card);border-radius:20px;padding:0}.setting-dialog::backdrop{background:var(--scrim)}.setting-dialog-content{padding:22px}.setting-dialog-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.setting-dialog-heading h2{font-family:var(--display);margin:0;font-size:28px}.setting-close{width:40px;height:40px;color:var(--text-dim);cursor:pointer;background:0 0;border:0;font-size:26px}.setting-options{gap:8px;display:grid}.setting-options button{border:1px solid var(--edge);background:var(--surface-sunken);min-height:48px;color:var(--text);cursor:pointer;border-radius:10px;justify-content:space-between;align-items:center;padding:12px 16px;font-weight:700;display:flex}.setting-options button.selected,.setting-options button:hover{border-color:var(--moon-edge);background:var(--moon-soft);color:var(--moon)}.home-intro h1{font-size:clamp(30px,7vw,42px);line-height:1.04}.home-intro .intro{margin:11px 0 0;font-size:clamp(14px,3.4vw,16px)}.search-art{background:linear-gradient(180deg, var(--bg-deep), var(--surface-sunken));border-radius:14px;overflow:hidden}.search-art svg{width:100%;height:auto;display:block}.search-art-ridge{fill:var(--surface-lift);opacity:.7}.search-art-trees{fill:var(--edge)}.search-art-ground{fill:var(--surface)}.search-art-glow-core{stop-color:var(--lantern);stop-opacity:.34}.search-art-glow-edge{stop-color:var(--lantern);stop-opacity:0}.search-art-scout{stroke:var(--text-dim);stroke-width:4px;stroke-linecap:round;stroke-linejoin:round}.search-art-scout circle{fill:var(--text-dim);stroke:none}.search-art-lamp{fill:var(--lantern);stroke:var(--lantern);stroke-width:2px}.search-art-lantern{stroke:var(--lantern);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.search-art-flame{fill:var(--lantern);stroke:none}.search-art-fog{stroke:var(--fog);stroke-width:16px;stroke-linecap:round;opacity:.16}.search-art-fog-thin{stroke-width:9px;opacity:.7}.search-art-alone .search-art-fog{opacity:.26}.home-hero{aspect-ratio:1024/434;object-fit:cover;background:var(--surface-sunken);width:100%;height:auto;max-height:180px;box-shadow:var(--shadow-lift);border-radius:16px;margin-top:18px;display:block}.rule-card .search-art{align-items:flex-end;min-height:150px;display:flex}.mode-menu{flex-direction:column;gap:10px;display:flex}.mode-card{border:1px solid var(--edge);background:var(--surface);width:100%;color:var(--text);font-family:var(--ui);text-align:left;cursor:pointer;border-radius:18px;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:13px;padding:14px 15px 14px 12px;transition:transform .15s,border-color .15s,background .15s;display:grid}.mode-card:hover:not(:disabled){border-color:var(--lantern-deep);background:var(--surface-lift);transform:translateY(-2px)}.mode-glyph{background:var(--surface-lift);width:44px;height:44px;color:var(--lantern);border-radius:12px;place-items:center;display:grid}.mode-body{flex-direction:column;gap:3px;min-width:0;display:flex}.mode-body strong{font-family:var(--display);letter-spacing:-.01em;font-size:18px;font-weight:600}.mode-body small{color:var(--text-dim);font-size:12px}.mode-count{font-family:var(--data);letter-spacing:.1em;color:var(--text-faint);white-space:nowrap;font-size:10px}.mode-card.featured{border-color:var(--lantern);background:linear-gradient(150deg, var(--lantern-wash), var(--surface) 62%)}.mode-card.featured .mode-glyph{background:var(--lantern);color:var(--on-accent)}.mode-card.featured .mode-count{color:var(--lantern)}.mode-card.featured:hover:not(:disabled){border-color:var(--lantern)}.home-foot{border-top:1px solid var(--edge-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px;margin-top:18px;padding-top:15px;display:flex}.home-foot>span{font-family:var(--data);letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);font-size:10px}.how-to-play-link{color:var(--lantern);font-family:var(--ui);cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;padding:6px 8px;font-size:13px;font-weight:700;display:flex}.how-to-play-link:hover{background:var(--surface)}.how-to-play-link{white-space:nowrap;margin-left:auto}.how-to-play-link span{font-size:17px;transition:transform .15s}.how-to-play-link:hover span{transform:translate(3px)}@keyframes home-reveal{0%{opacity:0;transform:translateY(8px)}}.online-layout{flex:auto;width:min(470px,100%);margin:0 auto;padding:14px 0 10px}.online-layout h1{margin-bottom:18px;font-size:clamp(27px,6.5vw,36px)}.online-panel{padding:18px}.online-panel+.online-panel{margin-top:12px}.online-panel .text-input:last-child{margin-bottom:0}.online-choices{transition:opacity .2s}.online-choices.waiting{opacity:.45}.join-row{grid-template-columns:1fr auto;gap:10px;display:grid}.code-input{min-width:0;font-family:var(--data);letter-spacing:.26em;text-align:center;padding:12px 15px;font-size:24px;font-weight:700}.join-link-layout{width:min(430px,100%);margin:auto;padding:30px 0}.join-link-card{text-align:center;padding:clamp(24px,6vw,36px)}.join-link-card h1{font-size:clamp(32px,9vw,46px);line-height:1.02}.join-code-display{width:fit-content;color:var(--lantern);background:var(--surface-sunken);border:1px solid var(--lantern-deep);font-family:var(--data);letter-spacing:.2em;border-radius:12px;margin:18px auto 12px;padding:10px 18px;font-size:30px;font-weight:700}.join-link-intro{color:var(--text-dim);margin:0 auto 24px;font-size:14px;line-height:1.5}.join-link-card .field-label{text-align:left}.join-home-link{margin-bottom:-10px}.restore-message{justify-content:center;align-items:center;margin:22px 0 13px;font-weight:700;display:flex}.restore-status{color:var(--text-faint);margin:-8px 0 0;font-size:12px}.lobby-layout{flex-direction:column;flex:auto;width:min(980px,100%);margin:0 auto;padding-top:18px;display:flex}.lobby-heading{justify-content:space-between;align-items:end;gap:20px;margin-bottom:18px;display:flex}.lobby-heading h1{font-size:clamp(26px,5vw,40px);line-height:1.05}.you-chip{border:1px solid var(--edge);background:var(--surface);color:var(--text-dim);border-radius:999px;flex:none;padding:8px 13px;font-size:12px;font-weight:700}.lobby-columns{grid-template-columns:1.35fr .75fr;align-items:start;gap:18px;display:grid}.roster-card{padding:20px}.section-title{justify-content:space-between;align-items:baseline;gap:14px;margin-bottom:13px;display:flex}.section-title h2{font-size:21px}.section-title span{font-family:var(--data);color:var(--lantern);text-transform:uppercase;letter-spacing:.14em;font-size:10px}.player-list{gap:7px;display:grid}.player-row{border:1px solid var(--edge-soft);background:var(--surface-sunken);width:100%;color:var(--text);font-family:var(--ui);text-align:left;border-radius:13px;grid-template-columns:38px 1fr auto auto;align-items:center;gap:11px;padding:9px 12px 9px 9px;transition:border-color .14s,background .14s;display:grid}.player-number{background:var(--surface-lift);width:38px;height:38px;color:var(--text-dim);font-family:var(--data);border-radius:10px;place-items:center;font-size:15px;display:grid}.player-name{font-weight:700}.host-tag,.finishing-tag{font-family:var(--data);text-transform:uppercase;letter-spacing:.12em;color:var(--lantern);font-size:9.5px}.finishing-tag{color:var(--text-faint)}.lobby-tip{color:var(--text-dim);margin:16px 2px 0;font-size:13.5px}.lobby-difficulty{margin:0 0 15px}.lobby-difficulty>span{color:var(--text-dim);font-family:var(--data);text-transform:uppercase;letter-spacing:.14em;margin-bottom:8px;font-size:10px;display:block}.invite-card{text-align:center;padding:18px}.qr-frame{background:var(--qr-light);border:1px solid var(--edge);border-radius:14px;padding:11px;display:inline-flex}.qr-frame svg path:first-of-type{fill:var(--qr-light)}.qr-frame svg path:last-of-type{fill:var(--qr-dark)}.room-code-label{font-family:var(--data);text-transform:uppercase;letter-spacing:.18em;color:var(--text-faint);margin-top:13px;font-size:9.5px}.room-code{font-family:var(--data);letter-spacing:.16em;color:var(--lantern);margin-left:.16em;font-size:36px;font-weight:700}.address-select,.share-link{margin-top:7px;padding:9px 10px;font-size:11px}.qr-disclosure{border:1px solid var(--edge-strong);background:var(--surface-sunken);width:100%;min-height:42px;color:var(--text-dim);font-family:var(--ui);cursor:pointer;border-radius:11px;margin-top:10px;padding:0 14px;font-size:12px;font-weight:700;transition:color .14s,border-color .14s}.qr-disclosure:hover{color:var(--text);border-color:var(--lantern-deep)}.deal-layout{text-align:center;flex-direction:column;flex:auto;width:min(720px,100%);margin:0 auto;padding-top:14px;display:flex}.deal-heading{flex:none}.heading-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.heading-row .eyebrow{margin-bottom:0}.clock-group{align-items:center;gap:6px;width:fit-content;margin:0 auto 10px;display:flex}.heading-row .clock-group{margin:0}.sound-toggle{border:1px solid var(--edge-strong);background:var(--surface);width:30px;height:30px;color:var(--text-faint);cursor:pointer;border-radius:50%;flex:none;place-items:center;padding:0;transition:color .14s,border-color .14s;display:grid}.sound-toggle[aria-pressed=true]{color:var(--lantern);border-color:var(--lantern-deep)}.sound-toggle:hover{color:var(--text)}.round-clock{border:1px solid var(--edge-strong);background:var(--surface);width:fit-content;color:var(--lantern);font-family:var(--data);font-variant-numeric:tabular-nums;border-radius:999px;margin:0;padding:5px 12px;font-size:14px;font-weight:700}.round-clock.urgent{color:var(--ember);border-color:var(--ember-deep)}.round-clock.expired{color:var(--ember);background:var(--ember-soft);border-color:var(--ember)}.deal-heading h1{font-size:clamp(25px,5.4vw,40px);line-height:1.08}.deal-heading p:last-child{max-width:52ch;color:var(--text-dim);margin:10px auto 0;font-size:14px;line-height:1.45}.round-stage{flex-direction:column;flex:auto;justify-content:center;min-height:190px;padding:16px 0;display:flex}.round-actions{flex-direction:column;flex:none;gap:9px;padding-top:12px;display:flex}.round-exit-actions{flex-direction:column;align-items:center;gap:2px;margin-top:16px;display:flex}.leave-round{margin-top:2px}.lobby-return{min-width:190px}.role-card{border:1px solid var(--edge);background:var(--surface);width:min(460px,100%);min-height:200px;max-height:440px;color:var(--text);font-family:var(--ui);box-shadow:var(--shadow-card);border-radius:22px;flex-direction:column;flex:auto;justify-content:center;align-items:center;margin:0 auto;padding:28px 22px;display:flex;position:relative;overflow:hidden}.role-card strong{font-family:var(--display);text-transform:capitalize;margin:8px 0;font-size:clamp(40px,11vw,64px);font-weight:700;line-height:1;display:block}.role-card small{color:var(--text-dim);max-width:26ch;font-size:12.5px;font-weight:600;line-height:1.4}.role-kicker{font-family:var(--data);text-transform:uppercase;letter-spacing:.2em;color:var(--lantern);font-size:10px}.secret-card{cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none}.secret-card:not(:disabled):hover{border-color:var(--lantern-deep)}.hold-fill{background:linear-gradient(180deg, var(--lantern-wash), var(--surface-sunken));height:0;transition:height .14s linear;position:absolute;inset:auto 0 0}.secret-card.holding .hold-fill{height:100%;transition:height var(--hold-ms,.62s) linear}.secret-card.revealed{border-color:var(--lantern)}.secret-card.revealed .hold-fill{background:linear-gradient(180deg, var(--lantern-wash), var(--surface));height:100%;transition:none}.secret-card:not(.revealed) strong{font-size:clamp(24px,6vw,32px)}.secret-card{justify-content:flex-end}.hold-body{flex-direction:column;flex:auto;justify-content:center;align-items:center;display:flex;position:relative}.hold-prompt{justify-content:center;width:100%;padding-top:16px;display:flex;position:relative}.eye-symbol{border:2px solid var(--lantern);border-radius:50%;flex:none;place-items:center;width:44px;height:44px;display:grid}.eye-symbol:before{content:"";background:var(--lantern);border-radius:50%;width:10px;height:10px}.answer-form{text-align:left;width:100%}.answer-label-row{justify-content:space-between;align-items:center;gap:10px;margin-bottom:9px;display:flex}.answer-label-row .field-label{margin:0}.one-guess{border:1px solid var(--ember);color:var(--ember);font-family:var(--data);letter-spacing:.16em;text-transform:uppercase;border-radius:999px;flex:none;padding:4px 10px;font-size:10px;font-weight:700}.answer-input{font-family:var(--display);letter-spacing:.12em;text-align:center;text-transform:uppercase;border-width:2px;margin:0;padding:14px 16px;font-size:clamp(26px,7.5vw,34px);font-weight:700}.answer-input::placeholder{color:var(--text-faint);letter-spacing:0}.answer-submit{min-height:56px;margin-top:10px;font-size:16px}.give-up-link{margin:0 auto;font-size:12.5px}.outcome-card{border-color:var(--ember-deep)}.outcome-card.solved{border-color:var(--good);background:linear-gradient(160deg, var(--good-wash), var(--surface) 65%)}.outcome-card strong{color:var(--lantern);text-transform:uppercase;letter-spacing:.04em}.outcome-card.solved strong{color:var(--good)}.handoff-progress{flex-wrap:wrap;justify-content:center;gap:7px;margin:16px auto 0;display:flex}.handoff-progress span{width:34px;height:34px;color:var(--text-faint);background:var(--surface);border:1px solid var(--edge);font-family:var(--data);border-radius:9px;place-items:center;font-size:12px;display:grid}.handoff-progress span.current{color:var(--on-accent);background:var(--lantern);border-color:var(--lantern);font-weight:700}.handoff-progress span.complete{color:var(--on-accent);background:var(--good);border-color:var(--good)}.handoff-progress span.found{color:var(--bg-deep);background:var(--good);border-color:var(--good)}.handoff-progress span.lost{color:var(--bg-deep);background:var(--bad);border-color:var(--bad)}.handoff-progress span.rescued{color:var(--bg-deep);background:var(--moon);border-color:var(--moon)}.scout-result-prompt{text-align:center;font-family:var(--display);margin:0;font-size:24px;font-weight:600}.scout-result-note{text-align:center;margin:8px 0 0;line-height:1.5}.scout-result-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:16px;display:grid}.scout-result{border:2px solid var(--result-color);background:var(--result-color);min-height:100px;color:var(--bg-deep);cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex;position:relative;overflow:hidden}.scout-result.found{--result-color:var(--good)}.scout-result.lost{--result-color:var(--bad)}.scout-result.rescued{--result-color:var(--moon);grid-column:1/-1;min-height:80px}.scout-result.rescued strong{font-size:24px}.scout-result strong{font-family:var(--display);font-size:30px;position:relative}.scout-result small{font-size:12px;font-weight:700;position:relative}.scout-result:disabled{opacity:.4;cursor:default}.scout-result:focus-visible{outline-color:var(--result-color);outline-offset:4px}.result-fill{background:var(--scrim);opacity:.2;transform-origin:0;position:absolute;inset:0;transform:scaleX(0)}.scout-result.holding .result-fill{transition:transform var(--hold-ms) linear;transform:scaleX(1)}.sheet-scrim{z-index:40;background:var(--scrim);animation:.2s both scrim-in;position:fixed;inset:0}@keyframes scrim-in{0%{opacity:0}}.host-sheet{z-index:41;width:min(560px,100%);padding:8px clamp(16px, 5vw, 24px) max(18px, env(safe-area-inset-bottom));border:1px solid var(--edge);background:var(--surface);box-shadow:var(--shadow-sheet);text-align:left;border-bottom:0;border-radius:20px 20px 0 0;max-height:88dvh;margin:0 auto;animation:.26s cubic-bezier(.2,.8,.3,1) both sheet-in;position:fixed;inset:auto 0 0;overflow-y:auto}@keyframes sheet-in{0%{transform:translateY(100%)}}.sheet-grip{background:var(--edge-strong);border-radius:99px;width:38px;height:4px;margin:0 auto 14px}.confirm-sheet .sheet-intro{margin-bottom:18px}.confirm-sheet .text-button{margin-top:12px}.host-sheet h2{margin-bottom:3px;font-size:19px}.sheet-intro{color:var(--text-dim);margin:0 0 14px;font-size:12.5px}.host-finish{margin:0;padding:0}.host-finish h2{margin-bottom:14px}.hint-box{text-align:left;background:var(--surface-sunken);border:1px dashed var(--edge-strong);border-radius:13px;justify-content:space-between;align-items:center;gap:14px;margin:0 0 12px;padding:13px;display:flex}.hint-box>div:not(.hint-letter){flex-direction:column;gap:2px;display:flex}.hint-box strong{font-size:14px}.hint-box span:not(.role-kicker){color:var(--text-dim);font-size:12px}.hint-button{min-height:40px;color:var(--on-accent);background:var(--lantern);font-family:var(--ui);cursor:pointer;border:0;border-radius:10px;flex:none;padding:0 15px;font-weight:700;transition:filter .14s}.hint-button:hover{filter:brightness(1.08)}.hint-shown{background:var(--lantern-soft);border-style:solid;border-color:var(--lantern-deep);justify-content:flex-start}.hint-letter{width:50px;height:50px;color:var(--on-accent);background:var(--lantern);font-family:var(--display);border-radius:12px;flex:0 0 50px;place-items:center;font-size:27px;font-weight:700;display:grid}.hint-word{font-family:var(--display);text-transform:capitalize;font-size:25px;line-height:1.05;display:block}.hint-shown small{color:var(--lantern);font-size:11px;font-weight:700}.password-reveal{font-family:var(--display);text-transform:uppercase;letter-spacing:.06em;color:var(--lantern);text-align:center;margin-left:.06em;font-size:clamp(40px,11vw,64px);font-weight:700;line-height:1.1}.result-buttons{grid-template-columns:1fr 1fr;gap:10px;margin-top:18px;display:grid}.result-banner{text-align:center;border-radius:13px;flex-direction:column;gap:3px;margin-top:18px;padding:15px;display:flex}.result-banner.win{color:var(--good);background:var(--good-soft);border:1px solid var(--good-deep)}.result-banner.loss{color:var(--ember);background:var(--ember-soft);border:1px solid var(--ember-deep)}.result-banner strong{font-family:var(--display);font-size:22px}.result-banner span{color:var(--text-dim);font-size:13px}.waiting-host{color:var(--text-dim);margin:22px auto 0;font-size:14px}.difficulty-picker{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.difficulty-picker button,.number-picker button{min-height:46px;color:var(--text-dim);background:var(--surface-sunken);border:1px solid var(--edge);font-family:var(--ui);cursor:pointer;border-radius:11px;padding:10px 6px;font-size:14px;font-weight:700;transition:color .14s,border-color .14s,background .14s}.difficulty-picker button:hover:not(:disabled),.number-picker button:hover:not(:disabled){color:var(--text);border-color:var(--lantern-deep)}.difficulty-picker button.selected,.number-picker button.selected{color:var(--on-accent);background:var(--lantern);border-color:var(--lantern)}.difficulty-picker button:disabled{opacity:.45;cursor:default}.lobby-difficulty .difficulty-picker button{min-height:38px;font-size:12.5px}.number-picker{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.number-picker button{min-height:54px;font-family:var(--display);font-size:22px}.local-layout{flex-direction:column;flex:auto;width:min(560px,100%);margin:0 auto;padding-top:14px;display:flex}.local-heading{margin:8px 0 18px}.local-heading h1{font-size:clamp(28px,6.5vw,42px);line-height:1.04}.local-setup-card{padding:clamp(18px,5vw,26px)}.local-setup-card fieldset{border:0;margin:0;padding:0}.local-setup-card fieldset+fieldset{margin-top:22px}.local-setup-card legend{font-family:var(--display);margin-bottom:13px;padding:0;font-size:20px;font-weight:600}.local-start{margin-top:24px}.local-deal-layout,.local-host-layout{max-width:640px}.outcome-card:has(.revealed-words){max-height:none}.revealed-words{text-align:left;margin:12px 0 18px;padding:0;list-style:none}.revealed-words li{padding:5px 0;font-size:16px;line-height:1.4}.revealed-word{text-transform:uppercase;font-weight:400}.revealed-word.associated,.revealed-letter{color:var(--lantern)}.how-to-play-page{flex:auto;width:min(1080px,100%);margin:0 auto;padding-top:14px}.guide-back{color:var(--text-dim);font-family:var(--ui);text-align:left;cursor:pointer;background:0 0;border:0;align-self:flex-start;padding:8px 10px 8px 0;font-size:13px;font-weight:700}.guide-back:hover{color:var(--lantern)}.guide-heading{text-align:center;max-width:640px;margin:16px auto}.guide-heading h1{font-size:clamp(32px,6.5vw,56px);line-height:1.02}.guide-heading>p:last-child{color:var(--text-dim);margin:13px auto 0;font-size:15px;line-height:1.5}.rule-track{scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;gap:18px;width:100vw;margin-left:calc(50% - 50vw);padding:12px max(16px,50vw - 210px) 28px;scroll-padding-inline:max(16px,50vw - 210px);display:flex;overflow-x:auto}.rule-track::-webkit-scrollbar{display:none}.rule-card{scroll-snap-align:center;min-height:440px;color:var(--text);background:var(--surface);border:1px solid var(--edge);border-top:4px solid var(--ember);box-shadow:var(--shadow-card);border-radius:22px;flex:0 0 min(420px,100vw - 42px);grid-template-rows:auto 1fr;gap:20px;padding:20px;display:grid;position:relative}.rule-card:nth-child(3n+2){border-top-color:var(--lantern)}.rule-card:nth-child(3n){border-top-color:var(--good)}.rule-number{z-index:2;min-width:40px;color:var(--lantern);background:var(--surface-sunken);border:1px solid var(--edge-strong);font-family:var(--data);letter-spacing:.08em;text-align:center;border-radius:9px;padding:6px 9px;font-size:14px;font-weight:700;position:absolute;top:28px;right:28px}.rule-image{aspect-ratio:800/474;object-fit:cover;background:var(--surface-sunken);border-radius:14px;width:100%;height:auto;display:block}.rule-copy{align-self:center;padding:0 6px 6px}.rule-copy h2{font-size:26px;line-height:1.08}.rule-copy p{color:var(--text-dim);margin:11px 0 0;font-size:15px;line-height:1.55}.rule-copy p strong{color:var(--lantern)}.rule-navigation{grid-template-columns:46px 1fr 46px;align-items:center;gap:16px;width:min(560px,100%);margin:-4px auto 20px;display:grid}.rule-navigation>button{border:1px solid var(--edge-strong);width:46px;height:46px;color:var(--text);background:var(--surface);cursor:pointer;border-radius:50%;place-items:center;padding:0;font-size:20px;transition:border-color .14s,color .14s;display:grid}.rule-navigation>button svg{display:block}.rule-navigation>button:hover:not(:disabled){border-color:var(--lantern);color:var(--lantern)}.rule-navigation>button:disabled{opacity:.25}.rule-dots{justify-content:center;gap:7px;display:flex}.rule-dots button{background:var(--edge-strong);cursor:pointer;border:0;border-radius:50%;width:7px;height:7px;padding:0;transition:width .2s,background .2s}.rule-dots button.active{background:var(--lantern);border-radius:99px;width:22px}.guide-practice{text-align:center;width:min(100%,520px);margin:32px auto 24px;padding:24px}.guide-practice h2{margin:0}.guide-practice p{color:var(--text-dim);margin:12px 0 18px;line-height:1.5}.practice-layout{flex-direction:column;flex:auto;width:min(560px,100%);margin:0 auto;padding-top:10px;animation:.45s both practice-in;display:flex;position:relative}.practice-layout.exiting{pointer-events:none;animation:.45s both practice-out}.practice-exit{color:var(--text-dim);font-family:var(--ui);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:6px 8px;font-size:12.5px;font-weight:700}.practice-back{align-self:flex-start;padding-left:0}.practice-skip{align-self:flex-end;padding-right:0}.practice-exit:hover{color:var(--lantern)}.practice-heading{text-align:center;margin:6px 0 16px}.practice-heading h1{font-size:clamp(28px,6.5vw,42px);line-height:1.04}.practice-heading>p:last-child{color:var(--text-dim);max-width:46ch;margin:11px auto 0;font-size:14px;line-height:1.5}.practice-card,.final-puzzle-card{text-align:center;width:100%;padding:clamp(18px,5vw,26px)}.practice-card{border-top:4px solid var(--ember);position:relative}.practice-progress{color:var(--text-faint);font-family:var(--data);letter-spacing:.14em;text-transform:uppercase;justify-content:space-between;margin-bottom:18px;font-size:10px;display:flex}.witness-clue{min-height:104px;color:var(--text);background:linear-gradient(160deg, var(--lantern-wash), var(--surface-sunken));border:1px solid var(--lantern-deep);border-radius:18px;justify-content:center;align-items:center;gap:8px;margin-bottom:20px;padding:22px 18px;display:flex}.witness-clue strong{font-family:var(--display);font-size:clamp(26px,7vw,38px);font-weight:600;line-height:1.05}.witness-clue span{color:var(--lantern);font-family:var(--display);font-size:32px;line-height:.7}.practice-card .field-label,.final-answer-form .field-label{text-align:left}.practice-answer-row{grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:10px;display:grid}.practice-answer-row .text-input{text-transform:uppercase;min-width:0;font-family:var(--display);letter-spacing:.06em;margin:0;font-size:18px}.practice-answer-row .primary-button{width:auto;min-width:148px;padding:0 18px}.practice-feedback{color:#0000;justify-content:center;align-items:center;gap:7px;min-height:26px;margin-top:10px;font-size:12.5px;font-weight:700;display:flex}.practice-feedback b{width:22px;height:22px;color:var(--on-accent);border-radius:50%;place-items:center;font-size:15px;display:grid}.practice-feedback.wrong{color:var(--ember)}.practice-feedback.wrong b{background:var(--ember)}.practice-feedback.correct{color:var(--good)}.practice-feedback.correct b{background:var(--good)}.feedback-wrong{border-color:var(--ember-deep);animation:.34s practice-shake}.feedback-correct{border-color:var(--good-deep);box-shadow:var(--shadow-card), 0 0 0 4px var(--good-soft)}.practice-letter-progress,.practice-letter-tray{justify-content:center;align-items:center;gap:10px;display:flex}.practice-letter-progress{min-height:60px;margin-top:18px}.practice-letter-progress span,.practice-letter-tray span{color:var(--text-faint);background:var(--surface-sunken);border:2px dashed var(--edge-strong);font-family:var(--display);border-radius:12px;place-items:center;font-weight:700;display:grid}.practice-letter-progress span{width:46px;height:52px;font-size:21px}.practice-letter-progress span.collected{color:var(--on-accent);background:var(--lantern);border-style:solid;border-color:var(--lantern);animation:.42s both evidence-pop}.final-puzzle-card{flex-direction:column;justify-content:center;align-items:center;min-height:300px;display:flex;overflow:hidden}.practice-evidence-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;width:100%;margin:3px 0 8px;display:grid}.practice-evidence-summary>div{min-width:0;color:var(--text-dim);background:var(--surface-sunken);border:1px solid var(--edge);border-radius:10px;flex-direction:column;gap:3px;padding:9px 6px;display:flex}.practice-evidence-summary small{color:var(--text-faint);font-family:var(--data);letter-spacing:.1em;text-transform:uppercase;font-size:8px}.practice-evidence-summary strong{font-family:var(--display);text-overflow:ellipsis;text-transform:uppercase;font-size:14px;overflow:hidden}.practice-evidence-summary .key-witness{color:var(--text);background:var(--lantern-soft);border-color:var(--lantern-deep)}.practice-evidence-summary .key-witness small{color:var(--lantern)}.practice-evidence-summary .key-witness strong{font-size:16px}.practice-letter-tray{min-height:92px;margin:4px 0 16px}.practice-letter-tray span{width:66px;height:74px;color:var(--text);background:var(--surface-lift);border:2px solid var(--edge-strong);border-style:solid;font-size:38px}.practice-letter-tray.solved span{color:var(--on-accent);background:var(--lantern);border-color:var(--lantern);animation:.4s cubic-bezier(.2,.9,.25,1.25) both letter-snap}.practice-letter-tray.solved span:nth-child(2){animation-delay:80ms}.practice-letter-tray.solved span:nth-child(3){animation-delay:.16s}.final-answer-form{width:100%;max-width:440px}.reveal-practice-answer{margin-top:2px}.practice-result{flex-direction:column;align-items:center;animation:.45s both result-arrive;display:flex}.practice-result>strong{font-family:var(--display);letter-spacing:.08em;color:var(--lantern);margin-left:.08em;font-size:clamp(44px,12vw,72px);font-weight:700;line-height:1}.practice-result>span{color:var(--good);margin-top:8px;font-size:14px;font-weight:700}.practice-result.revealed>span{color:var(--ember)}.practice-result-actions{width:min(340px,100%);margin-top:20px}.practice-result-actions .text-button{margin-top:13px}@keyframes practice-in{0%{opacity:0;transform:translateY(10px)}}@keyframes practice-out{to{opacity:0;transform:translateY(-8px)}}@keyframes practice-shake{25%{transform:translate(-7px)rotate(-.3deg)}50%{transform:translate(6px)rotate(.3deg)}75%{transform:translate(-3px)}}@keyframes evidence-pop{0%{opacity:0;transform:translateY(16px)scale(.75)rotate(-8deg)}70%{transform:translateY(-3px)scale(1.08)rotate(3deg)}}@keyframes letter-snap{0%{opacity:.55;transform:translateY(-18px)scale(.75)rotate(-8deg)}70%{transform:translateY(3px)scale(1.08)rotate(2deg)}}@keyframes result-arrive{0%{opacity:0;transform:scale(.9)}}@media (width<=760px){.app-shell{padding:14px 16px}.lobby-columns{grid-template-columns:1fr}.lobby-heading{flex-direction:column;align-items:start;gap:12px;margin-bottom:14px}.invite-card{order:-1;padding:15px}.qr-frame{display:none}.qr-frame.open{display:inline-flex}.qr-frame svg{width:150px;height:150px}.room-code-label{margin-top:0}.address-select,.share-link{display:none}.player-row{grid-template-columns:36px 1fr auto}.difficulty-picker{grid-template-columns:repeat(2,1fr)}.rule-card{min-height:420px;padding:16px}.rule-number{top:24px;right:24px}.rule-copy h2{font-size:24px}.rule-copy p{font-size:14.5px}.rule-navigation{grid-template-columns:44px 1fr 44px;gap:10px}.rule-navigation>button{width:44px;height:44px}.practice-answer-row{grid-template-columns:1fr}.practice-answer-row .primary-button{width:100%}.practice-letter-tray span{width:58px;height:66px;font-size:34px}.witness-clue{min-height:92px;padding:18px 12px}footer{padding-top:16px}}@media (width>=761px){.qr-disclosure{display:none}}.keyboard-open .letter-scatter,.keyboard-open footer,.keyboard-open .brand,.keyboard-open .give-up-link,.keyboard-open .deal-heading h1,.keyboard-open .deal-heading p:last-child{display:none}.keyboard-open .app-shell{padding-top:10px;padding-bottom:10px}.keyboard-open .deal-layout{padding-top:0}.keyboard-open .round-stage{min-height:0;padding:0}.keyboard-open .round-clock{padding:3px 10px;font-size:12.5px}.keyboard-open .clock-group{margin-bottom:8px}.keyboard-open .answer-form{margin-top:0}.keyboard-open .answer-input{padding:10px 14px;font-size:clamp(22px,6.5vw,28px)}.keyboard-open .answer-submit{min-height:50px;margin-top:8px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation:none!important}.secret-card.holding .hold-fill{transition:none}}.example-gameplay{width:min(800px,100%);margin:36px auto 0;padding:clamp(16px,3vw,28px);display:block}.example-gameplay h2{margin:0 0 20px;font-size:28px}.example-story{min-height:100px;color:var(--text-dim);margin:0 0 20px;font-size:16px;line-height:1.7}.example-story strong{color:var(--text)}.example-party{margin:0;padding:0;list-style:none;display:grid}.example-player{border-top:1px solid var(--edge-soft);flex-wrap:wrap;align-items:baseline;gap:6px 12px;padding:14px 0;font-size:14px;line-height:1.5;display:flex}.example-player-name{text-transform:uppercase;min-width:132px;font-weight:700}.example-word{font-family:var(--data);color:var(--text-dim)}.example-word.is-known{color:var(--good)}.example-clue{color:var(--text-dim)}.example-status{color:var(--fog);margin-left:auto;font-size:12px}.example-navigation{border-top:1px solid var(--edge);grid-template-columns:auto 1fr auto;align-items:center;gap:12px;margin-top:24px;padding-top:18px;display:grid}.example-navigation>span{text-align:center;font-family:var(--data);color:var(--text-dim);font-size:12px}.example-navigation button{min-width:84px;min-height:48px;padding:10px 16px}@media (width<=600px){.example-story{min-height:0}.example-player{gap:6px 8px}.example-player-name{min-width:124px;font-size:12px}.example-word{font-size:12px}.example-clue{flex-basis:100%}}.house-rules{width:min(560px,100%);margin:26px auto 0;padding:20px 22px;display:block}.house-rules summary{cursor:pointer;justify-content:space-between;align-items:center;gap:16px;list-style:none;display:flex}.house-rules summary::-webkit-details-marker{display:none}.house-rules summary h2{margin:0}.house-rules summary:after{content:"+";color:var(--lantern);flex:none;font-size:24px}.house-rules[open] summary:after{content:"−"}.house-rules summary:focus-visible{outline:2px solid var(--lantern);outline-offset:5px}.house-rules-content{gap:12px;margin-top:18px;display:grid}.local-setup-card fieldset:disabled,.lobby-difficulty .difficulty-picker button:disabled{opacity:.45}.local-setup-card fieldset:disabled button{cursor:default}.search-rules{color:var(--text-dim);text-align:left;font-size:14px;line-height:1.55}.search-rules p{margin:0 0 12px}.search-rules strong{color:var(--text)}.search-rules em{color:var(--lantern);font-style:normal;font-weight:700}.search-rules h3{font-family:var(--data);letter-spacing:.16em;text-transform:uppercase;color:var(--lantern);margin:18px 0 8px;font-size:10.5px;font-weight:400}.search-rules ol{margin:0 0 12px;padding-left:22px}.search-rules li+li{margin-top:8px}.rules-callout{border-left:3px solid var(--lantern);background:var(--lantern-glow);color:var(--text);border-radius:0 10px 10px 0;padding:10px 14px}.rules-details{border:1px solid var(--edge);background:var(--surface-sunken);text-align:left;border-radius:14px;width:min(560px,100%);margin:16px auto 0;padding:12px 16px}.rules-details summary{cursor:pointer;color:var(--text);font-size:14px;font-weight:700}.rules-details summary::marker{color:var(--lantern)}.rules-details[open] summary{margin-bottom:12px}.clock-note{color:var(--text-dim);margin:14px 2px 12px;font-size:13.5px}.alone-note,.answer-intro{max-width:52ch;color:var(--text-dim);text-align:center;margin:14px auto 6px;font-size:13.5px;line-height:1.45}.review-shell{background:linear-gradient(150deg, var(--bg), var(--bg-deep));min-height:100dvh;padding:24px clamp(16px,4vw,52px) 40px}.review-header,.review-lengths,.review-workspace{width:min(1320px,100%);margin-inline:auto}.review-header{justify-content:space-between;align-items:center;gap:24px;margin-bottom:18px;display:flex}.review-header>div:first-child{align-items:center;gap:15px;display:flex}.review-header .eyebrow{margin-bottom:2px}.review-header h1{font-size:31px}.review-total{text-align:right;flex-direction:column;align-items:end;display:flex}.review-total strong{font-family:var(--data);font-size:22px}.review-total span{color:var(--text-faint);text-transform:uppercase;letter-spacing:.08em;font-size:11px}.review-lengths{flex-wrap:wrap;gap:6px;margin-bottom:20px;display:flex}.review-lengths button{min-height:38px;color:var(--text-dim);background:var(--surface-sunken);border:1px solid var(--edge);font-family:var(--data);cursor:pointer;border-radius:999px;padding:0 14px;font-size:12px}.review-lengths button:hover{border-color:var(--edge-strong);color:var(--text)}.review-lengths button.active{color:var(--on-accent);background:var(--lantern);border-color:var(--lantern)}.review-workspace{grid-template-columns:250px minmax(0,1fr);align-items:start;gap:24px;display:grid}.review-index{padding:18px;position:sticky;top:20px}.review-index .text-input{margin-bottom:10px}.review-filter{color:var(--text-dim);cursor:pointer;align-items:center;gap:8px;font-size:12px;display:flex}.review-filter input{accent-color:var(--lantern)}.review-index>p{color:var(--text-faint);margin:12px 2px;font-size:11px}.review-word-list{gap:2px;max-height:calc(100dvh - 300px);display:grid;overflow-y:auto}.review-word-list button{color:var(--text-dim);font-family:var(--data);text-transform:uppercase;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:space-between;padding:8px 9px;font-size:13px;display:flex}.review-word-list button:hover{background:var(--surface-lift);color:var(--text)}.review-word-list button.complete:not(.active){color:var(--good)}.review-word-list button.active{color:var(--on-accent);background:var(--lantern)}.review-word-list small{opacity:.75}.review-main{min-width:0}.review-answer-heading{margin:4px 0 20px}.review-answer-heading h2{text-transform:uppercase;letter-spacing:.02em;font-size:clamp(48px,8vw,82px);line-height:.95}.review-answer-heading>p:last-child{color:var(--text-dim);margin:12px 0 0}.review-candidates{gap:10px;display:grid}.review-candidate{border-left:5px solid var(--lantern);border-radius:16px;grid-template-columns:1fr auto;align-items:center;gap:18px;padding:14px 16px;display:grid}.review-candidate.status-approved{border-left-color:var(--good)}.review-candidate.status-denied{border-left-color:var(--bad);opacity:.7}.candidate-copy{min-width:0}.candidate-title{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.candidate-copy p{color:var(--text-dim);margin:7px 0 0 42px;line-height:1.45}.candidate-copy p.missing{color:var(--text-faint);font-style:italic}.candidate-copy h3{font-family:var(--display);text-transform:capitalize;margin:0;font-size:24px;font-weight:600}.candidate-letter{width:32px;height:32px;color:var(--on-accent);background:var(--text-dim);font-family:var(--display);text-transform:uppercase;border-radius:8px;place-items:center;font-size:18px;font-weight:700;display:grid}.model-tag{color:var(--good);background:var(--good-soft);font-family:var(--data);text-transform:uppercase;letter-spacing:.08em;border-radius:999px;padding:4px 8px;font-size:9px}.model-tag.maybe{color:var(--lantern);background:var(--lantern-soft)}.review-empty{color:var(--text-faint)}.decision-buttons{grid-template-columns:repeat(3,auto);gap:5px;display:grid}.decision-buttons button{min-height:38px;color:var(--text-dim);background:var(--surface-sunken);border:1px solid var(--edge);cursor:pointer;border-radius:9px;padding:0 12px;font-size:12px;font-weight:700}.decision-buttons button:hover{border-color:var(--edge-strong);color:var(--text)}.decision-buttons .decision-approved.selected{color:var(--on-accent);background:var(--good);border-color:var(--good)}.decision-buttons .decision-unreviewed.selected{color:var(--on-accent);background:var(--lantern);border-color:var(--lantern)}.decision-buttons .decision-denied.selected{color:var(--on-accent);background:var(--bad);border-color:var(--bad)}.review-actions{background:var(--surface-lift);border:1px solid var(--edge-strong);box-shadow:var(--shadow-lift);border-radius:15px;grid-template-columns:auto 1fr auto;gap:9px;margin-top:20px;padding:10px;display:grid;position:sticky;bottom:12px}.review-actions .primary-button{width:auto;padding:0 22px}.review-save{justify-self:end}.review-loading{text-align:center;place-content:center;min-height:60vh;display:grid}.review-loading strong{font-family:var(--display);font-size:34px}.review-loading p{color:var(--text-dim)}@media (width<=820px){.review-workspace{grid-template-columns:1fr}.review-index{position:static}.review-word-list{grid-template-columns:repeat(3,1fr);max-height:180px}.review-candidate{grid-template-columns:1fr;gap:12px}.candidate-copy p{margin-left:0}.decision-buttons{grid-template-columns:repeat(3,1fr)}.review-actions{grid-template-columns:1fr 1fr}.review-actions>:first-child{display:none}.review-save{justify-self:stretch}}@media (width<=520px){.review-header{align-items:start}.review-header h1{font-size:24px}.review-word-list{grid-template-columns:repeat(2,1fr)}}.pace-picker{grid-template-columns:repeat(2,minmax(0,1fr))}.duration-picker{margin-top:22px}.duration-picker>p{margin:0 0 10px;font-weight:600}.app-shell:before{background:var(--bg)}.app-shell:after{display:none}.site-brand{letter-spacing:.08em;width:min(1120px,100%);min-height:48px;margin:0 auto}.brand-home-link{width:150px;display:inline-flex}.brand-home-link img{width:100%;height:auto}.brand-tagline{color:var(--text);background:#ffffffeb;margin-left:12px;padding:8px 12px;font-size:10px;font-weight:700}.all-games-link{color:var(--text);font-family:var(--ui);letter-spacing:0;margin-left:auto;padding:12px 0 12px 14px;font-size:12px;font-weight:700;text-decoration:none}.game-library{width:min(1040px,100%);margin:0 auto;padding:42px 0 18px}.library-hero{text-align:center}.library-hero .eyebrow{font-family:var(--ui);letter-spacing:.16em;background:#ffffffed;padding:6px 12px;font-weight:700;display:inline-block}.library-hero h1{width:min(710px,95%);margin:14px auto 20px}.library-hero h1 img{width:100%;height:auto;display:block}.library-tagline{color:var(--text);font-family:var(--display);letter-spacing:-.04em;margin:0;font-size:clamp(22px,3.5vw,34px);font-weight:900}.library-tagline span{color:#b84330}.library-intro{color:var(--text-dim);background:#fffffff2;margin:6px 0 38px;padding:8px 12px;font-size:15px;line-height:1.6;display:inline-block}.library-heading{justify-content:space-between;align-items:baseline;gap:12px;padding:12px 0;display:flex}.library-heading h2{letter-spacing:-.04em;background:#fffffff2;font-size:23px;font-weight:900}.library-heading>span{color:var(--text-dim);background:#fffffff2;font-size:12px}.game-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.game-tile{color:var(--text);border:2px solid var(--text);box-shadow:5px 6px 0 var(--text);background:#fff;border-radius:18px;flex-direction:column;text-decoration:none;transition:transform .18s,box-shadow .18s;display:flex;overflow:hidden}.game-tile:hover{box-shadow:7px 10px 0 var(--text);transform:translateY(-4px)}.game-tile:active{box-shadow:3px 3px 0 var(--text);transform:translateY(0)}.tile-art{border-bottom:2px solid var(--text);flex-direction:column;justify-content:center;align-items:center;height:183px;display:flex;position:relative;overflow:hidden}.scrambled-art{background:#bcece6}.tic-art{background:#ffcec1}.clue-slip{border:1.5px solid var(--text);letter-spacing:.12em;background:#fff;padding:7px 15px;font-size:11px;font-weight:800;position:absolute;top:18px;left:calc(50% - 65px);transform:rotate(-6deg);box-shadow:3px 3px #193b4b25}.letter-tiles{gap:10px;padding-top:22px;display:flex;transform:rotate(-4deg)}.letter-tiles i{border:2px solid var(--text);width:57px;height:62px;box-shadow:4px 5px 0 var(--text);font-family:var(--display);background:#fff;border-radius:7px;place-items:center;font-size:36px;font-style:normal;font-weight:900;display:grid}.letter-tiles i:nth-child(2){transform:translateY(7px)rotate(8deg)}.letter-tiles i:nth-child(3){color:#b84330;transform:rotate(-6deg)}.letter-tiles i:nth-child(4){transform:translateY(4px)rotate(10deg)}.art-caption{letter-spacing:.06em;font-size:10px;font-weight:700;position:absolute;bottom:12px}.mini-board{grid-template-columns:repeat(3,1fr);width:128px;height:128px;display:grid;transform:rotate(7deg)translateY(-8px)}.mini-board span{border-right:3px solid var(--text);border-bottom:3px solid var(--text);place-items:center;font-size:40px;font-weight:800;line-height:1;display:grid}.mini-board span:nth-child(3n){border-right:0}.mini-board span:nth-child(n+7){border-bottom:0}.mini-board .cross{color:#a33325}.tile-copy{flex-direction:column;flex:1;padding:24px 26px 20px;display:flex}.tile-category{letter-spacing:.13em;text-transform:uppercase;color:#126c68;margin:0 0 9px;font-size:10px;font-weight:800}.competitive-label{color:#a33325}.tile-copy h3{font-family:var(--display);letter-spacing:-.04em;margin:0;font-size:31px;font-weight:900}.tile-copy>p:not(.tile-category){max-width:35ch;color:var(--text-dim);margin:12px 0 0;font-size:14px;line-height:1.7}.library-note{text-align:center;color:var(--text-dim);margin:30px 0 0;font-size:12px}.site-footer{text-align:left;justify-content:space-between;align-items:center;gap:20px;width:min(1120px,100%);margin:auto auto 0;display:flex}.site-footer>span{background:#ffffffed;padding:6px 8px}.site-footer img{width:64px;height:auto;transform:rotate(7deg)}.home-layout,.ttt-layout,.local-setup-layout,.guide-layout,.online-layout{background:#ffffffef;border-radius:20px;margin-top:28px;margin-bottom:20px;padding:30px 24px}.home-intro h1{font-size:clamp(40px,7vw,54px);font-weight:900}.paper-card{border-color:var(--edge-strong)}.text-button{color:var(--text-dim)}.ttt-layout{padding:clamp(20px,4vw,38px)}.ttt-layout h1{font-weight:900}.ttt-board{border:2px solid var(--text);border-radius:8px}.ttt-board td{border-color:var(--text);font-family:var(--ui);font-weight:800}.ttt-board tr:nth-child(2) td:nth-child(2){background:#bcece6}@media (width<=640px){.app-shell{padding:16px 20px}.brand-home-link{width:112px}.brand-tagline{display:none}.game-library{padding-top:32px}.library-hero .eyebrow{letter-spacing:.1em;font-size:8px}.library-hero h1{width:100%;margin-top:14px}.library-intro{margin-bottom:22px;font-size:13px}.library-heading{flex-direction:column;align-items:start;gap:5px;margin-bottom:6px}.library-heading h2{font-size:22px}.game-grid{grid-template-columns:1fr;gap:24px}.tile-art{height:160px}.tile-copy{padding:22px}.tile-copy h3{font-size:29px}.site-footer{font-size:10px}.site-footer img{width:52px}.home-layout{padding:24px 16px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.library-hero h1{width:min(620px,95%)}.game-library{padding-top:28px}.library-intro{margin-bottom:22px}@media (width<=640px){.library-hero h1{width:100%}}.game-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}.quick-draw-art{background:#ffe7a8}.quick-draw-art img,.scrambled-art img,.spam-it-art img{object-fit:contain;width:100%;height:100%;display:block}.quick-draw-layout{background:var(--surface);border:1px solid var(--edge);border-radius:20px;width:min(760px,100%);margin:30px auto 24px;padding:clamp(20px,4vw,36px)}.quick-draw-layout h1{font-size:clamp(36px,6vw,52px);font-weight:900}.qd-scores{grid-template-columns:1fr 1fr;gap:12px;margin:24px 0;display:grid}.qd-score{border:2px solid var(--text);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:12px 20px;font-weight:700;display:flex}.qd-team-0{color:#193b4b;background:#bcece6}.qd-team-1{color:#193b4b;background:#ffcec1}.qd-score strong{font-size:30px}.qd-setup h2{font-size:clamp(22px,4vw,30px);font-weight:800}.qd-instructions{color:var(--text-dim);padding-left:22px;font-size:14px;line-height:1.7}.qd-instructions li{margin:12px 0;padding-left:4px}.qd-note,.qd-round-note{color:var(--text-dim);font-size:14px;line-height:1.6}.qd-note{margin:22px 0}.qd-setup-values{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:22px}.qd-setup>.primary-button{margin-top:24px}.qd-round-heading{color:var(--text-dim);justify-content:space-between;gap:12px;margin-bottom:12px;font-size:12px;display:flex}.qd-status{font-size:clamp(24px,4vw,34px);font-weight:800}.qd-status:focus{outline:none}.qd-word-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:24px 0;display:grid}.qd-word{border:2px solid var(--text);text-align:center;overflow-wrap:anywhere;background:#f6f8f7;border-radius:12px;place-items:center;min-height:84px;padding:16px 8px;font-size:clamp(19px,4vw,30px);font-weight:800;display:grid}.qd-countdown{text-align:center;color:var(--text-dim);font-variant-numeric:tabular-nums;font-size:14px}.qd-countdown strong{min-width:3ch;color:var(--text);display:inline-block}.qd-go-buttons{grid-template-columns:1fr 1fr;gap:14px;margin-top:18px;display:grid}.app-shell:has(.quick-draw-layout){overflow:visible}.qd-go-buttons{z-index:2;background:var(--surface);border-radius:14px;padding:8px 4px;position:sticky;bottom:12px}.qd-go{border:2px solid var(--text);box-shadow:3px 4px 0 var(--text);cursor:pointer;touch-action:manipulation;border-radius:14px;flex-direction:column;align-items:center;gap:6px;padding:16px 10px;display:flex}.qd-go span{font-size:13px;font-weight:700}.qd-go strong{font-size:40px;font-weight:900;line-height:1.1}.qd-go:active{box-shadow:1px 1px 0 var(--text);transform:translateY(3px)}.qd-guess-actions>p{text-align:center;font-weight:700}.qd-guess-actions>div{flex-direction:column;gap:12px;display:flex}.qd-guess-actions button{touch-action:manipulation;min-height:54px;padding:12px}.qd-correct{border:2px solid var(--text)}.qd-correct.qd-team-0{color:#193b4b;background:#bcece6}.qd-correct.qd-team-1{color:#193b4b;background:#ffcec1}.qd-results{margin-top:24px}@media (width<=640px){.quick-draw-layout{margin-top:20px;padding:20px 16px}.qd-scores{gap:10px;margin:20px 0}.qd-score{padding:10px 12px;font-size:13px}}.spam-unlimited-guesses{color:#000;font-weight:700}.spam-it-art{background:#dcd2f2;gap:8px}.spam-bubble{border:2px solid var(--text);box-shadow:3px 3px 0 var(--text);background:#fff;border-radius:18px 18px 18px 3px;padding:5px 22px;font-size:18px;font-weight:900;line-height:1.25;transform:rotate(-5deg)translate(-40px)}.spam-bubble:nth-child(2){transform:rotate(4deg)translate(36px)}.spam-bubble:nth-child(3){background:#bcece6;transform:rotate(-3deg)translate(-10px)}.spam-setup-values{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:24px;display:grid}.spam-active-team{outline:3px solid var(--text);outline-offset:3px}.spam-next-team-0{color:var(--text);background:#bcece6}.spam-next-team-1{color:var(--text);background:#ffcec1}.spam-start,.spam-round-heading{margin-top:24px}.spam-round-status{z-index:2;background:var(--surface);justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex;position:sticky;top:8px}.spam-timer{border:2px solid var(--text);font-variant-numeric:tabular-nums;background:#dcd2f2;border-radius:12px;flex:none;padding:10px 14px;font-size:26px;font-weight:800;line-height:1}.spam-timer.urgent{background:#ffcec1}.spam-score{color:var(--lantern);margin:8px 0 16px;font-weight:700}.spam-word{cursor:pointer;touch-action:manipulation;width:100%;box-shadow:3px 3px 0 var(--text);transition:background .15s,transform .15s}.spam-word:hover{background:#bcece6}.spam-word:active{box-shadow:1px 1px 0 var(--text);transform:translateY(2px)}.spam-feedback{color:var(--text-dim);text-align:center;margin-top:18px;font-size:13px;line-height:1.5}.spam-recap{margin:24px 0}.spam-recap h3{text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);font-size:12px}.spam-recap ul{flex-wrap:wrap;gap:8px;padding:0;list-style:none;display:flex}.spam-recap li{border:1px solid var(--edge-strong);background:var(--surface-lift);border-radius:8px;padding:8px 12px;font-weight:700}@media (width<=640px){.spam-round-status .qd-status{font-size:23px}.spam-timer{padding:10px;font-size:24px}}.clean-sweep-art{background:#cce8cf}.cs-art-checks{gap:10px;display:flex;transform:rotate(-5deg)}.cs-art-checks span{border:2px solid var(--text);width:65px;height:70px;box-shadow:4px 5px 0 var(--text);color:#24714d;background:#fff;border-radius:12px;place-items:center;font-size:45px;font-weight:900;display:grid}.cs-art-checks span:nth-child(2){background:#bcece6;transform:translateY(-9px)rotate(10deg)}.clean-sweep-layout h1{margin-bottom:20px}.cs-name-fields{gap:14px;margin-top:24px;display:grid}.cs-name-row{align-items:end;gap:10px;display:flex}.cs-name-field{flex:1;min-width:0}.cs-name-field .text-input{margin:0}.cs-remove-name{border:1px solid var(--edge-strong);width:46px;height:46px;color:var(--text);cursor:pointer;background:#fff;border-radius:10px;flex:none;font-size:25px}.cs-name-actions{align-items:center;gap:12px;margin-top:16px;display:flex}.cs-add-player{flex:1}.cs-name-actions .text-button{margin:0;font-size:12px}.cs-difficulty{margin-top:24px;display:grid}.cs-note{color:var(--text-dim);margin:16px 0;font-size:12px;line-height:1.6}.cs-start{margin-top:18px}.cs-progress{color:#24714d;background:#edf7f0;border:1px solid #cce8cf;border-radius:10px;margin:12px 0 24px;padding:12px 16px;font-size:14px;font-weight:800}.cs-player-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:24px 0 0;display:grid}.cs-player-button{isolation:isolate;border:2px solid var(--text);min-height:104px;box-shadow:3px 4px 0 var(--text);color:var(--text);cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:#f5f8f8;border-radius:14px;padding:22px 12px;position:relative;overflow:hidden}.cs-player-copy{flex-direction:column;gap:10px;display:flex;position:relative}.cs-player-copy strong{overflow-wrap:anywhere;font-size:clamp(20px,4vw,28px)}.cs-player-copy small{color:var(--text-dim);font-size:11px}.cs-hold-fill{transform-origin:0;background:#bcece6;transition:transform .1s;position:absolute;inset:0;transform:scaleX(0)}.cs-player-button.holding .cs-hold-fill{transition-duration:var(--cs-hold-ms);transition-timing-function:linear;transform:scaleX(1)}.cs-player-button.cleared{box-shadow:none;opacity:1;cursor:default;color:#24714d;background:#edf7f0;border-color:#24714d}.cs-player-button.cleared small{color:#24714d}.cs-reward-note{color:#126c68;background:#e5f6f3;border-radius:10px;padding:14px 16px;font-size:14px;line-height:1.5}.cs-back{border:1.5px solid var(--text);background:#fff;align-items:center;gap:10px;min-height:44px;margin-bottom:22px;padding:10px 16px;font-size:14px;display:inline-flex}.cs-back svg{flex-shrink:0}.cs-word-bank{gap:16px;margin:24px 0;display:grid}.cs-word-card{border:2px solid var(--text);text-align:center;background:#f5f8f8;border-radius:16px;padding:24px}.cs-word-card>strong{overflow-wrap:anywhere;margin-bottom:20px;font-size:clamp(30px,6vw,44px);font-weight:900;display:block}.cs-word-actions{grid-template-columns:1fr 1fr;gap:12px;display:grid}.cs-word-actions .secondary-button{border-color:var(--text);background:#bcece6;width:100%;padding:12px}.cs-confirm-correct p{font-size:14px}.cs-confirm-correct .text-button{margin-top:8px}.cs-reward-button{border:2px solid var(--text);color:var(--text);cursor:pointer;background:#bcece6;border-radius:14px;flex-direction:column;align-items:center;gap:12px;padding:22px 12px;display:flex}.cs-reward-button strong{overflow-wrap:anywhere;font-size:24px}.cs-reward-button span{font-size:15px;font-weight:700}.cs-reward-button small{font-size:11px}.cs-win-list{gap:10px;margin:24px 0;padding:0;list-style:none;display:grid}.cs-win-list li{color:#24714d;overflow-wrap:anywhere;background:#edf7f0;border-radius:10px;justify-content:space-between;gap:16px;padding:14px 16px;font-size:15px;display:flex}@media (width<=420px){.cs-word-card{padding:20px 16px}.cs-player-list{gap:12px}}
