@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(./inter-latin-400-normal-C38fXH4l.woff2) format("woff2"),url(./inter-latin-400-normal-CyCys3Eg.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(./inter-latin-ext-400-normal-C1nco2VV.woff2) format("woff2"),url(./inter-latin-ext-400-normal-77YHD8bZ.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(./inter-latin-600-normal-LgqL8muc.woff2) format("woff2"),url(./inter-latin-600-normal-CiBQ2DWP.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(./inter-latin-ext-600-normal-D2bJ5OIk.woff2) format("woff2"),url(./inter-latin-ext-600-normal-CIVaiw4L.woff) format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(./space-grotesk-latin-500-normal-lFbtlQH6.woff2) format("woff2"),url(./space-grotesk-latin-500-normal-CNSSEhBt.woff) format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(./space-grotesk-latin-ext-500-normal-DUe3BAxM.woff2) format("woff2"),url(./space-grotesk-latin-ext-500-normal-3dgZTiw9.woff) format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(./space-grotesk-latin-700-normal-RjhwGPKo.woff2) format("woff2"),url(./space-grotesk-latin-700-normal-CwsQ-cCU.woff) format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(./space-grotesk-latin-ext-700-normal-BQnZhY3m.woff2) format("woff2"),url(./space-grotesk-latin-ext-700-normal-HVCqSBdx.woff) format("woff")}:root{--bg: #0b1020;--bg-2: #141d32;--bg-3: #1b2640;--teal: #25d9d0;--violet: #9670ff;--red: #ff5268;--text: #f3f6ff;--muted: #8290a8;--teal-soft: rgba(37, 217, 208, .14);--violet-soft: rgba(150, 112, 255, .16);--red-soft: rgba(255, 82, 104, .14);--line: rgba(150, 112, 255, .24);--line-strong: rgba(150, 112, 255, .45);--font-display: "Space Grotesk", "Inter", system-ui, sans-serif;--font-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 24px;--s-6: 32px;--s-7: 48px;--r-sm: 10px;--r-md: 14px;--r-lg: 20px;--glow-teal: 0 0 0 1px rgba(37, 217, 208, .5), 0 0 24px rgba(37, 217, 208, .28);--glow-violet: 0 0 0 1px rgba(150, 112, 255, .45), 0 0 28px rgba(150, 112, 255, .22);--shadow: 0 18px 40px rgba(0, 0, 0, .45);--ease-out: cubic-bezier(.2, .8, .2, 1);--t-fast: .14s;--t-med: .32s}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}body{overflow:hidden;background:radial-gradient(60% 50% at 15% 10%,rgba(150,112,255,.16),transparent 70%),radial-gradient(55% 45% at 90% 95%,rgba(37,217,208,.12),transparent 70%),var(--bg)}body:before{content:"";position:fixed;inset:0;pointer-events:none;background-image:linear-gradient(rgba(150,112,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(150,112,255,.05) 1px,transparent 1px);background-size:44px 44px;mask-image:radial-gradient(ellipse at center,#000 30%,transparent 80%)}#app{position:relative;height:100dvh;width:100%}h1,h2,h3{font-family:var(--font-display);margin:0;letter-spacing:.01em}p{margin:0}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--teal);outline-offset:3px}.muted{color:var(--muted)}.panel{background:linear-gradient(180deg,#1b2640eb,#141d32f2);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow),inset 0 1px #ffffff0a}.scene{position:absolute;inset:0;display:flex;flex-direction:column;padding:max(var(--s-4),env(safe-area-inset-top)) var(--s-4) max(var(--s-4),env(safe-area-inset-bottom));overflow-y:auto}.scene--enter{animation:scene-in var(--t-med) var(--ease-out)}@keyframes scene-in{0%{opacity:0;transform:translateY(8px)}}.scene--loading{align-items:center;justify-content:center;gap:var(--s-6)}.loader{width:140px;height:3px;border-radius:3px;background:var(--bg-3);overflow:hidden;position:relative}.loader:after{content:"";position:absolute;inset:0;width:40%;background:linear-gradient(90deg,transparent,var(--teal),transparent);animation:loader 1.1s ease-in-out infinite}@keyframes loader{0%{transform:translate(-100%)}to{transform:translate(250%)}}.reduce-motion *,.reduce-motion *:before,.reduce-motion *:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}.logo{display:flex;flex-direction:column;align-items:center;gap:var(--s-3)}.logo__mark{width:112px;height:112px;filter:drop-shadow(0 0 18px rgba(150,112,255,.45))}.logo--sm .logo__mark{width:40px;height:40px}.logo__beam{stroke-dasharray:120;stroke-dashoffset:120;animation:beam .9s var(--ease-out) forwards}.logo__beam--b{animation-delay:.22s}.logo__lens,.logo__pupil{transform-origin:60px 60px;transform:scale(0);animation:lens .5s var(--ease-out) .7s forwards}.logo__pupil{animation:lens .5s var(--ease-out) .82s forwards,pulse 2.6s ease-in-out 1.4s infinite}@keyframes beam{to{stroke-dashoffset:0}}@keyframes lens{to{transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}.logo__word{font-family:var(--font-display);font-weight:700;font-size:clamp(2rem,7vw,3.4rem);letter-spacing:.08em;text-transform:uppercase;line-height:1;text-align:center;background:linear-gradient(90deg,var(--text) 0%,#cfc2ff 50%,var(--text) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;animation:word-in .7s var(--ease-out) .3s both}.logo--sm .logo__word{font-size:1.1rem}@keyframes word-in{0%{opacity:0;letter-spacing:.3em}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);min-height:48px;padding:0 var(--s-5);border-radius:var(--r-md);border:1px solid var(--line);background:var(--bg-2);font-weight:600;letter-spacing:.02em;cursor:pointer;user-select:none;transition:transform var(--t-fast) var(--ease-out),box-shadow var(--t-fast),background var(--t-fast),border-color var(--t-fast)}.btn:hover:not(:disabled){border-color:var(--line-strong);box-shadow:var(--glow-violet)}.btn:active:not(:disabled){transform:translateY(1px) scale(.99)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn__icon{width:20px;height:20px;flex:none}.btn--primary{background:linear-gradient(135deg,#2be3d9,#1fb5c9);border-color:transparent;color:#04121a}.btn--primary:hover:not(:disabled){box-shadow:var(--glow-teal)}.btn--ghost{background:transparent}.btn--danger{background:var(--red-soft);border-color:#ff526880;color:#ffd9de}.btn--xl{min-height:60px;font-size:1.15rem;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.12em}.btn--sm{min-height:36px;padding:0 var(--s-4);font-size:.9rem}.toasts{position:fixed;left:50%;bottom:max(var(--s-5),env(safe-area-inset-bottom));transform:translate(-50%);display:flex;flex-direction:column;gap:var(--s-2);z-index:60;width:min(420px,calc(100% - 32px));pointer-events:none}.toast{padding:var(--s-3) var(--s-4);border-radius:var(--r-md);background:var(--bg-3);border:1px solid var(--line-strong);box-shadow:var(--shadow);font-size:.95rem;animation:toast-in var(--t-med) var(--ease-out)}.toast--error{border-color:#ff526899}.toast--out{opacity:0;transform:translateY(6px);transition:all .28s}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}}.modal{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:var(--s-4);background:#050812b8;backdrop-filter:blur(4px);animation:fade-in .18s ease-out}.modal--out{opacity:0;transition:opacity .18s}.modal__dialog{width:min(460px,100%);max-height:calc(100dvh - 32px);display:flex;flex-direction:column;animation:pop-in .26s var(--ease-out)}.modal__dialog--wide{width:min(640px,100%)}.modal__head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);padding:var(--s-5) var(--s-5) var(--s-3)}.modal__title{font-size:1.3rem}.modal__close{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:transparent;font-size:1.4rem;line-height:1;cursor:pointer}.modal__body{padding:0 var(--s-5) var(--s-5);overflow-y:auto}.modal__actions{display:flex;gap:var(--s-3);justify-content:flex-end;padding:var(--s-4) var(--s-5) var(--s-5);border-top:1px solid var(--line);flex-wrap:wrap}.modal__actions .btn{flex:1 1 140px}@keyframes fade-in{0%{opacity:0}}@keyframes pop-in{0%{opacity:0;transform:translateY(12px) scale(.97)}}.settings{display:flex;flex-direction:column;gap:var(--s-2)}.setting{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);min-height:56px;padding:var(--s-2) 0;border-bottom:1px solid rgba(150,112,255,.12)}.setting:last-child{border-bottom:none}.switch{position:relative;width:52px;height:30px;flex:none}.switch__input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer;z-index:1}.switch__track{position:absolute;inset:0;border-radius:99px;background:var(--bg-3);border:1px solid var(--line);transition:background var(--t-fast)}.switch__track:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:var(--muted);transition:transform var(--t-fast) var(--ease-out),background var(--t-fast)}.switch__input:checked+.switch__track{background:var(--teal-soft);border-color:#25d9d099}.switch__input:checked+.switch__track:after{transform:translate(22px);background:var(--teal)}.switch__input:focus-visible+.switch__track{outline:2px solid var(--teal);outline-offset:3px}.segmented{display:inline-flex;padding:3px;border-radius:var(--r-md);background:var(--bg);border:1px solid var(--line)}.segmented__opt{min-height:38px;padding:0 var(--s-4);border:0;border-radius:10px;background:transparent;cursor:pointer;color:var(--muted);font-weight:600}.segmented__opt.is-active{background:var(--violet-soft);color:var(--text);box-shadow:inset 0 0 0 1px var(--line-strong)}.howto{display:flex;flex-direction:column;gap:var(--s-4)}.howto__card{min-height:180px;padding:var(--s-5);border-radius:var(--r-md);background:var(--bg);border:1px solid var(--line);border-left:3px solid var(--teal)}.howto__card--in{animation:card-in .28s var(--ease-out)}@keyframes card-in{0%{opacity:0;transform:translate(14px)}}.howto__counter{font-family:var(--font-display);color:var(--teal);font-size:.85rem;letter-spacing:.15em;margin-bottom:var(--s-2)}.howto__title{font-size:1.25rem;margin-bottom:var(--s-3)}.howto__text{color:#c9d1e4}.howto__dots{display:flex;justify-content:center;gap:var(--s-2)}.howto__dot{width:10px;height:10px;padding:0;border-radius:50%;border:0;background:var(--bg-3);cursor:pointer}.howto__dot.is-active{background:var(--teal);box-shadow:0 0 10px var(--teal)}.conn{position:fixed;right:var(--s-3);bottom:max(var(--s-3),env(safe-area-inset-bottom));display:inline-flex;align-items:center;gap:var(--s-2);padding:6px 12px;border-radius:99px;background:#141d32d9;border:1px solid var(--line);font-size:.78rem;color:var(--muted);z-index:40}.conn__dot{width:8px;height:8px;border-radius:50%;background:var(--muted)}.conn[data-status=online] .conn__dot{background:var(--teal);box-shadow:0 0 8px var(--teal)}.conn[data-status=online] .conn__label{display:none}.conn[data-status=online]{padding:8px}.conn[data-status=connecting] .conn__dot{background:var(--violet);animation:pulse 1s infinite}.conn[data-status=offline] .conn__dot,.conn[data-status=replaced] .conn__dot{background:var(--red)}.conn[data-status=online]{display:none}.scene--menu{align-items:center;gap:var(--s-5)}.menu__top{width:100%;max-width:1100px;display:flex;justify-content:flex-end}.menu__hero{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s-4);min-height:0}.menu__tagline{color:var(--muted);text-align:center;max-width:34ch;animation:fade-in .7s .9s both}.menu__actions{width:min(420px,100%);display:flex;flex-direction:column;gap:var(--s-3);animation:scene-in .6s var(--ease-out) .5s both}.menu__row{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-3)}.menu__row .btn{padding:0 var(--s-3);font-size:.95rem}.menu__foot{font-size:.85rem;letter-spacing:.04em;padding-bottom:var(--s-5)}.profile{display:flex;align-items:center;gap:var(--s-3);padding:6px 14px 6px 6px;border-radius:99px;background:#141d32cc;border:1px solid var(--line);max-width:100%}.profile__avatar{width:36px;height:36px;border-radius:50%;object-fit:cover;flex:none}.profile__avatar--initial{display:grid;place-items:center;background:var(--violet-soft);color:#d9ceff;font-family:var(--font-display);font-weight:700}.profile__meta{display:flex;flex-wrap:wrap;align-items:center;column-gap:var(--s-2);min-width:0}.profile__name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile__tag{font-size:.72rem;padding:2px 8px;border-radius:99px;background:var(--bg-3);color:var(--muted)}.profile__login{flex-basis:100%;padding:0;border:0;background:none;color:var(--teal);font-size:.8rem;text-align:left;cursor:pointer}.profile__login:hover{text-decoration:underline}@media(max-height:640px){.logo__mark{width:76px;height:76px}.scene--menu{gap:var(--s-3)}}@media(min-width:900px){.menu__actions{width:440px}}.scene--menu>*{flex-shrink:0}.scene--menu>.menu__hero{flex:1 0 auto}@media(max-width:560px){.scene--menu{gap:var(--s-4)}.menu__top{justify-content:center}.menu__hero .logo__mark{width:84px;height:84px}}.small{font-size:.85rem}.join{display:flex;flex-direction:column;gap:var(--s-4)}.code-input,.text-input{width:100%;min-height:56px;padding:0 var(--s-4);border-radius:var(--r-md);border:1px solid var(--line-strong);background:var(--bg);color:var(--text);font:inherit;outline:none;transition:border-color var(--t-fast),box-shadow var(--t-fast)}.code-input{font-family:var(--font-display);font-size:1.8rem;font-weight:700;letter-spacing:.45em;text-align:center;text-transform:uppercase;padding-left:.45em}.code-input::placeholder{color:#8290a859}.code-input:focus,.text-input:focus{border-color:var(--teal);box-shadow:var(--glow-teal)}.chip{display:inline-flex;align-items:center;min-height:32px;padding:0 var(--s-3);border-radius:99px;background:var(--violet-soft);border:1px solid var(--line);font-size:.9rem;font-weight:600}.invite{display:flex;flex-direction:column;align-items:center;gap:var(--s-3);text-align:center}.invite__code{font-family:var(--font-display);font-size:2rem;font-weight:700;letter-spacing:.3em;color:var(--teal);text-shadow:0 0 18px rgba(37,217,208,.45)}.profile__name--edit,.pcard__name--edit{padding:0;border:0;background:none;cursor:pointer;text-decoration:underline dotted rgba(130,144,168,.6);text-underline-offset:4px}.scene--lobby{align-items:center}.lobby__body{width:min(1100px,100%);min-height:100%;display:flex;flex-direction:column;gap:var(--s-4)}.lobby__top{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--s-3)}.lobby__top .logo{flex-direction:row;gap:var(--s-2)}.lobby__top .logo__word{animation:none}.lobby__top>:first-child{justify-self:start}.lobby__count{justify-self:end;font-family:var(--font-display);color:var(--muted);letter-spacing:.1em}.lobby__grid{flex:1;display:grid;grid-template-columns:minmax(280px,380px) 1fr;gap:var(--s-4);align-items:start}.lobby__side{display:flex;flex-direction:column;gap:var(--s-4)}.lobby__code,.lobby__settings,.lobby__players{padding:var(--s-5)}.lobby__code{display:flex;flex-direction:column;gap:var(--s-3)}.lobby__label,.lobby__h{font-family:var(--font-display);font-size:.8rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.lobby__h{margin-bottom:var(--s-3)}.lobby__codeval{position:relative;display:flex;justify-content:center;gap:6px;padding:var(--s-3) var(--s-2);border-radius:var(--r-md);border:1px dashed rgba(37,217,208,.45);background:var(--teal-soft);cursor:pointer;transition:box-shadow var(--t-fast)}.lobby__codeval:hover{box-shadow:var(--glow-teal)}.lobby__codeval>span{width:1.3em;font-family:var(--font-display);font-size:clamp(1.6rem,6vw,2.2rem);font-weight:700;color:var(--teal);text-shadow:0 0 14px rgba(37,217,208,.5);text-align:center}.lobby__copyicon{position:absolute;top:6px;right:8px;width:16px;height:16px;color:var(--muted)}.lobby__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-2)}.pcard{display:flex;align-items:center;gap:var(--s-3);min-height:64px;padding:var(--s-2) var(--s-3);border-radius:var(--r-md);background:var(--bg);border:1px solid rgba(150,112,255,.16);transition:border-color var(--t-med),box-shadow var(--t-med)}.pcard--me{border-color:var(--line-strong)}.pcard--ready{border-color:#25d9d080;box-shadow:inset 3px 0 0 var(--teal)}.pcard--offline{opacity:.55}.pcard--empty{border-style:dashed;background:transparent;animation:none}.pcard__avatar{width:44px;height:44px;border-radius:50%;object-fit:cover;flex:none}.pcard__avatar--initial{display:grid;place-items:center;background:var(--violet-soft);color:#d9ceff;font-family:var(--font-display);font-weight:700;font-size:1.1rem}.pcard__avatar--empty{border:1px dashed var(--line)}.pcard__meta{flex:1;min-width:0;display:flex;flex-direction:column}.pcard__line{display:flex;align-items:center;gap:var(--s-2);min-width:0}.pcard__name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pcard__host{display:inline-flex;color:#ffd166}.pcard__host svg{width:16px;height:16px}.pcard__you{font-size:.7rem;padding:1px 8px;border-radius:99px;background:var(--violet-soft);color:#d9ceff}.pcard__badge{font-size:.8rem;color:var(--muted)}.pcard__badge--ready{color:var(--teal)}.pcard__badge--offline{color:var(--red)}.pcard__check{width:26px;height:26px;color:var(--teal);filter:drop-shadow(0 0 6px rgba(37,217,208,.6))}.lobby__actions{position:sticky;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);padding:var(--s-4) 0 calc(var(--s-6) + env(safe-area-inset-bottom));background:linear-gradient(0deg,var(--bg) 70%,transparent)}.lobby__status{color:var(--muted)}.lobby__status.is-go{color:var(--teal)}.lobby__buttons{display:flex;gap:var(--s-3)}.lobby__buttons .btn{min-width:170px}@media(max-width:899px){.lobby__grid{grid-template-columns:1fr}.lobby__players{order:-1}.lobby__side{display:contents}.lobby__code{order:-2}.lobby__code,.lobby__settings,.lobby__players{padding:var(--s-4)}.lobby__actions{flex-direction:column;align-items:stretch;text-align:center;gap:var(--s-2)}.lobby__buttons{flex-direction:column}.lobby__buttons .btn{width:100%}.lobby__top .logo__word{display:none}.pcard{min-height:56px}}.profile__edit{padding:0;border:0;background:none;border-radius:50%;cursor:pointer}.profile__edit:hover .profile__avatar{box-shadow:var(--glow-teal)}.pcard__look{margin-left:auto;padding:2px 10px;border-radius:99px;border:1px solid rgba(37,217,208,.5);background:var(--teal-soft);color:var(--teal);font:inherit;font-size:.75rem;cursor:pointer;white-space:nowrap}.lobby__body--enter .lobby__code{animation:pop-in .42s var(--ease-out)}.pcard.is-new,.rrow.is-new{animation:card-in .28s var(--ease-out)}.scene--game{align-items:center;gap:var(--s-4)}.scene--game>*{width:min(1180px,100%)}.gbar{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4)}.gbar__title{display:flex;flex-direction:column}.gbar__scenario{font-family:var(--font-display);font-size:.78rem;letter-spacing:.22em;color:var(--violet)}.gbar__phase{font-family:var(--font-display);font-size:1.3rem;font-weight:700}.timer{display:flex;flex-direction:column;align-items:flex-end;gap:6px;min-width:120px}.timer__label{font-family:var(--font-display);font-size:1.6rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--teal)}.timer__track{width:120px;height:4px;border-radius:4px;background:var(--bg-3);overflow:hidden}.timer__bar{display:block;height:100%;background:var(--teal);transform-origin:left;transition:transform .2s linear}.timer--urgent .timer__label{color:var(--red);animation:pulse 1s infinite}.timer--urgent .timer__bar{background:var(--red)}.chip--red{background:var(--red-soft);border-color:#ff526873;color:#ffd0d6}.notice{padding:var(--s-3) var(--s-4);border-radius:var(--r-md);border:1px dashed var(--line-strong);color:var(--muted);font-size:.9rem}.ecards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:var(--s-3)}.ecards--hand{grid-template-columns:repeat(auto-fit,minmax(260px,340px));justify-content:center}.ecards--stack{grid-template-columns:1fr}.ecard{position:relative;display:flex;flex-direction:column;gap:var(--s-2);padding:var(--s-4);border-radius:var(--r-md);background:linear-gradient(160deg,#18233b,#111a2e);border:1px solid rgba(37,217,208,.28);box-shadow:inset 0 1px #ffffff0a;animation:card-deal .52s var(--ease-out) both}.ecard--secret{border-color:#9670ff73;background:linear-gradient(160deg,#1d1a3d,#121a30)}@keyframes card-deal{0%{opacity:0;transform:translateY(18px) rotateX(35deg) scale(.96)}}.ecard__head{display:flex;align-items:center;gap:var(--s-2);flex-wrap:wrap}.ecard__icon{width:18px;height:18px;color:var(--teal)}.ecard--secret .ecard__icon{color:var(--violet)}.ecard__type{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.ecard__stamp,.ecard__badge{margin-left:auto;padding:1px 8px;border-radius:4px;font-family:var(--font-display);font-size:.68rem;font-weight:700;letter-spacing:.16em;border:1px solid currentColor;transform:rotate(-3deg)}.ecard__stamp{color:var(--violet)}.ecard__badge+.ecard__badge{margin-left:0}.ecard__badge--fake{color:var(--red)}.ecard__badge--critical{color:#ffd166}.ecard__title{margin:0;font-family:var(--font-display);font-size:1.05rem}.ecard__text{color:#cdd5e8;font-size:.95rem}.intro{display:flex;flex-direction:column;gap:var(--s-4);padding-bottom:var(--s-6)}.intro__title{font-size:clamp(2.4rem,9vw,4.2rem);letter-spacing:.2em;text-align:center;color:var(--text);text-shadow:0 0 32px rgba(150,112,255,.6);animation:word-in .9s var(--ease-out) both}.intro__meta{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s-2)}.intro__text{max-width:70ch;margin:0 auto;font-size:1.1rem;line-height:1.7;min-height:5em}.intro__chars{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:var(--s-2)}.char{display:flex;flex-direction:column;padding:var(--s-3);border-radius:var(--r-md);background:var(--bg-2);border:1px solid var(--line)}.char--me{border-color:var(--teal);box-shadow:var(--glow-teal)}.char--npc{opacity:.6;border-style:dashed}.char__name{font-family:var(--font-display);font-weight:700}.char__player{color:var(--teal);font-size:.85rem}.char--npc .char__player{color:var(--muted)}.char__bio{color:var(--muted);font-size:.82rem}.role{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s-5)}.rolecard{position:relative;width:min(340px,86vw);aspect-ratio:3 / 4;perspective:1200px;transform-style:preserve-3d;transition:transform .9s var(--ease-out)}.rolecard.is-flipped{transform:rotateY(180deg)}.rolecard__face{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s-3);padding:var(--s-5);border-radius:var(--r-lg);backface-visibility:hidden;text-align:center}.rolecard__back{background:repeating-linear-gradient(45deg,#1a1f3c 0 12px,#161a33 12px 24px);border:1px solid var(--line-strong);box-shadow:var(--glow-violet)}.rolecard__q{font-family:var(--font-display);font-size:6rem;color:var(--violet);text-shadow:0 0 30px rgba(150,112,255,.8)}.rolecard__front{transform:rotateY(180deg);background:linear-gradient(170deg,#0f2b36,#0f1a2e);border:1px solid rgba(37,217,208,.6);box-shadow:var(--glow-teal)}.rolecard--saboteur .rolecard__front{background:linear-gradient(170deg,#3a1020,#170f22);border-color:#ff5268b3;box-shadow:0 0 0 1px #ff526899,0 0 40px #ff526859}.rolecard__label{font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}.rolecard__role{font-family:var(--font-display);font-size:clamp(1.8rem,7vw,2.4rem);letter-spacing:.08em;color:var(--teal)}.rolecard--saboteur .rolecard__role{color:var(--red)}.rolecard__goal{color:#d3daea}.rolecard__char{display:flex;flex-direction:column;margin-top:var(--s-3)}.rolecard__charname{font-family:var(--font-display);font-size:1.2rem;font-weight:700}.cover{max-width:560px;padding:var(--s-4) var(--s-5);border-color:#ff526873}.cover--inline{margin-top:var(--s-3);padding:var(--s-3);border-radius:var(--r-md);border:1px solid rgba(255,82,104,.45);background:var(--red-soft);font-size:.9rem}.evidence{display:flex;flex-direction:column;align-items:center;gap:var(--s-4);text-align:center;padding-bottom:var(--s-6)}.evidence .ecard{text-align:left}.evidence__title{font-size:1.6rem}.evidence__action{min-height:60px;display:grid;place-items:center}.ggrid{flex:1;min-height:0;display:grid;grid-template-columns:260px 1fr 320px;gap:var(--s-3)}.gcol{padding:var(--s-4);overflow-y:auto;display:flex;flex-direction:column;gap:var(--s-3)}.case__intro{color:#cdd5e8}.plist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-2)}.prow{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-2);border-radius:var(--r-sm);background:var(--bg);border:1px solid rgba(150,112,255,.14)}.prow--me{border-color:var(--line-strong)}.prow--offline,.prow--left{opacity:.5}.prow__avatar{width:36px;height:36px;border-radius:50%;flex:none;object-fit:cover}.prow__avatar--initial{display:grid;place-items:center;background:var(--violet-soft);font-family:var(--font-display);font-weight:700}.prow__meta{flex:1;min-width:0;display:flex;flex-direction:column}.prow__name{display:flex;align-items:center;gap:var(--s-2);font-weight:600}.prow__char{font-size:.8rem;color:var(--teal)}.prow__state{font-size:.72rem;color:var(--muted)}.prow__state--off{color:var(--red)}.gtabs{display:none}@media(max-width:899px){.ggrid{grid-template-columns:1fr}.ggrid>.gcol{display:none}.ggrid[data-tab=players]>.gcol--players,.ggrid[data-tab=case]>.gcol--case,.ggrid[data-tab=mine]>.gcol--mine{display:flex}.gtabs{position:sticky;bottom:0;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-1);padding:var(--s-2) 0 calc(var(--s-6) + env(safe-area-inset-bottom));background:var(--bg)}.gtabs__tab{min-height:48px;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--bg-2);color:var(--muted);font-weight:600;font-size:.85rem}.gtabs__tab.is-active{color:var(--text);border-color:var(--teal);background:var(--teal-soft)}.timer__track{width:80px}.timer{min-width:80px}}.vote{flex:1;display:flex;flex-direction:column;align-items:center;gap:var(--s-4);text-align:center;padding-bottom:var(--s-6)}.scene--voting:after{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 50%,rgba(255,82,104,.12));animation:pulse 2.4s ease-in-out infinite}.vote__title{font-size:clamp(1.8rem,6vw,2.6rem)}.vgrid{width:100%;display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:var(--s-3)}.vcard{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--s-1);padding:var(--s-4) var(--s-3);border-radius:var(--r-md);border:1px solid var(--line);background:var(--bg-2);cursor:pointer;transition:transform var(--t-fast),border-color var(--t-fast),box-shadow var(--t-fast)}.vcard:hover:not(:disabled){transform:translateY(-2px);border-color:var(--line-strong)}.vcard:disabled{cursor:default}.vcard--me,.vcard--left{opacity:.45}.vcard.is-picked{border-color:var(--red);box-shadow:0 0 0 1px var(--red),0 0 26px #ff526859}.vcard__avatar{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:var(--violet-soft);font-family:var(--font-display);font-weight:700;font-size:1.4rem}.vcard__name{font-weight:700}.vcard__char{font-size:.85rem;color:var(--teal)}.vcard__voted{font-size:.72rem;color:var(--muted)}.vote__footer{display:flex;flex-direction:column;align-items:center;gap:var(--s-3);min-height:100px}.vote__locked{font-weight:600;color:var(--red)}.results{display:flex;flex-direction:column;gap:var(--s-4)}.rbanner{display:flex;flex-direction:column;align-items:center;gap:var(--s-2);padding:var(--s-6) var(--s-4);border-radius:var(--r-lg);text-align:center;animation:pop-in .6s var(--ease-out)}.rbanner--investigators{background:radial-gradient(ellipse at top,rgba(37,217,208,.25),transparent 70%),var(--bg-2);border:1px solid rgba(37,217,208,.5)}.rbanner--saboteur{background:radial-gradient(ellipse at top,rgba(255,82,104,.25),transparent 70%),var(--bg-2);border:1px solid rgba(255,82,104,.5)}.rbanner__you{font-size:.85rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}.rbanner__title{font-size:clamp(1.8rem,7vw,3rem);letter-spacing:.06em;animation:word-in .9s var(--ease-out) .2s both}.rbanner--investigators .rbanner__title{color:var(--teal)}.rbanner--saboteur .rbanner__title{color:var(--red)}.rbanner__sab{display:flex;flex-direction:column;margin-top:var(--s-2)}.results__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-4)}.rsec{padding:var(--s-4) var(--s-5)}.rvotes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-2)}.rvote{display:grid;grid-template-columns:1fr auto;gap:2px var(--s-3);padding:var(--s-2) var(--s-3);border-radius:var(--r-sm);background:var(--bg)}.rvote--sab{box-shadow:inset 3px 0 0 var(--red)}.rvote__who{font-weight:600}.rvote__role{font-size:.72rem;font-weight:700;letter-spacing:.12em;justify-self:end}.rvote__role--investigator{color:var(--teal)}.rvote__role--saboteur{color:var(--red)}.rvote__arrow,.rvote__count{font-size:.85rem;color:var(--muted)}.rvote__count{justify-self:end}.rtimeline{list-style:none;margin:0 0 var(--s-4);padding:0;display:flex;flex-direction:column;gap:var(--s-2);border-left:2px solid var(--line)}.rtimeline li{display:flex;gap:var(--s-3);padding-left:var(--s-3)}.rtimeline time{font-family:var(--font-display);color:var(--teal);flex:none}.rsolution{color:#d3daea}.rhand+.rhand{margin-top:var(--s-4)}.rhand__who{margin:0 0 var(--s-2);font-family:var(--font-display)}@media(max-width:899px){.results__grid{grid-template-columns:1fr}.rsec{padding:var(--s-4)}}.scene--game,.scene--menu,.scene--browser,.scene--lobby{isolation:isolate}.scene--game:before,.scene--menu:before,.scene--browser:before{content:"";position:fixed;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(11,16,32,.55) 0%,rgba(11,16,32,.92) 55%,var(--bg) 100%),url(../images/cover-source.png) center top / cover no-repeat;filter:saturate(1.1)}.scene--table:before{background:radial-gradient(ellipse at 50% 55%,rgba(37,217,208,.08),transparent 60%),linear-gradient(180deg,rgba(11,16,32,.6) 0%,rgba(11,16,32,.95) 45%,var(--bg) 100%),url(../images/cover-source.png) center top / cover no-repeat}.form{display:flex;flex-direction:column;gap:var(--s-3)}.field{display:flex;flex-direction:column;gap:6px}.field[hidden]{display:none}.field__label{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.select{min-height:46px;padding:0 var(--s-3);border-radius:var(--r-sm);border:1px solid var(--line-strong);background:var(--bg);color:var(--text);font:inherit}.segmented--wide{display:flex;flex-wrap:wrap}.segmented--wide .segmented__opt{flex:1 1 auto}.reactions,.seatmenu{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:var(--s-2)}.answer__q{font-size:1.1rem;font-weight:600;margin-bottom:var(--s-3)}.answer__cards{display:flex;flex-direction:column;gap:var(--s-2)}.vote__confirm{font-family:var(--font-display);font-size:1.4rem;font-weight:700;color:var(--red)}.scene--browser{align-items:center}.browser{width:min(1000px,100%);display:grid;grid-template-columns:360px 1fr;gap:var(--s-4);align-items:start;margin-top:var(--s-4)}.browser__actions{display:flex;flex-direction:column;gap:var(--s-3)}.browser__list{padding:var(--s-4) var(--s-5);min-height:300px}.rlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-2)}.rlist__empty{padding:var(--s-6) 0;text-align:center}.rrow{display:grid;grid-template-columns:1fr 120px auto;align-items:center;gap:var(--s-3);padding:var(--s-3);border-radius:var(--r-md);background:var(--bg);border:1px solid rgba(150,112,255,.18)}.rrow__meta{display:flex;flex-direction:column;min-width:0}.rrow__host{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rrow__fill{display:flex;flex-direction:column;gap:4px}.rrow__count{font-family:var(--font-display);color:var(--teal)}.rrow__bar{height:4px;border-radius:4px;background:var(--bg-3);overflow:hidden}.rrow__bar>span{display:block;height:100%;background:var(--teal)}@media(max-width:899px){.browser{grid-template-columns:1fr}.rrow{grid-template-columns:1fr auto}.rrow__fill{display:none}}.scene--table{padding-bottom:0;overflow:hidden}.tablewrap{flex:1;min-height:0;display:grid;grid-template-columns:1fr 380px;gap:var(--s-4)}.arena{position:relative;min-height:0;--seat: 86px}.table{position:absolute;inset:9% 13%;border-radius:50%;background:radial-gradient(ellipse at 50% 40%,rgba(37,217,208,.22),rgba(37,217,208,.04) 55%,transparent 70%),radial-gradient(ellipse at center,#13213a,#0c1426 70%);border:1px solid rgba(37,217,208,.45);box-shadow:0 0 0 6px #25d9d00f,0 0 60px #25d9d02e,inset 0 0 50px #0009;display:grid;place-items:center}.table__glow{position:absolute;inset:18% 22%;border-radius:50%;border:1px solid rgba(37,217,208,.35);box-shadow:0 0 30px #25d9d040;animation:pulse 4s ease-in-out infinite;pointer-events:none}.table__center{position:relative;width:74%;height:74%;display:flex;flex-direction:column;justify-content:center;align-items:stretch;z-index:1}.table__crime{display:flex;flex-direction:column;align-items:center;text-align:center;font-size:.85rem}.table__crime strong{font-family:var(--font-display);color:var(--red);font-size:1.1rem}.ring{position:absolute;inset:0;pointer-events:none}.seat{pointer-events:auto;position:absolute;transform:translate(-50%,-50%);width:var(--seat);display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 4px;border:0;border-radius:var(--r-md);background:#0b1020b8;backdrop-filter:blur(4px);cursor:pointer;transition:transform var(--t-fast) var(--ease-out),box-shadow var(--t-fast);z-index:2}.seat:hover:not(:disabled){transform:translate(-50%,-54%)}.seat__avatar{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(160deg,#22305a,#151d36);border:2px solid var(--line-strong);font-family:var(--font-display);font-weight:700;font-size:1.15rem}.seat__name{max-width:100%;font-size:.8rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.seat__char{max-width:100%;font-size:.68rem;color:var(--teal);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.seat__badges{min-height:14px;font-size:.7rem;color:var(--violet);letter-spacing:1px}.seat__voted{color:var(--teal);font-weight:700}.seat--me .seat__avatar{border-color:var(--teal);box-shadow:var(--glow-teal)}.seat--off{opacity:.5}.seat--left{opacity:.25;cursor:default}.seat--trust .seat__avatar{border-color:#3ddc84}.seat--unsure .seat__avatar{border-color:#ffd166}.seat--suspect .seat__avatar{border-color:var(--red);box-shadow:0 0 14px #ff526880}.seat--votable .seat__avatar{animation:pulse 1.6s ease-in-out infinite}.seat--picked .seat__avatar{border-color:var(--red);background:var(--red-soft);box-shadow:0 0 20px #ff526899}.seat__bubble{position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%);width:max-content;max-width:180px;padding:6px 10px;border-radius:12px;background:#e9f1ff;color:#0b1020;font-size:.78rem;line-height:1.3;box-shadow:var(--shadow);pointer-events:none}.seat__bubble.is-in{animation:bubble-in .26s var(--ease-out)}.seat__bubble[hidden]{display:none}@keyframes bubble-in{0%{opacity:0;transform:translate(-50%) translateY(6px) scale(.92)}}.seat__bubble:after{content:"";position:absolute;top:100%;left:50%;margin-left:-6px;border:6px solid transparent;border-top-color:#e9f1ff}.chat{display:flex;flex-direction:column;min-height:0;height:100%;gap:var(--s-2)}.feed{flex:1;min-height:0;list-style:none;margin:0;padding:var(--s-2);overflow-y:auto;display:flex;flex-direction:column;gap:6px;mask-image:linear-gradient(180deg,transparent 0,#000 24px);scrollbar-width:thin}.feed__item{font-size:.88rem;line-height:1.4;animation:fade-in .2s;overflow-wrap:anywhere}.feed__who{margin-right:6px;color:var(--violet)}.feed__who.is-me{color:var(--teal)}.feed__item--react span,.feed__item--answer span{font-style:italic;color:#c7d0e6}.feed__item--suspect span,.feed__item--disagree span{color:#ffb3bd}.feed__item--trust span,.feed__item--agree span{color:#a6f0c6}.feed__item--board{padding:4px 8px;border-left:2px solid var(--teal);background:#25d9d012;border-radius:4px}.feed__item--question{padding:4px 8px;border-left:2px solid var(--violet);background:var(--violet-soft);border-radius:4px}.feed__item--system{color:var(--muted);font-size:.8rem;text-align:center}.feed__item--contradiction{color:#ffd0d6;background:var(--red-soft);border:1px solid rgba(255,82,104,.5);border-radius:6px;padding:6px 8px;text-align:left;font-weight:600}.chat__form{display:flex;gap:var(--s-2)}.chat__input{flex:1;min-width:0;min-height:44px;padding:0 var(--s-3);border-radius:99px;border:1px solid var(--line-strong);background:#0b1020d9;color:var(--text);font:inherit}.chat__input:focus{outline:none;border-color:var(--teal)}.chat__send{min-width:48px;padding:0;border-radius:50%}.side{min-height:0;display:flex;flex-direction:column;overflow:hidden}.stabs{display:flex;border-bottom:1px solid var(--line)}.stabs__tab{flex:1;min-height:46px;border:0;background:none;color:var(--muted);font-weight:600;cursor:pointer;border-bottom:2px solid transparent}.stabs__tab.is-active{color:var(--text);border-bottom-color:var(--teal)}.spanel{flex:1;min-height:0;overflow-y:auto;padding:var(--s-3);display:flex;flex-direction:column;gap:var(--s-3)}.spanel[hidden]{display:none}.spanel--chat{padding:var(--s-2)}.conflict{display:flex;flex-direction:column;gap:2px;padding:var(--s-2) var(--s-3);border-radius:var(--r-sm);background:var(--red-soft);border:1px solid rgba(255,82,104,.55);font-size:.85rem;animation:pop-in .26s var(--ease-out)}.conflict strong{color:var(--red);letter-spacing:.1em}.bitem{position:relative;display:flex;flex-direction:column;gap:4px}.bitem__by{font-size:.75rem;color:var(--muted)}.bitem--claim{padding:var(--s-2) var(--s-3);border-radius:var(--r-sm);background:var(--bg);border:1px solid rgba(150,112,255,.25);font-size:.9rem}.bitem--conflict .ecard,.bitem--conflict.bitem--claim{border-color:var(--red);box-shadow:0 0 0 1px var(--red),0 0 16px #ff52684d}.bitem--corrupted .ecard{opacity:.55;filter:grayscale(.7)}.rolebox{display:flex;flex-direction:column;gap:4px;padding:var(--s-3);border-radius:var(--r-md);border:1px solid var(--line-strong);background:var(--violet-soft)}.rolebox--town{border-color:#25d9d08c;background:var(--teal-soft)}.rolebox--evil{border-color:#ff526899;background:var(--red-soft)}.rolebox__name{font-family:var(--font-display);font-size:1.25rem}.rolebox__cover{font-weight:600;color:#ffd0d6}.intel ul,.intel__list{margin:0;padding-left:1.1em;display:flex;flex-direction:column;gap:4px;font-size:.9rem}.abilities{display:flex;flex-wrap:wrap;gap:var(--s-2)}.abilities .btn{flex:1 1 140px;min-height:42px;font-size:.9rem}.memory{list-style:none;margin:0;padding:0;display:grid;gap:2px;font-size:.85rem}.memory li{display:grid;grid-template-columns:96px 1fr;gap:var(--s-2);padding:4px 8px;border-radius:6px;background:var(--bg)}.memory time{font-family:var(--font-display);color:var(--muted);font-variant-numeric:tabular-nums}.memory__crime{outline:1px solid rgba(255,82,104,.6);background:var(--red-soft)!important}.memory--wide li{grid-template-columns:120px 1fr;font-size:.95rem;padding:6px 10px}.handcard{display:flex;flex-direction:column;gap:var(--s-2)}.actionbar{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:var(--s-3);padding:var(--s-3) 0 calc(var(--s-4) + env(safe-area-inset-bottom))}.actionbar .btn{min-width:150px}.actionbar__title{font-family:var(--font-display);font-size:1.2rem;color:var(--red)}.evidence__grid{width:100%;display:grid;grid-template-columns:minmax(280px,380px) 1fr;gap:var(--s-4);text-align:left}.memorybox{padding:var(--s-4);display:flex;flex-direction:column;gap:var(--s-2)}.evidence__hand{display:flex;flex-direction:column;gap:var(--s-2)}.rolecard--town .rolecard__front{background:linear-gradient(170deg,#0f2b36,#0f1a2e)}.rolecard--evil .rolecard__front{background:linear-gradient(170deg,#3a1020,#170f22);border-color:#ff5268b3;box-shadow:0 0 0 1px #ff526899,0 0 40px #ff526859}.rolecard--evil .rolecard__role{color:var(--red)}.rolecard--neutral .rolecard__front{background:linear-gradient(170deg,#2a2340,#141a30);border-color:#ffd16699}.rolecard--neutral .rolecard__role{color:#ffd166}.cover--evil{border-color:#ff526873}.cover--town{border-color:#25d9d073}.rbanner--town{background:radial-gradient(ellipse at top,rgba(37,217,208,.25),transparent 70%),var(--bg-2);border:1px solid rgba(37,217,208,.5)}.rbanner--town .rbanner__title{color:var(--teal)}.rbanner--evil{background:radial-gradient(ellipse at top,rgba(255,82,104,.25),transparent 70%),var(--bg-2);border:1px solid rgba(255,82,104,.5)}.rbanner--evil .rbanner__title{color:var(--red)}.rvote--evil{box-shadow:inset 3px 0 0 var(--red)}.rvote--town{box-shadow:inset 3px 0 0 var(--teal)}.rvote--neutral{box-shadow:inset 3px 0 #ffd166}.rvote--won .rvote__who:after{content:" ★";color:#ffd166}.rvote__role--town{color:var(--teal)}.rvote__role--evil{color:var(--red)}.rvote__role--neutral{color:#ffd166}.truth{overflow-x:auto;margin-top:var(--s-2)}.truth__table{border-collapse:collapse;font-size:.8rem;min-width:100%}.truth__table th,.truth__table td{padding:6px 8px;border:1px solid rgba(150,112,255,.15);white-space:nowrap;text-align:left}.truth__table thead th{font-family:var(--font-display);color:var(--muted)}.truth__table .is-crime{background:#ff526814}.truth__table .is-scene{background:var(--red-soft);color:#ffd0d6;font-weight:700}.truth__table tr.is-sab th{color:var(--red)}@media(max-width:979px){.scene--table{overflow-y:auto}.tablewrap{grid-template-columns:1fr;grid-template-rows:auto 1fr}.arena{height:min(46vh,380px);--seat: 64px}.table{inset:14% 16%}.seat__avatar{width:36px;height:36px;font-size:.95rem}.seat__char{display:none}.seat__bubble{max-width:130px;font-size:.72rem}.side{min-height:340px}.actionbar{position:sticky;bottom:0;background:linear-gradient(0deg,var(--bg) 75%,transparent)}.actionbar .btn{min-width:0;flex:1 1 30%}.evidence__grid{grid-template-columns:1fr}}@media(max-width:979px)and (max-height:700px){.arena{height:300px}}.stage{position:absolute;inset:0;border-radius:var(--r-lg);overflow:hidden}.stage--3d{background:var(--bg);border:1px solid var(--line);box-shadow:inset 0 0 80px #0009}.stage--3d canvas{display:block;width:100%!important;height:100%!important}.stage__labels{position:absolute;inset:0;cursor:grab;touch-action:none}.stage__labels:active{cursor:grabbing}.stage__reset{position:absolute;top:var(--s-3);right:var(--s-3);z-index:3;width:40px;height:40px;border-radius:50%;border:1px solid var(--line-strong);background:#0b1020b3;color:var(--text);font-size:1.2rem;cursor:pointer}.tag{position:relative;display:flex;flex-direction:column;align-items:center;padding:3px 10px 4px;border-radius:10px;border:1px solid rgba(150,112,255,.35);background:#0b1020b8;backdrop-filter:blur(3px);color:var(--text);font:inherit;cursor:pointer;pointer-events:auto;white-space:nowrap;transition:border-color var(--t-fast),box-shadow var(--t-fast)}.tag:hover{border-color:var(--teal)}.tag__name{font-size:.78rem;font-weight:700}.tag__char{font-size:.66rem;color:var(--teal)}.tag .seat__badges{min-height:0;font-size:.65rem}.tag--me{border-color:var(--teal)}.tag--off{opacity:.5}.tag--trust{border-color:#3ddc84}.tag--unsure{border-color:#ffd166}.tag--suspect{border-color:var(--red);box-shadow:0 0 12px #ff526873}.tag--picked{border-color:var(--red);background:#ff526840}.tag--votable{animation:pulse 1.6s ease-in-out infinite}.arena__hint{position:absolute;left:50%;bottom:var(--s-3);transform:translate(-50%);z-index:2;margin:0;padding:6px 14px;border-radius:99px;background:#0b1020b3;color:var(--muted);font-size:.8rem;pointer-events:none;white-space:nowrap}.arena__hint[hidden],.chatdock[hidden],.focus[hidden]{display:none}.chatdock{position:absolute;left:var(--s-3);bottom:var(--s-3);z-index:2;width:min(380px,42%);height:min(46%,380px);padding:var(--s-2);border-radius:var(--r-md);background:#0b1020b3;border:1px solid var(--line);backdrop-filter:blur(6px)}.focus{position:absolute;right:var(--s-3);bottom:var(--s-3);z-index:3;width:min(420px,calc(100% - 24px));max-height:calc(100% - 24px);overflow-y:auto;display:flex;flex-direction:column;gap:var(--s-3);padding:var(--s-4);border-radius:var(--r-lg);background:#10172ceb;border:1px solid var(--line-strong);box-shadow:var(--shadow),var(--glow-violet);backdrop-filter:blur(8px);animation:pop-in .22s var(--ease-out)}.focus__head{display:flex;align-items:center;gap:var(--s-3)}.focus__avatar{width:44px;height:44px;flex:none;display:grid;place-items:center;border-radius:50%;background:var(--violet-soft);border:2px solid var(--line-strong);font-family:var(--font-display);font-weight:700}.focus__who{flex:1;display:flex;flex-direction:column;min-width:0}.focus__who strong{font-family:var(--font-display);font-size:1.15rem}.focus__char{color:var(--teal);font-size:.85rem}.focus__close{width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--text);font-size:1.3rem;cursor:pointer}.focus__label{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.focus__section{display:flex;flex-direction:column;gap:var(--s-2)}.focus__where{display:grid;grid-template-columns:1fr 1fr auto;gap:var(--s-2);align-items:center}.focus__where>.small{grid-column:1 / -1}.focus__row{display:flex;flex-wrap:wrap;gap:var(--s-2)}.focus__row .btn{flex:1 1 auto}.focus__marks{display:flex;align-items:center;gap:var(--s-2)}.focus__marks .focus__label{flex:1}.markbtn{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--bg);font-size:1rem;cursor:pointer}.markbtn.is-active{border-color:var(--teal);box-shadow:var(--glow-teal)}.focus__vote{width:100%}.select--sm{min-height:38px;font-size:.85rem;padding:0 var(--s-2);min-width:0}@media(max-width:979px){.arena{border-radius:var(--r-md)}.arena__hint{font-size:.7rem;white-space:normal;width:max-content;max-width:90%;text-align:center}.focus{left:var(--s-2);right:var(--s-2);bottom:var(--s-2);width:auto;padding:var(--s-3);max-height:85%}.focus__where{grid-template-columns:1fr 1fr}.tag__char{display:none}}.scene--table{padding:0;overflow:hidden}.scene--table:before{display:none}.scene--table>.tablewrap{position:absolute;inset:0;display:block;width:auto;max-width:none}.scene--table .arena{position:absolute;inset:0;height:auto;border-radius:0}.scene--table .stage,.scene--table .stage--3d{border-radius:0;border:0}.scene--table>.gbar{position:absolute;top:0;left:0;right:0;z-index:5;width:auto;max-width:none;padding:max(var(--s-3),env(safe-area-inset-top)) var(--s-5) var(--s-5);background:linear-gradient(180deg,rgba(7,9,15,.85),transparent);pointer-events:none}.scene--table>.gbar .timer{pointer-events:auto}.scene--table .stage__reset{top:84px}.scene--table .side{position:absolute;z-index:4;top:76px;right:var(--s-4);bottom:96px;width:min(380px,34vw);background:#0e1426d1;backdrop-filter:blur(10px);transition:transform .28s var(--ease-out);overflow:visible}.side--closed{transform:translate(calc(100% + var(--s-4)))}.side__toggle{position:absolute;left:-40px;top:12px;width:36px;height:52px;border-radius:10px 0 0 10px;border:1px solid var(--line-strong);border-right:0;background:#0e1426e6;color:var(--text);font-size:1.4rem;cursor:pointer}.scene--table .side>.stabs,.scene--table .side>.spanel{border-radius:inherit}.scene--table .side>.spanel{overflow-y:auto}.scene--table .chatdock{left:var(--s-4);bottom:96px;width:min(400px,32vw);height:min(42vh,380px);z-index:4}.scene--table>.actionbar{position:absolute;left:50%;bottom:max(var(--s-4),env(safe-area-inset-bottom));transform:translate(-50%);z-index:5;padding:var(--s-2);border-radius:99px;background:#0e1426cc;border:1px solid var(--line);backdrop-filter:blur(8px);flex-wrap:nowrap;width:max-content;max-width:calc(100% - 32px)}.scene--table>.actionbar .btn{border-radius:99px}.scene--table .focus{right:calc(min(380px,34vw) + var(--s-4) * 2);bottom:96px;z-index:4}.scene--table .side--closed~.focus,.scene--table .tablewrap:has(.side--closed) .focus{right:var(--s-4)}.scene--table .arena__hint{top:84px;bottom:auto}@media(max-width:979px){.scene--table .side{inset:auto 0 0;width:auto;height:52vh;border-radius:var(--r-lg) var(--r-lg) 0 0;min-height:0}.side--closed{transform:translateY(calc(100% - 48px))}.side__toggle{display:none}.scene--table>.actionbar{bottom:calc(48px + var(--s-2));transition:bottom .28s var(--ease-out)}.scene--table .tablewrap:has(.side:not(.side--closed))~.actionbar{bottom:calc(52vh + var(--s-2))}.scene--table .focus{left:var(--s-2);right:var(--s-2);top:70px;bottom:auto;max-height:48vh}.scene--table .tablewrap:has(.side--closed) .focus{right:var(--s-2)}.scene--table>.gbar{padding:var(--s-2) var(--s-3) var(--s-4)}.scene--table .stage__reset,.scene--table .arena__hint{top:64px}}.modal__body{min-height:0}.modal__dialog--wide{width:min(860px,100%)}.lookedit{display:grid;grid-template-columns:300px 1fr;gap:var(--s-5);align-items:start}.lookedit__preview{position:sticky;top:0;aspect-ratio:3 / 4;width:100%;border-radius:var(--r-md);background:radial-gradient(ellipse at 50% 78%,rgba(37,217,208,.16),transparent 55%),radial-gradient(ellipse at 50% 20%,rgba(150,112,255,.12),transparent 60%),#0b1020;border:1px solid var(--line-strong);overflow:hidden;cursor:grab}.lookedit__preview canvas{display:block;width:100%!important;height:100%!important}.lookedit__preview.is-off{display:none}.lookedit__rows{display:flex;flex-direction:column}.lookedit__row{display:grid;grid-template-columns:110px 1fr;align-items:center;gap:var(--s-3);padding:10px 0;border-bottom:1px solid rgba(150,112,255,.12)}.lookedit__row:last-child{border-bottom:0}.lookedit__row .field__label{font-size:.7rem}.lookedit__opts{display:flex;flex-wrap:wrap;gap:6px}.swatch{width:28px;height:28px;border-radius:50%;border:2px solid rgba(255,255,255,.15);cursor:pointer;transition:transform var(--t-fast)}.swatch:hover{transform:scale(1.1)}.swatch.is-active{border-color:var(--teal);box-shadow:var(--glow-teal)}.chipbtn{min-height:30px;padding:0 11px;border-radius:99px;border:1px solid var(--line);background:var(--bg);color:var(--muted);font:inherit;font-size:.82rem;cursor:pointer}.chipbtn:hover{color:var(--text)}.chipbtn.is-active{color:var(--text);border-color:var(--teal);background:var(--teal-soft)}@media(max-width:760px){.lookedit{grid-template-columns:1fr}.lookedit__preview{position:relative;aspect-ratio:auto;height:220px}.lookedit__row{grid-template-columns:1fr;gap:6px}}@media(max-width:979px){.scene--table>.gbar{background:linear-gradient(180deg,#07090ff5 60%,#07090f00)}.scene--table .focus{position:fixed;inset:auto 0 0;width:auto;max-height:min(72vh,600px);z-index:30;padding:var(--s-4) var(--s-4) max(var(--s-4),env(safe-area-inset-bottom));border-radius:var(--r-lg) var(--r-lg) 0 0;border-bottom:0;background:#0e1426f7;animation:sheet-up .24s var(--ease-out)}.scene--table .tablewrap:has(.side--closed) .focus{right:0}.scene--table:has(.focus:not([hidden]))>.actionbar,.scene--table:has(.focus:not([hidden]))>.objectives,.scene--table:has(.side:not(.side--closed))>.objectives{display:none}.scene--table>.objectives{top:62px;cursor:pointer}.objectives__title:after{content:" ▾"}.objectives.is-open .objectives__title:after{content:" ▴"}.objectives:not(.is-open) li:nth-child(n+2){display:none}.objectives.is-open li:nth-child(n+3){display:flex}.phasebanner{max-height:calc(100% - 96px);overflow-y:auto}}@keyframes sheet-up{0%{transform:translateY(100%)}}.gbar__right{display:flex;align-items:center;gap:var(--s-3);pointer-events:auto}.gbar__help{width:38px;height:38px;flex:none;border-radius:50%;border:1px solid var(--line-strong);background:#0e1426d9;color:var(--teal);font-family:var(--font-display);font-size:1.15rem;font-weight:700;cursor:pointer}.gbar__help:hover{box-shadow:var(--glow-teal)}.phasebanner{position:fixed;z-index:45;top:84px;left:50%;transform:translate(-50%);width:min(560px,calc(100% - 24px));display:flex;flex-direction:column;align-items:center;gap:var(--s-2);padding:var(--s-5) var(--s-5) var(--s-4);border-radius:var(--r-lg);background:#0c1224f0;border:1px solid var(--line-strong);box-shadow:var(--shadow),var(--glow-violet);backdrop-filter:blur(10px);text-align:center;overflow:hidden;animation:banner-in .42s var(--ease-out)}.phasebanner--out{opacity:0;transform:translate(-50%) translateY(-10px);transition:all .24s}@keyframes banner-in{0%{opacity:0;transform:translate(-50%) translateY(-16px) scale(.96)}}.phasebanner__kicker{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}.phasebanner__title{font-family:var(--font-display);font-size:clamp(1.4rem,5vw,2rem);letter-spacing:.06em;color:var(--teal)}.phasebanner--voting .phasebanner__title,.phasebanner--evil .phasebanner__title{color:var(--red)}.phasebanner__text{color:#dbe3f5;line-height:1.5}.phasebanner__bar{position:absolute;left:0;bottom:0;height:3px;width:100%;background:var(--teal);transform-origin:left;animation:banner-bar linear forwards}@keyframes banner-bar{to{transform:scaleX(0)}}.objectives{position:absolute;z-index:4;top:76px;left:var(--s-4);width:min(360px,32vw);padding:var(--s-3) var(--s-4);border-radius:var(--r-md);background:#0e1426d1;border:1px solid var(--line);backdrop-filter:blur(8px);font-size:.86rem}.objectives[hidden]{display:none}.objectives__title{display:block;margin-bottom:6px;font-family:var(--font-display);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--teal)}.objectives ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px}.objectives li{display:flex;gap:var(--s-2);align-items:flex-start;line-height:1.35}.objectives li.is-done{color:var(--muted);text-decoration:line-through;text-decoration-color:#8290a880}.objectives__box{flex:none;width:16px;height:16px;margin-top:1px;display:grid;place-items:center;border-radius:4px;border:1px solid var(--line-strong);font-size:.7rem;color:var(--bg)}.objectives li.is-done .objectives__box{background:var(--teal);border-color:var(--teal)}.scene--table .chatdock{height:min(36vh,340px)}.tour{position:fixed;inset:0;z-index:70}.tour__hole{position:fixed;border-radius:var(--r-md);box-shadow:0 0 0 9999px #04060cb8,0 0 0 2px var(--teal),0 0 24px #25d9d099;transition:all .3s var(--ease-out);pointer-events:none}.tour__tip{position:fixed;display:flex;flex-direction:column;gap:var(--s-2);padding:var(--s-4);transition:top .3s var(--ease-out),left .3s var(--ease-out)}.tour__count{font-size:.72rem;letter-spacing:.15em;color:var(--teal)}.tour__title{font-family:var(--font-display);font-size:1.15rem}.tour__text{color:#d3daea;font-size:.92rem}.tour__actions{display:flex;justify-content:flex-end;gap:var(--s-2);margin-top:var(--s-2)}.rolesguide{display:flex;flex-direction:column;gap:var(--s-3)}.rolesguide__tab--town.is-active{border-bottom-color:var(--teal)}.rolesguide__tab--evil.is-active{border-bottom-color:var(--red)}.rolesguide__tab--neutral.is-active{border-bottom-color:#ffd166}.rolesguide__body{display:flex;flex-direction:column;gap:var(--s-3)}.rolesguide__goal{padding:var(--s-2) var(--s-3);border-radius:var(--r-sm);font-weight:600}.rolesguide__goal--town{background:var(--teal-soft)}.rolesguide__goal--evil{background:var(--red-soft)}.rolesguide__goal--neutral{background:#ffd1661f}.rolesguide__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--s-3)}.rolecardx{display:flex;flex-direction:column;gap:6px;padding:var(--s-3) var(--s-4);border-radius:var(--r-md);background:var(--bg);border:1px solid var(--line);border-top:3px solid var(--teal);font-size:.88rem}.rolecardx--evil{border-top-color:var(--red)}.rolecardx--neutral{border-top-color:#ffd166}.rolecardx__head{display:flex;flex-direction:column}.rolecardx__name{font-family:var(--font-display);font-size:1.1rem}.rolecardx__when{font-size:.72rem;color:var(--muted)}.rolecardx__desc{color:#d3daea}.rolecardx__label{color:var(--muted)}.rolecardx__ability strong{color:var(--teal)}.rolecardx--evil .rolecardx__ability strong{color:var(--red)}.rolesguide__table td,.rolesguide__table th{text-align:center}.linkbtn{padding:0;border:0;background:none;color:var(--teal);font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px}@media(max-width:979px){.objectives{top:58px;left:var(--s-2);right:var(--s-2);width:auto;padding:var(--s-2) var(--s-3);font-size:.78rem}.objectives li:nth-child(n+3){display:none}.phasebanner{top:64px;padding:var(--s-4)}.gbar__help{width:34px;height:34px}}.statsgrid{width:min(1100px,100%);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s-3);animation:scene-in .6s var(--ease-out) .7s both}.statcard{display:flex;flex-direction:column;gap:var(--s-2);padding:var(--s-4);border-radius:var(--r-md);background:#0e1426c7;border:1px solid var(--line);backdrop-filter:blur(6px);min-width:0}.statcard .lobby__h{margin:0}.livestats,.mystats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-2)}.mystats{grid-template-columns:repeat(2,1fr)}.livestat{display:flex;flex-direction:column;align-items:flex-start}.livestat strong{font-family:var(--font-display);font-size:1.5rem;line-height:1.1;color:var(--teal)}.statcard--live .livestat:first-child strong:before{content:"";display:inline-block;width:8px;height:8px;margin:0 6px 4px 0;border-radius:50%;background:#3ddc84;box-shadow:0 0 8px #3ddc84;animation:pulse 1.6s infinite}.livestat span{font-size:.75rem;color:var(--muted)}.leaders{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.leader{display:grid;grid-template-columns:22px 1fr auto;grid-template-rows:auto auto;column-gap:var(--s-2);align-items:center;padding:5px 8px;border-radius:var(--r-sm);background:var(--bg);font-size:.85rem}.leader__rank{grid-row:span 2;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:var(--bg-3);font-family:var(--font-display);font-weight:700;font-size:.75rem}.leader--1 .leader__rank{background:#ffd166;color:#2a1d00}.leader--2 .leader__rank{background:#c8d0e0;color:#1a1f2a}.leader--3 .leader__rank{background:#d69a6a;color:#2a1608}.leader__name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.leader__score{grid-column:2;font-size:.72rem;color:var(--muted)}.leader__rate{grid-column:3;grid-row:1 / span 2;font-family:var(--font-display);color:var(--teal)}.invite--sheet{align-items:stretch;text-align:left}.invite__code--big{display:flex;justify-content:center;gap:6px;padding:var(--s-3);border-radius:var(--r-md);border:1px dashed rgba(37,217,208,.45);background:var(--teal-soft)}.invite__code--big span{width:1.3em;text-align:center}.invite__link{font-size:.85rem;color:var(--muted)}.invite__actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--s-2)}.lobby__invitehint{text-align:center}@media(max-width:1000px){.statsgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.statsgrid{grid-template-columns:1fr}}.planbox{padding:var(--s-3) var(--s-4);border-radius:var(--r-md);border:1px solid rgba(37,217,208,.45);background:var(--teal-soft);font-size:.86rem}.planbox--evil{border-color:#ff52688c;background:var(--red-soft)}.planbox--neutral{border-color:#ffd1668c;background:#ffd1661a}.planbox__title{display:block;margin-bottom:6px;font-family:var(--font-display);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase}.planbox ol{margin:0;padding-left:1.2em;display:flex;flex-direction:column;gap:5px;line-height:1.4}.membox{display:flex;flex-direction:column;gap:6px}.memory li{position:relative}.memory__tag{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-style:normal;font-size:.62rem;font-weight:700;letter-spacing:.12em;color:var(--red)}.memory__item{font-size:.82rem;color:var(--muted)}.memory__item.is-yes{color:#ffd166;font-weight:600}.ecard__hint{margin-top:4px;padding:6px 8px;border-radius:6px;background:#25d9d014;border-left:2px solid var(--teal);font-size:.8rem;line-height:1.4;color:#cfe9ea}.ecard__hint--fake{background:#ff52681a;border-left-color:var(--red);color:#ffd3d9}.answer__assist{margin:var(--s-2) 0 var(--s-3);padding:var(--s-3);border-radius:var(--r-sm);background:var(--teal-soft);border:1px solid rgba(37,217,208,.4);font-size:.9rem}.answer__assist--evil{background:var(--red-soft);border-color:#ff526880}.answer__truth{font-weight:700;color:var(--teal)}.answer__assist--evil .answer__truth{color:#ffb3bd}.answer__cover{font-weight:700;color:#ffd166}
