/* Scene labels stay modest; teaching content keeps the larger classroom typography. */
.hotspot-button {
  min-width:108px;
  padding:13px 10px;
  font-size:15px;
  font-weight:500;
  line-height:1.4;
  color:#e5f4f5;
  text-shadow:0 1px 5px #000,0 2px 14px #000;
}
.hotspot-button small {font-size:13px;color:#e5f4f5;font-weight:600;margin-top:5px}
.hotspot-button .status {font-size:10px;letter-spacing:0;margin-top:8px;color:#ffb0a7}
.hotspot-button .status::before {content:'';display:inline-block;width:4px;height:4px;background:currentColor;margin-right:5px;vertical-align:middle;border-radius:50%}
.hotspot-button:hover {background:#0b23313b;box-shadow:0 0 24px #afefff16}
.hub-label strong {font-size:18px;font-weight:500;letter-spacing:0;color:#cdf9ff}
.hub-label small {font-size:10px;letter-spacing:0;color:#a3c7cf}
.hall-heading h1 {font-size:26px;font-weight:500}
.hall-heading p {font-size:14px}
.hall-heading span {font-size:12px}
.mission-title {border:0;background:#081c21ce;backdrop-filter:blur(12px)}
.mission-title strong {font-size:20px;font-weight:600}
.topbar .return-button {font-size:17px;font-weight:500}
.fragment-nav {bottom:118px;gap:0;background:#0a1c24e6;border:1px solid #9dc7d635}
.fragment-nav button {border:0;border-right:1px solid #9dc7d629;border-radius:0;padding:12px 20px;background:transparent;gap:9px}
.fragment-nav button:last-child {border-right:0}
.fragment-nav button b {font-size:14px;font-weight:500;color:#89b6c4}
.fragment-nav button span {font-size:13px;font-weight:500}
.fragment-nav button:hover {background:#b3d2df13}
.fragment-nav button.is-fixed b {color:var(--gold)}
.mission-panel {background:#091d24cf;border-left-width:1px}
.panel-head {background:#09212a99;border-bottom:1px solid #98c5d327}
.fragment-panel {background:#07171eee;border-color:#a0d5dc38}
.panel-tag {font-size:15px;color:#b9d1d5;font-weight:500}
.panel-head h2 {font-size:30px;font-weight:600}
.module-actions button {font-size:19px;font-weight:500}
.module-actions .complete {background:#1d3536;font-size:17px}
.lesson-label {font-size:29px;font-weight:600}
.stage-caption {font-size:28px;font-weight:600}
.spectrum-line {margin-top:20px;color:#a6dcb9}
.spectrum-mode .spectrum-line {color:#ffb2b7}
.wave-legend {font-size:23px}
.shatter-overlay i {background:linear-gradient(125deg,#b9ffeab0,#48a77955,#bbffdd88);border:1px solid #effff7;animation-duration:1.05s}
.duet-top {display:flex;align-items:center;justify-content:space-between;gap:15px}
.duet-top label {display:flex;align-items:center;gap:8px;font-size:17px;color:#b4ccd2;white-space:nowrap}
.duet-top select {background:#16333c;color:#e1f2f3;border:1px solid var(--line);padding:8px;font-size:18px}
.dialect-task {font-size:28px;text-align:left}
.duet-stage {height:188px;margin-bottom:14px}
.duet-roles {font-size:20px;gap:155px;bottom:3px}
.duet-roles span {color:#a9cbd0;transition:color .1s}
.duet-roles span.active {color:var(--gold);text-shadow:0 0 16px #e5d49777}
.duet-layout h3 {font-size:26px;font-weight:600;margin:0 0 10px}
.duet-layout h3 small {font-size:18px;font-weight:400;color:#9bbcc5}
.duet-phrase {font-size:22px;color:#bfd5d9;margin-bottom:12px;min-height:29px}
.beat-cell {height:84px;background:#13303a;border-width:1px}
.beat-cell strong {font-size:31px;line-height:1.05;font-family:Arial,sans-serif;font-weight:400}
.beat-cell small {font-size:18px}
.empty-beat {height:111px}
.empty-beat strong {font-size:30px}
.beat-ring {width:92px;height:92px;font-weight:500}
.performance-status {font-size:18px;text-align:center;color:#a6c2ca;min-height:27px;margin:5px 0 0}
.duet-bottom {margin-top:18px;flex-wrap:wrap;gap:8px}
.duet-bottom button {font-size:17px;padding:11px 14px}
.teacher-settings,.original-score {margin:15px 0;color:#a9c4cb;font-size:16px}
.teacher-settings summary,.original-score summary {cursor:pointer;padding:8px 0;min-height:36px}
.teacher-settings[open]>div {margin-top:10px}
.tempo-controls {flex-wrap:wrap}
.original-score img {width:100%;height:auto;display:block;max-height:460px;object-fit:contain;background:#f9f6eb}
.evaluation {min-height:440px;padding-top:22px}
.evaluation-heading {display:flex;justify-content:space-between;align-items:center;gap:25px}
.evaluation h3 {font-size:32px;font-weight:600}
.evaluation p {font-size:16px;color:#95b4c1}
.evaluation .score-result {font-size:29px;white-space:nowrap;border:3px double #dfc077;padding:15px 20px;display:block;color:var(--gold)}
.radar-canvas {height:355px}
.score-inputs {grid-template-columns:repeat(3,1fr);gap:18px}
.score-inputs label {font-size:17px}
.training-grid {gap:12px}
.training-card {background:#102c36;border-bottom-width:2px;min-height:157px}
.training-card h3 {font-size:28px;font-weight:600}
.gesture-icon {font-size:58px}
.group {min-height:124px;padding:15px 22px;transition:background-color .12s,opacity .12s;opacity:.82;border-width:1px}
.group h3 {font-size:23px;font-weight:600;margin-bottom:6px}
.group p {font-size:29px}
.group.active {opacity:1}
.group-beats {display:flex;gap:6px;margin-top:12px}
.group-beats span {height:5px;background:#ffffff25;flex:1}
.group-beats .current {background:#fff;box-shadow:0 0 9px #fff8}
.group-a.active {background:#225e95}
.group-b.active {background:#84333e}
.training-status {font-size:24px}
.matrix-stage {height:300px}
.mode-controls {gap:0;border:1px solid #8fb2c94d;border-radius:4px;overflow:hidden}
.mode-controls button {border:0;border-radius:0;background:transparent}
.control-deck {background:#071a22ee;border-color:#8cc6d039}
.audio-now strong {font-size:20px;font-weight:500}
.audio-now span {color:#90b4be}
.toast {font-family:'Microsoft YaHei',sans-serif;font-size:17px;background:#d2e4e8;color:#142d35;border-radius:3px}
.barrage.is-absorbing {transform:scale(.02);opacity:0;transition:transform 1s ease-in,opacity 1s ease-in}

@media(max-width:1150px){
  .fragment-nav button {padding:12px 13px}
  .fragment-nav button span {display:none}
  .duet-bottom button {font-size:15px;padding:10px}
  .score-inputs {grid-template-columns:1fr 1fr}
}
@media(max-height:760px) and (min-width:701px){
  .duet-stage {height:140px}
  .beat-cell {height:72px}
  .duet-layout h3 {font-size:23px}
  .duet-phrase {font-size:19px;margin-bottom:8px}
  .empty-beat {height:100px}
  .training-card {min-height:132px}
  .gesture-icon {font-size:45px}
}
@media(max-width:700px){
  .topbar .return-button {font-size:15px}
  .mission-title strong {font-size:15px}
  .hotspot-button {min-width:86px;font-size:13px;padding:8px 4px}
  .hotspot-button small {font-size:11px}
  .hotspot-button .status {font-size:9px;margin-top:6px}
  .hub-label strong {font-size:16px}
  .hub-label small {font-size:9px}
  .fragment-nav {bottom:174px}
  .fragment-nav button {padding:12px 10px}
  .panel-head h2 {font-size:24px}
  .panel-tag {font-size:13px}
  .module-actions button {font-size:16px}
  .duet-top {align-items:flex-start;flex-direction:column}
  .dialect-task {font-size:24px}
  .duet-stage {height:180px}
  .duet-roles {font-size:17px;gap:46px}
  .duet-layout h3 {font-size:24px}
  .duet-phrase {font-size:22px}
  .duet-bottom button {font-size:15px}
  .stage-caption {font-size:23px}
  .score-inputs {grid-template-columns:1fr}
  .evaluation-heading {flex-wrap:wrap;gap:10px}
  .evaluation h3 {font-size:28px}
  .evaluation .score-result {font-size:24px;padding:10px 15px}
  .group {padding:12px;min-height:129px}
  .group h3 {font-size:21px}
  .group p {font-size:24px}
  .gesture-icon {font-size:42px}
  .training-card {min-height:127px}
  .training-card h3 {font-size:22px}
}
