:root{--ink:#132532;--muted:#5a7181;--paper:#f5f7f9;--line:#dce5eb;--blue:#067597;--stage:#07131f;--stage-ink:#edf8ff;--mint:#adf2d4;color-scheme:light;font-family:Inter,"Segoe UI",Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink)}button,input,a{touch-action:manipulation}button,a{font:inherit}button{cursor:pointer}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}button{border:1px solid var(--line);border-radius:8px;padding:10px 15px;background:white;color:var(--ink);font-size:13px}button:hover{border-color:#6c9aaa;background:#edf5f8}button:disabled{cursor:wait;opacity:.6}:focus-visible{outline:3px solid #167fa9;outline-offset:3px}.masthead{display:flex;justify-content:space-between;align-items:center;padding:24px 4vw;border-bottom:1px solid var(--line);background:#fff}.wordmark{display:flex;align-items:center;gap:12px;color:var(--ink);font-weight:700;font-size:22px}.wordmark:hover{text-decoration:none}.brand-mark{display:flex;justify-content:center;align-items:center;color:#fff;background:linear-gradient(145deg,#087c9b,#8476df);height:43px;width:43px;border-radius:14px;font-size:34px}.wordmark small{display:block;font-size:9px;letter-spacing:2px;font-weight:500;margin-top:4px}.top-actions{display:flex;gap:15px;align-items:center}.tag{font-size:11px;letter-spacing:.4px;color:var(--muted)}.intro{max-width:1510px;margin:auto;display:flex;justify-content:space-between;align-items:center;gap:30px;padding:44px 4vw 38px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.5px;color:var(--muted);margin:0 0 10px}h1{font-size:clamp(30px,3vw,45px);font-weight:650;line-height:1.12;margin:0;letter-spacing:-1.8px}.intro>p{max-width:390px;font-size:15px;line-height:1.7;color:var(--muted)}.workspace{max-width:1510px;margin:0 auto;display:grid;grid-template-columns:245px minmax(0,1fr);gap:30px;padding:0 4vw 44px}.library-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.library h2{font-size:12px;margin:0}.library nav{display:flex;flex-direction:column;gap:5px}.scene-nav{display:flex;gap:12px;align-items:flex-start;text-align:left;background:transparent;border-color:transparent;padding:11px 9px;width:100%;font-size:12px;line-height:1.45;min-height:46px}.scene-nav span{font-size:10px;letter-spacing:1px;color:var(--muted);padding-top:2px}.scene-nav.active{background:var(--ink);color:#fff;border-color:var(--ink)}.scene-nav.active span{color:#9ce4ef}.library-group{font-size:9px;font-weight:700;letter-spacing:1.4px;color:var(--muted);margin:17px 8px 7px}.scene-heading{display:flex;align-items:end;justify-content:space-between;gap:12px;margin:0 0 17px}h2{font-size:26px;font-weight:650;letter-spacing:-.7px;margin:0}.simulation-label{font-size:8px;letter-spacing:1px;color:var(--blue);white-space:nowrap;line-height:1.5}#stage{background:var(--stage);border-radius:16px;overflow:hidden;box-shadow:0 24px 44px -32px #162f4e80}#motion-canvas{width:100%;height:auto;display:block}.transport{display:flex;gap:12px;align-items:center;border-top:1px solid #26414e;padding:14px 18px;color:#b9d1df;background:#0a1b28}.transport button{background:#132e40;border-color:#315265;color:#e7f4fc;padding:8px 10px;min-height:36px}.transport button:hover{background:#25495c}.transport-buttons{display:flex;gap:5px;white-space:nowrap}.transport-buttons #play-btn{min-width:110px;background:#b0e5ee;color:#082937}.scrub-label{font-size:10px}#time-slider{min-width:50px;flex:1;accent-color:#6dd8e9}#time-output{font-family:monospace;font-size:10px;white-space:nowrap}#fullscreen-btn{font-size:17px}.experiment-controls{margin-top:30px}.control-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}h3{font-size:17px;font-weight:650;margin:0 0 10px}.control-heading h3{margin:0}.control-heading button{background:transparent;border:0;font-size:11px;padding:5px}#parameter-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.parameter{display:flex;flex-direction:column;gap:9px;font-size:11px}.parameter-title{display:flex;justify-content:space-between;gap:8px;align-items:start}.parameter output{color:var(--blue);white-space:nowrap;font-variant-numeric:tabular-nums}.parameter input{width:100%;accent-color:var(--blue)}.story{display:grid;grid-template-columns:1.3fr 1fr;gap:34px;border-top:1px solid var(--line);margin-top:28px;padding-top:26px;font-size:13px;line-height:1.75}.story h3{font-size:22px;line-height:1.35;letter-spacing:-.4px}#scene-summary{color:var(--muted)}.equation{font-family:"Cambria Math",Georgia,serif;font-size:20px;background:#e7eff3;padding:13px 18px;border-radius:8px;margin:20px 0}dl{display:flex;flex-wrap:wrap;gap:4px 16px;line-height:1.6;font-size:11px}dt{font-weight:650}dd{margin:0;color:var(--muted)}#scene-limits{margin:0;padding-left:18px;color:var(--muted)}#scene-limits li{margin-bottom:12px}summary{cursor:pointer;font-size:12px;color:var(--blue);font-weight:600}#scene-sources{padding-left:18px;font-size:11px}.downloads{margin-top:30px;border-top:1px solid var(--line);padding-top:24px;display:flex;gap:18px;justify-content:space-between;flex-wrap:wrap;align-items:center}.downloads p{color:var(--muted);font-size:12px;margin:0;line-height:1.7}.download-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.download-actions a{border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:11px;background:#fff}.download-actions button{font-size:11px}.downloads #record-status{flex-basis:100%;color:var(--blue);min-height:18px}.historical-example{margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}.historical-example img{max-width:100%;margin-top:20px;height:auto}.historical-example p{font-size:12px;line-height:1.7;color:var(--muted)}.historical-example a{font-size:11px}footer{border-top:1px solid var(--line);padding:24px 4vw;display:flex;justify-content:space-between;gap:24px;align-items:center;font-size:10px;color:var(--muted)}footer p{max-width:550px;line-height:1.6}#export-canvas{display:none}.export-mode #app{display:none}.export-mode #export-canvas{display:block;width:auto;height:auto}#stage:fullscreen{display:flex;flex-direction:column;justify-content:center;border-radius:0;width:100vw;height:100vh;background:#07131f}#stage:fullscreen canvas{max-height:calc(100vh - 70px);object-fit:contain}#stage:fullscreen .transport{flex-shrink:0}body.presentation .masthead,body.presentation .intro,body.presentation .library,body.presentation .story{display:none}body.presentation .workspace{display:block;padding-top:20px}body.presentation .scene-heading{margin-top:20px}@media(max-width:1150px){.workspace{grid-template-columns:190px minmax(0,1fr);gap:20px}.scene-nav{font-size:11px;gap:8px}.transport{gap:8px;padding:10px}.scrub-label{display:none}#parameter-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.simulation-label{font-size:7px}.scene-heading h2{font-size:23px}.story{gap:25px}}@media(max-width:760px){.masthead{padding:18px 20px}.top-actions .tag{display:none}.wordmark{font-size:18px}.brand-mark{height:37px;width:37px}.intro{padding:30px 20px;display:block}.intro>p{font-size:13px;max-width:none;margin-top:18px}.workspace{display:block;padding:0 20px 30px}.library{margin-bottom:23px}.library nav{display:flex;flex-direction:row;flex-wrap:wrap;gap:4px}.library-group{flex-basis:100%;margin:10px 0 3px}.scene-nav{width:auto;flex:1 1 44%;min-height:38px;padding:9px 8px;border:1px solid var(--line);font-size:10px}.library-top{margin-bottom:8px}.scene-heading h2{font-size:22px}.scene-heading{align-items:start;flex-direction:column;gap:3px}.simulation-label{font-size:8px}.transport{flex-wrap:wrap;gap:8px;padding:10px}.transport-buttons{order:0}#fullscreen-btn{margin-left:auto}#time-slider{order:3;width:100%;flex-basis:64%}#time-output{order:4}.transport button{min-height:40px}#parameter-controls{grid-template-columns:1fr 1fr;gap:20px 16px}.parameter{font-size:11px}.parameter-title{flex-direction:column;gap:4px}.parameter input{height:30px}.story{grid-template-columns:1fr;gap:24px}.story h3{font-size:21px}.equation{font-size:18px;overflow-wrap:anywhere}.downloads{display:block}.download-actions{margin-top:15px}.download-actions a,.download-actions button{min-height:44px;display:flex;align-items:center}.historical-example{margin-top:25px}footer{flex-direction:column;align-items:start;padding:20px}.intro h1{font-size:34px}h1{letter-spacing:-1px}}
