:root{--bg: #14161c;--bg2: #1d2029;--bg3: #262a36;--fg: #eef0f5;--muted: #8b91a3;--border: #323746;--accent: #f2c94c;--red: #d64545;--red-soft: #3a1f22;--blue: #3b7ddd;--blue-soft: #1c2a44;--neutral: #c9b99a;--neutral-soft: #2d2a24;--assassin: #0a0a0c;--shared: #8e5bd6;--shared-soft: #2b2140;--tile: #f3ead6;--tile-fg: #1d1a14;--radius: 10px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--fg);min-height:100%}body{font-size:15px;line-height:1.4;-webkit-tap-highlight-color:transparent}a{color:var(--accent);text-decoration:none}h1,h2,h3{margin:0 0 .5rem;line-height:1.2}h3{font-size:1rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}p{margin:.3rem 0}button,input,select,textarea{font:inherit;color:inherit}button{background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:.5rem .9rem;cursor:pointer;transition:background .12s,transform .05s}button:hover:not(:disabled){background:#313647}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);color:#1a1508;border-color:transparent;font-weight:600}button.primary:hover:not(:disabled){background:#f7d76a}button.danger{background:#4a2626;border-color:#6d3333}button.active{outline:2px solid var(--accent)}button.link{background:none;border:none;color:var(--accent);padding:.2rem .4rem}button.small{font-size:.8rem}button.big{padding:.8rem 1.4rem;font-size:1.05rem}button.wide{width:100%;margin:.5rem 0}.button{display:inline-block;padding:.6rem 1rem;border-radius:8px}input,select,textarea{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:.5rem .7rem;width:100%}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);border-color:transparent}label{display:flex;flex-direction:column;gap:.3rem;font-size:.9rem;color:var(--muted);margin:.4rem 0}label.check{flex-direction:row;align-items:center;gap:.5rem;color:var(--fg)}label.check input{width:auto}fieldset{border:1px solid var(--border);border-radius:var(--radius);margin:.6rem 0;padding:.5rem .9rem .7rem}legend{color:var(--muted);font-size:.85rem;padding:0 .4rem}.muted{color:var(--muted)}.small{font-size:.8rem}.error{color:#ff8080;background:#3a1f22;border-radius:8px;padding:.5rem .8rem;margin:.5rem 0}.ok{color:#7fd48a}.bad{color:#ff8080}.center{min-height:100vh;display:grid;place-items:center;padding:1rem}.card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.2rem}.logo{font-weight:800;letter-spacing:-.02em;font-size:1.4rem;color:var(--fg)}.logo span{color:var(--accent)}.logo.small{font-size:1rem;background:var(--accent);color:#1a1508;padding:.1rem .4rem;border-radius:6px}.tabs{display:flex;gap:.3rem;margin-bottom:.8rem}.tabs button{flex:1}.auth{width:min(360px,100%);display:flex;flex-direction:column}.auth h1{text-align:center;margin-bottom:1rem}.auth .primary{margin-top:.6rem}.page{max-width:1100px;margin:0 auto;padding:.8rem 1rem 3rem}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.3rem 0 1rem;flex-wrap:wrap}.topbar nav{display:flex;gap:.8rem;align-items:center}.invite{display:flex;align-items:center;gap:.6rem}.invite .code{font-family:ui-monospace,monospace;font-size:1.2rem;letter-spacing:.15em;background:var(--bg3);padding:.3rem .6rem;border-radius:8px}.home{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.home .card{display:flex;flex-direction:column;gap:.5rem}.lobby{display:flex;flex-direction:column;gap:1rem}.teams{display:grid;gap:.8rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.team-box{border:2px solid var(--border);border-radius:var(--radius);padding:.8rem 1rem;background:var(--bg2)}.team-box.team-red{border-color:var(--red);background:var(--red-soft)}.team-box.team-blue{border-color:var(--blue);background:var(--blue-soft)}.team-box ul{list-style:none;margin:0 0 .6rem;padding:0}.team-box li{display:flex;align-items:center;gap:.4rem;padding:.25rem 0}.team-box li .name{flex:1}.team-box li.offline{opacity:.5}.role-pick{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.settings .grid2{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.settings .grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.8rem}.settings .save-state{float:right;font-size:.75rem;text-transform:none;letter-spacing:0;color:#7fd48a}.settings .packlist{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.3rem .8rem;margin:.4rem 0}.settings .counts{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.5rem}.start{align-self:center;min-width:240px}.endscreen{text-align:center;margin-bottom:1rem}.endscreen h2{font-size:2rem}.endscreen .score{display:flex;justify-content:center;gap:2rem;font-size:1.2rem;font-weight:600;margin:.5rem 0 1rem}.unlocked{text-align:left;background:var(--bg3);border-radius:8px;padding:.6rem .9rem;margin:.8rem auto;max-width:520px}.unlocked div{padding:.2rem 0}.team-red{color:#ff7b7b}.team-blue{color:#7fb0ff}.team-spectator{color:var(--muted)}.profile .stats{display:flex;gap:1.2rem;flex-wrap:wrap;margin-bottom:1rem}.profile .stats div{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:.6rem 1rem;min-width:90px;text-align:center}.profile .stats b{display:block;font-size:1.5rem}.profile .stats span{color:var(--muted);font-size:.8rem}.achievements{display:grid;gap:.6rem;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-auto-rows:1fr}.achievement{display:flex;gap:.8rem;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:.7rem .9rem;min-height:0}.achievement .icon{font-size:1.8rem;flex:0 0 2.6rem;width:2.6rem;height:2.6rem;display:grid;place-items:center;line-height:1}.achievement .body{display:flex;flex-direction:column;gap:.15rem;min-width:0;flex:1}.achievement .body p{margin:0}.achievement .meta{margin-top:auto;display:flex;flex-wrap:wrap;align-items:center;gap:.2rem .6rem;padding-top:.3rem}.achievement .who{font-size:.72rem;border:1px solid var(--border);border-radius:999px;padding:.05rem .5rem;color:var(--fg);background:var(--bg3);white-space:nowrap}.achievement.locked .who{filter:none}.achievement p{color:var(--muted);font-size:.85rem}.achievement.locked{opacity:.4;filter:grayscale(1)}.game{max-width:1400px;margin:0 auto;padding:.5rem .8rem 2rem}.gamebar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.2rem 0 .5rem}.gamebar .score{display:flex;gap:1rem;align-items:baseline;font-weight:700;font-size:1.3rem}.gamebar .round{font-size:.9rem;color:var(--muted);font-weight:500}.bigtimer{font-variant-numeric:tabular-nums;font-weight:800;font-size:1.4rem;background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:.15rem .7rem}.bigtimer.urgent{color:#fff;background:var(--red);border-color:var(--red);animation:pulse 1s infinite}@keyframes pulse{50%{opacity:.55}}.status{border-radius:8px;padding:.5rem .9rem;margin-bottom:.7rem;background:var(--bg3);border-left:5px solid var(--border)}.status.team-red{border-left-color:var(--red)}.status.team-blue{border-left-color:var(--blue)}.status .clue{font-size:1.15rem;color:var(--accent);text-transform:uppercase;letter-spacing:.04em}.layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:1rem;align-items:start}.layout aside{display:flex;flex-direction:column;gap:.7rem}.hint{background:var(--bg2);border:1px dashed var(--border);border-radius:8px;padding:.4rem .8rem;margin-bottom:.6rem}.board{display:grid;gap:.45rem}.tile{position:relative;aspect-ratio:5 / 3;border-radius:8px;background:var(--tile);color:var(--tile-fg);display:grid;place-items:center;text-align:center;font-weight:700;padding:.3rem;overflow:hidden;border:3px solid transparent;-webkit-user-select:none;user-select:none;text-transform:uppercase;letter-spacing:.02em}.size-4 .tile{font-size:clamp(.9rem,2.4vw,1.4rem)}.size-5 .tile{font-size:clamp(.8rem,2vw,1.25rem)}.size-6 .tile{font-size:clamp(.68rem,1.7vw,1.1rem)}.size-7 .tile{font-size:clamp(.6rem,1.45vw,1rem)}.size-8 .tile{font-size:clamp(.55rem,1.25vw,.9rem)}.tile .word{overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto}.board .tile .word{font-size:calc(1em * var(--word-scale, 1))}.tile.has-actions{padding-bottom:1.5rem}.tile.hidden.c-red{border-color:var(--red);background:#f3b8b8}.tile.hidden.c-blue{border-color:var(--blue);background:#b9d0f5}.tile.hidden.c-neutral{border-color:#b5a47e;background:#e8dfc9}.tile.hidden.c-assassin{border-color:#000;background:#3a3a40}.tile.hidden.c-shared{border-color:var(--shared);background:#d9c4f2}.tile.hidden.c-red .word{color:#7a1d1d}.tile.hidden.c-blue .word{color:#1b3f7d}.tile.hidden.c-neutral .word{color:#4d4433}.tile.hidden.c-assassin .word{color:#fff}.tile.hidden.c-shared .word{color:#4a2a7a}.tile.hidden.c-assassin:after{content:"☠";position:absolute;top:2px;left:6px;font-size:.9rem;color:#fff}.tile.hidden.c-shared:after{content:"🤝";position:absolute;top:2px;left:4px;font-size:.75rem}.legend{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .5rem;font-size:.8rem;color:var(--muted);margin:0 0 .5rem}.legend .sw{width:14px;height:14px;border-radius:4px;display:inline-block;border:1px solid #0006;margin-left:.3rem}.legend .sw.c-red{background:var(--red)}.legend .sw.c-blue{background:var(--blue)}.legend .sw.c-neutral{background:var(--neutral)}.legend .sw.c-assassin{background:var(--assassin);border-color:#666}.legend .sw.c-shared{background:var(--shared)}.legend .clear-marks{margin-left:auto;padding:.1rem .45rem;font-size:.7rem;line-height:1;border-radius:6px}@media (max-width: 860px){.legend{position:relative;padding-right:1.4rem}.legend .clear-marks{position:absolute;right:0;top:50%;transform:translateY(-50%);padding:.1rem .3rem}.legend .clear-marks:active:not(:disabled){transform:translateY(-50%)}.legend .clear-marks .long{display:none}}.pending-halver{color:var(--accent)}.tile.revealed{color:#fff;opacity:.95}.tile.revealed.c-red{background:var(--red);border-color:var(--red)}.tile.revealed.c-blue{background:var(--blue);border-color:var(--blue)}.tile.revealed.c-neutral{background:var(--neutral);color:#2a2418;border-color:var(--neutral)}.tile.revealed.c-assassin{background:var(--assassin);border-color:#444}.tile.revealed.c-shared{background:var(--shared);border-color:var(--shared)}.tile.target{box-shadow:0 0 0 3px var(--accent),0 0 18px var(--accent)}.tile.selectable{cursor:pointer}.scout-mode .tile.hidden{outline:2px dashed var(--blue);outline-offset:-6px}.tile .actions button.select.scout:not(:disabled){background:var(--blue);color:#fff;font-size:.95rem}.tile .actions button.select.scout:hover:not(:disabled){background:#5b93e6}.tile.drawpick{outline:3px dashed #2a9d5c;outline-offset:-7px}.board .tile .actions button.select.drawpick:not(:disabled){background:#2a9d5c;color:#fff;font-size:.95rem}.board .tile .actions button.select.drawpick:hover:not(:disabled){background:#36b86c}.scout-badge{position:absolute;top:0;left:0;right:0;font-size:.7rem;font-weight:800;letter-spacing:.05em;padding:2px 4px;color:#fff;text-align:center;border-bottom:2px solid #0004}.scout-badge.c-red{background:var(--red)}.scout-badge.c-blue{background:var(--blue)}.scout-badge.c-neutral{background:#8d7d5a}.scout-badge.c-assassin{background:#000}.scout-badge.c-shared{background:var(--shared)}.tile.hidden.c-unknown .scout-badge~.word{padding-top:.9rem}.badges{position:absolute;bottom:2px;left:5px;display:flex;align-items:center;gap:3px;font-size:var(--badge-size, 1.35rem);line-height:1;pointer-events:none}.recharge-badge{filter:drop-shadow(0 0 2px #000a)}.spymark-badge{color:#b8860b;text-shadow:0 0 3px #fff}.tile.spymark{box-shadow:0 0 0 3px #f2c94c inset}.tile.spy-clickable{cursor:pointer}.board.cover .tile.revealed .word{visibility:hidden}.board.cover .tile.revealed{opacity:.45}.legend .sw.c-recharge{background:var(--bg3);font-size:10px;text-align:center;line-height:14px}.cluebanner{margin-top:.8rem;background:var(--bg2);border:2px solid var(--border);border-radius:var(--radius);padding:.7rem 1rem;display:flex;align-items:baseline;gap:.8rem;flex-wrap:wrap}.cluebanner.team-red.active{border-color:var(--red)}.cluebanner.team-blue.active{border-color:var(--blue)}.cluebanner .label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.8rem}.cluebanner .word{font-size:2rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--accent)}.cluebanner .word.small{font-size:1.2rem;color:var(--fg)}.cluebanner .count{font-size:2rem;font-weight:800;background:var(--accent);color:#1a1508;border-radius:10px;padding:0 .6rem;line-height:1.3}.cluebanner .left{color:var(--muted)}.endbanner{text-align:center;margin-bottom:.8rem;border-width:2px}.endbanner.team-red{border-color:var(--red)}.endbanner.team-blue{border-color:var(--blue)}.endbanner.team-draw{border-color:var(--shared)}.endbanner h2{font-size:2rem}.endbanner .row{display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap;margin-top:.6rem}.endbanner{position:relative}.endbanner .endtoggle{position:absolute;top:.4rem;right:.6rem}.endbanner .endstamps{margin-left:.6rem;font-size:.8em;letter-spacing:.1em}.endbanner.collapsed{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.4rem 1rem;padding:.4rem 6.5rem .4rem 1rem}.endbanner.collapsed h2{font-size:1.2rem;margin:0}.endbanner.collapsed .row{margin-top:0}.endbanner.collapsed .row button.big{padding:.35rem .8rem;font-size:.9rem}.endbanner.collapsed .endtoggle{top:50%;transform:translateY(-50%)}.statbox{margin:.6rem auto 0;max-width:34rem;text-align:left;border:1px solid var(--border);border-radius:10px;background:var(--bg2)}.statbox>summary{cursor:pointer;padding:.4rem .7rem;font-size:.9rem;font-weight:600;list-style:none}.statbox>summary::-webkit-details-marker{display:none}.statbox>summary:before{content:"▸ ";color:var(--muted)}.statbox[open]>summary:before{content:"▾ "}.stattable{width:100%;border-collapse:collapse;font-size:.85rem}.stattable th{text-align:right;font-weight:600;color:var(--muted);font-size:.75rem;padding:.2rem .5rem;white-space:nowrap}.stattable th:first-child{text-align:left}.stattable td{padding:.2rem .5rem;border-top:1px solid var(--border)}.stattable td.num{text-align:right;font-variant-numeric:tabular-nums;width:4.2rem;color:var(--fg)}.stattable td.ok{color:#7fd48a;font-weight:700}.stattable td.zero{color:var(--muted)}.stattable td.bad{color:#ff8080}.stattable tr.team-red td:first-child{border-left:3px solid var(--red)}.stattable tr.team-blue td:first-child{border-left:3px solid var(--blue)}.stattable tfoot td{border-top:2px solid var(--border);font-weight:700}.statname{display:inline-flex;align-items:center;gap:.35rem;background:none;border:none;padding:0;color:inherit;font:inherit;cursor:pointer}.statname:hover span{text-decoration:underline}body.cb .stattable td.ok{color:var(--good)}body.cb .stattable td.bad{color:var(--bad)}body.cb .stattable tr.team-red .statname:before,body.cb .stattable tr.team-red .statteam:before{content:"▲ "}body.cb .stattable tr.team-blue .statname:before,body.cb .stattable tr.team-blue .statteam:before{content:"● "}@media (max-width: 560px){.statbox{overflow-x:auto}.stattable{font-size:.8rem}.stattable .lbl{display:none}.stattable th,.stattable td{padding:.2rem .35rem}.stattable td.num{width:2.6rem}.statteam{white-space:nowrap}}.tools-right{display:flex;align-items:center;gap:.4rem}button.icon{padding:.3rem .5rem;font-size:1rem;line-height:1}.jokerbar .charges{float:right;color:#7fd48a;text-transform:none;letter-spacing:0}.jokerbar button.recharge{opacity:.85}.drawing .tools{flex-direction:column;align-items:stretch;gap:.4rem}.drawing .swatches,.drawing .row{display:flex;gap:.3rem;flex-wrap:wrap}.drawing .swatch.active{outline:3px solid var(--accent)}.scout-badge.c-red,.scout-badge.c-blue,.scout-badge.c-neutral,.scout-badge.c-assassin,.scout-badge.c-shared{border-color:#0004}.marks{position:absolute;top:3px;right:4px;display:flex;gap:2px;flex-wrap:wrap;justify-content:flex-end;max-width:70%}.marks span{font-size:.6rem;background:#ffffffd9;color:#222;border-radius:999px;padding:1px 4px;border:1px solid #0003;font-weight:600;text-transform:none;letter-spacing:0}.marks span.me{background:var(--accent)}.tile .actions{position:absolute;bottom:0;left:0;right:0;display:flex}.tile .actions button{flex:1;border:none;border-radius:0;padding:.25rem 0;font-size:.85rem;line-height:1;background:#0000000f;color:#333}.tile .actions button:hover:not(:disabled){background:#00000025}.tile .actions button.mark:not(:disabled){color:#6a5a1e}.tile .actions button.select:not(:disabled){background:#2a9d5c33;color:#1c6b3d;font-weight:800}.tile .actions button.select:hover:not(:disabled){background:#2a9d5c66}.tile .actions button:disabled{opacity:.25}.cluepanel .row{display:flex;gap:.4rem}.cluepanel .row input{flex:1}.cluepanel .row select{width:5rem}.cluepanel button{margin-top:.5rem;width:100%}.jokerbar{display:flex;flex-direction:column;gap:.4rem}.jokerbar button{text-align:left}.jokerbar .votes{float:right;background:var(--bg);border-radius:999px;padding:0 .5rem;font-size:.8rem}.log{max-height:320px;overflow-y:auto;font-size:.85rem;padding:.6rem .8rem}.log .entry{padding:.2rem 0 .2rem .5rem;border-left:3px solid var(--border);margin-bottom:.2rem;color:var(--muted)}.log .entry.team-red{border-left-color:var(--red)}.log .entry.team-blue{border-left-color:var(--blue)}.log .entry.k-clue,.log .entry.k-reveal,.log .entry.k-defector,.log .entry.k-end{color:var(--fg)}.log .entry.k-joker{color:var(--accent)}.log .entry.k-defector{font-weight:600}.drawing{max-width:640px;margin:0 auto .8rem;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem}.drawing canvas{display:block;width:100%;border-radius:6px;background:#fbf8f1;touch-action:none;cursor:crosshair}.drawing:not(.drawer) canvas{cursor:default}.drawing .tools{display:flex;gap:.3rem;flex-wrap:wrap;margin-top:.5rem;align-items:center}.drawing .swatch{width:28px;height:28px;border-radius:999px;padding:0;border:2px solid #fff6}.toasts{position:fixed;top:.8rem;right:.8rem;display:flex;flex-direction:column;gap:.4rem;z-index:50;max-width:min(360px,90vw)}.toast{background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:.6rem .9rem;box-shadow:0 6px 20px #0006;animation:pop .15s ease-out}.toast.error{border-color:var(--red)}@keyframes pop{0%{transform:translateY(-6px);opacity:0}to{transform:none;opacity:1}}@media (max-width: 860px){.layout{grid-template-columns:1fr}.layout aside{order:2}.gamebar .score{font-size:1.1rem}.settings .grid2,.settings .grid3{grid-template-columns:1fr}.gamebar{flex-wrap:wrap}.bigtimer{font-size:1.15rem}.board{gap:.25rem}.tile{border-width:2px;aspect-ratio:1 / 1;padding:.15rem;border-radius:6px}.tile.has-actions{padding-bottom:1.6rem}.size-6 .tile{font-size:clamp(.5rem,2.6vw,.8rem);letter-spacing:0}.size-7 .tile{font-size:clamp(.45rem,2.2vw,.7rem);letter-spacing:0}.size-8 .tile{font-size:clamp(.4rem,1.9vw,.65rem);letter-spacing:0}.tile .actions button{padding:.35rem 0;font-size:1rem}.marks span{font-size:.5rem;padding:0 3px}.log{max-height:200px}}.debugbar{background:#3b2f0a;border:1px solid #a37e1a;color:#f2c94c;border-radius:8px;padding:.4rem .8rem;margin-bottom:.6rem;font-size:.9rem}.debugpanel .row{display:flex;gap:.3rem;flex-wrap:wrap;margin-bottom:.4rem}.debugpanel button{font-size:.85rem;padding:.35rem .6rem}.tablewrap{overflow-x:auto}.admintable{width:100%;border-collapse:collapse;font-size:.9rem}.admintable th,.admintable td{text-align:left;padding:.45rem .6rem;border-bottom:1px solid var(--border);white-space:nowrap}.admintable th{color:var(--muted);font-weight:500;text-transform:uppercase;font-size:.75rem;letter-spacing:.06em}.admintable .row{display:flex;gap:.3rem}.admintable input{width:10rem;padding:.3rem .5rem}.admintable button{padding:.3rem .6rem}.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;vertical-align:middle;flex:none}.avatar.emoji{background:var(--bg3);line-height:1}.row{display:inline-flex;align-items:center;gap:.4rem}h2.row{display:flex}.avatar-pick{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1rem}.avatar-pick button{padding:.3rem;border-radius:12px}.marks span{padding:0;background:transparent;border:none}.marks span.me .avatar{outline:2px solid var(--accent)}.teamstrip{display:inline-flex;gap:.15rem;align-items:center}.teamstrip .member{position:relative;background:none;border:none;padding:2px;border-radius:999px}.teamstrip .member.spymaster .avatar{outline:2px solid var(--accent)}.teamstrip .member.offline{opacity:.35}.teamstrip .rolebadge{position:absolute;right:-3px;bottom:-3px;font-size:.7rem;background:var(--bg);border-radius:999px;padding:0 2px;line-height:1.2}.teamstrip .drawbadge{position:absolute;left:-4px;top:-4px;font-size:.7rem}.teamstrip.team-red .member .avatar{box-shadow:0 0 0 2px var(--red)}.teamstrip.team-blue .member .avatar{box-shadow:0 0 0 2px var(--blue)}.teamstrip .member.spymaster .avatar{box-shadow:0 0 0 2px var(--accent)}.gamebar .score{gap:.7rem}.you.link{color:inherit}.playerlink{display:inline-flex;align-items:center;gap:.4rem;color:inherit;padding:0;flex:1;text-align:left}.playerlink:hover .name{text-decoration:underline}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:grid;place-items:start center;padding:2rem 1rem;overflow-y:auto;z-index:40}.modal{position:relative;width:min(900px,100%);max-height:calc(100vh - 4rem);overflow-y:auto}.modal .close{position:absolute;top:.6rem;right:.6rem}.achievement .icon{position:relative}.achievement .count{position:absolute;right:-8px;bottom:-6px;font-size:.7rem;background:var(--accent);color:#1a1508;border-radius:999px;padding:0 5px;font-weight:700}.history{width:100%;border-collapse:collapse;font-size:.9rem}.history th,.history td{text-align:left;padding:.4rem .6rem;border-bottom:1px solid var(--border);white-space:nowrap}.history th{color:var(--muted);font-weight:500;text-transform:uppercase;font-size:.75rem;letter-spacing:.06em}.history tr.won td:first-child{border-left:3px solid #7fd48a}.history tr.lost td:first-child{border-left:3px solid var(--border)}.history tr.draw td:first-child{border-left:3px solid var(--shared)}@media (max-width: 860px){.teamstrip{display:none}}.tile.hidden.hitman{background:#0a0a0c!important;border-color:#d63d3d!important}.tile.hidden.hitman .word{color:#fff!important}.hitman-mode .tile.hidden{opacity:.45}.hitman-mode.target-red .tile.hidden.c-red,.hitman-mode.target-blue .tile.hidden.c-blue,.hitman-mode.target-assassin .tile.hidden.c-assassin{opacity:1;outline:2px dashed #d63d3d;outline-offset:-6px;cursor:crosshair}.rules section{margin-bottom:1rem}.rules h3{margin-top:.8rem}.rules ol,.rules ul{margin:.3rem 0;padding-left:1.3rem}.rules li{margin:.3rem 0}.rules .cards-legend{list-style:none;padding-left:0}.rules .sw{width:12px;height:12px;border-radius:3px;display:inline-block;border:1px solid #0006;vertical-align:middle}.rules .sw.c-red{background:var(--red)}.rules .sw.c-blue{background:var(--blue)}.rules .sw.c-neutral{background:var(--neutral)}.rules .sw.c-assassin{background:var(--assassin);border-color:#666}.rules .sw.c-shared{background:var(--shared)}.rules .jokers{list-style:none;padding-left:0}.rules .jokers li{background:var(--bg3);border-radius:8px;padding:.5rem .7rem}.profileimg{margin:1.4rem 0 .4rem;text-align:center}.profileimg img{max-width:min(560px,100%);max-height:70vh;height:auto;border-radius:12px;box-shadow:0 6px 24px #0007}.startrow{display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap;margin:.2rem 0 .6rem}.chaos-fx{position:fixed;top:0;right:0;bottom:0;left:0;z-index:35;display:grid;place-items:center;pointer-events:none;background:radial-gradient(circle at center,#f2c94c26,#0000 62%);animation:chaosfade 1.9s ease forwards}.chaos-fx .inner{display:grid;justify-items:center;gap:.3rem;text-align:center;padding:0 1rem}.chaos-fx .spin{font-size:clamp(3.5rem,17vh,8rem);line-height:1;filter:drop-shadow(0 4px 18px #000b);animation:chaosspin 1.2s cubic-bezier(.25,.9,.3,1) both}.chaos-fx .label{font-size:clamp(1.3rem,4.5vh,2.4rem);font-weight:900;letter-spacing:.05em;text-transform:uppercase;color:var(--accent);text-shadow:0 2px 14px #000,0 0 3px #000}.chaos-fx .sub{font-weight:600;color:#fff;text-shadow:0 2px 10px #000,0 0 3px #000}@keyframes chaosspin{0%{transform:rotate(0) scale(.25);opacity:0}60%{opacity:1}to{transform:rotate(720deg) scale(1);opacity:1}}@keyframes chaosfade{0%{opacity:0}10%{opacity:1}72%{opacity:1}to{opacity:0}}.board.chaos .tile.hidden{animation:chaosflip .8s ease-in-out both;animation-delay:calc(var(--i, 0) * 13ms)}@keyframes chaosflip{0%{transform:none}35%{transform:rotateY(90deg) scale(.9)}70%{transform:rotateY(180deg) scale(1.03)}to{transform:rotateY(360deg) scale(1)}}@media (prefers-reduced-motion: reduce){.board.chaos .tile.hidden,.chaos-fx .spin{animation:none}}.tile.anim-reveal{animation:cardflip .5s ease-in-out}.tile.anim-reveal.c-red{box-shadow:0 0 0 3px var(--red),0 0 22px color-mix(in srgb,var(--red) 70%,transparent)}.tile.anim-reveal.c-blue{box-shadow:0 0 0 3px var(--blue),0 0 22px color-mix(in srgb,var(--blue) 70%,transparent)}.tile.anim-reveal.c-shared{box-shadow:0 0 0 3px var(--shared),0 0 22px color-mix(in srgb,var(--shared) 70%,transparent)}.tile.anim-reveal.c-neutral,.tile.anim-reveal.c-assassin{animation:cardflip .5s ease-in-out,cardshake .45s .5s ease-in-out}@keyframes cardflip{0%{transform:none}50%{transform:rotateY(90deg) scale(.94)}to{transform:rotateY(0) scale(1)}}@keyframes cardshake{0%,to{transform:translate(0)}20%{transform:translate(-5px)}40%{transform:translate(5px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}.assassin-fx{position:fixed;top:0;right:0;bottom:0;left:0;z-index:36;pointer-events:none;display:grid;place-items:center;background:radial-gradient(circle at center,#d6454577,#1a0000cc 75%);animation:assassinfade 1.8s ease forwards}.assassin-fx span{font-size:clamp(5rem,28vh,14rem);line-height:1;color:#fff;text-shadow:0 0 40px #000,0 0 12px #d64545;animation:assassinpop 1.1s cubic-bezier(.2,1.2,.4,1) both}@keyframes assassinfade{0%{opacity:0}8%{opacity:1}65%{opacity:1}to{opacity:0}}@keyframes assassinpop{0%{transform:scale(.2) rotate(-12deg)}60%{transform:scale(1.12) rotate(4deg)}to{transform:scale(1) rotate(0)}}.tile.anim-defector{animation:defectorspin .9s cubic-bezier(.3,.8,.3,1);z-index:2}@keyframes defectorspin{0%{transform:rotateY(0) scale(1)}45%{transform:rotateY(180deg) scale(1.12)}to{transform:rotateY(360deg) scale(1)}}.tile.anim-swapped{animation:swapblink 1.3s ease-in-out}@keyframes swapblink{0%,to{box-shadow:none}25%,75%{box-shadow:0 0 0 3px var(--accent),0 0 20px color-mix(in srgb,var(--accent) 60%,transparent)}}.teamsbar.turnflash .teampanel.active{animation:turnsweep 1.2s ease-out}@keyframes turnsweep{0%{transform:scale(1);filter:brightness(1)}25%{transform:scale(1.025);filter:brightness(1.55)}to{transform:scale(1);filter:brightness(1)}}.cluebanner{animation:cluein .45s cubic-bezier(.2,1.1,.4,1)}.cluebanner.active .word{animation:cluewordin .55s cubic-bezier(.2,1.3,.4,1)}@keyframes cluein{0%{transform:translateY(10px);opacity:0}to{transform:none;opacity:1}}@keyframes cluewordin{0%{transform:scale(.4);opacity:0}70%{transform:scale(1.12);opacity:1}to{transform:scale(1)}}.flying-charge{position:fixed;z-index:39;pointer-events:none;font-size:2.2rem;line-height:1;filter:drop-shadow(0 0 8px #f2c94ccc);transform:translate(-50%,-50%);animation:chargefly .9s cubic-bezier(.4,0,.5,1) forwards}@keyframes chargefly{0%{transform:translate(-50%,-50%) scale(.6);opacity:0}15%{transform:translate(-50%,-50%) scale(1.5);opacity:1}to{transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(.5);opacity:0}}.jokerbar .charges.pop{animation:chargepop .8s cubic-bezier(.2,1.4,.4,1);display:inline-block}@keyframes chargepop{0%{transform:scale(1)}35%{transform:scale(1.55);filter:brightness(1.6)}to{transform:scale(1)}}.tile.scout-sweep:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;background:linear-gradient(105deg,#fff0 35%,#fffb,#fff0 65%);background-size:260% 100%;animation:scoutsweep .9s ease-out}@keyframes scoutsweep{0%{background-position:180% 0}to{background-position:-80% 0}}.scout-badge.anim-scout{animation:scoutdrop .5s cubic-bezier(.2,1.3,.4,1);transform-origin:top center}@keyframes scoutdrop{0%{transform:translateY(-120%) scaleY(.4);opacity:0}to{transform:none;opacity:1}}.tile.anim-hitman{animation:hitmanjolt .6s cubic-bezier(.3,1.4,.4,1);z-index:3;box-shadow:0 0 0 4px #d64545,0 0 28px #d64545cc}@keyframes hitmanjolt{0%{transform:scale(1)}20%{transform:scale(1.18) rotate(-3deg)}45%{transform:scale(.96) rotate(2deg)}to{transform:scale(1) rotate(0)}}.game.jolt{animation:screenjolt .45s ease-in-out}@keyframes screenjolt{0%,to{transform:none}15%{transform:translate(-6px,3px)}35%{transform:translate(5px,-4px)}55%{transform:translate(-4px,2px)}75%{transform:translate(3px,-1px)}}.game.phase-drawing .tile.target,.game.phase-drawTarget .tile.target{animation:targetpulse 1.6s ease-in-out infinite}@keyframes targetpulse{0%,to{box-shadow:0 0 0 3px var(--accent),0 0 12px color-mix(in srgb,var(--accent) 60%,transparent)}50%{box-shadow:0 0 0 5px var(--accent),0 0 26px var(--accent)}}.exbar{position:relative;width:min(640px,100%);margin:0 auto;flex:0 0 auto;height:1.5rem;border-radius:999px;background:var(--bg3);border:1px solid var(--border);overflow:hidden;display:grid;place-items:center}.exbar .fill{position:absolute;left:0;top:0;bottom:0;background:var(--accent);opacity:.35;transition:width .95s linear}.exbar.team-red .fill{background:var(--red)}.exbar.team-blue .fill{background:var(--blue)}.exbar.open .fill{width:0!important}.exbar span{position:relative;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--fg)}.exbar.open{border-color:color-mix(in srgb,var(--accent) 60%,transparent)}.drawcol{display:flex;flex-direction:column;min-width:0;min-height:0;gap:.4rem}.playarea.with-drawing .exbar{width:100%;max-width:640px}.confetti{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:38}@media (prefers-reduced-motion: reduce){.tile.anim-reveal,.tile.anim-defector,.tile.anim-swapped,.tile.anim-hitman,.tile.scout-sweep:after,.scout-badge.anim-scout,.game.jolt,.jokerbar .charges.pop,.flying-charge,.game.phase-drawing .tile.target,.game.phase-drawTarget .tile.target,.teamsbar.turnflash .teampanel.active,.cluebanner,.cluebanner.active .word{animation:none}.assassin-fx span{animation:none}}.pause-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000a;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:grid;place-items:center;z-index:30}.pause-overlay .card{text-align:center;padding:1.5rem 2rem}.pause-overlay h2{font-size:2rem}.backups{list-style:none;padding:0;margin:.6rem 0;font-size:.9rem}.backups li{padding:.25rem 0;border-bottom:1px solid var(--border)}.tile.hidden.turncoat{box-shadow:0 0 0 3px #2a9d5c inset}.tile.hidden.neutralized{box-shadow:0 0 0 3px var(--neutral) inset}.tile.has-actions .badges{bottom:calc(.3rem + var(--act-h, 1.3rem))}.admintable.rooms td.members{white-space:normal;max-width:480px}.admintable .member{display:inline-flex;align-items:center;gap:.2rem;background:var(--bg3);border-radius:999px;padding:.1rem .5rem .1rem .2rem;margin:.1rem .2rem .1rem 0;font-size:.8rem}.admintable .member.team-red{box-shadow:inset 0 0 0 1px var(--red)}.admintable .member.team-blue{box-shadow:inset 0 0 0 1px var(--blue)}.admintable .member.offline{opacity:.45}.noticebar{background:#1c2a44;border:1px solid var(--blue);color:#cfe0ff;border-radius:8px;padding:.5rem .8rem;margin-bottom:.6rem}.cluehistory table{width:100%;border-collapse:collapse;font-size:.85rem}.cluehistory td{padding:.2rem .3rem;border-bottom:1px solid var(--border)}.cluehistory tr.team-red td:first-child{border-left:3px solid var(--red)}.cluehistory tr.team-blue td:first-child{border-left:3px solid var(--blue)}.cluehistory .round{color:var(--muted);width:2rem}.cluehistory .word{font-weight:700;text-transform:uppercase;letter-spacing:.03em}.cluehistory .count{font-weight:700;color:var(--accent);width:1.5rem;text-align:center}.cluehistory .result{text-align:right;white-space:nowrap}.cluehistory .hit{color:#7fd48a}.cluehistory .miss{color:#ff8080}.cluehistory tr.done .word{opacity:.55;text-decoration:line-through}.pwform{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.4rem .8rem;align-items:end;max-width:760px;margin-bottom:1.2rem}.pwform .error{grid-column:1 / -1}.pwform button{justify-self:start}.featureboard{margin-top:1rem}.fb-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.fb-head h2{margin:0}.coins{display:flex;gap:.4rem;flex-wrap:wrap}.coin{background:var(--bg3);border:1px solid var(--border);border-radius:999px;padding:.2rem .7rem;font-weight:600;font-size:.9rem}.coin.feature{border-color:var(--accent)}.fow{background:#3b2f0a;border:1px solid #a37e1a;border-radius:8px;padding:.5rem .8rem;margin:.6rem 0}.leader{color:var(--muted);margin:.3rem 0 .6rem}.fb-propose{display:grid;gap:.4rem;margin:.8rem 0}.fb-propose button{justify-self:start}.fb-item{display:grid;grid-template-columns:4.5rem 1fr auto;gap:.8rem;align-items:start;padding:.7rem 0;border-top:1px solid var(--border)}.fb-item .score{text-align:center}.fb-item .score b{display:block;font-size:1.5rem;line-height:1.1}.fb-item .score b.pos{color:#7fd48a}.fb-item .score b.neg{color:#ff8080}.fb-item .score small{color:var(--muted);font-size:.7rem}.fb-item .title{font-weight:700;display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.fb-item .body{color:var(--fg);opacity:.85;white-space:pre-wrap;margin:.2rem 0}.fb-item .reply{background:var(--bg3);border-left:3px solid var(--accent);padding:.3rem .6rem;border-radius:4px;margin:.3rem 0;font-size:.9rem}.fb-item .meta{font-size:.8rem;display:flex;align-items:center;gap:.2rem;flex-wrap:wrap}.fb-item .myvote{color:var(--accent)}.fb-item .vote{display:flex;flex-direction:column;align-items:center;gap:.25rem}.fb-item .vote button{width:2.6rem;padding:.25rem 0}.fb-item .vote button.up:not(:disabled){color:#7fd48a}.fb-item .vote button.down:not(:disabled){color:#ff8080}.fb-item .vote input{width:3.2rem;text-align:center;padding:.2rem}.fb-edit{display:grid;gap:.3rem}.fstatus{font-size:.7rem;font-weight:600;border-radius:999px;padding:.05rem .5rem;background:var(--bg3);text-transform:uppercase;letter-spacing:.04em}.fstatus.s-planned{background:#1c2a44;color:#9fc2ff}.fstatus.s-done{background:#1d3a26;color:#7fd48a}.fstatus.s-rejected{background:#3a1f22;color:#ff9b9b}.archive{margin-top:.8rem}.archive summary{cursor:pointer;color:var(--muted)}.archive .fb-item{opacity:.7}.boardcfg .grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.6rem}.admintable.board td.wrap{white-space:normal;max-width:360px}.admintable.board td.row input{width:12rem}.bugmodal textarea{width:100%;resize:vertical;min-height:7rem}.bugmodal .bugmeta{margin:.4rem 0 .6rem}.bugmodal .row{display:flex;gap:.6rem;align-items:center}.bugmodal .row .grow{flex:1;text-align:right}.bugbtn{margin-bottom:.4rem}h2 .badge{margin-left:.5rem;font-size:.7rem;font-weight:700;border-radius:999px;padding:.1rem .55rem;background:#4a2a14;color:#ffbe7a;vertical-align:middle;letter-spacing:.03em}.admintable.bugtable td.wrap{white-space:normal;max-width:420px}.admintable.bugtable td.nowrap{white-space:nowrap;color:var(--muted)}.admintable.bugtable td.row input{width:9rem}.admintable.bugtable .ua{max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.6}.admintable.bugtable tr.donebug{opacity:.55}.linkbtn{background:none;border:none;padding:0;color:var(--accent);cursor:pointer;text-decoration:underline}.admintabs{display:flex;gap:.3rem;flex-wrap:wrap;margin:0 0 1rem;border-bottom:1px solid var(--border);padding-bottom:.5rem;position:sticky;top:0;background:var(--bg);z-index:5}.admintabs button{background:var(--bg2);border:1px solid var(--border);border-radius:999px;padding:.4rem .9rem;font-weight:600;display:inline-flex;align-items:center;gap:.4rem}.admintabs button:hover{background:var(--bg3)}.admintabs button.active{background:var(--accent);border-color:var(--accent);color:#1d1a14}.admintabs .badge{background:#4a2a14;color:#ffbe7a;border-radius:999px;padding:0 .45rem;font-size:.72rem;font-weight:800}.admintabs button.active .badge{background:#1d1a14;color:var(--accent)}.admintabs+h2{margin-top:0}@media (max-width: 860px){.admintabs{position:static}.admintabs button{padding:.35rem .6rem;font-size:.85rem}}.grantform{margin:.6rem 0 1.2rem;flex-wrap:wrap}.grantform select,.grantform input{width:auto}@media (max-width: 860px){.fb-item{grid-template-columns:3.2rem 1fr}.fb-item .vote{grid-column:1 / -1;flex-direction:row;justify-content:flex-end}}body.cb{--red: #D55E00;--red-soft: #3a2616;--blue: #0072B2;--blue-soft: #10283a;--neutral: #D9D9D9;--neutral-soft: #2a2a2a;--shared: #CC79A7;--shared-soft: #3a2233;--good: #56B4E9;--bad: #E69F00}body.cb .team-red{color:#f08a4b}body.cb .team-blue{color:#56b4e9}body.cb .tile.hidden.c-red{background:#f6c9a8}body.cb .tile.hidden.c-blue{background:#a9d3f0}body.cb .tile.hidden.c-neutral{background:#ededed;border-color:#9a9a9a}body.cb .tile.hidden.c-shared{background:#ebc6dd}body.cb .tile.hidden.c-red .word{color:#7a3000}body.cb .tile.hidden.c-blue .word{color:#00406a}body.cb .tile.hidden.c-neutral .word{color:#3a3a3a}body.cb .tile.hidden.c-shared .word{color:#6b2a52}body.cb .tile.revealed.c-neutral{color:#222}body.cb .scout-badge.c-neutral{background:#8a8a8a}body.cb .tile.c-red .word:before{content:"▲ "}body.cb .tile.c-blue .word:before{content:"● "}body.cb .tile.c-neutral .word:before{content:"○ "}body.cb .tile.c-assassin .word:before{content:"☠ "}body.cb .tile.c-shared .word:before{content:"◆ "}body.cb .tile.hidden.c-assassin:after,body.cb .tile.hidden.c-shared:after{content:none}body.cb .scout-badge.c-red:before{content:"▲ "}body.cb .scout-badge.c-blue:before{content:"● "}body.cb .scout-badge.c-neutral:before{content:"○ "}body.cb .scout-badge.c-assassin:before{content:"☠ "}body.cb .scout-badge.c-shared:before{content:"◆ "}body.cb .legend .sw{width:16px;height:16px;font-size:11px;line-height:15px;text-align:center;color:#fff}body.cb .legend .sw.c-red:after{content:"▲"}body.cb .legend .sw.c-blue:after{content:"●"}body.cb .legend .sw.c-neutral:after{content:"○";color:#222}body.cb .legend .sw.c-assassin:after{content:"☠"}body.cb .legend .sw.c-shared:after{content:"◆"}body.cb .rules .sw{width:16px;height:16px;font-size:11px;line-height:15px;text-align:center;color:#fff}body.cb .rules .sw.c-red:after{content:"▲"}body.cb .rules .sw.c-blue:after{content:"●"}body.cb .rules .sw.c-neutral:after{content:"○";color:#222}body.cb .rules .sw.c-assassin:after{content:"☠"}body.cb .rules .sw.c-shared:after{content:"◆"}body.cb .gamebar .score>.team-red:before{content:"▲ "}body.cb .gamebar .score>.team-blue:before{content:"● "}body.cb .teamstrip.team-red:before{content:"▲";color:#f08a4b;margin-right:.2rem}body.cb .teamstrip.team-blue:after{content:"●";color:#56b4e9;margin-left:.2rem}body.cb .log .entry.team-red:before{content:"▲ ";color:#f08a4b}body.cb .log .entry.team-blue:before{content:"● ";color:#56b4e9}body.cb .cluehistory tr.team-red .round:before{content:"▲ ";color:#f08a4b}body.cb .cluehistory tr.team-blue .round:before{content:"● ";color:#56b4e9}body.cb .status.team-red:before{content:"▲ ";color:#f08a4b}body.cb .status.team-blue:before{content:"● ";color:#56b4e9}body.cb .team-box.team-red h3:before{content:"▲ "}body.cb .team-box.team-blue h3:before{content:"● "}body.cb .cluehistory .hit,body.cb .ok,body.cb .fb-item .score b.pos,body.cb .jokerbar .charges{color:var(--good)}body.cb .cluehistory .miss,body.cb .bad,body.cb .fb-item .score b.neg{color:var(--bad)}body.cb .fb-item .vote button.up:not(:disabled){color:var(--good)}body.cb .fb-item .vote button.down:not(:disabled){color:var(--bad)}body.cb .history tr.won td:first-child{border-left-color:var(--good)}body.cb .tile .actions button.select:not(:disabled){background:#0072b233;color:#00406a}body.cb .tile.hidden.turncoat{box-shadow:0 0 0 3px var(--good) inset}body.cb .tile.hidden.hitman{border-color:var(--bad)!important}body.cb-pattern .tile.hidden.c-red{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M12 5 L18 16 L6 16 Z' fill='rgba(0,0,0,0.17)'/%3E%3C/svg%3E");background-size:24px 24px}body.cb-pattern .tile.revealed.c-red{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M12 5 L18 16 L6 16 Z' fill='rgba(255,255,255,0.3)'/%3E%3C/svg%3E");background-size:24px 24px}body.cb-pattern .legend .sw.c-red,body.cb-pattern .rules .sw.c-red,body.cb-pattern .scout-badge.c-red{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M12 5 L18 16 L6 16 Z' fill='rgba(255,255,255,0.3)'/%3E%3C/svg%3E");background-size:10px 10px}body.cb-pattern .tile.hidden.c-blue{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Ccircle cx='12' cy='12' r='4.5' fill='rgba(0,0,0,0.17)'/%3E%3C/svg%3E");background-size:24px 24px}body.cb-pattern .tile.revealed.c-blue{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Ccircle cx='12' cy='12' r='4.5' fill='rgba(255,255,255,0.3)'/%3E%3C/svg%3E");background-size:24px 24px}body.cb-pattern .legend .sw.c-blue,body.cb-pattern .rules .sw.c-blue,body.cb-pattern .scout-badge.c-blue{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Ccircle cx='12' cy='12' r='4.5' fill='rgba(255,255,255,0.3)'/%3E%3C/svg%3E");background-size:10px 10px}body.cb-pattern .tile.hidden.c-neutral{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Ccircle cx='12' cy='12' r='5' fill='none' stroke='rgba(0,0,0,0.17)' stroke-width='2'/%3E%3C/svg%3E");background-size:24px 24px}body.cb-pattern .tile.revealed.c-neutral{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Ccircle cx='12' cy='12' r='5' fill='none' stroke='rgba(0,0,0,0.17)' stroke-width='2'/%3E%3C/svg%3E");background-size:24px 24px}body.cb-pattern .legend .sw.c-neutral,body.cb-pattern .rules .sw.c-neutral,body.cb-pattern .scout-badge.c-neutral{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Ccircle cx='12' cy='12' r='5' fill='none' stroke='rgba(0,0,0,0.17)' stroke-width='2'/%3E%3C/svg%3E");background-size:10px 10px}body.cb-pattern .tile.hidden.c-assassin{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M7 7 L17 17 M17 7 L7 17' stroke='rgba(255,255,255,0.3)' stroke-width='2.6' stroke-linecap='round'/%3E%3C/svg%3E");background-size:24px 24px}body.cb-pattern .tile.revealed.c-assassin{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M7 7 L17 17 M17 7 L7 17' stroke='rgba(255,255,255,0.3)' stroke-width='2.6' stroke-linecap='round'/%3E%3C/svg%3E");background-size:24px 24px}body.cb-pattern .legend .sw.c-assassin,body.cb-pattern .rules .sw.c-assassin,body.cb-pattern .scout-badge.c-assassin{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M7 7 L17 17 M17 7 L7 17' stroke='rgba(255,255,255,0.3)' stroke-width='2.6' stroke-linecap='round'/%3E%3C/svg%3E");background-size:10px 10px}body.cb-pattern .tile.hidden.c-shared{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M12 5 L19 12 L12 19 L5 12 Z' fill='rgba(0,0,0,0.17)'/%3E%3C/svg%3E");background-size:24px 24px}body.cb-pattern .tile.revealed.c-shared{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M12 5 L19 12 L12 19 L5 12 Z' fill='rgba(255,255,255,0.3)'/%3E%3C/svg%3E");background-size:24px 24px}body.cb-pattern .legend .sw.c-shared,body.cb-pattern .rules .sw.c-shared,body.cb-pattern .scout-badge.c-shared{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M12 5 L19 12 L12 19 L5 12 Z' fill='rgba(255,255,255,0.3)'/%3E%3C/svg%3E");background-size:10px 10px}body.cb-pattern .tile.hidden:not(.c-unknown):not(.c-assassin) .word{background:#ffffffd1;border-radius:4px;padding:0 .3em}body.cb-pattern .tile.hidden.c-assassin .word,body.cb-pattern .tile.revealed:not(.c-neutral) .word{background:#00000061;border-radius:4px;padding:0 .3em}body.cb-pattern .tile.revealed.c-neutral .word{background:#ffffffb3;border-radius:4px;padding:0 .3em}.cbbtn sup,.wordscale sup{font-size:.6rem;margin-left:1px}.wordscale{font-weight:700}.cbpick{display:grid;gap:.4rem;max-width:640px}.cbopt{background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:.5rem .7rem;align-items:flex-start}.cbopt.active{border-color:var(--accent)}.playarea{display:flex;gap:.8rem}.boardwrap{flex:1;min-width:0}@media (max-width: 860px){.playarea{flex-direction:column}.playarea .drawcol{width:100%}}@media (min-width: 861px){.game{max-width:none;height:100vh;height:100dvh;display:flex;flex-direction:column;padding:.5rem .8rem .6rem;overflow:hidden}.game>*{flex:none}.game>.layout{flex:1 1 auto;min-height:0;grid-template-columns:minmax(0,1fr) clamp(260px,21vw,380px);align-items:stretch}.game .status{margin-bottom:.5rem}.game .endbanner{padding:.5rem 1rem;margin-bottom:.5rem}.game .endbanner h2{font-size:1.5rem;margin-bottom:.2rem}.layout main{display:flex;flex-direction:column;min-height:0}.layout main>*{flex:none}.layout main>.playarea{flex:1 1 auto;min-height:0}.layout aside{min-height:0;overflow-y:auto;padding-right:.2rem}.layout aside .log{max-height:none;flex:1 1 180px;min-height:80px}.layout aside .teamchat{flex:0 0 auto;position:sticky;bottom:0;z-index:2;box-shadow:0 -8px 16px -8px #000a}.layout aside .teamchat .chatlist{max-height:150px}.playarea .drawcol{flex:0 0 auto;width:clamp(320px,50%,1100px);justify-content:center}.playarea .drawcol .exbar{max-width:none}.playarea .drawing{--fit-height: 1;flex:1 1 auto;min-height:0;width:100%;max-width:none;margin:0;display:flex;flex-direction:column;justify-content:center}.playarea .drawing canvas{width:auto;max-width:100%;align-self:center}.boardwrap{container-type:size;min-height:0}.boardwrap .board{height:100%;gap:clamp(.3rem,.6vw,.7rem)}.boardwrap .board .tile{aspect-ratio:auto;min-height:0;font-size:var(--tile-font, clamp(.6rem, min(calc(100cqw / var(--n) / 7), calc(100cqh / var(--n) / 3.1)), 3.2rem));border-radius:clamp(6px,.6vw,12px)}.boardwrap .board{--badge-size: max(1.35rem, calc(var(--mark-size) * .78))}.boardwrap .board .tile.has-actions{padding-bottom:calc(.3rem + var(--act-h))}.boardwrap .board .tile .actions button{padding:0;height:var(--act-h);font-size:calc(var(--act-h) * .6)}.game .cluebanner{margin-top:.5rem;padding:.45rem 1rem}.game .cluebanner .word,.game .cluebanner .count{font-size:clamp(1.4rem,3.2vh,2.4rem)}}@property --mark-size{syntax: "<length>"; inherits: true; initial-value: 26px;}@property --act-h{syntax: "<length>"; inherits: true; initial-value: 21px;}@property --pad-v{syntax: "<length>"; inherits: true; initial-value: 28px;}.marks{gap:3px;max-width:80%}.marks .avatar{width:var(--mark-size, 26px)!important;height:var(--mark-size, 26px)!important;font-size:calc(var(--mark-size, 26px) * .62)!important;box-shadow:0 1px 3px #0006;background:var(--bg3)}.marks span.me .avatar{outline:2px solid var(--accent);outline-offset:1px}@media (min-width: 861px){.boardwrap .board{--mark-size: clamp(24px, calc(100cqh / var(--n) / 3.4), 46px);--act-h: clamp(1.3rem, 2.2cqh, 2.2rem);--pad-v: max(calc(var(--mark-size) + 2px), calc(.3rem + var(--act-h)))}}@media (max-width: 860px){.board{--mark-size: 20px}.tile.has-marks{padding-top:.15rem}.tile.has-marks .word{font-size:1em}.marks{top:auto;bottom:3px;left:3px;right:auto;max-width:48%;flex-wrap:nowrap;gap:0;justify-content:flex-start;pointer-events:none;z-index:1}.marks span+span{margin-left:-7px}.tile.has-marks .actions button.mark{color:transparent}}@media (min-width: 861px){.boardwrap .board .tile,.boardwrap .board .tile.has-actions{container-type:size;padding-top:var(--pad-v);padding-bottom:var(--pad-v)}.boardwrap .board .tile .word{font-size:calc(var(--word-font, min(1em, 120cqh)) * var(--word-scale, 1));line-height:1}}@media (min-width: 861px){.marks{top:3px;right:4px;left:4px;max-width:none}}.admintable .userlink{padding:0;color:var(--fg);font-weight:600;text-align:left}.admintable .userlink:hover{color:var(--accent);text-decoration:underline}.admintable button.member{cursor:pointer;border:none;font:inherit;color:inherit}.admintable button.member:hover{background:#313647}.admintable td.ips{white-space:nowrap;font-size:.8rem;line-height:1.5}.accesslog .filters{margin:.4rem 0 .6rem;flex-wrap:wrap}.accesslog .filters input:not([type=checkbox]){width:16rem}.admintable td.warn{color:var(--bad, #ff8080);font-weight:600}.hostmenu{position:relative}.hostmenu-pop{position:absolute;right:0;top:calc(100% + .4rem);z-index:20;display:flex;flex-direction:column;gap:.3rem;min-width:220px;padding:.6rem;box-shadow:0 8px 24px #0008}.hostmenu-pop button{justify-content:flex-start;width:100%}.admintable td.roomactions{display:flex;gap:.4rem;align-items:center}.admintable td.roomactions select{width:auto;max-width:14rem}.moddialog{max-width:440px;display:flex;flex-direction:column;gap:.3rem}.moddialog .row{margin-top:.5rem}.admintable td.lockcell{white-space:normal;max-width:220px}.admintable .locked{color:#ff9b9b;font-weight:600}.admintable td.ipcell{white-space:nowrap}select.assign{width:auto;padding:.15rem .35rem;font-size:.8rem}.hostmenu-pop{min-width:300px}.hostmenu-pop .assignrow{display:flex;width:100%;gap:.4rem}.hostmenu-pop .assignrow .grow{flex:1}.hostmenu>button sup{font-size:.6rem;margin-left:1px}.teamsbar{display:flex;gap:.6rem;align-items:stretch;margin-bottom:.5rem}.teampanel{flex:1 1 0;min-width:0;border:2px solid var(--border);border-radius:var(--radius);padding:.35rem .6rem .45rem;background:var(--bg2)}.teampanel.team-red{border-color:color-mix(in srgb,var(--red) 55%,transparent);background:color-mix(in srgb,var(--red) 10%,var(--bg2))}.teampanel.team-blue{border-color:color-mix(in srgb,var(--blue) 55%,transparent);background:color-mix(in srgb,var(--blue) 10%,var(--bg2))}.teampanel.mine.team-red{border-color:var(--red);border-width:3px;box-shadow:0 0 0 1px var(--red),0 0 14px color-mix(in srgb,var(--red) 45%,transparent)}.teampanel.mine.team-blue{border-color:var(--blue);border-width:3px;box-shadow:0 0 0 1px var(--blue),0 0 14px color-mix(in srgb,var(--blue) 45%,transparent)}.tp-head{display:flex;align-items:baseline;gap:.6rem;margin-bottom:.3rem;flex-wrap:wrap}.tp-name{font-weight:800;text-transform:uppercase;letter-spacing:.06em;font-size:.95rem}.team-red .tp-name,.team-red .tp-score{color:#ff8a8a}.team-blue .tp-name,.team-blue .tp-score{color:#8fbaff}body.cb .team-red .tp-name,body.cb .team-red .tp-score{color:#f08a4b}body.cb .team-blue .tp-name,body.cb .team-blue .tp-score{color:#56b4e9}.tp-score{font-weight:800;font-size:1.25rem;font-variant-numeric:tabular-nums}.tp-mine{font-size:.7rem;font-weight:800;letter-spacing:.08em;padding:.1rem .5rem;border-radius:999px;color:#fff}.team-red .tp-mine{background:var(--red)}.team-blue .tp-mine{background:var(--blue)}.tp-turn{font-size:.7rem;font-weight:700;padding:.1rem .5rem;border-radius:999px;background:var(--accent);color:#1a1508;margin-left:auto}.tp-members{display:flex;flex-wrap:wrap;gap:.3rem}.tp-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.15rem .55rem .15rem .2rem;border-radius:999px;background:var(--bg3);border:1px solid var(--border);font-size:.95rem;font-weight:600;color:var(--fg);max-width:100%}.tp-chip:hover{background:#313647}.tp-chip.spymaster{border-color:var(--accent)}.tp-chip.offline{opacity:.45}.tp-chip.me{outline:2px solid var(--fg);outline-offset:1px}.tp-player{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:11rem}.tp-role{font-size:.85rem}.tp-you{font-size:.65rem;font-weight:800;text-transform:uppercase;background:var(--fg);color:var(--bg);border-radius:4px;padding:0 .3rem}.tp-spectators{align-self:center;color:var(--muted);font-size:.9rem;white-space:nowrap}.youbadge{display:inline-flex;align-items:center;gap:.4rem;border-radius:999px;padding:.2rem .8rem .2rem .25rem;font-weight:600;border:none;color:#fff}.youbadge.side-red{background:var(--red)}.youbadge.side-blue{background:var(--blue)}.youbadge.side-spectator{background:var(--bg3);color:var(--fg)}.youbadge b{font-weight:800}@media (max-width: 860px){.teamsbar{gap:.35rem}.teampanel{padding:.25rem .4rem .35rem}.tp-name{font-size:.75rem}.tp-score{font-size:1rem}.tp-chip{font-size:.75rem;padding:.1rem .4rem .1rem .15rem}.tp-player{max-width:6rem}.tp-mine,.tp-turn{font-size:.6rem}.youbadge span{display:none}.tools-right{flex-wrap:wrap;justify-content:flex-end;min-width:0;row-gap:.3rem}}.marks span .avatar{outline:3px solid var(--border);outline-offset:0}.marks span.team-red .avatar{outline-color:var(--red)}.marks span.team-blue .avatar{outline-color:var(--blue)}.marks span.me .avatar{box-shadow:0 0 0 5px var(--accent),0 1px 3px #0006}.wordpackform{display:flex;flex-direction:column;gap:.6rem;max-width:40rem}.wordpackform textarea{font-family:inherit}.scannertrap{display:flex;flex-direction:column;gap:.6rem;max-width:44rem;margin-bottom:1rem}.scannertrap textarea{font-family:ui-monospace,monospace;font-size:.85rem}.scannertrap input[type=number]{max-width:8rem}button.link.danger-link{color:#ff8080}.modal.restoring{max-width:30rem;text-align:center}.watchbar{position:fixed;left:50%;bottom:12px;transform:translate(-50%);z-index:60;display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;justify-content:center;background:#1c2a44;border:1px solid var(--blue);color:#cfe0ff;border-radius:999px;padding:.35rem .5rem .35rem 1rem;font-size:.85rem;box-shadow:0 4px 18px #0008;max-width:calc(100vw - 32px)}.watchbar button{padding:.2rem .7rem}.roomactions a.button{white-space:nowrap;background:var(--bg3);border:1px solid var(--border);padding:.4rem .7rem;color:inherit;text-decoration:none}.teamchat{padding:.5rem .8rem;font-size:.85rem}.teamchat .chathead{display:flex;align-items:center;gap:.4rem;width:100%;background:none;border:none;padding:.1rem 0;text-align:left;color:var(--fg);font-weight:600}.teamchat .chathead .muted{margin-left:auto}.teamchat .chathead .badge{background:var(--accent);color:#1a1508;border-radius:999px;padding:0 .45rem;font-size:.75rem}.teamchat .chatlist{max-height:220px;overflow-y:auto;margin:.4rem 0;display:flex;flex-direction:column;gap:.2rem}.teamchat .msg{padding:.15rem 0 .15rem .5rem;border-left:3px solid var(--border);overflow-wrap:anywhere;color:var(--fg)}.teamchat .msg.ch-red{border-left-color:var(--red)}.teamchat .msg.ch-blue{border-left-color:var(--blue)}.teamchat .msg.mine b{color:var(--accent)}.teamchat .meta{color:var(--muted);font-size:.75rem}.teamchat .chan{border:1px solid var(--border);border-radius:4px;padding:0 .25rem}.teamchat .chan.cross{border-color:var(--accent);color:var(--accent)}.teamchat .msg.ch-cross{background:color-mix(in srgb,var(--accent) 8%,transparent)}.teamchat .chatscope{display:flex;gap:.3rem;margin-bottom:.35rem}.teamchat .chatscope button{flex:1;min-width:0;padding:.2rem .4rem;font-size:.78rem;background:var(--bg3);border:1px solid var(--border);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.teamchat .chatscope button.on{color:var(--fg);border-color:var(--fg);font-weight:600}.teamchat .chatscope button.on.cross{color:var(--accent);border-color:var(--accent)}.teamchat .chatform{display:flex;gap:.4rem}.teamchat .chatform input{flex:1;min-width:0;padding:.35rem .5rem}.teamchat .chatform button{padding:.35rem .7rem}@media (max-width: 860px){.teamchat .chatlist{max-height:160px}}.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin-bottom:1rem}.gallery figure{margin:0;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.gallery figure.g-hit{border-color:#2a9d5c}.gallery canvas{display:block;width:100%;height:auto;aspect-ratio:4 / 3;background:#fbf8f1}.gallery figcaption{display:flex;flex-direction:column;gap:.15rem;padding:.45rem .6rem;font-size:.85rem}.gallery figcaption .word{text-transform:uppercase;letter-spacing:.04em;font-size:.95rem}@media (max-width: 860px){.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}.gallery .zoom{display:block;width:100%;padding:0;border:none;border-radius:0;background:none;cursor:zoom-in}.gallery .zoom:active{transform:none}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:#000c;display:grid;place-items:center;padding:1rem;cursor:zoom-out}.lightbox figure{margin:0;width:min(92vw,calc((100vh - 9rem) * 4 / 3),1200px);background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;cursor:default}.lightbox canvas{display:block;width:100%;height:auto;aspect-ratio:4 / 3;background:#fbf8f1}.lightbox figcaption{display:flex;gap:.8rem;align-items:baseline;flex-wrap:wrap;padding:.6rem .9rem}.lightbox figcaption .word{text-transform:uppercase;letter-spacing:.04em;font-size:1.1rem}.lightbox .nav,.lightbox .close{position:fixed;background:#0008;border:1px solid #fff3;color:#fff;font-size:1.6rem;line-height:1;padding:.4rem .8rem;border-radius:999px}.lightbox .nav.prev{left:1rem;top:50%;transform:translateY(-50%)}.lightbox .nav.next{right:1rem;top:50%;transform:translateY(-50%)}.lightbox .close{top:1rem;right:1rem;font-size:1.1rem}.hint.randomtarget{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}.hint.randomtarget button{margin-left:auto}.game:not(.phase-ended) .teamsbar{margin-bottom:0}.game:not(.phase-ended) .teamsbar .teampanel{margin-bottom:.5rem}.game:not(.phase-ended) .teamsbar .teampanel.active{--tc: var(--red);border:3px solid var(--tc);border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;margin-bottom:-3px;padding-bottom:calc(.45rem + 3px);position:relative;z-index:1;background:color-mix(in srgb,var(--tc) 16%,var(--bg2));box-shadow:none}.game:not(.phase-ended) .teamsbar .teampanel.active.team-blue{--tc: var(--blue)}.game:not(.phase-ended) .status{--tc: var(--red);border:3px solid var(--tc);background:color-mix(in srgb,var(--tc) 16%,var(--bg2))}.game:not(.phase-ended) .status.team-blue{--tc: var(--blue)}.game:not(.phase-ended) .status.team-red{border-top-left-radius:0}.game:not(.phase-ended) .status.team-blue{border-top-right-radius:0}.status.myturn{font-size:1.05rem;color:var(--fg)}.status.myturn b{color:var(--accent)}.game:not(.phase-ended) .status.myturn{box-shadow:0 0 16px color-mix(in srgb,var(--tc) 55%,transparent);animation:myturnpulse 2.4s ease-in-out infinite}@keyframes myturnpulse{50%{box-shadow:0 0 4px color-mix(in srgb,var(--tc) 30%,transparent)}}@media (prefers-reduced-motion: reduce){.game:not(.phase-ended) .status.myturn{animation:none}}.invites{display:flex;flex-direction:column;gap:.6rem;margin-bottom:1rem}.invites form.row{display:flex;gap:.4rem;flex-wrap:wrap}.invites form.row input{flex:1 1 10rem;min-width:0}.invites tr.muted td{opacity:.6}.legend .chaostabs{margin-left:auto;display:inline-flex;gap:.25rem;flex-wrap:wrap}.legend .chaostabs button{padding:.15rem .55rem;font-size:.75rem;line-height:1.2;border-radius:6px}.legend .chaostabs button.active{outline:2px solid var(--accent);background:var(--bg2)}.legend .chaostabs button.team-red{border-color:var(--red)}.legend .chaostabs button.team-blue{border-color:var(--blue)}.tile.anim-neutralized{z-index:3;animation:neutralglow 1.4s ease-out}.tile.anim-neutralized:after{content:"🛡️";position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;pointer-events:none;font-size:clamp(1.6rem,calc(var(--tile-font, 1.4rem) * 2.2),4rem);filter:drop-shadow(0 2px 8px #000a);animation:shieldin 1.4s cubic-bezier(.2,1.3,.4,1) forwards}@keyframes neutralglow{0%{box-shadow:0 0 #5b93e6}30%{box-shadow:0 0 0 5px #5b93e6,0 0 30px #5b93e6cc}to{box-shadow:0 0 #5b93e600}}@keyframes shieldin{0%{transform:scale(2.4);opacity:0}30%{transform:scale(.9);opacity:1}45%{transform:scale(1.05)}75%{opacity:1}to{transform:scale(1);opacity:0}}.chaos-fx.fx-randomizer .spin{animation:dicethrow 1.3s cubic-bezier(.3,.7,.4,1) both}@keyframes dicethrow{0%{transform:translate(-40vw,-10vh) rotate(-360deg) scale(.6);opacity:0}40%{transform:translate(0) rotate(0) scale(1.1);opacity:1}55%{transform:translateY(-6vh) rotate(90deg) scale(1)}70%{transform:translate(0) rotate(180deg) scale(1)}82%{transform:translateY(-2vh) rotate(200deg)}to{transform:translate(0) rotate(180deg) scale(1);opacity:1}}.chaos-fx.fx-hitmanSet{background:radial-gradient(circle at center,#d6454533,#0000 62%)}.chaos-fx.fx-hitmanSet .spin{animation:crosshair 1.1s cubic-bezier(.2,.9,.3,1) both}.chaos-fx.fx-hitmanSet .label{color:#ff8080}@keyframes crosshair{0%{transform:scale(3.5);opacity:0}50%{transform:scale(.95);opacity:1}65%{transform:scale(1.08)}to{transform:scale(1);opacity:1}}.steal-fx{position:fixed;top:38%;left:0;z-index:36;pointer-events:none;white-space:nowrap;font-weight:900;font-size:clamp(1.1rem,3.4vh,1.8rem);letter-spacing:.03em;color:#fff;padding:.35rem 1rem;border-radius:999px;background:#000c;border:2px solid var(--accent);box-shadow:0 6px 24px #000a;animation:stealdash 1.6s cubic-bezier(.5,0,.5,1) forwards}.steal-fx.team-red{border-color:var(--red)}.steal-fx.team-blue{border-color:var(--blue)}.steal-fx .ninja{display:inline-block;animation:ninjahop .32s ease-in-out infinite alternate}@keyframes stealdash{0%{transform:translate(-110%);opacity:0}15%{opacity:1}40%,60%{transform:translate(calc(50vw - 50%))}85%{opacity:1}to{transform:translate(110vw);opacity:0}}@keyframes ninjahop{0%{transform:translateY(0) rotate(-8deg)}to{transform:translateY(-5px) rotate(8deg)}}.victory-fx{position:fixed;top:0;right:0;bottom:0;left:0;z-index:37;display:grid;place-items:center;pointer-events:none;animation:chaosfade 2.8s ease forwards}.victory-fx .text{font-size:clamp(2.4rem,11vw,7rem);font-weight:900;text-transform:uppercase;letter-spacing:.04em;text-align:center;padding:0 1rem;color:#fff;text-shadow:0 4px 28px #000,0 0 4px #000;animation:victoryin .9s cubic-bezier(.2,1.4,.4,1) both}.victory-fx.win-red .text{color:#ff8a8a}.victory-fx.win-blue .text{color:#8fbaff}.victory-fx.win-draw .text{color:#d6b4ff}@keyframes victoryin{0%{transform:scale(.2) rotate(-8deg);opacity:0}60%{transform:scale(1.12) rotate(2deg);opacity:1}to{transform:scale(1) rotate(0);opacity:1}}@media (prefers-reduced-motion: reduce){.tile.anim-neutralized,.tile.anim-neutralized:after,.chaos-fx.fx-randomizer .spin,.chaos-fx.fx-hitmanSet .spin,.steal-fx,.steal-fx .ninja,.victory-fx .text{animation:none}.steal-fx{left:50%;transform:translate(-50%)}.tile.anim-neutralized:after{opacity:0}}.marks span.small .avatar{width:calc(var(--mark-size, 26px) * .5)!important;height:calc(var(--mark-size, 26px) * .5)!important;font-size:calc(var(--mark-size, 26px) * .31)!important;outline-width:2px;box-shadow:none}@media (max-width: 860px){.marks span.small+span,.marks span+span.small{margin-left:-4px}}.cluebanner .pausebtn{margin-left:auto;padding:.55rem 1.2rem;font-size:1.1rem;border-radius:10px;background:var(--accent);color:#1a1508;border:none;font-weight:700}label.check.indent{margin-left:1.6rem}.pause-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:45;background:var(--bg);padding:.6rem .8rem;display:flex}.pauseroom{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;gap:.5rem}.pauseroom header{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}.pauseroom header h2{margin:0;font-size:1.4rem}.pauseroom header .how{flex:1;min-width:12rem}.pausestatus{text-align:center;font-size:1.25rem;padding:.5rem;border-radius:8px;background:var(--bg3)}.pausestatus.stage-find{background:color-mix(in srgb,var(--accent) 22%,var(--bg3))}.pausestatus.blocked{background:color-mix(in srgb,#d64545 30%,var(--bg3))}.pausestatus .target{color:var(--accent);text-transform:uppercase;letter-spacing:.04em;font-size:1.5rem}.pausebody{flex:1;min-height:0;display:flex;gap:.8rem}.pausegrid{flex:1;min-width:0;display:grid;gap:.45rem;container-type:size;position:relative}.pauseintro{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;text-align:center;padding:1rem;background:color-mix(in srgb,var(--bg) 70%,transparent);border-radius:var(--radius);animation:pauseintro 4s ease-out both}.pauseintro .icon{font-size:min(22cqmin,9rem);line-height:1}.pauseintro b{font-size:min(11cqw,4.5rem);color:var(--accent);letter-spacing:.02em}.pauseintro .how{max-width:40rem;font-size:1.15rem;color:var(--fg)}@keyframes pauseintro{0%{opacity:0;transform:scale(.85)}8%{opacity:1;transform:scale(1.04)}13%{transform:scale(1)}92%{opacity:1}to{opacity:.2}}.pausegrid .pcell{display:grid;place-items:center;border-radius:8px;background:var(--tile);color:var(--tile-fg);font-weight:700;text-transform:uppercase;letter-spacing:.02em;padding:.2rem;border:3px solid transparent;overflow:hidden;line-height:1.1;font-size:clamp(.7rem,min(calc(100cqw / var(--n) / 7),calc(100cqh / var(--n) / 2.6)),2.6rem)}.pausegrid .pcell span{overflow-wrap:anywhere}.pausegrid .pcell:disabled{opacity:1;cursor:default}.pausegrid.blocked .pcell{opacity:.55}.pausegrid .pcell:hover,.pauseopts .pcell:hover{background:var(--tile);color:var(--tile-fg)}.pausegrid .pcell.hit:hover{background:color-mix(in srgb,#2a9d5c 25%,var(--tile))}.pausegrid.stage-find .pcell:not(:disabled):hover{border-color:var(--accent)}.pausegrid .pcell.blank{background:var(--bg3)}.pausegrid .pcell.gap{background:var(--bg3);color:var(--accent);border:3px dashed var(--accent);font-size:2rem}@keyframes pauseshake{20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}.pausegrid.reset{animation:pauseshake .35s ease-in-out}.pausegrid .pcell.hit{border-color:#2a9d5c;box-shadow:0 0 0 4px #2a9d5c;background:color-mix(in srgb,#2a9d5c 25%,var(--tile))}.pauseopts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem}.pauseopts .pcell{display:grid;place-items:center;min-height:3.2rem;border-radius:8px;background:var(--tile);color:var(--tile-fg);font-weight:700;text-transform:uppercase;font-size:1.15rem;border:3px solid transparent;padding:.3rem;overflow-wrap:anywhere}.pauseopts .pcell:disabled{opacity:1;cursor:default}.pauseopts .pcell:not(:disabled):hover{border-color:var(--accent)}.pauseopts.blocked .pcell{opacity:.55}.pauseopts .pcell.answer,.pausegrid .pcell.answer{border-color:#2a9d5c;box-shadow:0 0 0 4px #2a9d5c;animation:pop .4s ease-out}.pausegrid.stage-show .pcell{box-shadow:inset 0 0 0 3px #f2c94c55}.pauseside{flex:0 0 clamp(200px,20vw,300px);display:flex;flex-direction:column;gap:.5rem;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:.7rem .9rem;overflow-y:auto}.pauseside h3{margin:0}.pauseboard{margin:0;padding-left:1.4rem;display:flex;flex-direction:column;gap:.3rem}.pauseboard li{display:flex;align-items:center;gap:.4rem}.pauseboard li.me{font-weight:700}.pauseboard .pteam{display:inline-flex;border-radius:50%;box-shadow:0 0 0 2px transparent}.pauseboard .pteam-red{box-shadow:0 0 0 2px var(--red)}.pauseboard .pteam-blue{box-shadow:0 0 0 2px var(--blue)}.pauseboard .pts{margin-left:auto}.pauseboard li.pending{opacity:.6}.pauseboard li.first .pts{color:#2a9d5c}.pauseboard.roundtimes .pts{font-variant-numeric:tabular-nums}.pauseside h3+.pauseboard+h3{margin-top:.4rem;padding-top:.5rem;border-top:1px solid var(--border)}.pausegrid.done .pcell:not(.answer){opacity:.45}.pausemain{align-self:center;font-size:1.15rem;padding:.25rem 1rem;border-radius:999px;background:var(--bg3);font-variant-numeric:tabular-nums}.pausemain.urgent{background:color-mix(in srgb,#d64545 40%,var(--bg3));animation:pulse 1s infinite}@media (max-width: 860px){.pausebody{flex-direction:column}.pauseopts{grid-template-columns:repeat(2,minmax(0,1fr))}.pauseopts .pcell{min-height:2.4rem;font-size:.95rem}.pauseside{flex:0 0 auto;max-height:30vh}.pauseroom header h2{font-size:1.15rem}}.hostmenu-pop .side-dot{display:inline-block;width:.6rem;height:.6rem;border-radius:50%;vertical-align:middle}.hostmenu-pop .side-dot.side-red{background:var(--red)}.hostmenu-pop .side-dot.side-blue{background:var(--blue)}.jokerbar .jcount{font-size:.75rem;font-weight:700;background:var(--bg3);border:1px solid var(--border);border-radius:999px;padding:0 .35rem;margin-left:.15rem}.settings .jokerrow{display:flex;align-items:flex-start;gap:.6rem}.settings .jokerrow label.check{flex:1;min-width:0;display:block;line-height:1.5}.settings .jokerrow label.check input{margin:0 .45rem 0 0;vertical-align:middle}.settings .jokerrow .jokercount{flex:0 0 auto;width:auto;padding:.15rem .3rem}.tourbadge{font-size:.8rem;padding:.15rem .55rem;border-radius:999px;background:var(--bg3);border:1px solid var(--accent);white-space:nowrap;margin-left:.5rem}.tourbadge .tr{color:var(--red);font-weight:700}.tourbadge .tb{color:var(--blue);font-weight:700}.tourbox{margin:.6rem 0;padding:.6rem .8rem;border-radius:var(--radius);background:var(--bg3);border:1px solid var(--border)}.tourbox h3{margin:0 0 .4rem;font-size:1.05rem;text-transform:none;letter-spacing:0}.tourbox.done{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 40%,transparent)}.tourbox.done h3{font-size:1.35rem;color:var(--accent)}.tourgames{display:flex;flex-wrap:wrap;gap:.4rem}.tourgames .tg{font-size:.8rem;padding:.1rem .5rem;border-radius:6px;border:1px solid var(--border)}.tourgames .tg.tg-red{border-color:var(--red)}.tourgames .tg.tg-blue{border-color:var(--blue)}@media (max-width: 860px){.tourbadge{font-size:.7rem;padding:.1rem .4rem;margin-left:.3rem}}.history .tourtag{display:inline-block;margin-left:.4rem;font-size:.75rem;padding:0 .4rem;border-radius:6px;border:1px solid var(--accent);color:var(--accent);white-space:nowrap}.loginguard{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem .6rem;margin-top:.25rem;font-size:.8rem}.modal.endscreen{width:min(1100px,100%);text-align:left}.endscreen .es-title,.endscreen .es-title+p{text-align:center}.endscreen .es-title{margin:0 0 .2rem}.endscreen .es-title.es-red{color:var(--red)}.endscreen .es-title.es-blue{color:var(--blue)}.endscreen .es-teams{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin:.6rem 0}.endscreen .es-team{display:flex;flex-direction:column;gap:.25rem;padding:.5rem .7rem;border-radius:var(--radius);background:var(--bg2);border:1px solid var(--border);border-left:4px solid var(--border)}.endscreen .es-team.es-red{border-left-color:var(--red)}.endscreen .es-team.es-blue{border-left-color:var(--blue)}.endscreen .es-team.won{box-shadow:0 0 0 1px var(--accent)}.endscreen .es-team>b{text-align:left}.endscreen .es-player{display:flex;align-items:center;gap:.4rem;text-align:left;color:var(--fg);justify-content:flex-start}.endscreen .es-board{margin:.6rem 0 .2rem;font-size:clamp(.55rem,1.3vw,.95rem)}.endscreen .es-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:.8rem;margin-top:.6rem;align-items:start}.endscreen .log{max-height:320px;overflow-y:auto}.history .esbtn{white-space:nowrap;padding:.15rem .5rem}@media (max-width: 700px){.endscreen .es-teams,.endscreen .es-cols{grid-template-columns:1fr}}.drawing.bucket canvas{cursor:cell}.drawword{text-align:center;font-size:clamp(1.1rem,2.6vh,1.6rem);padding:.3rem .8rem;border-radius:var(--radius);background:var(--bg2);border:1px solid var(--accent)}.drawword b{color:var(--accent);text-transform:uppercase;letter-spacing:.05em;font-size:1.25em}.playarea.drawer-focus .drawcol{flex:1 1 auto;width:100%}.playarea.drawer-focus .exbar{max-width:none}@media (min-width: 861px){.playarea.drawer-focus .drawing{flex-direction:row;align-items:center;justify-content:center;gap:12px}.playarea.drawer-focus .drawing canvas{align-self:center;flex:none}.playarea.drawer-focus .drawing .tools{flex:0 0 auto;width:176px;margin-top:0;flex-direction:column;align-items:stretch}.playarea.drawer-focus .drawing .tools .swatches{display:grid;grid-template-columns:repeat(4,28px);justify-content:center;gap:.45rem}.playarea.drawer-focus .drawing .tools .row{display:grid;grid-template-columns:1fr 1fr;gap:.35rem}.playarea.drawer-focus .drawing .tools .row button{padding:.4rem .3rem;white-space:nowrap;font-size:.85rem}}
