.radio-lab { --radio-accent: #137b83; --radio-tint: #e8f3f2; padding-top: 36px; padding-bottom: 70px; }
html[data-theme="dark"] .radio-lab { --radio-accent: #72d5cc; --radio-tint: #132b2b; }
.radio-lab [hidden] { display:none!important; }
.radio-hero { display:grid;grid-template-columns:1fr 230px;gap:60px;align-items:center;margin:32px 0; }
.radio-kicker { color:var(--radio-accent);font:600 10px ui-monospace,monospace;letter-spacing:.12em;margin:0 0 16px; }
.radio-hero h1 { font-size:clamp(38px,5vw,66px);line-height:1.04;letter-spacing:-.05em;margin:0;font-weight:600; }
.radio-hero h1 em { color:var(--radio-accent);font-style:normal; }.radio-hero p:not(.radio-kicker) { max-width:610px;font-size:17px;color:var(--cp-text-muted);margin-top:24px; }
.radio-stamp { display:grid;gap:20px;padding-left:30px;border-left:1px solid var(--cp-border); }.radio-stamp span { font:10px ui-monospace,monospace;letter-spacing:.1em;color:var(--cp-text-soft); }.radio-stamp strong { font-size:32px;font-weight:500;line-height:1.1; }
.radio-notice { padding:15px 0;border-block:1px solid var(--cp-border);font-size:12px;color:var(--cp-text-muted);line-height:1.7; }
.radio-workspace { display:grid;grid-template-columns:270px minmax(0,1fr);border:1px solid var(--cp-border);border-radius:10px;overflow:hidden;margin:30px 0 45px; }
.radio-settings { padding:26px;background:var(--cp-bg-elevated);border-right:1px solid var(--cp-border); }.radio-lab h2 { font-size:21px;letter-spacing:-.025em; }.radio-settings h2 { margin:0 0 24px; }
.radio-lab label { display:block;font-size:12px;font-weight:600;margin:18px 0 8px; }.radio-lab select,.radio-lab textarea { width:100%;font:inherit;font-size:13px;padding:10px;color:var(--cp-text);background:var(--cp-surface);border:1px solid var(--cp-border-strong);border-radius:5px; }.radio-lab textarea { resize:vertical;line-height:1.7; }
.radio-small { font-size:12px;color:var(--cp-text-muted);line-height:1.7; }.radio-context { border-top:1px solid var(--cp-border);padding-top:20px;margin-top:24px; }.radio-context span { font:9px ui-monospace,monospace;color:var(--cp-text-soft); }.radio-context strong { display:block;font-size:15px;margin:10px 0; }.radio-context p { font-size:12px;color:var(--cp-text-muted); }
.radio-console { min-width:0;padding:28px; }.radio-console-top { display:flex;justify-content:space-between;gap:12px;align-items:baseline; }.radio-console-top>span { font:10px ui-monospace,monospace;color:var(--radio-accent); }
.radio-display { background:#101f22;border:1px solid #304c50;border-radius:8px;color:#edf7f5;padding:26px;margin-top:8px; }.radio-display-meta { display:flex;justify-content:space-between;gap:12px;color:#93bab7;font:11px ui-monospace,monospace; }.radio-display h2 { font-size:30px;margin:22px 0 8px; }.radio-display #position { font:12px ui-monospace,monospace;color:#a9c2c0; }.radio-display #transmission { font-size:18px;line-height:1.75;margin:20px 0 0;min-height:126px; }
.radio-wave { height:38px;display:flex;align-items:center;gap:5px;margin:24px 0;border-block:1px solid #304c50; }.radio-wave i { flex:1;background:#72d5cc;height:3px;opacity:.6; }.radio-wave[data-playing="true"] i { animation:radio-wave .8s ease-in-out infinite alternate; }.radio-wave i:nth-child(3n) { animation-delay:-.3s; }.radio-wave i:nth-child(2n) { animation-delay:-.6s; }
@keyframes radio-wave { to {height:24px;opacity:1;} }
.radio-buttons { display:flex;flex-wrap:wrap;gap:8px;margin:18px 0; }.radio-lab button { min-height:42px;font-size:12px;font-weight:600;padding:10px 14px;border:1px solid var(--cp-border-strong);border-radius:5px;color:var(--cp-text);background:var(--cp-surface);cursor:pointer; }.radio-lab button:hover:not(:disabled) { border-color:var(--radio-accent); }.radio-lab button:disabled { opacity:.45;cursor:default; }.radio-lab button.radio-primary { background:var(--radio-accent);color:var(--cp-surface);border-color:var(--radio-accent); }
.radio-call-note { border-left:3px solid var(--radio-accent);padding:4px 0 4px 17px;margin-top:24px; }.radio-call-note strong { font-size:12px; }.radio-call-note p { font-size:13px;line-height:1.7;color:var(--cp-text-muted);margin-bottom:0; }
.radio-bottom { display:grid;grid-template-columns:1.25fr 1fr;gap:45px; }.radio-section-heading { display:flex;justify-content:space-between;gap:15px;align-items:center; }.radio-section-heading h2 { margin:0; }.radio-transcript { list-style:none;padding:0;display:grid;gap:10px; }.radio-transcript button { display:block;width:100%;text-align:left;padding:17px;background:transparent;border-color:var(--cp-border);font-weight:400;line-height:1.7; }.radio-transcript button[aria-current="true"] { border-color:var(--radio-accent);background:var(--radio-tint); }.radio-transcript-meta { display:block;font:10px ui-monospace,monospace;color:var(--radio-accent);margin-bottom:10px; }.radio-transcript button>span:last-child { font-size:13px; }
.radio-rehearsal { align-self:start;border:1px solid var(--cp-border);border-radius:8px;padding:26px; }.radio-rehearsal h2 { margin-top:0; }.radio-rehearsal>p { font-size:13px;line-height:1.7;color:var(--cp-text-muted); }#review-results { padding-left:18px;font-size:12px;line-height:2; }#example-text { border-top:1px solid var(--cp-border);padding-top:14px; }
.radio-reference { border-top:1px solid var(--cp-border);margin-top:45px;padding-top:24px;max-width:920px; }.radio-reference p { font-size:13px;line-height:1.8;color:var(--cp-text-muted); }.radio-source { display:grid;gap:10px;font-size:12px; }
@media(max-width:900px) { .radio-hero { grid-template-columns:1fr; }.radio-stamp { display:none; }.radio-workspace { grid-template-columns:230px minmax(0,1fr); }.radio-console,.radio-settings { padding:20px; }.radio-bottom { gap:22px; }.radio-display { padding:20px; } }
@media(max-width:650px) { .radio-workspace,.radio-bottom { grid-template-columns:1fr; }.radio-settings { border-right:0;border-bottom:1px solid var(--cp-border); }.radio-console-top { flex-wrap:wrap; }.radio-display #transmission { font-size:16px; }.radio-display h2 { font-size:25px; }.radio-section-heading { flex-wrap:wrap; }.radio-rehearsal { padding:20px; } }
@media(prefers-reduced-motion:reduce) { .radio-wave[data-playing="true"] i { animation:none;height:12px; } }
.airfield-panel { margin-top:30px;border:1px solid var(--cp-border);border-radius:10px;overflow:hidden;background:var(--cp-bg-elevated); }
.airfield-heading,.airfield-footer { display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 26px; }.airfield-heading h2 { margin:0;font-size:25px; }.airfield-heading .radio-kicker { margin-bottom:8px; }
.airfield-legend { display:flex;gap:20px;font-size:12px; }.airfield-legend span { display:flex;align-items:center;gap:7px; }.airfield-legend i { width:9px;height:9px;background:#137b83;border-radius:50%; }.airfield-legend span+span i { background:#b87520; }
.airfield-chart { background:#102923; }.airfield-chart svg { display:block;width:100%;max-height:440px; }.map-terrain { fill:none;stroke:#203e35;stroke-width:22; }.map-compass { stroke:#9cbab0;fill:#b6cec4;stroke-width:1.5;font:15px ui-monospace,monospace; }.map-compass text { stroke:none; }
.map-circuit { fill:none;stroke:#54766a;stroke-width:1.5;stroke-dasharray:7 9; }.map-direction { fill:none;stroke:#8aa99e;stroke-width:2; }.map-caption { fill:#a8c4b7;font:13px ui-monospace,monospace;letter-spacing:1px; }.map-taxi { fill:none;stroke:#3e524b;stroke-width:20;stroke-linejoin:round; }.map-apron { fill:#3e524b; }.map-hold { fill:none;stroke:#dfbd68;stroke-width:2; }.map-runway { fill:#303d3e;stroke:#9aafa6; }.map-centerline { stroke:#c9d7ce;stroke-width:2;stroke-dasharray:17 14; }.map-threshold { stroke:#c9d7ce;stroke-width:2; }.map-runway-number { text-anchor:middle;fill:#edf4ef;font:14px ui-monospace,monospace; }
.map-points { fill:none;stroke:#d9edb0;stroke-width:1.5; }.map-points text { stroke:none;fill:#d9edb0;font:13px ui-monospace,monospace;letter-spacing:.5px; }.map-active-path { fill:none;stroke:#72e2cf;stroke-width:2;stroke-dasharray:5 5;opacity:.6; }.map-active-path[data-actor="other"] { stroke:#ffd08b; }.map-aircraft { stroke:#102923;stroke-width:1.2; }.map-own { fill:#83f3df; }.map-other { fill:#ffd08b; }.map-aircraft circle { stroke:none;opacity:.12; }
.airfield-footer { padding-block:18px; }.airfield-footer .radio-kicker { font-size:9px; }.airfield-footer p { font-size:15px;font-weight:600;margin:7px 0 0; }.airfield-footer button { flex-shrink:0; }.scene-meter { height:3px;background:var(--cp-border); }#scene-progress { height:100%;width:0;background:var(--radio-accent); }.airfield-disclaimer { padding:0 26px;margin:14px 0 18px; }.radio-lab .sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
@media(max-width:650px) { .airfield-heading,.airfield-footer { align-items:flex-start;flex-direction:column;padding:18px;gap:14px; }.airfield-legend { font-size:11px; }.airfield-disclaimer { padding-inline:18px; }.airfield-chart svg { min-height:215px; }.map-caption { font-size:15px; }.map-points text { font-size:16px; }.airfield-footer button { width:100%; } }
.airfield-controls { display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-end; }.airfield-call { margin:0;padding:0 26px 18px;font-size:13px;line-height:1.8;color:var(--cp-text-muted);max-width:1000px; }
@media(max-width:650px) { .airfield-controls { width:100%;justify-content:flex-start; }.airfield-controls button { width:auto; }.airfield-controls #animate-scene { flex:1; }.airfield-call { padding-inline:18px; } }
/* Motion studio: the film, radio and chapter controls form one experience. */
.motion-lab { max-width:1320px; }.motion-hero { display:flex;justify-content:space-between;gap:40px;align-items:end;margin:32px 0; }.motion-hero h1 { font-size:clamp(40px,5vw,68px);font-weight:500;letter-spacing:-.055em;line-height:1.02;margin:0; }.motion-hero h1 em { color:var(--radio-accent);font-style:normal; }.motion-hero>p { max-width:310px;font-size:15px;line-height:1.8;color:var(--cp-text-muted);margin:0; }
.motion-studio { border:1px solid #29433f;border-radius:16px;background:#0b171b;color:#e8f4ef;overflow:hidden;box-shadow:0 24px 80px #0002; }.studio-toolbar { display:flex;align-items:center;justify-content:space-between;gap:20px;padding:19px 24px;border-bottom:1px solid #2e4744;background:#102024; }.studio-brand { font:11px ui-monospace,monospace;letter-spacing:.08em; }.studio-brand>span:last-child { display:block;color:#849f99;font-size:9px;margin:8px 0 0 17px; }.live-dot { display:inline-block;width:6px;height:6px;border-radius:50%;background:#8df0d3;margin-right:6px; }.studio-selects { display:flex;gap:8px; }.motion-studio select { width:auto;background:#142b2c;border-color:#34534d;color:#dff0e8;font-size:11px;padding:10px 28px 10px 12px; }
.motion-viewport { position:relative;background:#102923;overflow:hidden; }.motion-viewport .airfield-chart svg { max-height:none;aspect-ratio:800/410;min-height:0; }.motion-viewport .airfield-chart { padding:58px 0 30px; }.scene-hud { position:absolute;top:24px;left:26px;right:26px;z-index:2;display:flex;justify-content:space-between;pointer-events:none; }.scene-hud #playback-badge { font:9px ui-monospace,monospace;letter-spacing:.16em;color:#8ae3ca; }.scene-hud h2 { font-size:24px;font-weight:500;margin:8px 0 4px;letter-spacing:-.03em; }.scene-hud p { font:10px ui-monospace,monospace;color:#9abab0;margin:0; }.scene-hud #progress { font:12px ui-monospace,monospace;color:#94b4aa; }.scene-caption { position:absolute;bottom:16px;left:26px;right:26px;display:flex;justify-content:space-between;gap:12px;font:10px ui-monospace,monospace;color:#afcdbf; }.scene-caption>span:last-child { color:#6c9188;font-size:8px; }
.motion-studio .map-own use { fill:url(#fuselage);filter:url(#aircraft-shadow); }.motion-studio .map-other use { filter:url(#aircraft-shadow); }.motion-studio .map-aircraft { stroke:#1f4544;stroke-width:.6; }.motion-studio .map-runway { fill:#334143;stroke:#718f84; }.motion-studio .map-active-path { opacity:.22; }.motion-studio .map-circuit { opacity:.45; }.motion-studio .map-points { stroke:#d5e6a8;opacity:.8; }.motion-studio .map-terrain { opacity:.25; }.motion-studio .map-caption { font-size:11px;opacity:.8; }.motion-studio .map-points text { font-size:11px; }.motion-studio[data-moving="true"] .aircraft-pulse { transform-box:fill-box;transform-origin:center;animation:aircraft-beacon 2.6s ease-out infinite; }.motion-studio[data-moving="true"] .scene-cloud { animation:cloud-drift 26s linear infinite alternate; }.motion-studio[data-moving="true"] .cloud-two { animation-direction:alternate-reverse; }.motion-studio[data-moving="true"] .map-threshold { animation:runway-glimmer 3s ease-in-out infinite alternate; }
@keyframes aircraft-beacon { from { opacity:.25;transform:scale(.55); } to { opacity:0;transform:scale(1.65); } }@keyframes cloud-drift { from { transform:translateX(-45px); } to { transform:translateX(45px); } }@keyframes runway-glimmer { to { stroke:#fff;filter:drop-shadow(0 0 3px #eeffd6); } }
.film-subtitle { padding:21px 28px 24px;background:#102024;border-block:1px solid #2a4541;min-height:160px; }.subtitle-meta { display:flex;align-items:center;gap:18px; }.subtitle-meta>span { font:10px ui-monospace,monospace;text-transform:uppercase;letter-spacing:.1em;color:#8bdac4; }.subtitle-meta .radio-wave { width:75px;height:16px;margin:0;border:0;gap:3px; }.subtitle-meta .radio-wave i { height:2px; }.film-subtitle>p { font-size:clamp(14px,1.5vw,19px);line-height:1.75;margin:14px 0 0;max-width:1000px;color:#e0ebe7; }.film-timeline { display:flex;gap:5px;padding:18px 24px 0; }.motion-studio .film-timeline button { flex:1;min-width:0;border:0;border-top:3px solid #2c4541;border-radius:0;background:transparent;color:#7e9f94;font-size:10px;text-align:left;padding:10px 4px;line-height:1.6;font-weight:400; }.motion-studio .film-timeline button[aria-current="true"] { border-top-color:#8befcf;color:#d9f7e8; }.film-controls { display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 24px 18px; }.film-controls>div { display:flex;gap:7px;align-items:center; }.motion-studio button { background:#142b2c;color:#e0f0e9;border-color:#34534d; }.motion-studio button.radio-primary { background:#a4eed4;color:#15362e;border-color:#a4eed4;min-width:154px; }.motion-studio #pause { background:#a4eed4;color:#15362e;min-width:154px; }.motion-studio .voice-toggle { display:flex;align-items:center;gap:7px;font-size:11px;font-weight:400;margin:0 10px 0 0;color:#b0c9bf; }.voice-toggle input { accent-color:#91e3c9; }.studio-status { font:10px ui-monospace,monospace;color:#93b3a8;padding:0 24px;line-height:1.6;margin:12px 0; }.studio-status#voice-status { margin-top:-7px;color:#708e84; }.motion-studio .scene-meter { background:#233c36; }.motion-studio #scene-progress { background:#a4eed4; }
.motion-footnotes { display:flex;justify-content:space-between;gap:20px;font:10px ui-monospace,monospace;color:var(--cp-text-muted);margin:13px 0; }.legend-own { color:#1d9a86; }.legend-other { color:#b87520;margin-left:18px; }.practice-drawer { border-block:1px solid var(--cp-border);margin-top:35px;padding:22px 0; }.practice-drawer>summary { cursor:pointer;font-size:17px;font-weight:500; }.practice-drawer>summary span { float:right;font:9px ui-monospace,monospace;color:var(--cp-text-soft);padding-top:5px; }.practice-context { font-size:12px;margin:25px 0; }.motion-lab .radio-reference { margin-top:30px; }
@media(min-width:1100px) { .motion-viewport .airfield-chart { padding:30px 75px 12px; }.scene-hud { top:27px; }.scene-hud h2 { font-size:29px; } }
@media(max-width:700px) { .motion-hero { display:block; }.motion-hero>p { margin-top:20px;max-width:340px; }.studio-toolbar { align-items:flex-start;flex-direction:column;padding:18px;gap:16px; }.studio-selects { width:100%; }.studio-selects select { flex:1;min-width:0;font-size:10px;padding:10px 8px; }.scene-hud { top:18px;left:18px;right:18px; }.scene-hud h2 { font-size:20px; }.scene-hud #position { font-size:9px; }.motion-viewport .airfield-chart { padding:100px 0 46px; }.motion-viewport svg { transform:scale(1.03); }.scene-caption { left:18px;right:18px;bottom:13px;font-size:9px;line-height:1.7; }.scene-caption>span:last-child { display:none; }.film-subtitle { padding:18px;min-height:200px; }.film-timeline { padding:15px 14px 0;gap:4px;overflow:auto; }.motion-studio .film-timeline button { font-size:9px;min-width:65px; }.film-controls { flex-wrap:wrap;padding:16px; }.film-controls>div { width:100%; }.film-controls select { margin-left:auto; }.film-controls #play,.film-controls #pause { flex:1;min-width:120px; }.studio-status { padding-inline:18px; }.motion-footnotes { flex-direction:column;gap:0; }.motion-footnotes p { margin:4px 0; }.practice-drawer>summary span { display:none; } }
@media(prefers-reduced-motion:reduce) { .motion-studio[data-moving="true"] .aircraft-pulse,.motion-studio[data-moving="true"] .scene-cloud,.motion-studio[data-moving="true"] .map-threshold { animation:none; } }
.motion-studio .scene-hud { position:relative;top:auto;left:auto;right:auto;padding:22px 26px 8px; }.motion-studio .airfield-chart { padding:0 40px 35px; }.motion-studio .airfield-chart svg { max-height:440px; }.motion-studio .scene-caption { bottom:14px; }
@media(max-width:700px) { .motion-studio .scene-hud { padding:20px 18px 12px; }.motion-studio .airfield-chart { padding:0 0 42px; }.motion-studio .airfield-chart svg { min-height:215px; } }
.film-controls { border-top:1px solid #2a4541; }
@media(max-width:700px) { .motion-viewport svg { transform:none; } }
.motion-hero h1 { font-size:clamp(30px,4vw,44px);line-height:1.15; }.motion-hero { margin:28px 0;align-items:center; }.motion-hero>p { max-width:320px;font-size:13px; }.reference-drawer { padding:22px 0;border-bottom:1px solid var(--cp-border); }.reference-drawer>summary { cursor:pointer;font-size:14px;color:var(--cp-text-muted); }.reference-drawer .radio-reference { border-top:0;margin-top:8px; }.film-subtitle { min-height:0; }.film-timeline { padding-bottom:12px; }.subtitle-meta { min-height:14px; }
@media(max-width:700px) { .motion-hero>p { margin-top:10px; }.film-subtitle { min-height:0; } }
.risk-notice { padding:15px 26px;background:#31291c;border-top:1px solid #675436;color:#f3d393; }.risk-notice strong { font:9px ui-monospace,monospace;letter-spacing:.12em; }.risk-notice p { margin:7px 0 0;font-size:13px;line-height:1.6; }.risk-notice[data-level="danger"] { background:#36211f;border-color:#75413a;color:#ffb3a1; }.risk-notice[data-level="resolved"] { background:#172d2c;border-color:#36534d;color:#b9d9cd; }
@media(max-width:700px) { .risk-notice { padding:14px 18px; } }
.risk-notice[data-level="response"] { background:#1c2c37;border-color:#375468;color:#bdd9ed; }.motion-studio[data-moving="true"] .engine-light { animation:engine-light 1.5s ease-in-out infinite alternate; }@keyframes engine-light { to { fill:#fff5d2;filter:drop-shadow(0 0 3px #ffe396); } }@media(prefers-reduced-motion:reduce) { .motion-studio[data-moving="true"] .engine-light { animation:none; } }
