/* Shared header controls: quick classroom entry and the instrument dropdown. */
.site-header .header-inner{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:16px;min-height:94px;padding:0}
.header-branding{grid-column:1;grid-row:1;flex-shrink:0}
.site-header .main-nav{grid-column:2;grid-row:1;display:flex;justify-content:center;align-items:center;width:auto;gap:0;order:0}
.site-header .main-nav summary,.site-header .main-nav .nav-page-link{padding-inline:10px;white-space:nowrap}
.nav-live-join{grid-column:3;grid-row:1;position:relative;z-index:2;width:174px;min-width:0;margin:0}
.nav-live-join label{display:block;margin:0 0 5px;color:#eee5ff;font-size:.72rem;font-weight:800;line-height:1.2;white-space:nowrap}
.nav-live-join label span{color:#dfff9b}
.nav-live-entry{display:flex;align-items:stretch;gap:4px;padding:3px;border:1px solid #9875d0;border-radius:11px;background:#26173e;transition:border-color .15s,box-shadow .15s}
.nav-live-entry:focus-within{border-color:#dfff9b;box-shadow:0 0 0 3px #dfff9b26}
.nav-live-entry input{display:block;width:100%;min-width:0;min-height:36px;margin:0;padding:5px 7px;border:0;border-radius:7px;background:transparent;color:#fff;line-height:1.2;font-family:inherit;font-size:.82rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;box-shadow:none}
.nav-live-entry input::placeholder{color:#cbb8e6;text-transform:none;letter-spacing:0;font-weight:500;opacity:1}
.nav-live-entry input:focus{outline:0;box-shadow:none}
.nav-live-entry input[aria-invalid=true]{outline:2px solid #ffb8c8;outline-offset:-2px}
.nav-live-entry button{flex:none;min-width:54px;min-height:36px;padding:5px 9px;border:0;border-radius:7px;background:#dfff9b;color:#26173e;font-size:.75rem;font-weight:850;white-space:nowrap;cursor:pointer}
.nav-live-entry button:hover{background:#efffd5}
.nav-live-entry button:focus-visible,.pi-trigger:focus-visible{outline:3px solid #dfff9b;outline-offset:3px}
.header-instrument-group{grid-column:4;grid-row:1;position:relative;display:flex;align-items:center;align-self:stretch;min-width:0;min-height:94px;padding:0 69.5px 0 0;order:0}
.preferred-instrument{position:relative;flex:none;min-width:0}
.site-header .header-branding,.site-header .preferred-instrument{position:relative;z-index:2}
/* The entire navigation stacking context must sit above the instrument picker. */
.site-header .main-nav{position:relative;z-index:4}
.site-mascot{width:61.5px;height:50.25px;bottom:-15px}
@media(max-width:1120px){
 .site-header .header-inner{grid-template-columns:minmax(0,1fr) auto;gap:5px 16px;padding:6px 0 0}
 .site-header .main-nav{grid-column:2;grid-row:1;justify-content:flex-end}
 .nav-live-join{grid-column:1;grid-row:2;align-self:center;margin-bottom:12px}
 .header-instrument-group{grid-column:2;grid-row:2;min-height:64px;justify-content:flex-end}
}
@media(max-width:650px){
 .site-header .header-inner{width:calc(100% - 30px);grid-template-columns:minmax(120px,1fr) auto;gap:4px 8px}
 .header-branding{grid-column:1/-1}
 .site-header .main-nav{grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:auto minmax(0,1fr);justify-content:stretch;width:100%;text-align:center}
 .site-header .main-nav summary,.site-header .main-nav .nav-page-link{padding:9px 8px;font-size:.8rem}
 .nav-live-join{grid-column:1;grid-row:3;width:min(174px,100%)}
 .header-instrument-group{grid-column:2;grid-row:3;padding-right:48px;min-height:76px}
 .site-mascot{width:42px;height:34.5px;bottom:-10.5px}
 .nav-group .menu-panel{position:fixed;top:calc(var(--site-header-height,200px) + 8px);left:15px;right:15px;max-height:calc(100dvh - var(--site-header-height,200px) - 24px)}
}
@media(max-width:480px){
 .site-header .main-nav summary,.site-header .main-nav .nav-page-link{padding-inline:6px;font-size:.72rem}
 .header-branding{gap:7px}
 .site-header .brand{font-size:1.07rem;gap:4px}
 .site-header .brand-icon{width:29px;height:40px}
 .site-header .brand-icon img{height:37px}
 .site-header .alpha-badge{font-size:.54rem;padding:4px 5px;box-shadow:2px 2px 0 #8c52ff}
 .pi-trigger{max-width:clamp(98px,calc(100vw - 222px),154px)}
 .nav-live-join label{font-size:.64rem;letter-spacing:-.02em}
 .nav-live-entry{gap:0;padding:2px}
 .nav-live-entry input{padding-inline:5px;font-size:.73rem;letter-spacing:.02em;min-height:38px}
 .nav-live-entry button{min-width:36px;padding:5px;font-size:.7rem}
 .nav-live-entry button span{display:none}
}
@media(prefers-reduced-motion:reduce){.nav-live-entry{transition:none}}
