/* One desktop workspace: a stable observation area and a single active operation area. */
.week-one .w-form-error{padding:12px 16px;border:1px solid #ffc184;border-radius:12px;color:#ffdbb4;font-size:18px;line-height:1.5}
.week-one .w-current .w-optional-writing{margin:18px 0;padding:12px 16px;border:1px solid var(--line);border-radius:12px;background:#232b20}
.week-one .w-current .w-optional-writing>summary{font-size:17px;line-height:1.5;color:var(--soft);cursor:pointer}
.week-one .w-current .w-command{position:relative;transition:transform 140ms ease;min-width:0}
.week-one .w-current .w-command.w-command-dragging{transition:none;z-index:2;border-color:#f8c679;background:#42492f;box-shadow:0 10px 24px #0006}
.week-one .w-current .w-command.w-command-drop-target{border-color:var(--lime)}
.week-one .w-current .w-command .w-drag-handle{margin:0;min-width:44px;min-height:48px;padding:0;flex:0 0 44px;touch-action:none;cursor:grab;user-select:none;font-size:30px;color:#f8d494;border-color:#9a9361}
.week-one .w-current .w-command .w-drag-handle:active{cursor:grabbing}
.week-one .w-current .w-command .w-drag-handle:disabled{cursor:default;opacity:.35}
.week-one .w-current .w-command [data-w-action="remove-command"]{margin-left:auto;min-width:44px;min-height:44px}
.w-drag-status{display:block;min-height:0;font-size:16px;color:#f8d494}.w-drag-status:empty{display:none}
@media(max-width:400px){.week-one .w-current .w-command{gap:6px;padding:8px 6px}.week-one .w-current .w-command select{min-width:0;width:72px;max-width:72px;padding-inline:3px}.week-one .w-current .w-command>input{width:48px;padding-inline:5px}.week-one .w-current .w-command .w-drag-handle{min-width:36px;flex-basis:36px}.week-one .w-current .w-command [data-w-action="remove-command"]{min-width:36px;padding-inline:6px}.w-command-number{font-size:16px}}
@media(max-width:400px){.week-one .w-current .w-command:has([data-w-drag]){display:grid;grid-template-columns:36px minmax(50px,1fr) 42px 36px}.week-one .w-current .w-command:has([data-w-drag])>span{display:none}.week-one .w-current .w-command:has([data-w-drag]) select{width:100%;max-width:none;min-height:44px}.week-one .w-current .w-command:has([data-w-drag])>input{width:42px;min-height:44px}.week-one .w-current .w-command:has([data-w-drag]) [data-w-action="remove-command"]{margin:0}}
@media(prefers-reduced-motion:reduce){.week-one .w-current .w-command{transition:none}}
.w-workbench{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(350px,1fr);gap:18px;align-items:start}
.w-visual,.w-operation{min-width:0;padding:18px}.w-visual{display:flex;flex-direction:column;justify-content:center;background:var(--stage)}
.w-operation{display:flex;flex-direction:column}.w-current{flex:none;min-height:0}.w-operation h3{font-size:19px;margin:8px 0}.w-progress{display:flex;gap:12px;font-size:12px;color:var(--muted);padding-bottom:10px;border-bottom:1px solid var(--line)}.w-progress [aria-current=step]{color:var(--lime)}
.w-operation-tools{display:flex;gap:10px;align-items:center;margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}
.w-inline-feedback{font-size:13px;line-height:1.6;color:var(--lime);padding:8px 0}.w-current .w-field{margin:9px 0;font-size:13px}.w-current textarea{min-height:54px;line-height:1.45;padding:7px 10px;resize:vertical}.w-current input:not([type=range]),.w-current select{min-height:36px;padding:6px 9px;margin-top:5px}.w-current .w-actions{margin:10px 0;gap:8px}.w-current .button,.w-operation-tools button{min-height:38px;font-size:13px;padding:8px 13px}.w-compact-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.w-choices{margin:12px 0}.w-choices legend{font-size:13px;color:var(--soft);margin-bottom:6px}.w-choices label{display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:8px;margin:6px 0;padding:8px 10px;font-size:14px;cursor:pointer;background:var(--stage)}.w-choices label:has(:checked){border-color:var(--lime);color:var(--lime)}.w-choices input{accent-color:var(--lime);margin:0;flex:none}.w-choices input:focus-visible{outline-offset:2px}
.w-current .w-blocks{margin:12px 0;gap:8px}.w-current .w-command{padding:8px;gap:8px}.w-command select{background:var(--bg);color:var(--text);border:1px solid #58664f;border-radius:7px;min-height:36px;max-width:90px}.w-command>input{width:60px;min-height:36px;padding:6px 8px;margin:0}.w-current .w-command button{margin:0;padding:4px 9px;min-height:34px}.w-current .w-command button:first-of-type{margin-left:auto}.w-current .w-builder{margin:10px 0;gap:8px}.w-current .w-builder input,.w-current .w-builder select{min-height:36px}.w-current .w-builder button{padding:6px 9px;font-size:12px;min-height:36px}
.w-current .w-program{gap:8px;margin:10px 0}.w-current .w-program>label{padding:9px 11px}.w-current .w-program input{width:65px}.w-current .w-program select{margin-top:5px}.w-current-line{margin:10px 0;padding:10px 12px;line-height:1.6}.w-sampling{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:10px 0}.w-sampling button{font-size:12px;padding:7px;min-height:40px}.w-run-presets .button{flex:1;justify-content:center}.w-tool-reading{min-height:66px;padding:9px 12px;background:var(--stage);border:1px solid var(--line);border-radius:8px;font-size:13px;line-height:1.6}.w-current details>summary{font-size:13px;cursor:pointer;min-height:28px}
.w-visual .w-condition{padding:8px 0 0;font-size:13px}.w-visual .w-map{max-height:100%;min-height:0}.w-visual [data-w-trip-graphic]{min-height:0;flex:1;display:flex;flex-direction:column;justify-content:center}.w-trip-route{width:100%;max-height:70px;flex:none}.w-visual .w-plot{width:100%;min-height:0;max-height:300px;flex:1}.w-visual .w-trip-readings{margin:9px 0 0;gap:8px}.w-visual .w-trip-readings>div{padding:7px 10px}.w-visual .w-trip-readings strong{font-size:22px}.w-visual .w-trip-readings p{display:none}.w-plot-key{font-size:12px;gap:14px}
.w-reference-overlay{position:fixed;inset:0;background:#050905b8;z-index:60;display:flex;align-items:center;justify-content:center;padding:24px}.w-reference{width:min(720px,100%);max-height:90dvh;display:flex;flex-direction:column;box-shadow:0 25px 80px #0008}.w-reference-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 22px;border-bottom:1px solid var(--line);flex:none}.w-reference-heading h2{font-size:22px}.w-reference-body{overflow:auto;padding:18px 22px}.w-reference-body .w-evidence{border:0;background:none;padding:0;margin:0}.w-reference-body details{margin:14px 0}.w-reference-body .w-original summary{cursor:pointer}.w-reference-body .w-original p{white-space:pre-wrap;overflow-wrap:anywhere}.w-reference-body .w-paths{margin-top:0}.w-reference-body p{font-size:14px;margin:10px 0}.w-reference-body .w-hints{padding:12px 16px}
/* Long auxiliary dialogs keep their close control visible. */
.dialog:has(.dialog-header){padding-top:0}.dialog-header{position:sticky;top:0;z-index:5;background:var(--surface);padding-top:20px;padding-bottom:14px;border-bottom:1px solid var(--line)}
@media(min-width:801px){
 .study-workspace .top{min-height:44px;height:44px;padding:4px 24px;gap:16px}.study-workspace .brand{font-size:17px;gap:8px}.study-workspace .brand i{width:12px;height:12px}.study-workspace .nav{display:flex;gap:20px}.study-workspace .nav button{min-height:32px;padding:3px 0;font-size:13px}.study-workspace .top-meta{gap:10px}.study-workspace .top-meta .pill{display:none}.study-workspace .top-meta button{min-height:32px;padding:4px 10px;font-size:12px}
 .study-workspace .wallet-strip{min-height:46px;padding:5px 24px;gap:18px;position:static;flex-wrap:nowrap;font-size:12px}.study-workspace .wallet-strip strong{font-size:18px}.study-workspace .wallet-strip button{min-height:32px;padding:4px 10px;font-size:12px}.study-workspace .wallet-strip small{display:none}.study-workspace .wallet-strip [data-action=wardrobe],.study-workspace .wallet-strip [data-action=membership]{display:none}
 .study-workspace #main{max-width:1600px;padding:12px 24px 14px;min-height:0}.study-workspace .footer,.study-workspace .status-line,.study-workspace .sample-topline,.study-workspace .ambient-band{display:none}.study-workspace #main>.ambient-band{display:none}
 .study-workspace .w-heading{margin:0 0 8px;align-items:center;gap:12px;display:flex}.study-workspace .w-heading>div{display:flex;align-items:center;gap:16px}.study-workspace .w-heading h1{font-size:24px;line-height:1.4}.study-workspace .w-heading .eyebrow{font-size:11px;margin:0}.study-workspace .w-heading .saved{padding:0;font-size:11px;margin:0}.study-workspace .w-tabs{margin:0 0 10px;gap:7px;flex-wrap:nowrap}.study-workspace .w-tabs button{min-height:32px;padding:5px 12px;font-size:12px}
 .study-workspace .w-workbench{height:auto;min-height:0}.study-workspace .w-visual .w-map{flex:1;width:100%;height:0;min-height:300px;max-height:100%;object-fit:contain}.study-workspace .w-map-key{padding:5px 2px 0;gap:8px}.study-workspace .w-operation{padding:15px 18px}.study-workspace .w-operation h2{font-size:23px}.study-workspace .w-current .error{margin:0;padding:9px;font-size:13px}
 .study-workspace .w-overview .w-week-intro{margin-bottom:14px;padding:20px}.study-workspace .w-week-intro h2{font-size:24px}.study-workspace .w-week-intro .sub{font-size:13px;line-height:1.7}.study-workspace .w-task-cards{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:12px 0}.study-workspace .w-task-cards .w-card{min-height:240px;padding:15px}.study-workspace .w-task-cards h3{font-size:17px}.study-workspace .w-task-cards p{font-size:12px}.study-workspace .w-task-cards .text-button{font-size:12px;padding:6px 9px;min-height:36px}
}
@media(min-width:801px) and (max-width:1100px){.study-workspace #main{padding-inline:16px}.w-workbench{grid-template-columns:minmax(0,1fr) minmax(350px,1fr);gap:12px}.study-workspace .wallet-strip{gap:12px;padding-inline:16px}.study-workspace .w-operation{padding:13px 14px}.study-workspace .w-heading .eyebrow{display:none}.w-tool-tabs{gap:5px!important}.w-tool-tabs button{font-size:11px;padding:5px 8px}.w-choices label{font-size:13px;padding:7px 9px}}
@media(max-width:800px){.w-workbench{grid-template-columns:1fr}.w-visual .w-map{max-height:380px}.w-reference-overlay{padding:12px}.w-reference-heading{padding:12px 16px}.w-reference-body{padding:16px}.w-compact-fields{grid-template-columns:1fr}}
@media(min-width:801px){
 .lab-workspace-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 12px}.lab-workspace-heading>div{display:flex;align-items:center;gap:18px}.lab-workspace-heading h1{font-size:23px;line-height:1.4}.lab-workspace-heading .eyebrow{margin:0;font-size:11px}.lab-workspace-heading button{min-height:34px;padding:5px 11px;font-size:12px}.study-workspace .lab-workbench{height:auto;grid-template-columns:minmax(0,1.15fr) minmax(350px,1fr)}
 .lab-workbench .lab-stage{padding:0;justify-content:stretch;overflow:hidden}.lab-workbench .stage-toolbar{flex:none;padding:10px 16px;font-size:12px}.lab-workbench .lab-graphic{min-height:0;flex:1;display:flex;align-items:center;justify-content:center;padding:10px;overflow:hidden}.lab-workbench .lab-graphic>svg{width:100%;height:100%;max-height:none}.lab-workbench .lab-readout{flex:none;display:flex;flex-wrap:wrap;gap:8px 16px;padding:10px 16px;font-size:13px;border-top:1px solid var(--line)}.lab-workbench .lab-operation{padding:18px;position:relative;min-width:0;display:flex;flex-direction:column}.lab-workbench .lab-prompt{font-size:16px;line-height:1.65;margin:12px 0}.lab-workbench .phase-label{font-size:12px}.lab-workbench .lab-original{font-size:12px;color:var(--soft);margin:0 0 8px}.lab-workbench .lab-instruction{font-size:13px;line-height:1.6;margin-bottom:8px;color:var(--soft)}.lab-workbench .lab-controls{display:grid;gap:10px;padding:0;margin:0 0 8px}.lab-workbench .lab-control{padding:0;font-size:13px}.lab-workbench .lab-control input{height:24px;margin:4px 0}.lab-workbench .lab-control strong{font-size:16px}.lab-workbench .lab-detent small{font-size:11px}.lab-workbench .lab-validation{padding:0;border:0;background:none;margin-top:12px}.lab-workbench .choice-list{margin:8px 0;gap:7px}.lab-workbench .choice{min-height:38px;font-size:14px;padding:8px 12px}.lab-workbench .feedback{font-size:13px;line-height:1.6;margin:8px 0;padding:10px 12px}.lab-workbench .feedback p{margin:4px 0 0}.lab-workbench .button{min-height:42px;padding:9px 14px;font-size:14px}.lab-workbench [data-lab-operation-status]{font-size:11px;color:var(--muted)}
 .lab-support{margin-top:auto;padding-top:12px;font-size:12px}.lab-support>summary{cursor:pointer;min-height:30px;color:var(--muted)}.lab-support[open]>.lab-support-body{position:absolute;bottom:55px;left:14px;right:14px;z-index:10;background:var(--surface);border:1px solid #69785e;border-radius:12px;padding:16px;max-height:calc(100% - 72px);overflow:auto;box-shadow:0 14px 35px #0008}.lab-support-body p{font-size:14px;margin:10px 0}.lab-support-body .lab-demo svg{max-height:320px}.lab-support-body .lab-controls{padding-top:12px}
 .lab-workbench #wave-mount{height:100%;width:100%;min-height:0}.lab-workbench .wave-explorer{padding:0;height:100%;display:flex;flex-direction:column;position:relative;overflow:auto}.lab-workbench .wave-heading{display:none}.lab-workbench .wave-status{margin:0;padding:5px 8px;font-size:11px;flex:none}.lab-workbench .wave-chart{flex:1;min-height:220px;max-height:340px;aspect-ratio:auto}.lab-workbench .wave-chart svg{width:100%;height:100%;min-height:0}.lab-workbench .wave-toolbar{padding:5px 0;gap:6px;flex:none}.lab-workbench .wave-toolbar button{min-height:32px;padding:5px 10px;font-size:12px}.lab-workbench .wave-toolbar details{font-size:11px}.lab-workbench .wave-point-reading{font-size:12px;margin:4px 0}.lab-workbench .wave-current-parameters{padding:4px 8px;font-size:11px;gap:6px}.lab-workbench .wave-peaks{display:none}.lab-workbench .wave-parameters:empty{display:none}.lab-workbench #wave-listening{font-size:12px;margin:6px 0;padding:0 8px}.lab-workbench .wave-expand{min-height:32px;padding:5px 10px;font-size:12px;align-self:start}.lab-workbench .wave-locked{font-size:12px;margin:5px 0}.lab-workbench .wave-space{font-size:12px}.lab-workbench .wave-space:not([hidden]){position:absolute;inset:4px;z-index:15;overflow:auto;background:var(--stage);border:1px solid var(--line);border-radius:10px;padding:12px 12px 50px}.lab-workbench .wave-expand[aria-expanded=true]{position:absolute;bottom:6px;left:16px;z-index:16;background:var(--surface)}.lab-workbench .wave-three{height:240px;min-height:220px}
 .study-workspace .lesson-heading{margin:0 0 10px;display:grid;grid-template-columns:1fr auto;gap:2px 20px}.study-workspace .lesson-heading .eyebrow{font-size:11px;margin:0}.study-workspace .lesson-title{font-size:24px;margin:0}.study-workspace .mission-task{font-size:14px;margin:0;grid-column:1;line-height:1.6}.study-workspace .mission-positions{grid-column:2;grid-row:1/4;display:flex;gap:18px;margin:0;padding:0;background:none;border:0}.study-workspace .mission-positions>div{padding:4px 0}.study-workspace .mission-positions span{font-size:11px}.study-workspace .mission-positions strong{font-size:18px}
 .study-workspace .lesson-layout{grid-template-columns:minmax(0,1.15fr) minmax(350px,1fr);gap:18px;align-items:stretch;height:calc(100dvh - 208px);min-height:430px}.study-workspace .lesson-layout>section{position:relative;display:flex;flex-direction:column;min-height:0}.study-workspace .stage-panel{min-height:0;flex:1;display:flex;flex-direction:column}.study-workspace .scene{flex:1;min-height:0;aspect-ratio:auto}.study-workspace .stage-toolbar{padding:8px 14px;font-size:12px}.study-workspace .scene-legend{padding:6px 14px;font-size:11px;flex:none}.study-workspace .stage-readout{padding:8px 14px;font-size:12px}.study-workspace .stage-readout strong{font-size:19px;margin:0}.study-workspace .stage-readout>span{font-size:11px}.study-workspace .object-list{padding:0 14px 5px;font-size:12px}.study-workspace .object-list summary{padding:5px 0;min-height:28px}.study-workspace .object-list[open]{position:absolute;bottom:8px;left:12px;right:12px;z-index:5;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px}.study-workspace .object-list p{font-size:13px}
 .study-workspace .task-panel{padding:16px 18px}.study-workspace .task-panel h2{font-size:21px;margin:8px 0}.study-workspace .task-panel .small,.study-workspace .task-panel .axis-heading{font-size:13px}.study-workspace .task-panel .choice-list{margin:10px 0;gap:7px}.study-workspace .task-panel .choice{font-size:14px;padding:8px 12px;min-height:38px}.study-workspace .task-controls{margin:10px 0;padding:10px 14px}.study-workspace .axis-control{padding:7px 0}.study-workspace .axis-control:has(.locked){display:inline-flex;gap:6px;align-items:center;padding:4px 9px 4px 0;border:0}.study-workspace .axis-control:has(.locked) .axis-heading small{display:none}.study-workspace .axis-control:has(.locked) .axis-value{font-size:14px;margin:0}.study-workspace .axis-value{font-size:18px}.study-workspace .stepper{margin:3px 0}.study-workspace .stepper button{width:34px;height:34px}.study-workspace .range-note{font-size:11px}.study-workspace .coordinate-readout{padding:7px 11px;margin:10px 0;font-size:13px}.study-workspace .coordinate-readout strong{font-size:17px}.study-workspace .task-panel .feedback{padding:9px 12px;font-size:13px;margin:8px 0}.study-workspace .task-panel .button{min-height:40px;padding:8px 14px;font-size:14px}.study-workspace .subtools{margin-top:10px;gap:8px}.study-workspace .subtools button{font-size:12px;padding:6px 10px;min-height:32px}.study-workspace .repair-progress{margin:0 0 8px;gap:8px}.study-workspace .repair-progress span{font-size:11px;padding:4px 0}.study-workspace .snapshot{margin:8px 0;gap:12px}.study-workspace .snapshot>div{padding:8px 12px}.study-workspace .snapshot strong{font-size:18px}.study-workspace .camera-intro{padding:10px;margin:8px 0;font-size:13px}.study-workspace .camera-intro h2{font-size:17px}.study-workspace .camera-intro p{margin:5px 0}.study-workspace .camera-intro .text-button{min-height:32px;font-size:12px;padding:5px 10px}.study-workspace .saved-evidence-card,.study-workspace .evidence-log{padding:6px 12px;font-size:12px;margin:6px 0}.study-workspace .saved-evidence-card[open],.study-workspace .evidence-log[open]{position:absolute;bottom:5px;left:10px;right:10px;max-height:55%;overflow:auto;z-index:7;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px}.study-workspace .saved-evidence-card p,.study-workspace .evidence-log p{font-size:13px}
}
/* Shared readable, tactile learning controls. Decoration never changes model values. */
.lab-workbench,.guided-learning,.study-workspace .lesson-layout,.w-workbench{--text:#fff5df;--soft:#e2ddc8;--muted:#c9c4af;--line:#5a6047;--stage:#242c21}
.lab-workbench .lab-operation,.guided-learning .lab-question,.guided-learning .lab-validation,.study-workspace .task-panel,.w-operation{background:linear-gradient(145deg,#303629,#252d22);border-color:#62654b;box-shadow:inset 0 1px 0 #f5dfb21a,0 10px 30px #0002}
.lab-workbench .lab-operation{gap:0}.lab-workbench .lab-operation>*{flex-shrink:0}
.lab-workbench .lab-prompt,.guided-learning .lab-prompt{font-size:22px;line-height:1.6;font-weight:600;margin:14px 0}
.lab-workbench .phase-label,.guided-learning .phase-label{font-size:15px;letter-spacing:.4px;color:#f4d596}
.lab-workbench .lab-original,.lab-workbench .lab-support,.guided-learning .lab-original{font-size:16px;line-height:1.7}
.lab-workbench .lab-instruction,.lab-operation-guide p{font-size:18px;line-height:1.7;color:var(--soft);margin:10px 0 14px}
.lab-workbench [data-lab-operation-status],.lab-operation-guide small{font-size:15px;line-height:1.7;color:var(--muted)}
.lab-workbench .lab-validation .small,.lab-workbench .feedback,.guided-learning .lab-validation .small,.guided-learning .feedback{font-size:17px;line-height:1.7}
.lab-workbench .choice,.guided-learning .choice,.study-workspace .task-panel .choice{font-size:18px;min-height:52px;padding:11px 15px;border-radius:15px;border-color:#787a58;background:#333a2c;color:var(--text)}
.lab-workbench .choice[aria-pressed=true],.guided-learning .choice[aria-pressed=true],.study-workspace .task-panel .choice[aria-pressed=true]{color:#f0f3b8;background:#424b30;border-color:#dce996;box-shadow:inset 0 1px 0 #ffffff14}
.lab-workbench .button,.lab-workbench [data-action=lab-restart],.guided-learning .button,.study-workspace .task-panel .button{font-size:17px;min-height:50px;padding:11px 16px;border-radius:15px}
.lab-workbench [data-action=lab-restart]{border-color:#777758;background:#353c2c;margin:2px 0 8px}
.lab-workbench .lab-controls,.lab-controls{gap:12px}
.lab-workbench .lab-control,.lab-control{margin:0;padding:10px 14px;border:1px solid #676a4d;border-radius:18px;background:linear-gradient(135deg,#3b4231,#30372a);font-size:18px;line-height:1.6;box-shadow:inset 0 1px 0 #fce9b313;column-gap:10px}
.lab-workbench .lab-control strong,.lab-control strong{font-size:24px;line-height:1.3;font-variant-numeric:tabular-nums;color:#f3edb5;background:#22291f;border:1px solid #747553;border-radius:12px;min-width:48px;padding:3px 10px;text-align:center}
.lab-workbench .lab-detent,.lab-detent{margin:0 18px 2px;min-height:27px}
.lab-workbench .lab-detent small,.lab-detent small{font-size:15px;line-height:1.6;padding-top:9px;color:#ded8ba}
.lab-detent i{height:7px;border-color:#ddd0a2;border-width:2px}.lab-detent.snapped small{color:#edf3b8}
:is(.lab-control,.stepper,.w-field,.wave-listen) input[type=range]{--range-fill:0%;--range-thumb:36px;appearance:none;-webkit-appearance:none;display:block;width:100%;min-width:0;height:48px;min-height:48px;margin:3px 0;padding:0;border:0;border-radius:16px;background:transparent;cursor:grab;accent-color:#e6eda6;touch-action:pan-y}
.lab-control input[type=range]{grid-column:1/-1}
:is(.lab-control,.stepper,.w-field,.wave-listen) input[type=range]::-webkit-slider-runnable-track{height:14px;border:1px solid #8a8963;border-radius:999px;background:linear-gradient(to right,#e6eda6 0%,#d8e797 var(--range-fill),#5b6349 var(--range-fill),#5b6349 100%);box-shadow:inset 0 2px 3px #0005,0 1px 0 #ffe8bb1a}
:is(.lab-control,.stepper,.w-field,.wave-listen) input[type=range]::-webkit-slider-thumb{box-sizing:border-box;appearance:none;-webkit-appearance:none;width:var(--range-thumb);height:var(--range-thumb);margin-top:-12px;border:3px solid #fff1c7;border-radius:50%;background:radial-gradient(circle at 35% 25%,#fff6d8,#efc67c 65%,#d6a65c);box-shadow:0 4px 0 #927848,0 6px 12px #0005,inset 0 2px 2px #fff9;transition:transform 280ms cubic-bezier(.2,1.65,.35,1),box-shadow 180ms;animation:none}
:is(.lab-control,.stepper,.w-field,.wave-listen) input[type=range]::-moz-range-track{height:12px;border:1px solid #8a8963;border-radius:999px;background:#5b6349;box-shadow:inset 0 2px 3px #0005}
:is(.lab-control,.stepper,.w-field,.wave-listen) input[type=range]::-moz-range-progress{height:12px;border-radius:999px;background:#d8e797}
:is(.lab-control,.stepper,.w-field,.wave-listen) input[type=range]::-moz-range-thumb{width:30px;height:30px;border:3px solid #fff1c7;border-radius:50%;background:radial-gradient(circle at 35% 25%,#fff6d8,#efc67c 65%,#d6a65c);box-shadow:0 4px 0 #927848,0 6px 12px #0005;transition:transform 280ms cubic-bezier(.2,1.65,.35,1),box-shadow 180ms}
:is(.lab-control,.stepper,.w-field,.wave-listen) input[type=range]:active{cursor:grabbing}
:is(.lab-control,.stepper,.w-field,.wave-listen) input[type=range]:active::-webkit-slider-thumb{transform:scale(1.13,.9);box-shadow:0 2px 0 #927848,0 3px 7px #0004,inset 0 2px 2px #fff9}
:is(.lab-control,.stepper,.w-field,.wave-listen) input[type=range]:active::-moz-range-thumb{transform:scale(1.13,.9)}
:is(.lab-control,.stepper,.w-field,.wave-listen) input[type=range][data-range-released]{animation:study-range-settle 360ms both;animation-delay:var(--range-release-delay,0ms);transform-origin:center}
:is(.lab-control,.stepper,.w-field,.wave-listen) input[type=range]:disabled{cursor:default;opacity:.45}
@keyframes study-range-settle{0%{transform:scaleY(.9)}45%{transform:scaleY(1.08)}72%{transform:scaleY(.985)}100%{transform:scaleY(1)}}
.lab-workbench .lab-readout,.lab-readout,.study-workspace .stage-readout{font-size:17px;line-height:1.7;color:#edf3b8}
.lab-workbench .stage-toolbar,.study-workspace .stage-toolbar{font-size:16px;padding:12px 16px}
.study-workspace .task-panel .small,.study-workspace .task-panel .axis-heading,.study-workspace .mission-task{font-size:17px;line-height:1.7}
.study-workspace .axis-value{font-size:24px}.study-workspace .range-note{font-size:15px}.study-workspace .coordinate-readout{font-size:17px}.study-workspace .coordinate-readout strong{font-size:22px}.study-workspace .stepper button{width:44px;height:44px;flex:none;border-radius:13px;font-size:23px;background:#3c4530;border-color:#777d58}
.w-current .w-field,.w-current .small,.w-current details>summary,.w-current .w-choices legend,.w-current .w-inline-feedback,.w-current .w-tool-reading,.w-visual .w-condition{font-size:17px;line-height:1.7}
.w-current .w-choices label{font-size:18px;min-height:50px;border-radius:14px;padding:10px 12px}.w-current .button,.w-operation-tools button{font-size:17px;min-height:48px;border-radius:14px}.w-current textarea,.w-current input:not([type=range]),.w-current select{font-size:17px;min-height:44px}
.lab-workbench .wave-point-reading,.lab-workbench .wave-current-parameters,.lab-workbench #wave-listening,.lab-workbench .wave-space,.lab-workbench .wave-status,.lab-workbench .wave-locked{font-size:16px;line-height:1.6}.lab-workbench .wave-toolbar button,.lab-workbench .wave-expand{font-size:15px;min-height:42px}.lab-workbench .wave-toolbar details{font-size:15px}
@media(min-width:801px){.study-workspace .w-workbench{grid-template-rows:auto}.study-workspace .w-current{flex:none}.study-workspace .w-operation-tools{flex-shrink:0}.study-workspace .lab-workbench .lab-operation,.study-workspace .w-operation,.study-workspace .task-panel{min-height:0;overflow-y:auto;scrollbar-gutter:stable;scroll-padding-block:20px}.lab-workbench .lab-operation{padding:20px}.lab-workbench .lab-support{margin-top:16px}.lab-workbench .lab-support[open]>.lab-support-body{position:static;max-height:none;margin-top:12px;background:#30392a}.lab-workbench .lab-support-body p{font-size:17px}}
@media(max-width:800px){.lab-control{padding:11px 12px}.lab-control strong{font-size:23px}.guided-learning .lab-question,.guided-learning .lab-validation{padding:20px 16px}.guided-learning .lab-prompt{font-size:22px}.lab-operation-guide p{font-size:18px}.lab-readout{font-size:17px}.lab-operation-guide small{font-size:15px}.guided-learning .lab-question details{font-size:16px}.w-operation{overflow:visible}}
@media(prefers-reduced-motion:reduce){:is(.lab-control,.stepper,.w-field,.wave-listen) input[type=range]{animation:none!important;transform:none!important}:is(.lab-control,.stepper,.w-field,.wave-listen) input[type=range]::-webkit-slider-thumb{animation:none!important;transition:none!important;transform:none!important}:is(.lab-control,.stepper,.w-field,.wave-listen) input[type=range]::-moz-range-thumb{animation:none!important;transition:none!important;transform:none!important}}
html[data-reduced=true] :is(.lab-control,.stepper,.w-field,.wave-listen) input[type=range]{animation:none!important;transform:none!important}
html[data-reduced=true] :is(.lab-control,.stepper,.w-field,.wave-listen) input[type=range]::-webkit-slider-thumb{transition:none!important;transform:none!important}
html[data-reduced=true] :is(.lab-control,.stepper,.w-field,.wave-listen) input[type=range]::-moz-range-thumb{transition:none!important;transform:none!important}

/* A verified discovery deserves the same readable hierarchy in every course. */
:is(.lab-workbench,.guided-learning,.wave-learning,.task-panel,.weekly-question,.w-operation) .feedback:is([data-check-result=correct],[data-check-result=retry],[data-check-result=complete]){flex-shrink:0;margin:18px 0;padding:22px 24px;border:1px solid #718647;border-left:6px solid var(--lime);border-radius:18px;background:#2a3523;color:#f3f4dc;font-size:24px;line-height:1.7;overflow-wrap:anywhere}
:is(.lab-workbench,.guided-learning,.wave-learning,.task-panel,.weekly-question,.w-operation) .feedback:is([data-check-result=correct],[data-check-result=retry],[data-check-result=complete]) .check-title{display:block;margin:0;color:var(--lime);font-size:32px;font-weight:800;line-height:1.35;letter-spacing:.01em}
:is(.lab-workbench,.guided-learning,.wave-learning,.task-panel,.weekly-question,.w-operation) .feedback:is([data-check-result=correct],[data-check-result=retry],[data-check-result=complete]) .check-insight{margin:12px 0 0;color:#f3f4dc;font-size:24px;font-weight:400;line-height:1.7}
:is(.lab-workbench,.guided-learning,.wave-learning,.task-panel,.weekly-question,.w-operation) .feedback[data-check-result=retry]{border-color:#9b8554;border-left-color:#f1cd7a;background:#393324}
:is(.lab-workbench,.guided-learning,.wave-learning,.task-panel,.weekly-question,.w-operation) .feedback[data-check-result=retry] .check-title{color:#f1cd7a}
.lab-complete h3,.w-operation .w-current .completion-title{margin:14px 0 12px;font-size:32px;font-weight:800;line-height:1.4;color:var(--lime);overflow-wrap:anywhere}
.lab-complete p,.w-current .check-insight{margin:12px 0;font-size:24px;font-weight:400;line-height:1.7;color:#f3f4dc;overflow-wrap:anywhere}
.check-insight strong{font-weight:800}
.w-operation>.w-inline-feedback{font-size:17px;line-height:1.7}
@media(max-width:800px){
 :is(.lab-workbench,.guided-learning,.wave-learning,.task-panel,.weekly-question,.w-operation) .feedback:is([data-check-result=correct],[data-check-result=retry],[data-check-result=complete]){padding:20px 18px;font-size:22px}
 :is(.lab-workbench,.guided-learning,.wave-learning,.task-panel,.weekly-question,.w-operation) .feedback:is([data-check-result=correct],[data-check-result=retry],[data-check-result=complete]) .check-title,.lab-complete h3,.w-operation .w-current .completion-title{font-size:28px}
 :is(.lab-workbench,.guided-learning,.wave-learning,.task-panel,.weekly-question,.w-operation) .feedback:is([data-check-result=correct],[data-check-result=retry],[data-check-result=complete]) .check-insight,.lab-complete p,.w-current .check-insight{font-size:22px}
}

/* Keep each step together; short answers use the width already available. */
:is(.lab-workbench,.guided-learning,.wave-learning,.task-panel,.weekly-question) .choice-list--short{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
:is(.lab-workbench,.guided-learning,.wave-learning,.task-panel,.weekly-question) .choice-list--short .choice{position:relative;justify-content:center;min-width:0;min-height:68px;padding:14px 12px;font-size:22px;font-weight:700;text-align:center;line-height:1.5;overflow-wrap:anywhere}
.choice-list--short .choice[aria-pressed=true]:after{content:none}
.choice-list--short .choice[aria-pressed=true]{box-shadow:inset 0 0 0 2px var(--lime);background:#3f4b2c}
.lab-workbench .lab-workflow-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:12px}
.lab-workbench .lab-workflow-actions .button{flex:1 1 240px}.lab-workbench .lab-workflow-actions .text-button{flex:0 1 auto;min-height:48px;padding:10px 14px}
.lab-workbench .lab-operation>.text-button{align-self:flex-start;margin-top:12px;min-height:44px;font-size:17px}
.lab-workbench .observation-readings{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0 18px}
.lab-workbench .observation-readings>div{padding:16px;border:1px solid #747b51;border-radius:16px;background:#363f2b;min-width:0}
.lab-workbench .observation-readings span{display:block;font-size:17px;color:#e5e6c2;margin-bottom:6px}.lab-workbench .observation-readings strong{font-size:28px;color:#f5edc8;line-height:1.4}
.lab-workbench [data-lab-operation-status]{margin:10px 0;line-height:1.6}
.w-current .w-choices.choice-list--short{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.w-current .w-choices.choice-list--short label{margin:0;min-width:0;min-height:60px;font-size:20px}.w-current .w-choices.choice-list--short legend{grid-column:1/-1}
@media(min-width:801px){
 .lab-workbench .lab-primary-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .study-workspace .lab-workbench{height:auto;min-height:0}
 .lab-workbench .lab-primary-controls:has(>.lab-control:only-child){grid-template-columns:1fr}
 .lab-workbench .lab-prompt{margin:8px 0;font-size:22px}.lab-workbench .lab-instruction{margin:8px 0 12px;font-size:18px}
 .lab-workbench .lab-validation{margin-top:0}
 .lab-workbench .lab-control{padding:10px 12px}.lab-workbench .lab-control input{margin:6px 0}
 .lab-workbench .feedback:is([data-check-result=correct],[data-check-result=retry]){margin:12px 0;padding:18px 20px}
 .lab-workbench .lab-support{margin-top:12px;padding-top:6px}
 .lab-observation .lab-operation{padding:14px}
 .lab-observation .observation-readings{margin:6px 0}
 .lab-observation [data-lab-operation-status]{margin:6px 0}
 .lab-observation .lab-workflow-actions{margin-top:8px}
 .lab-observation .lab-support{margin-top:8px;padding-top:4px}
}
@media(max-width:800px){
 .w-workbench.lab-workbench{grid-template-columns:minmax(0,1fr);gap:14px}.lab-workbench .lab-operation{padding:20px 16px}
 .lab-workbench .lab-graphic{padding:12px}.lab-workbench .lab-graphic>svg{width:100%;height:auto}.lab-workbench .lab-prompt{font-size:22px}.lab-workbench .lab-instruction{font-size:18px;line-height:1.6}
 :is(.lab-workbench,.task-panel,.weekly-question) .choice-list--short{grid-template-columns:repeat(2,minmax(0,1fr))}
 :is(.lab-workbench,.task-panel,.weekly-question) .choice-list--tight{grid-template-columns:repeat(3,minmax(0,1fr))}
 :is(.lab-workbench,.task-panel,.weekly-question) .choice-list--short .choice{font-size:20px;padding:12px 6px;min-height:64px}
 .lab-workbench .observation-readings>div{padding:12px 10px}.lab-workbench .observation-readings strong{font-size:24px}
 .lab-workbench .feedback .check-title{font-size:28px}.lab-workbench .feedback .check-insight{font-size:22px}
 .w-current .w-choices.choice-list--short{grid-template-columns:1fr}
}

/* Continuous 3D coordinates, with readable screen-space labels. */
.coordinate-3d{position:relative;display:flex;flex-direction:column;width:100%;height:100%;min-height:0;isolation:isolate;background:radial-gradient(ellipse at 50% 55%,#35412b80,transparent 74%);border-radius:14px;overflow:hidden}
.coordinate-surface{position:relative;flex:1;min-height:0;overflow:hidden}
.coordinate-surface>canvas{display:block;position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:grab;outline-offset:-4px;border-radius:12px}
.coordinate-3d[data-dragging=true] canvas{cursor:grabbing}
.coordinate-surface>canvas:focus-visible{outline:3px solid #efdba4}
.coordinate-labels{position:absolute;inset:0;pointer-events:none}
.coordinate-labels>svg{position:absolute;inset:0;width:100%;height:100%;max-height:none}
.coordinate-label{position:absolute;white-space:nowrap;font-size:18px;font-weight:650;line-height:1.35;padding:2px 5px;border-radius:6px;background:#1b251eea;text-shadow:0 1px 2px #000;pointer-events:none}
.coordinate-label.coordinate-tick{font-size:17px;font-family:Arial,sans-serif;background:#1b251ed9;font-weight:500}
.coordinate-label[hidden]{display:none}
.coordinate-point-anchor{position:absolute;width:42px;height:42px;transform:translate(-50%,-50%);border-radius:50%;border:2px solid transparent;pointer-events:none}
.coordinate-target{position:absolute;border:1px solid #d5fa74;background:#344628;color:#edfac9;padding:7px 10px;min-height:38px;border-radius:12px;font-size:16px;font-weight:650;cursor:pointer;z-index:2}
.coordinate-target[hidden]{display:none}
.coordinate-view-tools{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px 4px;flex:none;border-top:1px solid #68754b55;background:#273123}
.coordinate-view-hint{font-size:16px;line-height:1.5;color:#e6e0c5}
.coordinate-view-buttons{display:flex;gap:6px;flex:none}
.coordinate-view-buttons button{min-height:40px;min-width:40px;padding:6px 10px;border:1px solid #8a875d;border-radius:12px;color:#f5edc8;background:#41482e;font-size:16px;font-weight:650;cursor:pointer}
.coordinate-view-buttons button:disabled{opacity:.5;cursor:default}
.coordinate-view-reading{display:block;flex:none;padding:2px 10px 8px;font-size:15px;color:#c5c9ad;background:#273123;line-height:1.5}
.lab-workbench .lab-graphic:has(.coordinate-3d){padding:0}
.lab-demo:has(.coordinate-3d){height:360px}
.study-workspace .camera-demo-scene,.camera-demo-scene{height:clamp(260px,45dvh,390px);min-height:260px;flex:none;aspect-ratio:auto}
.lab-workbench .lab-graphic:has(.coordinate-fallback){flex-direction:column;align-items:stretch;justify-content:flex-start}.lab-workbench .lab-graphic:has(.coordinate-fallback)>svg{flex:1;min-height:0}
.coordinate-fallback{margin:0;padding:8px 12px;font-size:16px;color:#f4d79b}
[data-coordinate-config]{width:100%;height:100%}
.scene [data-coordinate-config]>svg{width:100%;height:100%}
@media(max-width:800px){
 .lab-workbench .lab-graphic:has(.coordinate-3d){height:390px;min-height:390px;display:block}
 .coordinate-view-tools{flex-wrap:wrap;padding:8px}.coordinate-view-hint{width:100%;font-size:16px}.coordinate-view-buttons{width:100%;justify-content:flex-end}
 .coordinate-view-buttons button{min-height:40px;font-size:16px}.coordinate-label{font-size:17px}.coordinate-label.coordinate-tick{font-size:16px}
 .coordinate-view-reading{min-height:53px}
 .lab-demo:has(.coordinate-3d){height:360px}
}

/* Each active step uses its own panel's space, including tall desktop windows. */
.lab-step-content,.task-step-content{display:contents}
.task-advance{margin-top:20px}
.lab-workbench [data-lab-operation-status]{font-size:15px}
@media(min-width:801px){
 .study-workspace .lab-operation,.study-workspace .task-panel{container-type:inline-size;container-name:learning-panel}
 .study-workspace .lesson-layout{min-height:0}
 .study-workspace #main:has(>.lesson-layout){height:auto;display:block}
 .study-workspace #main>.lesson-layout{min-height:0;height:auto;align-items:start}
 .study-workspace #main>.lesson-heading{flex:none}
 .study-workspace .task-panel{display:flex;flex-direction:column}
 .study-workspace .task-panel>*{flex-shrink:0}
 .study-workspace .lesson-layout>section{overflow-y:auto}
 .study-workspace .lesson-layout .stage-panel{flex:1 0 480px;min-height:480px}
 .study-workspace .lesson-layout .scene{flex:1 0 280px;min-height:280px}
 .study-workspace .camera-demo-entry{padding:0;margin:8px 0;border:0;background:none;flex:none}
 .study-workspace .camera-demo-entry .text-button{font-size:16px;min-height:44px;padding:8px 14px}
 .study-workspace .lesson-records{display:flex;flex-wrap:wrap;gap:8px 16px;flex:none;padding:6px 0}
 .study-workspace .lesson-records>details{flex:1 1 240px;margin:0;padding:4px 12px;font-size:15px}
 .study-workspace .lesson-records summary{min-height:36px;padding:6px 0}
 .study-workspace .lesson-records>details[open],.study-workspace .lesson-layout .object-list[open]{position:static;max-height:none;overflow:visible;flex-basis:100%;margin:0;padding:12px}
 .study-workspace .lesson-layout .stage-panel:has(.object-list[open]){flex-basis:auto}
 .lab-workbench .lab-workflow-actions .button{margin:0}
}
/* Typography follows available width; panel height stays content driven. */
@container learning-panel (min-width:420px){
 .lab-workbench .lab-prompt,.study-workspace .task-panel>h2{font-size:clamp(26px,1.6vw,32px);line-height:1.45;margin:12px 0 8px;font-weight:750}
 .lab-workbench .lab-instruction,.study-workspace .task-panel .small,.study-workspace .operation-instruction{font-size:clamp(18px,1.15vw,22px);line-height:1.6}
 .lab-workbench .observation-readings strong{font-size:clamp(28px,2vw,36px)}
 .lab-workbench .lab-control{font-size:20px}
 .lab-workbench .lab-control strong,.study-workspace .axis-value{font-size:28px}
 .lab-workbench .choice,.study-workspace .task-panel .choice{font-size:22px;min-height:64px;padding:12px 14px}
 .lab-workbench .button,.study-workspace .task-panel .button{font-size:22px;min-height:56px;padding:14px 18px}
 .lab-workbench .lab-support,.study-workspace .task-panel .subtools button{font-size:18px}
}
@media(min-width:1200px) and (min-height:850px){
 .study-workspace .w-workbench,.study-workspace .lesson-layout{grid-template-columns:minmax(0,1fr) clamp(440px,32vw,560px);gap:24px}
 .study-workspace .lab-operation,.study-workspace .task-panel{padding:clamp(24px,3dvh,36px)}
 .lab-workbench .stage-toolbar,.study-workspace .stage-readout,.lab-workbench .lab-readout{font-size:19px}
 .study-workspace .stage-readout strong{font-size:26px}
 .coordinate-view-tools{padding:12px 14px 8px}
 .coordinate-view-hint,.coordinate-view-reading,.coordinate-view-buttons button{font-size:17px}
 .coordinate-label{font-size:20px}.coordinate-label.coordinate-tick{font-size:18px}
}

/* Task pages: a clear purpose, one current action, and visible requirements. */
.task-brief{border-bottom:1px solid #687154;padding-bottom:14px;margin-bottom:16px}
.task-brief p{margin:0 0 10px;line-height:1.6;color:#f4edd4}
.task-brief .task-goal{color:#ccd1b5;margin:0}
.task-next{padding:12px 16px;border-left:4px solid #eac47a;background:#343d28;color:#f7edcc;line-height:1.55;font-size:18px}
.task-next strong{font-weight:700}.task-requirements{font-size:16px;margin-top:8px;color:#cdd0b7}
.task-requirements ul{padding-left:20px;margin:8px 0}.task-requirements li{margin:6px 0}
.weekly-records{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:24px 0}
.weekly-records article{padding:20px;background:#343d28;border:1px solid #78835b;border-radius:16px}
.weekly-records h2{margin:0 0 14px}.weekly-records strong{font-size:21px;line-height:1.5}
.w-trip-readings em{font-style:normal;font-size:.48em;color:#e4dfc3}
.w-record-sequence{list-style:none;display:flex;gap:8px;margin:0;padding:0;font-size:17px;color:var(--muted)}
.w-record-sequence li{flex:1;padding:8px 10px;border-radius:12px;background:#20291e;text-align:center}
.w-record-sequence [aria-current=step]{background:#435031;color:#f5edc8;font-weight:700}
.w-record-count{font-size:17px;color:#eac47a;margin:0}.w-record-purpose{font-size:19px;line-height:1.5;color:var(--soft);margin:0}
[data-w-record-action]>.button{width:100%}.w-recorded-readings h4{font-size:17px;font-weight:500;color:var(--soft);margin:0 0 6px}
.w-recorded-readings table{width:100%;border-collapse:collapse;text-align:center}.w-recorded-readings th{font-size:15px;color:var(--muted);font-weight:500;padding:6px}
.w-recorded-readings td{font-size:24px;font-weight:700;padding:8px;border-top:1px solid var(--line);color:#f5edc8}
.w-trip-comparison{display:grid;grid-template-columns:1fr 1fr;gap:10px}.w-trip-comparison>div{padding:14px;border:1px solid #78835b;border-radius:14px;background:#343d28}
.w-trip-comparison span,.w-trip-comparison strong{display:block}.w-trip-comparison span{font-size:16px;color:var(--soft);margin-bottom:6px}.w-trip-comparison strong{font-size:22px;line-height:1.5}
.w-trip-readings .w-trip-phase{grid-column:1/-1;margin:0;font-size:20px;color:#f7edcc;line-height:1.5}
.w-sample-task{padding:16px 0;border-top:1px solid #687154;margin-top:14px}
.w-sample-task h3{margin:0 0 8px}.w-sample-task p{font-size:18px;line-height:1.5;color:#cdd0b7;margin:0 0 12px}
.w-observation-now{border-top:1px solid #687154;margin-top:14px;padding-top:14px}
.w-observation-now>strong{display:block;margin-bottom:8px;color:#f7edcc;font-size:20px}
.coordinate-goal{color:#ccd1b5;font-size:18px;line-height:1.5;margin:8px 0}
.axis-value small{font-size:.5em;font-weight:500}.mission-positions strong small{font-size:.46em}
.learning-combined-entry{margin-top:20px;padding:16px;border-top:1px solid #687154}
@media(min-width:801px){
 .study-workspace .w-heading h1,.study-workspace .lab-workspace-heading h1,.study-workspace .lesson-title{font-size:clamp(30px,2.1vw,40px);line-height:1.25}
 .study-workspace .w-operation .task-brief p,.study-workspace .lab-operation .task-brief p{font-size:20px}
 .study-workspace .task-brief .task-goal{font-size:18px}
 .study-workspace .w-current h3{font-size:26px;line-height:1.4;margin-bottom:12px}
 .study-workspace .w-current :is(label,select,input),.study-workspace .w-current .w-current-line{font-size:20px}
 .study-workspace .w-current .small{font-size:18px;line-height:1.55}
 .study-workspace .w-operation .button{font-size:22px;min-height:56px;padding:14px 18px}
 .study-workspace .w-operation .text-button{font-size:17px;min-height:44px;padding:9px 14px}
 .study-workspace .w-run-presets{gap:12px}.study-workspace .w-run-presets button{flex:1 1 200px}
 .study-workspace .w-operation-tools{gap:12px;align-items:stretch}.study-workspace .w-operation-tools>.task-next{width:100%;flex-basis:100%;margin:0;font-size:20px}
 .study-workspace .w-operation-tools>.button{flex:1 1 100%;width:100%}
 .study-workspace .w-visual:has([data-w-trip-graphic]){justify-content:flex-start;gap:12px}
 .study-workspace [data-w-trip-graphic]{flex:1;min-height:320px;display:grid;grid-template-rows:minmax(90px,.23fr) minmax(220px,1fr);gap:8px}
 .study-workspace [data-w-trip-graphic]>svg{width:100%;height:100%;max-height:none}
 .study-workspace .w-trip-readings{flex:none;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0}
 .study-workspace .w-trip-readings>div{padding:18px 14px;display:flex;flex-direction:column;justify-content:center;min-height:112px}
 .study-workspace .w-trip-readings small{font-size:18px;margin-bottom:10px}
 .study-workspace .w-trip-readings strong{font-size:clamp(30px,2.7vw,48px);line-height:1.1;color:#f5edc8;white-space:nowrap}
 .study-workspace .w-trip-readings .w-time-reading{background:#435031;border-color:#d0b878}
 .study-workspace .w-plot-key{font-size:18px;gap:20px}
 .study-workspace .w-visual .w-map-key{font-size:18px}.study-workspace .w-visual .w-map-key .w-map-reading{font-size:18px}
 .study-workspace .w-condition{font-size:19px;line-height:1.6}
 .study-workspace .w-sampling{display:grid;grid-template-columns:1fr;gap:10px}
 .study-workspace .w-sampling button{font-size:19px;min-height:48px;text-align:left}
 .study-workspace .lab-readout{gap:12px;line-height:1.6;font-size:22px}
 .study-workspace .lab-stage .stage-toolbar{order:0}
 .study-workspace .lab-stage .lab-readout{order:1;border-bottom:1px solid var(--line);background:#303b27}
 .study-workspace .lab-stage .lab-graphic{order:2}
 .study-workspace .wave-current-parameters{font-size:18px;line-height:1.5;padding:12px;flex-shrink:0}
 .study-workspace .wave-current-parameters strong{font-size:22px}
 .study-workspace .wave-period-reading{width:100%;font-size:19px;color:#eadbb8}
 .study-workspace .stage-readout strong{font-size:clamp(26px,2vw,36px)}
 .study-workspace .task-panel .coordinate-next{font-size:20px;padding:14px 18px}
 .study-workspace .lab-prompt{font-weight:750}
 .study-workspace .lab-operation .lab-step-content{justify-content:flex-start;gap:16px}
 .study-workspace .lab-operation .task-brief{flex-shrink:0}
 .study-workspace .weekly-question{max-width:1200px;margin:28px auto;padding:32px}
 .study-workspace .weekly-question>.task-brief{font-size:22px}
 .study-workspace .weekly-question .choice{font-size:23px;min-height:68px}
 .study-workspace .weekly-question .button{font-size:24px;min-height:64px}
 .study-workspace .w-operation-tools{display:grid;grid-template-columns:1fr;position:sticky;bottom:-18px;z-index:3;background:#293123;padding:12px 0 0;box-shadow:0 -10px 16px #293123}
 .study-workspace .w-operation-tools .task-next{padding:10px 14px}
 .study-workspace .w-operation-tools .task-requirements{font-size:15px;margin-top:4px}
 .study-workspace .w-operation-tools>.text-button{justify-self:start}
 .study-workspace .w-sample-task{border-top:1px solid var(--line);padding-top:12px;margin-top:12px}
}
@media(min-width:801px) and (max-height:800px){
 .study-workspace .w-trip-readings>div{padding:12px 10px;min-height:86px}
 .study-workspace .w-trip-readings strong{font-size:30px}.study-workspace .w-trip-readings small{font-size:17px;margin-bottom:6px}
 .study-workspace [data-w-trip-graphic]{min-height:290px}
 .study-workspace .task-brief{padding-bottom:10px;margin-bottom:12px}
 .study-workspace .w-operation .task-brief p,.study-workspace .lab-operation .task-brief p{font-size:18px}
 .study-workspace .w-current h3{font-size:24px}.study-workspace .w-operation-tools>.task-next{font-size:18px}
 .study-workspace .lab-operation .lab-step-content{gap:12px}
}

/* One current instruction; conditions belong beside the evidence they constrain. */
@media(min-width:801px){
 .study-workspace .action-status{padding:0;border:0;background:none;color:var(--soft);font-size:17px;line-height:1.5;margin:10px 0}
 .study-workspace .lab-given{order:-1;margin:0;padding:12px 16px;border:1px solid var(--line);border-radius:10px;background:#303b27;font-size:20px;line-height:1.55;color:#f3e8c8;flex-shrink:0}
 .study-workspace .w-visual>.w-condition{margin:0;padding:0 0 12px;border-bottom:1px solid var(--line);font-size:19px;color:#f3e8c8;flex-shrink:0}
 .study-workspace .w-operation-tools{position:static;box-shadow:none;background:none;padding-top:16px;border-top:1px solid var(--line);margin-top:24px}
 .study-workspace .w-current{display:flex;flex-direction:column;gap:16px;justify-content:flex-start}
 .study-workspace .w-current>h3{margin:8px 0 0;font-size:27px;line-height:1.45}
 .study-workspace .w-current>div,.study-workspace .w-current>section{margin-block:0}
 .study-workspace .w-run-presets button{flex:1 1 0}
 .study-workspace .w-sampling{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
 .study-workspace .w-operation .w-sampling button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:12px 8px;text-align:center;font-size:20px;white-space:normal}
 .study-workspace .w-sampling button small{display:block;font-size:16px;line-height:1.5;font-weight:500;margin-top:4px}
 .study-workspace .w-sample-task{padding:16px 0 0;margin:0}
 .study-workspace .w-sample-task .action-status{margin:12px 0 0;font-size:17px}
 .study-workspace .w-playback{flex-shrink:0;font-size:16px;border-top:1px solid var(--line);padding-top:10px}
 .study-workspace .w-playback .w-actions{display:inline-flex;margin:0 0 8px 12px;gap:6px}
 .study-workspace .w-playback label{display:flex;align-items:center;gap:14px}
 .study-workspace .w-playback input{flex:1;min-width:0}
 .study-workspace .w-visual .w-trip-readings .w-trip-phase{display:block;font-size:17px}
 .study-workspace .lab-operation .lab-step-content{flex:0 0 auto;gap:24px;padding-block:20px}
 .study-workspace .lab-operation .lab-support{margin-top:16px;padding-top:16px}
 .study-workspace :is(.lab-operation,.task-panel) .feedback{padding:20px;border-radius:12px}
 .study-workspace :is(.lab-operation,.task-panel) .feedback .check-insight{margin:0;font-size:clamp(24px,2vw,32px);line-height:1.55}
 .study-workspace .task-panel .task-step-content{flex:none;justify-content:flex-start;gap:20px}
 .study-workspace .task-panel .task-advance{margin-top:12px}
 .study-workspace .lab-workflow-actions .text-button{min-height:48px}
 .study-workspace .weekly-question .feedback .check-insight{font-size:26px;line-height:1.5}
}

/* Concise operations sit next to the evidence, without stretching to its height. */
@media(min-width:801px){
 .study-workspace .w-workbench,.study-workspace .lesson-layout{align-items:start;height:auto;min-height:0}
 .study-workspace :is(.w-operation,.lab-operation,.task-panel){align-self:start;height:auto;max-height:calc(100dvh - 200px)}
 .study-workspace .w-current,.study-workspace .lab-step-content,.study-workspace .task-step-content{display:flex;flex-direction:column;flex:none}
 .study-workspace .w-operation-tools{margin-top:18px;padding-top:14px}
 .study-workspace .lab-operation .lab-support{margin-top:16px}
 .study-workspace .w-workbench>.w-visual{height:clamp(440px,calc(100dvh - 232px),720px)}
 .study-workspace .lab-workbench>.lab-stage{height:clamp(440px,calc(100dvh - 190px),760px)}
 .study-workspace .lesson-layout .stage-panel{height:clamp(480px,calc(100dvh - 245px),750px);flex:none}
 .study-workspace .lesson-layout .scene{flex:1;min-height:280px}
 .study-workspace .w-workbench:has([data-w-trip-graphic])>.w-visual{height:auto;gap:10px}
 .study-workspace .w-visual [data-w-trip-graphic]{flex:none;min-height:0;grid-template-columns:minmax(0,1fr);grid-template-rows:90px 290px;justify-content:stretch;gap:0}
 .study-workspace .w-visual [data-w-trip-graphic]>.w-plot{height:290px;max-height:none}
 .study-workspace .w-visual [data-w-trip-graphic]>.w-trip-route{height:90px;max-height:90px}
 .study-workspace .w-trip-readings>div{padding:14px;min-height:100px}
 .study-workspace .lab-workbench .wave-chart{max-height:none}
}
@media(min-width:1200px){
 .study-workspace .w-workbench,.study-workspace .lesson-layout{grid-template-columns:minmax(0,1fr) clamp(440px,32vw,560px);gap:24px}
 .study-workspace :is(.w-operation,.lab-operation,.task-panel){padding:22px}
}
@media(min-width:801px) and (max-height:800px){
 .study-workspace .w-trip-readings>div{padding:10px;min-height:86px}
 .study-workspace .w-visual [data-w-trip-graphic]{grid-template-rows:70px 290px}
 .study-workspace .w-visual [data-w-trip-graphic]>.w-trip-route{height:70px;max-height:70px}
}
.flat-simulation{position:relative;width:100%;height:140px;overflow:hidden}
.flat-simulation canvas{display:block;width:100%;height:100%}
.flat-simulation-pet{position:absolute;top:calc(50% - 31px);width:52px;height:45px;transform:translateX(-50%);pointer-events:none}
.flat-simulation-pet img{width:100%;height:100%;object-fit:contain}
.flat-simulation-labels{position:absolute;inset:0;pointer-events:none;font-size:17px;color:#e4dec8}
.flat-left,.flat-right{position:absolute;bottom:7px}.flat-left{left:10%;transform:translateX(-50%)}.flat-right{right:10%;transform:translateX(50%)}
.flat-start{position:absolute;top:5px;transform:translateX(-20%);font-size:16px;color:#f2d39b}
.w-reading-focus>div:not(.w-time-reading){outline:3px solid #f1d18d;outline-offset:2px;background:#414932}
.w-recorded-readings tbody tr:last-child{animation:record-arrival .35s ease-out}
@keyframes record-arrival{from{background:#647245;transform:translateY(4px)}to{background:transparent;transform:translateY(0)}}
.w-trip-comparison small{display:block;margin-top:8px;color:#f5d49d}
@media (min-width:801px) and (max-height:750px){.week-one .flat-simulation{height:90px}.week-one .w-plot{height:230px}.week-one .w-condition{font-size:16px;margin-bottom:14px}.week-one .w-trip-readings strong{font-size:34px}.week-one .w-current h3{font-size:26px}.week-one .w-recorded-readings{margin-top:14px}.week-one .w-recorded-readings td{font-size:21px}}
@media (prefers-reduced-motion:reduce){.w-recorded-readings tbody tr:last-child{animation:none}}
.global-volume{position:relative;font-size:15px}.global-volume summary{cursor:pointer}.global-volume label{position:absolute;right:0;top:30px;width:210px;padding:14px;background:#303727;border:1px solid #768158;border-radius:12px;z-index:20}.global-volume input{width:100%}
[data-global-audio-status]{font-size:13px;max-width:250px;line-height:1.3;color:#e2d5ae}
.journey-interlude{pointer-events:none;background:transparent!important;align-items:flex-start!important;justify-content:flex-end!important;padding:70px 24px!important}.journey-interlude .dialog{width:280px!important;pointer-events:none;padding:16px!important}.journey-interlude .dialog button,.journey-interlude .dialog svg,.journey-interlude .interlude-pet,.journey-interlude .gate-silhouette,.journey-interlude .dialog p{display:none}.journey-interlude .dialog h2{font-size:20px;margin:0}

@media(min-width:801px){.study-workspace .w-visual [data-w-trip-graphic]:has(>.w-plot:only-child){display:block}.study-workspace .w-visual [data-w-trip-graphic]:has(>.w-plot:only-child)>.w-plot{width:100%;height:290px}.study-workspace .w-workbench:has([data-w-trip-scene])>.w-visual{height:auto}}
@media(min-width:801px) and (max-height:750px){.study-workspace .week-one .flat-simulation{height:90px}.study-workspace .w-visual [data-w-trip-graphic]:has(>.w-plot:only-child)>.w-plot{height:230px}.study-workspace .w-visual>.w-condition{font-size:16px}.study-workspace .w-trip-readings strong{font-size:34px}}

.interaction-guide-entry{font-size:16px;margin:0 0 8px;color:#f0d399}.interaction-demo{max-width:650px}.interaction-demo h2{font-size:30px}.interaction-demo>p{font-size:19px;line-height:1.6}.interaction-demo-track{position:relative;height:100px;margin:26px 0 12px;display:flex;justify-content:space-between;border-bottom:3px solid #8d9b73;padding-top:76px}.interaction-demo-track i{position:absolute;left:0;top:45px;width:26px;height:26px;background:#b1c4f7;border-radius:50%}.interaction-demo-track.is-shown i{animation:guide-one-step .7s ease-out forwards}.interaction-demo-track.repeat.is-shown i{animation:guide-three-steps 1.2s steps(3,end) forwards}.interaction-demo-track.time.is-shown i{animation:guide-two-steps .7s linear forwards}.interaction-demo-track.y i{background:#e2c294}.interaction-demo-track.z i{background:#d5fa74;left:33%;top:70px}.interaction-demo-track.z.is-shown i{animation:guide-height .7s ease-out forwards}.demo-ground{position:absolute;left:33%;top:97px;border-top:3px solid #e2c294;color:#e2c294;font-size:15px}.interaction-demo-readings{display:grid;grid-template-columns:1fr 1fr;gap:16px}.interaction-demo-readings>div{border:1px solid #78845a;border-radius:14px;padding:16px}.interaction-demo-readings small,.interaction-demo-readings strong{display:block}.interaction-demo-readings strong{margin-top:8px;font-size:23px}.interaction-wave-demo{width:100%;height:170px}.interaction-command-demo{display:flex;flex-direction:column;gap:12px;margin:24px 0}.interaction-command-demo span{padding:16px;border:1px solid #78845a;border-radius:12px;font-size:22px}.interaction-command-demo.swapped span:first-child{order:2}.interaction-command-demo.swapped span:last-child{order:1}
@keyframes guide-one-step{to{left:33%}}@keyframes guide-two-steps{to{left:66%}}@keyframes guide-three-steps{to{left:calc(100% - 26px)}}@keyframes guide-height{to{top:10px}}
@media(prefers-reduced-motion:reduce){.interaction-demo-track.is-shown i{animation-duration:1ms}}

@media(min-width:801px){.study-workspace .flat-lab-graphic{display:flex;flex-direction:column}.study-workspace [data-flat-lab]{width:100%;flex:none}.study-workspace .flat-lab-graphic>svg{flex:1;min-height:200px}.study-workspace .wave-more,.study-workspace .wave-advanced{font-size:15px;margin-top:8px}.study-workspace .lab-readout:has(+*){font-size:19px}.study-workspace .lab-readout strong{font-size:25px}.study-workspace .wave-more .wave-peaks{display:flex;font-size:16px}.study-workspace .wave-current-parameters{font-size:16px}.study-workspace .wave-status{font-size:15px}.study-workspace .wave-point-reading{font-size:15px}}

.w-map-canvas{position:relative;min-width:0;width:100%;flex:1;min-height:0;display:flex;align-items:center;justify-content:center}.w-map-canvas>.w-map{width:100%;height:100%;max-height:inherit}.w-map-canvas>[data-w-map-scene]{position:absolute;inset:0;pointer-events:none}.flat-map-simulation{position:absolute;inset:0;height:100%;pointer-events:none}.flat-map-simulation .flat-simulation-pet{transform:translate(-50%,-50%);width:58px;height:50px}.w-map-canvas:has(.flat-map-simulation) :is([data-w-marker],[data-w-trail]){opacity:0}
.ambient-shell{display:none}
.learning-week-progress span{width:auto;min-width:56px;padding-inline:9px;border-radius:12px;font-size:15px}
@media(min-width:801px) and (max-height:650px){
 .study-workspace .w-visual{padding:12px}
 .study-workspace .w-visual>.w-condition{margin:0;font-size:15px;line-height:1.45}
 .study-workspace .w-trip-readings>div{padding:9px;min-height:70px}
 .study-workspace .w-trip-readings small{font-size:15px;margin-bottom:5px}
 .study-workspace .w-trip-readings strong{font-size:30px}
 .study-workspace .w-trip-readings .w-trip-phase{font-size:16px;line-height:1.3}
 .study-workspace .week-one .flat-simulation{height:64px}
 .study-workspace .w-visual [data-w-trip-graphic]:has(>.w-plot:only-child)>.w-plot{height:155px}
 .study-workspace .w-plot-key,.study-workspace .w-playback{font-size:14px;margin:0}
 .study-workspace .w-workbench>.w-visual:has(.w-map-canvas){height:calc(100dvh - 205px)}
 .study-workspace .lab-workbench>.lab-stage{height:calc(100dvh - 195px)}
 .study-workspace .lesson-layout .stage-panel{height:calc(100dvh - 205px)}
 .study-workspace .lesson-layout .scene{min-height:180px}
}

/* Each sound question keeps its two comparison readings beside the live trace. */
.wave-primary-readings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;flex:none;margin:0 0 6px}
.wave-primary-readings>div{min-width:0;padding:10px 12px;border:1px solid #899267;border-radius:12px;background:#35402a}
.wave-primary-readings>div+div{background:#3e412c;border-color:#999268}
.wave-primary-readings span{display:block;font-size:17px;line-height:1.35;color:#ede5c9}
.wave-primary-readings strong{display:flex;flex-wrap:wrap;align-items:baseline;gap:3px 8px;margin-top:4px;font-size:clamp(28px,2.2vw,36px);line-height:1.2;font-variant-numeric:tabular-nums;color:#f4efb4}
.wave-primary-readings strong small{font-size:15px;line-height:1.35;font-weight:400;color:#e6ddbf}
.wave-tools{display:flex;flex-wrap:wrap;gap:0 14px;flex:none;margin-top:4px}
.wave-tools>details{flex:1 1 130px;min-width:0;margin:0}
.wave-tools>details[open]{flex-basis:100%}
.wave-explorer .wave-tools summary{min-height:40px;padding:8px 0;font-size:15px;line-height:1.5}
.wave-explorer .wave-tools>#wave-listening{margin:0;border-bottom:0}
.wave-tools .wave-current-parameters{padding:8px;font-size:16px;line-height:1.5}
.wave-tools .wave-point-reading{margin:8px 0;font-size:15px;line-height:1.5}
@media(min-width:801px){
 .study-workspace .lab-workbench>.lab-stage:has(#wave-mount){height:auto;min-height:0;align-self:start}
 .study-workspace .lab-workbench>.lab-stage:has(#wave-mount)>.stage-toolbar{display:none}
 .study-workspace .lab-workbench .lab-graphic:has(>#wave-mount){display:block;flex:none;min-height:0;padding:8px 12px;overflow:visible}
 .study-workspace .lab-workbench #wave-mount{height:auto;min-height:0}
 .study-workspace .lab-workbench .wave-explorer{height:auto;overflow:visible;padding:0;gap:0}
 .study-workspace .lab-workbench .wave-chart{flex:none;min-height:220px;max-height:none;height:clamp(220px,calc(100dvh - 480px),380px)}
 .study-workspace .wave-explorer .wave-status{min-height:0;margin:2px 0 6px;padding:0;font-size:15px;line-height:1.35}
 .study-workspace .wave-explorer .wave-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0;padding:2px 0}
 .study-workspace .wave-explorer .wave-toolbar button{min-height:42px;font-size:15px}
 .study-workspace .wave-explorer #wave-speed-settings{margin:0}
 .study-workspace .wave-explorer #wave-speed-settings summary{min-height:42px;padding:6px 0;font-size:15px;line-height:1.5}
 .study-workspace .wave-explorer #wave-speed-settings[open]{flex:1 0 100%}
 .study-workspace .wave-explorer .wave-tools>details{margin:0}
}
@media(min-width:801px) and (max-height:650px){
 .study-workspace .lab-workbench .lab-operation{padding:16px}
 .study-workspace .lab-workbench .lab-operation{max-height:calc(100dvh - 160px)}
 .study-workspace .lab-operation .lab-step-content{gap:10px;padding-block:8px}
 .study-workspace .lab-operation .lab-instruction{margin:0;font-size:17px;line-height:1.4}
 .study-workspace .lab-operation .lab-controls{margin:0;gap:8px}
 .study-workspace .lab-operation .lab-control{padding:10px 12px}
 .study-workspace .lab-operation .lab-control input[type=range]{height:56px}
 .study-workspace .lab-operation .lab-workflow-actions{margin:0}
 .study-workspace .lab-operation .lab-workflow-actions :is(.button,.text-button){min-height:48px;padding:10px 14px}
 .study-workspace .lab-operation .lab-support{margin-top:8px;padding-top:8px}
 .study-workspace .lab-operation .lab-primary-controls:has(>.lab-control:nth-child(3))>.lab-control{padding:6px 8px;font-size:17px}
 .study-workspace .lab-operation .lab-primary-controls:has(>.lab-control:nth-child(3)) strong{font-size:24px;min-width:36px;padding:2px 7px}
 .study-workspace .lab-operation .lab-primary-controls:has(>.lab-control:nth-child(3)) input[type=range]{height:48px;margin:3px 0}
 .study-workspace .lab-operation .lab-primary-controls:has(>.lab-control:nth-child(3)) .lab-detent{min-height:20px;margin:0 4px}
 .study-workspace .lab-operation .lab-primary-controls:has(>.lab-control:nth-child(3)) .lab-detent small{padding-top:2px;font-size:13px;line-height:1.3}
 .study-workspace .lab-workbench>.lab-stage:has(.coordinate-3d){height:calc(100dvh - 160px)}
 .study-workspace .lab-workbench>.lab-stage:has(.coordinate-3d)>.lab-given{padding:8px 12px;font-size:15px;line-height:1.4}
 .study-workspace .lab-workbench>.lab-stage:has(.coordinate-3d)>.stage-toolbar{display:none}
 .study-workspace .lab-workbench>.lab-stage:has(.coordinate-3d)>.lab-readout{padding:6px 12px;font-size:18px}
 .study-workspace .lab-workbench .coordinate-view-tools{padding:6px 8px 2px}
 .study-workspace .lab-workbench .coordinate-view-hint,.study-workspace .lab-workbench .coordinate-view-reading{font-size:14px}
 .study-workspace .lab-workbench>.lab-stage:has(#wave-mount)>.lab-given{padding:8px 10px;font-size:15px;line-height:1.4}
 .study-workspace .lab-workbench .wave-chart{height:185px;min-height:185px}
 .study-workspace .wave-primary-readings>div{padding:8px}
 .study-workspace .wave-primary-readings span{font-size:15px}
 .study-workspace .wave-primary-readings strong{font-size:30px}
 .study-workspace .wave-primary-readings strong small{font-size:14px}
 .study-workspace .wave-explorer .wave-status{font-size:14px}
 .study-workspace .wave-explorer .wave-toolbar button,.study-workspace .wave-explorer #wave-speed-settings summary{min-height:40px}
 .study-workspace .wave-explorer .wave-tools{column-gap:8px}
 .study-workspace .wave-explorer .wave-tools summary{min-height:36px;padding:6px 0}
}
@media(max-width:400px){
 .wave-primary-readings{gap:8px}
 .wave-primary-readings>div{padding:8px}
 .wave-primary-readings span{font-size:15px}
 .wave-primary-readings strong{font-size:28px}
 .wave-primary-readings strong small{font-size:14px}
}

/* Question-page clarity: the run result and the cell that stopped the route carry the discovery; replay readings stay secondary. */
.w-map-key .w-map-plan-key{color:#f3e8c8}
.w-map-hit{transform-box:fill-box;transform-origin:center;animation:w-map-hit .45s ease-out 2}
.w-map.is-moving .w-map-hit{opacity:0;animation:none}
@keyframes w-map-hit{0%{transform:scale(.6);opacity:0}60%{transform:scale(1.12);opacity:1}100%{transform:scale(1)}}
.w-run-result{margin:12px 0 0;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:#222b20;font-size:17px;font-weight:600;line-height:1.5}
.w-run-result.is-blocked{color:#ffb3a6;border-color:#a8483c;background:#3a211d}
.w-run-result.is-ok{color:var(--lime);border-color:#7c9440;background:#2b3520}
@media(prefers-reduced-motion:reduce){.w-map-hit{animation:none}}
.study-workspace .w-visual .w-map-canvas>.w-map{flex:1 1 auto;height:100%;min-height:240px;max-height:100%}
/* Question-page reading order and motion: one lit step, quiet secondary tools, results revealed when the companion arrives. */
.w-progress{align-items:center;gap:6px;flex-wrap:wrap}
.w-progress .w-step{display:inline-flex;align-items:center;gap:7px;padding:3px 12px 3px 3px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:13px;transition:background .25s,color .25s,border-color .25s}
.w-progress .w-step b{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#2a3428;font-size:12px;font-weight:700}
.w-progress .w-step.is-done{color:var(--lime);border-color:#5d7330}
.w-progress .w-step.is-done b{background:#3b4d29}
.w-progress .w-step[aria-current=step]{color:#14200f;background:var(--lime);border-color:var(--lime);font-weight:700}
.w-progress .w-step[aria-current=step] b{background:#14200f;color:var(--lime)}
.study-workspace .w-progress .w-step{font-size:14px}
.w-operation.is-entering .w-current{animation:w-rise .32s ease-out both}
@keyframes w-rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.w-run-result.is-pending{visibility:hidden}
.w-run-result.is-new{animation:w-pop .34s cubic-bezier(.2,.9,.3,1.25) both}
.w-run-result.is-new.is-blocked{animation:w-pop .34s cubic-bezier(.2,.9,.3,1.25) both,w-shake .36s .34s ease-in-out}
@keyframes w-pop{from{opacity:0;transform:translateY(6px) scale(.97)}to{opacity:1;transform:none}}
@keyframes w-shake{0%,100%{transform:none}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
.w-map [data-w-trail]{filter:drop-shadow(0 0 4px #d5fa7488)}
.w-map-goal.is-reached{fill:#55722a;filter:drop-shadow(0 0 8px #d5fa74);animation:w-goal 1.1s ease-out 2}
.w-map.is-moving .w-map-goal.is-reached{fill:#3b4d29;filter:none;animation:none}
@keyframes w-goal{0%,100%{stroke-width:1}50%{stroke-width:5}}
.week-one .button{transition:transform .12s,filter .15s}
.week-one .button:hover:not(:disabled){filter:brightness(1.06)}
.week-one .button:active:not(:disabled){transform:scale(.98)}
.week-one .w-choices label{transition:transform .15s,border-color .15s,background .15s}
.week-one .w-choices label:hover{transform:translateY(-1px);border-color:#6f8a3a}
.week-one .w-choices label:has(input:checked){border-color:var(--lime);background:#2f3b24;color:var(--lime)}
@media(min-width:801px){
 .study-workspace .week-one .w-operation-tools{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
 .study-workspace .week-one .w-operation-tools>.button{flex:1 1 100%}
 .study-workspace .week-one .w-operation-tools .text-button{min-height:36px;padding:6px 14px;border-radius:999px;font-size:14px;color:var(--soft)}
 .study-workspace .week-one .w-tabs button{font-size:14px}
 .study-workspace .week-one .w-heading .eyebrow,.study-workspace .week-one .w-heading .saved{font-size:13px}
}
@media(prefers-reduced-motion:reduce){.w-operation.is-entering .w-current,.w-run-result.is-new,.w-map-goal.is-reached{animation:none}.week-one .w-choices label:hover{transform:none}}
/* Choices never break inside a phrase: short sets share a row only when every phrase fits on one line. */
.w-current .w-choices.choice-list--short:not(.choice-list--tight){grid-template-columns:1fr}
.w-current{container:w-current/inline-size}
.w-current .w-choices.choice-list--tight{grid-template-columns:1fr}
@container w-current (min-width:560px){.w-current .w-choices.choice-list--tight{grid-template-columns:repeat(3,minmax(0,1fr))}}
.w-current .w-choices.choice-list--tight label>span{white-space:nowrap}
/* Plain-language terms and the trip story keep the motion prediction readable before any chart exists. */
.w-terms{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:4px 0 14px}
.w-terms>div{display:flex;flex-direction:column;gap:2px;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:#222b20}
.w-terms strong{color:var(--lime);font-size:18px}.w-terms span{color:var(--soft);font-size:16px}
.w-trip-story{display:flex;flex-direction:column;justify-content:center;gap:18px;height:100%;padding:8px 12px}
.w-trip-story h3{margin:0;font-size:24px}
.w-trip-story ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;position:relative}
.w-trip-story li{display:flex;flex-direction:column;gap:6px;padding:18px 16px;border:1px solid var(--line);border-radius:16px;background:#1d261c}
.w-trip-story li b{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--lime);color:#14200f;font-size:17px}
.w-trip-story li strong{font-size:20px}.w-trip-story li span{color:var(--soft);font-size:16px}
.w-story-deadline{margin:0;padding:12px 16px;border-radius:12px;background:#3a3020;border:1px solid #8a6c38;color:#f3d79a;font-size:18px;font-weight:600}
@media(max-width:800px){.w-trip-story ol{grid-template-columns:1fr}.w-terms{grid-template-columns:1fr}}
.study-workspace .w-trip-story .w-trip-route{width:100%;height:auto;max-height:none;margin:0}
.w-current .w-choices.choice-list--tight label,.w-current .w-choices.choice-list--short label{min-height:48px;font-size:19px}
.w-current .w-choices.choice-list--short{gap:8px}
@media(min-width:801px) and (max-height:950px){
 .study-workspace .w-workbench:has([data-w-trip-graphic])>.w-visual{gap:6px}
 .study-workspace .w-visual [data-w-trip-graphic]{grid-template-rows:72px 240px}
 .study-workspace .w-visual [data-w-trip-graphic]>.w-plot{height:240px}
 .study-workspace .w-visual [data-w-trip-graphic]>.w-trip-route{height:72px;max-height:72px}
 .study-workspace .w-trip-readings>div{min-height:0;padding:8px 12px}
}
/* Partner-tinted actions on deeper surfaces: the chosen companion's colour marks what to press next. */
[data-partner]{--accent:#c8f05a;--accent-ink:#14200f;--accent-soft:#c8f05a24;--surface:#161b17;--stage:#111613;--line:#2e372f}
[data-partner=owl]{--accent:#ffc940;--accent-ink:#2a1c00;--accent-soft:#ffc94024}
[data-partner=pangolin]{--accent:#52c6ff;--accent-ink:#03202e;--accent-soft:#52c6ff24}
[data-partner=robot]{--accent:#ab9dff;--accent-ink:#17113d;--accent-soft:#ab9dff26}
[data-partner] .w-operation{background:linear-gradient(145deg,#1d231b,#161b15);border-color:#3a4232;box-shadow:inset 0 1px 0 #ffffff0d,0 10px 24px #0006}
[data-partner] .button{background:var(--accent);color:var(--accent-ink);box-shadow:0 0 0 1px var(--accent),0 6px 18px var(--accent-soft)}
[data-partner] .button:disabled{box-shadow:none}
[data-partner] .w-progress .w-step.is-done{color:var(--accent);border-color:var(--accent-soft)}
[data-partner] .w-progress .w-step.is-done b{background:var(--accent-soft)}
[data-partner] .w-progress .w-step[aria-current=step]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
[data-partner] .w-progress .w-step[aria-current=step] b{background:var(--accent-ink);color:var(--accent)}
[data-partner] .w-choices label:has(input:checked){border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}
[data-partner] .w-choices input{accent-color:var(--accent)}
[data-partner] .w-tabs [aria-current=page]{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}
[data-partner] .w-trip-story li b{background:var(--accent);color:var(--accent-ink)}
[data-partner] .w-terms strong{color:var(--accent)}
/* The repeat program reads as one line of code, so the step action stays in view. */
.w-current .w-program{grid-template-columns:auto auto auto;align-items:center;gap:8px}
.w-current .w-program>label{display:flex;align-items:center;gap:6px;padding:6px 10px;white-space:nowrap}
.w-current .w-program select,.w-current .w-program input{margin:0;width:auto;min-width:0}
.w-current .w-program input{width:58px}
@container w-current (max-width:380px){.w-current .w-program{grid-template-columns:1fr}}
.w-current .w-program{display:flex;flex-wrap:wrap}
@media(min-width:801px){.study-workspace .week-one .w-current>h3{font-size:23px;line-height:1.4;margin:6px 0 12px}}
.w-current .w-choices.choice-list--tight label,.w-current .w-choices.choice-list--short label{min-height:44px;font-size:18px;padding:8px 12px}
/* Weekly score: a coin and a big gold number in the heading; gains roll up and glow. */
.w-heading-side{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.coin{display:inline-block;width:30px;height:30px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff3b0 0 18%,#ffd34d 19% 55%,#e09a12 56% 100%);box-shadow:inset 0 -2px 0 #b8740a,0 0 0 2px #7a4d06;flex:none}
.score-hud{display:flex;align-items:center;gap:10px;padding:6px 16px 6px 8px;border:1px solid #6b5418;border-radius:999px;background:linear-gradient(145deg,#2b2410,#1a160b);transition:box-shadow .3s}
.score-hud-copy{display:flex;flex-direction:column;line-height:1.1}
.score-hud strong{font-size:30px;font-weight:800;color:#ffd34d;font-variant-numeric:tabular-nums;letter-spacing:.01em}
.score-hud small{font-size:13px;color:#d9c48a}
.score-hud.is-gaining{box-shadow:0 0 0 2px #ffd34d,0 0 26px #ffd34d88}
.score-hud.is-gaining .coin{animation:coin-spin .6s ease-out 2}
@keyframes coin-spin{0%{transform:rotateY(0)}100%{transform:rotateY(360deg)}}
.coin-fly{position:fixed;z-index:60;width:22px;height:22px;margin:-11px 0 0 -11px;pointer-events:none;animation:coin-fly .8s cubic-bezier(.4,0,.6,1) both}
@keyframes coin-fly{0%{transform:translate(0,0) scale(.6);opacity:0}15%{opacity:1;transform:translate(0,var(--lift)) scale(1)}100%{transform:translate(var(--dx),var(--dy)) scale(.7);opacity:.9}}
/* The account strip reads at a glance: larger gold points, clear cash. */
.wallet-strip{font-size:15px}
.wallet-strip strong{font-size:24px;color:#ffd34d;font-variant-numeric:tabular-nums}
.study-workspace .wallet-strip{font-size:14px}
.study-workspace .wallet-strip strong{font-size:22px}
@media(prefers-reduced-motion:reduce){.score-hud.is-gaining .coin,.coin-fly{animation:none}}
/* Day level: map or 3D on the left, one question and its coin result on the right. */
.level-host{display:block}
.lv-stage{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(360px,1fr);gap:18px;align-items:stretch}
.lv-visual{display:flex;align-items:center;justify-content:center;padding:14px;background:var(--stage);min-height:420px}
.lv-map{width:100%;height:100%;max-height:min(70dvh,620px)}
.lv-panel{display:flex;flex-direction:column;gap:12px;padding:18px 20px;background:linear-gradient(145deg,#1d231b,#161b15);border-color:#3a4232}
.lv-panel h2{margin:0;font-size:23px;line-height:1.45}
.lv-panel.is-wrong{animation:w-shake .36s ease-in-out}
.lv-progress{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0;padding:0 0 10px;border-bottom:1px solid var(--line)}
.lv-progress li{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;border:1px solid var(--line);color:var(--muted);font-size:12px;font-weight:700}
.lv-progress li.is-current{border-color:var(--accent);color:var(--accent-ink);background:var(--accent)}
.lv-progress li.is-gold{background:radial-gradient(circle at 35% 30%,#fff3b0 0 18%,#ffd34d 19% 60%,#e09a12 61%);border-color:#7a4d06;color:#5a3800}
.lv-progress li.is-silver{background:radial-gradient(circle at 35% 30%,#ffffff 0 18%,#cfd6dc 19% 60%,#8d979f 61%);border-color:#56606a;color:#2e3439}
.lv-progress .lv-progress-boss{width:auto;padding:0 10px;border-radius:999px}
.lv-tag{margin:0;font-size:14px;color:#d9c48a}
.lv-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.lv-option{min-height:56px;padding:10px 14px;border:1px solid var(--line);border-radius:14px;background:#1d261c;color:var(--text);font-size:19px;font-weight:600;cursor:pointer;transition:transform .15s,border-color .15s,background .15s}
.lv-option:hover:not(:disabled){transform:translateY(-2px);border-color:var(--accent);background:var(--accent-soft)}
.lv-submit{width:100%;justify-content:center;margin-top:4px}
.lv-hint{margin:0;padding:10px 14px;border-radius:12px;background:#2b2410;border:1px solid #6b5418;color:#f3d79a;font-size:16px;line-height:1.6}
.lv-hint-button{align-self:flex-start;border-radius:999px;color:var(--soft)}
.lv-wrong{margin:0;padding:10px 14px;border-radius:12px;background:#3a211d;border:1px solid #a8483c;color:#ffb3a6;font-weight:600}
.lv-explain{margin:0;font-size:17px;line-height:1.7;color:var(--soft)}
.lv-reward{display:flex;align-items:center;gap:12px;padding:14px 18px;border-radius:16px;background:linear-gradient(145deg,#3a3012,#211b0a);border:1px solid #8a6c18;animation:w-pop .4s cubic-bezier(.2,.9,.3,1.3) both}
.lv-reward .coin{width:40px;height:40px;animation:coin-spin .7s ease-out}
.lv-reward strong{font-size:38px;color:#ffd34d;font-weight:800}
.lv-reward span{font-size:19px;color:#f3d79a;font-weight:700}
.lv-builder{display:flex;flex-direction:column;gap:8px}
.lv-command{display:flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid var(--line);border-radius:12px;background:#1d261c;font-size:17px}
.lv-command>span:first-child{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#2a3428;font-size:13px}
.lv-command select,.lv-command input{padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:#111613;color:var(--text);font-size:17px}
.lv-command input{width:64px}
.lv-add{align-self:flex-start}
.lv-3d{position:relative;width:100%;height:100%;min-height:420px}
.lv-3d canvas{display:block;width:100%;height:100%;cursor:grab}
.lv-3d-hint{position:absolute;left:12px;top:10px;margin:0;font-size:13px;color:var(--muted);pointer-events:none}
.lv-lift{display:flex;align-items:center;gap:12px;font-size:18px}
.lv-lift input{flex:1;accent-color:var(--accent)}
.lv-lift strong{font-size:30px;color:var(--accent);min-width:1.5em;text-align:center}
.lv-lift-status{margin:0;font-weight:600}.lv-lift-status.is-hit{color:#ffb3a6}.lv-lift-status.is-clear{color:var(--lime)}
.lv-boss-card{display:flex;align-items:center;gap:16px}
.lv-guard{width:96px;height:96px;flex:none;filter:drop-shadow(0 6px 16px #ff8a7a55);animation:lv-guard-idle 2.4s ease-in-out infinite}
.lv-guard.is-hit{animation:lv-guard-hit .5s ease-out}
.lv-guard.is-down{filter:grayscale(1) brightness(.7);animation:none;transform:rotate(-8deg)}
@keyframes lv-guard-idle{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes lv-guard-hit{0%{transform:translateX(0);filter:brightness(2.2)}30%{transform:translateX(-10px) rotate(-6deg)}60%{transform:translateX(8px) rotate(4deg)}100%{transform:none}}
.lv-hp{display:flex;gap:6px;margin-top:6px}
.lv-hp i{display:block;width:44px;height:12px;border-radius:6px;background:#ff6a5a;box-shadow:0 0 8px #ff6a5a88;transition:background .4s,box-shadow .4s}
.lv-hp i.is-lost{background:#3a2a28;box-shadow:none}
.lv-boss-goal{margin:0;font-size:17px;line-height:1.6}
.lv-summary{max-width:560px;margin:24px auto;padding:28px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}
.lv-summary .lv-guard{width:80px;height:80px}
.lv-summary-total{display:flex;align-items:center;gap:10px;margin:0}.lv-summary-total .coin{width:44px;height:44px}.lv-summary-total strong{font-size:52px;color:#ffd34d}
.lv-summary ul{list-style:none;margin:0;padding:0;color:var(--soft);font-size:17px;line-height:1.8}
@media(max-width:900px){.lv-stage{grid-template-columns:1fr}.lv-visual{min-height:320px}}
@media(prefers-reduced-motion:reduce){.lv-guard,.lv-guard.is-hit,.lv-reward,.lv-reward .coin,.lv-panel.is-wrong{animation:none}}
/* Motion prediction: both readings named in their chart colours, each card ending in the unknown to predict. */
.w-current h3 em{font-style:normal;padding:0 4px;border-radius:6px}
.w-term-position,.w-terms-quiz .is-position strong{color:#d5fa74}
.w-term-travelled,.w-terms-quiz .is-travelled strong{color:#ffc184}
.w-current h3 .w-term-position{background:#d5fa7422;box-shadow:inset 0 -2px 0 #d5fa74}
.w-current h3 .w-term-travelled{background:#ffc18422;box-shadow:inset 0 -2px 0 #ffc184}
.w-terms-quiz>div{gap:4px;padding:12px 14px}
.w-terms-quiz .is-position{border-color:#7c9440}
.w-terms-quiz .is-travelled{border-color:#a8774a}
.w-terms-quiz strong{font-size:20px}
.w-terms-quiz dl{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;margin:8px 0 0;font-size:15px;align-items:baseline}
.w-terms-quiz dt{color:var(--muted)}
.w-terms-quiz dd{margin:0;font-weight:700;color:var(--text)}
.w-terms-quiz .w-term-unknown{font-size:26px;line-height:1;color:#ffd34d}
.w-current h3 em{white-space:nowrap}
.w-terms-quiz{margin:0 0 6px}
.w-terms-quiz>div{padding:10px 12px}
.w-terms-quiz dl{margin-top:4px}
.w-current .w-choices{margin:6px 0}
.w-current .w-choices legend{margin-bottom:2px}
.w-current .w-choices.choice-list--tight label,.w-current .w-choices.choice-list--short label{min-height:40px;padding:6px 12px}
/* Week-1 levels 2–5: level tab row, graphs, loop blocks, figures and the Bézier board. */
.w-level-tabs{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:-6px 0 14px}
.w-level-tabs>span{font-size:13px;color:#d9c48a;margin-right:4px}
.w-level-tabs button{font-size:14px;border-radius:999px;border-color:#6b5418;color:#f3d79a}
.w-level-tabs button[aria-current=page]{background:#ffd34d;color:#2a1c00;border-color:#ffd34d}
.lv-plot,.lv-figure,.lv-board{width:100%;height:auto;max-height:min(66dvh,560px)}
.lv-plot.is-mini{max-height:none}
.lv-options.has-visuals{grid-template-columns:repeat(3,minmax(0,1fr))}
.lv-options.has-visuals .lv-option{display:flex;flex-direction:column;gap:6px;padding:8px}
.lv-options.has-curves{grid-template-columns:1fr}
/* Three curve options sit in rows (chart left, letter right) so all three and the question fit one 1440×900 screen. */
.lv-options.has-curves .lv-option{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:18px;padding:8px 12px}
.lv-options.has-curves svg{width:auto;height:170px;max-width:78%;flex:none}
.lv-options.has-curves .lv-option span{font-size:22px;font-weight:800;min-width:3em}
@media(max-width:900px){.lv-options.has-curves .lv-option{flex-direction:column}.lv-options.has-curves svg{width:100%;height:auto;max-width:none}}
.lv-morph-dot{animation:lv-morph 3.2s ease-in-out infinite alternate}
@keyframes lv-morph{from{transform:translate(0,0)}to{transform:translate(var(--dx,0),var(--dy,0))}}
@media(prefers-reduced-motion:reduce){.lv-morph-dot{animation:none!important}}
html[data-reduced="true"] .lv-morph-dot{animation:none!important}
.lv-think{display:flex;flex-direction:column;align-items:center;gap:14px;color:var(--muted);font-size:18px}
.lv-think-pet{width:160px;height:140px}.lv-think-pet>*{width:100%;height:100%}
.lv-program{display:flex;flex-direction:column;gap:8px;align-items:flex-start;font-size:20px}
.lv-block-cmd{display:inline-block;padding:8px 16px;border-radius:10px;background:#2b3d63;border:2px solid #8ab6f0;color:#e8f0ff;font-weight:700}
.lv-block-repeat{display:flex;flex-direction:column;gap:6px;padding:8px 10px 10px;border-radius:12px;background:#3a3012;border:2px solid #ffd34d}
.lv-block-head{font-weight:800;color:#ffd34d}.lv-block-head b{font-size:24px}
.lv-block-body{display:flex;flex-direction:column;gap:6px;padding-left:18px;border-left:4px solid #ffd34d}
.lv-programs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;width:100%}
.lv-programs h4{margin:0 0 8px;font-size:15px;color:var(--soft)}
.lv-programs .lv-program{font-size:14px}.lv-programs .lv-block-cmd{padding:4px 10px}
.lv-loop{display:flex;flex-direction:column;gap:8px;padding:10px;border:2px solid #ffd34d;border-radius:14px;background:#2b2410}
.lv-loop-head{font-size:18px;font-weight:800;color:#ffd34d}.lv-loop-head input{width:64px;padding:6px 8px;border:1px solid #6b5418;border-radius:8px;background:#111613;color:var(--text);font-size:18px}
.lv-bezier{width:100%;display:flex;justify-content:center}
.lv-bezier .lv-board{touch-action:none;cursor:crosshair}
.lv-handle{cursor:grab}.lv-handle:focus-visible circle:last-of-type{stroke:#ffd34d;stroke-width:5}
.lv-ring{transition:stroke .2s,filter .2s}.lv-ring.is-passed{stroke:#d5fa74;filter:drop-shadow(0 0 6px #d5fa74)}
.lv-bz-reading{margin:0;font-size:16px;color:var(--soft)}.lv-bz-reading strong{color:#52c6ff;font-size:20px;font-variant-numeric:tabular-nums}
.lv-bz-status{margin:0;font-weight:700;color:#f3d79a}
.lv-summary-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
@media(max-width:900px){.lv-options.has-visuals,.lv-programs{grid-template-columns:1fr}}
.lv-options.is-three{grid-template-columns:repeat(3,minmax(0,1fr))}
.lv-boss-stage{display:flex;flex-direction:column;align-items:center;gap:10px}.lv-boss-stage .lv-guard{width:240px;height:240px}.lv-boss-stage p{margin:0;font-size:22px;font-weight:800;color:#ffb3a6}
/* Word-problem scenes fill the stage; the unknown glows; vehicles drive, never block reading. */
.lv-visual>.lv-figure,.lv-visual>.lv-plot,.lv-visual>.lv-board{width:100%;height:100%;max-height:min(68dvh,600px)}
.lv-scene .lv-unknown,.lv-figure .lv-unknown{fill:#ffd34d;font-weight:900;animation:lv-unknown 1.6s ease-in-out infinite}
@keyframes lv-unknown{0%,100%{opacity:1}50%{opacity:.45}}
.lv-drive{animation:lv-drive 4.5s ease-in-out infinite alternate}
@keyframes lv-drive{from{transform:translateX(0)}to{transform:translateX(var(--run))}}
.lv-slide{animation:lv-slide .9s cubic-bezier(.2,.9,.3,1) both;transform-box:fill-box}
@keyframes lv-slide{from{transform:translateX(40px);opacity:0}to{transform:none;opacity:1}}
.lv-visual .lv-program{font-size:24px;transform-origin:center}
.lv-visual .lv-block-cmd{padding:12px 22px}
@media(prefers-reduced-motion:reduce){.lv-drive,.lv-slide,.lv-scene .lv-unknown,.lv-figure .lv-unknown{animation:none}}
.lv-scene tspan.lv-unknown{font-size:1.45em}
.lv-visual .lv-map{width:100%;height:auto;max-height:min(64dvh,580px)}
.lv-map-program{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;width:100%}
.lv-map-program aside{padding:14px;border-radius:14px;background:#111613;border:1px solid #2e372f}
.lv-map-program .lv-program{font-size:16px}.lv-map-program .lv-block-cmd{padding:6px 12px}
@media(max-width:1100px){.lv-map-program{grid-template-columns:1fr}}
.lv-visual .lv-map,.lv-visual>.lv-figure,.lv-visual>.lv-plot,.lv-visual>.lv-board,.lv-bezier .lv-board{max-height:min(58dvh,540px)}
.lv-programs .lv-program{flex-direction:row;flex-wrap:wrap;align-items:flex-start}.lv-programs .lv-block-repeat .lv-block-body{flex-direction:column}.lv-programs>div{padding:12px;border:1px solid #2e372f;border-radius:14px;background:#111613}
.lv-visual .lv-programs .lv-program{font-size:13px;gap:5px}.lv-visual .lv-programs .lv-block-cmd{padding:4px 8px;border-width:1px}.lv-visual .lv-programs .lv-block-head b{font-size:16px}
.lv-visual .lv-programs .lv-program{font-size:15px}.lv-visual .lv-programs .lv-block-cmd{padding:6px 10px}
.lv-handle{outline:none}.lv-handle:focus-visible circle:first-of-type{fill:#52c6ff55}
/* Weekend boss: the child chooses between two equal cards (keep or risk), then fights with five HP pips and three hearts. */
.lv-final{max-width:760px;margin:20px auto;padding:24px 26px;display:flex;flex-direction:column;gap:16px}
.lv-final-head{display:flex;align-items:center;gap:18px}.lv-final-head .lv-guard{width:112px;height:112px}
.lv-final-head h2{margin:2px 0 6px;font-size:28px}.lv-final-head p{margin:0;color:var(--soft);line-height:1.6}
.lv-final-strikes{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;list-style:none;margin:0;padding:0}
.lv-final-strikes li{display:flex;flex-direction:column;gap:4px;padding:10px;border:1px solid var(--line);border-radius:12px;background:#1a2019;font-size:14px;color:var(--soft);line-height:1.4}
.lv-final-strikes b{color:#d9c48a;font-size:13px}
.lv-final-ask{margin:0;font-size:19px;font-weight:700}
.lv-final-picks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.lv-final-pick{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:18px 20px;border-radius:16px;border:2px solid var(--line);background:#1d261c;color:var(--text);text-align:left;cursor:pointer;transition:transform .15s,border-color .15s}
.lv-final-pick:hover{transform:translateY(-2px)}
.lv-final-pick span{font-size:15px;color:var(--soft);font-weight:700}
.lv-final-pick strong{font-size:26px;font-weight:800}
.lv-final-pick small{font-size:15px;color:var(--soft)}
.lv-final-pick.is-keep{border-color:#5d7a3a}.lv-final-pick.is-keep strong{color:#d5fa74}
.lv-final-pick.is-risk{border-color:#8a6c18}.lv-final-pick.is-risk strong{color:#ffd34d}
.lv-final-confirm{padding:16px 18px;border-radius:14px;background:#2b2410;border:1px solid #8a6c18}
.lv-final-confirm p{margin:0 0 12px;font-size:18px;line-height:1.7;text-align:center}.lv-final-confirm strong{color:#ffd34d}
.lv-final-rules{margin:0;padding-left:20px;color:var(--soft);font-size:15px;line-height:1.8}
.lv-lives{display:flex;gap:4px;margin-top:6px;font-size:22px;line-height:1}
.lv-lives i{font-style:normal;color:#ff6a8a;text-shadow:0 0 8px #ff6a8a88;transition:color .4s}.lv-lives i.is-lost{color:#3a2a2e;text-shadow:none}
.lv-option.is-ruled-out{opacity:.4;text-decoration:line-through;cursor:not-allowed}
.lv-final-result.is-won .lv-summary-total strong{text-shadow:0 0 18px #ffd34d88}
.lv-final-result.is-lost .lv-summary-total strong{color:var(--soft)}
@media(max-width:700px){.lv-final{padding:18px 16px}.lv-final-strikes{grid-template-columns:repeat(2,minmax(0,1fr))}.lv-final-picks{grid-template-columns:1fr}.lv-final-head .lv-guard{width:80px;height:80px}}
/* Hints and records panel: chips instead of paragraphs. Green = reached, warm red = blocked. */
.w-ref-guess{margin:4px 0 0;font-size:17px}.w-ref-guess strong{color:#d5fa74}
.w-ref-block{display:flex;flex-direction:column;gap:10px;margin-top:16px}.w-ref-block h3{margin:0;font-size:17px}
.w-hint-chips{display:flex;gap:8px;flex-wrap:wrap}.w-hint-chips .text-button{border-radius:999px;padding:6px 16px}
.w-hint-chips [aria-pressed="true"]{border-color:#8a6c18;color:#f3d79a;background:#2b2410}
.w-hint-lines{margin:0;padding-left:22px;font-size:16px;line-height:1.7;color:#f3d79a}
.w-hint-trap{margin:0;font-size:15px;color:var(--soft)}
.w-run-chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.w-run-chips li{display:flex;align-items:center;gap:8px;padding:6px 14px 6px 6px;border:1px solid var(--line);border-radius:999px;font-size:15px;background:#1a2019}
.w-run-chips b{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#2e372f;font-size:13px}
.w-run-chips li.is-ok{border-color:#5d7a3a;color:#d5fa74}.w-run-chips li.is-ok b{background:#3b4d29}
.w-run-chips li.is-fail{border-color:#8a3c32;color:#ffb3a6}.w-run-chips li.is-fail b{background:#4a2420}
/* Partner voice: a small face and one short line; frog combos bounce, the pangolin rolls instead of the red shake. */
.lv-say{display:flex;align-items:center;gap:10px;margin:0;padding:8px 12px;border-radius:14px;background:#1a2019;border:1px solid var(--line)}
.lv-say p{margin:0;font-size:17px;font-weight:700}
.lv-say-face{flex:none;width:40px;height:34px;display:grid;place-items:center}.lv-say-face>*{max-width:100%;max-height:100%}
.lv-say.lv-wrong{background:#2b2116;border-color:#8a5c32;color:#ffd2a8}
.lv-say.is-combo{border-color:#8a6c18;background:#2b2410;color:#ffd34d}.lv-say.is-combo .lv-say-face{animation:lv-hop .5s ease-out 2}
.lv-say.is-rolling .lv-say-face{animation:lv-roll .8s ease-in-out}
@keyframes lv-hop{0%,100%{transform:none}40%{transform:translateY(-12px) scale(1.08)}}
@keyframes lv-roll{from{transform:rotate(0)}to{transform:rotate(360deg)}}
.lv-glow{background:none;color:#ffd34d;text-shadow:0 0 10px #ffd34d99;font-weight:800}
.lv-compass{margin:0;font-size:15px;color:#9fd7ff}
.lv-aux{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center}
.lv-skip-button{border-radius:999px;color:var(--muted);font-size:14px}
.lv-skip-ask{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;border-radius:12px;border:1px solid #6b5418;background:#2b2410}.lv-skip-ask p{margin:0;flex-basis:100%;color:#f3d79a}
.lv-bonus{display:flex;align-items:center;justify-content:center;gap:6px;color:#ffd34d}.lv-bonus>svg,.lv-bonus>span{width:28px;height:24px}
.lv-bonus.is-missed{color:var(--muted);font-size:15px}
.lv-stamp{display:inline-flex;flex-direction:column;align-items:center;gap:2px;padding:10px 14px;border:3px double #c9504a;border-radius:50%;color:#ffb3a6;transform:rotate(-8deg);animation:w-pop .5s ease-out both}.lv-stamp>*:first-child{width:44px;height:38px}
@media(prefers-reduced-motion:reduce){.lv-say .lv-say-face,.lv-stamp{animation:none}}
/* Finished pages restate the question in one quiet line before the result. */
.w-recap{display:flex;gap:10px;align-items:flex-start;margin:4px 0 10px;padding:10px 14px;border-radius:12px;background:#ffffff08;border:1px solid #ffffff14;font-size:15px;line-height:1.6;color:#d7dfd0}
.w-recap-tag{flex:none;padding:1px 8px;border-radius:999px;background:#d5fa7422;color:#d5fa74;font-size:12px;font-weight:700;letter-spacing:.08em;line-height:1.7}
.w-plot-key .w-key-ideal{color:#9fe6ff}.w-plot-key .w-key-deadline{color:#ffb59a}
/* Trip lessons: both panels share one height, and the chart grows with its width instead of being capped. */
.w-workbench:has([data-w-trip-graphic]){align-items:stretch}
.w-workbench:has([data-w-trip-graphic])>.w-visual{height:auto;justify-content:center}
.w-workbench:has([data-w-trip-graphic]) .w-plot{height:auto;max-height:none;flex:none}

/* 2026-10-13 · One line through the week: a progress strip (本周 · 第1–5天 · 周末大 Boss) and six equal day cards. */
.w-day-strip{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 16px}
.w-day-strip button{flex:1 1 0;min-width:0;white-space:normal;line-height:1.3;font-size:13.5px;border-radius:16px;padding:7px 9px;text-align:center}
.w-day-strip button:first-child{flex:0 0 auto}
.w-day-strip button[data-state=done]{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}
.w-day-strip button[data-state=now]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}
.w-day-strip button[aria-current=page]{background:var(--accent);color:#11160a;border-color:var(--accent)}
.w-day-strip button:disabled{opacity:.45}
.w-day-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:14px}
.w-day-card{display:flex;flex-direction:column;gap:10px;padding:18px 20px;border:1px solid var(--line,#ffffff1f);border-radius:18px;background:var(--panel,#1c2420);min-height:220px}
.w-day-card[data-state=now]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset,0 10px 30px #0006}
.w-day-card[data-state=done]{border-color:color-mix(in srgb,var(--accent) 35%,transparent)}
.w-day-card[data-state=locked]{opacity:.55}
.w-day-card .w-day-no{margin:0;font-size:13px;letter-spacing:.12em;color:var(--accent)}
.w-day-card h3{margin:0;font-size:20px}
.w-day-card ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.w-day-card li{font-size:13px;padding:3px 10px;border-radius:999px;background:#ffffff0d;color:#b9c5b9}
.w-day-card li.done{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}
.w-day-card .w-day-points{margin:auto 0 0;display:flex;align-items:center;gap:8px;font-size:15px;color:#ffd34d;min-height:24px}
.w-day-card .w-day-points .coin{width:22px;height:22px}
.w-day-card .w-day-points strong{font-size:22px}
.w-day-card .button,.w-day-card button{align-self:flex-start}
.w-day-card .w-day-lock{margin:0;font-size:13px;color:#8fa397}
.w-day-final h3{color:#ffd34d}
@media (max-width:980px){.w-day-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.w-day-strip button{flex:0 0 auto}}
@media (max-width:600px){.w-day-grid{grid-template-columns:1fr}.w-day-card{min-height:0}}

/* 2026-10-13 · A partner portrait in the level pages always fills its own small box. Without this the cheer face is a grid
   track that grows to the SVG's natural 270px, so the partner spilled over the question after an answer. */
.level-host .point-avatar{display:block;width:100%;height:100%;min-width:0}
.level-host .point-portrait{display:block;width:100%;height:100%}
.level-host .lv-say-face{display:block;overflow:hidden}

/* Boss moods and trash talk. The face changes with the fight: idle smirks and blinks, taunt laughs, hurt winces, rage shakes, down greys out. */
.lv-boss-card{flex-wrap:wrap;row-gap:8px}
.lv-boss-say{order:3;flex-basis:100%;position:relative;margin:2px 0 0;padding:9px 14px;background:#2a1712;border:2px solid #ff8a7a;border-radius:14px;color:#ffe1d8;font-weight:700;line-height:1.5;animation:lv-say-pop .35s ease-out}
.lv-boss-say::before{content:"";position:absolute;left:34px;top:-9px;width:14px;height:14px;background:#2a1712;border-left:2px solid #ff8a7a;border-top:2px solid #ff8a7a;transform:rotate(45deg)}
.lv-boss-say.is-hit,.lv-boss-say.is-down{border-color:#d5fa74;background:#1c2612;color:#e9ffc4}.lv-boss-say.is-hit::before,.lv-boss-say.is-down::before{border-color:#d5fa74;background:#1c2612}
.lv-boss-say.is-wrong{border-color:#ffd34d;background:#2e2410;color:#fff0c2}.lv-boss-say.is-wrong::before{border-color:#ffd34d;background:#2e2410}
@keyframes lv-say-pop{0%{transform:scale(.92);opacity:0}100%{transform:none;opacity:1}}
.lv-guard .lv-eye,.lv-guard .lv-brow-up,.lv-guard .lv-laugh,.lv-guard .lv-sweat,.lv-guard .lv-clock-hands{transform-box:fill-box;transform-origin:center}
.lv-guard.is-idle .lv-eye{animation:lv-blink 3.8s infinite}
.lv-guard.is-idle .lv-brow-up{animation:lv-brow 5.2s infinite}
.lv-guard.is-idle .lv-clock-hands{transform-origin:50% 100%;animation:lv-tick 6s steps(12) infinite}
.lv-guard.is-smirk{animation:lv-smirk .9s ease-in-out}
.lv-guard.is-taunt{animation:lv-laugh-bob .32s ease-in-out 5}
.lv-guard.is-taunt .lv-laugh{animation:lv-laugh-mouth .32s ease-in-out 5}
.lv-guard.is-rage{animation:lv-rage .22s linear infinite;filter:drop-shadow(0 0 14px #ff5a4a99)}
.lv-guard.is-rage .lv-sweat{animation:lv-sweat 1.4s ease-in infinite}
@keyframes lv-blink{0%,92%,100%{transform:scaleY(1)}95%{transform:scaleY(.1)}}
@keyframes lv-brow{0%,70%,100%{transform:translateY(0)}76%,88%{transform:translateY(-4px) rotate(-8deg)}}
@keyframes lv-tick{to{transform:rotate(360deg)}}
@keyframes lv-smirk{0%,100%{transform:none}30%{transform:rotate(-6deg) scale(1.04)}60%{transform:rotate(4deg)}}
@keyframes lv-laugh-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px) rotate(3deg)}}
@keyframes lv-laugh-mouth{0%,100%{transform:scaleY(1)}50%{transform:scaleY(.7)}}
@keyframes lv-rage{0%,100%{transform:translateX(0)}25%{transform:translateX(-2px)}75%{transform:translateX(2px)}}
@keyframes lv-sweat{0%{transform:translateY(0);opacity:1}100%{transform:translateY(12px);opacity:0}}
.lv-boss-stage-tag{margin:0;font-size:13px;font-weight:800;letter-spacing:.04em;color:#ffb3a6}
.lv-mark.is-closed rect{animation:lv-mark-blink 1s ease-in-out infinite}
@keyframes lv-mark-blink{50%{opacity:.25}}
/* Sky leg: the 3D valley with a clock under it. */
.lv-sky .lv-visual{flex-direction:column;align-items:stretch;gap:10px}
.lv-sky-3d{flex:1;min-height:440px;border-radius:12px;overflow:hidden;background:#101712}
.lv-sky-3d canvas{display:block;width:100%;height:100%;min-height:440px;cursor:grab}
.lv-sky-time{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;font-size:14px;color:var(--muted)}
.lv-sky-time label{display:flex;align-items:center;gap:8px;flex:1;min-width:220px}.lv-sky-time input{flex:1}
.lv-sky-time strong{color:#ffd34d;min-width:2ch;display:inline-block;text-align:right}
.lv-sky-time [data-sky-heights]{color:#f3e8c8;font-weight:700}
.lv-sky-rules{margin:0;padding-left:18px;display:grid;gap:4px;font-size:14px;line-height:1.55;color:#dfe6da}
.lv-sky-sum{margin:0;font-size:14px;color:var(--muted)}.lv-sky-sum strong{color:#ffd34d}
@media(prefers-reduced-motion:reduce){.lv-guard .lv-eye,.lv-guard .lv-brow-up,.lv-guard .lv-clock-hands,.lv-guard.is-smirk,.lv-guard.is-taunt,.lv-guard.is-taunt .lv-laugh,.lv-guard.is-rage,.lv-guard .lv-sweat,.lv-mark.is-closed rect,.lv-boss-say{animation:none}}

/* Boss alarm: red beacons sweep, the frame pulses red, warning tape scrolls. Reduced motion keeps a steady red glow. */
.lv-alarm{position:relative;overflow:hidden;display:grid;gap:18px;padding:0 28px 26px;border-radius:18px;background:radial-gradient(ellipse at 50% 0%,#4a0f0c 0%,#1a0b0a 55%,#0f0807 100%);border:2px solid #ff4a3d;box-shadow:0 0 0 1px #ff4a3d55,0 0 40px #ff2a1a55,inset 0 0 60px #ff2a1a33;animation:lv-alarm-frame 1.1s ease-in-out infinite;color:#ffe9e4}
.lv-alarm-lights{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.lv-alarm-lights i{position:absolute;top:-60%;width:120%;height:220%;left:-10%;background:conic-gradient(from 0deg,transparent 0deg,#ff2a1a40 18deg,transparent 40deg,transparent 180deg,#ff2a1a30 198deg,transparent 220deg);animation:lv-beacon 2.2s linear infinite;mix-blend-mode:screen}
.lv-alarm-lights i+i{animation-duration:3.1s;animation-direction:reverse;opacity:.7}
.lv-alarm>*:not(.lv-alarm-lights){position:relative}
.lv-alarm-tape{margin:0 -28px;padding:8px 0;white-space:nowrap;overflow:hidden;font-weight:900;letter-spacing:.12em;color:#1a1200;background:repeating-linear-gradient(-45deg,#ffd34d 0 18px,#1a1200 18px 36px);text-shadow:none}
.lv-alarm-tape{background-size:200% 100%;animation:lv-tape 1.6s linear infinite;color:transparent;height:30px}
.lv-alarm-body{display:flex;align-items:center;gap:22px}
.lv-alarm-body .lv-guard{width:132px;height:132px;flex:none;filter:drop-shadow(0 0 22px #ff4a3daa)}
.lv-alarm-kicker{margin:0 0 4px;font-size:15px;font-weight:900;letter-spacing:.2em;color:#ff6a5a;animation:lv-alarm-blink .55s steps(2) infinite}
.lv-alarm h2{margin:0;font-size:clamp(24px,3vw,34px);color:#fff}
.lv-alarm-say{margin:8px 0 0;font-size:17px;font-weight:700;color:#ffd2c8}
.lv-alarm-rules{padding:16px 20px;border-radius:14px;background:#2a0e0bcc;border:2px solid #ffd34d}
.lv-alarm-rules h3{margin:0 0 10px;font-size:19px;color:#ffd34d}
.lv-alarm-rules ul{margin:0;padding-left:20px;display:grid;gap:7px;font-size:16px;line-height:1.55}
.lv-alarm-rules strong{color:#ff8a7a}
.lv-alarm-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px}
.lv-alarm .button.lv-alarm-go{background:#ff4a3d;color:#fff;border-color:#ff4a3d;font-size:18px;padding:14px 26px;box-shadow:0 0 24px #ff4a3d88}
.lv-alarm .button.lv-alarm-go:hover{background:#ff6a5a}
@keyframes lv-alarm-frame{0%,100%{box-shadow:0 0 0 1px #ff4a3d55,0 0 30px #ff2a1a44,inset 0 0 50px #ff2a1a22}50%{box-shadow:0 0 0 2px #ff4a3d,0 0 70px #ff2a1aaa,inset 0 0 90px #ff2a1a66}}
@keyframes lv-beacon{to{transform:rotate(360deg)}}
@keyframes lv-tape{to{background-position:72px 0}}
@keyframes lv-alarm-blink{50%{opacity:.25}}
/* During the fight the boss stage keeps a slow red pulse at its edge. */
.lv-boss .lv-visual{animation:lv-boss-glow 2.8s ease-in-out infinite}
@keyframes lv-boss-glow{0%,100%{box-shadow:inset 0 0 0 1px #ff4a3d22}50%{box-shadow:inset 0 0 40px #ff2a1a33,inset 0 0 0 1px #ff4a3d66}}
@media(max-width:700px){.lv-alarm{padding:0 16px 20px}.lv-alarm-tape{margin:0 -16px}.lv-alarm-body{flex-direction:column;text-align:center}.lv-alarm-body .lv-guard{width:104px;height:104px}}
@media(prefers-reduced-motion:reduce){.lv-alarm,.lv-alarm-lights i,.lv-alarm-tape,.lv-alarm-kicker,.lv-boss .lv-visual{animation:none}.lv-alarm-lights{display:none}}
/* Three-view switch for the sky leg: top / front / 3D. */
.lv-sky-views{display:inline-flex;gap:2px;padding:3px;border-radius:999px;background:#0f1612;border:1px solid #2e372f}
.lv-sky-views .text-button{padding:5px 12px;border-radius:999px}
.lv-sky-views .text-button.is-active{background:#d5fa74;color:#14200f;font-weight:800}

/* Day-2 figures: small living details that explain the motion — wheels turn, rotors spin, the road flows, the two
   vehicles close in, the graph line draws itself. All of it stops under reduced motion. */
.lv-scene .lv-wheel,.lv-scene .lv-rotor,.lv-scene .lv-hover,.lv-scene .lv-spark,.lv-scene .lv-bob,.lv-scene .lv-clock-hand,.lv-scene .lv-flag,.lv-scene .lv-blink,.lv-plot-ask{transform-box:fill-box;transform-origin:center}
.lv-scene .lv-wheel{animation:lv-wheel .9s linear infinite}
.lv-scene .lv-rotor{animation:lv-rotor .18s linear infinite}
.lv-scene .lv-hover{animation:lv-hover 1.8s ease-in-out infinite}
.lv-scene .lv-road-dash{animation:lv-road 1.2s linear infinite}
.lv-scene .lv-blink{animation:lv-blink-light 1.4s steps(2) infinite}
.lv-scene .lv-approach,.lv-scene .lv-chase{animation:lv-drive 2.6s ease-in-out infinite alternate}
.lv-scene .lv-spark{animation:lv-spark 1.6s ease-in-out infinite}
.lv-scene .lv-bob{animation:lv-hover 2.2s ease-in-out infinite}
.lv-scene .lv-clock-hand{transform-origin:50% 100%;animation:lv-wheel 6s linear infinite}
.lv-scene .lv-flag{transform-origin:0 50%;animation:lv-flag 1.2s ease-in-out infinite}
.lv-plot-line{stroke-dasharray:1;stroke-dashoffset:0;animation:lv-draw 1.4s cubic-bezier(.4,0,.2,1) both}
.lv-plot-area{animation:lv-fade-in 1.4s .6s both}
.lv-plot-ask{animation:lv-spark 1.8s ease-in-out infinite}
@keyframes lv-wheel{to{transform:rotate(360deg)}}
@keyframes lv-rotor{0%,100%{transform:scaleX(1)}50%{transform:scaleX(.25)}}
@keyframes lv-hover{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes lv-road{to{stroke-dashoffset:-30}}
@keyframes lv-blink-light{50%{opacity:.2}}
@keyframes lv-spark{0%,100%{transform:scale(1)}50%{transform:scale(1.18)}}
@keyframes lv-flag{0%,100%{transform:skewY(0)}50%{transform:skewY(-8deg)}}
@keyframes lv-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes lv-fade-in{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.lv-scene .lv-wheel,.lv-scene .lv-rotor,.lv-scene .lv-hover,.lv-scene .lv-road-dash,.lv-scene .lv-blink,.lv-scene .lv-approach,.lv-scene .lv-chase,.lv-scene .lv-spark,.lv-scene .lv-bob,.lv-scene .lv-clock-hand,.lv-scene .lv-flag,.lv-plot-line,.lv-plot-area,.lv-plot-ask{animation:none}}

/* Program blocks: an arrow for the direction; across moves blue, up-and-down moves green; the repeat block shows a loop icon. */
.lv-block-cmd{display:inline-flex;align-items:center;gap:8px;box-shadow:0 3px 0 #0a1424}
.lv-block-cmd i{font-style:normal;font-weight:900;font-size:1.15em;line-height:1}
.lv-block-cmd[data-axis="y"]{background:#1f3d2a;border-color:#7fdc9a;color:#e6ffe9;box-shadow:0 3px 0 #0b1f12}
.lv-block-repeat{box-shadow:0 3px 0 #2a1f00}
.lv-block-head{display:flex;align-items:center;gap:6px}.lv-block-head i{font-style:normal}
.lv-block-head b{display:inline-grid;place-items:center;min-width:1.6em;padding:0 .3em;border-radius:999px;background:#ffd34d;color:#2a1c00;line-height:1.5}
.lv-map-program.is-programs{grid-template-columns:1fr;justify-items:center}.lv-map-program.is-programs>.lv-map{max-width:360px;max-height:none}.lv-map-program.is-programs>aside{width:100%}
.lv-programs .lv-block-cmd,.lv-programs .lv-block-head{white-space:nowrap}.lv-programs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}

/* ---------- Partner on the level pages (partner-stage.mjs) ----------
   The dock floats over the page and glides between anchors; loops run on .pa-body, one-shot moves on .pa-motion. */
.pa-host{position:relative}
.pa-dock{position:absolute;z-index:6;pointer-events:none;transition:left .7s cubic-bezier(.3,.8,.3,1),top .7s cubic-bezier(.3,.8,.3,1),width .5s,height .5s}
.pa{position:relative;width:100%;height:100%}
.pa-hit{position:absolute;inset:0;z-index:2;background:none;border:0;padding:0;cursor:pointer;pointer-events:auto;border-radius:50%}
.pa-shadow{position:absolute;left:18%;right:18%;bottom:-2%;height:10%;border-radius:50%;background:radial-gradient(#000a,#0000 70%);animation:pa-shadow 2.8s ease-in-out infinite}
.pa-motion,.pa-body{position:absolute;inset:0;transform-origin:50% 92%}
.pa-view{position:absolute;inset:0;display:none}.pa-view svg{width:100%;height:100%}
.pa[data-view="left"] .pa-view[data-v="left"],.pa[data-view="front"] .pa-view[data-v="front"],.pa[data-view="right"] .pa-view[data-v="right"]{display:block}
.pa[data-pose="idle"] .pa-body{animation:pa-breathe 2.8s ease-in-out infinite}
.pa[data-pose="ready"] .pa-body{animation:pa-ready .9s ease-in-out infinite}
.pa[data-pose="bored"] .pa-body{animation:pa-bored 3.6s ease-in-out infinite}
.pa[data-pose="sleep"] .pa-body{animation:pa-sleep 3.2s ease-in-out infinite;filter:saturate(.75) brightness(.9)}
.pa.is-glow .pa-body{animation:pa-glow 1.6s ease-in-out 2}
@keyframes pa-breathe{0%,100%{transform:scale(1,1)}50%{transform:scale(1.02,1.035) translateY(-1px)}}
@keyframes pa-ready{0%,100%{transform:translateY(0) scale(1.02,.98)}50%{transform:translateY(-5px) scale(.99,1.02)}}
@keyframes pa-bored{0%,100%{transform:translateY(5%) scale(1.04,.92) rotate(-3deg)}50%{transform:translateY(5%) scale(1.04,.93) rotate(3deg)}}
@keyframes pa-sleep{0%,100%{transform:translateY(7%) scale(1.06,.9) rotate(-6deg)}50%{transform:translateY(7%) scale(1.08,.88) rotate(-6deg)}}
@keyframes pa-glow{0%,100%{filter:drop-shadow(0 0 0 transparent)}50%{filter:drop-shadow(0 0 18px var(--pa-color)) brightness(1.2)}}
@keyframes pa-shadow{0%,100%{transform:scaleX(1)}50%{transform:scaleX(.92)}}
.pa-bubble{position:absolute;bottom:92%;right:40%;z-index:3;max-width:240px;width:max-content;padding:8px 12px;border-radius:14px 14px 4px 14px;background:#141c16;border:2px solid var(--pa-color,#d5fa74);color:#f3f7ee;font-size:14px;font-weight:700;line-height:1.45;box-shadow:0 6px 18px #0008;opacity:0;transform:translateY(6px) scale(.9);transform-origin:100% 100%;transition:opacity .25s,transform .25s;pointer-events:none}
.pa-dock[data-bubble="right"] .pa-bubble{right:auto;left:40%;border-radius:14px 14px 14px 4px;transform-origin:0 100%}
.pa-bubble.is-on{opacity:1;transform:none}
.pa-fx{position:absolute;inset:0;pointer-events:none;z-index:7;overflow:visible}
.pa-bit{position:absolute;width:8px;height:12px;border-radius:2px}
.pa-float,.pa-zzz,.pa-shot,.pa-damage{position:absolute;font-size:22px;line-height:1}
.pa-zzz{font-weight:900;color:#cdd7ff;font-size:18px}
.pa-damage{font-size:26px;font-weight:900;color:#ff6a5a;text-shadow:0 2px 0 #2a0f0c,0 0 10px #ff6a5a}
.pa-orb{position:absolute;width:22px;height:22px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#ffd0c8,#ff5a4a 45%,#7a1d12);box-shadow:0 0 16px #ff5a4a}
.pa-tongue,.pa-laser{position:absolute;height:10px;margin-top:-5px;transform-origin:0 50%;border-radius:6px}
.pa-tongue{background:linear-gradient(90deg,#ff7aa8,#ff9cc0);box-shadow:0 0 0 2px #7a1d3a inset}
.pa-laser{height:8px;background:linear-gradient(90deg,#e9e2ff,#b69cff);box-shadow:0 0 14px #b69cff,0 0 4px #fff}
.pa-medal{position:absolute;padding:8px 14px;border-radius:999px;background:#141c16;border:2px solid var(--pa-color,#d5fa74);color:#f3f7ee;font-weight:800;white-space:nowrap;box-shadow:0 0 22px #0008}
.pa-medal b{color:var(--pa-color,#d5fa74);margin-right:6px}.pa-medal small{color:#c4cdbd;font-weight:700}
/* Anchors the page draws for the partner to stand on. */
.lv-panel{position:relative}
.lv-partner-corner{position:absolute;top:6px;right:10px;width:88px;height:88px}
.lv-panel .lv-progress{padding-right:96px}
.lv-skill-chip{display:inline-flex;align-items:center;gap:6px;margin:0;padding:4px 10px;border-radius:999px;border:1px solid var(--pa-color,#3a4232);color:#dfe6da;font-size:13px;font-weight:700;width:max-content}
.lv-skill-chip b{color:var(--pa-color,#d5fa74)}
.lv-boss-card.is-arena{display:grid;grid-template-columns:1fr;gap:8px}
.lv-arena{display:grid;grid-template-columns:96px 1fr 96px;align-items:center;gap:6px;padding:8px 6px;border-radius:16px;background:linear-gradient(90deg,#1c2a18,#141c16 40%,#141c16 60%,#2a1412);border:1px solid #2e372f}
.lv-arena-slot{width:96px;height:96px}
.lv-arena-vs{text-align:center;font-size:22px;font-weight:900;color:#ffd34d;letter-spacing:.06em;text-shadow:0 0 12px #ffd34d66}
.lv-arena-boss{display:grid;place-items:center}.lv-arena-boss .lv-guard{width:96px;height:96px}
.lv-arena-info{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.lv-guard.is-hit{animation-delay:.45s}
.lv-alarm-slot{width:120px;height:120px;flex:none}
.lv-summary-slot{width:120px;height:120px;margin:0 auto}
@media(max-width:900px){.lv-partner-corner{width:72px;height:72px}.lv-panel .lv-progress{padding-right:80px}}
@media(prefers-reduced-motion:reduce){.pa-dock{transition:none}.pa .pa-body,.pa-shadow{animation:none!important}}
/* Week 2 · 声音与波 (2026-10-18): listening buttons and four small option figures in a 2 × 2 grid. */
.w2-tones{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;width:100%;min-height:300px;text-align:center}
.w2-tones-caption{margin:0;font-size:19px;color:var(--text,#dfe6da)}
.w2-tones-row{display:flex;flex-wrap:wrap;gap:18px;justify-content:center}
.w2-tone{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:150px;padding:18px 22px;border-radius:18px;border:2px solid #52c6ff;background:#0f2536;color:#e8f4ff;font:inherit;cursor:pointer}
.w2-tone strong{font-size:22px}.w2-tone small{font-size:16px;color:#7cc8ff}.w2-tone-icon{font-size:26px;color:#d5fa74}
.w2-tone:focus-visible{outline:3px solid #ffd34d;outline-offset:3px}
.w2-tone.is-playing{animation:w2-tone-pulse 1s ease-out}
@keyframes w2-tone-pulse{0%{box-shadow:0 0 0 0 rgba(82,198,255,.6)}100%{box-shadow:0 0 0 22px rgba(82,198,255,0)}}
@media(prefers-reduced-motion:reduce){.w2-tone.is-playing{animation:none}}
.w2-tones-note{margin:0;font-size:15px;opacity:.75}
.lv-options.has-w2.has-four{grid-template-columns:repeat(2,minmax(0,1fr))}
.lv-options.has-w2 svg{width:100%;height:auto}
@media (min-width:981px){.w-day-grid.w-day-grid-seven{grid-template-columns:repeat(4,minmax(0,1fr))}}
.w2-preview-days{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px}
.w2-preview-title{font-weight:800;margin-right:8px}
/* 2026-10-18 · week-2 figure polish: finer grid, glow and gentle motion (respects reduced motion) */
@keyframes w2-flow{to{stroke-dashoffset:-260}}
@keyframes w2-spin{to{transform:rotate(360deg)}}
@keyframes w2-pulse{0%,100%{opacity:.45}50%{opacity:1}}
@keyframes w2-ripple{0%{opacity:.8;transform:scale(.6)}100%{opacity:0;transform:scale(1.5)}}
@keyframes w2-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
.lv-figure .w2-flow{animation:w2-flow 3.2s linear infinite}
.lv-figure .w2-pulse{animation:w2-pulse 2.4s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.lv-figure .w2-spin{animation:w2-spin 18s linear infinite;transform-box:fill-box;transform-origin:center}
.lv-figure .w2-ripple{animation:w2-ripple 3s ease-out infinite;transform-box:fill-box;transform-origin:center}
.lv-figure .w2-float{animation:w2-float 3.8s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){.lv-figure .w2-flow,.lv-figure .w2-pulse,.lv-figure .w2-spin,.lv-figure .w2-ripple,.lv-figure .w2-float{animation:none}}
html[data-reduced="true"] .lv-figure :is(.w2-flow,.w2-pulse,.w2-spin,.w2-ripple,.w2-float){animation:none}
/* week-2 listening buttons */
.w2-tones{display:flex;flex-direction:column;gap:10px;align-items:center;padding:6px 4px}
.w2-tones-caption{color:var(--soft,#9aa596);font-size:15px;margin:0}
.w2-tones-row{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}
.w2-tone{position:relative;display:flex;align-items:center;gap:10px;padding:12px 20px;border-radius:16px;border:1px solid #4f6a3c;background:linear-gradient(160deg,#26361b,#141c12);color:#e9f4d8;cursor:pointer;overflow:hidden;transition:transform .15s ease,border-color .15s ease,box-shadow .2s ease}
.w2-tone:hover{border-color:#d5fa74;transform:translateY(-1px);box-shadow:0 6px 22px rgba(213,250,116,.16)}
.w2-tone:active{transform:translateY(0) scale(.98)}
.w2-tone .w2-tone-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#d5fa74,#8fbf35);color:#1a2410;flex:none}
.w2-tone .w2-tone-copy{display:flex;flex-direction:column;align-items:flex-start;line-height:1.25}
.w2-tone .w2-tone-copy strong{font-size:16px}
.w2-tone .w2-tone-copy small{font-size:13px;color:#b9d3a0}
.w2-tone .w2-tone-ring{position:absolute;inset:50% 50%;width:30px;height:30px;margin:-15px;border-radius:50%;border:2px solid rgba(213,250,116,.7);opacity:0;pointer-events:none}
.w2-tone.is-playing{border-color:#d5fa74;box-shadow:0 0 0 1px #d5fa74 inset,0 8px 26px rgba(213,250,116,.22)}
.w2-tone.is-playing .w2-tone-ring{animation:w2-tone-ring 1s ease-out}
@keyframes w2-tone-ring{0%{opacity:.85;transform:scale(.5)}100%{opacity:0;transform:scale(2.4)}}
.w2-tones-note{color:#7f8f77;font-size:12px;margin:0}
@media (prefers-reduced-motion:reduce){.w2-tone{transition:none}.w2-tone:hover{transform:none}.w2-tone.is-playing .w2-tone-ring{animation:none}}
html[data-reduced="true"] .w2-tone{transition:none}
html[data-reduced="true"] .w2-tone:hover{transform:none}
html[data-reduced="true"] .w2-tone .w2-tone-ring{animation:none}

/* 2026-10-18 redo · day 1: vibrating strings, figure + listening stack, fill-in answers */
@keyframes w2-vib{0%,100%{transform:scaleY(1)}50%{transform:scaleY(-1)}}
/* The flip axis is the string's own line (transform-origin set inline in figure units), so both ends stay on the posts. */
.lv-figure .w2-vib{animation:w2-vib .16s ease-in-out infinite;transform-box:view-box}
/* A finger that slides along the string: it is looking for the place, it does not mark it. */
@keyframes w2-seek{0%,100%{transform:translateX(0)}50%{transform:translateX(var(--seek,200px))}}
.lv-figure .w2-seek{animation:w2-seek 5s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){.lv-figure .w2-vib,.lv-figure .w2-seek{animation:none}}
html[data-reduced="true"] .lv-figure :is(.w2-vib,.w2-seek){animation:none}
.lv-visual>.w2-stack{display:flex;flex-direction:column;gap:12px;width:100%;align-items:stretch}
.w2-stack>.lv-figure{width:100%;height:auto;max-height:min(52dvh,470px)}
.w2-stack>.w2-tones{min-height:0;padding:0}
.w2-stack .w2-tone{min-width:130px;padding:10px 18px;flex-direction:row;gap:10px}
.lv-fill{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.lv-fill-box{display:flex;align-items:center;gap:10px;flex:1 1 220px;padding:6px 16px;border-radius:14px;border:2px solid #52c6ff;background:#0f1b14}
.lv-fill-box:focus-within{border-color:#ffd34d;box-shadow:0 0 0 3px rgba(255,211,77,.25)}
.lv-fill-box input{flex:1;min-width:0;border:0;background:transparent;color:#f3f7ea;font:800 28px/1.4 ui-monospace,Menlo,monospace;outline:none}
.lv-fill-box input::placeholder{color:#6f7d6b;font-weight:600;font-size:20px}
.lv-fill-unit{font-size:22px;font-weight:800;color:#d5fa74;white-space:nowrap}
.lv-fill .lv-submit{flex:0 0 auto}
.lv-fill-error{margin:0;color:#ffb3a6;font-weight:600;flex-basis:100%}

/* 2026-10-18 redo · day 2: a point going round and its shadow riding the wall (sine by eased quarter turns) */
@keyframes w2-turn{to{transform:rotate(-360deg)}}
@keyframes w2-bob{0%{transform:translateY(0);animation-timing-function:ease-out}25%{transform:translateY(calc(-1*var(--amp)));animation-timing-function:ease-in}50%{transform:translateY(0);animation-timing-function:ease-out}75%{transform:translateY(var(--amp));animation-timing-function:ease-in}100%{transform:translateY(0)}}
@keyframes w2-tick{to{transform:rotate(360deg)}}
.lv-figure .w2-turn{animation:w2-turn 4s linear infinite;transform-box:view-box}
.lv-figure .w2-bob{animation:w2-bob 4s linear infinite}
.lv-figure .w2-tick{animation:w2-tick 60s steps(60) infinite;transform-box:view-box}
.lv-figure .w2-spin-slow{animation:w2-turn 40s linear infinite;transform-box:view-box}
@media (prefers-reduced-motion:reduce){.lv-figure :is(.w2-turn,.w2-bob,.w2-tick,.w2-spin-slow){animation:none}}
html[data-reduced="true"] .lv-figure :is(.w2-turn,.w2-bob,.w2-tick,.w2-spin-slow){animation:none}
/* Four small option graphs stay inside a 768-high screen. */
.lv-options.has-w2.has-four svg{max-height:118px}

/* 2026-10-18 redraw · sound that travels: out in the first half, the echo back in the second half (--d = distance) */
@keyframes w2-go{0%{transform:translateX(0);opacity:0}6%{opacity:1}44%{opacity:1}50%,100%{transform:translateX(var(--d));opacity:0}}
@keyframes w2-back{0%,50%{transform:translateX(0);opacity:0}56%{opacity:1}94%{opacity:1}100%{transform:translateX(var(--d));opacity:0}}
@keyframes w2-go-y{0%{transform:translateY(0);opacity:0}6%{opacity:1}44%{opacity:1}50%,100%{transform:translateY(var(--d));opacity:0}}
@keyframes w2-back-y{0%,50%{transform:translateY(0);opacity:0}56%{opacity:1}94%{opacity:1}100%{transform:translateY(var(--d));opacity:0}}
.lv-figure .w2-go{animation:w2-go 2.6s linear infinite}
.lv-figure .w2-back{animation:w2-back 2.6s linear infinite}
.lv-figure .w2-go-y{animation:w2-go-y 2.6s linear infinite}
.lv-figure .w2-back-y{animation:w2-back-y 2.6s linear infinite}
/* Without motion the outgoing arcs rest by the source and the echo arcs are hidden. */
@media (prefers-reduced-motion:reduce){.lv-figure :is(.w2-go,.w2-go-y){animation:none}.lv-figure :is(.w2-back,.w2-back-y){animation:none;opacity:0}}
html[data-reduced="true"] .lv-figure :is(.w2-go,.w2-go-y){animation:none}
html[data-reduced="true"] .lv-figure :is(.w2-back,.w2-back-y){animation:none;opacity:0}

/* 2026-10-18 · day 6: partners marching in step (all three bob together) */
@keyframes w2-step{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.lv-figure .w2-step{animation:w2-step .5s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){.lv-figure .w2-step{animation:none}}
html[data-reduced="true"] .lv-figure .w2-step{animation:none}

/* 2026-10-18 · day 7: the sampling line sweeps across; a download bar fills up */
@keyframes w2-scan{0%{transform:translateX(0);opacity:0}5%{opacity:.8}95%{opacity:.8}100%{transform:translateX(var(--d));opacity:0}}
@keyframes w2-load{0%{width:0}90%,100%{width:316px}}
.lv-figure .w2-scan{animation:w2-scan 3.2s linear infinite}
.lv-figure .w2-load{animation:w2-load 3s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){.lv-figure .w2-scan{animation:none;opacity:0}.lv-figure .w2-load{animation:none;width:150px}}
html[data-reduced="true"] .lv-figure .w2-scan{animation:none;opacity:0}
html[data-reduced="true"] .lv-figure .w2-load{animation:none;width:150px}

/* 2026-10-19 · week 3: the flashlight beam blinks */
@keyframes w2-blink{0%,45%{opacity:.6}50%,95%{opacity:.05}100%{opacity:.6}}
.lv-figure .w2-blink{animation:w2-blink 1s steps(1,end) infinite}
@media (prefers-reduced-motion:reduce){.lv-figure .w2-blink{animation:none}}
html[data-reduced="true"] .lv-figure .w2-blink{animation:none}
/* Earlier boss answers shown with the strike that uses them. */
.lv-boss-known{list-style:none;margin:0 0 10px;padding:8px 12px;display:flex;flex-wrap:wrap;gap:6px 18px;border:1px solid rgba(82,198,255,.45);border-radius:12px;background:rgba(15,37,54,.55)}
.lv-boss-known li{display:flex;gap:8px;align-items:baseline;font-size:15px;color:#b8d8ec}
.lv-boss-known strong{color:#e8f4ff;font-size:17px}
/* 概念板 (2026-10-20): the day's basic ideas sit under the figure, in the same panel; small, quiet, always readable. */
.lv-visual:has(.lv-concept){flex-direction:column;gap:12px}
.lv-visual:has(.lv-concept)>.lv-figure,.lv-visual:has(.lv-concept)>.lv-plot{height:auto;max-height:min(56dvh,520px)}
.lv-concept{align-self:stretch;margin:0;padding:10px 14px 12px;border:1px solid #3d5a6e;border-radius:12px;background:#0f1d27}
.lv-concept h3{margin:0 0 6px;font-size:13px;letter-spacing:.08em;color:#7cc8ff}
.lv-concept ul{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:4px 18px}
.lv-concept li{position:relative;padding-left:14px;font-size:14px;line-height:1.55;color:#d8e4d2}
.lv-concept li::before{content:"";position:absolute;left:0;top:.62em;width:6px;height:6px;border-radius:50%;background:#7cc8ff}
.lv-concept-table{margin:10px 0 0;padding:0}
.lv-concept-table figcaption{font-size:12px;letter-spacing:.06em;color:#9fd0ea;margin-bottom:4px}
.lv-ct-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(38px,1fr));gap:3px;margin-bottom:3px}
.lv-ct-row.lv-ct-wide{grid-template-columns:repeat(auto-fill,minmax(84px,1fr))}
.lv-ct-row span{display:flex;flex-direction:column;align-items:center;padding:3px 2px;border:1px solid #2d4556;border-radius:6px;background:#132634;line-height:1.2}
.lv-ct-row b{font-size:15px;color:#f0f6ea}
.lv-ct-row i{font-style:normal;font-size:12px;color:#ffd36e;font-weight:700}
