:root { color-scheme: dark; }
body.web-player { margin:0; overflow:auto; background:#21112e; font-family:system-ui,sans-serif; }
.web-player .playtest-overlay { background:radial-gradient(ellipse at top,#583367,#21112e 70%); overflow:auto; padding:12px; }
.web-player .playtest-window { width:min(1180px,98vw,calc((100dvh - 100px)*1.25)); max-height:none; grid-template-rows:46px auto; }
.web-player .classic-game-frame { aspect-ratio:auto; grid-template-rows:auto minmax(164px,auto) 40px; }
.web-player .playtest-stage { aspect-ratio:16/9; }
.web-player .classic-dashboard { min-height:164px; }
.web-player .playtest-chrome { background:#35203f; border-color:#795384; }
.web-player .playtest-chrome strong { font-size:14px; }
.web-player .playtest-chrome span { font-size:12px; color:#dfcce9; }
.studio-link { color:#fff0c4; font-size:12px; padding:8px; text-decoration:none; }
.studio-link:hover { text-decoration:underline; }
.web-player .playtest-avatar { pointer-events:none; }
.web-player .playtest-title-screen { grid-template-rows:minmax(0,1fr) 34px 110px; }
.web-player .title-tagline { margin:0; padding:6px 8px; text-align:center; background:#4a235b; color:#fff3cd; font:700 clamp(12px,1.6vw,19px)/1.2 Georgia,serif; }
.web-player .playtest-title-actions { padding:14px 5%; border-top-width:4px; }
.web-player .playtest-title-actions button { font-size:clamp(12px,1.35vw,18px); }
.journey-bar { display:flex; gap:10px; align-items:center; justify-content:space-between; padding:4px 12px; background:#38203f; color:#f6e9ce; font-size:12px; }
.journey-bar button { flex-shrink:0; padding:4px 12px; border:1px solid #bd8cc6; border-radius:7px; font:inherit; background:#533160; color:#fff0c4; min-height:30px; }
.web-player .playtest-window .playtest-hotspot:focus-visible { outline:3px dashed #fff2a2 !important; outline-offset:-4px !important; }
.web-player .show-click-points .playtest-hotspot { outline:2px dashed #fff2a2 !important; outline-offset:-4px !important; }
.web-player .playtest-item { flex-basis:58px; height:64px; }
.web-player .dashboard-glovebox { flex-wrap:wrap; align-content:center; gap:4px; padding:8px 12px; }
.web-player .quest-paper { flex:1 1 110px; }
.web-player .quest-paper strong { font-size:13px; }
.web-player .quest-paper span:last-child { font-size:12px; }
.web-player .dashboard-companion-button { flex:0 0 55px; height:64px; }
.web-player .playtest-inventory { flex:1 0 100%; min-height:70px; align-items:center; padding:8px 5px; }
.web-player .playtest-inventory-empty { font-size:12px; }
.web-player .dashboard-tool-button { font-size:12px; min-height:44px; }
.web-player #playtestQuickSettingsButton { font-size:10px; }
.web-player .playtest-info-card li { margin-bottom:12px; line-height:1.5; }
.web-player .playtest-map-grid { gap:10px; }
.web-player .playtest-dialogue { z-index:85; font-size:clamp(14px,1.6vw,21px); }
.web-player .toast-region { top:12px; }
.web-player .toast { font-size:14px; }
@media (max-width:700px) {
 .web-player .playtest-overlay { padding:0; align-items:start; }
 .web-player .playtest-window { width:100%; grid-template-rows:52px auto; }
 .web-player .classic-game-frame { grid-template-rows:auto auto 66px; border-radius:0; overflow:visible; }
 .web-player .classic-dashboard { min-height:290px; grid-template-columns:100px minmax(0,1fr); grid-template-rows:190px 96px; }
 .web-player .dashboard-left { grid-column:1; grid-row:1; grid-template-columns:1fr; grid-template-rows:125px 48px; padding:10px; }
 .web-player .fuel-gauge { display:none; }
 .web-player .horn-button { grid-column:1; width:76px; }
 .web-player .dashboard-middle { display:none; }
 .web-player .dashboard-glovebox { grid-column:2; grid-row:1; margin:8px; padding:10px; border-radius:24px; }
 .web-player .dashboard-tools { grid-column:1/3; grid-row:2; grid-template-columns:repeat(3,1fr); grid-template-rows:44px 44px; padding:0 12px; }
 .web-player .dashboard-tool-button { font-size:13px; }
 .web-player #playtestQuickSettingsButton { font-size:12px; }
 .web-player .playtest-title-screen { grid-template-rows:auto 42px auto; min-height:100%; }
 .web-player .playtest-title-screen > img { aspect-ratio:16/9; }
 .web-player .playtest-title-actions { grid-template-columns:1fr 1fr; gap:14px; align-content:center; }
 .web-player .playtest-title-actions button { font-size:16px; min-height:56px; }
 .web-player .playtest-chrome strong { font-size:12px; }
 .web-player .playtest-chrome span { font-size:10px; }
 .web-player #playtestHeaderFullscreenButton { font-size:11px; padding:7px; }
 .studio-link { font-size:11px; padding:4px; }
 .web-player .playtest-card-overlay { position:fixed; padding:8px; }
 .web-player .playtest-toy-card { width:100%; max-height:94dvh; padding:20px 14px; border-width:4px; }
 .web-player .playtest-settings-grid { grid-template-columns:1fr; }
 .web-player .playtest-map-grid { grid-template-columns:1fr 1fr; }
 .web-player .playtest-info-body { max-height:70dvh; }
 .web-player .playtest-dialogue { position:fixed; left:10px; right:10px; bottom:16px; width:auto; font-size:17px; }
 .web-player .playtest-dialogue em { font-size:11px; }
 .journey-bar { font-size:12px; }
 .journey-bar button { min-height:44px; max-width:88px; }
 .web-player .playtest-minigame { position:fixed; }
}
@media (pointer:coarse) { .web-player .playtest-cursor { display:none !important; } }
@media (prefers-reduced-motion:reduce) { .web-player *, .web-player *::before, .web-player *::after { animation-duration:.01ms !important; transition-duration:.01ms !important; } }
