/* Original studio treatment. One short transition per event; never a flashing effect. */
.studio-controls{border:1px solid #5a6d925e;background:linear-gradient(110deg,#142441,#11182d);border-radius:14px;padding:1rem 1.2rem;margin:1rem 0}
.studio-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.8rem}.studio-heading strong{display:block;font-size:.95rem;margin-top:.25rem}
.studio-panel,.audio-mixer{margin-top:.85rem;font-size:.85rem}.studio-panel summary,.audio-mixer summary{cursor:pointer;color:#e7c97b}
.sound-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:.65rem}.sound-pad>div{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:.4rem;background:#09142c;padding:.7rem;border-radius:9px}.sound-pad span{font-size:.8rem}
.mixer-sliders{display:flex;gap:1.5rem;margin-top:.8rem}.mixer-sliders label{flex:1;font-size:.8rem}.mixer-sliders input{width:100%;accent-color:#f1cb74;padding:0;min-height:24px}
.studio-podiums .team{position:relative;overflow:hidden;background:linear-gradient(155deg,#213960,#101c36 60%);border-bottom:5px solid var(--podium-color,#679bea);box-shadow:inset 0 -15px 25px #0b153580}
.podium-light{height:3px;color:var(--podium-color);background:currentColor;opacity:.12;position:absolute;left:10%;right:10%;top:0}.picking .podium-light{opacity:1;box-shadow:0 0 18px currentColor}.podium-status{color:#b9cbea;font-size:.68rem;min-height:1.05rem;margin-top:.4rem}.leading{box-shadow:0 0 20px #eac66d20!important}.leading .podium-status{color:#ffdfa0}.podium-shine{pointer-events:none;position:absolute;inset:0;background:linear-gradient(110deg,transparent 20%,#ffffef08 50%,transparent 80%)}
.show-opening{position:relative;isolation:isolate;min-height:410px;background:radial-gradient(ellipse at 60% 20%,#1e50aa,#080e2e 70%);border:2px solid #cfb071;border-radius:18px;overflow:hidden;margin:1rem 0;padding:3rem;box-shadow:0 0 60px #295ac330}
.show-opening>img{position:absolute;height:100%;width:48%;object-fit:cover;right:0;top:0;mask-image:linear-gradient(90deg,transparent,#000 28%)}
.opening-copy{position:relative;z-index:2;max-width:70%}.opening-copy h2{font-family:Impact,'Arial Narrow',sans-serif;font-size:clamp(2.6rem,5.5vw,5rem);line-height:1.02;margin:1rem 0;color:#ffedb6;text-shadow:4px 5px #705025}.opening-copy h2 em{display:block;font-style:normal;text-transform:uppercase;letter-spacing:.02em}.opening-copy>p{font-size:1.2rem}.opening-copy>span{color:#c5d7f8}.opening-copy .opening-tagline{font-size:.9rem;color:#edcd7f;margin:1.5rem 0}
.opening-copy{animation:studio-enter .8s ease-out var(--show-delay) both}.opening-beams{position:absolute;inset:-70%;z-index:-1;background:conic-gradient(from 20deg,transparent 0deg,#9ac3ff25 12deg,transparent 24deg,transparent 170deg,#ffd88828 187deg,transparent 205deg);animation:studio-lights 8s ease-out var(--show-delay) both}
.question.tile-enter{animation:tile-expand .3s ease-out var(--question-delay,0ms) both;transform-origin:center top}.question.final-question{border-color:#eac675;box-shadow:0 0 35px #eac67518}.final-case-banner{background:linear-gradient(90deg,#776026,#23213e);color:#ffedac;font-size:.85rem;letter-spacing:.14em;padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem;font-weight:800}
.winner-stage{position:relative;overflow:hidden;border:1px solid #f2cc7c;border-radius:18px;padding:2rem;text-align:center;background:radial-gradient(ellipse at top,#3c4374,#0b1630 70%);margin:1.2rem 0}.winner-stage h2{font-size:2.1rem;margin:.4rem 0}.winner-trophy{font-size:3.8rem;color:#fbd578;line-height:1.1}.winning-names{font-size:1.5rem;font-weight:800;color:#ffe39d;margin:.6rem}.finish-podiums{display:flex;gap:.6rem;justify-content:center;align-items:flex-end;margin:1.5rem 0}.finish-podium{min-width:90px;flex:1;max-width:170px;border:1px solid #466287;background:linear-gradient(#273e64,#111d35);padding:1rem .5rem;border-radius:10px 10px 2px 2px}.finish-podium span{display:block;font-size:.8rem;color:#cad9ef}.finish-podium strong{font-size:1.6rem}.finish-podium.is-winner{border-color:#eec579;padding-top:2rem;background:linear-gradient(#726030,#2f2b31)}
.confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden}.confetti i{position:absolute;left:var(--x);top:-15px;width:7px;height:13px;background:#efcd74;animation:confetti-fall 4s ease-in var(--fall-delay) both}.confetti i:nth-child(3n){background:#ff811b}.confetti i:nth-child(3n+1){background:#8ebcff}body[data-school=nmsu] .confetti i:nth-child(3n){background:#bc3b65}
.clinical-monitor{margin:1.1rem 0;background:linear-gradient(135deg,#071a24,#050c19);border:1px solid #41636c;border-radius:12px;overflow:hidden}.clinical-monitor figcaption{display:flex;justify-content:space-between;align-items:center;gap:.6rem;padding:.65rem 1rem;color:#aee5d7;font-size:.7rem;letter-spacing:.06em;border-bottom:1px solid #26424d}.clinical-monitor figcaption>span:nth-child(2){color:#9baebb;letter-spacing:0}.clinical-monitor .visual{display:block;width:100%;max-height:220px;margin:0;border:0;background:transparent}.trace-reference{opacity:.3}.trace-bright{stroke-dasharray:180 820;animation:trace-sweep 5s linear var(--trace-delay) infinite}.clinical-monitor.trace-frozen .trace-bright{animation-play-state:paused}.trace-focus{filter:drop-shadow(0 0 5px #f5d47766)}.clinical-annotation{border-top:1px solid #756138;color:#e6eaf5;background:#40361f66;padding:.85rem 1rem;font-size:.9rem;line-height:1.55}.clinical-annotation strong{color:#ffe0a0}.mechanics-columns{display:flex;justify-content:space-evenly;align-items:center;padding:1rem}.mechanics-columns>div{display:flex;flex-direction:column;gap:.4rem;text-align:center}.mechanics-columns strong{font-size:2.3rem;color:#9af2d5}.mechanics-columns small{letter-spacing:.12em;color:#a0b5ca}.mechanics-columns span{font-size:.75rem;color:#c8d5e3}.mechanics-columns .trend-arrow{font-size:2rem;color:#efd38c}.mechanics-after{animation:studio-enter .8s ease-out var(--trace-delay) both}.monitor-baseline{text-align:center;color:#c5d7e1;font-size:.85rem;padding:0 1rem 1rem;margin:0}
.show-caption-live{color:#ffe4a0;text-align:center;min-height:1.5em;font-size:.9rem;margin:.5rem auto}.studio-preview-note{font-size:.75rem;color:#a9bddb}
@keyframes studio-enter{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes studio-lights{from{rotate:-25deg;opacity:.3}to{rotate:35deg;opacity:.8}}
@keyframes tile-expand{from{opacity:.65;transform:scale(.96)}to{opacity:1;transform:scale(1)}}
@keyframes confetti-fall{0%{transform:translateY(-10px) rotate(0);opacity:0}10%{opacity:1}100%{transform:translateY(540px) rotate(380deg);opacity:0}}
@keyframes trace-sweep{from{stroke-dashoffset:180}to{stroke-dashoffset:-820}}
@media(max-width:900px){.sound-pad{grid-template-columns:1fr 1fr}.show-opening{padding:2rem;min-height:330px}.finish-podiums{flex-wrap:wrap}.finish-podium{min-width:80px}.opening-copy{max-width:78%}}
@media(max-width:600px){.studio-heading{align-items:flex-start;flex-direction:column}.sound-pad{grid-template-columns:1fr}.show-opening{padding:1.3rem}.show-opening>img{opacity:.35;width:80%}.opening-copy{max-width:100%}.mixer-sliders{flex-wrap:wrap;gap:.7rem}.mixer-sliders label{min-width:100px}.clinical-monitor figcaption{flex-wrap:wrap}.winner-stage{padding:1.2rem}.mechanics-columns strong{font-size:1.7rem}}
@media(prefers-reduced-motion:reduce){.opening-copy,.opening-beams,.question.tile-enter,.confetti i,.trace-bright,.mechanics-after{animation:none!important;transform:none!important}.confetti{display:none}.trace-bright{stroke-dasharray:none}.trace-toggle{display:none}}

/* Time-based sweep: horizontal position, not SVG path length, represents time. */
.waveform-model .modeled-trace{max-height:none;width:100%;height:auto;aspect-ratio:960/250}
.waveform-model .trace-reference{opacity:.7}
.waveform-model .trace-bright{stroke-dasharray:none;animation:none}
.trace-window,.trace-cursor{animation:time-sweep var(--trace-duration) linear var(--trace-delay) infinite}
.trace-cursor{stroke:#a3f3de;stroke-width:1;opacity:.55}
@keyframes time-sweep{from{transform:translateX(0px)}to{transform:translateX(840px)}}
.clinical-monitor.trace-frozen .trace-window,.clinical-monitor.trace-frozen .trace-cursor{animation-play-state:paused}
.wave-grid path{fill:none;stroke:#29434d;stroke-width:1}
.wave-grid text,.wave-axis-label{fill:#c0d4dd;font-size:14px;stroke:none}
.wave-zero{stroke:#9cb7c2;stroke-width:1.2;stroke-dasharray:5 5}
.flush-band{fill:#adbde5;opacity:.07}
.release-marker{stroke:#93a5bd;stroke-dasharray:4 4;stroke-width:1}
.wave-caption{font-size:.78rem;color:#b9cbd4;line-height:1.5;padding:.1rem 1rem .65rem;margin:0}
.wave-zoom-title{font-size:.75rem;color:#c7d9e1;padding:.5rem 1rem 0;border-top:1px solid #29434d}
.waveform-model .response-detail{max-height:175px}
@media(prefers-reduced-motion:reduce){.trace-window,.trace-cursor{animation:none!important}.trace-cursor{display:none}.waveform-model .trace-bright{clip-path:none}}
@media print{.waveform-model .trace-bright{clip-path:none}.trace-cursor,.trace-toggle{display:none}}
/* Clinical teaching visuals retain a visible reference trace when motion is frozen. */
.trace-description{margin:12px 0;color:#c5d5ed;font-size:.92rem;text-align:left}
.trace-description summary{cursor:pointer;padding:8px 0}
.trace-description p{line-height:1.5;max-width:85ch}
.trace-focus{fill:none;stroke:#ffe194;stroke-width:2.5}
.inspiration-limb{stroke:#89bdff!important}
.pft-table-wrap{overflow-x:auto;margin:10px 0}
.pft-table{border-collapse:collapse;width:100%;font-size:1rem;text-align:left}
.pft-table caption{text-align:left;padding:8px;color:#c5d5ed}
.pft-table th,.pft-table td{padding:10px 12px;border-bottom:1px solid #354866;white-space:nowrap}
.pft-table thead{color:#ffe194}
.pft-focus{background:#ffe19418;outline:1px solid #ffe194}
@media(prefers-reduced-motion:reduce){.modeled-trace .trace-window,.modeled-trace .trace-cursor{animation:none!important}}

/* Forced spirometry traverses volume/flow coordinates, never a time-axis sweep. */
.pft-plots{display:grid;gap:1rem;padding:1rem;max-width:1100px;margin:auto}
.pft-single{grid-template-columns:minmax(0,520px);justify-content:center}
.pft-comparison{grid-template-columns:repeat(2,minmax(0,1fr))}
.pft-panel{min-width:0;border:1px solid #27434e;border-radius:10px;overflow:hidden;background:#07121f}
.pft-panel h4{margin:0;padding:.65rem 1rem;color:#c7e7ef;font-size:.95rem;border-bottom:1px solid #27434e}
.clinical-monitor .spirometry-plot{display:block;width:100%;max-height:none;height:auto;aspect-ratio:520/510;object-fit:contain}
.pft-label{font-size:15px;fill:#c6dce5;stroke:none}
.pft-monitor .signal{stroke-width:3.5}
.pft-monitor .pft-reference{opacity:.62}
.pft-monitor .pft-progress{stroke:#d7fff0}
.pft-monitor .trace-focus{stroke-width:5;opacity:.9}
.pft-monitor .pft-table-wrap{margin:.2rem 1rem 1rem}
.pft-monitor .trace-description{padding:0 1rem}
@media(max-width:650px){.pft-comparison{grid-template-columns:1fr}.pft-monitor .pft-table{font-size:.85rem}}
@media(prefers-reduced-motion:reduce){.pft-marker,.pft-progress{display:none}.pft-monitor .pft-reference{opacity:1}}
@media print{.pft-marker,.pft-progress{display:none}.pft-monitor .pft-reference{opacity:1}.pft-plots{break-inside:avoid}}

.clinical-monitor .regional-visual{width:100%;height:auto;max-height:370px;aspect-ratio:800/340}
.regional-monitor .trace-description{padding:0 1rem}
.regional-motion{animation-delay:var(--regional-delay,0ms);animation-timing-function:linear;animation-iteration-count:infinite}
.angle-probe{transform-origin:320px 49px;animation-name:regional-angle;animation-duration:6s}
.angle-echo{animation-name:regional-echo;animation-duration:6s}
.needle-plane{animation-name:regional-plane;animation-duration:8s}
.needle-intersection{animation-name:regional-intersection;animation-duration:8s}
@keyframes regional-angle{0%,100%{transform:rotate(-12deg)}50%{transform:rotate(0deg)}}
@keyframes regional-echo{0%,100%{opacity:.16}50%{opacity:1}}
@keyframes regional-plane{0%,100%{transform:translateX(0)}50%{transform:translateX(460px)}}
@keyframes regional-intersection{0%,100%{transform:translate(0,0);opacity:1}45.64%{opacity:1}45.66%,54.34%{opacity:0}50%{transform:translate(460px,-102.222px);opacity:0}54.36%{opacity:1}}
.clinical-monitor.trace-frozen .regional-motion{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.regional-motion{animation:none!important}.angle-echo{opacity:1}}
@media print{.regional-motion{animation:none!important}.angle-echo{opacity:1}}
