/* Draft World of Beatworks stage. The shared game scene and media geometry stay intact. */
:root{--focus:#63e0df;--gold:#f9be6a;--accent:#f9be6a}
.world-game{font-family:Manrope,system-ui,sans-serif}
.world-game .topbar{background:linear-gradient(100deg,#20243b,#171325 70%);border-bottom-color:#63e0df45}
.world-game .topbar .brand{min-width:0;max-width:none;display:flex;gap:12px;align-items:center}
.world-game .world-wordmark{display:block;width:clamp(180px,20vw,260px);height:auto;flex:none}
.world-game .topbar .world-wordmark{width:auto;height:auto;max-width:240px;color:#f8e7c6;font:400 20px/1.05 'Russo One',Manrope,sans-serif;letter-spacing:.02em}
.world-game #fullStageLogo{display:none}
.world-game .full-active #fullStageLogo{display:block;position:absolute;z-index:6;top:12px;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 210px);color:#fff1d8;font:400 clamp(19px,2.2vw,32px)/1.05 'Russo One',Manrope,sans-serif;text-align:center;text-shadow:0 2px 8px #141025a0;pointer-events:none}
.world-game .full-active #fullStageLogo[data-logo-selected="true"]{top:5px;width:auto;height:clamp(112.7px,12.84vw,208px);max-width:30%;object-fit:contain;background:transparent;border:0;box-shadow:none;text-shadow:none}
.world-game #fullLogoSpectrum{display:none}
.world-game .full-active #fullLogoSpectrum{display:block;position:absolute;z-index:7;top:5px;left:50%;transform:translateX(-50%);width:clamp(112.7px,12.84vw,208px);height:clamp(112.7px,12.84vw,208px);max-width:30%;pointer-events:none}
.world-game .topbar .world-wordmark[data-logo-selected="true"]{display:block;width:60px;height:60px;max-width:none;object-fit:contain;background:transparent;border:0;border-radius:0;box-shadow:none}
.world-game .full-active #fullStageLogo{display:none}
.world-game .topbar .brand{position:relative;isolation:isolate}
.world-game .topbar .world-wordmark[data-logo-selected="true"]{position:relative;z-index:1;width:clamp(180px,19vw,270px);height:auto;max-width:36vw;max-height:60px;object-fit:contain}
.world-game .topbar .world-tagline{display:none}
.world-game .topbar #fullLogoSpectrum{display:block;position:absolute;z-index:0;inset:-12px -48px;width:calc(100% + 96px);height:calc(100% + 24px);pointer-events:none;mask-image:radial-gradient(ellipse 80% 75% at 50% 50%,#000 48%,transparent 100%);-webkit-mask-image:radial-gradient(ellipse 80% 75% at 50% 50%,#000 48%,transparent 100%)}
.world-game #fullEqualizer{display:none}
.world-game .full-active #fullEqualizer{display:block;position:absolute;z-index:5;top:0;left:0;width:100%;pointer-events:none;opacity:.94}
.world-game .full-active canvas.ambient-fx{display:none}
.world-game #fullVisualizerToggle[aria-pressed="true"]{border-color:#63e0df;color:#d1ffff}
.world-game .world-tagline{margin:0;white-space:nowrap;letter-spacing:.04em;color:#b9c4dc}
.world-game .primary,.world-game #fullStart{background:#f9be6a;color:#050505}
.world-game button:focus-visible,.world-game a:focus-visible{outline:2px solid #63e0df;outline-offset:2px}
.world-game #fullControls>strong{font-family:'Russo One',Manrope,sans-serif;font-weight:400;font-synthesis:none;letter-spacing:.015em}
.world-game .full-poster{position:absolute;inset:0;z-index:2;display:block;width:100%;height:100%;object-fit:contain;background:transparent;pointer-events:none}
.world-game .full-poster[hidden]{display:none}
.world-game .full-player video{z-index:1;background:transparent}
.world-game .full-player.pending .full-poster,.world-game .full-player.pending video{visibility:hidden!important}
.world-game .full-player.pending::after{content:'Вступит в следующем цикле';position:absolute;left:8%;right:8%;top:43%;z-index:4;padding:6px 3px;border:1px solid #63e0df88;border-radius:10px;background:#171e33b8;color:#d1ffff;text-align:center;font:600 11px/1.2 Manrope,sans-serif;pointer-events:none}
.world-game .full-player.is-dragging .full-hit{pointer-events:none}
.world-game #library .character-card,.world-game .full-player .full-hit{touch-action:none}
#fullDropSlots{position:absolute;inset:0;pointer-events:none;z-index:3}
#fullDropSlots[hidden]{display:none!important}
.full-drop-slot{position:absolute;display:grid;place-items:end center;padding-bottom:12px;border:2px dashed #fff9;border-radius:20px;background:#25374640;color:#fff;font:700 16px/1 Manrope,sans-serif;text-shadow:0 2px 5px #000;box-sizing:border-box}
.full-drop-slot.occupied{border-color:#f9be6acc;background:#533c303f}
.full-drop-slot.selected{border:3px solid #63e0df;background:#2c8f9e55;box-shadow:inset 0 0 25px #63e0df55,0 0 20px #63e0df66}
.full-drag-ghost{position:fixed;left:0;top:0;z-index:10000;width:96px;height:96px;object-fit:contain;pointer-events:none;opacity:.82;filter:drop-shadow(0 6px 10px #0008)}
.world-game .fullThumb{object-fit:contain}
.world-game #library{display:flex!important;flex-wrap:nowrap;align-items:flex-start;overflow-x:auto;overflow-y:hidden}
.world-game #library .character-card{flex:0 0 auto}
#fullActorMenuTray:not([hidden]){position:fixed;inset:0;z-index:9998;pointer-events:none}
#fullActorMenuTray #sprunkiActorMenu{pointer-events:auto}
#app:has(.full-active){height:100dvh;min-height:100dvh;grid-template-rows:var(--top) auto minmax(240px,1fr) var(--dock)}
.world-game #fullModeToggle,.world-game #fullExit{display:none!important}
html.club-booting #actorsCanvas,html.club-booting #effectsCanvas,html.club-booting #actorLabels,html.club-booting #library .character-card .thumb{visibility:hidden}
@media(max-width:700px){
 :root{--top:88px}
 .world-game .topbar{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:42px 38px;column-gap:8px;row-gap:2px;padding:4px 10px;align-items:center}
 .world-game .topbar .brand{grid-column:1/-1;grid-row:1;max-width:none;min-width:0}
 .world-game .topbar .world-wordmark{font-size:14px;max-width:190px}
 .world-game .topbar .world-wordmark[data-logo-selected="true"]{width:42px;height:42px}
 .world-game .world-tagline{display:block;font-size:10px}
 .world-game .topbar .transport{grid-column:1;grid-row:2;justify-self:start}
 .world-game .topbar .tools{grid-column:2;grid-row:2;justify-self:end}
}
@media(max-width:390px){.world-game .world-tagline{display:none}.world-game .topbar .world-wordmark{font-size:13px;max-width:190px}}
@media(max-width:700px){.world-game .topbar .world-wordmark[data-logo-selected="true"]{width:160px;height:auto;max-width:55vw;max-height:42px}}
@media(prefers-reduced-motion:reduce){.world-game .world-wordmark,.world-game .full-poster{transition:none!important;animation:none!important}}
html:not(.alpha-dev) #fullCount,html:not(.alpha-dev) #fullPosition,html:not(.alpha-dev) .full-active .scene-caption{display:none!important}
.world-game #fullControls{display:flex;align-items:center;flex-wrap:wrap;column-gap:14px;row-gap:3px;min-height:54px;background:#171e33e8}
.world-game #fullControls>strong{white-space:nowrap;font-size:15px}
.world-game #fullControls>.fullButtons{display:flex;align-items:center;flex:1;min-width:0;margin:0}
.world-game #fullControls>.fullButtons button{min-height:35px}
.world-game #fullClear{border-color:#f9be6a88;color:#ffe4b4;white-space:nowrap}
.world-game #fullControls>.fullButtons .full-master-row{margin-left:auto}
.world-game #fullControls .full-master{display:flex;align-items:center;gap:7px;white-space:nowrap;font-size:11px}
.world-game #fullControls .full-master input{width:90px;margin:0}
.world-game #fullControls .full-master output{min-width:48px}
.world-game #fullControls .fullReadout{margin:0;min-width:46px}
.world-game #fullControls details{position:relative;margin:0;font-size:11px}
.world-game #fullControls details[open]{align-self:stretch}
.world-game #fullControls #fullMixerPanel[open],.world-game #fullControls #fullMore[open]{flex-basis:100%}
.world-game #app:has(.full-active) .topbar .transport{display:none}
.world-game #app:has(.full-active) .topbar #record,.world-game #app:has(.full-active) .topbar #settingsButton{display:none}
.world-game .full-active #reset{display:none!important}
.world-game #fullMore:not([open])>.fullButtons,.world-game #fullMixerPanel:not([open])>#fullMixer{display:none!important}
@media(max-width:700px){.world-game #fullControls{padding:5px 8px;gap:3px}.world-game #fullControls>strong{display:none}.world-game #fullControls>.fullButtons{flex-wrap:wrap;gap:3px}.world-game #fullControls>.fullButtons .full-master-row{margin-left:0;flex:1 1 100%;justify-content:space-between}.world-game #fullControls .full-master input{width:80px}.world-game #fullControls .fullReadout{font-size:10px}}
/* Lore displays the current eight-second stage animation and editorial text. */
#fullLoreDialog{box-sizing:border-box;width:min(760px,94vw);max-height:92dvh;overflow:auto;border:1px solid #63e0df66;border-radius:20px;background:#20243b;color:#f8f5ec;padding:20px;box-shadow:0 20px 60px #050611a8;font:14px/1.55 Manrope,system-ui,sans-serif}
#fullLoreDialog::backdrop{background:#080914b8}
#fullLoreDialog>header{display:flex;justify-content:space-between;align-items:center;gap:12px;font-weight:800;color:#a18bfa}
#fullLoreClose{min-width:44px;min-height:44px;border:1px solid #ffffff40;border-radius:12px;background:#15182b;color:#fff;font-size:24px;cursor:pointer}
#fullLoreDialog label{display:flex;align-items:center;gap:12px;margin:14px 0;color:#b9c4dc}
#fullLoreSelect{min-width:0;max-width:100%;padding:9px 12px;border:1px solid #ffffff40;border-radius:10px;background:#15182b;color:#fff;font:inherit}
#fullLoreDialog .full-lore-body{display:grid;grid-template-columns:minmax(160px,.75fr) minmax(0,1.25fr);align-items:start;gap:20px}
#fullLoreVideo{width:100%;height:auto;aspect-ratio:1;object-fit:contain;background:#171325;border-radius:16px}
#fullLoreName{margin:0 0 5px;font:400 clamp(25px,4vw,38px)/1.1 'Russo One',sans-serif;font-synthesis:none}
#fullLoreRole{margin:0;color:#b9c4dc}
#fullLoreWorld{color:#b9c4dc}
#fullLorePersonality{color:#f9be6a}
#fullLoreStory{margin-top:16px;white-space:pre-line}
#fullLoreDialog button:focus-visible,#fullLoreSelect:focus-visible{outline:2px solid #63e0df;outline-offset:2px}
@media(max-width:520px){#fullLoreDialog{padding:12px}.full-lore-body{grid-template-columns:1fr!important}#fullLoreVideo{max-width:220px;margin:auto}}

/* Dedicated P09 crops already include safe head and instrument margins. */
.world-game #library .character-card .fullThumb{transform:none;object-fit:contain}

/* R5: keep the actor hint inside the stage and give the catalog its own scroll area. */
.world-game #app:has(.full-active){--dock:390px;grid-template-rows:var(--top) auto minmax(260px,1fr) var(--dock);height:100dvh;min-height:100dvh;overflow:hidden}
.world-game #fullActorMenuTray:not([hidden]){position:absolute;inset:auto 0 0;width:100%;height:30px;min-height:30px;border:0;background:transparent;pointer-events:none;z-index:10}
.world-game #fullActorMenuTray:not([hidden])::before{top:auto;bottom:4px;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 24px);padding:3px 10px;border-radius:9px;background:#211a2bc4;color:#fff3df;opacity:.9;text-align:center;text-shadow:0 1px 4px #110a1dcc}
.world-game #fullActorMenuTray #sprunkiActorMenu{position:absolute;top:auto;bottom:1px;pointer-events:auto}
.world-game #app:has(.full-active) .dock{box-sizing:border-box;min-height:0;grid-template-rows:auto minmax(0,1fr);gap:8px;padding:10px 18px 12px}
.world-game #app:has(.full-active) .emotion-panel{display:none}
.world-game #app:has(.full-active) .library-heading{min-width:0;min-height:28px;gap:12px}
.world-game #app:has(.full-active) .library-heading .filters{display:flex;gap:4px;max-width:100%;overflow-x:auto;scrollbar-width:thin}
.world-game #app:has(.full-active) .library-heading .filters button{white-space:nowrap}
.world-game #app:has(.full-active) .library-rail{display:grid;grid-template-columns:32px minmax(0,1fr) 32px;gap:8px;min-width:0;min-height:0;overflow:hidden}
.world-game #app:has(.full-active) .library-arrow{display:grid!important}
.world-game #library{box-sizing:border-box;display:grid!important;grid-template-columns:repeat(10,124px);grid-template-rows:repeat(2,max-content);justify-content:safe center;align-content:center;align-items:start;column-gap:3px;row-gap:3px;min-height:0;height:100%;overflow-x:auto;overflow-y:hidden;padding:0 4px 4px 0;scrollbar-width:thin;scroll-snap-type:x proximity}
.world-game #library .character-card{box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:2px;width:124px;min-width:0;min-height:0;height:auto;padding:3px 4px;scroll-snap-align:start}
.world-game #library .character-card[hidden]{display:none!important}
.world-game #library .character-card .thumb{width:112px;height:112px;max-width:100%;flex:none;overflow:visible}
.world-game #library .character-card .fullThumb{width:100%;height:100%;object-fit:contain}
.world-game #library .character-card .fullCardName{display:block;flex:none;max-width:100%;min-height:0;font-size:22px;line-height:1.08;font-weight:600;text-align:center;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
.world-game #library .character-card[data-id="mr-fun-computer"] .fullCardName{min-height:2.16em}
.world-game #library .fullBadge{display:none!important}
@media(max-width:1600px){.world-game #library .character-card .fullCardName{font-size:20px}}
@media(min-width:2400px){
 .world-game #app:has(.full-active){--dock:440px}
 .world-game #library{grid-template-columns:repeat(10,148px)}
 .world-game #library .character-card{width:148px}
 .world-game #library .character-card .thumb{width:132px;height:132px}
 .world-game #library .character-card .fullCardName{font-size:22px}
}
@media(max-width:700px){
 .world-game #app:has(.full-active){--dock:340px;grid-template-rows:var(--top) auto minmax(240px,1fr) var(--dock)}
 .world-game #app:has(.full-active) .dock{padding:8px 8px max(8px,env(safe-area-inset-bottom));gap:6px}
 .world-game #app:has(.full-active) .library-heading .filters{display:none}
 .world-game #app:has(.full-active) .mobile-band-filter{display:block;max-width:68%}
 .world-game #app:has(.full-active) .library-rail{grid-template-columns:24px minmax(0,1fr) 24px;gap:5px}
 .world-game #library{grid-template-columns:repeat(10,108px);column-gap:2px;row-gap:2px}
 .world-game #library .character-card{width:108px;padding:3px 4px}
 .world-game #library .character-card .thumb{width:92px;height:92px}
 .world-game #library .character-card .fullCardName{font-size:20px}
}

/* R9 restores O-GAME r12/r14's full lore anatomy with current 20-hero P08 media. */
#fullLoreDialog{width:min(1420px,96vw);height:min(920px,95dvh);max-height:95dvh;padding:0;overflow:hidden;background:#20243b}
#fullLoreDialog[open]{display:grid;grid-template-rows:106px minmax(0,1fr) 186px}
#fullLoreDialog>.full-lore-header{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:10px 174px;text-align:center;border-bottom:1px solid #ffffff24}
#fullLoreDialog .full-lore-header small{font-size:10px;letter-spacing:.13em;color:#b9c4dc}
#fullLoreName{margin:0;font:400 clamp(30px,3vw,50px)/1.05 'Russo One',sans-serif}
#fullLoreAge{font-size:clamp(18px,1.5vw,26px);line-height:1.1;color:#ead2b0}
#fullLoreDialog .full-lore-actions{position:absolute;right:14px;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:6px}
#fullLoreDialog .full-lore-actions button{min-width:40px;min-height:40px;border:1px solid #ffffff40;border-radius:11px;background:#15182b;color:#fff;font-size:22px;cursor:pointer}
#fullLorePosition{margin-right:8px;color:#b9c4dc;white-space:nowrap}
#fullLoreDialog .full-lore-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;gap:0;min-height:0;overflow:hidden}
#fullLoreDialog .full-lore-showcase{min-width:0;min-height:0;padding:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}
#fullLoreVideo{display:block;width:min(100%,52dvh);height:min(100%,52dvh);max-height:100%;aspect-ratio:1;object-fit:contain;background:#171325;border-radius:20px}
#fullLoreDialog .full-lore-showcase{background:#251736 url('assets/concert-ui-r11/lore-concert-lossless.webp') center 55%/cover no-repeat}
#fullLoreVideo{background:transparent}
#fullLoreRole{font-size:15px;color:#ead2b0;text-align:center}
#fullLoreDialog .full-lore-pages{min-width:0;min-height:0;overflow-y:auto;margin:18px 18px 18px 0;padding:26px 30px;border-radius:20px;background:linear-gradient(135deg,#faf6ee,#f1e8dc);color:#493d49}
#fullLoreDialog .full-lore-pages section{margin:0 0 28px}
#fullLoreDialog .full-lore-pages section:last-child{margin-bottom:0}
#fullLoreDialog .full-lore-pages h3{margin:0 0 14px;color:#896758;font-size:14px;letter-spacing:.09em;text-transform:uppercase}
#fullLoreStory{margin:0;white-space:normal}
#fullLoreStory p{margin:0 0 16px;font-size:clamp(17px,1.2vw,21px);line-height:1.55}
#fullLoreFacts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0}
#fullLoreFacts>div{padding:13px 15px;border:1px solid #aa8a7333;border-radius:13px;background:#fffdfa8c}
#fullLoreFacts>div:last-child{grid-column:1/-1}
#fullLoreFacts dt{color:#8b6a59;font-size:11px;letter-spacing:.07em;text-transform:uppercase}
#fullLoreFacts dd{margin:6px 0 0;color:#493d49;font-size:17px;line-height:1.4}
#fullLoreLinks{display:grid;gap:10px}
#fullLoreLinks>p{margin:0;color:#705e69}
#fullLoreLinks .full-lore-link{display:flex;flex-direction:column;align-items:start;gap:3px;padding:12px 15px;border:1px solid #aa8a7333;border-radius:13px;background:#fffdfa8c;color:#493d49;text-align:left;cursor:pointer}
#fullLoreLinks .full-lore-link strong{font-size:17px}
#fullLoreLinks .full-lore-link span{font-size:15px;line-height:1.4}
#fullLoreDialog .full-lore-console{display:grid;grid-template-rows:34px minmax(0,1fr);gap:4px;min-width:0;min-height:0;padding:9px 16px 12px;border-top:1px solid #ffffff24;background:#171e33}
#fullLoreDialog .full-lore-console-head{display:flex;align-items:center;gap:12px;color:#ead2b0}
#fullLoreDialog .full-lore-console-head label{margin:0 0 0 auto;font-size:11px}
#fullLoreSearch{width:150px;margin-left:6px;padding:5px 8px;border:1px solid #ffffff40;border-radius:7px;background:#20243b;color:#fff}
#fullLoreRoster{display:grid;grid-template-rows:repeat(2,1fr);grid-auto-flow:column;grid-auto-columns:88px;justify-content:safe center;gap:2px 5px;min-height:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}
#fullLoreRoster .full-lore-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-width:0;padding:2px;border:1px solid transparent;border-radius:9px;background:#ffffff09;color:#fff;font:600 11px/1.1 Manrope,sans-serif;cursor:pointer}
#fullLoreRoster .full-lore-card[hidden]{display:none}
#fullLoreRoster .full-lore-card[aria-pressed="true"]{border-color:#63e0df;background:#63e0df25}
#fullLoreRoster .full-lore-card img{width:52px;height:52px;object-fit:contain}
#fullLoreRoster .full-lore-card span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
#fullLoreTabs{display:none}
#fullLoreSelect{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
#fullLoreDialog button:focus-visible,#fullLoreSearch:focus-visible{outline:2px solid #63e0df;outline-offset:2px}
@media(max-width:700px){
 #fullLoreDialog{width:96vw;height:96dvh;max-height:96dvh}
 #fullLoreDialog[open]{grid-template-rows:86px 40px minmax(0,1fr) 174px}
 #fullLoreDialog>.full-lore-header{padding:6px 92px 6px 10px;align-items:center}
 #fullLoreName{font-size:clamp(24px,6vw,34px)}
 #fullLoreAge{font-size:18px}
 #fullLoreDialog .full-lore-header small,#fullLorePosition,#fullLorePrev,#fullLoreNext{display:none}
 #fullLoreDialog .full-lore-actions{right:8px}
 #fullLoreTabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:4px 12px}
 #fullLoreTabs button{border:1px solid #ffffff40;border-radius:8px;background:#15182b;color:#fff}
 #fullLoreTabs button[aria-pressed="true"]{border-color:#63e0df;color:#d1ffff}
 #fullLoreDialog .full-lore-body{display:block}
 #fullLoreDialog[data-view="portrait"] .full-lore-pages,#fullLoreDialog[data-view="reading"] .full-lore-showcase{display:none}
 #fullLoreDialog .full-lore-showcase{height:100%;box-sizing:border-box;padding:8px}
 #fullLoreVideo{width:min(100%,38dvh);height:min(100%,38dvh)}
 #fullLoreDialog .full-lore-pages{height:calc(100% - 16px);box-sizing:border-box;margin:8px;padding:18px}
 #fullLoreFacts{grid-template-columns:1fr}
 #fullLoreFacts>div:last-child{grid-column:auto}
 #fullLoreDialog .full-lore-console{padding:7px;grid-template-rows:31px minmax(0,1fr)}
 #fullLoreRoster{grid-auto-columns:76px}
 #fullLoreRoster .full-lore-card img{width:45px;height:45px}
 #fullLoreSearch{width:85px}
}

/* R11: one compact game header, with the horizontal mark centered above its controls. */
.world-game #app:has(.full-active){grid-template-rows:auto minmax(240px,1fr) var(--dock);height:100dvh;min-height:100dvh}
.world-game #app:has(.full-active) .topbar{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);grid-template-rows:70px 46px;gap:0 8px;align-items:center;padding:0 14px;background:linear-gradient(110deg,#171b33,#211933 55%,#171b33);border-bottom:1px solid #63e0df55}
.world-game #app:has(.full-active) .topbar .brand{grid-column:2;grid-row:1;justify-self:center;width:max-content;max-width:none}
.world-game #app:has(.full-active) .topbar .world-wordmark[data-logo-selected="true"]{width:clamp(240px,22vw,300px);max-width:none;max-height:68px}
.world-game #app:has(.full-active) .topbar .transport{display:none}
.world-game #app:has(.full-active) .topbar .tools{grid-column:3;grid-row:1;justify-self:end}
.world-game #app:has(.full-active) .topbar .tools .iconbutton{min-width:44px;min-height:44px}
.world-game #app:has(.full-active) .topbar #fullControls{grid-column:1/-1;grid-row:2;position:relative;display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-width:0;min-height:0;padding:0;border:0;background:none;box-shadow:none}
.world-game #fullControls>strong,.world-game #fullControls>.fullReadout{display:none}
.world-game #fullControls>.fullButtons{display:flex;flex:0 1 auto;align-items:center;gap:5px;width:auto;margin:0}
.world-game #fullControls>.fullButtons button{min-height:44px;padding:6px 10px;border-radius:12px;font-size:12px;white-space:nowrap}
.world-game #fullStart{background:#f9be6a;color:#121522;font-weight:800;border-color:#f9be6a}
.world-game #fullControls .full-master{font-size:11px}
.world-game #fullControls .full-master input{accent-color:#63e0df}
.world-game #fullControls .full-master output{min-width:34px}
.world-game #fullControls .full-master-row{display:flex;align-items:center;gap:5px;margin-left:8px}
.world-game #fullControls details{position:static;align-self:center;margin:0;flex-basis:auto!important}
.world-game #fullControls details>summary{display:flex;align-items:center;min-height:44px;padding:6px 10px;border:1px solid #a48ac063;border-radius:12px;background:#332a48;color:#f5e9ff;white-space:nowrap;list-style:none;cursor:pointer}
.world-game #fullControls details>summary::-webkit-details-marker{display:none}
.world-game #fullControls #fullMixerPanel[open] #fullMixer,.world-game #fullControls #fullMore[open]>.fullButtons{position:absolute;z-index:20;top:100%;left:0;right:0;display:flex;flex-wrap:wrap;max-height:min(38dvh,340px);overflow:auto;padding:10px;border:1px solid #63e0df66;border-radius:0 0 16px 16px;background:#171e33f5;box-shadow:0 20px 40px #0a0926a8}
.world-game #fullControls #fullMixerPanel[open] #fullMixer{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.world-game #fullControls #toast.show{position:absolute;top:100%;left:50%;transform:translateX(-50%);z-index:21;max-width:min(520px,96vw)}
.world-game #app:has(.full-active) #scene>.stage-navigation{position:absolute!important;left:8px;right:8px;bottom:8px;transform:none;display:flex;justify-content:space-between;pointer-events:none;border:0;background:transparent;box-shadow:none}
.world-game #app:has(.full-active) #scene>.stage-navigation button{width:44px;height:44px;pointer-events:auto;background:#181c35cc;border:1px solid #63e0df66}
.world-game #app:has(.full-active) #scene>.stage-navigation span{background:#171e33aa;border-radius:18px;padding:5px 8px}
@media(max-width:1100px){
 .world-game #app:has(.full-active){grid-template-rows:auto minmax(280px,1fr) var(--dock)}
 .world-game #app:has(.full-active) .topbar{grid-template-columns:1fr auto 1fr;grid-template-rows:44px 88px;padding:0 6px}
 .world-game #app:has(.full-active) .topbar .world-wordmark[data-logo-selected="true"]{width:160px;max-width:55vw;max-height:42px}
 .world-game #app:has(.full-active) .topbar .tools{grid-column:3;grid-row:1}
 .world-game #app:has(.full-active) .topbar #fullControls{grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:44px 44px;column-gap:3px;row-gap:0}
 .world-game #fullControls>.fullButtons{display:contents}
 .world-game #fullControls>.fullButtons>button{grid-row:1;min-width:0;min-height:44px;padding:3px 2px;font-size:10px;line-height:1.1;white-space:normal}
 .world-game #fullControls>.fullButtons>button:nth-child(1){grid-column:1}
 .world-game #fullControls>.fullButtons>button:nth-child(2){grid-column:2}
 .world-game #fullControls>.fullButtons>button:nth-child(3){grid-column:3}
 .world-game #fullControls>.fullButtons>button:nth-child(4){grid-column:4}
 .world-game #fullControls>.fullButtons>button:nth-child(5){grid-column:5}
 .world-game #fullControls .full-master-row{grid-column:1/4;grid-row:2;min-width:0;margin:0;justify-content:space-between}
 .world-game #fullControls .full-master{font-size:0;gap:3px;min-width:0}
 .world-game #fullControls .full-master input{width:min(22vw,86px)}
 .world-game #fullControls .full-master output{font-size:10px;min-width:27px}
 .world-game #fullControls #fullMasterMute{min-width:44px;min-height:44px;padding:0;font-size:0}
 .world-game #fullControls #fullMasterMute::before{content:'♫';font-size:21px}
 .world-game #fullControls #fullMasterMute[aria-pressed="true"]::before{content:'×'}
 .world-game #fullControls #fullMixerPanel{grid-column:4;grid-row:2}
 .world-game #fullControls #fullMore{grid-column:5;grid-row:2}
 .world-game #fullControls details>summary{justify-content:center;min-width:0;padding:3px 2px;font-size:0}
 .world-game #fullControls #fullMixerPanel>summary::before{content:'Партии';font-size:10px}
 .world-game #fullControls #fullMore>summary::before{content:'Мои';font-size:10px}
 .world-game #app:has(.full-active) #scene>.stage-navigation span{display:none}
}

/* Native video chrome obscured the concert floor; these controls stay outside the picture. */
#fullLoreDialog .full-lore-showcase #fullLoreVideo{max-height:calc(100% - 94px)}
#fullLoreDialog .full-lore-playback{display:grid;grid-template-columns:64px 88px minmax(0,1fr) 62px;align-items:center;gap:5px;width:min(100%,560px);padding:5px;border:1px solid #b180ff78;border-radius:13px;background:#14152de0;box-shadow:0 7px 22px #08081880}
#fullLoreDialog .full-lore-playback button{min-height:44px;padding:5px;border:1px solid #63e0df88;border-radius:9px;background:#2b2955;color:#f9f1ff;font:700 11px Manrope,sans-serif}
#fullLoreDialog .full-lore-playback button[aria-pressed="true"]{border-color:#f9be6a;color:#ffe7aa}
#fullLoreDialog .full-lore-progress{display:flex;align-items:center;min-width:0;margin:0;font-size:0}
#fullLoreDialog #fullLoreSeek{width:100%;min-width:0;margin:0;accent-color:#63e0df}
#fullLoreDialog #fullLoreTime{text-align:center;color:#e4d7f0;font:600 10px Manrope,sans-serif;white-space:nowrap}
#fullLoreAudio{display:none}
@media(max-width:700px){#fullLoreDialog .full-lore-playback{grid-template-columns:54px 76px minmax(0,1fr) 56px;gap:3px;width:100%;padding:4px}#fullLoreDialog .full-lore-playback button{font-size:10px}#fullLoreDialog #fullLoreTime{font-size:9px}}

/* ART-GAME draft component language, adapted to the live R10 actor and catalog sizes. */
.world-game #app:has(.full-active){--focus:#9bf4ff;--gold:#ffd082;--accent:#ffd082;--bw-violet:#bb85ff;--bw-cyan:#7be4ed;--bw-ink:#211437}
.world-game .bw-icon{display:block;width:22px;height:22px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.world-game #app:has(.full-active) .topbar{background:linear-gradient(180deg,#37244a,#241832);border-bottom-color:#8e6bac70;box-shadow:0 4px 18px #170d2e55}
.world-game #app:has(.full-active) .topbar .tools .iconbutton{border:1px solid #8e769e75;border-radius:14px;background:linear-gradient(180deg,#544164,#352643);box-shadow:inset 0 1px 0 #ffffff17,0 3px 0 #170d2766;color:#fff7ef}
.world-game #app:has(.full-active) .topbar .tools .iconbutton:hover{background:linear-gradient(180deg,#6d508a,#4e3566);border-color:#cda1f3}
.world-game #fullControls>.fullButtons button,.world-game #fullControls details>summary,.world-game #fullControls #fullMore>.fullButtons button{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid #8e769e75;border-radius:14px;background:linear-gradient(180deg,#544164,#352643);box-shadow:inset 0 1px 0 #ffffff17,0 3px 0 #170d2766;color:#fff7ef;font-weight:750}
.world-game #fullControls #fullMore>.fullButtons button,.world-game #fullMixer .full-mix-row button{min-width:44px;min-height:44px}
.world-game #fullControls>.fullButtons button:hover:not(:disabled),.world-game #fullControls details>summary:hover{background:linear-gradient(180deg,#6d508a,#4e3566);border-color:#cda1f3}
.world-game #fullControls>.fullButtons button:disabled{opacity:.45}
.world-game #fullControls #fullStart{border-color:#ffe3a9;background:linear-gradient(180deg,#ffe2a2 0%,#ffc66b 60%,#e8a144 100%);box-shadow:inset 0 2px 0 #fff6d0,0 3px 0 #86502a;color:#281433;font-weight:850}
.world-game #fullControls #fullPause:not(:disabled){border-color:#d6fff9;background:linear-gradient(#b9f7ef,#73dce4 65%,#36adb9);color:#183146}
.world-game #fullControls #fullMasterMute[aria-pressed="true"]{border-color:#7be4ed;background:#284756;color:#c9ffff}
.world-game #fullControls #fullClear{border-color:#cfa175;color:#ffe1bb}
.world-game #fullControls details>summary .bw-icon{width:20px;height:20px}
.world-game #app:has(.full-active) .library-heading .filters button{display:inline-flex;align-items:center;gap:4px;min-height:44px;padding:4px 8px;border:1px solid transparent;border-radius:13px;color:#d7cbe1;font-size:11px;font-weight:700}
.world-game #app:has(.full-active) .library-heading .filters button .bw-icon{width:17px;height:17px}
.world-game #app:has(.full-active) .library-heading .filters button small{font-size:10px;opacity:.7}
.world-game #app:has(.full-active) .library-heading .filters button.selected{background:linear-gradient(#654976,#443056);border-color:#c799e77a;color:#fff4dc}
.world-game #app:has(.full-active) .library-heading{min-height:44px}
.world-game #app:has(.full-active) .library-rail{grid-template-columns:44px minmax(0,1fr) 44px}
.world-game #app:has(.full-active) .library-arrow{min-width:44px;border-color:#8e769e75;background:linear-gradient(180deg,#544164,#352643);color:#fff7ef}
.world-game #library .character-card{position:relative;border:1px solid #80638e;border-radius:14px;background:linear-gradient(145deg,#59406b,#3a294a 70%);box-shadow:inset 0 1px 0 #e1b8ff1b,0 3px 0 #170d2559;color:#fff5ed;transition:background .12s,border-color .12s}
.world-game #library .character-card:hover{background:linear-gradient(145deg,#79568c,#523563);border-color:#c8a4db}
.world-game #library .character-card.active{border:2px solid #ffd082;background:linear-gradient(135deg,#6b4d5c,#403047);box-shadow:inset 0 1px 0 #fff2af40,0 3px 0 #755036}
.world-game #library .character-card.focused{outline:3px solid #9bf4ff;outline-offset:1px}
.world-game #library .character-card.is-muted .fullThumb{opacity:.65;filter:saturate(.45)}
.world-game #library .character-card.is-loading .fullThumb{opacity:.25}
.world-game #library .character-card.is-loading::before{content:'Загрузка';position:absolute;top:32%;z-index:2;padding:3px 5px;border-radius:7px;background:#241832dd;color:#fff;font-size:11px}
.world-game #library .character-card:focus-visible,.world-game #fullControls button:focus-visible,.world-game #fullControls summary:focus-visible{outline:3px solid #9bf4ff;outline-offset:2px}
#fullLoreDialog .full-lore-playback button,#fullLoreDialog .full-lore-actions button{display:inline-flex;align-items:center;justify-content:center;gap:4px;background:linear-gradient(180deg,#544164,#352643);border-color:#a888bd88;box-shadow:inset 0 1px 0 #ffffff17;color:#fff7ef}
#fullLoreDialog .full-lore-actions button{min-width:44px;min-height:44px}
#sprunkiActorMenu{border-color:#bb85ff;background:linear-gradient(145deg,#513561,#30213f)}
#sprunkiActorMenu button{min-width:44px;width:44px;min-height:44px;border-color:#ffd082;background:#604070}
#fullLoreDialog .full-lore-playback button[aria-pressed="true"]{border-color:#7be4ed;color:#bdf9ff}
#fullLoreDialog .full-lore-playback .bw-icon{width:18px;height:18px}
@media(max-width:1100px){
 .world-game #fullControls>.fullButtons>button{gap:3px}
 .world-game #fullControls>.fullButtons>button .bw-icon{width:18px;height:18px}
 .world-game #fullControls #fullMasterMute{font-size:0}
 .world-game #fullControls #fullMasterMute>span{display:none}
 .world-game #fullControls #fullMasterMute::before,.world-game #fullControls #fullMasterMute[aria-pressed="true"]::before{content:none}
 .world-game #fullControls details>summary>span{display:none}
 .world-game #fullControls #fullClear>span{display:none}
 .world-game #fullControls #fullClear .bw-icon{width:24px;height:24px}
 .world-game #app:has(.full-active) .mobile-band-filter select{min-height:44px}
 .world-game #app:has(.full-active) .library-rail{grid-template-columns:44px minmax(0,1fr) 44px}
}

/* R13: reserve the sky for the exact C mark and remove its separate desktop header row. */
@media(min-width:1101px){
 .world-game #app:has(.full-active) .topbar{grid-template-columns:minmax(0,1fr) auto;grid-template-rows:58px;gap:8px}
 .world-game #app:has(.full-active) .topbar .brand{display:none}
 .world-game #app:has(.full-active) .topbar #fullControls{grid-column:1;grid-row:1;justify-content:flex-start}
 .world-game #app:has(.full-active) .topbar .tools{grid-column:2;grid-row:1}
 .world-game .full-active #fullStageLogo[data-logo-selected="true"]{display:block;z-index:8;top:5px;width:clamp(240px,24vw,390px);height:auto;max-width:calc(100% - 32px);max-height:140px;object-fit:contain;pointer-events:none}
 .world-game .full-active #fullLogoSpectrum{display:block;top:0;width:clamp(280px,28vw,450px);height:150px;max-width:calc(100% - 8px);mask-image:radial-gradient(ellipse 78% 70% at 50% 50%,#000 42%,transparent 100%);-webkit-mask-image:radial-gradient(ellipse 78% 70% at 50% 50%,#000 42%,transparent 100%)}
}
.world-game #app:has(.full-active) #library{align-content:start;overflow-y:auto;overscroll-behavior:contain;padding-top:4px}
.world-game #app:has(.full-active) .library-rail{overflow:visible}
.world-game #fullActorMenuTray #sprunkiActorMenu{box-sizing:border-box;max-width:calc(100vw - 16px);padding:4px 7px;gap:7px}
.world-game #sprunkiActorMenu .actor-volume{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:650;white-space:nowrap}
.world-game #sprunkiActorMenu .actor-volume input{width:clamp(72px,9vw,136px);accent-color:#7be4ed}
.world-game #sprunkiActorMenu .actor-volume output{min-width:30px;text-align:right;font-size:11px}
.world-game #sprunkiActorMenu #sprunkiActorName{max-width:130px;overflow:hidden;text-overflow:ellipsis}
@media(max-width:700px){
 .world-game #sprunkiActorMenu .actor-volume{font-size:0}
 .world-game #sprunkiActorMenu .actor-volume input{width:80px}
 .world-game #sprunkiActorMenu #sprunkiActorName{max-width:100px;font-size:11px}
}
@media(min-width:701px) and (max-width:2399px){.world-game #app:has(.full-active){--dock:410px}}
@media(max-width:700px){.world-game #app:has(.full-active){--dock:350px}}

/* R17: the approved square original replaces the horizontal game mark.
   The visible ring is 382/400 of the old image height and 833/1254 of the
   square original; 0.44238 * old image width gives a 1.2x ring diameter. */
@media(min-width:1101px){
 .world-game .full-active #fullStageLogo[data-logo-selected="true"]{
  top:5px;width:clamp(106.17px,10.617vw,172.53px);height:clamp(106.17px,10.617vw,172.53px);
  max-width:none;max-height:none;object-fit:contain;background:transparent;
 }
 .world-game .full-active #fullLogoSpectrum{top:0;width:clamp(230px,20vw,290px);height:clamp(180px,15vw,225px);max-width:none}
 .world-game .full-active #fullLogoHaze{top:0;width:clamp(250px,22vw,320px);height:clamp(180px,16vw,235px)}
}
@media(max-width:1100px){
 .world-game #app:has(.full-active){height:calc(100dvh + 32px);min-height:calc(100dvh + 32px)}
 .world-game #app:has(.full-active) .topbar{grid-template-rows:76px 88px}
 .world-game #app:has(.full-active) .topbar .world-wordmark[data-logo-selected="true"]{
  width:71px;height:71px;max-width:none;max-height:none;object-fit:contain;background:transparent;
 }
}
@media(min-width:391px) and (max-width:700px){.world-game #app:has(.full-active){--dock:390px}}
@media(min-width:2400px){.world-game #app:has(.full-active){--dock:450px}}
.world-game #fullLogoHaze{display:none}
@media(min-width:1101px){.world-game .full-active #fullLogoHaze{display:block;position:absolute;z-index:6;top:0;left:50%;transform:translateX(-50%);width:clamp(300px,30vw,500px);height:165px;pointer-events:none;background:conic-gradient(from 235deg at 50% 50%,#dc73ff55,#73baff66,#6cf5e677,#ffe39377,#ff8ba266,#dc73ff55);filter:blur(18px);opacity:.8;mask-image:radial-gradient(ellipse at center,#000 30%,transparent 75%);-webkit-mask-image:radial-gradient(ellipse at center,#000 30%,transparent 75%)}}

/* UI3409: the canonical stacked logo is larger while the rainbow stays behind it. */
.world-game #fullLogoSpectrum,.world-game #fullLogoHaze,
.world-game .full-active #fullLogoSpectrum,.world-game .full-active #fullLogoHaze,
.world-game .topbar #fullLogoSpectrum{display:none!important}
@media(min-width:1101px){
 .world-game .full-active #fullStageLogo[data-logo-selected="true"]{
  width:clamp(127.404px,12.7404vw,207.036px);
  height:clamp(127.404px,12.7404vw,207.036px);
  max-width:none;max-height:none;object-fit:contain;z-index:8;
 }
}
@media(max-width:1100px){
 .world-game #app:has(.full-active){height:calc(100dvh + 32px);min-height:calc(100dvh + 32px)}
 .world-game #app:has(.full-active) .topbar{grid-template-rows:92px 88px}
 .world-game #app:has(.full-active) .topbar .world-wordmark[data-logo-selected="true"]{
  width:85.2px;height:85.2px;max-width:none;max-height:none;object-fit:contain;
 }
}

/* UI3409: all catalog cards reserve two name lines, including Mr. Fun Computer. */
.world-game #library{grid-template-rows:repeat(2,160px);align-items:stretch;align-content:start;padding-top:0}
.world-game #library .character-card{height:100%;min-height:0;padding:1px 4px;gap:0}
.world-game #library .character-card .fullCardName,
.world-game #library .character-card[data-id="mr-fun-computer"] .fullCardName{
 display:flex;align-items:center;justify-content:center;width:100%;height:2.16em;
 min-height:2.16em;max-height:2.16em;line-height:1.08;overflow:visible;
 white-space:normal;overflow-wrap:normal;word-break:normal;
}
.world-game #library .character-card[data-id="mr-fun-computer"] .fullCardName{font-size:18px}
@media(max-width:700px){
 .world-game #app:has(.full-active) .dock{padding-top:0;gap:0}
 .world-game #library{grid-template-rows:repeat(2,140px)}
 .world-game #library .character-card[data-id="mr-fun-computer"] .fullCardName{font-size:17px}
}
@media(min-width:701px) and (max-width:1100px){
 .world-game #app:has(.full-active) .dock{padding-top:0;gap:0}
 .world-game #library{grid-template-rows:repeat(2,154px)}
 .world-game #library .character-card .fullCardName{font-size:18px}
 .world-game #library .character-card[data-id="mr-fun-computer"] .fullCardName{font-size:17px}
}
@media(min-width:2400px){.world-game #library{grid-template-rows:repeat(2,184px)}}

/* UI3409: more useful lore area, full-body 1.000 s avatars, readable roster. */
#fullLoreDialog{width:min(1800px,98vw);height:min(1100px,96dvh);max-height:96dvh}
#fullLoreDialog[open]{grid-template-rows:96px minmax(0,1fr) 228px}
#fullLoreDialog>.full-lore-header{padding-top:4px;padding-bottom:4px}
#fullLoreName{font-size:clamp(30px,2.5vw,44px)}
#fullLoreAge{font-size:clamp(18px,1.2vw,22px)}
#fullLoreDialog .full-lore-body{grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr)}
#fullLoreDialog .full-lore-showcase{padding:10px;gap:6px}
#fullLoreDialog .full-lore-showcase #fullLoreVideo{
 width:min(100%,62dvh);height:min(100%,62dvh);
 max-height:calc(100% - 70px);object-fit:contain;
}
#fullLoreDialog .full-lore-pages{margin:10px 10px 10px 0;padding:18px 22px}
#fullLoreRoster{grid-auto-columns:minmax(78px,1fr);grid-template-rows:repeat(2,minmax(0,1fr));align-items:stretch;gap:3px 5px}
#fullLoreRoster .full-lore-card{min-height:0;justify-content:center}
#fullLoreRoster .full-lore-card img{width:60px;height:60px;flex:none;object-fit:contain}
#fullLoreRoster .full-lore-card span{display:flex;align-items:center;justify-content:center;min-height:2.2em;max-height:2.2em;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:normal;text-align:center}
@media(max-width:900px){
 #fullLoreRoster{grid-auto-columns:88px;justify-content:start;overflow-x:auto}
}
@media(max-width:700px){
 #fullLoreDialog{width:98vw;height:96dvh;max-height:96dvh}
 #fullLoreDialog[open]{grid-template-rows:82px 40px minmax(0,1fr) 190px}
 #fullLoreDialog>.full-lore-header{padding:5px 85px 5px 8px}
 #fullLoreDialog .full-lore-body{display:block}
 #fullLoreDialog .full-lore-showcase{height:100%;box-sizing:border-box;padding:6px}
 #fullLoreDialog .full-lore-showcase #fullLoreVideo{
  width:min(100%,54dvh);height:min(100%,54dvh);max-width:none;max-height:calc(100% - 70px);
 }
 #fullLoreDialog .full-lore-pages{margin:6px;padding:14px;height:calc(100% - 12px)}
 #fullLoreRoster{grid-auto-columns:82px;gap:2px 3px}
 #fullLoreRoster .full-lore-card img{width:50px;height:50px}
 #fullLoreSearch{width:105px}
}
@media(max-width:520px){
 .world-game #library{grid-template-rows:repeat(2,133px)}
 .world-game #library .character-card .fullCardName{font-size:17px}
 .world-game #library .character-card[data-id="mr-fun-computer"] .fullCardName{font-size:17px}
}

/* LORE3416: independent dark and light palettes; the game scene is unchanged. */
#fullLoreDialog[data-theme="dark"]{
 --lore-surface:#201a34;--lore-card:#2d2545;--lore-card-edge:#a78ad147;
 --lore-text:#f8f3ff;--lore-muted:#c7bad9;--lore-title:#e0c2ff;
 --lore-icon:#7de5eb;--lore-icon-bg:#7de5eb1b;--lore-accent:#f7ce87;
 --lore-header:#1c1830;--lore-console:#18162b;--lore-field:#312945;
 background:#18162b;color:var(--lore-text);color-scheme:dark;
}
#fullLoreDialog[data-theme="light"]{
 --lore-surface:#fffaf4;--lore-card:#fff;--lore-card-edge:#c9b7d9;
 --lore-text:#32253c;--lore-muted:#62546b;--lore-title:#573878;
 --lore-icon:#336b79;--lore-icon-bg:#d9f0ef;--lore-accent:#8c5722;
 --lore-header:#f5eaf6;--lore-console:#f4edf7;--lore-field:#fff;
 background:#f5eaf6;color:var(--lore-text);color-scheme:light;
}
#fullLoreDialog>.full-lore-header{background:var(--lore-header);border-bottom:1px solid var(--lore-card-edge)}
#fullLoreDialog .full-lore-header small,#fullLorePosition{color:var(--lore-muted)}
#fullLoreName{color:var(--lore-title)}
#fullLoreAge{color:var(--lore-accent)}
#fullLoreDialog .full-lore-pages{background:var(--lore-surface);color:var(--lore-text);border:1px solid var(--lore-card-edge)}
#fullLoreDialog .full-lore-pages section{margin-bottom:22px}
#fullLoreDialog .full-lore-pages h3{display:flex;align-items:center;gap:9px;margin-bottom:11px;color:var(--lore-title);font-size:14px;letter-spacing:.07em}
#fullLoreDialog .full-lore-pages h3 .bw-icon{width:29px;height:29px;padding:5px;border-radius:9px;background:var(--lore-icon-bg);color:var(--lore-icon)}
#fullLoreStory p,#fullLoreFacts>div,#fullLoreLinks .full-lore-link{
 border:1px solid var(--lore-card-edge);border-radius:14px;background:var(--lore-card);
 box-shadow:inset 0 1px 0 #ffffff12,0 4px 13px #110b2020;color:var(--lore-text);
}
#fullLoreStory p{display:grid;grid-template-columns:26px minmax(0,1fr);align-items:start;gap:10px;margin-bottom:10px;padding:14px 16px;line-height:1.5}
#fullLoreStory p .full-lore-icon{margin-top:3px}
#fullLoreFacts>div{display:grid;grid-template-columns:30px minmax(0,1fr);gap:2px 10px;padding:13px 14px}
#fullLoreFacts dt{grid-column:2;color:var(--lore-muted)}
#fullLoreFacts dd{grid-column:2;margin:4px 0 0;color:var(--lore-text)}
#fullLoreDialog .full-lore-icon{display:grid;place-items:center;width:29px;height:29px;border-radius:9px;background:var(--lore-icon-bg);color:var(--lore-icon)}
#fullLoreDialog .full-lore-icon .bw-icon{width:18px;height:18px}
#fullLoreFacts>div>.full-lore-icon,#fullLoreLinks .full-lore-link>.full-lore-icon{grid-column:1;grid-row:1/3}
#fullLoreLinks>p{color:var(--lore-muted)}
#fullLoreLinks .full-lore-link{display:grid;grid-template-columns:30px minmax(0,1fr);gap:3px 10px;align-items:start;padding:13px 14px;width:100%;min-height:60px}
#fullLoreLinks .full-lore-link strong,#fullLoreLinks .full-lore-link span{grid-column:2;color:var(--lore-text)}
#fullLoreLinks .full-lore-link span{color:var(--lore-muted)}
#fullLoreLinks .full-lore-link:hover,#fullLoreLinks .full-lore-link:focus-visible{border-color:var(--lore-icon)}
#fullLoreDialog .full-lore-console{background:var(--lore-console);border-top-color:var(--lore-card-edge)}
#fullLoreDialog .full-lore-console-head{color:var(--lore-accent)}
#fullLoreDialog .full-lore-console-head label{color:var(--lore-muted)}
#fullLoreSearch{background:var(--lore-field);border-color:var(--lore-card-edge);color:var(--lore-text)}
#fullLoreDialog .full-lore-card{background:var(--lore-card);color:var(--lore-text)}
#fullLoreDialog .full-lore-card[aria-pressed="true"]{background:var(--lore-icon-bg);border-color:var(--lore-icon)}
#fullLoreDialog .full-lore-actions button,#fullLoreTabs button{
 display:grid;place-items:center;min-width:44px;min-height:44px;border-color:var(--lore-card-edge);
 background:var(--lore-card);color:var(--lore-text);
}
#fullLoreDialog .full-lore-actions button .bw-icon{width:20px;height:20px}
#fullLoreDialog .full-lore-actions button:hover,#fullLoreTabs button:hover{border-color:var(--lore-icon)}
#fullLoreTabs button{display:flex;align-items:center;justify-content:center;gap:7px;min-width:0;padding:4px 8px}
#fullLoreTabs button .bw-icon{width:17px;height:17px}
#fullLoreTabs button[aria-pressed="true"]{background:var(--lore-icon-bg);color:var(--lore-title);border-color:var(--lore-icon)}
#fullLoreDialog .full-lore-showcase{container-type:size}
#fullLoreDialog .full-lore-showcase #fullLoreVideo{
 width:min(100%,512px,62dvh,calc(100cqh - 80px));height:auto;max-width:none;max-height:none;
 aspect-ratio:1;flex:none;object-fit:contain;image-rendering:auto;filter:none;transition:opacity .12s ease;
}
#fullLoreVideo[data-frame-ready="false"]{opacity:0}
#fullLoreDialog .full-lore-showcase>.full-lore-crop-frame{
 position:relative;flex:none;width:min(100%,512px,62dvh,calc(100cqh - 80px));
 height:auto;aspect-ratio:1;max-width:none;max-height:none;box-sizing:border-box;
 overflow:hidden;
}
@media(max-width:700px){
 #fullLoreDialog .full-lore-showcase>.full-lore-crop-frame{
  width:min(100%,512px,54dvh,calc(100cqh - 80px));
 }
}
#fullLoreDialog .full-lore-playback{grid-template-columns:82px 106px minmax(0,1fr) 64px}
#fullLoreDialog .full-lore-playback button{
 display:grid;grid-template-columns:20px minmax(0,1fr);align-items:center;justify-items:center;
 gap:3px;min-height:48px;padding:4px 5px;line-height:1.15;text-align:center;
}
#fullLoreDialog .full-lore-playback button>span{display:block;white-space:normal;overflow-wrap:anywhere}
#fullLoreDialog .full-lore-playback button .bw-icon{width:18px;height:18px}
#fullLoreDialog[open]{grid-template-rows:96px minmax(0,1fr) 274px}
#fullLoreRoster .full-lore-card img{width:75px;height:75px;image-rendering:auto}
#fullLoreRoster .full-lore-card span{min-height:2.3em;max-height:2.3em;line-height:1.15}
@media(max-width:700px){
 #fullLoreDialog[open]{grid-template-rows:82px 44px minmax(0,1fr) 240px}
 #fullLoreDialog>.full-lore-header{padding-right:108px}
 #fullLoreDialog #fullLorePrev,#fullLoreDialog #fullLoreNext{display:none}
 #fullLoreDialog .full-lore-showcase #fullLoreVideo{width:min(100%,512px,54dvh,calc(100cqh - 80px));height:auto}
 #fullLoreDialog .full-lore-pages{padding:12px}
 #fullLoreDialog .full-lore-playback{grid-template-columns:58px 73px minmax(38px,1fr) 52px;gap:3px}
 #fullLoreDialog .full-lore-playback button{grid-template-columns:1fr;grid-template-rows:18px auto;gap:1px;min-height:52px;padding:2px;font-size:10px}
 #fullLoreRoster .full-lore-card img{width:62.5px;height:62.5px}
 #fullLoreRoster .full-lore-card span{font-size:11px}
 #fullLoreTabs button{min-height:44px}
}
@media(max-width:390px){
 #fullLoreName{font-size:clamp(19px,6.2vw,25px)}
 #fullLoreDialog .full-lore-console-head{gap:4px}
 #fullLoreSearch{width:72px;margin-left:3px}
 #fullLoreDialog .full-lore-pages h3{font-size:12px}
 #fullLoreStory p{grid-template-columns:23px minmax(0,1fr);gap:7px;padding:11px}
}

/* A 701–900 px lore page cannot fit two fact columns beside a 30 px icon. */
@media(min-width:701px) and (max-width:900px){
 #fullLoreFacts{grid-template-columns:1fr}
 #fullLoreFacts>div:last-child{grid-column:auto}
 #fullLorePosition{display:none}
 #fullLoreName{font-size:26px}
}
#fullLoreFacts dd,#fullLoreLinks .full-lore-link span{min-width:0;overflow-wrap:anywhere}

/* Stability 3423: accepted layout and support geometry; replace only the lawn texture. */
.world-game .stage-deck{background-image:url("assets/stability-3423/beatworks-soft-meadow-lossless.webp");background-size:100% auto;background-position:center top;mask-image:linear-gradient(to bottom,transparent 0%,#000 28%);-webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 28%)}
