:root{color-scheme:light dark;--bg: #0c1116;--bg-elevated: #141c25;--bg-rgb: 12, 17, 22;--surface-rgb: 20, 28, 37;--border: #243240;--border-rgb: 36, 50, 64;--fg: #f1f4f8;--fg-rgb: 241, 244, 248;--fg-muted: #95a4b3;--accent: #ffd365;--accent-rgb: 255, 211, 101;--accent-strong: #ffd365;--danger: #ff6f6f;--danger-rgb: 255, 111, 111;--good: #5ee0a0;--good-rgb: 94, 224, 160;--on-accent: #1d1300;--shadow-rgb: 0, 0, 0;--hover-overlay-rgb: 255, 255, 255;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans TC,PingFang TC,sans-serif}:root[data-theme=light],:root[data-theme=light] body{color-scheme:light;--bg: #f6f7fa;--bg-elevated: #ffffff;--bg-rgb: 246, 247, 250;--surface-rgb: 255, 255, 255;--border: #d8dde6;--border-rgb: 216, 221, 230;--fg: #1c2531;--fg-rgb: 28, 37, 49;--fg-muted: #5b6878;--accent: #b8730e;--accent-rgb: 184, 115, 14;--accent-strong: #8a5200;--danger: #c63e3e;--danger-rgb: 198, 62, 62;--good: #1f8a5b;--good-rgb: 31, 138, 91;--on-accent: #fff7e1;--shadow-rgb: 30, 41, 59;--hover-overlay-rgb: 28, 37, 49}@media (prefers-color-scheme: light){:root:not([data-theme=dark]){color-scheme:light;--bg: #f6f7fa;--bg-elevated: #ffffff;--bg-rgb: 246, 247, 250;--surface-rgb: 255, 255, 255;--border: #d8dde6;--border-rgb: 216, 221, 230;--fg: #1c2531;--fg-rgb: 28, 37, 49;--fg-muted: #5b6878;--accent: #b8730e;--accent-rgb: 184, 115, 14;--accent-strong: #8a5200;--danger: #c63e3e;--danger-rgb: 198, 62, 62;--good: #1f8a5b;--good-rgb: 31, 138, 91;--on-accent: #fff7e1;--shadow-rgb: 30, 41, 59;--hover-overlay-rgb: 28, 37, 49}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;background:var(--bg);color:var(--fg)}button{font:inherit;cursor:pointer;border:1px solid var(--border);background:var(--bg-elevated);color:var(--fg);padding:8px 14px;border-radius:8px;transition:background .15s ease,border-color .15s ease}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent);font-weight:600}input,textarea{font:inherit;background:var(--bg-elevated);color:var(--fg);border:1px solid var(--border);border-radius:8px;padding:8px 12px}input:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px}a{color:var(--accent)}.page{min-height:100%;padding:24px;display:flex;flex-direction:column;gap:16px}.page-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.page-header h1{margin:0;font-size:20px}.page-subtitle{color:var(--fg-muted);margin:0}.card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;padding:16px}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.stat-card strong{font-size:24px;display:block}.stat-card span{color:var(--fg-muted);font-size:13px}button.ghost{background:transparent;color:var(--fg)}button.ghost:hover:not(:disabled){background:rgba(var(--accent-rgb),.08)}button.link-button{background:transparent;border:none;color:var(--fg-muted);padding:6px 8px;font-size:13px;cursor:pointer}button.link-button:hover{color:var(--accent);text-decoration:underline}.brand-bar{display:flex;align-items:center;gap:16px;padding:12px 20px;border-bottom:1px solid rgba(var(--hover-overlay-rgb),.06);background:linear-gradient(180deg,rgba(var(--surface-rgb),.92),rgba(var(--surface-rgb),.7));backdrop-filter:blur(10px);position:sticky;top:0;z-index:40}.brand-bar-mark{display:inline-flex;align-items:center;gap:10px;color:var(--fg);text-decoration:none}.brand-bar-glyph{display:inline-flex;width:32px;height:32px;align-items:center;justify-content:center;border-radius:8px;background:rgba(var(--accent-rgb),.12)}.brand-bar-words{display:inline-flex;flex-direction:column;line-height:1}.brand-bar-words strong{font-size:15px;letter-spacing:.04em;background:linear-gradient(180deg,#fff5d8,#ffd365 60%,#c79430);-webkit-background-clip:text;background-clip:text;color:transparent}.brand-bar-words span{font-size:11px;letter-spacing:.18em;color:var(--fg-muted);text-transform:uppercase;margin-top:2px}.brand-bar-context{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--fg-muted);padding-left:12px;border-left:1px solid rgba(var(--hover-overlay-rgb),.08)}.brand-bar-trailing{margin-left:auto;display:inline-flex;align-items:center;gap:10px}.brand-bar-user{font-size:13px;color:var(--fg-muted)}.brand-bar-locale{background:rgba(var(--hover-overlay-rgb),.04);border:1px solid rgba(var(--hover-overlay-rgb),.12);border-radius:999px;padding:2px 10px;color:var(--fg-muted);font-size:11px;letter-spacing:.08em;cursor:pointer;transition:background .16s ease,color .16s ease,border-color .16s ease}.brand-bar-locale:hover{background:rgba(var(--accent-rgb),.12);border-color:rgba(var(--accent-rgb),.4);color:var(--fg)}.auth-page{min-height:100vh;display:flex;flex-direction:column;background:radial-gradient(ellipse at 20% 0%,rgba(var(--accent-rgb),.06),transparent 50%),radial-gradient(ellipse at 80% 100%,rgba(var(--good-rgb),.04),transparent 60%),var(--bg)}.auth-shell{flex:1 1 auto;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(380px,480px);gap:64px;padding:56px 64px;align-items:center;max-width:1200px;margin:0 auto}@media (max-width: 920px){.auth-shell{grid-template-columns:1fr;gap:32px;padding:32px 24px}}.auth-hero .kicker{text-transform:uppercase;letter-spacing:.22em;color:var(--accent);font-size:12px;margin:0 0 12px}.auth-hero h1{font-size:40px;line-height:1.1;margin:0 0 20px;letter-spacing:.01em;background:linear-gradient(180deg,#fff5d8,#ffd365 70%,#c79430);-webkit-background-clip:text;background-clip:text;color:transparent}:root[data-theme=light] .auth-hero h1{background:linear-gradient(180deg,#d97e0c,#b25a04 60%,#7a3a02);-webkit-background-clip:text;background-clip:text}@media (prefers-color-scheme: light){:root:not([data-theme=dark]) .auth-hero h1{background:linear-gradient(180deg,#d97e0c,#b25a04 60%,#7a3a02);-webkit-background-clip:text;background-clip:text}}.auth-blurb{color:rgba(var(--fg-rgb),.78);line-height:1.55;margin:0 0 24px;max-width:520px}.auth-feature-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;color:rgba(var(--fg-rgb),.7);font-size:14px}.auth-feature-list li{display:flex;gap:10px;align-items:flex-start}.auth-feature-list span{color:var(--accent);font-weight:700}.auth-card{background:rgba(var(--surface-rgb),.78);border:1px solid rgba(var(--hover-overlay-rgb),.08);border-radius:20px;padding:28px 28px 24px;display:flex;flex-direction:column;gap:14px;box-shadow:0 24px 60px rgba(var(--shadow-rgb),.35)}.auth-card h2{margin:0 0 6px;font-size:20px}.auth-card label{display:flex;flex-direction:column;gap:6px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-muted)}.auth-card label input{margin-top:2px}.auth-error{color:var(--danger);font-size:13px;margin:0}.auth-foot{margin:6px 0 0;color:var(--fg-muted);font-size:12px}.card-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px}.card-header .card-title{margin:0}.recording-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.recording-list li{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-radius:10px;background:rgba(var(--surface-rgb),.6);border:1px solid var(--border);gap:12px}.recording-meta{display:flex;flex-direction:column;gap:2px}.trainer-prompt-actions{display:inline-flex;gap:6px;align-items:center}.trainer-replay-btn{border:1px solid rgba(var(--accent-rgb),.5);background:rgba(var(--accent-rgb),.16);color:var(--accent-strong);border-radius:999px;padding:4px 12px;font-size:12px;cursor:pointer}.trainer-replay-btn:hover{background:rgba(var(--accent-rgb),.28)}.case-trainer-toast{position:absolute;top:56px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:4px;padding:10px 18px;border-radius:12px;background:rgba(var(--surface-rgb),.92);border:1px solid rgba(var(--accent-rgb),.55);box-shadow:0 16px 36px rgba(var(--shadow-rgb),.45);color:var(--fg);font-size:14px;z-index:50;pointer-events:none;animation:case-trainer-toast-in .22s ease-out}.case-trainer-toast-label{color:var(--accent-strong);font-size:11px;letter-spacing:.08em;text-transform:uppercase}@keyframes case-trainer-toast-in{0%{opacity:0;transform:translate(-50%,-10px)}to{opacity:1;transform:translate(-50%)}}.room-qr{margin:0;display:flex;flex-direction:column;align-items:center;gap:4px}.room-qr svg{width:100%;height:auto;background:#fff;border-radius:6px;padding:4px}.room-qr figcaption{font-size:11px;color:var(--fg-muted);letter-spacing:.04em}.session-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}button.recording-download{cursor:pointer}.recording-download{padding:6px 14px;border-radius:999px;border:1px solid rgba(var(--accent-rgb),.45);background:rgba(var(--accent-rgb),.16);color:var(--accent-strong);font-size:12px;text-decoration:none;white-space:nowrap}.recording-download:hover{background:rgba(var(--accent-rgb),.26)}.notes-error{color:var(--danger);font-size:13px}.mock-banner{display:flex;gap:14px;align-items:flex-start;padding:14px 16px;border-radius:12px;background:linear-gradient(180deg,rgba(var(--accent-rgb),.12),rgba(var(--accent-rgb),.05));border:1px solid rgba(var(--accent-rgb),.4);margin-bottom:12px}.mock-banner-icon{flex:0 0 28px;width:28px;height:28px;border-radius:50%;background:var(--accent);color:var(--on-accent);font-weight:700;display:flex;align-items:center;justify-content:center}.mock-banner-body{flex:1 1 auto;display:flex;flex-direction:column;gap:4px}.mock-banner-body strong{font-size:14px;color:var(--accent)}.mock-banner-body p{margin:0;font-size:13px;line-height:1.55;color:rgba(var(--fg-rgb),.78)}.mock-banner-dismiss{background:transparent;border:1px solid rgba(var(--accent-rgb),.5);color:var(--accent);border-radius:999px;padding:6px 14px;font-size:12px;letter-spacing:.04em;cursor:pointer;align-self:center;transition:background .16s ease}.mock-banner-dismiss:hover{background:rgba(var(--accent-rgb),.18)}.session-summary-card{border:1px solid rgba(var(--accent-rgb),.45);background:linear-gradient(180deg,rgba(var(--surface-rgb),.78),rgba(var(--surface-rgb),.92))}.session-summary-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}.session-summary-header strong{font-size:18px;letter-spacing:.04em}.session-summary-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin:8px 0 6px}.session-summary-grid>div{display:flex;flex-direction:column;gap:4px;background:rgba(var(--surface-rgb),.6);border:1px solid var(--border);border-radius:10px;padding:10px 12px}.sparkline{display:block;width:100%}.sparkline.empty{height:36px;border-radius:6px;background:repeating-linear-gradient(45deg,rgba(var(--hover-overlay-rgb),.05) 0 8px,transparent 8px 14px)}.case-stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.case-stat-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:6px}.case-stat-label{font-size:12px;letter-spacing:.06em;color:var(--fg-muted)}.case-stat-value{font-size:22px;font-weight:700;color:var(--fg)}.room-code-input{font-size:22px;letter-spacing:.42em;font-weight:700;text-transform:uppercase;text-align:center;font-variant-numeric:tabular-nums}.auth-shell-case .auth-hero h1{background:linear-gradient(180deg,#fff5d8,#ffb766 65%,#d96b2c);-webkit-background-clip:text;background-clip:text;color:transparent}:root[data-theme=light] .auth-shell-case .auth-hero h1{background:linear-gradient(180deg,#e0701e,#b2540a 60%,#7a3502);-webkit-background-clip:text;background-clip:text}@media (prefers-color-scheme: light){:root:not([data-theme=dark]) .auth-shell-case .auth-hero h1{background:linear-gradient(180deg,#e0701e,#b2540a 60%,#7a3502);-webkit-background-clip:text;background-clip:text}}.page-with-brand{display:flex;flex-direction:column;min-height:100vh;background:var(--bg)}.page-inner{max-width:1280px;width:100%;margin:0 auto;padding:28px 32px 56px;display:flex;flex-direction:column;gap:18px}.page-error{color:var(--danger);background:rgba(var(--danger-rgb),.08);border:1px solid rgba(var(--danger-rgb),.3);border-radius:10px;padding:10px 14px;margin:0}.empty-card{padding:32px;border-radius:14px;border:1px dashed rgba(var(--hover-overlay-rgb),.1);background:rgba(var(--surface-rgb),.45);text-align:center;color:var(--fg-muted)}.empty-card strong{display:block;font-size:16px;color:var(--fg);margin-bottom:4px}.empty-card p{margin:0}.case-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.case-card{display:flex;flex-direction:column;justify-content:space-between;gap:14px;padding:18px 20px;border-radius:14px;background:linear-gradient(180deg,rgba(var(--surface-rgb),.78),rgba(var(--surface-rgb),.62));border:1px solid rgba(var(--hover-overlay-rgb),.06);transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.case-card:hover{border-color:rgba(var(--accent-rgb),.35);transform:translateY(-2px);box-shadow:0 18px 40px rgba(var(--shadow-rgb),.32)}.case-card-body h2{margin:0 0 6px;font-size:18px}.case-card-body p{margin:0;color:rgba(var(--fg-rgb),.72);font-size:13px;line-height:1.5}.case-card-actions{display:flex;gap:8px;font-size:13px}.row{display:flex;gap:12px;flex-wrap:wrap}.tag{display:inline-block;padding:2px 8px;border-radius:999px;background:var(--border);color:var(--fg-muted);font-size:12px;text-transform:uppercase;letter-spacing:.05em}.tag.local-mock{background:#503a00;color:var(--accent)}.signal-row{display:grid;grid-template-columns:80px 1fr 60px;align-items:center;gap:10px;padding:4px 0}.bar{position:relative;height:10px;background:var(--border);border-radius:999px;overflow:hidden}.bar>i{position:absolute;inset:0 auto 0 0;background:var(--accent);border-radius:inherit}.session-state-pill{display:inline-flex;align-items:center;align-self:flex-start;padding:3px 10px;border-radius:999px;border:1px solid var(--border);background:var(--bg);font-size:11px;letter-spacing:.04em;width:max-content;max-width:100%}.session-state-pill.running{background:rgba(var(--good-rgb),.16);color:var(--good);border-color:var(--good)}.session-state-pill.ended,.session-state-pill.aborted{background:rgba(var(--danger-rgb),.16);color:var(--danger);border-color:var(--danger)}.game-view{position:absolute;inset:0;overflow:hidden;background:var(--bg);container-type:inline-size}.game-view-stage{position:absolute;inset:0}.game-view canvas{position:absolute!important;inset:0;width:100%!important;height:100%!important}.case-page{display:grid;grid-template-rows:auto 1fr auto;height:100vh;background:linear-gradient(180deg,var(--bg-elevated),var(--bg));color:var(--fg)}.case-page-header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 18px;border-bottom:1px solid rgba(var(--hover-overlay-rgb),.06);background:rgba(var(--surface-rgb),.7);backdrop-filter:blur(6px)}.case-page-header-left,.case-page-header-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.case-page-tag{display:inline-block;padding:2px 10px;background:var(--border);color:var(--fg-muted);border-radius:999px;font-size:12px;letter-spacing:.15em}.session-state-pill.connected,.session-state-pill.case_joined,.session-state-pill.running{background:rgba(var(--good-rgb),.16);color:var(--good);border-color:var(--good)}.session-state-pill.connecting{background:rgba(var(--accent-rgb),.16);color:var(--accent);border-color:var(--accent)}.session-state-pill.disconnected,.session-state-pill.aborted{background:rgba(var(--danger-rgb),.16);color:var(--danger);border-color:var(--danger)}.session-phase-chip{padding:4px 12px;border-radius:999px;border:1px solid var(--border);background:rgba(var(--hover-overlay-rgb),.04);font-size:12px;letter-spacing:.05em}.session-phase-chip.running{background:rgba(var(--accent-rgb),.16);color:var(--accent);border-color:rgba(var(--accent-rgb),.4)}.case-audio-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:999px;border:1px solid var(--border);background:rgba(var(--hover-overlay-rgb),.04);font-size:12px}.case-audio-chip i{width:8px;height:8px;border-radius:50%;background:var(--fg-muted)}.case-audio-chip.unlocked.ready i{background:var(--good)}.case-audio-chip.unlocked.fallback i{background:var(--accent)}.case-recording-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:999px;background:rgba(var(--danger-rgb),.18);color:var(--danger);border:1px solid rgba(var(--danger-rgb),.4);font-size:12px}.case-recording-chip i{width:8px;height:8px;border-radius:50%;background:var(--danger);animation:case-rec-pulse 1.4s ease-in-out infinite}@keyframes case-rec-pulse{0%,to{opacity:.35}50%{opacity:1}}.case-recording-link{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:999px;border:1px solid rgba(var(--good-rgb),.45);background:rgba(var(--good-rgb),.12);color:var(--good);font-size:12px;text-decoration:none}.case-recording-link:hover{background:rgba(var(--good-rgb),.22)}.case-recording-error{font-size:12px;color:var(--danger)}.case-page-body{display:grid;grid-template-columns:220px minmax(0,1fr) 260px;gap:12px;padding:12px 16px;min-height:0}.case-page-aside{display:flex;flex-direction:column;gap:10px;overflow-y:auto}@media (max-width: 1200px){.case-page-body{grid-template-columns:200px minmax(0,1fr)}.case-page-aside-right{grid-column:1 / -1;grid-row:2;flex-direction:row;flex-wrap:wrap;gap:8px;max-height:200px;border-top:1px solid rgba(var(--hover-overlay-rgb),.06);padding-top:8px}.case-page-aside-right .case-aside-card{flex:1 1 200px}}@media (max-width: 900px){.case-page-body{grid-template-columns:minmax(0,1fr)}.case-page-aside-left{display:none}}.case-aside-card{padding:12px 14px;background:rgba(var(--surface-rgb),.72);border:1px solid rgba(var(--hover-overlay-rgb),.06);border-radius:12px;display:flex;flex-direction:column;gap:6px}.case-aside-card-title{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--fg-muted)}.case-aside-card strong{font-size:16px}.case-aside-card p{font-size:13px;color:rgba(var(--fg-rgb),.78);margin:0;line-height:1.45}.case-aside-samples{display:grid;grid-template-columns:1fr 1fr;gap:6px}.case-sample-mini{display:flex;flex-direction:column;gap:2px;align-items:flex-start;padding:8px 10px;border-radius:10px;background:rgba(var(--hover-overlay-rgb),.04);border:1px solid rgba(var(--hover-overlay-rgb),.08);cursor:pointer;color:var(--fg)}.case-sample-mini.safe{border-color:rgba(var(--accent-rgb),.45)}.case-sample-mini.danger{border-color:rgba(var(--danger-rgb),.45)}.case-sample-mini strong{font-size:15px}.case-sample-mini small{font-size:10px;color:var(--fg-muted);letter-spacing:.05em}.case-aside-tips{margin:0;padding-left:18px;font-size:12px;color:rgba(var(--fg-rgb),.7);line-height:1.55}.case-aside-empty{margin:0;font-size:12px;color:var(--fg-muted)}.case-aside-bandlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.case-aside-bandlist li{display:grid;grid-template-columns:42px minmax(0,1fr) 36px;align-items:center;gap:6px;font-size:11px}.case-aside-bandlist li i{height:9px;border-radius:999px;background:rgba(var(--hover-overlay-rgb),.08);overflow:hidden}.case-aside-bandlist li em{display:block;height:100%;background:var(--accent)}.case-aside-vitals{display:grid;grid-template-columns:1fr 1fr;gap:6px}.case-aside-vitals>div{padding:6px 8px;border-radius:8px;background:rgba(var(--hover-overlay-rgb),.04);text-align:center}.case-aside-vitals span{display:block;font-size:9px;letter-spacing:.15em;text-transform:uppercase;color:var(--fg-muted)}.case-aside-vitals strong{display:block;font-size:18px;font-weight:600;margin:1px 0}.case-aside-vitals small{font-size:10px;color:var(--fg-muted)}.case-aside-tiny{font-size:11px;color:var(--fg-muted);margin:4px 0 0}.case-aside-msg{margin:0;padding:8px 10px;background:rgba(var(--accent-rgb),.12);border:1px solid rgba(var(--accent-rgb),.32);border-radius:8px;font-size:13px;color:var(--accent)}.case-aside-camera-preview{width:100%;aspect-ratio:4 / 3;border-radius:10px;background:var(--bg);object-fit:cover;border:1px solid rgba(var(--hover-overlay-rgb),.06)}.case-aside-camera-button{margin-top:6px;padding:6px 10px;font-size:12px;border-radius:8px;background:rgba(var(--accent-rgb),.16);color:var(--accent);border:1px solid rgba(var(--accent-rgb),.45);cursor:pointer}.case-page-stage{display:flex;flex-direction:column;gap:6px;background:rgba(var(--surface-rgb),.78);border:1px solid rgba(var(--hover-overlay-rgb),.08);border-radius:14px;padding:8px;min-height:0}.case-page-stage:fullscreen,.case-page-stage.is-pseudo-fullscreen{background:var(--bg);padding:0;border-radius:0}.case-page-stage.is-pseudo-fullscreen{position:fixed;inset:0;z-index:9999}.case-stage-toolbar{display:flex;justify-content:space-between;align-items:center;padding:2px 6px}.case-page-stage:fullscreen .case-stage-toolbar,.case-page-stage.is-pseudo-fullscreen .case-stage-toolbar{position:absolute;top:16px;right:16px;z-index:60}.case-stage-toolbar-title{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--fg-muted)}.case-stage-toolbar-button{padding:4px 12px;font-size:12px;border-radius:8px;background:rgba(var(--hover-overlay-rgb),.06);border:1px solid rgba(var(--hover-overlay-rgb),.1);color:var(--fg);cursor:pointer}.case-stage-toolbar-button:hover{background:rgba(var(--accent-rgb),.16);border-color:rgba(var(--accent-rgb),.45)}.case-stage-frame{position:relative;flex:1 1 auto;min-height:360px;border-radius:10px;overflow:hidden;background:var(--bg)}.case-page-stage:fullscreen .case-stage-frame,.case-page-stage.is-pseudo-fullscreen .case-stage-frame{border-radius:0;height:100vh}.case-page-footer{padding:8px 18px;font-size:11px;color:var(--fg-muted);text-align:center;border-top:1px solid rgba(var(--hover-overlay-rgb),.04)}.case-page-stage:fullscreen .case-page-footer{display:none}.case-intro{position:absolute;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:24px;background:linear-gradient(180deg,#04080cc7,#04080ceb);backdrop-filter:blur(8px);overflow-y:auto;--fg-rgb: 241, 244, 248;--fg-muted: rgba(241, 244, 248, .72);--hover-overlay-rgb: 241, 244, 248;--surface-rgb: 15, 22, 30;--fg: #f1f4f8;--muted: rgba(241, 244, 248, .72);--text: #f1f4f8;color:#f1f4f8;align-items:flex-start;padding-top:max(24px,env(safe-area-inset-top))}.case-intro-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:32px;max-width:1100px;width:100%;align-items:center}@media (max-width: 900px){.case-intro-grid{grid-template-columns:1fr}}.title-copy .kicker{text-transform:uppercase;letter-spacing:.18em;color:var(--accent);font-size:13px;margin:0}.title-copy h1{font-size:56px;line-height:1.05;margin:12px 0 16px;letter-spacing:.02em;background:linear-gradient(180deg,#fff5d8,#ffd365 60%,#c79430);-webkit-background-clip:text;background-clip:text;color:transparent}.title-copy .story{font-size:17px;line-height:1.55;color:rgba(var(--fg-rgb),.85);margin:0 0 18px;max-width:540px}.mission-strip{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.mission-strip span{padding:6px 12px;border-radius:999px;background:rgba(var(--accent-rgb),.12);border:1px solid rgba(var(--accent-rgb),.35);color:var(--accent);font-size:13px;letter-spacing:.05em}.start-button{display:inline-flex;flex-direction:column;gap:4px;align-items:flex-start;padding:16px 28px;border-radius:18px;background:linear-gradient(180deg,#ffe07c,#ffb84a);color:#2a1c00;border:none;font-size:18px;font-weight:700;box-shadow:0 18px 60px #ffb84a59,inset 0 -2px rgba(var(--shadow-rgb),.15);cursor:pointer}.start-button:disabled{filter:grayscale(.6);cursor:not-allowed}.start-button small{font-size:12px;font-weight:500;color:rgba(var(--shadow-rgb),.5)}.audio-status{display:inline-flex;align-items:center;gap:8px;margin-top:18px;padding:8px 14px;border-radius:999px;background:rgba(var(--hover-overlay-rgb),.06);border:1px solid rgba(var(--hover-overlay-rgb),.08);color:var(--fg-muted);font-size:13px}.audio-status>i{width:10px;height:10px;border-radius:50%;background:var(--fg-muted)}.audio-status.unlocked.ready>i,.audio-status.unlocked.fallback>i{background:var(--good)}.audio-status.fallback.unlocked{color:var(--accent)}.audio-error{color:var(--danger);font-size:13px;margin-top:8px}.sound-totem{display:flex;flex-direction:column;gap:12px;padding:20px;border-radius:24px;background:rgba(var(--surface-rgb),.7);border:1px solid rgba(var(--hover-overlay-rgb),.08);backdrop-filter:blur(12px)}.totem-label{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--fg-muted);margin:0}.sound-card{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:16px 18px;border-radius:18px;background:rgba(var(--hover-overlay-rgb),.04);border:1px solid rgba(var(--hover-overlay-rgb),.08);cursor:pointer;text-align:left;color:var(--fg)}.sound-card strong{font-size:22px;font-weight:700}.sound-card span{font-size:12px;text-transform:uppercase;letter-spacing:.15em;color:var(--fg-muted)}.sound-card small{font-size:13px;color:rgba(var(--fg-rgb),.75)}.sound-card.safe{border-color:rgba(var(--accent-rgb),.45);background:linear-gradient(180deg,rgba(var(--accent-rgb),.18),rgba(var(--accent-rgb),.05))}.sound-card.danger{border-color:rgba(var(--danger-rgb),.45);background:linear-gradient(180deg,rgba(var(--danger-rgb),.18),rgba(var(--danger-rgb),.05))}.totem-note{font-size:12px;color:var(--fg-muted);margin:4px 0 0}.case-hud{position:absolute;top:16px;left:50%;transform:translate(-50%);display:flex;gap:12px;z-index:20}.case-hud .hud-card{min-width:110px;padding:8px 16px;border-radius:14px;background:rgba(var(--surface-rgb),.72);border:1px solid rgba(var(--hover-overlay-rgb),.07);text-align:center;backdrop-filter:blur(6px)}.case-hud .hud-card span{display:block;font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--fg-muted)}.case-hud .hud-card strong{display:block;font-size:22px;font-weight:700}.case-hud .hearts strong{display:flex;justify-content:center;gap:2px;letter-spacing:1px}.case-hud .hearts i{font-style:normal;color:rgba(var(--hover-overlay-rgb),.18)}.case-hud .hearts i.filled{color:#ff6f8b;text-shadow:0 0 8px rgba(255,111,139,.6)}.trail-panel{position:absolute;left:50%;bottom:21%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:6px;width:min(640px,80%);z-index:20}.trail-panel>span{font-size:13px;color:var(--fg-muted);letter-spacing:.08em;text-transform:uppercase}.trail-panel>i{position:relative;width:100%;height:6px;border-radius:999px;background:rgba(var(--hover-overlay-rgb),.08);overflow:hidden}.trail-panel>i em{display:block;height:100%;background:linear-gradient(90deg,#f7c45a,#ffd365);transition:width .18s ease}.trail-pips{display:flex;gap:4px;margin-top:2px}.trail-pips b{width:10px;height:10px;border-radius:50%;background:rgba(var(--hover-overlay-rgb),.18);transition:background .18s ease,transform .18s ease}.trail-pips b.is-done.is-good{background:var(--good)}.trail-pips b.is-done.is-bad{background:var(--danger)}.trail-pips b.is-current{background:var(--accent);transform:scale(1.25);box-shadow:0 0 12px rgba(var(--accent-rgb),.55)}.lantern-panel{position:absolute;right:16px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 12px;border-radius:18px;background:rgba(var(--surface-rgb),.7);border:1px solid rgba(var(--hover-overlay-rgb),.08);backdrop-filter:blur(6px);z-index:20}.lantern-panel>span{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--fg-muted)}.lantern-panel>i{position:relative;width:8px;height:130px;border-radius:999px;background:rgba(var(--hover-overlay-rgb),.1);overflow:hidden}.lantern-panel>i em{position:absolute;inset:auto 0 0;height:100%;background:linear-gradient(0deg,#ffd365,#fff5d8);transform-origin:bottom center;transition:width .2s ease}.lantern-panel>strong{font-size:14px;letter-spacing:.05em;color:var(--accent)}.rule-panel{position:absolute;left:16px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:8px;z-index:20}.rule{padding:8px 14px;border-radius:12px;font-weight:600;font-size:14px;backdrop-filter:blur(6px);border:1px solid rgba(var(--hover-overlay-rgb),.08)}.rule.safe{background:rgba(var(--accent-rgb),.16);color:var(--accent);border-color:rgba(var(--accent-rgb),.35)}.rule.danger{background:rgba(var(--danger-rgb),.16);color:var(--danger);border-color:rgba(var(--danger-rgb),.35)}.chapter-card{position:absolute;left:16px;bottom:16px;display:flex;flex-direction:column;padding:14px 18px;border-radius:16px;max-width:280px;background:rgba(var(--surface-rgb),.72);border:1px solid rgba(var(--hover-overlay-rgb),.08);backdrop-filter:blur(6px);z-index:20}.chapter-card span{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}.chapter-card strong{font-size:20px;margin-top:2px}.chapter-card em{font-style:normal;font-size:13px;color:rgba(var(--fg-rgb),.7);line-height:1.45;margin-top:6px}.chapter-card.is-sanctum{border-color:rgba(var(--accent-rgb),.4);box-shadow:0 0 60px rgba(var(--accent-rgb),.18)}.case-message{position:absolute;left:50%;bottom:32%;transform:translate(-50%);padding:12px 22px;background:rgba(var(--surface-rgb),.7);border:1px solid rgba(var(--accent-rgb),.25);border-radius:999px;z-index:25;pointer-events:none;max-width:70%;text-align:center;font-size:16px;color:rgba(var(--fg-rgb),.95);backdrop-filter:blur(6px);transition:border-color .2s ease,color .2s ease}.case-message.is-good{border-color:rgba(var(--good-rgb),.6);color:#a6efb8}.case-message.is-bad{border-color:rgba(var(--danger-rgb),.6);color:#ffb1b1}.case-go-button{position:absolute;bottom:6%;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:4px;padding:16px 36px;border-radius:26px;background:radial-gradient(circle at 50% 30%,#ffe07c,#ffb84a 65%,#d77a00);color:#2a1c00;border:none;box-shadow:0 22px 60px #ffb84a66,inset 0 -3px rgba(var(--shadow-rgb),.18);cursor:pointer;z-index:30;transition:transform .12s ease,box-shadow .12s ease,opacity .18s ease}.case-go-button[disabled]{opacity:.55;cursor:not-allowed;box-shadow:none;filter:grayscale(.5)}.case-go-button strong{font-size:28px;letter-spacing:.05em;font-weight:800}.case-go-button .paw{position:relative;width:60px;height:50px}.case-go-button .paw i,.case-go-button .paw b{position:absolute;background:#2a1c00;border-radius:50%}.case-go-button .paw i:nth-child(1){width:14px;height:16px;top:0;left:4px}.case-go-button .paw i:nth-child(2){width:14px;height:16px;top:-2px;left:24px}.case-go-button .paw i:nth-child(3){width:14px;height:16px;top:0;left:44px}.case-go-button .paw b{width:32px;height:22px;bottom:4px;left:14px;border-radius:16px 16px 14px 14px}.case-finish{position:absolute;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#020408a6,#020408eb);backdrop-filter:blur(8px)}.finish-card{display:flex;flex-direction:column;align-items:center;gap:12px;padding:32px 40px;border-radius:28px;max-width:480px;background:rgba(var(--surface-rgb),.92);border:1px solid rgba(var(--accent-rgb),.32);text-align:center;box-shadow:0 36px 100px rgba(var(--shadow-rgb),.55)}.beast-crest-image{width:200px;height:auto;filter:drop-shadow(0 12px 28px rgba(var(--accent-rgb),.35))}.finish-card h2{margin:4px 0;font-size:30px;background:linear-gradient(180deg,#fff5d8,#ffd365 60%,#c79430);-webkit-background-clip:text;background-clip:text;color:transparent}.reward-row{display:flex;gap:16px;margin:4px 0}.reward-row>div{padding:10px 18px;border-radius:16px;background:rgba(var(--hover-overlay-rgb),.05);border:1px solid rgba(var(--hover-overlay-rgb),.08);text-align:center}.reward-row span{display:block;font-size:12px;letter-spacing:.15em;text-transform:uppercase;color:var(--fg-muted)}.reward-row strong{display:block;font-size:26px;font-weight:700;margin-top:4px}.trainer-page{max-width:1400px;margin:0 auto}.trainer-controls .row{align-items:center;flex-wrap:wrap}.trainer-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:16px}@media (max-width: 1100px){.trainer-grid{grid-template-columns:minmax(0,1fr)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:80ms!important;scroll-behavior:auto!important}.case-recording-chip i,.case-audio-chip i,.lantern-celebrate{animation-duration:1.2s!important;animation-iteration-count:infinite!important}}button:focus-visible,a:focus-visible,[role=button]:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:8px}.trainer-stage-card{display:flex;flex-direction:column;gap:8px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;padding:12px;overflow:hidden}.trainer-stage-card header{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.trainer-stage-card h3{margin:0;font-size:14px;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-muted)}.trainer-stage{position:relative;aspect-ratio:16 / 9;width:100%;border-radius:10px;overflow:hidden;background:var(--bg)}.trainer-stage canvas{position:absolute;inset:0;width:100%!important;height:100%!important}.trainer-stage-meta{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:14px;margin-top:14px}@media (max-width: 720px){.trainer-stage-meta{grid-template-columns:minmax(0,1fr)}}.trainer-case-tile{background:rgba(var(--surface-rgb),.7);border:1px solid rgba(var(--hover-overlay-rgb),.06);border-radius:10px;padding:8px;display:flex;flex-direction:column;gap:6px}.trainer-case-tile-header{display:flex;justify-content:space-between;align-items:center;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-muted)}.trainer-case-tile-video{width:100%;aspect-ratio:4 / 3;background:var(--bg);border-radius:8px;object-fit:cover}.trainer-prompt-card{background:rgba(var(--surface-rgb),.72);border:1px solid rgba(var(--hover-overlay-rgb),.06);border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:8px}.trainer-prompt-card header{display:flex;justify-content:space-between;align-items:center;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-muted)}.trainer-rec-btn{padding:4px 10px;font-size:11px;border-radius:8px;background:rgba(var(--hover-overlay-rgb),.06);border:1px solid rgba(var(--hover-overlay-rgb),.1);color:var(--fg-muted);cursor:pointer}.trainer-rec-btn.on{background:rgba(var(--danger-rgb),.18);color:var(--danger);border-color:rgba(var(--danger-rgb),.45)}.trainer-prompt-presets{display:grid;grid-template-columns:repeat(auto-fit,minmax(70px,1fr));gap:6px}.trainer-prompt-presets button{padding:6px 10px;font-size:13px;border-radius:8px;background:rgba(var(--hover-overlay-rgb),.05);border:1px solid rgba(var(--hover-overlay-rgb),.08);color:var(--fg);cursor:pointer}.trainer-prompt-presets button:hover{background:rgba(var(--accent-rgb),.16);border-color:rgba(var(--accent-rgb),.45)}.trainer-prompt-form{display:flex;gap:8px}.trainer-prompt-form input{flex:1 1 auto;padding:6px 10px;font-size:13px}.game-view.is-observer .case-hud{top:8px;gap:6px}.game-view.is-observer .case-hud .hud-card{min-width:0;padding:4px 8px;border-radius:8px}.game-view.is-observer .case-hud .hud-card span{font-size:9px;letter-spacing:.1em}.game-view.is-observer .case-hud .hud-card strong{font-size:14px}.game-view.is-observer .case-hud .hearts strong{gap:1px}.game-view.is-observer .case-hud .hearts i{font-size:11px}.game-view.is-observer .trail-panel{width:86%;bottom:16%;gap:3px}.game-view.is-observer .trail-panel>span{font-size:10px}.game-view.is-observer .trail-panel>i{height:4px}.game-view.is-observer .trail-pips b{width:5px;height:5px}.game-view.is-observer .lantern-panel{right:8px;padding:8px 6px;border-radius:12px}.game-view.is-observer .lantern-panel>span{font-size:9px}.game-view.is-observer .lantern-panel>i{width:5px;height:70px}.game-view.is-observer .lantern-panel>strong{font-size:10px}.game-view.is-observer .rule-panel{left:8px;gap:5px}.game-view.is-observer .rule{padding:4px 8px;font-size:11px;border-radius:8px}.game-view.is-observer .chapter-card{left:8px;bottom:8px;padding:8px 12px;border-radius:10px;max-width:50%}.game-view.is-observer .chapter-card span{font-size:9px}.game-view.is-observer .chapter-card strong{font-size:14px}.game-view.is-observer .chapter-card em{font-size:11px}.game-view.is-observer .case-message{padding:6px 14px;font-size:13px;bottom:28%}.case-stage{position:fixed;inset:0;background:var(--bg)}.signal-tab{display:flex;gap:8px;border-bottom:1px solid var(--border);margin-bottom:12px}.signal-tab button{background:transparent;border:none;color:var(--fg-muted);padding:8px 12px;border-bottom:2px solid transparent;border-radius:0}.signal-tab button.active{color:var(--fg);border-bottom-color:var(--accent)}.marker-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:8px}.marker-grid button{padding:10px 6px;font-size:15px}.marker-note-row{display:flex;gap:8px;margin-top:8px}.marker-note-row input{flex:1 1 auto;padding:8px 12px}.marker-history{list-style:none;padding:0;margin:12px 0 0;display:flex;flex-direction:column;gap:6px;max-height:260px;overflow-y:auto}.marker-history li{background:rgba(var(--surface-rgb),.5);border:1px solid var(--border);border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:4px}.marker-history-meta{display:flex;justify-content:space-between;align-items:center}.marker-history-ts{font-size:11px;color:var(--fg-muted)}.marker-history-note{margin:0;font-size:13px;color:rgba(var(--fg-rgb),.78)}.marker-history-row{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--fg-muted)}.marker-history-delete{padding:2px 8px;font-size:11px;background:transparent;border:1px solid rgba(var(--danger-rgb),.4);color:var(--danger);border-radius:6px;cursor:pointer}.marker-history-empty{padding:8px;color:var(--fg-muted);font-size:13px;text-align:center}.trainer-notes-label{display:flex;flex-direction:column;gap:4px;margin-bottom:10px;font-size:12px;color:var(--fg-muted)}.trainer-notes-label textarea{font:inherit;background:var(--bg-elevated);color:var(--fg);border:1px solid var(--border);border-radius:8px;padding:8px 12px;resize:vertical}.trainer-connection-pill{padding:4px 10px;border-radius:999px;font-size:12px;border:1px solid var(--border);background:rgba(var(--hover-overlay-rgb),.04)}.trainer-connection-pill.tone-ok{background:rgba(var(--good-rgb),.16);color:var(--good);border-color:var(--good)}.trainer-connection-pill.tone-warn{background:#e6c14d2e;color:#ecc456;border-color:#e6c14d80}.trainer-connection-pill.tone-info{background:rgba(var(--accent-rgb),.16);color:var(--accent);border-color:rgba(var(--accent-rgb),.4)}.trainer-alerts{display:flex;flex-direction:column;gap:8px}.trainer-alert{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-radius:12px;border:1px solid rgba(var(--accent-rgb),.5);background:rgba(var(--accent-rgb),.12);animation:trainer-alert-in .22s ease-out}@keyframes trainer-alert-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.trainer-alert.tone-warning{border-color:rgba(var(--accent-rgb),.5);background:rgba(var(--accent-rgb),.12)}.trainer-alert-body{display:flex;flex-direction:column;gap:2px}.trainer-alert-body strong{color:var(--accent-strong)}.trainer-alert-body span{color:rgba(var(--fg-rgb),.7);font-size:12px}.trainer-alert-dismiss{padding:4px 10px;font-size:11px;border-radius:8px;background:rgba(var(--hover-overlay-rgb),.06);border:1px solid rgba(var(--hover-overlay-rgb),.1);color:var(--fg);cursor:pointer}.director-history{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px;max-height:240px;overflow-y:auto}.director-history li{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;border-radius:6px;background:rgba(var(--surface-rgb),.5)}.director-history li>div{display:flex;flex-direction:column;gap:2px}.director-history-ts{font-size:11px;color:var(--fg-muted)}.trial-detail-summary{display:flex;gap:16px;color:var(--fg-muted);font-size:13px;margin-bottom:8px}.trial-detail-list{list-style:none;padding:0;margin:0;max-height:280px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.trial-detail-list li{display:grid;grid-template-columns:60px 110px 1fr auto;align-items:center;gap:8px;padding:4px 10px;border-radius:6px;background:rgba(var(--surface-rgb),.5);cursor:pointer;transition:background .12s ease,transform .12s ease,box-shadow .12s ease}.trial-detail-list li:hover{background:rgba(var(--accent-rgb),.1)}.trial-detail-list li.is-selected{background:rgba(var(--accent-rgb),.16);box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb),.6)}.trial-detail-list li.has-markers .trial-detail-markers{color:var(--accent);font-size:11px;letter-spacing:.04em}.trial-detail-list li.outcome-hit,.trial-detail-list li.outcome-inhibit{border-left:3px solid var(--good)}.trial-detail-list li.outcome-miss,.trial-detail-list li.outcome-impulse,.trial-detail-list li.outcome-slow,.trial-detail-list li.outcome-early{border-left:3px solid var(--danger)}.marker-history li{cursor:default;transition:background .12s ease,opacity .12s ease,box-shadow .12s ease}.marker-history li[role=button]{cursor:pointer}.marker-history li.is-linked{background:rgba(var(--accent-rgb),.14);box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb),.55)}.marker-history li.is-muted{opacity:.42}.trial-detail-index{color:var(--fg-muted);font-size:12px}.trial-detail-rt{font-size:12px;color:var(--fg-muted)}.trial-detail-empty{grid-column:1 / -1;color:var(--fg-muted);font-size:13px;text-align:center;padding:8px;background:transparent;border-left:none!important;cursor:default}.session-history{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.session-history li{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 80px;align-items:center;gap:12px;padding:10px 14px;background:rgba(var(--surface-rgb),.5);border:1px solid var(--border);border-radius:10px}.session-history-left{display:flex;flex-direction:column;gap:4px}.session-history-game{font-size:12px;color:var(--fg-muted)}.session-history-meta{display:flex;flex-direction:column;font-size:12px;color:var(--fg-muted)}.session-history-actions{display:flex;justify-content:flex-end}.event-log{display:flex;flex-direction:column;gap:4px;max-height:240px;overflow-y:auto;font-size:13px;color:var(--fg-muted)}.event-log li{list-style:none;padding:4px 8px;border-left:2px solid var(--border)}.event-log li.outcome-hit,.event-log li.outcome-inhibit{border-left-color:var(--good)}.event-log li.outcome-miss,.event-log li.outcome-impulse,.event-log li.outcome-slow,.event-log li.outcome-early{border-left-color:var(--danger)}.banner-mock{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;background:#503a00;color:var(--accent);border-radius:999px;font-size:11px;text-transform:uppercase;letter-spacing:.05em}.mock-pill{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;background:rgba(var(--hover-overlay-rgb),.04);color:var(--fg-muted);border:1px solid rgba(var(--hover-overlay-rgb),.08);border-radius:999px;font-size:10px;letter-spacing:.08em;align-self:flex-start}.status-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;background:rgba(var(--hover-overlay-rgb),.05);border:1px solid rgba(var(--hover-overlay-rgb),.08);color:var(--fg-muted);font-size:10px;letter-spacing:.08em}.status-chip.live{background:rgba(var(--good-rgb),.16);color:var(--good);border-color:rgba(var(--good-rgb),.4)}.session-header{display:flex;justify-content:space-between;align-items:baseline;gap:24px;margin-bottom:4px}.session-header h1{margin:0;font-size:24px}.session-share-row{display:inline-flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:4px 0 0}.session-room-code{letter-spacing:.18em;font-size:16px;background:rgba(var(--accent-rgb),.12);border:1px solid rgba(var(--accent-rgb),.32);border-radius:8px;padding:2px 10px}.session-share-hint{font-size:12px;color:var(--fg-muted)}.session-share-hint code{font-size:11px;padding:1px 6px;background:rgba(var(--hover-overlay-rgb),.04);border-radius:4px}.trainer-controls-row{display:flex;gap:24px;flex-wrap:wrap;align-items:center}.trainer-controls-group{display:inline-flex;align-items:center;gap:8px}.controls-label{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--fg-muted);margin-right:4px}.danger-ghost{color:var(--danger)!important;border-color:rgba(var(--danger-rgb),.32)!important}.danger-ghost:hover:not(:disabled){background:rgba(var(--danger-rgb),.12)!important}.director-readout{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px;padding:10px 14px;border-radius:10px;background:rgba(var(--accent-rgb),.06);border:1px solid rgba(var(--accent-rgb),.18)}.director-label{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);font-weight:600}.trainer-bias-controls{margin-top:10px;padding:10px 14px;border-radius:10px;background:rgba(var(--accent-rgb),.04);border:1px dashed rgba(var(--accent-rgb),.18);display:flex;flex-direction:column;gap:8px}.trainer-bias-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.trainer-bias-row>span{min-width:4em;font-size:12px;color:var(--fg-muted)}.trainer-bias-row button{padding:4px 12px;border-radius:8px;border:1px solid rgba(var(--accent-rgb),.3);background:transparent;color:var(--fg);font-size:12px;cursor:pointer}.trainer-bias-row button:hover{background:rgba(var(--accent-rgb),.1)}.card-title{margin:0 0 12px;font-size:14px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-muted)}:lang(zh-Hant) .kicker,:lang(zh-Hant) .director-label,:lang(zh-Hant) .controls-label,:lang(zh-Hant) .case-aside-card-title,:lang(zh-Hant) .case-trainer-toast-label,:lang(zh-Hant) .totem-label,:lang(zh-Hant) .card-title,:lang(zh-Hant) .session-room-label,:lang(zh-Hant) .marker-history-meta .tag,:lang(zh-Hant) .sound-card small,:lang(zh-Hant) .sound-card strong,:lang(zh-Hant) .case-quick-replies-label,:lang(zh-Hant) .case-stage-toolbar-title,:lang(zh-Hant) .chapter-card .kicker,:lang(zh-Hant) .hud-label,:lang(zh-Hant) .auth-form .auth-label,:lang(zh-Hant) .auth-form label>span{letter-spacing:.04em;text-transform:none}:lang(zh-Hant) body,:lang(zh-Hant) .auth-blurb,:lang(zh-Hant) .title-copy .story{line-height:1.6}:lang(zh-Hant) .brand-bar-context,:lang(zh-Hant) .auth-form label,:lang(zh-Hant) .auth-form .auth-label,:lang(zh-Hant) .case-stage-toolbar-title,:lang(zh-Hant) .session-room-label{letter-spacing:.04em;text-transform:none}:lang(zh-Hant) .room-code-input::placeholder{letter-spacing:.04em}@media (max-width: 600px){.auth-hero h1{font-size:28px;line-height:1.15;margin-bottom:14px}.title-copy h1{font-size:36px}}.stat-tile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}.stat-tile{display:flex;flex-direction:column;align-items:flex-start;padding:8px 10px;border-radius:8px;background:rgba(var(--accent-rgb),.06);border:1px solid rgba(var(--accent-rgb),.12);font-size:12px;color:var(--fg-muted)}.stat-tile strong{font-size:20px;font-weight:600;color:var(--fg);margin-top:2px;line-height:1}.stat-tile span:last-child{margin-top:2px;font-size:11px}.case-trainer-toast.flavor-alert{background:#dc4c3c2e;border-color:#dc4c3c8c}.case-trainer-toast.flavor-calm{background:#50aae62e;border-color:#50aae680}.case-trainer-toast.flavor-info{background:#a0a0aa2e;border-color:#a0a0aa66}.trainer-prompt-status{display:inline-block;font-size:11px;color:var(--good, #4caf50);margin-top:4px}.trainer-prompt-warning{display:block;font-size:11px;color:var(--danger);margin-top:4px}.case-quick-replies{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px 14px;background:rgba(var(--surface-rgb),.7);border-top:1px solid rgba(var(--hover-overlay-rgb),.08)}.case-quick-replies-label{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-muted);margin-right:6px}.case-quick-reply{padding:8px 14px;border-radius:999px;border:1px solid rgba(var(--accent-rgb),.3);background:rgba(var(--accent-rgb),.08);color:var(--fg);font-size:14px;cursor:pointer;min-height:40px}.case-quick-reply:hover{filter:brightness(1.12)}.case-quick-reply.help{background:#dc4c3c2e;border-color:#dc4c3cb3;color:#ff8979}.case-quick-reply.tired{background:#b482502e;border-color:#b48250b3;color:#d6a25f}.case-quick-reply.cant_hear{background:#50aae62e;border-color:#50aae6b3;color:#6bb6e0}.case-quick-reply.ready{background:#64c8822e;border-color:#64c882b3;color:#75d595}.case-quick-reply.bathroom{background:#a082c82e;border-color:#a082c8b3;color:#b89dd9}.trainer-quick-reply-banner{display:flex;align-items:center;gap:12px;padding:10px 16px;margin-bottom:12px;background:#dc4c3c1f;border:1px solid rgba(220,76,60,.5);border-radius:10px;font-size:15px}.trainer-quick-reply-icon{font-size:20px}.trainer-quick-reply-banner button{margin-left:auto;padding:6px 12px;border-radius:8px;border:1px solid rgba(var(--accent-rgb),.3);background:transparent;color:var(--fg);cursor:pointer}.recording-actions{display:flex;gap:6px}.recording-preview{width:100%;max-height:360px;margin-top:8px;border-radius:8px;background:#000}.case-recording-consent{position:absolute;inset:24px 24px auto;z-index:60;padding:16px 20px;border-radius:14px;background:#0f161ef0;border:1px solid rgba(220,200,120,.5);color:#f1f4f8;box-shadow:0 12px 28px #00000059}.case-recording-consent strong{font-size:16px}.case-recording-consent p{margin:8px 0 12px;font-size:13px;color:#f1f4f8c7}.case-recording-consent-actions{display:flex;gap:8px;justify-content:flex-end}.case-recording-consent-actions button{padding:6px 14px;border-radius:8px;border:1px solid rgba(220,200,120,.4);background:transparent;color:#f1f4f8;cursor:pointer}.case-recording-consent-actions button.primary{background:#dcc87840}.trainer-self-tile{display:flex;flex-direction:column;gap:6px;padding:12px;border-radius:12px;background:rgba(var(--surface-rgb),.7);border:1px solid rgba(var(--hover-overlay-rgb),.06)}.trainer-self-tile video{width:220px;height:165px;background:#000;border-radius:8px;object-fit:cover}.trainer-self-tile video.is-off{display:none}.trainer-cam-error{font-size:12px;color:var(--danger);margin:0}.case-trainer-pip{position:absolute;right:12px;bottom:12px;z-index:30;width:144px;height:108px;border-radius:12px;overflow:hidden;background:#000;border:2px solid rgba(241,244,248,.4);box-shadow:0 4px 18px #0006}.case-trainer-pip video{width:100%;height:100%;object-fit:cover}.trainer-net-chip{font-size:11px;padding:2px 8px;border-radius:999px;border:1px solid var(--border);background:var(--bg);letter-spacing:.02em;cursor:help}.trainer-net-chip.is-good{border-color:rgba(var(--good-rgb),.55);color:var(--good)}.trainer-net-chip.is-warn{border-color:rgba(var(--accent-rgb),.55);color:var(--accent)}.trainer-net-chip.is-bad{border-color:var(--danger);color:var(--danger)}@media print{body{background:#fff;color:#000}.brand-bar,.trainer-controls,.trainer-prompt-card,.trainer-self-tile,.trainer-quick-reply-banner,.case-trainer-toast,.signal-tab,.recording-list .recording-actions,.recording-preview,.session-share-row .link-button,.trainer-bias-controls,.session-history-actions,.mock-banner,.case-aside-camera-button,.room-qr,button{display:none!important}.card{break-inside:avoid}.trainer-page{max-width:none;padding:0}h1{color:#000}.trainer-connection-pill,.trainer-net-chip,.session-state-pill{display:inline-block!important}}.case-replaced-overlay{position:fixed;inset:0;z-index:200;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px;text-align:center;background:#080c12f0;color:#f1f4f8}.case-replaced-overlay h2{font-size:28px;margin:0}.case-replaced-overlay p{max-width:480px;color:#f1f4f8c7;line-height:1.55}.case-replaced-overlay button{padding:12px 22px;border-radius:12px;border:none;background:linear-gradient(180deg,#ffe07c,#ffb84a);color:#2a1c00;font-size:16px;font-weight:600;cursor:pointer}.case-caption{position:absolute;left:50%;top:12px;transform:translate(-50%);max-width:min(80%,720px);padding:8px 14px;border-radius:10px;background:#080c12c7;color:#f1f4f8;font-size:17px;line-height:1.4;text-align:center;pointer-events:none;z-index:40}.case-caption.is-interim{color:#f1f4f8b3;font-style:italic}.trainer-bias-row input[type=range]{flex:1;min-width:0}.trainer-bias-value{min-width:2.5em;text-align:right;font-variant-numeric:tabular-nums;font-size:12px;color:var(--fg)}.case-device-picker{display:flex;flex-direction:column;gap:6px;margin-top:6px}.case-device-picker label{display:flex;flex-direction:column;gap:2px;font-size:11px;color:var(--fg-muted)}.case-device-picker select{font-size:12px;padding:4px;border-radius:6px;border:1px solid rgba(var(--accent-rgb),.3);background:rgba(var(--surface-rgb),.6);color:var(--fg)}.case-emergency-stop{margin-left:auto;padding:8px 14px;border-radius:999px;border:1px solid rgba(220,76,60,.7);background:#dc4c3c2e;color:#ff5d4a;font-size:14px;font-weight:600;cursor:pointer;min-height:40px}.case-emergency-stop:hover{background:#dc4c3c52}
