:root{--ink:#17201d;--paper:#f3f0e7;--dark:#101715;--green:#25483d;--mint:#9bc9b3;--gold:#c49a54;--line:rgba(23,32,29,.18);--serif:Georgia,'Times New Roman',serif;--sans:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.55}a{color:inherit}button,input{font:inherit}.hero{min-height:100svh;background:var(--dark);color:var(--paper);position:relative;overflow:hidden;padding:0 clamp(24px,6vw,90px)}.hero nav{height:88px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff28;position:relative;z-index:2}.hero nav a{text-decoration:none;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase}.hero nav .brand{font-family:var(--serif);font-size:1rem;letter-spacing:.04em;text-transform:none}.hero nav div{display:flex;gap:28px}.hero-copy{position:relative;z-index:2;max-width:750px;padding:clamp(70px,12vh,145px) 0 80px}.kicker,.section-head>p,.closing>p:first-child{color:var(--gold);text-transform:uppercase;letter-spacing:.18em;font-size:.73rem;font-weight:700}.hero h1,.section-head h2,.closing h2{font-family:var(--serif);font-weight:400;line-height:.92;letter-spacing:-.045em}.hero h1{font-size:clamp(4rem,10vw,9rem);margin:.18em 0 .28em}.hero-copy>p:not(.kicker){max-width:580px;color:#c8cfcb;font-size:clamp(1rem,1.6vw,1.25rem)}.cta{display:inline-block;margin-top:32px;text-transform:uppercase;letter-spacing:.13em;font-size:.76rem;text-decoration:none;border-bottom:1px solid var(--gold);padding-bottom:8px}.hero-orbit{position:absolute;width:min(60vw,780px);aspect-ratio:1;right:-15vw;bottom:-21vw;border:1px solid #c49a5459;border-radius:50%;display:grid;place-items:center}.hero-wheel{width:64%;aspect-ratio:1;border:14px solid #9bc9b338;border-radius:50%;position:relative;animation:spin 28s linear infinite}.hero-wheel i{position:absolute;left:50%;top:50%;width:85%;height:4px;background:#9bc9b333;transform-origin:left}.hero-wheel i:nth-child(2){transform:rotate(45deg)}.hero-wheel i:nth-child(3){transform:rotate(90deg)}.hero-wheel i:nth-child(4){transform:rotate(135deg)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes dash{to{stroke-dashoffset:-34}}.chapter{padding:clamp(80px,10vw,145px) clamp(24px,6vw,90px);border-bottom:1px solid var(--line)}.section-head{display:grid;grid-template-columns:1fr 1.5fr 1fr;gap:45px;align-items:end;margin-bottom:70px}.section-head p{margin:0}.section-head h2{font-size:clamp(3rem,6vw,6.4rem);margin:0}.section-head span{color:#65706c;max-width:340px}.movement-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,.8fr);gap:55px;align-items:center}.movement-stage svg{width:100%;display:block}.case{fill:#d9d3c6;stroke:var(--ink);stroke-width:3}.plate{fill:#e9e4da;stroke:#918d83;stroke-width:2}.energy-path{fill:none;stroke:var(--gold);stroke-width:3;stroke-dasharray:7 10;animation:dash 2s linear infinite}.rotor{fill:#25483dd1;stroke:var(--ink);stroke-width:3}.disc{fill:#d1b77e;stroke:var(--ink);stroke-width:3}.teeth{fill:none;stroke:var(--ink);stroke-width:10;stroke-dasharray:3 7}.escape-teeth{stroke-dasharray:2 8}.hub,.jewel{fill:var(--gold);stroke:var(--ink);stroke-width:2}.balance-ring{fill:none;stroke:var(--green);stroke-width:11}.spokes{fill:none;stroke:var(--green);stroke-width:5}.hands path{fill:none;stroke:var(--ink);stroke-width:4;stroke-linecap:round}.movement-stage text{font-size:11px;letter-spacing:.12em;font-weight:700}.part{cursor:pointer;outline:none}.hit{fill:transparent;stroke:transparent;stroke-width:3}.part:hover>.hit,.part.selected>.hit{stroke:var(--gold);stroke-dasharray:5 6}.info-card{border-top:4px solid var(--green);background:#e8e2d6;padding:38px}.info-card>p:first-child{font-size:.7rem;text-transform:uppercase;letter-spacing:.14em;color:#6b746f}.info-card h3{font-family:var(--serif);font-size:2.5rem;font-weight:400;margin:.35em 0}.rule{height:1px;background:var(--line);margin:25px 0}.energy-chain{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;gap:7px;margin-top:35px;font-size:.65rem;text-transform:uppercase;letter-spacing:.08em}.energy-chain b{color:var(--gold)}.dark{background:var(--dark);color:var(--paper)}.dark .section-head span{color:#aeb8b3}.controls{display:flex;justify-content:flex-end;align-items:center;gap:32px;margin-bottom:35px}.controls button,.lab-actions button{border:0;background:var(--gold);color:var(--dark);padding:12px 20px;text-transform:uppercase;letter-spacing:.09em;font-size:.72rem;font-weight:700;cursor:pointer}.controls label{display:flex;align-items:center;gap:12px;font-size:.76rem;text-transform:uppercase;letter-spacing:.08em}.controls input,.lab-controls input{accent-color:var(--gold)}.train-wrap{overflow-x:auto}.train-wrap svg{display:block;min-width:850px;width:100%}.power-line{stroke:#c49a544d;stroke-width:3}.train-gear circle:first-child{fill:#263a34;stroke:var(--mint);stroke-width:3}.train-gear .tooth-ring{fill:none;stroke:var(--mint);stroke-width:12;stroke-dasharray:3 9}.train-gear .pinion{fill:var(--gold);stroke:var(--dark);stroke-width:2}.pallet,.pallet-large{fill:var(--gold);stroke:var(--ink);stroke-width:3}.train-labels text,.oscillator text{fill:var(--paper);font-size:12px;letter-spacing:.11em;text-anchor:middle;font-weight:700}.train-labels .small{fill:#92a19a;font-size:10px;font-weight:400}.footnote{fill:#7f8c86;font-size:10px}.concept-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#ffffff24;margin-top:45px}.concept-grid article{background:var(--dark);padding:28px}.concept-grid b{font-family:var(--serif);font-size:1.35rem;font-weight:400;color:var(--mint)}.concept-grid p{color:#aeb8b3;font-size:.9rem}.osc-grid{display:grid;grid-template-columns:1.5fr .8fr;gap:55px;align-items:center}.oscillator{width:100%;background:#dcd6ca}.oscillator text{fill:var(--ink)}.impulse-line{stroke:var(--gold);stroke-width:4;stroke-dasharray:8 8;animation:dash 1.3s linear infinite}.hairspring-static{fill:none;stroke:var(--gold);stroke-width:5;stroke-linecap:round}.beat-steps{list-style:none;margin:0;padding:0}.beat-steps li{display:grid;grid-template-columns:42px 1fr;gap:20px;padding:23px 0;border-top:1px solid var(--line)}.beat-steps li>b{color:var(--gold);font-family:var(--serif);font-size:2rem}.beat-steps strong{font-family:var(--serif);font-size:1.5rem;font-weight:400}.beat-steps p{margin:.3em 0 0;color:#66706c;font-size:.9rem}.lab{background:#e3ddd0}.lab-controls{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;margin-bottom:30px}.lab-controls label{display:grid;grid-template-columns:1fr auto;gap:10px;font-size:.77rem;text-transform:uppercase;letter-spacing:.09em}.lab-controls input{grid-column:1/-1;width:100%}.stats{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);margin-bottom:20px}.stats>div{padding:22px 25px;border-right:1px solid var(--line);display:flex;flex-direction:column}.stats>div:last-child{border:0}.stats small{text-transform:uppercase;letter-spacing:.11em;color:#6c756f}.stats strong{font-family:var(--serif);font-size:clamp(1.4rem,3vw,2.1rem);font-weight:400}.stats span{font-size:.78rem;color:#6c756f}.lab-stage svg{width:100%;max-height:680px}.neutral{stroke:#b0a99d;stroke-width:2;stroke-dasharray:5 8}.lab-spring{fill:none;stroke:var(--gold);stroke-width:6;stroke-linecap:round}.fixed{fill:var(--ink)}.torque,.motion{fill:none;stroke-width:5;marker-end:url(#arrow-gold)}.torque{stroke:var(--gold)}.motion{stroke:var(--green);marker-end:url(#arrow-mint)}#arrow-gold path{fill:var(--gold)}#arrow-mint path{fill:var(--green)}.flash{fill:var(--gold);opacity:0}.flash.on{opacity:.24}.lab-label{font-size:13px;font-weight:700;letter-spacing:.1em;text-anchor:middle}.lab-sub{font-size:11px;fill:#6a736e;text-anchor:middle}.lab-label.left,.lab-sub.left{text-anchor:start}.lab-actions{display:flex;justify-content:center;gap:12px}.lab-actions .secondary{background:transparent;border:1px solid var(--ink)}.lab-detail{text-align:center;min-height:26px}.formula{max-width:840px;margin:70px auto 0;border-left:4px solid var(--gold);padding:10px 0 10px 35px}.formula span{font-size:.7rem;text-transform:uppercase;letter-spacing:.14em;color:#68716d}.formula strong{display:block;font-family:var(--serif);font-size:clamp(1.6rem,4vw,3rem);font-weight:400;margin:.35em 0}.closing{background:var(--green);color:var(--paper);padding:clamp(90px,13vw,180px) clamp(24px,12vw,180px)}.closing h2{font-size:clamp(3.3rem,8vw,8rem);margin:.25em 0}.closing>p:last-child{max-width:790px;color:#c7d5ce;font-size:1.08rem}footer{background:var(--dark);color:#9ba6a1;padding:35px clamp(24px,6vw,90px);display:flex;justify-content:space-between;align-items:center;font-size:.76rem}footer span{color:var(--paper);font-family:var(--serif);font-size:1rem}footer a{text-decoration:none}@media(max-width:900px){.hero nav div{display:none}.section-head{grid-template-columns:1fr}.movement-grid,.osc-grid{grid-template-columns:1fr}.concept-grid,.lab-controls,.stats{grid-template-columns:1fr}.stats>div{border-right:0;border-bottom:1px solid var(--line)}.hero-orbit{width:90vw;right:-48vw;bottom:-18vw}.controls{justify-content:flex-start;flex-wrap:wrap}}@media(max-width:600px){.chapter{padding-left:18px;padding-right:18px}.hero{padding:0 20px}.hero h1{font-size:3.8rem}.section-head{margin-bottom:45px}.section-head h2{font-size:3.25rem}.movement-stage,.lab-stage{overflow-x:auto}.movement-stage svg{min-width:620px}.lab-stage svg{min-width:700px}.info-card{padding:28px}.controls label{flex-wrap:wrap}.controls input{width:100%}footer{align-items:flex-start;gap:15px;flex-direction:column}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-wheel,.energy-path,.impulse-line{animation:none}}
