[hidden]{display:none!important}
.main{margin:0 auto;min-width:0}.side nav .nav{display:flex;gap:9px;align-items:center;font-size:.92rem}.brand{font-size:1.3rem}.platform-view h2{font-size:1.8rem}.platform-view h3{margin:0 0 10px}.platform-view p,dialog p{color:var(--muted)}
.account-bar{position:relative;display:flex;justify-content:space-between;align-items:center;gap:16px;margin:22px 0 4px;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:.85rem}.account-bar #account{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.account-bar .mini{padding:6px 12px}.online{color:var(--lime)}.offline{color:#f5b878}.pill{display:inline-block;border:1px solid var(--line);padding:4px 10px;border-radius:99px;font-size:.75rem;color:var(--muted)}
.panel{padding:24px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);margin:16px 0}.panel p{margin:8px 0 20px}.inline-form{display:flex;align-items:flex-end;gap:16px}.inline-form label{flex:1}.platform-view label,dialog label{display:block;font-size:.85rem;font-weight:700;color:var(--text)}.platform-view input,dialog input{display:block;width:100%;margin-top:8px;background:#090b12;border:1px solid var(--line);color:var(--text);padding:12px;border-radius:9px;font:inherit}.platform-view input:focus,dialog input:focus{outline:2px solid var(--cyan);outline-offset:2px}.platform-view form .mini{margin-top:14px}.row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 0;border-bottom:1px solid var(--line)}.row:last-child{border-bottom:0}.row-info{display:flex;align-items:center;gap:12px;min-width:0}.row-info strong{overflow-wrap:anywhere}.row small{display:block;color:var(--muted)}.initial{width:40px;height:40px;display:grid;place-items:center;flex-shrink:0;background:var(--panel2);border-radius:12px;color:var(--cyan);font-weight:800}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.actions .mini{flex:none}.quiet{border:0;background:transparent;color:var(--muted);padding:9px;cursor:pointer}.quiet:hover{color:var(--text)}.notice{margin:16px 0;padding:14px 18px;border-left:3px solid var(--cyan);background:var(--panel);border-radius:0 8px 8px 0;overflow-wrap:anywhere}.notice.error{border-color:#ff8585;color:#ffb1b1}.room-banner{margin:16px 0;padding:16px 20px;border:1px solid #536433;background:#172012;border-radius:12px;display:flex;align-items:center;justify-content:space-between;gap:15px}.room-banner a{color:var(--lime);font-weight:700}.room-entry{display:grid;grid-template-columns:1.2fr 1fr;gap:20px}.room-code{font-family:Consolas,monospace;font-size:clamp(2rem,5vw,3rem);letter-spacing:.13em;color:var(--lime);line-height:1.2}.room-top{display:flex;align-items:center;justify-content:space-between;gap:18px}.seats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:20px 0}.seat{padding:14px;background:#0c0f17;border:1px solid var(--line);border-radius:12px;display:flex;align-items:center;gap:12px;min-width:0}.seat .seat-copy{min-width:0}.seat strong{overflow-wrap:anywhere}.seat small{display:block;color:var(--muted)}.seat.left{opacity:.5}.room-rule{font-size:.82rem;line-height:1.7;color:var(--muted);max-width:720px}.danger{border:1px solid #914e59;background:#482331;color:#ffccd0;font:inherit;padding:10px 16px;border-radius:9px;cursor:pointer}.danger:hover{background:#61303e}.room-log{list-style:none;padding:0;margin:0;max-height:420px;overflow:auto;overscroll-behavior:contain}.room-log li{padding:12px 0;border-bottom:1px solid var(--line);font-size:.9rem}.room-log time{display:block;font-family:Consolas,monospace;font-size:.72rem;color:var(--muted);margin-bottom:3px}.room-log li:last-child{border:0}.status-heading{font-size:1.1rem;color:var(--cyan)}.error{color:#ffb1b1}.hint{font-size:.78rem;line-height:1.6}.full{width:100%;margin-top:10px}.empty-state{color:var(--muted);padding:24px 0}.room-entry form .mini{width:100%}button:disabled{cursor:not-allowed;opacity:.5}dialog{width:min(460px,calc(100% - 32px));max-height:calc(100dvh - 40px);overflow:auto;background:var(--panel);border:1px solid #444b62;border-radius:20px;padding:28px;color:var(--text);box-shadow:0 25px 90px #0009}dialog::backdrop{background:#03050bd9;backdrop-filter:blur(5px)}dialog h2{margin:0;font-size:1.6rem}dialog label{margin-top:18px}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
@media(max-width:980px){.shell{grid-template-columns:190px 1fr}.side{padding:24px 14px}.brand{font-size:1.15rem}.brand i{font-size:inherit}.side nav .nav{font-size:.85rem}.profile{display:block;left:14px;right:14px}.room-entry{grid-template-columns:1fr;gap:0}.room-top{align-items:flex-start;flex-direction:column}}
@media(max-width:640px){.shell{display:block}.side{padding:6px}.side nav{grid-template-columns:repeat(3,1fr)}.side nav .nav{font-size:.75rem;justify-content:center;gap:4px;padding:10px 3px}.brand,.profile{display:none}.account-bar{align-items:flex-start}.account-bar #account{justify-content:flex-end}.seats{grid-template-columns:1fr}.inline-form{flex-direction:column;align-items:stretch}.panel{padding:18px}.row{align-items:flex-start;flex-direction:column;gap:10px}.row .actions{margin-left:52px}.room-banner{align-items:flex-start;flex-direction:column}.pill{white-space:nowrap}.platform-view .section-head{gap:10px}dialog{padding:22px}}
.panel .section-head{gap:16px;flex-wrap:wrap}.panel .section-head .mini{flex:none}.panel .section-head h3{margin:0}
.create-room-panel .play{margin-top:22px}
.setup-config-actions{margin:4px 0 20px}.setup-save.is-saving{opacity:1;cursor:wait;transform:translateY(2px);background:#9fcf2d;box-shadow:inset 0 3px 8px #26320f99,0 2px 7px #c7ff3820}
.user-avatar{width:40px;height:40px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;object-fit:cover;background:#242b3b;color:var(--cyan);font-size:.8rem;font-weight:800;border:1px solid #ffffff18}.account-identity{display:flex;align-items:center;gap:8px;border:0;background:transparent;color:var(--text);padding:2px 4px;border-radius:999px}.account-identity:hover{background:var(--panel2)}.account-picture{width:30px;height:30px}.account-identity .initial{margin:0}.account-name{font-weight:750;overflow-wrap:anywhere}.row-info>.initial{border-radius:50%}
.account-identity[aria-expanded="true"]{background:#202432;box-shadow:0 0 0 1px #d6bd835c}.profile-popover{position:absolute;z-index:120;top:calc(100% + 10px);right:0;width:min(370px,calc(100vw - 32px));padding:0;overflow:hidden;border:1px solid #665d48;border-radius:18px;background:linear-gradient(155deg,#1a1d27 0,#10121a 72%);color:var(--text);box-shadow:0 26px 80px #02030ad9,0 0 0 1px #ffffff08}.profile-popover:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,#806c3d,#d6bd83 45%,#806c3d);pointer-events:none}.profile-popover:focus{outline:0}.profile-popover-head{display:grid;grid-template-columns:78px minmax(0,1fr) auto;gap:14px;align-items:center;padding:22px 20px 18px;border-bottom:1px solid #ffffff12;background:radial-gradient(circle at 18% 0,#d6bd831a,transparent 42%)}.profile-avatar-wrap{position:relative;width:76px;height:76px}.profile-avatar{width:76px;height:76px;border:2px solid #d6bd83;box-shadow:0 0 0 4px #d6bd8314,0 9px 24px #0008;font-size:1.35rem}.profile-avatar-action{position:absolute;right:-4px;bottom:-3px;padding:4px 7px;border:1px solid #d6bd837d;border-radius:999px;background:#28271f;color:#e8d39f;font-size:.58rem;font-weight:850;letter-spacing:.04em}.profile-title{min-width:0}.profile-title>span{display:block;margin-bottom:4px;color:#d6bd83;font:800 .61rem ui-monospace,Consolas,monospace;letter-spacing:.16em}.profile-title>strong{display:block;overflow:hidden;color:#fff;font-size:1.16rem;text-overflow:ellipsis}.profile-title>small{display:block;color:var(--muted);font-size:.72rem}.profile-close{align-self:start;padding:5px}.profile-email{margin:16px 20px 10px;padding:12px 14px;border-left:2px solid #d6bd83;background:#090b12;border-radius:0 10px 10px 0}.profile-email span,.profile-identity-row span{display:block;color:var(--muted);font-size:.64rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.profile-email strong{display:block;margin-top:3px;overflow-wrap:anywhere;font-size:.82rem}.profile-identity-row{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 20px;padding:12px 0;border-bottom:1px solid #ffffff10}.profile-identity-row strong{display:block;margin-top:2px;font-size:.9rem}.profile-identity-row .mini{flex:0 0 auto}.profile-change-avatar{display:grid;grid-template-columns:30px 1fr;gap:0 10px;width:calc(100% - 40px);margin:12px 20px 20px;padding:11px 12px;text-align:left;border:1px solid #363b4c;border-radius:11px;background:#171a24;color:var(--text)}.profile-change-avatar:hover{border-color:#d6bd8380;background:#1c1e27}.profile-change-avatar>span{grid-row:1/3;display:grid;place-items:center;width:30px;height:30px;border:1px solid #d6bd8366;border-radius:50%;color:#d6bd83;font-size:1rem}.profile-change-avatar b{font-size:.78rem}.profile-change-avatar small{color:var(--muted);font-size:.62rem}.profile-username-form{margin:0 20px;padding:4px 0 8px}.profile-username-form label{margin-top:8px}.profile-username-form input{margin-top:6px}.profile-username-form .actions{justify-content:flex-end;margin-top:8px}.profile-username-form .play{padding:9px 12px;font-size:.75rem}.profile-inline-error{min-height:18px;margin:5px 0 0!important;color:#ffb1b1!important;font-size:.68rem}
@media(max-width:640px){.profile-popover{position:fixed;top:74px;right:12px;width:min(370px,calc(100vw - 24px));max-height:calc(100dvh - 164px);overflow:auto}.profile-popover-head{grid-template-columns:68px minmax(0,1fr) auto;padding:18px 16px 15px}.profile-avatar-wrap,.profile-avatar{width:66px;height:66px}.profile-email{margin:14px 16px 8px}.profile-identity-row,.profile-username-form{margin-left:16px;margin-right:16px}.profile-change-avatar{width:calc(100% - 32px);margin:10px 16px 16px}}
.profile-popover{width:min(320px,calc(100vw - 32px));padding:30px 24px 22px;text-align:center}.profile-popover:before{display:none}.profile-close{position:absolute;top:8px;right:8px}.profile-avatar-wrap{position:relative;width:112px;height:112px;margin:2px auto 16px}.profile-avatar-preview{display:block;width:112px;height:112px;padding:0;border:0;border-radius:50%;background:transparent}.profile-avatar{width:112px;height:112px;border:2px solid #d6bd83;box-shadow:0 0 0 4px #d6bd8314,0 10px 28px #0008;font-size:2rem}.profile-avatar-action{right:0;bottom:0;display:grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid #e0c98e;border-radius:50%;background:#25251f;color:#e8d39f;box-shadow:0 4px 12px #0009}.profile-avatar-action svg,.profile-name-edit svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.profile-name{display:flex;align-items:center;justify-content:center;gap:7px;min-width:0}.profile-name strong{min-width:0;overflow-wrap:anywhere;font-size:1.32rem;line-height:1.25}.profile-name-edit{display:grid;place-items:center;flex:0 0 auto;width:28px;height:28px;padding:0;border:0;background:transparent;color:#aeb4c5}.profile-name-edit:hover{color:#e8d39f}.profile-email-address{margin:5px 0 22px;color:var(--muted);font-size:.78rem;overflow-wrap:anywhere}.profile-logout{width:100%;padding:10px 14px;border:1px solid #464b5d;border-radius:10px;background:#1a1d28;color:#eef1f8;font-weight:750}.profile-logout:hover{border-color:#d6bd8380;color:#e8d39f}.profile-username-form{margin:0;padding:0}.profile-username-form input{margin:0;text-align:center;font-size:1rem;font-weight:750}.profile-edit-actions{display:flex;justify-content:center;gap:6px;margin-top:7px}.profile-edit-actions .play{padding:7px 13px;font-size:.73rem}.profile-inline-error{min-height:17px;margin:3px 0 0!important}.avatar-preview-dialog{width:auto;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);padding:0;overflow:visible;border:0;background:transparent;box-shadow:none}.avatar-preview-dialog::backdrop{background:#02040bdc;backdrop-filter:blur(8px)}.avatar-preview-close{position:absolute;z-index:2;top:10px;right:10px;display:grid;place-items:center;width:36px;height:36px;border:1px solid #ffffff30;border-radius:50%;background:#080a10c9;color:#fff;font-size:1rem}.avatar-preview-image{display:grid;place-items:center;width:min(72vw,72dvh,680px);height:min(72vw,72dvh,680px);border:1px solid #ffffff24;border-radius:18px;object-fit:cover;background:#242b3b;color:var(--cyan);font-size:clamp(3rem,14vw,8rem);box-shadow:0 30px 100px #000c}
@media(max-width:640px){.profile-popover{top:70px;width:min(310px,calc(100vw - 24px));padding:27px 20px 20px}.profile-avatar-wrap,.profile-avatar-preview,.profile-avatar{width:100px;height:100px}.profile-avatar-wrap{margin-bottom:14px}.profile-name strong{font-size:1.22rem}.profile-email-address{margin-bottom:18px}.avatar-preview-image{width:min(90vw,70dvh);height:min(90vw,70dvh)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* One Night Werewolf: a midnight table built around the three center cards. */
select{display:block;width:100%;margin-top:8px;background:#090b12;border:1px solid var(--line);color:var(--text);padding:12px;border-radius:9px;font:inherit}.setup-grid{display:grid;gap:16px}.setup-panel{background:linear-gradient(145deg,#121522,#111019)}.setting-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:18px 0}.deck-meter{font:700 .82rem Consolas,monospace;color:#f0a8a8;border:1px solid #6b3943;border-radius:99px;padding:6px 11px}.deck-meter.complete{color:var(--lime);border-color:#5d7130}.role-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:18px 0}.role-pick{display:grid;grid-template-columns:38px 1fr auto;gap:11px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:13px;background:#0b0d15}.role-pick-copy{min-width:0}.role-pick strong,.role-pick small{display:block}.role-pick small{color:var(--muted);font-size:.72rem;line-height:1.35;margin-top:2px}.role-symbol{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#242838;color:var(--cyan);font-size:1.2rem}.counter{display:grid;grid-template-columns:28px 20px 28px;align-items:center;text-align:center}.counter-button{width:28px;height:28px;border:1px solid var(--line);border-radius:7px;background:#202432;color:#fff;font:700 1rem/1 system-ui;cursor:pointer}.deck-strip{display:flex;gap:8px;overflow:auto;padding:6px 0 12px}.role-card{min-height:210px;width:min(280px,100%);padding:26px;border:1px solid #515970;border-radius:19px;background:radial-gradient(circle at 80% 0,#26304e 0,transparent 42%),linear-gradient(145deg,#171b2b,#0b0e16);display:flex;flex-direction:column;justify-content:flex-end;gap:18px;box-shadow:0 20px 45px #0005}.role-card .role-symbol{width:58px;height:58px;font-size:2rem}.role-card strong{display:block;font-size:1.45rem}.role-card small{display:block;color:#aeb5ca;margin-top:7px;line-height:1.45}.role-card.small{min-height:0;width:auto;min-width:130px;padding:11px;border-radius:11px;flex-direction:row;align-items:center;justify-content:flex-start;gap:9px;box-shadow:none}.role-card.small .role-symbol{width:29px;height:29px;font-size:1rem}.role-card.small strong{font-size:.82rem}.role-card.face-down{justify-content:center;align-items:center;text-align:center;background:radial-gradient(circle at 50% 35%,#503672 0,#1c1734 33%,#0c101a 72%);border-color:#725999;color:#e4dbff;cursor:pointer}.role-card.face-down .card-moon{font-size:3rem;color:#d9c1ff;text-shadow:0 0 25px #9f6cff}.role-card.face-down strong{font-size:.83rem;letter-spacing:.09em;text-transform:uppercase}.role-card.selected,.center-cards .role-card.selected{border-color:var(--lime);box-shadow:0 0 0 2px #c7ff3836,0 18px 40px #0006;transform:translateY(-5px)}.role-werewolf{--role:#bd6cff}.role-minion{--role:#ff7a89}.role-seer{--role:#65d5ff}.role-robber{--role:#f5b76a}.role-troublemaker{--role:#f27fd4}.role-drunk{--role:#b89cff}.role-insomniac{--role:#7ce7dd}.role-mason,.role-villager,.role-hunter{--role:#9fd58b}.role-tanner{--role:#f0d170}.role-card:not(.face-down) .role-symbol,.role-pick .role-symbol{color:var(--role,var(--cyan));background:color-mix(in srgb,var(--role,var(--cyan)) 15%,#151925)}.moon-table{position:relative;margin:16px 0;padding:clamp(22px,4vw,46px);border:1px solid #41365d;border-radius:28px;background:radial-gradient(ellipse at 50% 42%,#262348 0,#151426 42%,#0d1019 78%);overflow:hidden}.moon-table:before{content:"";position:absolute;width:340px;height:340px;border:1px solid #ffffff0b;border-radius:50%;left:50%;top:42%;transform:translate(-50%,-50%);pointer-events:none}.moon-table>*{position:relative}.phase-copy{text-align:center;margin:0 auto 24px;max-width:680px}.phase-copy h3{font-size:clamp(1.35rem,3vw,2.3rem);margin:7px 0}.moon-table>.role-card{margin:20px auto}.moon-table>p{text-align:center;max-width:640px;margin:18px auto}.moon-table>.play{display:block;margin:18px auto}.night-order{display:flex;align-items:center;gap:8px;overflow:auto;padding:8px 2px 18px;scrollbar-width:none}.night-order span{white-space:nowrap;color:#777e91;border:1px solid var(--line);padding:6px 10px;border-radius:99px;font-size:.72rem}.night-order span.active{color:#0a0b0e;background:var(--lime);border-color:var(--lime);font-weight:800}.night-order i{color:#4b5060;font-style:normal}.tabletop{padding:22px;border:1px solid #ffffff10;border-radius:999px;background:#080b13aa}.center-cards{display:flex;justify-content:center;gap:clamp(8px,2vw,18px);margin:10px auto 24px}.center-cards .role-card{width:clamp(88px,15vw,145px);min-height:180px;padding:12px}.center-cards .card-moon{font-size:2.2rem!important}.target-players{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.player-token{min-width:92px;border:1px solid var(--line);border-radius:13px;padding:10px;background:#111522;color:var(--text);cursor:pointer}.player-token>span{display:grid;place-items:center;width:32px;height:32px;margin:0 auto 6px;border-radius:50%;background:#252b3d;color:var(--cyan);font-weight:800}.player-token strong{display:block;max-width:120px;overflow-wrap:anywhere}.player-token.selected{border-color:var(--lime);background:#202817;box-shadow:0 0 0 2px #c7ff3828}.player-token:disabled{opacity:1;cursor:default}.action-zone{max-width:760px;margin:24px auto 0;text-align:center}.action-zone>.play{margin:18px auto}.eyes-closed>span{font-size:3rem;color:#c9a9ff}.knowledge{padding:18px;border:1px solid #42636d;border-radius:14px;background:#102027;text-align:left}.knowledge strong{display:block;margin-top:8px;color:#d9f8ff}.reveal-progress{text-align:center;color:var(--muted);font:.78rem Consolas,monospace;margin-top:22px}.room-danger{justify-content:flex-end;margin:14px 0}.discussion-clock{display:grid;place-items:center;margin:25px auto;width:190px;height:190px;border:1px solid #8fa74e;border-radius:50%;background:#151b11;box-shadow:inset 0 0 45px #c7ff3810}.discussion-clock strong{font:700 3rem Consolas,monospace;color:var(--lime)}.discussion-clock span{font-size:.72rem;color:var(--muted)}.daylight{background:radial-gradient(circle at 50% 30%,#33391c,#191b17 48%,#101219)}.voting{background:radial-gradient(circle at 50% 20%,#462334,#191421 48%,#0e1018)}.result-hero{padding:34px;margin:16px 0;border:1px solid #665281;border-radius:22px;background:radial-gradient(circle at 90% 0,#493569,transparent 44%),#151522}.result-hero h3{font-size:clamp(1.8rem,4vw,3.4rem);margin:6px 0}.result-hero p{margin:0}.result-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:16px}.result-grid>.panel{margin:0}.result-player{padding:14px 0;border-bottom:1px solid var(--line)}.result-player:last-child{border:0}.result-player.winner{border-left:3px solid var(--lime);padding-left:12px}.result-player.eliminated:not(.winner){border-left:3px solid #d26070;padding-left:12px}.result-name{display:flex;justify-content:space-between;gap:12px;margin-bottom:9px}.result-name span{font-size:.7rem;color:var(--lime);letter-spacing:.08em}.card-change{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px}.card-change i{font-style:normal;color:var(--muted)}.center-result>div{display:grid;gap:12px;margin-top:16px}.center-result>div>div>span{display:block;color:var(--muted);font-size:.72rem;margin-bottom:5px}.vote-list{list-style:none;padding:0;margin:15px 0}.vote-list li{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;padding:11px 0;border-bottom:1px solid var(--line)}.vote-list li span{color:var(--muted)}.replay{grid-column:1/-1}.replay ol{list-style:none;padding:0}.replay li{display:grid;grid-template-columns:34px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.replay li>span{font:700 .75rem Consolas,monospace;color:var(--cyan)}.replay li p{margin:0;color:var(--text)}.review-exit{justify-content:center;margin:20px 0}.activity{margin-top:16px!important}
@media(max-width:800px){.role-picker,.result-grid{grid-template-columns:1fr}.replay{grid-column:auto}.tabletop{border-radius:30px}.setting-row{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.setting-row{grid-template-columns:1fr}.moon-table{padding:20px 14px;border-radius:20px}.center-cards .role-card{min-height:145px}.center-cards .role-card strong{font-size:.65rem}.role-card.face-down .card-moon{font-size:1.8rem}.result-hero{padding:24px}.card-change{grid-template-columns:1fr}.card-change i{transform:rotate(90deg);text-align:center}.vote-list li{grid-template-columns:1fr}.vote-list li span{font-size:.72rem}.role-pick{grid-template-columns:32px 1fr auto;padding:10px}.role-pick small{display:none}}
