:root{
  color-scheme:dark;
  --bg:#07070c;--bg2:#0d0c15;--panel:#12101a;--panel2:#191522;--line:rgba(224,213,238,.14);
  --text:#f6f2f8;--muted:#b5aeb9;--violet:#a889e8;--rose:#d45d82;--danger:#ef667b;--gold:#d9bd75;
  --green:#75d2a9;--blue:#7fb9de;--paper:#d7ceb9;--ink:#26211c;--shadow:0 24px 70px rgba(0,0,0,.38);
  --shell:min(1140px,calc(100% - 28px));
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-family:Inter,"Segoe UI",system-ui,sans-serif;overflow-x:hidden}
button,input,select,textarea{font:inherit}button{color:inherit}a{color:inherit;text-decoration:none}
button:disabled{opacity:.45;cursor:not-allowed}
.abyss-bg{position:fixed;inset:0;z-index:-2;background:
 radial-gradient(circle at 18% 10%,rgba(104,55,145,.25),transparent 30%),
 radial-gradient(circle at 85% 55%,rgba(152,44,82,.13),transparent 35%),
 linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px),var(--bg);
 background-size:auto,auto,38px 38px,38px 38px,auto}
.abyss-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.35));pointer-events:none}
.topbar{width:var(--shell);margin:auto;min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid rgba(255,255,255,.06)}
.brand{display:flex;align-items:center;gap:10px}.brand-mark{width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--line);border-radius:14px;background:linear-gradient(135deg,rgba(168,137,232,.23),rgba(212,93,130,.13));font-weight:900}.brand-copy strong,.brand-copy small{display:block}.brand-copy strong{letter-spacing:.12em}.brand-copy small{font-size:.74rem;color:var(--muted);margin-top:1px}.topbar-links{display:flex;gap:8px;align-items:center}.topbar-links a,.tiny-button{border:1px solid transparent;background:transparent;padding:9px 11px;border-radius:999px;color:var(--muted);cursor:pointer}.topbar-links a:hover,.tiny-button:hover{border-color:var(--line);color:var(--text);background:rgba(255,255,255,.035)}
.app-shell{width:var(--shell);margin:0 auto;padding:32px 0 64px}.loading-card,.fatal-card{min-height:55vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.loading-card h1,.fatal-card h1{margin:18px 0 8px;font-family:Georgia,serif}.loading-card p,.fatal-card p{color:var(--muted);max-width:600px}.spinner{width:34px;height:34px;border-radius:50%;border:3px solid rgba(255,255,255,.1);border-top-color:var(--violet);animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.kicker,.paper-label,.notebook-label{font-size:.72rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase;color:#c9b2f3;margin:0 0 8px}.paper-label,.notebook-label{color:#705944}.microcopy{font-size:.82rem!important;color:#8f8792!important;line-height:1.5}.center-note{display:block;text-align:center;margin-top:8px;color:#8f8792}
.primary,.secondary,.text-button{border-radius:14px;padding:12px 16px;font-weight:800;cursor:pointer;transition:transform .16s ease,filter .16s ease,border-color .16s ease}.primary{border:1px solid rgba(255,255,255,.12);background:linear-gradient(135deg,#9e78e9,#cf638a);box-shadow:0 12px 32px rgba(132,71,168,.2)}.secondary{border:1px solid var(--line);background:rgba(255,255,255,.045)}.text-button{border:0;background:transparent;color:var(--muted)}.primary:hover,.secondary:hover{transform:translateY(-1px);filter:brightness(1.05)}.full{width:100%}.big{padding:15px 19px;font-size:1rem}.danger-text{color:#e68a99}.huge-icon{font-size:2.5rem}
.landing-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:20px;align-items:stretch}.hero-card,.action-card,.dossier-panel,.action-sheet,.public-log,.mail-shell,.people-shell,.role-sheet,.secret-cover,.end-screen{border:1px solid var(--line);border-radius:26px;background:linear-gradient(180deg,rgba(22,18,31,.95),rgba(10,9,15,.97));box-shadow:var(--shadow)}
.hero-card{padding:clamp(28px,5vw,52px);display:flex;flex-direction:column;justify-content:center;min-height:510px;position:relative;overflow:hidden}.hero-card::after{content:"";position:absolute;width:300px;height:300px;border-radius:50%;right:-150px;bottom:-140px;border:1px solid rgba(199,170,240,.11);box-shadow:0 0 0 45px rgba(199,170,240,.025),0 0 0 90px rgba(199,170,240,.018)}.hero-card h1{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:clamp(4rem,10vw,7.2rem);line-height:.86;background:linear-gradient(180deg,#fff,#cab5db 66%,#8e6daa);-webkit-background-clip:text;background-clip:text;color:transparent;letter-spacing:.015em}.hero-lead{font-size:1.08rem;line-height:1.65;color:#d6cdd9;max-width:60ch;margin:24px 0}.feature-pills{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 24px}.feature-pills span,.tag-row span{padding:8px 10px;border:1px solid rgba(255,255,255,.08);border-radius:999px;background:rgba(255,255,255,.035);font-size:.84rem;color:#d7cedb}.compact-hero{min-height:420px}.identity-chip{display:flex;align-items:center;gap:12px;margin-top:26px;padding:12px;border:1px solid var(--line);border-radius:17px;background:rgba(255,255,255,.035);width:max-content;max-width:100%}.identity-chip img{width:44px;height:44px;border-radius:50%;object-fit:cover}.identity-chip strong,.identity-chip small{display:block}.identity-chip small{color:var(--muted);margin-top:2px}
.paper-card,.notebook-card{position:relative;border-radius:8px;background:linear-gradient(180deg,#d9d1bf,#c9bea8);color:var(--ink);box-shadow:0 22px 50px rgba(0,0,0,.3);padding:28px;border:1px solid rgba(70,55,40,.25)}.paper-card::before,.notebook-card::before{content:"";position:absolute;inset:0;opacity:.18;pointer-events:none;background-image:repeating-linear-gradient(0deg,transparent,transparent 27px,rgba(63,48,36,.16) 28px)}.paper-card>*{position:relative}.paper-card h1,.paper-card h2,.notebook-card h2{font-family:Georgia,serif;margin:0 0 12px}.paper-card p,.paper-card li{line-height:1.62}.paper-card hr{border:0;border-top:1px solid rgba(52,43,35,.28);margin:20px 0}.paper-stamp{position:absolute;right:20px;top:20px;border:3px double rgba(111,45,45,.55);color:rgba(111,45,45,.72);padding:6px 9px;font-weight:900;letter-spacing:.08em;transform:rotate(4deg);font-size:.75rem}.briefing-paper{min-height:510px;display:flex;flex-direction:column;justify-content:center;padding-top:60px}.briefing-paper small{margin-top:auto;opacity:.7}
.access-grid{display:grid;grid-template-columns:1fr;gap:16px}.action-card{padding:24px}.action-card h2{margin:0 0 20px}.action-card label,.action-form label{display:grid;gap:7px;margin:13px 0;color:#d9cfdd;font-size:.88rem;font-weight:700}.action-card input,.action-card select,.action-form select{width:100%;min-height:48px;border-radius:12px;border:1px solid rgba(255,255,255,.1);background:#0e0c14;color:var(--text);padding:10px 12px;outline:none}.action-card input:focus,.action-card select:focus,.action-form select:focus{border-color:rgba(168,137,232,.6);box-shadow:0 0 0 3px rgba(168,137,232,.1)}.card-icon{width:46px;height:46px;display:grid;place-items:center;border:1px solid var(--line);border-radius:15px;background:rgba(255,255,255,.035);font-size:1.45rem;margin-bottom:16px}.code-input{text-transform:uppercase;letter-spacing:.22em;font-weight:900}
.room-stage{display:grid;gap:18px}.room-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 28px}.room-header h1{font-size:clamp(1.7rem,5vw,2.4rem);margin-bottom:3px}.room-header p{margin:0;opacity:.72}.room-code{border:1px dashed rgba(61,48,37,.45);background:rgba(255,255,255,.18);color:var(--ink);border-radius:8px;padding:10px 15px;min-width:130px;cursor:pointer}.room-code small,.room-code span,.room-code strong{display:block}.room-code small{font-size:.62rem;letter-spacing:.15em}.room-code strong{font-size:1.6rem;letter-spacing:.18em;margin:2px 0}.room-code span{font-size:.65rem;opacity:.65}.lobby-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}.dossier-panel{padding:24px}.section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px}.section-title h2{margin:0}.section-title>small{color:var(--muted)}.live-dot,.mail-mark{font-size:.69rem;font-weight:900;letter-spacing:.12em;border:1px solid rgba(117,210,169,.28);color:var(--green);padding:7px 9px;border-radius:999px}.player-list{display:grid;gap:10px}.player-row{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid rgba(255,255,255,.075);border-radius:16px;background:rgba(255,255,255,.026)}.player-row.host{border-color:rgba(217,189,117,.23)}.avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;overflow:hidden;background:rgba(255,255,255,.06);flex:0 0 auto}.avatar img{width:100%;height:100%;object-fit:cover}.avatar.large{width:48px;height:48px}.player-copy{min-width:0;flex:1}.player-copy strong,.player-copy small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-copy small{color:var(--muted);font-size:.75rem;margin-top:2px}.ready-badge{font-size:.72rem;color:#8e8691}.ready-badge.yes{color:var(--green)}.lobby-brief{padding-top:60px}.lobby-brief ul{padding-left:20px;margin:18px 0 24px}
.game-frame{max-width:940px;margin:auto;padding-bottom:82px}.game-status{position:sticky;top:8px;z-index:15;display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;margin-bottom:14px;padding:10px 13px;border:1px solid var(--line);border-radius:16px;background:rgba(10,9,15,.9);backdrop-filter:blur(18px);box-shadow:0 10px 30px rgba(0,0,0,.2)}.game-status>div:first-child{min-width:0;display:flex;gap:9px;align-items:center}.game-status>div:first-child strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-code{font-size:.75rem;letter-spacing:.1em;color:#d1b8f4;border:1px solid rgba(168,137,232,.2);padding:5px 7px;border-radius:8px}.status-round{display:grid;text-align:center;padding:0 10px;border-left:1px solid var(--line);border-right:1px solid var(--line)}.status-round small{font-size:.6rem;color:var(--muted)}.status-user{font-size:.82rem;display:flex;align-items:center;gap:6px}.life-dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 10px var(--green)}.life-dot.dead{background:#6b6570;box-shadow:none}.game-content{min-height:560px}.bottom-tabs{position:fixed;z-index:30;left:50%;bottom:max(8px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(680px,calc(100% - 18px));display:grid;grid-template-columns:repeat(5,1fr);padding:7px;border-radius:20px;border:1px solid rgba(255,255,255,.11);background:rgba(10,9,15,.94);backdrop-filter:blur(20px);box-shadow:0 18px 50px rgba(0,0,0,.48)}.bottom-tabs button{position:relative;border:0;background:transparent;border-radius:14px;padding:7px 4px;color:#958d9b;cursor:pointer}.bottom-tabs button.active{color:var(--text);background:rgba(168,137,232,.12)}.bottom-tabs span,.bottom-tabs small{display:block}.bottom-tabs span{font-size:1.2rem}.bottom-tabs small{font-size:.67rem;margin-top:2px}.bottom-tabs b{position:absolute;right:16%;top:2px;min-width:17px;height:17px;padding:0 4px;display:grid;place-items:center;border-radius:999px;background:var(--rose);font-size:.62rem;color:#fff}
.secret-cover{min-height:520px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:34px}.secret-cover .seal{width:96px;height:96px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(168,137,232,.35);box-shadow:0 0 0 12px rgba(168,137,232,.04),0 0 60px rgba(168,137,232,.16);font-size:2.4rem;margin-bottom:26px}.secret-cover h2{font-family:Georgia,serif;font-size:2rem;margin:0 0 10px}.secret-cover p:not(.kicker){color:var(--muted);max-width:420px;line-height:1.6}.role-sheet{padding:28px;min-height:520px}.role-sheet-head{display:flex;gap:18px;align-items:center;padding-bottom:22px;border-bottom:1px solid var(--line)}.role-big-icon{width:74px;height:74px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.1);border-radius:22px;background:rgba(255,255,255,.035);font-size:2rem}.role-sheet-head h2{font-family:Georgia,serif;font-size:2.2rem;margin:0 0 5px}.role-sheet-head p:last-child{margin:0;color:var(--muted)}.role-block{margin-top:22px;padding:18px;border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.025);border-radius:15px}.role-block small{font-weight:900;letter-spacing:.13em;color:#c6afd9}.role-block p{margin:7px 0 0;line-height:1.6}.tag-row{display:flex;flex-wrap:wrap;gap:7px;margin:18px 0}.infection-banner{padding:12px 14px;margin:-4px -4px 22px;border:1px solid rgba(239,102,123,.3);background:rgba(239,102,123,.1);color:#ffb2bf;border-radius:12px;font-weight:900;font-size:.84rem}.inherit-note{margin-top:18px;padding:12px;border-left:3px solid var(--gold);background:rgba(217,189,117,.06);color:#d8cba6}.tone-danger{border-color:rgba(239,102,123,.25)}.tone-green{border-color:rgba(117,210,169,.25)}.tone-gold{border-color:rgba(217,189,117,.23)}.tone-blue{border-color:rgba(127,185,222,.22)}
.mail-shell,.people-shell{padding:24px;min-height:560px}.mail-mark{border-color:rgba(217,189,117,.25);color:var(--gold)}.mail-list{display:grid;gap:11px}.mail-item{position:relative;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:rgba(255,255,255,.027);padding:17px 18px 18px;overflow:hidden}.mail-item::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#736a78}.mail-item.kind-role::before{background:var(--violet)}.mail-item.kind-clue::before{background:var(--gold)}.mail-item.kind-warning::before{background:var(--rose)}.mail-item.kind-abyss::before,.mail-item.kind-corrupt::before{background:var(--danger)}.mail-meta{display:flex;justify-content:space-between;gap:10px;color:#8e8591;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase}.mail-item h3{margin:9px 0 8px;font-size:1.03rem}.mail-item p{margin:0;color:#c8bfcb;line-height:1.58;font-size:.92rem}
.action-sheet,.public-log{padding:24px}.public-log{margin-top:14px}.turn-head{display:flex;align-items:center;justify-content:space-between;gap:18px}.turn-head h2,.public-log h2{font-family:Georgia,serif;margin:0}.containment{width:130px;height:8px;border-radius:999px;background:rgba(255,255,255,.06);overflow:hidden}.containment span{display:block;height:100%;background:linear-gradient(90deg,var(--violet),var(--danger));border-radius:999px}.round-brief{margin:18px 0;padding:14px 15px;border:1px solid rgba(217,189,117,.16);border-radius:12px;background:rgba(217,189,117,.045)}.round-brief strong,.round-brief span{display:block}.round-brief strong{color:#e7d39e;margin-bottom:5px}.round-brief span{color:#bfb5c2;font-size:.89rem;line-height:1.5}.action-help{color:#c7bdca;line-height:1.55}.choice-strip{display:flex;flex-wrap:wrap;gap:8px;margin:17px 0}.choice-button{border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.035);padding:10px 12px;border-radius:12px;cursor:pointer;color:#c8bfcb}.choice-button.active{border-color:rgba(168,137,232,.45);background:rgba(168,137,232,.13);color:#fff}.choice-button.danger{color:#ff9bac}.choice-button.danger.active{border-color:rgba(239,102,123,.45);background:rgba(239,102,123,.12)}.action-form{display:grid;gap:6px;margin-top:18px}.discussion-sheet,.locked-sheet,.dead-sheet{text-align:center;padding:36px}.discussion-sheet>p:not(.kicker),.locked-sheet>p,.dead-sheet>p{color:var(--muted);line-height:1.6;max-width:620px;margin-left:auto;margin-right:auto}.feed-list{display:grid;gap:8px}.feed-item{border-left:3px solid rgba(255,255,255,.12);padding:8px 12px;background:rgba(255,255,255,.02);border-radius:0 9px 9px 0}.feed-item.incident{border-color:var(--violet)}.feed-item.death{border-color:var(--danger)}.feed-item.cure{border-color:var(--green)}.feed-item small{font-size:.62rem;color:#8d8490;letter-spacing:.1em}.feed-item p{margin:4px 0;color:#c8bfca;line-height:1.45;font-size:.88rem}
.people-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.person-card{border:1px solid rgba(255,255,255,.075);border-radius:16px;padding:14px;background:rgba(255,255,255,.025)}.person-card.dead{opacity:.62;filter:saturate(.5)}.person-top{display:flex;align-items:center;gap:11px}.person-top h3{margin:0;font-size:1rem}.person-top p{margin:4px 0 0;font-size:.67rem;color:#8d8590;letter-spacing:.08em}.suspicion,.self-tag{margin-top:13px;width:100%;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:8px;background:rgba(255,255,255,.025);color:#8f8792;font-size:.75rem;text-transform:uppercase}.suspicion{cursor:pointer}.suspicion.trust{color:var(--green);border-color:rgba(117,210,169,.25)}.suspicion.doubt{color:var(--gold);border-color:rgba(217,189,117,.25)}.suspicion.danger{color:var(--danger);border-color:rgba(239,102,123,.28)}.self-tag{display:block;text-align:center}
.notes-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:16px}.notebook-card{min-height:560px;padding-left:44px}.notebook-card::after{content:"";position:absolute;left:27px;top:0;bottom:0;border-left:1px solid rgba(132,58,58,.28)}.notebook-card h2{font-size:2rem}.notebook-card textarea{position:relative;z-index:2;width:100%;min-height:390px;resize:vertical;border:0;outline:0;background:transparent;color:var(--ink);font-family:"Segoe Print","Bradley Hand",cursive;font-size:1rem;line-height:28px;padding:0}.notebook-card small,.official-clues>small{position:relative;z-index:2;opacity:.64}.official-clues{min-height:560px}.official-clues ol{padding-left:22px;position:relative}.official-clues li{margin:0 0 14px;padding-left:5px}.official-clues li small{display:block;font-weight:900;opacity:.55;margin-bottom:2px}
.empty-state{padding:38px;text-align:center;color:var(--muted);border:1px dashed rgba(255,255,255,.11);border-radius:16px}.end-screen{text-align:center;padding:clamp(30px,6vw,60px);min-height:650px}.end-symbol{font-size:4rem;margin-bottom:18px}.end-screen h1{font-family:Georgia,serif;font-size:clamp(2.5rem,8vw,5rem);margin:0}.human-win h1{color:#a7e8c9}.abyss-win h1{color:#f096a5}.end-reason{font-size:1.08rem;color:#d1c7d4;max-width:680px;margin:18px auto 28px;line-height:1.6}.reveal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:700px;margin:0 auto}.reveal-grid article{padding:13px;border:1px solid rgba(255,255,255,.08);border-radius:13px;background:rgba(255,255,255,.025)}.reveal-grid strong,.reveal-grid span,.reveal-grid small{display:block}.reveal-grid span{color:#ccb8e6;margin-top:3px}.reveal-grid small{color:#8f8792;margin-top:3px}.end-actions{margin-top:25px}.fatal-card .secondary{margin-top:14px}.toast{position:fixed;z-index:100;left:50%;bottom:100px;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#17131d;border:1px solid var(--line);box-shadow:0 20px 50px rgba(0,0,0,.45);padding:11px 14px;border-radius:12px;color:#f1eaf4;transition:.2s ease;max-width:min(480px,calc(100% - 30px));text-align:center}.toast.show{opacity:1;transform:translate(-50%,0)}.toast.error{border-color:rgba(239,102,123,.35);color:#ffb0bc}
@media(max-width:880px){.landing-grid,.lobby-grid,.notes-grid{grid-template-columns:1fr}.briefing-paper{min-height:auto}.hero-card{min-height:420px}.access-grid{grid-template-columns:1fr 1fr}.lobby-brief{order:-1}.notes-grid{gap:12px}.official-clues,.notebook-card{min-height:auto}}
@media(max-width:680px){:root{--shell:calc(100% - 18px)}.topbar{min-height:62px}.brand-mark{width:36px;height:36px;border-radius:12px}.brand-copy strong{font-size:.82rem}.brand-copy small{font-size:.65rem}.topbar-links a{display:none}.app-shell{padding-top:14px}.landing-grid{gap:12px}.hero-card{padding:26px 20px;min-height:390px;border-radius:20px}.hero-card h1{font-size:clamp(3.6rem,20vw,5.3rem)}.hero-lead{font-size:.98rem;margin:18px 0}.access-grid{grid-template-columns:1fr}.action-card,.dossier-panel,.action-sheet,.public-log,.mail-shell,.people-shell,.role-sheet,.secret-cover{border-radius:19px;padding:18px}.paper-card{padding:22px}.room-header{align-items:flex-start;padding:18px;flex-direction:column}.room-code{align-self:stretch}.room-code strong{font-size:1.9rem}.lobby-brief{padding-top:56px}.player-row{padding:10px}.ready-badge{max-width:92px;text-align:right}.game-frame{padding-bottom:76px}.game-status{top:5px;grid-template-columns:1fr auto;padding:8px 10px}.status-user{display:none}.status-round{border-right:0;padding-right:3px}.game-content{min-height:calc(100vh - 160px)}.bottom-tabs{bottom:max(5px,env(safe-area-inset-bottom));border-radius:17px}.bottom-tabs button{padding:6px 2px}.bottom-tabs small{font-size:.61rem}.role-sheet-head{align-items:flex-start}.role-big-icon{width:58px;height:58px;border-radius:17px;flex:0 0 auto}.role-sheet-head h2{font-size:1.75rem}.mail-item{padding:14px}.turn-head{align-items:flex-start}.containment{width:82px;margin-top:8px}.choice-strip{display:grid;grid-template-columns:1fr}.choice-button{text-align:left}.people-grid{grid-template-columns:1fr}.section-title{align-items:flex-start}.section-title>small{max-width:130px;text-align:right}.notebook-card{padding-left:37px}.notebook-card::after{left:24px}.notebook-card textarea{min-height:330px}.reveal-grid{grid-template-columns:1fr}.end-screen{padding:32px 18px;border-radius:20px;min-height:560px}.toast{bottom:88px}}
@media(max-width:420px){.feature-pills span{font-size:.75rem}.topbar-links .tiny-button{padding:8px}.room-code{width:100%}.section-title{display:block}.section-title .live-dot,.section-title .mail-mark{display:inline-block;margin-top:8px}.ready-badge{font-size:.64rem}.player-copy strong{font-size:.88rem}.bottom-tabs b{right:10%}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* v0.4 · acceso mensual / pases MA */
.access-status{grid-column:1/-1;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;padding:16px 18px;border:1px solid rgba(217,189,117,.22);border-radius:18px;background:linear-gradient(135deg,rgba(217,189,117,.08),rgba(111,77,151,.08));box-shadow:0 16px 45px rgba(0,0,0,.16)}
.access-status.compact{grid-template-columns:auto 1fr;margin:16px 0;padding:12px 13px;border-radius:13px}.access-status.compact .pass-buttons{grid-column:1/-1}
.access-symbol{font-size:1.55rem}.access-copy strong,.access-copy small{display:block}.access-copy strong{font-size:.95rem;color:#f0dfaf}.access-copy small{margin-top:4px;color:#9f96a4;font-size:.72rem}.pass-buttons{display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-end}.pass-button{display:grid;gap:1px;min-width:105px;border:1px solid rgba(255,255,255,.09);border-radius:11px;padding:8px 10px;background:rgba(255,255,255,.035);color:#eee6f0;cursor:pointer;text-align:left}.pass-button:hover{border-color:rgba(217,189,117,.35);background:rgba(217,189,117,.08)}.pass-button b{font-size:.77rem;color:#e3c87f}.pass-button small{font-size:.64rem;color:#aaa0ad}.pass-button:disabled{opacity:.45;cursor:wait}
@media(max-width:680px){.access-status{grid-template-columns:auto 1fr;padding:13px}.access-status .pass-buttons{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);width:100%}.pass-button{min-width:0;padding:8px}.pass-button small{font-size:.58rem}}
.starting-note{margin-top:12px;padding:12px 13px;border:1px solid rgba(117,210,169,.22);border-radius:12px;background:rgba(117,210,169,.06)}.starting-note strong,.starting-note small{display:block}.starting-note strong{color:#9ce2c1}.starting-note small{margin-top:4px;color:#a8a0ab;line-height:1.4}

/* v0.5 · identidad de juego, conversación y avisos privados */
.player-name-card{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,360px);gap:22px;align-items:end}.player-name-card h2{margin:3px 0 5px}.player-name-card p{margin:0;color:var(--muted)}.player-name-card label{margin:0}.infected-secret{display:grid;gap:5px;margin:15px 0;padding:14px;border:1px solid rgba(239,102,123,.34);border-radius:14px;background:rgba(105,12,32,.24)}.infected-secret strong{color:#ffbdc7;font-size:1rem}.infected-secret span{color:#d3b8bd;line-height:1.45}.hidden-immune-note{margin:15px 0;padding:12px 14px;border:1px solid rgba(117,210,169,.22);border-radius:13px;background:rgba(117,210,169,.055);color:#c9ddd3;line-height:1.45}.urgent-mail{width:100%;display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-items:center;margin:8px 0 2px;padding:11px 15px;border:1px solid rgba(239,102,123,.42);border-radius:14px;background:linear-gradient(100deg,rgba(116,17,39,.95),rgba(49,23,64,.96));color:#fff;text-align:left;cursor:pointer;box-shadow:0 9px 28px rgba(0,0,0,.28);animation:mailPulse 1.8s ease-in-out infinite}.urgent-mail span{grid-row:1/3;font-size:1.45rem}.urgent-mail strong{font-size:.9rem}.urgent-mail small{color:#eacbd1;font-size:.69rem}@keyframes mailPulse{50%{border-color:rgba(255,173,186,.8);transform:translateY(-1px)}}.discussion-order{display:grid;grid-template-columns:30px 1fr;gap:10px;align-items:start;margin:12px 0}.discussion-order>span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#6f4d97;color:#fff;font-weight:800}.discussion-order p{margin:2px 0;color:#cfc5d3;line-height:1.45}.discussion-prompt{margin:16px 0;padding:17px;border:1px solid rgba(217,189,117,.38);border-radius:15px;background:linear-gradient(145deg,rgba(217,189,117,.12),rgba(111,77,151,.12));box-shadow:inset 0 0 30px rgba(217,189,117,.035)}.discussion-prompt small{color:#e4c97e;font-weight:800;letter-spacing:.11em}.discussion-prompt h3{margin:6px 0 8px;font-family:Georgia,serif;font-size:1.25rem}.discussion-prompt p{margin:0;color:#fff;font-size:1.04rem;line-height:1.5}.discussion-prompt span{display:block;margin-top:10px;color:#aea3b2;font-size:.76rem;line-height:1.4}.secret-suspicion{margin-top:14px;padding:13px;border:1px dashed rgba(197,171,222,.25);border-radius:13px;background:rgba(111,77,151,.055)}.secret-suspicion label{margin:0}.secret-suspicion small{display:block;margin-top:7px;color:#938a98;line-height:1.35}.inherited-notes{grid-column:1/-1;border-color:rgba(239,102,123,.3)}.inherited-notes>div{margin-top:10px;padding:12px;border-radius:11px;background:rgba(255,255,255,.035)}.inherited-notes small{color:#e3c87f}.inherited-notes p{margin:5px 0 0;line-height:1.5}
@media(max-width:680px){.player-name-card{grid-template-columns:1fr;gap:13px}.urgent-mail{position:sticky;top:63px;z-index:15;margin:6px 0}.discussion-prompt{padding:14px}.discussion-prompt p{font-size:.96rem}}
.discussion-prompt b{display:block;margin-top:10px;color:#e5d9ea;font-size:.76rem;line-height:1.45}

/* v0.6 · horas, actividades y coartadas verificables */
.hour-choice-groups{display:grid;gap:13px;margin:18px 0}.hour-choice-groups>div{padding:13px;border:1px solid rgba(255,255,255,.075);border-radius:15px;background:rgba(255,255,255,.018)}.hour-choice-groups>div>small{display:block;color:#94899a;font-size:.66rem;font-weight:900;letter-spacing:.1em}.hour-choice-groups .choice-strip{margin:9px 0 0}.choice-button.kind-social{border-color:rgba(117,210,169,.18)}.choice-button.kind-social.active{border-color:rgba(117,210,169,.52);background:rgba(117,210,169,.12)}.choice-button.kind-emergency{border-color:rgba(217,189,117,.34);color:#ecd58f}.selected-hour-plan{display:grid;gap:4px;margin:15px 0 4px;padding:14px 15px;border:1px solid rgba(168,137,232,.27);border-radius:13px;background:linear-gradient(135deg,rgba(111,77,151,.12),rgba(117,210,169,.04))}.selected-hour-plan small{color:#aa99bc;font-size:.63rem;font-weight:900;letter-spacing:.11em}.selected-hour-plan strong{color:#f5eff7}.selected-hour-plan span{color:#bdb2c1;font-size:.82rem;line-height:1.45}.mail-item.kind-hour::before{background:#75d2a9}.feed-item.warning{border-color:#e4c97e}.sectarian-custody{display:grid;gap:5px;margin:15px 0;padding:14px;border:1px solid rgba(168,137,232,.42);border-radius:14px;background:linear-gradient(135deg,rgba(75,31,100,.35),rgba(105,12,32,.22))}.sectarian-custody strong{color:#dfc7ff}.sectarian-custody span{color:#cdbbd4;line-height:1.45}.status-round strong{font-size:.78rem;white-space:nowrap}
@media(max-width:680px){.hour-choice-groups{gap:10px}.hour-choice-groups>div{padding:11px}.selected-hour-plan{padding:12px}.status-round strong{font-size:.7rem}}

/* v0.7 · lugares, citas y lectura por horas */
.game-active .topbar-links{visibility:hidden;pointer-events:none}.game-active [data-lhpw-open-login]{display:none!important}
.mail-hour-group,.hour-recap,.hour-choice-group{border:1px solid rgba(255,255,255,.085);border-radius:15px;background:rgba(255,255,255,.018);overflow:hidden}.mail-hour-group>summary,.hour-recap>summary,.hour-choice-group>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px;cursor:pointer;list-style:none;text-align:left}.mail-hour-group>summary::-webkit-details-marker,.hour-recap>summary::-webkit-details-marker,.hour-choice-group>summary::-webkit-details-marker{display:none}.mail-hour-group>summary::after,.hour-recap>summary::after,.hour-choice-group>summary::after{content:'＋';color:#9c90a2;font-weight:700;flex:0 0 auto}.mail-hour-group[open]>summary::after,.hour-recap[open]>summary::after,.hour-choice-group[open]>summary::after{content:'−'}.mail-hour-group>summary span,.hour-recap>summary span,.hour-choice-group>summary span{font-weight:800;color:#e8dfea}.mail-hour-group>summary small,.hour-recap>summary small,.hour-choice-group>summary small{margin-left:auto;color:#93899a;font-size:.69rem}.mail-hour-group>div{display:grid;gap:9px;padding:0 10px 10px}.mail-hour-group .mail-item{border-radius:11px}.hour-recap{margin:18px 0;text-align:left;border-color:rgba(117,210,169,.22);background:rgba(117,210,169,.035)}.hour-recap>summary span{color:#c9efdc}.hour-recap-body{display:grid;gap:8px;padding:0 10px 10px}.mail-item.compact{padding:13px 15px}.mail-item.compact h3{font-size:.9rem;margin:7px 0 5px}.mail-item.compact p{font-size:.82rem}.empty-recap{padding:0 5px 5px;color:var(--muted)}
.appointment-box{margin:18px 0;padding:16px;border:1px solid rgba(168,137,232,.3);border-radius:16px;background:linear-gradient(145deg,rgba(111,77,151,.14),rgba(255,255,255,.018));text-align:left}.appointment-box.confirmed{border-color:rgba(117,210,169,.42);background:linear-gradient(145deg,rgba(41,104,77,.2),rgba(111,77,151,.08))}.appointment-heading{display:flex;align-items:center;gap:11px}.appointment-heading>span{font-size:1.7rem}.appointment-heading small{color:#bba8cc;font-size:.65rem;font-weight:900;letter-spacing:.09em}.appointment-heading h3{margin:3px 0 0;font-family:Georgia,serif;font-size:1.3rem}.appointment-box>p{margin:11px 0;color:#c4bac8;line-height:1.5;font-size:.88rem}.appointment-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}.appointment-form label{margin:0}.appointment-form button{min-height:45px}.appointment-outgoing,.incoming-appointments>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:rgba(255,255,255,.025)}.appointment-outgoing.declined{border-color:rgba(239,102,123,.25);background:rgba(239,102,123,.055)}.appointment-outgoing.declined span{color:#e3bac1}.incoming-appointments{display:grid;gap:8px;margin-top:13px}.incoming-appointments>small{color:#d8bfef;font-weight:900;font-size:.64rem;letter-spacing:.1em}.incoming-appointments span,.appointment-outgoing span{font-size:.84rem;color:#c9bfcc}.incoming-appointments button{padding:8px 11px;flex:0 0 auto}
.hour-choice-group{border-radius:13px}.hour-choice-group>summary{padding:11px 13px}.hour-choice-group>summary span{text-transform:uppercase;font-size:.7rem;letter-spacing:.09em}.hour-choice-group .choice-strip{padding:0 11px 11px;margin:0}.hour-choice-group.kind-place{border-color:rgba(117,210,169,.2)}.hour-choice-group.kind-personal{border-color:rgba(127,185,222,.18)}.hour-choice-group.kind-appointment{border-color:rgba(217,189,117,.34);background:rgba(217,189,117,.055)}.choice-button.kind-place{border-color:rgba(117,210,169,.2)}.choice-button.kind-place.active{border-color:rgba(117,210,169,.55);background:rgba(117,210,169,.12)}.choice-button.kind-personal{border-color:rgba(127,185,222,.2)}.choice-button.kind-personal.active{border-color:rgba(127,185,222,.52);background:rgba(127,185,222,.11)}.choice-button.kind-appointment{border-color:rgba(217,189,117,.42);color:#f1dfa8}.choice-button.kind-appointment.active{border-color:rgba(217,189,117,.7);background:rgba(217,189,117,.13)}
@media(max-width:680px){.mail-hour-group>summary,.hour-recap>summary,.hour-choice-group>summary{padding:11px 12px}.mail-hour-group>summary small,.hour-recap>summary small,.hour-choice-group>summary small{max-width:110px;text-align:right}.appointment-form{grid-template-columns:1fr}.appointment-form button{width:100%}.appointment-outgoing,.incoming-appointments>div{align-items:flex-start}.hour-recap-body{padding:0 7px 7px}.game-active .topbar{min-height:54px}.game-active .app-shell{padding-top:8px}}
