/* SLBDLL V33: shared type roles, independent of game state and screen layout. */
@font-face{font-family:"Cormorant Garamond";src:url('/fonts/cormorant-garamond.ttf') format('truetype');font-weight:300 700;font-style:normal;font-display:swap}
@font-face{font-family:Manrope;src:url('/fonts/manrope.ttf') format('truetype');font-weight:200 800;font-style:normal;font-display:swap}
:root{
 --font-display:"Cormorant Garamond",Georgia,serif;--font-ui:Manrope,Arial,sans-serif;
 --type-display:clamp(3.5rem,4.6vw,5rem);--type-h1:clamp(2.375rem,3.3vw,3rem);
 --type-h2:clamp(1.75rem,2.3vw,2.125rem);--type-h3:1.5rem;
 --type-body-lg:1.25rem;--type-body:1rem;--type-label:.8125rem;--type-button:1.0625rem;
 --type-score:clamp(1.75rem,3vw,2.5rem);--type-timer:2.75rem;
 --ui-radius:12px;--ui-border:1px solid #44606c;--ui-control-height:48px;
}
body,.home-screen,.party-screen,.party-mic-mode{font-family:var(--font-ui)}
button,input,select,textarea{font-family:var(--font-ui)}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.1}
h1{font-size:var(--type-h1)}h2{font-size:var(--type-h2)}h3,h4{font-size:var(--type-h3)}
:is(.home-screen,.game-screen,.result-screen,.party-screen,.party-mic-mode) button{font-family:var(--font-ui);font-weight:650}
.home-screen .brand-name,.party-screen .party-wordmark,.about-page .brand{font-family:var(--font-display);font-size:var(--type-h2);font-weight:600}
.home-screen .world-copy h1{font-family:var(--font-display);font-size:var(--type-display);font-weight:600;line-height:1;letter-spacing:-.02em}
.home-screen .world-lead{font-size:var(--type-body-lg);line-height:1.5}
.home-screen .world-kicker,.party-eyebrow,.eyebrow{font-family:var(--font-ui);font-size:var(--type-label);font-weight:700;line-height:1.5;letter-spacing:.08em}
.home-screen .site-nav a,.home-screen summary,.home-screen .mobile-navigation a,.home-screen .ambience-controls label,.home-screen .ambience-controls select{font-family:var(--font-ui);font-size:var(--type-body)}
:is(.world-primary,.world-secondary,.button-primary,.button-outline,.party-start,.party-next,.party-main-action,.party-mic-start){font-size:var(--type-button);line-height:1.35;min-height:var(--ui-control-height);border-radius:var(--ui-radius)}
.home-screen .world-carousel>h2{font-family:var(--font-display);font-size:var(--type-h3);font-weight:600;line-height:1.2;text-transform:none;letter-spacing:0}
:is(.play-controls,.resume-card,.home-dialog) h2,.party-team-zone h2{font-family:var(--font-display);font-size:var(--type-h3);font-weight:600}
.party-screen .party-setup-intro h1,.party-screen .party-voice-pairing h1,.party-mic-mode .party-mic-card h1,.game-screen #questionTitle,.about-page .about-section h2{font-family:var(--font-display);font-size:var(--type-h1);font-weight:600;line-height:1.1}
.party-screen .party-mode-options button strong,.party-screen .party-voice-team-info h2{font-family:var(--font-display);font-size:var(--type-h3);font-weight:600}
.party-screen .party-ready-cover h2,.party-screen .party-finale h2{font-family:var(--font-display);font-size:var(--type-display);font-weight:600;line-height:1.05}
.party-screen .party-modal-card h2{font-family:var(--font-display);font-size:var(--type-h2);font-weight:600;line-height:1.1}
.party-screen .party-score span,.score-value,.score-card strong{font-family:var(--font-ui);font-size:var(--type-score);font-weight:700;font-variant-numeric:tabular-nums}
.party-screen .party-timer span{font-family:var(--font-ui);font-size:var(--type-timer);font-weight:700;font-variant-numeric:tabular-nums}
.party-score strong,.party-score small,.progression-summary strong,.local-progress-stats strong{font-family:var(--font-ui)}
.home-screen .section-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.home-screen .world-universe,.home-screen .world-universe.is-side{border:1px solid transparent;border-radius:16px;gap:0;padding:0;background:transparent;align-items:center}
.home-screen .world-universe.is-center{border-color:var(--world-gold);background:#17344955;box-shadow:0 0 18px #e6c47e0a!important}
.home-screen .world-universe .scene-anchor,.home-screen .world-universe.is-side .scene-anchor{height:280px;padding-bottom:16px}
.home-screen .world-universe .world-scene,.home-screen .world-universe.is-side .world-scene{max-width:none;width:min(100%,var(--native-width));max-height:min(264px,var(--native-height));object-fit:contain}
.home-screen .world-universe .universe-name,.home-screen .world-universe.is-center .universe-name,.home-screen .world-universe.is-side .universe-name{font:600 var(--type-h3)/1.1 var(--font-display);height:92px;min-height:92px;max-width:100%;width:100%;padding:8px;background:#071d2be8;border:0;border-radius:0;overflow-wrap:normal}
.home-screen .world-universe .universe-count,.home-screen .world-universe.is-center .universe-count{display:block;height:54px;min-height:54px;padding:2px 6px 8px;margin:0;width:100%;font:500 var(--type-label)/1.5 var(--font-ui);color:var(--home-text);background:#071d2be8;border:0;border-radius:0 0 16px 16px}
.universe-selection-label{display:block;min-height:20px;color:var(--world-gold)}.universe-mobile-index{display:none}
.home-screen .carousel-controls{display:flex;position:static;justify-content:space-between;align-items:center;height:44px;min-height:44px;margin:8px 0}
.home-screen .carousel-controls button{position:static;min-width:44px;width:44px;height:44px;border-radius:50%;border:1px solid #e6c47e44;background:#071d2b88;color:var(--world-gold);font:400 30px/1 var(--font-ui);padding:0}
.home-screen .carousel-controls button:hover{background:#19394c;border-color:var(--world-gold)}
.home-screen #universePosition{display:inline;font-size:var(--type-label);background:transparent}
.home-screen .universe-directory{display:flex;justify-content:center;margin:0}
.home-screen .universe-directory>button{font:600 var(--type-body)/1.5 var(--font-ui);min-height:44px;color:var(--world-gold);background:#071d2bc9;border:0;border-bottom:1px solid #e6c47e66;border-radius:0;padding:4px 8px;cursor:pointer}
.home-screen .home-quick-access,.home-screen .home-quick-access:has(.resume-card:not([hidden])){grid-template-columns:1fr;max-width:560px;margin:0 auto;padding:8px 16px;border-radius:var(--ui-radius)}
.home-screen .home-quick-access:has(.resume-card:not([hidden])){grid-template-columns:1fr 1fr;max-width:100%}
.home-screen .home-quick-access .resume-card h2{font:600 var(--type-h3)/1.1 var(--font-display)}
.home-screen .home-quick-access .daily-card .world-kicker{font-size:var(--type-label)}
.home-screen .home-quick-access .daily-card button{font:650 var(--type-button)/1.4 var(--font-ui)}
#homeScreen #localProgress,#homeScreen #languageLabIntro{display:none!important}
.universes-dialog{width:min(960px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:28px;color:#faf5eb;background:#0b2638;border:1px solid #e6c47e88;border-radius:24px;box-shadow:0 24px 80px #0008;overflow:auto}
.universes-dialog::backdrop{background:#03111ee8}
.universes-dialog>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}
.universes-dialog h2{font:600 var(--type-h2)/1.1 var(--font-display);margin:0}.universes-dialog .world-kicker{margin:0 0 8px}
#allUniversesClose{flex:none;width:44px;height:44px;border:1px solid #e6c47e55;border-radius:50%;background:transparent;color:#faf5eb;font-size:26px;cursor:pointer}
.universes-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.overview-universe{display:flex;flex-direction:column;justify-content:flex-start;align-items:center;min-width:0;padding:8px;border:1px solid #44606c;border-radius:12px;background:#102d3e;color:#faf5eb;cursor:pointer}
.overview-universe[aria-pressed="true"]{border-color:#e6c47e;background:#1b3c4c}
.overview-universe:hover{background:#1b3c4c}
.overview-universe .scene-anchor{height:98px;padding:0;flex:none}
.overview-universe .world-scene{width:min(98px,var(--native-width));max-height:min(98px,var(--native-height));object-fit:contain}
.overview-universe .universe-name{display:flex;align-items:center;justify-content:center;width:100%;height:66px;min-height:66px;max-width:none;background:transparent;border:0;padding:4px;font:600 20px/1.1 var(--font-display);color:#faf5eb;overflow-wrap:normal}
.overview-universe .universe-count{font:500 12px/1.4 var(--font-ui);margin:0;color:#cfd7d8}
@media(max-width:900px){
 :root{--type-display:2.625rem;--type-h1:2.375rem;--type-h2:1.75rem;--type-h3:1.5rem;--type-body-lg:1rem}
 .home-screen .site-header .brand-name{font-size:24px;white-space:normal;line-height:1.1}
 .home-screen .section-list{display:flex;justify-content:center}.home-screen .world-universe.is-side{display:none}
 .home-screen .world-universe.is-center{max-width:410px}
 .home-screen .world-universe .scene-anchor{height:220px}
 .home-screen .world-universe .world-scene{max-height:min(204px,var(--native-height));width:min(260px,100%,var(--native-width))}
 .home-screen .home-quick-access:has(.resume-card:not([hidden])){grid-template-columns:1fr}
 .universes-dialog{padding:16px;border-radius:16px}.universes-dialog>header{margin-bottom:12px}
 .universes-dialog .world-kicker{font-size:11px;letter-spacing:.04em}
 .universes-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .overview-universe .scene-anchor{height:64px}.overview-universe .world-scene{width:min(64px,var(--native-width));max-height:min(64px,var(--native-height))}
 .overview-universe .universe-name{height:72px;min-height:72px;font-size:18px}.overview-universe{padding:6px}
}
@media(prefers-reduced-motion:reduce){.universes-dialog *{transition:none;scroll-behavior:auto}}

body:has(.universes-dialog[open]){overflow:hidden}
.party-screen .party-choice-group h2{font:700 var(--type-label)/1.5 var(--font-ui);letter-spacing:.06em}.party-screen .party-setup-help{font-family:var(--font-ui);font-size:var(--type-label)}

.game-screen .mini-wordmark{font-family:var(--font-display);font-size:var(--type-h3);font-weight:600}.game-screen .expression-title{font-family:var(--font-display);font-size:var(--type-h1);font-weight:600;line-height:1.1}.game-screen .lesson-section h3,.home-screen #allModes .play-controls h2{font-family:var(--font-display);font-size:var(--type-h3);font-weight:600;line-height:1.1}
