@charset "UTF-8";
:root{color-scheme:light;--paper:#f4efe4;--ink:#2c2b25;--soft:#69685d;--red:#a35034;--copper:#aa774d;--rule:#c9baa1;--blue:#397d8d;--sans:"Microsoft YaHei","PingFang SC",system-ui,sans-serif;--serif:"Noto Serif SC","Source Han Serif SC","STSong","SimSun",serif;font-family:var(--sans);background:#e6dfd2;color:var(--ink)}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{display:grid;place-items:center;background:radial-gradient(ellipse,#f5f1e7,#ded6c7)}button,a{touch-action:manipulation}button{font:inherit;cursor:pointer}button:disabled{opacity:.3;cursor:default}button:focus-visible,a:focus-visible{outline:3px solid var(--red);outline-offset:5px}[hidden]{display:none!important}
.stage{position:relative;width:min(100vw,177.77778vh);aspect-ratio:16/9;overflow:hidden;background:var(--paper);container-type:inline-size;box-shadow:0 15px 70px #453a2229;isolation:isolate}.stage:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:10;background:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.2' filter='url(%23n)'/%3E%3C/svg%3E");opacity:.11;mix-blend-mode:multiply}.art-layer{position:absolute;inset:0;z-index:-1;background-size:cover;background-position:center;pointer-events:none}.lesson-header{position:absolute;top:3.4%;left:4.7%;right:4.7%;height:5%;display:flex;align-items:center;gap:1.1cqw;z-index:6;color:var(--red)}.seal{border:1px solid #a3503477;width:2.25cqw;height:2.25cqw;display:grid;place-items:center;font:1.35cqw var(--serif);color:var(--red)}.course-name{font:1.65cqw var(--serif);letter-spacing:.16em}.header-line{height:1px;background:linear-gradient(90deg,#a78b6455,transparent);width:21cqw;margin-left:.7cqw}#section-name{font-size:1.05cqw;letter-spacing:.15em;margin-left:auto;color:#7d705f}.content{position:absolute;inset:0;z-index:3;pointer-events:none}.content button,.content a,.content input{pointer-events:auto}.model-dock{position:absolute;inset:13% 0 3% 36%;z-index:2;min-width:0;min-height:0}.model-dock iframe{display:block;width:100%;height:100%;border:0;background:transparent}.model-dock.split-petrol{inset:23% 48% 15% 1%}.model-dock.split-diesel{inset:23% 0 15% 51%}.model-dock.family{inset:14% 1% 8% 36%}.model-status{position:absolute;top:49%;left:62%;color:#82745c;font-size:1.3cqw;z-index:5}.timer-display{position:absolute;top:4.2%;right:5%;font:2cqw Georgia,serif;font-variant-numeric:tabular-nums;color:var(--red);z-index:7}
.eyebrow{font-size:1.05cqw;letter-spacing:.17em;color:var(--red);display:flex;align-items:center;gap:.9cqw;margin-bottom:1.4cqw}.eyebrow:before{content:"";height:1px;background:var(--red);width:3cqw}.serif{font-family:var(--serif)}.cover-copy{position:absolute;left:5.2%;top:24%;width:45%}.cover-copy h1{font:8.7cqw/1.1 var(--serif);letter-spacing:.11em;margin:0 0 1.6cqw;font-weight:500}.cover-copy h2{font:3.25cqw/1.45 var(--serif);letter-spacing:.04em;margin:0;color:#382c21;white-space:nowrap}.cover-copy .cover-theme{font-size:1.55cqw;letter-spacing:.09em;color:#7b6b57;line-height:1.7;margin:1.2cqw 0 2.6cqw}.begin{display:inline-flex;gap:3.8cqw;align-items:center;padding:1.05cqw 1.8cqw;background:var(--red);border:1px solid var(--red);color:#fff5e5;font-size:1.45cqw;letter-spacing:.1em;box-shadow:0 7px 24px #945c3526}.begin:hover{background:#884027}.begin span{font-size:2.1cqw}.cover-foot{position:absolute;bottom:4.1%;left:5.2%;font-size:1.1cqw;letter-spacing:.19em;color:#8b7158}.cover-foot i{display:inline-block;height:.25cqw;width:.25cqw;background:var(--red);border-radius:50%;margin:0 1.1cqw;vertical-align:middle}
.question-page{position:absolute;inset:18% 6% 9%}.question-page h1{font:5.1cqw/1.3 var(--serif);letter-spacing:.04em;margin:0;max-width:75%}.question-page .question-secondary{font:2.35cqw/1.5 var(--serif);margin:2cqw 0 0;color:#6c4c35}.question-page .answer{max-width:78%;font-size:2.05cqw;line-height:1.65;margin-top:3cqw}.question-page .answer b{font-weight:500;color:var(--red)}.question-page .experiment-accent{position:absolute;right:-2%;bottom:-12%;width:44%;height:80%;opacity:.11;background:radial-gradient(ellipse at 50% 35%,#a77543,transparent 62%);border-radius:50%}.experiment-number{position:absolute;right:3%;top:1%;font:17cqw/1 Georgia,serif;color:#c4a77f26}.energy-chain{display:flex;align-items:center;gap:1.1cqw;margin-top:3cqw;font-size:2.45cqw;letter-spacing:.04em;white-space:nowrap}.energy-chain span{font-family:var(--serif);padding:.7cqw .2cqw;border-bottom:1px solid #aa835469}.energy-chain i{font-size:2.8cqw;color:var(--red);font-style:normal}.energy-chain small{font-size:1.1cqw;color:#937957;position:absolute;transform:translateY(-2.2cqw);margin-left:-3cqw}.accent{color:var(--red)}
.mechanism-copy{position:absolute;left:5%;top:19%;width:32%;bottom:11%;display:flex;flex-direction:column;align-items:flex-start}.mechanism-copy h1{font:4.6cqw/1.2 var(--serif);letter-spacing:.04em;margin:0 0 1.8cqw;font-weight:500}.mechanism-copy .question{font:2.15cqw/1.6 var(--serif);margin:0 0 1.5cqw;max-width:95%}.mechanism-copy .conclusion{font-size:1.85cqw;line-height:1.65;margin:1.2cqw 0;color:#4d493e;border-top:1px solid var(--rule);padding-top:1.3cqw}.mechanism-copy .conclusion b{color:var(--red);font-weight:600}.energy-pair{margin-top:1.2cqw;display:flex;align-items:center;gap:.75cqw;font-size:2.1cqw;font-family:var(--serif);white-space:nowrap;color:var(--red)}.energy-pair i{font:2.4cqw var(--sans);font-style:normal}.state-tags{display:grid;grid-template-columns:1fr 1fr;gap:.7cqw 1.2cqw;margin-top:auto;width:100%;padding-top:1.3cqw;border-top:1px solid #c2ad9066}.state-tags div{font-size:1.25cqw;color:#89765d;display:grid;gap:.4cqw}.state-tags strong{font-size:1.7cqw;font-weight:500;color:#383b33}.state-tags .open{color:var(--blue)}.part-chips{display:flex;flex-wrap:wrap;gap:.55cqw;margin-top:1cqw}.part-chips button{font-size:1.12cqw;padding:.45cqw .7cqw;border:1px solid #b69b7666;color:#775a3e;background:#f9f5ebcc}.part-chips button:hover{border-color:var(--red);color:var(--red)}.model-note{position:absolute;bottom:5%;right:5%;font-size:1.02cqw;color:#8b7d68}.motion-counts{display:flex;gap:.8cqw;margin-top:auto;width:100%}.motion-counts div{flex:1;border-top:1px solid #bc9b7070;padding-top:.7cqw}.motion-counts strong{display:block;color:var(--red);font:3.2cqw Georgia,serif;line-height:1.3}.motion-counts span{display:block;font-size:1.1cqw;color:#726552}
.bridge-graphic{position:absolute;inset:17% 5% 9% 42%;filter:drop-shadow(0 1.4cqw 1.6cqw #58432626)}.bridge-graphic svg{height:100%;width:100%;overflow:visible}.bridge-graphic text{font-family:var(--sans);fill:#6c5c48}.bridge-graphic .svg-big{font-size:27px}.bridge-graphic .svg-small{font-size:20px}
.task-page{position:absolute;inset:15% 5% 8%}.task-page h1{font:3.45cqw/1.3 var(--serif);margin:0 0 1cqw}.task-intro{font-size:1.65cqw;line-height:1.55;margin:.5cqw 0 1.5cqw;color:#625948;max-width:90%}.task-table{border-collapse:collapse;width:100%;table-layout:fixed;background:#fbf8f073;font-size:1.65cqw}.task-table th,.task-table td{border-bottom:1px solid #bda98a88;text-align:center;padding:1.25cqw .55cqw;line-height:1.45}.task-table th{font-weight:500;color:#785536;background:#e8ddc868;font-size:1.45cqw}.task-table th:first-child{width:14%}.task-table th:last-child{width:30%}.task-table .row-title{font-family:var(--serif);font-size:1.9cqw;color:#4d3b28}.task-table .current{background:#ead9bc89}.task-table .reveal{color:var(--red)}.task-table .empty{color:#c6bba5;letter-spacing:.1em}.task-supplement{display:flex;gap:3cqw;margin-top:1.5cqw;font-size:1.55cqw;color:#61533f}.task-footnote{font-size:1.1cqw;line-height:1.5;color:#7e745f;margin-top:1.2cqw}.task-page .tach-grid{display:grid;grid-template-columns:34% 1fr;gap:5%;align-items:center;height:70%}.tach-grid img{width:100%;mix-blend-mode:multiply;filter:drop-shadow(0 1cqw 1cqw #78624220)}.problem-lines{display:grid;gap:1.3cqw;font-size:1.75cqw;line-height:1.5}.problem-lines p{margin:0}.formula{font-size:2.05cqw;color:var(--red);padding-top:.8cqw;border-top:1px solid #bda37c66}.formula sub{font-size:.65em}.calc-question{font:2.15cqw var(--serif);color:#403b31;margin:.6cqw 0!important}.calc-conditions{font-size:1.55cqw;color:#6f6553;line-height:1.55;max-width:94%;margin:.5cqw 0}
.compare-title{position:absolute;left:5%;right:5%;top:15%;text-align:center}.compare-title h1{font:3.7cqw var(--serif);margin:0}.compare-label{position:absolute;top:26%;font:2.4cqw var(--serif);color:var(--red);z-index:4}.compare-label.petrol{left:15%}.compare-label.diesel{left:65%}.compare-caption{position:absolute;bottom:7.3%;width:43%;font-size:1.65cqw;text-align:center;line-height:1.6;z-index:4}.compare-caption.petrol{left:3%}.compare-caption.diesel{left:54%}.compare-caption strong{color:var(--red);font-size:2.15cqw;display:block;font-family:var(--serif);font-weight:500}.compare-axis{position:absolute;top:30%;bottom:18%;left:50%;width:1px;background:linear-gradient(transparent,#bda47a88,transparent)}.compare-question{position:absolute;top:23%;left:30%;right:30%;text-align:center;font-size:1.5cqw;color:#77654e}
.family-copy{position:absolute;left:5%;top:21%;width:30%}.family-copy h1{font:4.6cqw/1.2 var(--serif);margin:0 0 1.5cqw}.family-copy .use{font:1.55cqw var(--sans);color:var(--red);letter-spacing:.07em;border-top:1px solid #bfa47a88;padding-top:1.1cqw}.family-copy .principle{font:2cqw/1.7 var(--serif);margin:1.7cqw 0}.family-tabs{display:flex;gap:2cqw;position:absolute;bottom:7%;left:5%;right:5%;z-index:5;border-top:1px solid #bba27b5c;padding-top:1cqw}.family-tabs button{background:transparent;border:0;padding:.3cqw 0;color:#8d8069;font:1.35cqw var(--serif)}.family-tabs button.active{color:var(--red);border-bottom:2px solid var(--red)}.definition-page{position:absolute;inset:23% 6% 11%}.definition-page h1{font:6cqw var(--serif);margin:0 0 2cqw}.definition-page .definition{font:3cqw/1.6 var(--serif);max-width:80%;margin:0}.definition-page .definition b{color:var(--red);font-weight:500}.definition-page .family-keywords{font-size:1.65cqw;color:#827056;margin-top:3cqw;word-spacing:2cqw}
.history-page{position:absolute;inset:16% 5% 6%}.history-page .year{font:6.7cqw/1 Georgia,serif;color:var(--red);margin:0 0 .7cqw;letter-spacing:-.05em}.history-page h1{font:3.4cqw/1.3 var(--serif);margin:0 0 1.2cqw;max-width:54%}.history-page .history-copy{font:1.7cqw/1.65 var(--sans);max-width:46%;color:#655d4d}.history-page .history-takeaway{font:1.8cqw/1.5 var(--serif);max-width:48%;margin-top:2cqw;color:var(--red);padding-top:1cqw;border-top:1px solid #b39a7270}.history-figure{position:absolute;right:0;top:6%;width:48%;height:74%;object-fit:contain;mix-blend-mode:multiply}.history-tabs{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;gap:1cqw;border-top:1px solid #bca7808c;padding-top:1.1cqw}.history-tabs button{font:1.35cqw Georgia,var(--serif);background:transparent;border:0;color:#8b7d64;padding:.4cqw .5cqw}.history-tabs button.active{color:var(--red);border-bottom:2px solid var(--red)}.history-intro{top:21%;left:5%;position:absolute;width:48%}.history-intro h1{font:5.1cqw/1.3 var(--serif);margin:0 0 1.5cqw}.history-intro p{font:2.05cqw/1.65 var(--serif);margin:0;color:#6d5c44}.history-panorama .art-layer{opacity:.65}.closing-copy{position:absolute;left:5.5%;top:25%;width:54%}.closing-copy h1{font:4.3cqw/1.45 var(--serif);margin:0 0 2cqw}.closing-copy p{font:2cqw/1.7 var(--serif);margin:0;color:#705b40;max-width:90%}.closing-copy .closing-key{color:var(--red)}
.controls{position:absolute;bottom:2.1%;right:3.7%;display:flex;align-items:center;gap:.45cqw;z-index:20;padding:.45cqw .6cqw;border:1px solid #b49a6e55;background:#f9f4e9e6;border-radius:99px;backdrop-filter:blur(12px);opacity:0;transform:translateY(1cqw);transition:opacity .2s,transform .2s;pointer-events:none;box-shadow:0 3px 20px #5b482514}.stage.controls-visible .controls,.controls:hover,.controls:focus-within{opacity:1;transform:translateY(0);pointer-events:auto}.controls button{width:2.65cqw;height:2.5cqw;border:0;border-radius:50%;background:transparent;color:#745d3c;font:1.7cqw var(--sans);display:grid;place-items:center}.controls button:hover{background:#dfc7a271;color:#8c3e26}.controls #next{background:#a35034;color:#fff4e0}.controls i{height:1.5cqw;width:1px;background:#c3ac87;margin:0 .3cqw}.menu{border:1px solid #b99a70;padding:1.7cqw;background:#f4eee1;color:var(--ink);width:45cqw;max-height:90%;box-shadow:0 30px 90px #4a382b44}.menu::backdrop{background:#2e292566;backdrop-filter:blur(6px)}.menu header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #c6af895e;margin-bottom:1.2cqw;padding-bottom:.8cqw;font:2.2cqw var(--serif)}.menu header button{background:none;border:0;font-size:2cqw;color:#745c3f}.menu #menu-items{display:grid;grid-template-columns:1fr 1fr;gap:.5cqw}.menu #menu-items button{font-size:1.15cqw;padding:.7cqw;text-align:left;color:#5a4b35;border:1px solid #c4ab7b66;background:#fffaf07c}.menu #menu-items button:hover{border-color:#9d4b30;color:#9d4b30}.cover-link{margin-top:1cqw;border:0;background:var(--red);color:#fff4df;padding:.6cqw 1cqw;font-size:1.2cqw}
.entering{animation:appear .45s ease-out}@keyframes appear{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.entering{animation:none}.controls{transition:none}}

.history-figure{width:38cqw;height:38cqw;top:-1%;background-repeat:no-repeat}.mechanism:before,.family-scene:before{content:"";position:absolute;width:44cqw;height:44cqw;right:4%;top:12%;border:1px solid #b89c7024;border-radius:50%;background:radial-gradient(circle,#ded1b82b,transparent 67%);pointer-events:none}.mechanism:before{outline:1px solid #b89c7010;outline-offset:2cqw}

.mechanism-copy h1{font-size:3.8cqw;line-height:1.3}.task-page .tach-grid{height:78%}.problem-lines{gap:.8cqw}.formula{font-size:1.85cqw;padding-top:.55cqw}

.tach-grid img{clip-path:circle(37% at 50% 50%);transform:scale(1.14)}

.timer-display{top:16%;right:5%}

.model-dock.split-petrol{inset:30% 48% 15% 1%}.model-dock.split-diesel{inset:30% 0 15% 51%}

.mechanism-copy h1,.mechanism-copy .question,.family-copy .principle{text-wrap:balance}

/* Progressive classroom presentation */
.entering{animation:none}.just-revealed{animation:piece-appear .28s ease-out both}
@keyframes piece-appear{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
.energy-pair [data-piece],.energy-chain [data-piece]{display:inline-block}.energy-chain [data-piece]{border:0}
.mechanism-copy{width:34%;top:18%;bottom:10%}.mechanism-copy h1{font-size:3.35cqw;line-height:1.3;margin-bottom:1.3cqw}
.mechanism-copy .question{font-size:1.85cqw;line-height:1.55;margin-bottom:.8cqw}.mechanism-copy .conclusion{font-size:1.55cqw;line-height:1.6;margin:.6cqw 0;padding-top:.7cqw}
.mechanism-copy .energy-pair{font-size:1.9cqw;margin-top:.8cqw}.state-tags{padding-top:.8cqw;gap:.6cqw 1cqw}.state-tags div{font-size:1.05cqw;gap:.25cqw}.state-tags strong{font-size:1.5cqw}
.part-chips{gap:.45cqw;margin-top:1.2cqw}.part-chips button{font-size:1.1cqw}.part-chips .active{border-color:var(--red);background:#e9d7be;color:var(--red)}
.parts-scene .mechanism-copy{bottom:10%}.parts-scene .mechanism-copy .question{font-size:2.5cqw;color:var(--red)}.parts-scene .mechanism-copy .conclusion{min-height:5.5cqw}
.answer-cell{width:100%;border:0;background:transparent;color:#b7aa91;font:inherit;padding:0;min-height:2.3cqw}.answer-cell:hover{color:var(--red);background:#ead7b880}.answer-cell.shown{color:var(--red)}.answer-cell:focus-visible{outline-offset:1px}
.task-table td{padding:1.05cqw .5cqw}.task-supplement{font-size:1.4cqw}.motion-counts{gap:.7cqw}.motion-counts div{min-width:0}
.definition-page .definition p{margin:0}.internal-detail{font:2.2cqw/1.55 var(--serif);margin-top:2.6cqw}.family-tabs{left:42%;right:4%;justify-content:center;gap:2cqw}.family-tabs button{font-size:1.2cqw}
.family-copy .principle{font-size:1.9cqw;line-height:1.65}.compare-caption{font-size:1.75cqw;color:var(--red)}
.parts-scene .mechanism-copy h1{margin-bottom:1.15cqw}.parts-scene .parts-introduction-list{flex:1;min-height:0;width:100%;max-height:none;overflow:auto;padding-right:.25cqw;display:grid;align-content:start;gap:.38cqw;scrollbar-color:#c5a889 transparent}.parts-scene .parts-introduction-list:empty{display:none}.parts-scene .part-introduction{padding:.46cqw .58cqw;background:#fffaf0b8;border-left:2px solid #b65a3b;white-space:normal}.parts-scene .part-introduction strong{font-size:1.62cqw;color:#a44f34}.parts-scene .part-introduction p{display:inline;font-size:1.52cqw;line-height:1.35;margin-left:.45cqw;color:#5b5148}
.stage[data-scene="intake"] .mechanism-copy .state-tags,.stage[data-scene="compression"] .mechanism-copy .state-tags,.stage[data-scene="power"] .mechanism-copy .state-tags,.stage[data-scene="exhaust"] .mechanism-copy .state-tags{margin-top:1.6cqw;padding-top:.8cqw;gap:.8cqw 1.2cqw}.stage[data-scene="intake"] .mechanism-copy .state-tags div,.stage[data-scene="compression"] .mechanism-copy .state-tags div,.stage[data-scene="power"] .mechanism-copy .state-tags div,.stage[data-scene="exhaust"] .mechanism-copy .state-tags div{font-size:1.5cqw;gap:.25cqw;color:#806747}.stage[data-scene="intake"] .mechanism-copy .state-tags strong,.stage[data-scene="compression"] .mechanism-copy .state-tags strong,.stage[data-scene="power"] .mechanism-copy .state-tags strong,.stage[data-scene="exhaust"] .mechanism-copy .state-tags strong{font-size:1.95cqw;color:#383b33}.stage[data-scene="intake"] .mechanism-copy .state-tags strong.open,.stage[data-scene="compression"] .mechanism-copy .state-tags strong.open,.stage[data-scene="power"] .mechanism-copy .state-tags strong.open,.stage[data-scene="exhaust"] .mechanism-copy .state-tags strong.open{color:var(--blue)}.stage[data-scene="intake"] .mechanism-copy .conclusion,.stage[data-scene="compression"] .mechanism-copy .conclusion,.stage[data-scene="power"] .mechanism-copy .conclusion,.stage[data-scene="exhaust"] .mechanism-copy .conclusion{font-size:1.8cqw;line-height:1.5;margin:.8cqw 0;padding-top:.75cqw;color:#9b4b30}
.calc-page .formula{font-size:1.65cqw;padding-top:.4cqw}.calc-page .problem-lines{gap:.42cqw;font-size:1.55cqw}.calc-page .calc-question{font-size:1.65cqw;line-height:1.32}.calc-page .calc-conditions{font-size:1.38cqw;line-height:1.4}.calc-page .tach-grid{height:75%}.closing-copy .energy-pair{font-size:3cqw;margin-bottom:1.5cqw}
@media(prefers-reduced-motion:reduce){.just-revealed{animation:none}}
.cover-copy .begin{margin-top:3.2cqw}
.question-page h1{margin-bottom:.8cqw}
.question-page .question-secondary{margin-top:.8cqw}
.question-page .answer{margin-top:1.2cqw}
.question-page .energy-question{max-width:78%;font:1.95cqw/1.45 var(--serif);color:#6c4c35;margin:1.7cqw 0 0}
.question-page .energy-chain{margin-top:1cqw;font-size:2.15cqw}
.question-page .life-question{position:absolute;left:0;bottom:10%;max-width:76%;font:2.35cqw/1.55 var(--serif);color:#6c4c35;margin:0;padding-top:1.1cqw;border-top:1px solid #aa835469}
.stage[data-scene="power"] .mechanism-copy{width:38%;top:16%;bottom:9%}
.stage[data-scene="power"] .mechanism-copy h1{font-size:3.05cqw;line-height:1.25;margin-bottom:.55cqw}
.stage[data-scene="power"] .mechanism-copy .question{font-size:1.48cqw;line-height:1.4;margin:.25cqw 0;color:#806747}
.stage[data-scene="power"] .cycle-findings{display:grid;gap:.32cqw;margin:.45cqw 0;color:#684d35}
.stage[data-scene="power"] .cycle-finding{font:1.25cqw/1.42 var(--sans);margin:0;padding-left:.5cqw;border-left:2px solid #b65a3b}
.stage[data-scene="power"] .mechanism-copy .state-tags{margin-top:.75cqw;padding-top:.55cqw;gap:.5cqw .85cqw}
.stage[data-scene="power"] .mechanism-copy .state-tags div{font-size:1.16cqw;gap:.2cqw;color:#806747}
.stage[data-scene="power"] .mechanism-copy .state-tags strong{font-size:1.48cqw;color:#383b33}
.stage[data-scene="power"] .mechanism-copy .conclusion{font-size:1.28cqw;line-height:1.42;margin:.42cqw 0;padding-top:.42cqw}
.stage[data-scene="power"] .energy-chain{font-size:1.48cqw;gap:.35cqw;margin-top:.45cqw}
.stage[data-scene="power"] .energy-chain i{font-size:1.55cqw}
.stage[data-scene="stroke"] .mechanism-copy{width:40%}
.stage[data-scene="stroke"] .mechanism-copy .conclusion{white-space:pre-line;font-size:1.42cqw;line-height:1.5}
.stage[data-scene="linkage"] .cycle-findings{display:grid;gap:.42cqw;margin:.7cqw 0;color:#684d35}
.stage[data-scene="linkage"] .cycle-finding{font:1.42cqw/1.48 var(--sans);margin:0;padding-left:.5cqw;border-left:2px solid #b65a3b}
.family-copy .family-energy{max-width:100%;font:1.38cqw/1.6 var(--serif);color:#9b4b30;border-top:1px solid #bfa47a88;padding-top:.9cqw;margin:1.2cqw 0 0}
.family-copy h1{font-size:3.75cqw;line-height:1.3}
  .heat-definition-page{position:absolute;inset:14% 7% 10%;display:flex;flex-direction:column;justify-content:center;gap:2.2cqw}
  .heat-definition-heading span{display:block;color:#9b4b30;font:1.25cqw var(--sans);letter-spacing:.18em;margin-bottom:.55cqw}
  .heat-definition-heading h1{font:3.35cqw/1.2 var(--serif);font-weight:400;margin:0;color:var(--ink)}
  .heat-types{display:grid;grid-template-columns:repeat(4,1fr);gap:1cqw}
  .heat-types div{min-height:7cqw;display:flex;flex-direction:column;justify-content:center;padding:1.2cqw 1.1cqw;border-top:1px solid #bfa47a88;border-bottom:1px solid #bfa47a55;background:linear-gradient(135deg,#fffaf0a8,#e9dfca44);font:1.85cqw/1.3 var(--serif);color:#302e29}
  .heat-types div:first-child{border-left:2px solid #ad5034}.heat-types div:last-child{border-right:2px solid #ad5034}
  .heat-types small{font:1.05cqw/1.5 var(--sans);color:#8d8069;margin-top:.45cqw}
  .heat-common{display:flex;align-items:center;gap:2cqw;border-left:2px solid #ad5034;padding:.4cqw 1.3cqw}
  .heat-common span{font:1.3cqw var(--sans);color:#9b4b30;letter-spacing:.12em}
  .heat-common p{font:2.3cqw/1.35 var(--serif);margin:0;color:#302e29}.heat-common b,.heat-definition-statement b{color:#9b4b30;font-weight:500}
  .heat-definition-statement{margin:0;padding:1.15cqw 1.45cqw;background:#e9dfca62;border-left:2px solid #ad5034;font:1.8cqw/1.6 var(--serif);color:#4d4337}
  .model-hover-detail{width:100%;margin-top:1.3cqw;padding:1.05cqw 1.25cqw;background:linear-gradient(105deg,#fffaf0d9,#eee4d2aa);border-left:.24cqw solid #ad5034;box-shadow:0 .5cqw 1.6cqw #493b200c;color:#302e29}
  .model-hover-detail small{display:block;color:#9b4b30;font-size:.88cqw;letter-spacing:.15em}
  .model-hover-detail h2{font:1.7cqw/1.35 var(--serif);font-weight:500;margin:.35cqw 0 .2cqw}
  .model-hover-detail p{font:1.16cqw/1.65 var(--sans);color:#655a49;margin:0}
  @media(max-width:760px){.model-hover-detail{grid-column:1/-1;margin-top:10px;padding:10px 12px}.model-hover-detail h2{font-size:18px}.model-hover-detail p{font-size:13px}.model-hover-detail small{font-size:9px}}

/* Shared comparison framing: aligned engine scale and a separate caption band. */
.compare-title{top:12%}.compare-title h1{font-size:3.35cqw;line-height:1.3}
.compare-label{top:21.5%;width:45%;font-size:2.1cqw;text-align:center}
.compare-label.petrol{left:3%}.compare-label.diesel{left:52%}
.model-dock.split-petrol{inset:25.5% 52% 17% 3%}
.model-dock.split-diesel{inset:25.5% 3% 17% 52%}
.compare-caption{bottom:7%;width:45%;font-size:1.6cqw;line-height:1.5}
.compare-caption.petrol{left:3%}.compare-caption.diesel{left:52%}
.compare-axis{top:25%;bottom:18%}


/* The closing history sequence follows the teacher's spoken conclusion. */
.history-page{inset:15% 5% 7.5%}
.history-heading{width:49%;position:relative;z-index:1}
.history-chapter{display:block;font:1.2cqw/1.5 var(--sans);letter-spacing:.13em;color:#82684c;margin-bottom:.7cqw}
.history-page .year{font-size:5.5cqw;line-height:1.05;margin-bottom:1.4cqw;letter-spacing:-.025em}
.history-page h1{font-size:3.05cqw;line-height:1.45;max-width:51%;margin:0 0 1.5cqw;text-wrap:balance}
.history-page .history-copy{font-size:1.85cqw;line-height:1.8;max-width:48%;margin:0}
.history-page .history-takeaway{font-size:1.9cqw;line-height:1.65;max-width:48%;margin:1.6cqw 0 0;padding-top:1cqw}
.history-page .history-figure{width:41cqw;height:41cqw;right:-.7cqw;top:-1.3cqw;background-repeat:no-repeat;mix-blend-mode:multiply}
.history-tabs{padding-top:.65cqw;gap:.4cqw;align-items:center}
.history-tabs button{font-size:1.28cqw;padding:.65cqw .45cqw;white-space:nowrap;min-height:2.8cqw}
.history-tabs button.active{font-weight:600}
.history-intro{left:5.5%;top:17%;width:71%}
.history-intro h1{font-size:4.25cqw;line-height:1.4;letter-spacing:.015em;margin:0 0 1.5cqw}
.history-intro p{font-size:2.1cqw;line-height:1.65;max-width:78%}
.history-intro .eyebrow{margin-bottom:1.1cqw}
.history-panorama .art-layer{opacity:.90}
.history-panorama-navigation{pointer-events:none}
.history-panorama-navigation .history-tabs{pointer-events:auto;background:linear-gradient(0deg,#f4efe4e8,#f4efe4a0);border-color:#a88a605e}
.history-return{top:16%}
.history-return h1{font-size:4.05cqw}
.history-return p{font-size:2cqw}
.closing-scene .closing-copy{left:5.5%;top:19%;width:53%}
.closing-copy .eyebrow{font:1.2cqw/1.6 var(--sans);letter-spacing:.15em;color:var(--red);margin:0 0 1.3cqw}
.closing-copy h1{font-size:4.4cqw;line-height:1.42;margin:0 0 1.7cqw;letter-spacing:.015em}
.closing-copy h1>span{display:block}
.closing-copy p.tribute-line{font-size:1.95cqw;line-height:1.7;margin:.6cqw 0 0;max-width:100%;color:#5b4f3f}
.closing-copy p.tribute-line+ .tribute-line{margin-top:1cqw}
.closing-copy p.closing-message{font-size:2.05cqw;line-height:1.85;max-width:100%;color:#805536;border-top:1px solid #ab8a5e77;padding-top:1.2cqw;margin-top:1.4cqw}
.closing-future h1{min-height:12.5cqw}

/* Projection typography: content stays readable at the back of a classroom. */
.mechanism-copy{width:38%;top:17%;bottom:9%}
.mechanism-copy h1{font-size:3.55cqw;line-height:1.28;margin-bottom:1.35cqw}
.mechanism-copy .question{font-size:2.1cqw;line-height:1.55;margin:0 0 1cqw}
.mechanism-copy .conclusion{font-size:2cqw;line-height:1.55;margin:.75cqw 0;padding-top:.9cqw}
.mechanism-copy .energy-pair{font-size:2.25cqw;margin-top:1cqw}
.state-tags div{font-size:1.75cqw;line-height:1.35}
.state-tags strong{font-size:2.1cqw;line-height:1.35}
.motion-counts{gap:1cqw;padding-top:1cqw}
.motion-counts strong{font-size:3.4cqw}
.motion-counts span{font-size:1.55cqw;line-height:1.4}
.family-copy{top:21%;width:32.5%}
.family-copy h1{font-size:3.8cqw;line-height:1.25;margin-bottom:1.6cqw}
.family-copy .use{font-size:1.8cqw;line-height:1.5;letter-spacing:.02em;padding-top:1.15cqw;margin:0}
.family-copy .principle{font-size:2.15cqw;line-height:1.65;margin:1.5cqw 0;text-wrap:pretty}
.family-copy .family-energy{font-size:2.2cqw;line-height:1.5;white-space:nowrap;letter-spacing:.02em;padding-top:1.15cqw;margin-top:1.4cqw}
.family-tabs{gap:2.25cqw;padding-top:1cqw}
.family-tabs button{font-size:1.6cqw;line-height:1.5}
.heat-definition-heading span{font-size:1.55cqw}
.heat-types div{font-size:2.1cqw;line-height:1.45}
.heat-types small{font-size:1.45cqw}
.heat-common span{font-size:1.75cqw}
.heat-common p{font-size:2.55cqw}
.heat-definition-statement{font-size:2.1cqw;line-height:1.6}
.internal-page{inset:20% 6% 12%}
.internal-page h1{font-size:5.2cqw;line-height:1.25;letter-spacing:.04em;margin-bottom:2.5cqw}
.internal-page .internal-detail{font-size:2.65cqw;line-height:1.6;margin:0;max-width:90%;padding:1.4cqw 0 1.9cqw;border-bottom:1px solid #bfa47a88}
.internal-page .internal-types{display:flex;gap:2cqw;margin-top:2.6cqw;max-width:68%;font-size:3.2cqw}
.internal-types span{flex:1;padding:1.4cqw 2cqw;border-top:1px solid #bfa47a88;border-bottom:1px solid #bfa47a55;background:linear-gradient(125deg,#fffaf0b8,#e9dfca44);color:var(--ink)}
.parts-scene .mechanism-copy{width:43%;top:16%;bottom:8%}
.parts-scene .mechanism-copy h1{font-size:3.45cqw;margin-bottom:1.2cqw}
.parts-scene .parts-introduction-list{gap:.4cqw;padding-right:.5cqw;scrollbar-width:thin;pointer-events:auto}
.parts-scene .part-introduction{padding:.35cqw .65cqw;line-height:1.3;border-left:.18cqw solid #b65a3b}
.parts-scene .part-introduction strong{font-size:1.95cqw;line-height:1.3;font-weight:600}
.parts-scene .part-introduction p{font-size:1.8cqw;line-height:1.3;margin-left:.55cqw}
.model-hover-detail{margin-top:1.5cqw;padding:1.2cqw 1.4cqw}
.model-hover-detail small{font-size:1.4cqw;line-height:1.4}
.model-hover-detail h2{font-size:2.35cqw;line-height:1.4;margin:.5cqw 0}
.model-hover-detail p{font-size:1.95cqw;line-height:1.6}
.stage[data-scene="intake"] .mechanism-copy .state-tags,
.stage[data-scene="compression"] .mechanism-copy .state-tags,
.stage[data-scene="exhaust"] .mechanism-copy .state-tags{margin-top:1.5cqw;padding-top:1cqw;gap:1cqw 1.6cqw}
.stage[data-scene="intake"] .mechanism-copy .state-tags div,
.stage[data-scene="compression"] .mechanism-copy .state-tags div,
.stage[data-scene="exhaust"] .mechanism-copy .state-tags div{font-size:1.8cqw;line-height:1.35;gap:.35cqw}
.stage[data-scene="intake"] .mechanism-copy .state-tags strong,
.stage[data-scene="compression"] .mechanism-copy .state-tags strong,
.stage[data-scene="exhaust"] .mechanism-copy .state-tags strong{font-size:2.2cqw;line-height:1.35}
.stage[data-scene="intake"] .mechanism-copy .conclusion,
.stage[data-scene="compression"] .mechanism-copy .conclusion,
.stage[data-scene="exhaust"] .mechanism-copy .conclusion{font-size:2.05cqw;line-height:1.55;margin:1cqw 0;padding-top:1cqw}
.stage[data-scene="power"] .mechanism-copy{width:43%;top:16%;bottom:9%}
.stage[data-scene="power"] .model-dock{inset:14% 0 6% 47%}
.stage[data-scene="power"] .mechanism-copy h1{font-size:3.55cqw;line-height:1.25;margin-bottom:1.25cqw}
.stage[data-scene="power"] .cycle-findings{display:grid;gap:.65cqw;margin:0;color:#684d35}
.stage[data-scene="power"] .cycle-finding{font:1.95cqw/1.45 var(--sans);margin:0;padding-left:.75cqw;border-left:.18cqw solid #b65a3b;text-wrap:pretty}
.stage[data-scene="power"] .energy-chain{font-size:2.2cqw;line-height:1.35;gap:.6cqw;margin-top:1.1cqw}
.stage[data-scene="power"] .energy-chain i{font-size:2.4cqw}
.stage[data-scene="power"] .energy-chain span{padding:.4cqw .1cqw}
.stage[data-scene="power"] .mechanism-copy .state-tags{margin-top:1.1cqw;padding-top:.9cqw;gap:.8cqw 1.6cqw}
.stage[data-scene="power"] .mechanism-copy .state-tags div{font-size:1.8cqw;line-height:1.3;gap:.25cqw}
.stage[data-scene="power"] .mechanism-copy .state-tags strong{font-size:2.1cqw;line-height:1.3}
.stage[data-scene="stroke"] .mechanism-copy{width:43%}
.stage[data-scene="stroke"] .mechanism-copy .question{font-size:2.25cqw;line-height:1.6}
.stage[data-scene="stroke"] .mechanism-copy .conclusion{font-size:2.1cqw;line-height:1.65;white-space:pre-line}
.stage[data-scene="linkage"] .mechanism-copy{width:43%;top:16%;bottom:9%}
.stage[data-scene="linkage"] .model-dock{inset:14% 0 6% 47%}
.stage[data-scene="linkage"] .mechanism-copy h1{font-size:3.4cqw;line-height:1.27}
.stage[data-scene="linkage"] .mechanism-copy .question{font-size:2.2cqw;line-height:1.5;margin-bottom:.8cqw}
.stage[data-scene="linkage"] .cycle-findings{display:grid;gap:.7cqw;margin:.5cqw 0;color:#684d35}
.stage[data-scene="linkage"] .cycle-finding{font:1.9cqw/1.5 var(--sans);margin:0;padding-left:.7cqw;border-left:.18cqw solid #b65a3b;text-wrap:pretty}
.work-output{color:var(--red);font-weight:700;text-decoration:underline;text-decoration-thickness:.12cqw;text-underline-offset:.28cqw}
.task-page{inset:14% 5% 8%}
.task-page h1{font-size:3.5cqw;line-height:1.3;margin-bottom:1cqw}
.task-intro{font-size:2cqw;line-height:1.5;margin:.65cqw 0 1.35cqw}
.task-table{font-size:2cqw}
.task-table th,.task-table td{padding:1.05cqw .5cqw;line-height:1.45}
.task-table th{font-size:1.8cqw}
.task-table .row-title{font-size:2.15cqw}
.task-table th:first-child{width:14%}
.task-table th:last-child{width:32%}
.task-supplement{gap:1cqw;align-items:baseline;margin-top:1.35cqw;font-size:1.95cqw;line-height:1.45}
.task-supplement span:nth-child(3){margin-left:1.5cqw}
.calc-page{inset:13% 5% 7%}
.calc-page .calc-conditions{font-size:2cqw;line-height:1.5;max-width:100%;margin:.8cqw 0 1.2cqw}
.task-page.calc-page .tach-grid{height:auto;min-height:0;grid-template-columns:25% 1fr;gap:3%;align-items:center}
.calc-page .tach-grid img{width:100%;transform:scale(1.07)}
.calc-page .problem-lines{gap:.55cqw;font-size:2cqw;line-height:1.4;align-content:start}
.calc-page .calc-question{font-size:2cqw;line-height:1.4;margin:0!important;text-wrap:pretty}
.calc-page .formula{font-size:2cqw;line-height:1.4;padding-top:.45cqw}

/* A quiet full-page timer lets the teacher give students thinking time. */
.countdown-page{position:absolute;inset:13% 6% 7%;display:flex;flex-direction:column;align-items:center;text-align:center}
.countdown-page header{margin-bottom:.6cqw}
.countdown-kicker{font-size:1.55cqw;line-height:1.4;letter-spacing:.15em;color:#8c6d4b;margin:0 0 .5cqw}
.countdown-page h1{font:3.7cqw/1.3 var(--serif);font-weight:500;margin:0;color:var(--ink)}
.countdown-prompt{font:2.15cqw/1.55 var(--serif);color:#766046;margin:.5cqw 0 .6cqw}
.countdown-clock{display:flex;flex-direction:column;align-items:center;min-width:0}
.countdown-ring{--timer-progress:360deg;width:24cqw;aspect-ratio:1;border-radius:50%;padding:.42cqw;background:conic-gradient(from 0deg,#aa593a var(--timer-progress),#d4c5ac var(--timer-progress));box-shadow:0 1.1cqw 3cqw #6c4d2610;position:relative}
.countdown-ring:before{content:"";position:absolute;inset:-.65cqw;border:1px solid #b79b702f;border-radius:50%;pointer-events:none}
.countdown-ring>div{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.8cqw;width:100%;height:100%;border-radius:50%;background:radial-gradient(circle at 50% 40%,#fffcf4,#f4efe4 72%)}
.countdown-label{font-size:1.6cqw;line-height:1.5;letter-spacing:.12em;color:#8b7455}
.countdown-ring output{font:6.7cqw/1.1 Georgia,var(--sans);font-variant-numeric:tabular-nums;letter-spacing:.01em;color:var(--red)}
.countdown-ring.finished{background:#a35034}
.countdown-ring.finished output{color:#954228}
#countdown-status{font-size:1.85cqw;line-height:1.5;color:#796044;margin:1.1cqw 0 .75cqw;min-height:2.8cqw}
.countdown-actions{display:flex;gap:.9cqw}
.countdown-actions button{border:1px solid #b3946c7a;background:#faf5e9b8;color:#806342;font-size:1.55cqw;line-height:1.4;padding:.55cqw 1.2cqw;min-width:6.8cqw}
.countdown-actions button:hover{color:var(--red);border-color:var(--red);background:#f9efdc}
.countdown-calculation{display:grid;grid-template-columns:60% 1fr;grid-template-rows:auto 1fr;column-gap:5%;align-items:start;text-align:left}
.countdown-calculation header{grid-column:1/-1;margin:0 0 2cqw}
.countdown-calculation h1{font-size:3.5cqw}
.countdown-assignment{padding-top:.4cqw}
.countdown-conditions{font-size:2.1cqw;line-height:1.65;color:#5c4e3e;margin:0;padding-bottom:1.4cqw;border-bottom:1px solid #bfa47a88}
.countdown-conditions b{font-weight:600;color:var(--red);white-space:nowrap}
.countdown-assignment ol{font:2.15cqw/1.65 var(--serif);padding-left:2.5cqw;margin:1.5cqw 0 0}
.countdown-assignment li{padding-left:.4cqw;margin-bottom:1.05cqw}
.countdown-assignment li::marker{color:var(--red)}
.countdown-calculation .countdown-clock{align-self:center;text-align:center;padding-bottom:2cqw}
.countdown-calculation .countdown-ring{width:24.5cqw}
.countdown-calculation .countdown-ring output{font-size:6.4cqw}
.countdown-calculation #countdown-status{font-size:1.7cqw}
.quantity{white-space:nowrap}

/* The new self-contained dual-engine demonstration replaces the old split models. */
.comparison-dock{inset:12% 2% 10%;z-index:4}
.comparison-scene .controls{opacity:1;transform:none;pointer-events:auto}
