.collision-app { --blue:#365e83;--gold:#86601a;--sage:#426956;max-width:1200px;margin:auto;padding:0 36px;color:var(--ink);font:15px/1.65 var(--sans); }
@media(prefers-color-scheme:dark){.collision-app{--blue:#9bbadb;--gold:#d9b775;--sage:#9abcaa;}}
.collision-app *{box-sizing:border-box;}.collision-app p{margin:0 0 14px;}.collision-app h1,.collision-app h2,.collision-app h3{font-family:var(--serif);font-weight:400;color:var(--ink);border:0;padding:0;text-transform:none;}
.collision-app h1{font-size:clamp(65px,7.5vw,98px);line-height:1;letter-spacing:-3px;margin:18px 0 0;}.collision-app h1 em{font-style:italic;color:var(--accent);}.collision-app h2{font-size:clamp(30px,3.1vw,40px);line-height:1.16;letter-spacing:-.7px;margin:8px 0;}.collision-app h3{font-size:23px;line-height:1.25;margin:0;}
.collision-app a{color:inherit;text-decoration:none;border:0;}.collision-app a:hover{color:var(--accent);text-decoration:underline;text-underline-offset:4px;}.collision-app .eyebrow{font:10px/1.6 var(--mono);letter-spacing:1.4px;text-transform:uppercase;color:var(--ink-soft);}
.collision-hero{display:grid;grid-template-columns:1.1fr 1fr;gap:70px;padding:48px 0 42px;align-items:center;}.hero-copy{max-width:460px;font-size:15px;color:var(--ink-soft);}.collision-app .hero-line{font:29px/1.2 var(--serif);color:var(--ink);margin-bottom:22px;}.collision-app .text-link{display:inline-block;font-size:12px;color:var(--accent);margin-top:10px;}
.chapter-nav{display:flex;gap:15px 28px;flex-wrap:wrap;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:16px 0;}.chapter-nav a{font-size:11px;}.chapter-nav span{font:10px var(--mono);color:var(--accent);margin-right:7px;}
.collision-app .experiment{margin:0;padding:55px 0;border-bottom:1px solid var(--rule);scroll-margin-top:24px;}.section-heading{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:end;margin-bottom:26px;}.section-heading>p{font-size:14px;color:var(--ink-soft);max-width:450px;margin-bottom:5px;}
.collision-app button{border:1px solid var(--rule);border-radius:3px;background:var(--bg);color:var(--ink-soft);padding:9px 13px;min-height:39px;cursor:pointer;font:12px/1.4 var(--sans);}.collision-app button:hover{border-color:var(--ink-soft);color:var(--ink);}.collision-app button[aria-pressed=true],.collision-app button.primary{background:var(--accent);color:var(--bg);border-color:var(--accent);}.collision-app button:disabled{cursor:default;opacity:.5;}.collision-app :is(button,input,a,summary,pre):focus-visible{outline:2px solid var(--accent);outline-offset:4px;}
.path-workbench{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(270px,1fr);border:1px solid var(--rule);background:var(--bg-panel);}.path-stage{padding:24px;min-width:0;}.panel-title{display:flex;justify-content:space-between;align-items:center;gap:12px;}.panel-title>span{font:9px var(--mono);color:var(--ink-soft);}.wall-legend{display:flex;flex-wrap:wrap;gap:8px 20px;font:10px var(--mono);margin:15px 0;}.wall-one{color:var(--accent);}.wall-two{color:var(--blue);}.wall-mixed{color:var(--gold);}
.collision-app svg{width:100%;height:auto;display:block;overflow:visible;}.collision-app svg text{font:12px var(--mono);fill:var(--ink-soft);}.collision-app svg .svg-label{font:18px var(--serif);fill:var(--ink);}.collision-app svg .fine{font-size:10px;}.collision-app svg .axis{stroke:var(--rule);stroke-width:1;}
.route-picker,.transport-controls,.toolbar{display:flex;gap:7px;flex-wrap:wrap;}.route-picker{margin:12px 0;}.route-picker button{flex:1;}.transport-controls{margin:12px 0 20px;}.transport-controls button{font-size:11px;}.control{display:block;font:11px/1.6 var(--sans);color:var(--ink-soft);margin:20px 0 12px;}.control>span:first-child{display:flex;justify-content:space-between;gap:10px;}.control output{font:11px var(--mono);color:var(--ink);}.collision-app input[type=range]{display:block;width:100%;height:24px;margin:8px 0;accent-color:var(--accent);cursor:pointer;}.range-caption{display:flex;justify-content:space-between;gap:8px;font:9px var(--mono);}
.collision-app .micro{font-size:11px;color:var(--ink-soft);line-height:1.75;margin:12px 0 0;}.path-ledger{padding:25px;border-left:1px solid var(--rule);min-width:0;}.path-ledger h3{min-height:58px;}.ledger-intro{font-size:11px;color:var(--ink-soft);margin-top:10px!important;}.coefficient-pair{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin:20px 0;}.coefficient-pair>div{padding:17px 0;}.coefficient-pair>div+div{border-left:1px solid var(--rule);padding-left:20px;}.coefficient-pair span{display:block;font:12px var(--serif);color:var(--ink-soft);}.coefficient-pair strong{display:block;font:48px/1.3 var(--serif);color:var(--accent);}
.crossing-ribbon{display:flex;flex-wrap:wrap;gap:6px;margin:18px 0 10px;}.crossing-ribbon span{border:1px solid var(--rule);padding:5px 8px;font:11px var(--mono);color:var(--ink-soft);}.crossing-ribbon span.done{border-color:var(--accent);color:var(--accent);background:var(--bg);}.endpoint-pairs{border-top:1px solid var(--rule);margin-top:25px;padding-top:19px;}.endpoint-pairs>div{display:flex;justify-content:space-between;gap:12px;margin:13px 0;font-size:11px;}.endpoint-pairs strong{font:18px var(--mono);}.collision-app .verdict{font-size:12px;color:var(--accent);border-left:2px solid currentColor;padding:8px 12px;margin:18px 0 0;}.collision-app .verdict.good{color:var(--sage);}
.observation{display:grid;grid-template-columns:170px 1fr;gap:24px;padding:20px 24px;border-left:2px solid var(--accent);background:var(--bg-panel);margin:24px 0;}.observation>span{font:10px/1.7 var(--mono);color:var(--accent);}.observation p{margin:0;font-size:14px;}.explanation{display:grid;grid-template-columns:1fr 1fr;gap:40px;font-size:14px;color:var(--ink-soft);padding:5px 0;}
.math-note{border-top:1px solid var(--rule);margin-top:24px;font-size:13px;color:var(--ink-soft);}.math-note summary{cursor:pointer;padding:15px 0;font-size:12px;color:var(--ink);}.math-note>div{max-width:870px;padding:10px 0;line-height:1.85;}.polynomial{font:12px/1.8 var(--mono);background:var(--bg-panel);padding:16px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%;}
.correction-lab{display:grid;grid-template-columns:1fr 1.3fr;border:1px solid var(--rule);background:var(--bg-panel);}.dial-panel{padding:28px;}.big-coefficient{display:block;font:64px/1.3 var(--serif);color:var(--gold);margin:12px 0;}.dial-panel .toolbar{margin:22px 0 10px;}.residual-panel{padding:28px;border-left:1px solid var(--rule);min-width:0;}.residual-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:28px 0;}.residual-grid span{display:block;font:10px var(--mono);color:var(--ink-soft);margin-bottom:15px;}.residual-grid strong{display:block;font:19px/1.5 var(--serif);overflow-wrap:anywhere;}.endpoint-comparison{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:25px 0;border-top:1px solid var(--rule);margin-top:24px;}.endpoint-comparison span{font:10px var(--mono);color:var(--ink-soft);display:block;margin-bottom:12px;}.endpoint-comparison strong{font:25px var(--serif);}.equals-symbol{font:30px var(--serif);color:var(--accent);}.section-reading{max-width:830px;color:var(--ink-soft);font-size:14px;margin:22px 0 0!important;}
.annulus-lab{display:grid;grid-template-columns:1.4fr 1fr;border:1px solid var(--rule);background:var(--bg-panel);}.annulus-picture{padding:25px;min-width:0;}.view-picker{margin:18px 0 5px;}.frame-panel{padding:25px;border-left:1px solid var(--rule);min-width:0;}.matrix-readout{display:grid;grid-template-columns:1fr 1fr;gap:15px;border-top:1px solid var(--rule);padding-top:18px;}.matrix-readout>div{font:11px var(--mono);}.matrix-readout span{display:block;font:9px var(--mono);color:var(--ink-soft);margin-bottom:8px;}.matrix-readout strong{font-weight:500;}.frame-panel svg{max-width:330px;margin:15px auto;}
.observable-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px;}.observable-toolbar .micro{margin:0;max-width:350px;}.period-comparison{display:grid;grid-template-columns:1fr 50px 1fr;gap:25px;background:var(--bg-panel);border:1px solid var(--rule);padding:30px;}.comparison-divider{font:40px var(--serif);display:flex;align-items:center;justify-content:center;color:var(--accent);}.wall-coefficient-label{font:11px var(--mono);color:var(--ink-soft);margin:17px 0!important;}.observable-value{font:47px/1.4 var(--serif);color:var(--accent);min-height:70px;}.observation-copy{font-size:14px;color:var(--ink-soft);margin:20px 0!important;}.normal-form{display:flex;align-items:center;justify-content:space-between;gap:35px;padding:25px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);}.normal-form>div{max-width:700px;}.normal-form p{font-size:13px;color:var(--ink-soft);margin:13px 0 0;}.normal-form button{min-width:185px;}.open-question{margin-top:32px;max-width:850px;}.open-question h3{font-size:29px;}.open-question p:last-child{font-size:14px;color:var(--ink-soft);margin-top:15px;}
.collision-app .threshold-section{margin:0;padding:40px 0;border-bottom:1px solid var(--rule);}.threshold-section summary{display:flex;gap:20px;align-items:center;cursor:pointer;}.threshold-section summary .eyebrow{margin:0;}.threshold-section summary>span:nth-child(2){font:25px var(--serif);}.threshold-section summary>span:last-child{margin-left:auto;font-size:24px;color:var(--accent);}.threshold-lab{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-top:30px;}.threshold-lab svg{max-width:390px;margin:auto;}.threshold-controls{padding:15px 0;}.exponent-inputs{display:flex;gap:20px;}.exponent-inputs label{display:flex;align-items:center;gap:12px;font-size:12px;}.exponent-inputs input{font:15px var(--mono);color:var(--ink);background:var(--bg);border:1px solid var(--rule);padding:8px;width:70px;}.threshold-controls fieldset{border:0;padding:0;margin:24px 0;display:flex;flex-wrap:wrap;gap:15px;}.threshold-controls legend{font:10px var(--mono);color:var(--ink-soft);margin-bottom:12px;}.threshold-controls fieldset label{font-size:12px;}.threshold-controls input[type=radio]{accent-color:var(--accent);}.threshold-value{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--rule);padding-top:18px;}.threshold-value span{font:11px var(--mono);color:var(--ink-soft);}.threshold-value strong{font:40px var(--serif);}.threshold-controls>p{font-size:14px;}#threshold-svg{cursor:pointer;touch-action:manipulation;}
.paper-reading{margin:0!important;padding:50px 0 40px;}.paper-reading>p:not(.eyebrow){max-width:810px;font-size:14px;color:var(--ink-soft);margin:18px 0 26px;}.collision-app .paper-row{display:grid;grid-template-columns:160px 1fr 20px;gap:24px;align-items:baseline;padding:21px 0;border-top:1px solid var(--rule);}.paper-row>span:first-child{font:10px var(--mono);color:var(--ink-soft);}.paper-row strong{font:20px/1.4 var(--serif);}.reading-links{display:flex;flex-wrap:wrap;gap:12px 25px;font-size:11px!important;}.collision-footer{padding:25px 0 40px;border-top:1px solid var(--rule);display:flex;gap:24px;font:10px var(--sans);color:var(--ink-soft);}.collision-footer span{margin-right:auto;}.notice{padding:20px;background:var(--bg-panel);border:1px solid var(--rule);}
@media(max-width:1000px){.collision-app{padding:0 24px;}.collision-hero{gap:35px;}.path-workbench{grid-template-columns:minmax(0,1.5fr) minmax(250px,1fr);}.path-stage,.path-ledger{padding:20px;}.transport-controls button{padding:8px 10px;}.section-heading{gap:30px;}.annulus-lab{grid-template-columns:1.2fr 1fr;}.annulus-picture,.frame-panel{padding:20px;}.residual-grid{grid-template-columns:1fr;gap:13px;}.residual-grid>div{display:flex;justify-content:space-between;align-items:baseline;gap:12px;}.residual-grid span{margin:0;}.residual-grid strong{font-size:17px;}.threshold-lab{gap:30px;}}
@media(max-width:700px){.collision-app{padding:0 18px;}.collision-hero{grid-template-columns:1fr;gap:24px;padding:32px 0;}.collision-app h1{font-size:70px;letter-spacing:-2px;}.hero-copy{font-size:14px;max-width:none;}.collision-app .hero-line{font-size:24px;}.chapter-nav{display:grid;grid-template-columns:1fr 1fr;gap:13px 8px;}.chapter-nav a{font-size:10px;}.collision-app .experiment{padding:35px 0;}.section-heading{grid-template-columns:1fr;gap:10px;}.section-heading>p{max-width:none;}.path-workbench,.correction-lab,.annulus-lab{grid-template-columns:1fr;}.path-stage{padding:20px 14px;}.path-ledger{border-left:0;border-top:1px solid var(--rule);}.path-ledger h3{min-height:0;}.route-picker{flex-wrap:wrap;}.route-picker button{font-size:11px;padding:8px 10px;}.transport-controls{gap:6px;}.transport-controls button{font-size:11px;min-height:40px;}.wall-legend{font-size:9px;gap:9px;}.coefficient-pair strong{font-size:42px;}.observation{grid-template-columns:1fr;gap:8px;padding:18px;}.explanation{grid-template-columns:1fr;gap:0;}.dial-panel,.residual-panel{padding:22px;}.residual-panel{border-left:0;border-top:1px solid var(--rule);}.residual-grid{grid-template-columns:1fr 1fr;}.residual-grid>div{display:block;}.residual-grid span{margin-bottom:12px;}.frame-panel{border-left:0;border-top:1px solid var(--rule);}.annulus-picture{padding:20px 12px;}.annulus-picture .panel-title,.annulus-picture .toolbar,.annulus-picture .transport-controls,.annulus-picture .micro{margin-left:6px;margin-right:6px;}.observable-toolbar{display:block;}.observable-toolbar .micro{margin-top:12px;}.period-comparison{grid-template-columns:1fr;gap:15px;padding:24px;}.period-comparison>div{min-width:0;}.comparison-divider{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);font-size:30px;}.observable-value{font-size:43px;min-height:60px;}.normal-form{display:block;}.normal-form button{margin-top:20px;}.threshold-section summary{flex-wrap:wrap;gap:8px;}.threshold-section summary .eyebrow{width:100%;}.threshold-section summary>span:nth-child(2){font-size:23px;}.threshold-lab{grid-template-columns:1fr;gap:16px;}.threshold-controls{padding:0;}.exponent-inputs{gap:15px;}.exponent-inputs label{gap:8px;}.collision-app .paper-row{grid-template-columns:1fr 20px;gap:8px;}.paper-row>span:first-child{grid-column:1/-1;}.paper-row strong{font-size:19px;}.collision-footer{flex-wrap:wrap;gap:15px;}.collision-footer span{width:100%;}}
@media(prefers-reduced-motion:no-preference){html:has(.collision-app){scroll-behavior:smooth;}}
