.auth-shell{background:radial-gradient(ellipse at 50% 0%, #d4a73a1f, transparent 60%), var(--bg-deep);-webkit-user-select:text;user-select:text;flex-direction:column;justify-content:center;align-items:center;height:100%;min-height:100%;padding:32px 16px;display:flex;position:relative;overflow-y:auto}.auth-glow{pointer-events:none;background:radial-gradient(circle at 15% 85%,#6a3fb029,#0000 45%);position:absolute;inset:0}.auth-card{z-index:1;background:var(--bg-panel);border:1px solid var(--border-gold);text-align:center;border-radius:18px;width:100%;max-width:400px;padding:32px 28px 24px;position:relative;box-shadow:0 24px 60px #0000008c}.auth-logo{filter:drop-shadow(0 10px 22px #0009);width:min(320px,88%);margin:-6px auto 2px;display:block}.auth-card h1{color:var(--gold-bright);letter-spacing:.12em;text-transform:uppercase;font-size:28px}.auth-tagline{color:var(--text-dim);margin:6px 0 22px;font-size:13px;font-style:italic}.auth-tabs{background:#0000004d;border-radius:12px;gap:4px;margin-bottom:18px;padding:4px;display:flex}.auth-tabs button{color:var(--text-dim);cursor:pointer;background:0 0;border:0;border-radius:9px;flex:1;padding:9px 6px;font-size:13px;font-weight:600}.auth-tabs button.active{background:var(--bg-card);color:var(--gold-bright);box-shadow:inset 0 0 0 1px var(--border-gold)}.auth-form{text-align:left;flex-direction:column;gap:14px;display:flex}.auth-form label{color:var(--text-dim);flex-direction:column;gap:6px;font-size:12px;font-weight:600;display:flex}.auth-form input[type=email],.auth-form input[type=text],.auth-form input[type=password],.auth-form input:not([type]){border:1px solid var(--border-subtle);color:var(--text-main);background:#00000059;border-radius:10px;outline:none;padding:11px 12px;font-size:15px}.auth-form input:focus{border-color:var(--gold);box-shadow:0 0 0 3px #e5b84b2e}.auth-form small{color:var(--text-dim);font-weight:400}.auth-code{text-align:center;letter-spacing:.4em;font-variant-numeric:tabular-nums;font-size:26px!important}.auth-check{align-items:flex-start;line-height:1.4;flex-direction:row!important;font-weight:400!important}.auth-check input{accent-color:var(--gold);margin-top:2px}.auth-primary{background:linear-gradient(180deg, var(--gold-bright), var(--gold));color:#1c1406;cursor:pointer;border:0;border-radius:11px;margin-top:4px;padding:12px 16px;font-size:15px;font-weight:700}.auth-primary:disabled{opacity:.55;cursor:default}.auth-link{color:var(--gold-bright);text-underline-offset:2px;cursor:pointer;font-size:inherit;background:0 0;border:0;padding:0;text-decoration:underline}.auth-row{justify-content:space-between;font-size:13px;display:flex}.auth-note{color:var(--text-dim);text-align:center;font-size:12px}.auth-info,.auth-error{text-align:left;border-radius:10px;margin-top:14px;padding:10px 12px;font-size:13px}.auth-info{background:#3ddc841a;border:1px solid #3ddc8459}.auth-error{background:#ff54541a;border:1px solid #ff545466}.auth-footer{color:var(--text-dim);gap:8px;margin-top:18px;font-size:12px;display:flex;position:relative}.auth-footer .auth-link{color:var(--text-dim)}.auth-modal-backdrop{z-index:100;background:#030408c7;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.auth-modal{background:var(--bg-panel);border:1px solid var(--border-gold);-webkit-user-select:text;user-select:text;border-radius:16px;width:100%;max-width:640px;max-height:85vh;padding:24px;overflow-y:auto}.auth-modal h2{color:var(--gold-bright);font-size:20px}.auth-modal h3{color:var(--gold);margin:14px 0 4px;font-size:14px}.auth-modal p{color:var(--text-main);font-size:13px;line-height:1.55}.auth-draft{margin-top:6px;color:#ffd27a!important}.splash{height:100%;color:var(--text-dim);flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex}.splash-logo{width:220px;animation:1.6s ease-in-out infinite splash-pulse}@keyframes splash-pulse{50%{opacity:.5;transform:scale(.96)}}.pt-shell{background:radial-gradient(ellipse at 50% -10%, #d4a73a1a, transparent 55%), var(--bg-deep);-webkit-user-select:text;user-select:text;flex-direction:column;height:100%;display:flex;overflow-y:auto}.pt-header{z-index:5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border-subtle);background:#090b12d9;justify-content:space-between;align-items:center;padding:12px 28px;display:flex;position:sticky;top:0}.pt-brand{letter-spacing:.16em;color:var(--gold-bright);align-items:center;gap:10px;font-family:Cinzel,serif;font-weight:700;display:flex}.pt-brand .nd-brand-logo{width:64px}.pt-nav{align-items:center;gap:14px;display:flex}.pt-nav>button,.pt-link{color:var(--text-dim);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:6px 8px;font-size:14px}.pt-nav>button:hover,.pt-link:hover{color:var(--text-main);background:#ffffff0d}.pt-user{position:relative}.pt-user-btn{background:var(--bg-card);border:1px solid var(--border-subtle);color:var(--text-main);cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:4px 12px 4px 4px;display:flex}.pt-avatar{background:linear-gradient(135deg, var(--gold), #8a5a1a);color:#1c1406;border-radius:50%;place-items:center;width:28px;height:28px;font-weight:800;display:grid}.pt-user-name{text-overflow:ellipsis;white-space:nowrap;max-width:140px;font-size:13px;font-weight:600;overflow:hidden}.pt-plan{color:var(--text-dim);font-size:11px}.pt-menu{background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:12px;min-width:220px;padding:6px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 18px 40px #00000080}.pt-menu button{text-align:left;width:100%;color:var(--text-main);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:9px 12px;font-size:13px;display:block}.pt-menu button:hover{background:#ffffff0f}.pt-menu button.danger{color:#ff9c9c}.pt-main{flex:1;width:100%;max-width:1080px;margin:0 auto;padding:40px 24px 24px}.pt-maintenance{background:#ffc23d1f;border:1px solid #ffc23d66;border-radius:10px;margin-bottom:18px;padding:10px 14px;font-size:14px}.pt-title{color:var(--text-main);margin-bottom:22px;font-size:26px}.pt-cards{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.pt-card{text-align:left;background:var(--bg-card);border:1px solid var(--border-subtle);color:var(--text-dim);cursor:pointer;border-radius:16px;flex-direction:column;align-items:flex-start;gap:8px;padding:22px;font-size:14px;line-height:1.45;transition:border-color .15s,transform .15s;display:flex}.pt-card strong{color:var(--text-main);font-family:Cinzel,serif;font-size:18px}.pt-card:hover{border-color:var(--border-gold);transform:translateY(-2px)}.pt-card.active{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold) inset, 0 10px 30px #e5b84b1f}.pt-card-icon{font-size:28px}.pt-flow{background:var(--bg-panel);border:1px solid var(--border-gold);border-radius:16px;margin-top:20px;padding:24px}.pt-flow h2{color:var(--gold);margin:4px 0 12px;font-size:15px}.pt-flow h2:not(:first-child){margin-top:22px}.pt-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.pt-input,.pt-search{border:1px solid var(--border-subtle);color:var(--text-main);background:#00000059;border-radius:10px;outline:none;flex:1;min-width:260px;padding:11px 14px;font-size:15px}.pt-input:focus,.pt-search:focus{border-color:var(--gold)}.pt-code{letter-spacing:.25em;text-transform:uppercase;flex:0 0 180px;min-width:0;font-weight:700}.pt-room-status{color:var(--text-dim);font-size:13px}.pt-primary,.pt-secondary{cursor:pointer;border-radius:11px;padding:11px 20px;font-size:14px;font-weight:700}.pt-primary{background:linear-gradient(180deg, var(--gold-bright), var(--gold));color:#1c1406;border:0}.pt-primary:disabled{opacity:.55;cursor:default}.pt-secondary{border:1px solid var(--border-gold);color:var(--gold-bright);background:0 0}.pt-wide{width:100%;margin-top:20px}.pt-hint{color:var(--text-dim);margin-top:10px;font-size:13px}.pt-seg{background:#0000004d;border-radius:11px;flex-wrap:wrap;gap:4px;padding:4px;display:inline-flex}.pt-seg button{color:var(--text-dim);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:7px 12px;font-size:13px;font-weight:600}.pt-seg button.active{background:var(--bg-card);color:var(--gold-bright);box-shadow:inset 0 0 0 1px var(--border-gold)}.pt-seg-lg button{padding:10px 18px;font-size:14px}.pt-picker-bar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;display:flex}.pt-search{min-width:200px;max-width:280px;padding:8px 12px;font-size:13px}.pt-hero-grid{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:10px;max-height:340px;padding:2px;display:grid;overflow-y:auto}.pt-hero{background:var(--bg-card);border:1px solid var(--border-subtle);color:var(--text-main);cursor:pointer;border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:10px 8px;display:flex}.pt-hero.taken{opacity:.45;cursor:not-allowed;filter:grayscale(.7)}.pt-hero.selected{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold) inset}.pt-hero strong{font-size:13px}.pt-hero small{color:var(--text-dim);text-align:center;font-size:11px;line-height:1.25}.pt-portrait{background-color:#222;border:2px solid #e5b84b80;border-radius:50%;width:72px;height:72px}.pt-hero-line{color:var(--text-dim);margin-top:12px;font-size:13px}.pt-map-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;max-height:360px;padding:2px;display:grid;overflow-y:auto}.pt-map{text-align:left;background:var(--bg-card);border:1px solid var(--border-subtle);color:var(--text-main);cursor:pointer;border-radius:12px;flex-direction:column;gap:6px;padding:14px;display:flex}.pt-map p{color:var(--text-dim);font-size:12px;line-height:1.4}.pt-map.selected{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold) inset}.pt-map.mine strong{color:var(--gold-bright)}.pt-map-meta{color:var(--accent-blue);font-size:11px}.pt-recent{margin-top:34px}.pt-recent-head{justify-content:space-between;align-items:baseline;display:flex}.pt-recent-head h2{color:var(--text-main);font-size:16px}.pt-recent-list{flex-direction:column;gap:8px;margin-top:10px;display:flex}.pt-recent-item{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.pt-recent-item small{color:var(--text-dim);margin-top:2px;font-size:12px;display:block}.pt-footer{color:var(--text-dim);border-top:1px solid var(--border-subtle);justify-content:center;align-items:center;gap:16px;padding:18px;font-size:12px;display:flex}@media (width<=820px){.pt-cards{grid-template-columns:1fr}.pt-header{padding:10px 14px}.pt-user-name,.pt-plan{display:none}}.pt-main,.pt-footer{z-index:1;position:relative}.pt-header{border-bottom-color:var(--nd-copper-line)}.pt-about-body{border:1px solid var(--nd-copper-line);background:#0f172adb;border-radius:16px;max-width:760px;padding:20px 24px;font-size:15px;line-height:1.65}.topbar.tb{border-bottom:1px solid var(--border-subtle);background:#0a0c14f5;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;min-height:52px;padding:6px 12px;display:grid}.tb-left,.tb-right{align-items:center;gap:8px;min-width:0;display:flex}.tb-right{justify-content:flex-end}.tb-room{border:1px solid var(--border-subtle);color:var(--text-main);cursor:pointer;background:#ffffff08;border-radius:8px;align-items:center;gap:6px;padding:5px 10px;font-size:12px;display:flex}.tb-room-code{letter-spacing:.12em;font-weight:700}.tb-dot{background:#ff9c3d;border-radius:50%;width:8px;height:8px;box-shadow:0 0 6px #ff9c3d}.tb-dot.on{background:var(--success);box-shadow:0 0 6px var(--success)}.tb-scene{flex-direction:column;min-width:0;line-height:1.15;display:flex}.tb-scene small{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.tb-scene strong{white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.tb-center{border:1px solid var(--border-subtle);background:#00000059;border-radius:12px;align-items:center;gap:2px;padding:3px;display:flex}.tb-sep{background:var(--border-subtle);width:1px;height:22px;margin:0 4px}.tb-tool,.tb-btn{color:var(--text-dim);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:9px;align-items:center;gap:6px;padding:6px 10px;font-size:12.5px;font-weight:600;display:flex}.tb-btn{border:1px solid var(--border-subtle);color:var(--text-main);background:#ffffff08}.tb-tool:hover,.tb-btn:hover{color:var(--text-main);background:#ffffff12}.tb-tool.active,.tb-btn.active{color:var(--gold-bright);box-shadow:inset 0 0 0 1px var(--border-gold);background:#e5b84b29}.tb-caret{opacity:.6;font-size:10px}.tb-menu{position:relative}.tb-pop{z-index:40;background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:12px;flex-direction:column;gap:2px;min-width:260px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 18px 40px #0000008c}.tb-center .tb-pop{left:0;right:auto}.tb-item{text-align:left;color:var(--text-main);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:8px 10px;font-size:13px}.tb-item:hover,.tb-item.active{background:#ffffff12}.tb-item-row{color:var(--text-dim);align-items:center;gap:6px;padding:6px 10px;font-size:12px;display:flex}.tb-item-row input[type=range]{accent-color:var(--gold);flex:1}.tb-chip{border:1px solid var(--border-subtle);color:var(--text-main);cursor:pointer;background:#ffffff0a;border-radius:7px;padding:4px 9px;font-size:12px}.tb-chip.active{border-color:var(--gold);color:var(--gold-bright)}@media (width<=1280px){.tb .tb-label{display:none}}.tt{z-index:12;border:1px solid var(--border-gold);background:#0a0c14e0;border-radius:14px;max-width:calc(100% - 24px);padding:8px 10px 10px;position:absolute;top:10px;left:10px;box-shadow:0 12px 30px #00000080}.tt-head{white-space:nowrap;align-items:center;gap:10px;margin-bottom:8px;font-size:12px;display:flex}.tt-round{color:var(--text-dim)}.tt-now{color:var(--gold-bright);font-weight:700}.tt-budget{color:var(--accent-blue)}.tt-end{background:linear-gradient(180deg, var(--nd-amber), var(--nd-copper));color:#fff;cursor:pointer;border:0;border-radius:8px;margin-left:auto;padding:5px 10px;font-size:12px;font-weight:700}.tt-list{gap:6px;list-style:none;display:flex;overflow-x:auto}.tt-item button{color:var(--text-dim);cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:3px;padding:0;display:flex;position:relative}.tt-face{background-color:#222;border:2px solid #ffffff26;border-radius:50%;place-items:center;width:38px;height:38px;font-size:18px;display:grid}.tt-item.pc .tt-face{border-color:#e5b84b99}.tt-item.npc .tt-face{border-color:#ff545499}.tt-item.current .tt-face{border-color:var(--gold-bright);box-shadow:0 0 0 3px #ffd97859,0 0 14px #ffd97880}.tt-item.dead{opacity:.35}.tt-hp{background:var(--success);border-radius:2px;max-width:30px;height:3px;position:absolute;bottom:15px;left:4px}.tt-item small{font-size:10px}.toasts{z-index:200;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:18px;left:50%;transform:translate(-50%)}.toast{border:1px solid var(--border-subtle);background:#10131ef5;border-radius:12px;max-width:min(560px,92vw);padding:10px 16px;font-size:13.5px;animation:.2s ease-out toast-in;box-shadow:0 12px 30px #00000080}.toast.success{border-color:#3ddc8480}.toast.error{border-color:#ff545499}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.conn-overlay{z-index:30;color:var(--text-main);background:#05060ab8;flex-direction:column;justify-content:center;align-items:center;gap:12px;font-size:15px;display:flex;position:absolute;inset:0}.gm-exit-card{background:#4aa8ff1f;border:1px solid #4aa8ff73;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;margin:8px 10px 0;padding:8px 10px;font-size:12px;display:flex}.trigger-pick{flex-direction:column;gap:4px;max-height:140px;display:flex;overflow-y:auto}.check-row{cursor:pointer;align-items:flex-start;gap:8px;font-size:12px;line-height:1.35;display:flex}.check-row input{accent-color:var(--gold);margin-top:2px}.trigger-row{border-bottom:1px solid var(--border-subtle);align-items:center;gap:8px;padding:4px 0;font-size:12px;display:flex}.trigger-row small{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.mini-select{color:var(--text-main);border:1px solid var(--border-subtle);background:#0006;border-radius:6px;padding:2px;font-size:11px}.adv-steps{color:var(--text-dim);flex-direction:column;gap:4px;margin:10px 0 0 18px;font-size:12px;display:flex}.adv-steps li.current{color:var(--gold-bright);font-weight:700}.chat-msg{position:relative}.chat-actions{opacity:0;gap:2px;transition:opacity .12s;display:flex;position:absolute;top:2px;right:2px}.chat-msg:hover .chat-actions,.chat-msg:focus-within .chat-actions{opacity:1}@media (hover:none){.chat-actions{opacity:.85}}.chat-actions button{color:var(--text-main);cursor:pointer;background:#0009;border:0;border-radius:6px;padding:2px 5px;font-size:11px}.report-box{background:#ff545414;border:1px solid #ff545459;border-radius:8px;flex-direction:column;gap:6px;margin:6px 0;padding:8px;font-size:12px;display:flex}.report-box select,.report-box input{color:var(--text-main);border:1px solid var(--border-subtle);background:#0006;border-radius:6px;padding:4px 6px}.float-text{text-shadow:0 2px 6px #000000e6;pointer-events:none;white-space:nowrap;font-family:Cinzel,serif;font-size:22px;font-weight:800;animation:1.5s ease-out forwards float-up}.float-text.dmg{color:#ff5d5d}.float-text.heal{color:#5dff9b}.float-text.miss{color:#cfd6e6;font-size:16px}@keyframes float-up{0%{opacity:0;transform:translateY(10px)scale(.7)}15%{opacity:1;transform:translateY(0)scale(1.15)}to{opacity:0;transform:translateY(-46px)scale(1)}}.chunk-handle{color:#f2c14e;white-space:nowrap;cursor:pointer;background:#0e1320eb;border:1px dashed #f2c14ec7;border-radius:999px;padding:5px 10px;font-size:11px;font-weight:700;box-shadow:0 4px 14px #000000a6}.chat-msg.narration{border-left:3px solid var(--gold);background:#e5b84b12;font-style:italic}.chat-msg.sys.secret{opacity:.85;border-left:3px solid #b388ff}.tb-logo{flex:none;width:46px}.tb-hint{color:var(--text-dim);white-space:nowrap;font-size:11.5px}.table-shell .workspace{flex:1;min-height:0;display:grid;position:relative}.table-shell .workspace.player-only{grid-template-columns:1fr}.table-shell .workspace.with-gm{grid-template-columns:300px minmax(0,1fr)}.stage-viewport{overflow:hidden;container:stage/inline-size}.stage-viewport .canvas-wrap{z-index:0;isolation:isolate;position:absolute;inset:0}.stage-viewport .stage-banner{z-index:16;top:28%}.toasts{bottom:120px}.nd-hud{z-index:12;pointer-events:none;flex-direction:column;justify-content:space-between;padding:10px;display:flex;position:absolute;inset:0}.nd-hud-top,.nd-hud-bottom{pointer-events:none;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:10px;display:grid}.nd-hud-top{align-items:start}.nd-hud-bottom{align-items:end}.nd-hud-top>*,.nd-hud-bottom>*,.nd-hud>.video-dock{pointer-events:auto}.nd-panel-surface,.nd-scene,.nd-hero,.nd-actions,.nd-hud .tt{border:1px solid var(--nd-copper-line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0f172ae6;border-radius:14px;box-shadow:0 10px 28px #00000073}.nd-scene{flex-direction:column;grid-column:1;justify-self:start;gap:3px;max-width:300px;padding:8px 12px 10px;display:flex}.nd-scene-mode{color:var(--nd-muted);white-space:nowrap;text-overflow:ellipsis;font-size:10.5px;overflow:hidden}.nd-scene-name{color:var(--nd-emerald);font-family:Cinzel,serif;font-size:14px}.nd-scene-goal{color:var(--nd-text);font-size:12px;line-height:1.35}.nd-scene-actions{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.nd-scene .adv-steps{margin-top:6px}.nd-hud .tt{grid-column:2;justify-self:center;max-width:min(560px,100%);position:static}.nd-hud .tt.my-turn{border-color:var(--nd-emerald);box-shadow:0 0 0 2px #34d39959,0 10px 28px #00000073}.nd-hud .tt.my-turn .tt-now{color:var(--nd-emerald);font-size:14px}.nd-corner{flex-wrap:wrap;grid-column:3;justify-content:flex-end;justify-self:end;gap:6px;display:flex}.nd-corner-btn{border:1px solid var(--nd-copper-line);min-height:44px;color:var(--nd-text);cursor:pointer;background:#0f172ae6;border-radius:12px;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:600;display:inline-flex;position:relative;box-shadow:0 6px 18px #0006}.nd-corner-btn:hover{border-color:var(--nd-amber)}.nd-corner-btn.active{border-color:var(--nd-emerald);color:var(--nd-emerald);background:#10b98124}.nd-corner-btn:focus-visible,.nd-action:focus-visible,.nd-btn:focus-visible,.nd-icon-btn:focus-visible,.nd-hero:focus-visible{outline:2px solid var(--nd-emerald);outline-offset:2px}.nd-menu-btn{font-size:15px}.nd-badge{background:var(--nd-copper);color:#fff;border-radius:10px;place-items:center;min-width:20px;height:20px;padding:0 5px;font-size:11px;font-weight:800;display:grid;position:absolute;top:-6px;right:-6px}.nd-only-narrow{display:none}.nd-hero{width:min(300px,100%);color:var(--nd-text);text-align:left;cursor:pointer;grid-column:1;justify-self:start;align-items:center;gap:10px;padding:8px 10px;display:flex}.nd-hero.dead{filter:grayscale(.8)}.nd-face{border:2px solid var(--nd-amber);background-color:#1f2937;border-radius:12px;flex:none;place-items:center;width:52px;height:52px;font-size:24px;display:grid}.nd-hero-info{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.nd-hero-info strong{white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.nd-tag{color:var(--nd-muted);background:#ffffff1a;border-radius:6px;margin-left:6px;padding:1px 6px;font-size:10px;font-style:normal;font-weight:700}.nd-tag--me{color:var(--nd-emerald);background:#10b98133}.nd-tag--down{color:#fca5a5;background:#ef444433}.nd-bar{grid-template-columns:54px 1fr auto;align-items:center;gap:6px;font-size:11px;display:grid}.nd-bar-label{color:var(--nd-muted)}.nd-bar-track{background:#ffffff1a;border-radius:4px;height:7px;overflow:hidden}.nd-bar-fill{border-radius:4px;height:100%;transition:width .3s;display:block}.nd-bar-num{font-variant-numeric:tabular-nums;text-align:right;min-width:42px;font-weight:700}.nd-bar--hp .nd-bar-fill{background:#22c55e}.nd-bar--hp.mid .nd-bar-fill{background:#eab308}.nd-bar--hp.low .nd-bar-fill{background:#ef4444}.nd-bar--mp .nd-bar-fill{background:linear-gradient(90deg,#3b68db,#7aa8ff)}.nd-bar--sta .nd-bar-fill{background:linear-gradient(90deg, var(--nd-copper), var(--nd-amber))}.nd-actions-wrap{flex-direction:column;grid-column:2;align-items:center;gap:6px;display:flex}.nd-action-hint,.nd-budget{border:1px solid var(--nd-copper-line);color:var(--nd-text);background:#0f172ae6;border-radius:999px;padding:4px 10px;font-size:12px}.nd-action-hint{border-color:var(--nd-emerald);color:var(--nd-emerald)}.nd-actions{gap:4px;padding:6px;display:flex}.nd-action{min-width:64px;min-height:52px;color:var(--nd-text);cursor:pointer;background:#ffffff0a;border:1px solid #0000;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:4px 10px;font-size:12px;font-weight:600;display:flex}.nd-action span:first-child{font-size:18px}.nd-action:hover:not(:disabled){border-color:var(--nd-amber)}.nd-action.active{border-color:var(--nd-emerald);color:var(--nd-emerald);background:#10b98129}.nd-action:disabled{opacity:.4;cursor:not-allowed}.nd-action--end{background:linear-gradient(180deg, var(--nd-amber), var(--nd-copper));color:#fff}.nd-action-pop{position:relative}.nd-spells{background:var(--nd-stone);border:1px solid var(--nd-copper-line);z-index:5;border-radius:12px;flex-direction:column;gap:4px;width:240px;max-height:50vh;padding:6px;display:flex;position:absolute;bottom:calc(100% + 8px);left:50%;overflow-y:auto;transform:translate(-50%);box-shadow:0 14px 30px #0000008c}.nd-spells button{min-height:40px;color:var(--nd-text);text-align:left;cursor:pointer;background:#ffffff0a;border:1px solid #0000;border-radius:8px;align-items:center;gap:6px;padding:6px 10px;font-size:13px;display:flex}.nd-spells button small{color:#8ab4ff;margin-left:auto;font-weight:700}.nd-spells button.active,.nd-spells button:hover:not(:disabled){border-color:var(--nd-emerald)}.nd-spells button:disabled{opacity:.45;cursor:not-allowed}.nd-hud>.video-dock{flex-flow:column;align-items:flex-start;max-height:50%;position:absolute;top:50%;bottom:auto;left:10px;overflow-y:auto;transform:translateY(-50%)}.nd-hud .video-tile{width:140px;height:104px;margin:0}.nd-hud .video-tile img,.nd-hud .video-tile video{object-fit:cover;width:100%;height:100%;display:block}.nd-drawer{z-index:20;border:1px solid var(--nd-copper-line);background:#111827f7;border-radius:14px;outline:none;flex-direction:column;width:min(380px,100% - 20px);animation:.18s ease-out nd-drawer-in;display:flex;position:absolute;top:66px;bottom:10px;right:10px;box-shadow:0 18px 40px #0009}@keyframes nd-drawer-in{0%{opacity:0;transform:translate(14px)}}.nd-drawer-head,.nd-dialog-head{border-bottom:1px solid var(--nd-copper-line);justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}.nd-drawer-head h2,.nd-dialog-head h2{color:var(--nd-emerald);font-size:15px}.nd-drawer-body{flex-direction:column;flex:1;gap:10px;min-height:0;padding:10px 12px 12px;display:flex;overflow-y:auto}.nd-drawer--chat .nd-drawer-body{overflow:hidden}.nd-icon-btn{border:1px solid var(--border-subtle);width:40px;height:40px;color:var(--nd-text);cursor:pointer;background:#ffffff0d;border-radius:10px;flex:none;font-size:16px}.nd-icon-btn:hover{border-color:var(--nd-amber)}.nd-chat{flex-direction:column;flex:1;gap:8px;min-height:0;display:flex}.nd-tabs{gap:4px;display:flex}.nd-tabs button{border:1px solid var(--border-subtle);min-height:40px;color:var(--nd-text);cursor:pointer;background:#ffffff0a;border-radius:10px;flex:1;font-weight:600}.nd-tabs button.active{border-color:var(--nd-emerald);color:var(--nd-emerald);background:#10b9811f}.nd-chat .chat-input-row button{min-height:40px}.nd-party{flex-direction:column;gap:8px;list-style:none;display:flex}.nd-party li{border:1px solid var(--border-subtle);background:#ffffff08;border-radius:12px;align-items:center;gap:6px;padding:6px;display:flex}.nd-party li.active{border-color:var(--nd-emerald)}.nd-party li.dead{opacity:.6}.nd-party-row{min-width:0;color:var(--nd-text);text-align:left;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:10px;padding:0;display:flex}.nd-party-row .nd-face{width:44px;height:44px}.nd-party-info{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.nd-party-info strong{font-size:13px}.nd-stack{flex-direction:column;gap:8px;display:flex}.sheet-ro-note{border:1px solid var(--nd-copper-line);color:#fcd9a8;background:#d977061f;border-radius:8px;padding:6px 8px;font-size:11.5px}.sheet-statuses{flex-wrap:wrap;gap:4px;display:flex}.sheet-statuses .mini-btn{padding:2px 7px;font-size:10px}.nd-overlay{z-index:120;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#020617b8;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.nd-dialog{background:var(--nd-stone);border:1px solid var(--nd-copper-line);width:min(460px,100%);max-height:calc(100vh - 32px);color:var(--nd-text);-webkit-user-select:text;user-select:text;border-radius:16px;outline:none;flex-direction:column;display:flex;box-shadow:0 24px 60px #0009}.nd-dialog--lg{width:min(760px,100%)}.nd-dialog-body{flex-direction:column;gap:10px;padding:14px 16px 16px;font-size:13.5px;line-height:1.45;display:flex;overflow-y:auto}.nd-dialog-foot{border-top:1px solid var(--nd-copper-line);justify-content:flex-end;gap:8px;padding:10px 16px;display:flex}.nd-menu-grid{grid-template-columns:190px minmax(0,1fr);gap:16px;min-height:320px;display:grid}.nd-menu-nav{flex-direction:column;gap:4px;display:flex}.nd-menu-nav button{min-height:44px;color:var(--nd-text);text-align:left;cursor:pointer;background:#ffffff0a;border:1px solid #0000;border-radius:10px;padding:0 12px;font-size:13.5px;font-weight:600}.nd-menu-nav button.active{border-color:var(--nd-emerald);color:var(--nd-emerald);background:#10b9811f}.nd-menu-nav button.danger{color:#fca5a5;margin-top:auto}.nd-menu-body h3{color:var(--nd-emerald);margin-bottom:10px;font-size:15px}.nd-fieldset{border:1px solid var(--border-subtle);border-radius:12px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.nd-fieldset legend{color:var(--nd-amber);padding:0 6px;font-size:12px;font-weight:700}.nd-check{cursor:pointer;align-items:flex-start;gap:8px;min-height:32px;font-size:13px;display:flex}.nd-check input{accent-color:var(--nd-emerald-strong);width:18px;height:18px;margin-top:3px}.nd-range{min-width:120px;accent-color:var(--nd-emerald-strong);flex:1}.nd-invite{text-align:center;flex-direction:column;align-items:center;gap:12px;display:flex}.nd-code{letter-spacing:.22em;color:var(--nd-emerald);-webkit-user-select:all;user-select:all;font-family:Cinzel,serif;font-size:30px;font-weight:900}.nd-qr{background:#fff;border-radius:12px;padding:10px;line-height:0}.nd-rules{flex-direction:column;gap:8px;padding-left:18px;display:flex}.nd-rules strong{color:var(--nd-amber)}.nd-report-list{flex-direction:column;gap:6px;list-style:none;display:flex}.nd-report-list li{background:#ffffff0a;border-radius:10px;align-items:center;gap:8px;padding:6px 8px;font-size:12.5px;display:flex}.nd-report-list li span{text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.nd-outcome .nd-dialog-head h2{font-size:18px}.nd-outcome.defeat{border-color:#ef444499}.nd-outcome.defeat .nd-dialog-head h2{color:#fca5a5}.nd-outcome-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.qr-frame{justify-content:center;display:flex}@container stage (width<=1240px){.nd-corner{flex-wrap:nowrap}.nd-corner-label{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.nd-corner-btn{justify-content:center;width:44px;padding:0;font-size:18px}}@container stage (width<=1080px){.nd-hud .tt{grid-area:2/1/auto/-1}}@media (width<=900px){.table-shell .workspace.with-gm{grid-template-columns:1fr}.table-shell .workspace.with-gm>.gm-panel{z-index:60;border-top:1px solid var(--nd-copper-line);border-radius:16px 16px 0 0;height:min(72vh,620px);transition:transform .2s ease-out;position:fixed;bottom:0;left:0;right:0;transform:translateY(105%)}.table-shell .workspace.with-gm.gm-open>.gm-panel{transform:none}.nd-only-narrow{display:inline-flex}.nd-hud{padding:6px}.nd-hud-top{grid-template-columns:minmax(0,1fr) auto;grid-auto-rows:auto}.nd-scene{grid-column:1;max-width:100%;padding:6px 10px 8px}.nd-scene-goal{font-size:11.5px}.nd-corner{flex-flow:column;grid-area:1/2}.nd-corner-label{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.nd-corner-btn{justify-content:center;width:44px;padding:0;font-size:18px}.nd-hud .tt{grid-area:2/1/auto/-1;justify-self:stretch;max-width:100%}.nd-hud .tt .tt-end{min-height:40px}.nd-hud-bottom{grid-template-columns:1fr;justify-items:center;gap:6px}.nd-hero{grid-area:1/1;justify-self:stretch;width:100%;padding:6px 8px}.nd-face{width:42px;height:42px}.nd-actions-wrap{grid-area:2/1;width:100%}.nd-actions{justify-content:space-between;width:100%}.nd-action{flex:1;min-width:0;min-height:52px;padding:4px 2px;font-size:11px}.nd-hud>.video-dock{flex-direction:row;max-width:calc(100% - 70px);top:auto;bottom:190px;overflow-x:auto;transform:none}.nd-hud .video-tile{width:96px;height:72px}.nd-drawer{z-index:60;border-radius:16px 16px 0 0;width:auto;height:min(72vh,620px);animation:.2s ease-out nd-sheet-in;position:fixed;inset:auto 0 0}.nd-menu-grid{grid-template-columns:1fr}.nd-menu-nav{flex-direction:row;overflow-x:auto}.nd-menu-nav button{flex:none}.nd-menu-nav button.danger{margin-top:0}.nd-overlay{align-items:end;padding:0}.nd-dialog,.nd-dialog--lg{border-radius:16px 16px 0 0;width:100%;max-height:88vh}.topbar.tb .tb-scene,.topbar.tb .tb-label{display:none}.toasts{top:12px;bottom:auto}.stage-viewport .stage-banner{max-width:calc(100% - 24px);top:40%}}@keyframes nd-sheet-in{0%{opacity:0;transform:translateY(40px)}}@media (prefers-reduced-motion:reduce){.nd-drawer,.table-shell .workspace.with-gm>.gm-panel{transition:none;animation:none}}.sd{border-top:1px solid var(--nd-copper-line);flex-direction:column;gap:10px;margin-top:6px;padding-top:10px;display:flex}.sd-head{flex-wrap:wrap;gap:4px 14px;font-size:12px;display:flex}.sd-head strong,.sd p strong,.sd-npc p strong{color:var(--nd-amber)}.sd-row{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.sd-stat{border:1px solid var(--border-subtle);text-align:center;background:#ffffff0a;border-radius:10px;flex-direction:column;align-items:center;padding:6px 4px;display:flex}.sd-stat small{color:var(--nd-muted);text-transform:uppercase;letter-spacing:.04em;font-size:9.5px}.sd-stat strong{color:var(--nd-emerald);font-size:16px}.sd-block{border:1px solid var(--border-subtle);background:#ffffff08;border-radius:12px;padding:8px 10px;font-size:12px}.sd-block h4{color:var(--nd-emerald);align-items:center;gap:6px;margin-bottom:6px;font-family:Cinzel,serif;font-size:12px;display:flex}.sd-block.soon{opacity:.7}.sd-soon{color:var(--nd-muted);border:1px dashed var(--nd-copper-line);border-radius:999px;margin-left:auto;padding:1px 7px;font-family:Inter,system-ui,sans-serif;font-size:10px;font-style:normal}.sd-checks{grid-template-columns:1fr 1fr;gap:3px 12px;list-style:none;display:grid}.sd-checks li{align-items:center;gap:6px;display:flex}.sd-checks li strong{font-variant-numeric:tabular-nums;margin-left:auto}.sd-skills small{color:var(--nd-muted)}.sd-dot{border:1.5px solid var(--nd-amber);flex:none;width:9px;height:9px;transform:rotate(45deg)}.sd-checks li.prof .sd-dot{background:var(--nd-emerald);border-color:var(--nd-emerald);box-shadow:0 0 6px #34d399b3}.sd-note,.sd-credits{color:var(--nd-muted);margin-top:6px;font-size:10.5px}.sd-death.down{color:#fca5a5}.sd-features{flex-direction:column;gap:6px;list-style:none;display:flex}.sd-features p{color:var(--nd-text);margin-top:2px}.sd-features small{color:var(--nd-muted)}.sd-npc{border:1px solid var(--nd-copper-line);background:#c2410c14;border-radius:12px;flex-direction:column;gap:6px;padding:8px 10px;font-size:12px;display:flex}.sd-npc-role{color:var(--nd-muted)}.sd-secret{border:1px dashed var(--nd-emerald);background:#10b9811a;border-radius:8px;padding:6px 8px}.sd-secret strong{align-items:center;gap:6px;display:flex;color:var(--nd-emerald)!important}.cp{flex-direction:column;gap:8px;display:flex}.cp-seg{gap:4px;display:flex}.cp-seg button{border:1px solid var(--border-subtle);min-height:36px;color:var(--nd-text);cursor:pointer;background:#ffffff0a;border-radius:10px;flex:1;justify-content:center;align-items:center;gap:4px;font-size:12px;font-weight:600;display:inline-flex}.cp-seg button.active{border-color:var(--nd-emerald);color:var(--nd-emerald);background:#10b9811f}.cp-search{border:1px solid var(--border-subtle);min-height:36px;color:var(--nd-text);background:#0000004d;border-radius:10px;padding:0 10px}.cp-list{flex-direction:column;gap:6px;display:flex}.cp:not(.cp--compact) .cp-list{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));align-items:start;display:grid}.cp-card{border:1px solid var(--border-subtle);background:#111827d9;border-radius:12px}.cp-card[open]{border-color:var(--nd-copper-line)}.cp-card summary{cursor:pointer;align-items:center;gap:8px;padding:8px 10px;list-style:none;display:flex}.cp-card summary::-webkit-details-marker{display:none}.cp-swatch{border:1px solid var(--nd-copper-line);color:#fff;background:#3b2a1a;border-radius:8px;flex:none;place-items:center;width:30px;height:30px;display:grid}.cp-name{flex-direction:column;min-width:0;display:flex}.cp-name strong{font-size:13px}.cp-name small{color:var(--nd-muted);font-size:11px}.cp-body{flex-direction:column;gap:6px;padding:0 10px 10px;font-size:12px;line-height:1.45;display:flex}.cp-stats{color:var(--nd-text)}.cp-attrs{color:var(--nd-muted);flex-wrap:wrap;gap:4px 10px;font-size:11px;display:flex}:root{--nd-navy:#0f172a;--nd-stone:#111827;--nd-stone-2:#1f2937;--nd-emerald:#34d399;--nd-emerald-strong:#10b981;--nd-copper:#c2410c;--nd-amber:#d97706;--nd-copper-line:#d9770661;--nd-text:#e5e7eb;--nd-muted:#9ca3af;--bg-deep:var(--nd-navy);--bg-panel:#111827f0;--bg-card:#1f2937d9;--border-gold:var(--nd-copper-line);--border-subtle:#ffffff17;--gold:var(--nd-amber);--gold-bright:var(--nd-emerald);--accent-blue:#4aa8ff;--danger:#ef4444;--success:#22c55e;--text-main:var(--nd-text);--text-dim:var(--nd-muted);color:var(--text-main);background:var(--bg-deep);font-family:Inter,system-ui,-apple-system,sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{background:var(--bg-deep);-webkit-user-select:none;user-select:none;width:100%;height:100%;overflow:hidden}h1,h2,h3{letter-spacing:.03em;font-family:Cinzel,serif}button,input{color:inherit;font-family:inherit}.nd-btn{border:1px solid var(--border-subtle);min-height:40px;color:var(--nd-text);cursor:pointer;background:#ffffff0d;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:0 14px;font-size:13px;font-weight:600;display:inline-flex}.nd-btn:hover:not(:disabled){border-color:var(--nd-amber)}.nd-btn:disabled{opacity:.45;cursor:not-allowed}.nd-btn--primary{border-color:var(--nd-emerald-strong);background:linear-gradient(180deg, var(--nd-emerald-strong), #047857);color:#ecfdf5}.nd-btn--primary:hover:not(:disabled){border-color:var(--nd-emerald)}.nd-btn--danger{color:#fecaca;background:#ef44441f;border-color:#ef444499}.nd-btn--warn{border-color:var(--nd-amber);color:#fcd9a8}.nd-btn--ghost{background:0 0}.nd-btn--sm{min-height:32px;padding:0 10px;font-size:12px}.nd-brand-logo{line-height:0;display:inline-block}.nd-brand-logo img{width:100%;height:auto;display:block}.nd-keyart{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.nd-keyart--fixed{position:fixed}.nd-keyart img{object-fit:cover;object-position:center 35%;width:100%;height:100%}.nd-keyart:after{content:"";background:radial-gradient(at 50% 40%,#0f172a59,#0f172ad1 70%),linear-gradient(#0f172a66,#0f172aeb);position:absolute;inset:0}.nd-sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.nd-icon{vertical-align:-.2em;flex:none}.nd-icon--glow,.active>.nd-icon,[aria-pressed=true]>.nd-icon{color:var(--nd-emerald);filter:drop-shadow(0 0 3px #34d399bf)}.crash{z-index:300;background:radial-gradient(circle at 50% 20%, #10b9811f, transparent 60%), var(--nd-navy);place-items:center;padding:20px;display:grid;position:fixed;inset:0}.crash.crash-canvas{z-index:5;position:absolute}.crash-card{text-align:center;background:var(--nd-stone);border:1px solid var(--nd-copper-line);border-radius:16px;flex-direction:column;align-items:center;gap:10px;max-width:420px;padding:24px;display:flex}.crash-card h2{color:var(--nd-emerald)}.crash-card p{color:var(--nd-muted);font-size:13.5px}.crash-logo{width:200px}.crash-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.field-label{color:var(--text-dim);flex-direction:column;gap:6px;font-size:12px;font-weight:600;display:flex}.field-label input{border:1px solid var(--border-subtle);color:var(--text-main);background:#00000059;border-radius:8px;padding:10px 12px;font-size:13px}.primary-btn{border:1px solid var(--gold);color:#fff;cursor:pointer;background:linear-gradient(135deg,#c89628,#8c6214);border-radius:10px;padding:13px 18px;font-size:14px;font-weight:700;box-shadow:0 6px 20px #c8962859}.primary-btn:hover{filter:brightness(1.08)}.app-shell{flex-direction:column;width:100%;height:100%;display:flex}.topbar{border-bottom:1px solid var(--border-gold);z-index:30;background:#0c0e16f5;justify-content:space-between;align-items:center;gap:10px;height:52px;padding:0 12px;display:flex}.brand-pill{color:var(--gold-bright);letter-spacing:.05em;font-family:Cinzel,serif;font-size:14px;font-weight:800}.room-chip{border:1px solid var(--border-subtle);cursor:pointer;background:#ffffff0a;border-radius:8px;align-items:center;gap:5px;padding:4px 9px;font-size:11.5px;display:flex}.tool-btn{border:1px solid var(--border-subtle);cursor:pointer;white-space:nowrap;background:#ffffff0a;border-radius:8px;padding:6px 10px;font-size:12px;font-weight:500}.tool-btn:hover{background:#ffffff17}.tool-btn.active{border-color:var(--gold);color:var(--gold-bright);background:#d4a73a3d}.mini-btn{border:1px solid var(--border-subtle);cursor:pointer;background:#ffffff0f;border-radius:6px;padding:4px 7px;font-size:11px}.mini-btn.active{border-color:var(--gold);color:var(--gold-bright)}.mini-btn.warn{color:#ffd080;border-color:#f0ad4e}.mini-btn.danger,.tool-btn.danger{color:#ff9494;border-color:#ff545480}.side-panel{background:var(--bg-panel);border-right:1px solid var(--border-subtle);flex-direction:column;gap:10px;padding:10px;display:flex;overflow-y:auto}.hint-text{color:var(--text-dim);font-size:11px;line-height:1.35}.sub-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);margin-top:2px;font-size:10.5px}.chip-btn{border:1px solid var(--border-subtle);cursor:pointer;text-align:left;background:#ffffff0a;border-radius:7px;align-items:center;gap:4px;padding:6px 7px;font-size:11.5px;display:flex}.chip-btn.active{border-color:var(--gold);color:var(--gold-bright);background:#d4a73a38}.slider-row{justify-content:space-between;align-items:center;margin-top:4px;font-size:11.5px;display:flex}.badge-count{color:var(--text-dim);font-size:11px}.npc-list{flex-direction:column;gap:5px;max-height:190px;display:flex;overflow-y:auto}.npc-row{cursor:pointer;background:#00000047;border:1px solid #0000;border-radius:7px;align-items:center;gap:7px;padding:6px;display:flex}.npc-row.selected{border-color:var(--gold)}.npc-row.dead{opacity:.48}.npc-info{flex-direction:column;flex:1;font-size:11.5px;display:flex}.npc-info small{color:var(--text-dim);font-size:10.5px}.npc-actions{gap:3px;display:flex}.stage-viewport{background:#05070d;width:100%;min-width:0;height:100%;position:relative}.canvas-wrap{width:100%;height:100%}.mini-label{border:1px solid var(--gold);white-space:nowrap;color:#fff;background:#0a0c14e0;border-radius:6px;padding:3px 8px;font-size:11px;font-weight:600}.mini-label.npc{border-color:#ff6b6b}.mini-tag{text-transform:uppercase;background:#ffffff24;border-radius:4px;margin-left:5px;padding:1px 4px;font-size:9.5px}.dist-badge{color:#bfe8ff;white-space:nowrap;background:#0f1626e6;border:1px solid #7fd8ff;border-radius:99px;padding:2px 7px;font-size:11px;font-weight:700}.stage-banner{border:1px solid var(--gold);text-align:center;pointer-events:none;background:#0a0c14e0;border-radius:12px;padding:12px 28px;animation:4.2s forwards fadeBanner;position:absolute;top:22px;left:50%;transform:translate(-50%);box-shadow:0 12px 35px #000000b3}.stage-banner h2{color:var(--gold-bright);font-size:18px}.stage-banner p{color:var(--text-dim);font-size:12.5px}@keyframes fadeBanner{0%{opacity:0;transform:translate(-50%,-10px)}12%{opacity:1;transform:translate(-50%)}82%{opacity:1}to{opacity:0}}.sheet-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:10px;flex-direction:column;gap:7px;padding:9px;display:flex}.sheet-header{align-items:center;gap:8px;display:flex}.sheet-avatar{border-radius:8px;place-items:center;width:34px;height:34px;font-size:18px;display:grid}.sheet-title{flex-direction:column;flex:1;display:flex}.sheet-title strong{font-size:13.5px}.sheet-title span{color:var(--text-dim);font-size:11px}.sheet-badges{gap:4px;display:flex}.stat-pill{background:#ffffff12;border-radius:6px;padding:2px 6px;font-size:11px;font-weight:600}.hp-block{flex-direction:column;gap:4px;display:flex}.hp-top{justify-content:space-between;font-size:11.5px;display:flex}.hp-track{background:#00000073;border-radius:99px;height:7px;overflow:hidden}.hp-fill{height:100%;transition:width .2s}.hp-controls{justify-content:flex-end;gap:4px;display:flex}.stats-grid{grid-template-columns:repeat(6,1fr);gap:4px;display:grid}.stat-box{border:1px solid var(--border-subtle);background:#0000004d;border-radius:7px;flex-direction:column;align-items:center;padding:3px;display:flex}.stat-roll{cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:center;width:100%;display:flex}.stat-name{color:var(--text-dim);font-size:9.5px}.stat-mod{color:var(--gold-bright);font-size:13px}.stat-val{color:var(--text-dim);font-size:10px}.stat-stepper{gap:2px;margin-top:2px;display:flex}.stat-stepper button{border:1px solid var(--border-subtle);cursor:pointer;background:#ffffff0d;border-radius:3px;width:18px;height:15px;font-size:10px}.attack-box{border:1px solid var(--border-subtle);background:#00000047;border-radius:8px;justify-content:space-between;align-items:center;padding:6px 8px;font-size:12px;display:flex}.attack-meta{color:var(--text-dim);font-size:11px}.attack-btn{border:1px solid var(--gold);cursor:pointer;background:linear-gradient(135deg,#b83728,#7a1c14);border-radius:8px;padding:7px 11px;font-size:12px;font-weight:700}.sys-rolls{grid-template-columns:1fr 1fr;gap:4px;display:grid}.dice-tray{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:10px;flex-direction:column;gap:6px;padding:8px;display:flex}.tray-head{justify-content:space-between;align-items:center;font-size:11.5px;font-weight:600;display:flex}.secret-toggle{color:var(--gold);cursor:pointer;align-items:center;gap:4px;font-size:11px;display:flex}.dice-grid{grid-template-columns:repeat(5,1fr);gap:4px;display:grid}.die-btn{border:1px solid var(--border-subtle);cursor:pointer;background:#ffffff0d;border-radius:6px;padding:5px 4px;font-size:11px;font-weight:600}.die-btn:hover{border-color:var(--gold);color:var(--gold-bright)}.chat-box{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:10px;flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.chat-log{-webkit-user-select:text;user-select:text;flex-direction:column;flex:1;gap:6px;padding:8px;font-size:12px;display:flex;overflow-y:auto}.chat-msg.sys{color:var(--gold);font-size:11.5px;font-style:italic}.chat-msg.sys.err{color:var(--danger)}.chat-msg.emote{color:#c5b3ff;font-style:italic}.gm-author{color:var(--gold-bright)}.roll-card{border:1px solid var(--border-subtle);background:#00000059;border-radius:8px;padding:7px 9px}.roll-card.secret{background:#6236b02e;border-color:#b388ff}.roll-card.crit{border-color:var(--gold-bright);box-shadow:inset 0 0 12px #ffd97840}.roll-card.fumble{border-color:var(--danger)}.roll-top{color:var(--text-dim);align-items:center;gap:6px;font-size:11px;display:flex}.sec-pill{color:#e0ccff;background:#b388ff40;border-radius:4px;padding:1px 5px;font-size:9.5px}.roll-body{justify-content:space-between;align-items:center;margin-top:3px;display:flex}.roll-detail{color:var(--text-dim);font-family:monospace;font-size:11.5px}.roll-total{color:var(--gold-bright);font-size:18px;font-weight:800}.crit-banner{color:var(--gold-bright);margin-top:3px;font-size:10.5px;font-weight:700}.fumble-banner{color:var(--danger);margin-top:3px;font-size:10.5px;font-weight:700}.chat-input-row{border-top:1px solid var(--border-subtle);display:flex}.chat-input-row input{background:#0006;border:none;outline:none;flex:1;padding:8px 10px;font-size:12px}.chat-input-row button{background:var(--nd-emerald-strong);color:#ecfdf5;cursor:pointer;border:none;padding:0 12px;font-size:12px;font-weight:600}.video-dock{z-index:15;flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex;position:absolute;bottom:14px;left:14px}.video-tile{border:2px solid var(--border-gold);background:#0b0e17;border-radius:12px;width:156px;height:116px;position:relative;overflow:hidden;box-shadow:0 10px 24px #000000a6}.video-tile.phone-cam{border-color:var(--success)}.video-tile video{object-fit:cover;width:100%;height:100%}.video-caption{background:linear-gradient(#0000,#000000d9);justify-content:space-between;padding:3px 7px;font-size:11px;display:flex;position:absolute;bottom:0;left:0;right:0}.cam-pill{color:var(--success);font-size:10px;font-style:normal}.modal-desc{color:var(--text-dim);font-size:12.5px;line-height:1.45}.qr-frame{background:#fff;border-radius:12px;align-self:center;padding:12px;box-shadow:0 8px 25px #00000080}.qr-url-box{border:1px solid var(--border-subtle);background:#00000073;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:11.5px;display:flex;overflow:hidden}.qr-url-box code{text-overflow:ellipsis;white-space:nowrap;color:var(--gold-bright);overflow:hidden}.mobile-cam-screen{background:#05070c;flex-direction:column;gap:12px;width:100%;height:100%;padding:14px;display:flex}.mobile-cam-top{justify-content:space-between;align-items:center;display:flex}.mobile-video-Stage{border:1px solid var(--border-gold);background:#0c101b;border-radius:16px;flex:1;place-items:center;display:grid;overflow:hidden}.mobile-video-Stage video{object-fit:cover;width:100%;height:100%}.mobile-cam-cta{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:24px;display:flex}.cam-big-ico{font-size:48px}.mobile-cam-controls{justify-content:center;gap:10px;display:flex}.mobile-cam-error{border:1px solid var(--danger);background:#ff54542e;border-radius:8px;padding:10px;font-size:12px}.sheet-portrait-2d{border:1px solid var(--gold);background-color:#141824;border-radius:9px;flex-shrink:0;width:48px;height:56px;box-shadow:0 4px 12px #00000080}.pack-mini-grid{grid-template-columns:repeat(5,1fr);gap:5px;display:grid}.pack-mini-card{border:1px solid var(--border-subtle);cursor:pointer;background:#0000004d;border-radius:7px;flex-direction:column;align-items:center;padding:4px 2px;display:flex}.pack-mini-card:hover{border-color:var(--gold)}.pack-thumb{border:1px solid #ffffff24;border-radius:6px;width:38px;height:44px}.pack-name{white-space:nowrap;text-overflow:ellipsis;max-width:46px;margin-top:2px;font-size:9.5px;overflow:hidden}.tool-btn.nano-btn,.mini-btn.nano-btn{color:var(--gold-bright);background:#d4a73a24;border-color:#ffd97899}.side-panel.gm-hud{gap:0;padding:0;overflow:hidden}.gm-status{border-bottom:1px solid var(--border-subtle);background:linear-gradient(#e5b84b14,#0000);flex-direction:column;gap:7px;padding:10px 10px 8px;display:flex}.gm-status-title{align-items:center;gap:8px;min-width:0;display:flex}.gm-status-title>div{flex-direction:column;min-width:0;display:flex}.gm-status-title small{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-size:9.5px}.gm-status-title strong{color:var(--gold-bright);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.gm-status-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px;box-shadow:0 0 0 2px #ffffff1f}.gm-status-chips{flex-wrap:wrap;gap:4px;display:flex}.gm-chip{border:1px solid var(--border-subtle);color:var(--text-main);cursor:pointer;white-space:nowrap;background:#ffffff0a;border-radius:999px;padding:3px 7px;font-size:10.5px}.gm-chip:hover{border-color:var(--border-gold)}.gm-chip em{color:#ffb86b;font-style:normal}.gm-tabs{border-bottom:1px solid var(--border-subtle);background:#0000002e;grid-template-columns:repeat(6,1fr);display:grid}.gm-tab{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex-direction:column;align-items:center;gap:1px;padding:7px 2px 6px;transition:color .15s,background .15s,border-color .15s;display:flex}.gm-tab:hover{color:var(--text-main);background:#ffffff08}.gm-tab.active{color:var(--gold-bright);border-bottom-color:var(--gold);background:#e5b84b14}.gm-tab-icon{font-size:16px;line-height:1}.gm-tab-label{text-transform:uppercase;letter-spacing:.04em;font-size:8.5px}.gm-tab-body{flex-direction:column;flex:1;gap:6px;min-height:0;padding:8px;display:flex;overflow-y:auto}.hud-section{border:1px solid var(--border-subtle);background:var(--bg-card);border-radius:9px}.hud-section-head{justify-content:space-between;align-items:center;gap:4px;padding:2px 6px 2px 2px;display:flex}.hud-section-toggle{min-width:0;color:var(--text-main);cursor:pointer;text-align:left;background:0 0;border:none;flex:1;align-items:center;gap:5px;padding:6px 4px;display:flex}.hud-section-toggle strong{color:var(--gold-bright);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.hud-caret{width:10px;color:var(--text-dim);font-size:10px}.hud-hint{color:var(--text-dim);cursor:help;opacity:.7;font-size:11px}.hud-hint:hover{opacity:1;color:var(--gold-bright)}.hud-section-actions{align-items:center;gap:3px;display:flex}.hud-section-body{flex-direction:column;gap:6px;padding:2px 8px 8px;display:flex}.icon-grid{grid-template-columns:repeat(4,1fr);gap:4px;display:grid}.icon-btn{border:1px solid var(--border-subtle);color:var(--text-main);cursor:pointer;background:#ffffff08;border-radius:7px;flex-direction:column;align-items:center;gap:2px;min-width:0;padding:6px 2px 5px;transition:border-color .12s,background .12s;display:flex}.icon-btn span{font-size:17px;line-height:1.1}.icon-btn small{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:9.5px;overflow:hidden}.icon-btn:hover{border-color:var(--border-gold);background:#e5b84b0f}.icon-btn.active{border-color:var(--gold);background:#d4a73a33}.icon-btn.active small{color:var(--gold-bright)}.stage-list{flex-direction:column;gap:3px;max-height:230px;display:flex;overflow-y:auto}.stage-row{cursor:pointer;border:1px solid #0000;border-radius:6px;align-items:center;gap:6px;padding:5px 6px;font-size:11.5px;display:flex}.stage-row:hover{background:#ffffff0a}.stage-row.active{border-color:var(--border-gold);background:#e5b84b1f}.stage-row-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.stage-row-num{color:var(--text-dim);text-align:right;width:14px;font-size:10px}.stage-row-name{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.stage-row.active .stage-row-name{color:var(--gold-bright);font-weight:600}.stage-row-meta{color:var(--text-dim);white-space:nowrap;font-size:10px}.stage-row-del{color:var(--text-dim);cursor:pointer;opacity:0;background:0 0;border:none;padding:0 2px;font-size:10px}.stage-row:hover .stage-row-del{opacity:1}.stage-row-del:hover{color:var(--danger)}.chunk-minimap-wrap{background:#00000038;border-radius:8px;flex-direction:column;align-items:center;gap:6px;padding:8px 4px 2px;display:flex}.chunk-minimap{justify-content:center;gap:3px;display:grid}.cm-cell{border-radius:5px;justify-content:center;align-items:center;width:30px;height:30px;padding:0;font-size:15px;display:flex}.cm-cell.empty{background:0 0}.cm-cell.slot{color:var(--gold);cursor:pointer;background:0 0;border:1px dashed #e5b84b73;font-size:16px}.cm-cell.slot:hover{background:#e5b84b29;border-style:solid}.cm-cell.chunk{border:1px solid var(--border-subtle);cursor:pointer;background:#ffffff12}.cm-cell.chunk.base{border-color:var(--border-gold);cursor:default;background:#e5b84b2e}.cm-cell.chunk.selected{border-color:var(--danger);box-shadow:0 0 0 1px var(--danger) inset}.chunk-minimap-info{align-items:center;gap:8px;min-height:24px;font-size:11px;display:flex}.chunk-minimap-info small{color:var(--text-dim);font-size:10.5px}.hud-form{border:1px solid var(--border-gold);background:#080b14b3;border-radius:8px;flex-direction:column;gap:5px;padding:8px;display:flex}.hud-form-row{grid-template-columns:1fr 1fr;gap:5px;display:grid}.hud-form input,.hud-form select,.hud-select,.hud-input{width:100%;min-width:0;color:var(--text-main);border:1px solid var(--border-subtle);background:#0d1220;border-radius:6px;padding:5px 7px;font-size:11px}.hud-form input:focus,.hud-select:focus,.hud-input:focus{border-color:var(--gold);outline:none}.hud-cta{justify-content:center;font-weight:700}.hud-inline{align-items:center;gap:5px;display:flex}.hud-grow{cursor:pointer;flex:1;justify-content:center;min-width:0}.seg{background:#00000040;border-radius:7px;grid-template-columns:repeat(3,1fr);gap:2px;padding:2px;display:grid}.seg-btn{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:5px;padding:5px 2px;font-size:10.5px}.seg-btn small{opacity:.7}.seg-btn.active{color:var(--gold-bright);background:#e5b84b33}.npc-list.tall{max-height:none}.npc-hpbar{background:#ffffff14;border-radius:2px;height:3px;margin:2px 0 1px;overflow:hidden}.npc-hpbar span{background:linear-gradient(90deg,#ff5454,#3ddc84);height:100%;display:block}.nd-md h1,.nd-md h2,.nd-md h3,.nd-md h4{color:var(--nd-emerald);margin:18px 0 8px}.nd-md h3{font-size:18px}.nd-md p,.nd-md ul,.nd-md ol,.nd-md blockquote{margin:0 0 12px}.nd-md ul,.nd-md ol{padding-left:22px}.nd-md li{margin-bottom:4px}.nd-md strong{color:#fcd9a8}.nd-md blockquote{border-left:3px solid var(--nd-amber);color:var(--nd-muted);padding:8px 14px;font-style:italic}.nd-md a{color:var(--nd-emerald)}.nd-md hr{border:0;border-top:1px solid var(--nd-copper-line);margin:16px 0}
