.simulation-floating-playback{right:clamp(1rem,3vw,2rem);bottom:max(1rem, env(safe-area-inset-bottom));z-index:100;border:1px solid var(--border-strong);border-radius:var(--radius-round);background:var(--surface-raised);max-width:calc(100vw - 2rem);box-shadow:var(--shadow-md);align-items:center;gap:.35rem;padding:.3rem;display:inline-flex;position:fixed}.simulation-floating-playback[hidden]{display:none}.simulation-floating-playback button{width:2.75rem;min-width:2.75rem;min-height:2.75rem;color:var(--text);cursor:pointer;font:inherit;background:0 0;border:1px solid #0000;border-radius:50%;place-items:center;font-size:1rem;display:grid}.simulation-floating-playback button:hover:not(:disabled),.simulation-floating-playback button[aria-pressed=true]{border-color:var(--accent);background:var(--accent);color:var(--nav-active-text)}.simulation-floating-playback button:disabled{cursor:not-allowed;opacity:.55}.simulation-floating-playback output{min-width:3.9rem;color:var(--text);font-family:var(--font-mono);font-size:var(--text-xs);text-align:center;white-space:nowrap;font-weight:750}@media (width<=720px){.simulation-floating-playback{left:50%;right:auto;bottom:max(.75rem, calc(env(safe-area-inset-bottom) + .25rem));transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.simulation-floating-playback{scroll-behavior:auto}}@media print{.simulation-floating-playback{display:none}}.kinematics-simulation{gap:clamp(2rem,6vw,4.5rem);display:grid}.kinematics-page-intro{grid-template-columns:minmax(0,1.2fr) minmax(18rem,.8fr);align-items:start;gap:clamp(1.5rem,5vw,4rem);display:grid}.kinematics-page-intro h2,.kinematics-observe h2,.kinematics-limits h2{letter-spacing:-.035em;margin-top:.4rem;font-size:clamp(1.7rem,4vw,2.7rem)}.kinematics-page-intro>div:first-child>p:last-child,.kinematics-limits>p:last-child{max-width:58rem;color:var(--text-muted);margin-top:1rem}.kinematics-equations{border-left:3px solid var(--accent);background:var(--formula-bg);font-family:var(--font-mono);gap:.65rem;padding:clamp(1rem,3vw,1.5rem);display:grid}.kinematics-equations span{color:var(--accent);font-weight:750}.kinematics-observe{border-top:2px solid var(--border-strong);grid-template-columns:minmax(12rem,.55fr) minmax(0,1.45fr);gap:clamp(1.5rem,5vw,4rem);padding-top:clamp(1.5rem,4vw,2.5rem);display:grid}.kinematics-observe ol{border-top:1px solid var(--border)}.kinematics-observe li{border-bottom:1px solid var(--border);grid-template-columns:2.5rem minmax(0,1fr);gap:1rem;padding-block:1rem;display:grid}.kinematics-observe li span{color:var(--accent-secondary);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:750}.kinematics-observe li p,.kinematics-limits>p:last-child{color:var(--text-muted)}.kinematics-limits{border-left:3px solid var(--status-warning-border);background:var(--status-warning-bg);padding:clamp(1.25rem,4vw,2rem)}.kinematics-limits h2,.kinematics-limits>p:last-child{color:var(--status-warning-text)}.kinematics-simulation__workspace{grid-template-columns:minmax(17rem,.62fr) minmax(0,1.5fr);align-items:start;gap:clamp(1.25rem,4vw,3rem);display:grid}.kinematics-controls{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);gap:1.5rem;padding:clamp(1rem,3vw,1.5rem);display:grid}.kinematics-controls__header h2,.kinematics-stage h2,.kinematics-playback h2,.kinematics-charts h2{letter-spacing:-.025em;margin-top:.35rem;font-size:clamp(1.25rem,2.6vw,1.7rem)}.kinematics-controls__header>p:last-child,.kinematics-charts__header>p,.kinematics-motion figcaption p{color:var(--text-muted);font-size:var(--text-sm);margin-top:.55rem}.kinematics-presets{border:0;min-width:0}.kinematics-presets legend{color:var(--text-muted);font-size:var(--text-sm);margin-bottom:.6rem;font-weight:700}.kinematics-presets>div{flex-wrap:wrap;gap:.5rem;display:flex}.kinematics-presets button,.kinematics-playback button{border:1px solid var(--border-strong);border-radius:var(--radius-round);background:var(--surface-raised);min-height:2.75rem;color:var(--text);cursor:pointer;transition:border-color var(--transition-fast), background var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);font-weight:700}.kinematics-presets button{font-size:var(--text-xs);padding:.45rem .75rem}.kinematics-presets button:hover,.kinematics-playback button:hover{border-color:var(--accent);transform:translateY(-1px)}.kinematics-presets button[aria-pressed=true],.kinematics-playback button[aria-pressed=true]{border-color:var(--accent);background:var(--accent);color:var(--nav-active-text)}.kinematics-parameters{gap:1.4rem;display:grid}.kinematics-field{border-top:1px solid var(--border);grid-template-columns:minmax(0,1fr) 5.5rem;align-items:center;gap:.55rem .75rem;padding-top:1.1rem;display:grid}.kinematics-field__heading{grid-column:1/-1;justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.kinematics-field__heading label{font-size:var(--text-sm);font-weight:750}.kinematics-field__heading label span,.kinematics-field__heading output{color:var(--accent);font-family:var(--font-mono)}.kinematics-field__heading output{font-size:var(--text-xs);white-space:nowrap}.kinematics-field input[type=range],.kinematics-playback input[type=range]{width:100%;min-width:0;accent-color:var(--accent);cursor:pointer}.kinematics-field__number{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised);grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid;overflow:hidden}.kinematics-field__number input{width:100%;min-width:0;color:var(--text);background:0 0;border:0;padding:.45rem .25rem .45rem .6rem}.kinematics-field__number span{color:var(--text-muted);font-family:var(--font-mono);padding-right:.55rem;font-size:.65rem}.kinematics-field>small{grid-column:1/-1}.kinematics-field [data-param-error]{color:var(--status-warning-text);font-weight:700}.kinematics-field [data-param-error]:empty{display:none}.kinematics-field__limits{color:var(--text-muted);font-family:var(--font-mono);font-size:.65rem}.kinematics-field.is-invalid .kinematics-field__number{border-color:var(--status-warning-border);background:var(--status-warning-bg)}.kinematics-stage{gap:1.25rem;min-width:0;display:grid}.kinematics-motion{border-radius:var(--radius-lg);min-width:0;box-shadow:var(--shadow-sm);padding:clamp(.8rem,2vw,1.25rem)}.kinematics-motion figcaption,.kinematics-readings__header,.kinematics-playback__heading,.kinematics-charts__header{justify-content:space-between;align-items:flex-start;gap:1.25rem;display:flex}.kinematics-motion figcaption ul{color:var(--text-muted);font-size:var(--text-xs);flex-wrap:wrap;justify-content:flex-end;gap:.5rem 1rem;display:flex}.kinematics-motion figcaption li{align-items:center;gap:.35rem;display:inline-flex}.kinematics-motion__legend-initial,.kinematics-motion__legend-current{width:.75rem;height:.75rem;display:inline-block}.kinematics-motion__legend-initial{border-left:3px dashed var(--data-series-2)}.kinematics-motion__legend-current{border:2px solid var(--data-series-1);background:var(--chart-bg);border-radius:50%}.kinematics-motion svg,.kinematics-chart svg{width:100%;height:auto;overflow:hidden}.kinematics-motion__axis,.kinematics-motion__ticks line{stroke:var(--chart-axis);stroke-width:2px;vector-effect:non-scaling-stroke}.kinematics-motion marker path{fill:var(--chart-axis)}.kinematics-motion__ticks text,.kinematics-motion [data-motion-origin] text,.kinematics-motion__unit,.kinematics-motion__current-label{fill:var(--chart-label);font-family:var(--font-mono);font-size:17px}.kinematics-motion__origin{stroke:var(--chart-reference);stroke-dasharray:5 5;stroke-width:1.5px;vector-effect:non-scaling-stroke}.kinematics-motion__initial{stroke:var(--data-series-2);stroke-dasharray:6 4;stroke-width:3px;vector-effect:non-scaling-stroke}.kinematics-motion__current{fill:var(--chart-bg);stroke:var(--data-series-1);stroke-width:4px;vector-effect:non-scaling-stroke}.kinematics-motion__current-label{fill:var(--text);paint-order:stroke;stroke:var(--chart-annotation-halo);stroke-width:5px;stroke-linejoin:round;font-weight:750}.kinematics-readings{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);padding:clamp(1rem,3vw,1.5rem)}.kinematics-direction,.kinematics-playback__heading>p{border:1px solid var(--border);border-radius:var(--radius-round);color:var(--accent);font-family:var(--font-mono);font-size:var(--text-xs);padding:.3rem .7rem;font-weight:700}.kinematics-readings dl{border-top:1px solid var(--border);border-left:1px solid var(--border);grid-template-columns:repeat(4,minmax(0,1fr));margin-top:1.25rem;display:grid}.kinematics-readings dl>div{border-right:1px solid var(--border);border-bottom:1px solid var(--border);min-width:0;padding:.8rem}.kinematics-readings dl>div:last-child{grid-column:span 2}.kinematics-readings dt{color:var(--text-muted);font-size:var(--text-xs)}.kinematics-readings dt span{font-family:var(--font-mono)}.kinematics-readings dd{color:var(--text);font-family:var(--font-mono);white-space:nowrap;margin-top:.25rem;font-size:clamp(1.05rem,2vw,1.35rem);font-weight:750}.kinematics-readings dd small{color:var(--text-muted);font-size:.65em;font-weight:500}.kinematics-turning{border-left:3px solid var(--accent-secondary);background:var(--surface-subtle);color:var(--text-muted);font-size:var(--text-sm);margin-top:1rem;padding:.8rem 1rem}.kinematics-turning strong{color:var(--text)}.kinematics-playback{border-block:1px solid var(--border);padding-block:clamp(1.25rem,3vw,2rem)}.kinematics-playback__controls{grid-template-columns:auto auto minmax(8rem,.35fr) minmax(12rem,1fr);align-items:center;gap:.75rem 1rem;margin-top:1.25rem;display:grid}.kinematics-playback button{justify-content:center;align-items:center;gap:.5rem;padding:.55rem 1rem;display:inline-flex}.kinematics-playback__controls label{color:var(--text-muted);font-size:var(--text-sm);justify-content:space-between;align-items:center;gap:.75rem;font-weight:700;display:flex}.kinematics-playback__controls output{color:var(--accent);font-family:var(--font-mono);white-space:nowrap}.kinematics-charts{gap:1.25rem;display:grid}.kinematics-charts__header>p{text-align:right;max-width:34rem}.kinematics-charts__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.kinematics-chart{border-radius:var(--radius-lg);min-width:0;box-shadow:var(--shadow-sm);padding:.8rem;overflow:clip}.kinematics-chart figcaption{padding:.25rem .35rem .65rem}.kinematics-chart figcaption h3{color:var(--text);font-family:var(--font-mono);font-size:1.15rem}.kinematics-chart figcaption p{color:var(--text-muted);font-size:var(--text-xs);margin-top:.25rem}.kinematics-chart__plot{fill:var(--chart-bg);stroke:var(--chart-grid);stroke-width:1px;vector-effect:non-scaling-stroke}.kinematics-chart__grid line{stroke:var(--chart-grid);stroke-width:.75px;vector-effect:non-scaling-stroke}.kinematics-chart__zero line{stroke:var(--chart-axis);stroke-width:1.25px;vector-effect:non-scaling-stroke}.kinematics-chart__ticks text{fill:var(--chart-label);font-family:var(--font-mono);font-size:10px}.kinematics-chart__ticks .kinematics-chart__axis-label{fill:var(--chart-axis);font-family:var(--font-system);font-size:11px;font-weight:700}.kinematics-chart__curve{fill:none;stroke:var(--data-series-1);stroke-linecap:round;stroke-linejoin:round;stroke-width:3px;vector-effect:non-scaling-stroke}.kinematics-chart__cursor{stroke:var(--chart-reference);stroke-dasharray:5 4;stroke-width:1.5px;vector-effect:non-scaling-stroke}.kinematics-chart__current{fill:var(--chart-bg);stroke:var(--data-series-2);stroke-width:3px;vector-effect:non-scaling-stroke}.kinematics-noscript{border:1px dashed var(--border-dashed);background:var(--surface-subtle);padding:1rem}.kinematics-noscript p{color:var(--text-muted);margin-top:.4rem}@media (width<=920px){.kinematics-page-intro,.kinematics-observe,.kinematics-simulation__workspace{grid-template-columns:1fr}.kinematics-parameters{grid-template-columns:repeat(2,minmax(0,1fr))}.kinematics-field:first-child,.kinematics-field:nth-child(2){border-top:1px solid var(--border)}.kinematics-charts__grid{grid-template-columns:1fr}.kinematics-chart{max-width:42rem;margin-inline:auto}}@media (width<=720px){.kinematics-playback__controls{grid-template-columns:repeat(2,minmax(0,1fr))}.kinematics-playback__controls button{width:100%}.kinematics-playback__controls input[type=range]{grid-column:1/-1}.kinematics-readings dl{grid-template-columns:repeat(2,minmax(0,1fr))}.kinematics-motion figcaption,.kinematics-readings__header,.kinematics-playback__heading,.kinematics-charts__header{flex-direction:column;align-items:flex-start}.kinematics-motion figcaption ul,.kinematics-charts__header>p{text-align:left;justify-content:flex-start}}@media (width<=480px){.kinematics-parameters{grid-template-columns:1fr}.kinematics-field{grid-template-columns:minmax(0,1fr) 5.25rem}.kinematics-field__heading{flex-direction:column;align-items:flex-start;gap:.2rem}.kinematics-playback__controls{grid-template-columns:1fr}.kinematics-playback__controls input[type=range]{grid-column:auto}.kinematics-readings dd{font-size:.98rem}.kinematics-chart{padding-inline:.25rem}.kinematics-chart__ticks text{font-size:12px}}@media (prefers-reduced-motion:reduce){.kinematics-presets button,.kinematics-playback button{transition:none}.kinematics-presets button:hover,.kinematics-playback button:hover{transform:none}}@media print{.kinematics-controls,.kinematics-playback{display:none}.kinematics-simulation__workspace,.kinematics-charts__grid{grid-template-columns:1fr}.kinematics-motion,.kinematics-chart,.kinematics-readings{break-inside:avoid;box-shadow:none}}.simulation-study-cases-disclosure,.simulation-graphs-disclosure{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);min-width:0}.simulation-study-cases-disclosure>summary,.simulation-graphs-disclosure>summary{justify-content:space-between;align-items:center;gap:var(--space-3);cursor:pointer;min-height:2.75rem;color:var(--text);font-size:var(--text-sm);padding:.75rem 1rem;font-weight:800;list-style:none;display:flex}.simulation-study-cases-disclosure>summary::-webkit-details-marker{display:none}.simulation-graphs-disclosure>summary::-webkit-details-marker{display:none}.simulation-study-cases-disclosure>summary:after,.simulation-graphs-disclosure>summary:after{content:"+";color:var(--accent);font-family:var(--font-mono);font-size:1.15rem;line-height:1}.simulation-study-cases-disclosure[open]>summary:after,.simulation-graphs-disclosure[open]>summary:after{content:"−"}.simulation-study-cases-disclosure>summary:hover,.simulation-study-cases-disclosure>summary:focus-visible,.simulation-graphs-disclosure>summary:hover,.simulation-graphs-disclosure>summary:focus-visible{color:var(--accent)}.simulation-study-cases-disclosure>fieldset,.simulation-graphs-disclosure__content{border:0;border-top:1px solid var(--border);padding:1rem}.simulation-study-cases-disclosure>fieldset{margin:0}.simulation-graphs-disclosure{display:block}.simulation-graphs-disclosure__content{gap:1rem;display:grid}.simulation-graphs-disclosure__content>:first-child{margin-top:0}@media print{.simulation-study-cases-disclosure>fieldset,.simulation-graphs-disclosure__content{display:grid!important}}.projectile-simulation{gap:clamp(2rem,6vw,4.5rem);min-width:0;display:grid}.projectile-page-intro{grid-template-columns:minmax(0,1.2fr) minmax(18rem,.8fr);align-items:start;gap:clamp(1.5rem,5vw,4rem);display:grid}.projectile-page-intro h2,.projectile-observe h2,.projectile-limits h2{letter-spacing:-.035em;margin-top:.4rem;font-size:clamp(1.7rem,4vw,2.7rem)}.projectile-page-intro>div:first-child>p:last-child,.projectile-limits>p:last-child{max-width:58rem;color:var(--text-muted);margin-top:1rem}.projectile-equations{border-left:3px solid var(--accent);background:var(--formula-bg);font-family:var(--font-mono);gap:.65rem;padding:clamp(1rem,3vw,1.5rem);display:grid}.projectile-equations math{color:var(--text);font-size:1.05rem;display:block;overflow-x:auto}.projectile-simulation__workspace{grid-template-columns:minmax(17rem,.62fr) minmax(0,1.5fr);align-items:start;gap:clamp(1.25rem,4vw,3rem);display:grid}.projectile-controls,.projectile-readings{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);min-width:0;box-shadow:var(--shadow-sm);gap:1.5rem;padding:clamp(1rem,3vw,1.5rem);display:grid}.projectile-controls__header h2,.projectile-canvas h2,.projectile-readings h2,.projectile-playback h2{letter-spacing:-.025em;margin-top:.35rem;font-size:clamp(1.25rem,2.6vw,1.7rem)}.projectile-controls__header>p:last-child,.projectile-canvas figcaption p:last-child,.projectile-canvas__scale-note{color:var(--text-muted);font-size:var(--text-sm);margin-top:.55rem}.projectile-presets{border:0;min-width:0}.projectile-presets legend{color:var(--text-muted);font-size:var(--text-sm);margin-bottom:.6rem;font-weight:700}.projectile-presets>div{flex-wrap:wrap;gap:.5rem;display:flex}.projectile-presets button,.projectile-playback button{border:1px solid var(--border-strong);border-radius:var(--radius-round);background:var(--surface-raised);min-height:2.75rem;color:var(--text);cursor:pointer;font:inherit;font-size:var(--text-xs);padding:.5rem .8rem;font-weight:700}.projectile-presets button:hover,.projectile-playback button:hover:not(:disabled),.projectile-presets button[aria-pressed=true],.projectile-playback button[aria-pressed=true]{border-color:var(--accent)}.projectile-presets button[aria-pressed=true],.projectile-playback button[aria-pressed=true]{background:var(--accent);color:var(--nav-active-text)}.projectile-playback button:disabled{cursor:not-allowed;opacity:.55}.projectile-parameters{gap:1.4rem;display:grid}.projectile-field{border-top:1px solid var(--border);grid-template-columns:minmax(0,1fr) 5.7rem;align-items:center;gap:.55rem .75rem;padding-top:1.1rem;display:grid}.projectile-field__heading{grid-column:1/-1;justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.projectile-field__heading label{font-size:var(--text-sm);font-weight:750}.projectile-field__heading label span,.projectile-field__heading output{color:var(--accent);font-family:var(--font-mono)}.projectile-field__heading output{font-size:var(--text-xs);white-space:nowrap}.projectile-field input[type=range],.projectile-playback input[type=range]{width:100%;min-width:0;accent-color:var(--accent)}.projectile-field__number{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised);grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid;overflow:hidden}.projectile-field__number input{width:100%;min-width:0;color:var(--text);background:0 0;border:0;padding:.45rem .25rem .45rem .6rem}.projectile-field__number span{color:var(--text-muted);font-family:var(--font-mono);padding-right:.55rem;font-size:.65rem}.projectile-field>small{grid-column:1/-1}.projectile-field [data-param-error]{color:var(--status-warning-text);font-weight:700}.projectile-field [data-param-error]:empty{display:none}.projectile-field__limits{color:var(--text-muted);font-family:var(--font-mono);font-size:.65rem}.projectile-field.is-invalid .projectile-field__number{border-color:var(--status-warning-border);background:var(--status-warning-bg)}.projectile-stage{gap:1.25rem;min-width:0;display:grid}.projectile-canvas{border-radius:var(--radius-lg);min-width:0;box-shadow:var(--shadow-sm);padding:clamp(.8rem,2vw,1.25rem);overflow:hidden}.projectile-canvas figcaption,.projectile-playback__heading{justify-content:space-between;align-items:flex-start;gap:1.25rem;display:flex}.projectile-canvas figcaption ul{color:var(--text-muted);font-size:var(--text-xs);flex-wrap:wrap;justify-content:flex-end;gap:.5rem 1rem;display:flex}.projectile-canvas figcaption li{align-items:center;gap:.35rem;display:inline-flex}.projectile-canvas__legend-trajectory,.projectile-canvas__legend-current{width:.85rem;height:.85rem;display:inline-block}.projectile-canvas__legend-trajectory{border-top:3px solid var(--data-series-1)}.projectile-canvas__legend-current{border:2px solid var(--data-series-1);background:var(--chart-bg);border-radius:50%}.projectile-canvas__surface{border:1px solid var(--chart-grid);border-radius:var(--radius-md);background:var(--chart-bg);width:100%;min-width:0;margin-top:1rem;overflow:hidden}.projectile-canvas__surface canvas{max-width:100%;display:block}.projectile-canvas__error{border-left:3px solid var(--status-warning-border);background:var(--status-warning-bg);color:var(--status-warning-text);margin-top:1rem;padding:.8rem 1rem}.projectile-readings dl{border-top:1px solid var(--border);border-left:1px solid var(--border);display:grid}.projectile-readings__instant{grid-template-columns:repeat(4,minmax(0,1fr))}.projectile-readings__global{grid-template-columns:repeat(3,minmax(0,1fr))}.projectile-readings dl>div{border-right:1px solid var(--border);border-bottom:1px solid var(--border);min-width:0;padding:.8rem}.projectile-readings dt{color:var(--text-muted);font-size:var(--text-xs)}.projectile-readings dt span{font-family:var(--font-mono)}.projectile-readings dd{font-family:var(--font-mono);white-space:nowrap;margin-top:.25rem;font-weight:750}.projectile-readings dd small{color:var(--text-muted);font-size:.72em;font-weight:500}.projectile-playback{border-block:1px solid var(--border);padding-block:clamp(1.25rem,3vw,2rem)}.projectile-playback__heading>p{border:1px solid var(--border);border-radius:var(--radius-round);color:var(--accent);font-family:var(--font-mono);font-size:var(--text-xs);padding:.3rem .7rem;font-weight:700}.projectile-playback__controls{grid-template-columns:auto auto minmax(8rem,.35fr) minmax(12rem,1fr);align-items:center;gap:.75rem 1rem;margin-top:1.25rem;display:grid}.projectile-playback__controls label{color:var(--text-muted);font-size:var(--text-sm);justify-content:space-between;align-items:center;gap:.75rem;font-weight:700;display:flex}.projectile-playback output{color:var(--accent);font-family:var(--font-mono)}.projectile-observe{border-top:2px solid var(--border-strong);grid-template-columns:minmax(12rem,.55fr) minmax(0,1.45fr);gap:clamp(1.5rem,5vw,4rem);padding-top:clamp(1.5rem,4vw,2.5rem);display:grid}.projectile-observe ol{border-top:1px solid var(--border)}.projectile-observe li{border-bottom:1px solid var(--border);grid-template-columns:2.5rem minmax(0,1fr);gap:1rem;padding-block:1rem;display:grid}.projectile-observe li>span{color:var(--accent-secondary);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:750}.projectile-observe li p{color:var(--text-muted)}.projectile-limits{border-left:3px solid var(--status-warning-border);background:var(--status-warning-bg);padding:clamp(1.25rem,4vw,2rem)}.projectile-limits h2,.projectile-limits>p:last-child{color:var(--status-warning-text)}.projectile-noscript{border:1px dashed var(--border-dashed);background:var(--surface-subtle);padding:1rem}.projectile-noscript p{color:var(--text-muted);margin-top:.4rem}@media (width<=920px){.projectile-page-intro,.projectile-observe,.projectile-simulation__workspace{grid-template-columns:1fr}.projectile-parameters{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.projectile-playback__controls{grid-template-columns:repeat(2,minmax(0,1fr))}.projectile-playback__controls button{width:100%}.projectile-playback__controls input[type=range]{grid-column:1/-1}.projectile-readings__instant{grid-template-columns:repeat(2,minmax(0,1fr))}.projectile-canvas figcaption,.projectile-playback__heading{flex-direction:column}.projectile-canvas figcaption ul{justify-content:flex-start}}@media (width<=480px){.projectile-parameters,.projectile-playback__controls,.projectile-readings__global{grid-template-columns:1fr}.projectile-field{grid-template-columns:minmax(0,1fr) 5.25rem}.projectile-field__heading{flex-direction:column;align-items:flex-start;gap:.2rem}.projectile-playback__controls input[type=range]{grid-column:auto}}@media (prefers-reduced-motion:reduce){.projectile-simulation *{scroll-behavior:auto}}@media print{.projectile-controls,.projectile-playback{display:none}.projectile-simulation__workspace{grid-template-columns:1fr}.projectile-canvas,.projectile-readings{break-inside:avoid;box-shadow:none}}.forces-friction-page-intro,.circular-dynamics-page-intro{grid-template-columns:minmax(0,1.15fr) minmax(18rem,.85fr);align-items:start;gap:clamp(1.5rem,5vw,4rem);display:grid}.forces-friction-page-intro h2,.circular-dynamics-page-intro h2,.forces-friction-observe h2,.circular-dynamics-observe h2,.forces-friction-limits h2,.circular-dynamics-limits h2{letter-spacing:-.035em;margin-top:.4rem;font-size:clamp(1.7rem,4vw,2.7rem)}.simulation-model-equations{border-left:3px solid var(--accent);background:var(--formula-bg);gap:.55rem;padding:clamp(1rem,3vw,1.5rem);display:grid}.simulation-model-equations math{color:var(--text);font-size:1.05rem;display:block;overflow-x:auto}.simulation-model-equations p,.forces-friction-page-intro>div:first-child>p:last-child,.circular-dynamics-page-intro>div:first-child>p:last-child,.forces-friction-limits>p:last-child,.circular-dynamics-limits>p:last-child{color:var(--text-muted)}.dynamics-simulation{gap:clamp(1.25rem,4vw,2.5rem);min-width:0;display:grid}.dynamics-workspace{grid-template-columns:minmax(0,1.65fr) minmax(17rem,.65fr);align-items:start;gap:clamp(1rem,3vw,2rem);display:grid}.dynamics-visual-column,.dynamics-controls,.dynamics-data-grid,.dynamics-readings,.dynamics-meter,.dynamics-analysis-card{gap:1rem;min-width:0;display:grid}.dynamics-canvas{border-radius:var(--radius-lg);min-width:0;box-shadow:var(--shadow-sm);padding:clamp(.75rem,2vw,1.25rem);overflow:hidden}.dynamics-canvas figcaption{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.75rem;display:flex}.dynamics-canvas h2,.dynamics-controls h2,.dynamics-readings h2,.dynamics-meter h2{letter-spacing:-.025em;margin-top:.3rem;font-size:clamp(1.2rem,2.6vw,1.65rem)}.dynamics-canvas figcaption p:last-child,.dynamics-controls>div>p:last-child,.dynamics-meter>p{color:var(--text-muted);font-size:var(--text-sm);margin-top:.45rem}.dynamics-canvas__surface{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--content-canvas);width:100%;min-height:360px;overflow:hidden}.dynamics-canvas__surface canvas{max-width:100%;display:block}.dynamics-status{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);flex:none;gap:.15rem;min-width:9rem;padding:.65rem .8rem;display:grid}.dynamics-status span{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;font-size:.68rem;font-weight:800}.dynamics-status strong{font-size:var(--text-sm)}.dynamics-status[data-regime=kinetic],.dynamics-status[data-regime=broken-manual],.dynamics-status[data-regime=broken-overload],.dynamics-status[data-regime=contact-invalid],.dynamics-status[data-regime=geometry-contact]{border-color:var(--status-warning-border);background:var(--status-warning-bg)}.dynamics-view-toggles{color:var(--text-muted);font-size:var(--text-xs);border:0;flex-wrap:wrap;align-items:center;gap:.65rem 1.1rem;padding-top:.75rem;display:flex}.dynamics-view-toggles legend{margin-right:.4rem;font-weight:800}.dynamics-view-toggles label{color:var(--text);align-items:center;gap:.35rem;font-weight:700;display:inline-flex}.dynamics-view-toggles input{accent-color:var(--accent)}.dynamics-vector-legend{color:var(--text-muted);font-size:var(--text-xs)}.dynamics-analysis-grid,.dynamics-chart-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;min-width:0;display:grid}.dynamics-analysis-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);padding:clamp(1rem,2.5vw,1.35rem);overflow:hidden}.dynamics-analysis-card h2{letter-spacing:-.025em;margin-top:.3rem;font-size:clamp(1.15rem,2.4vw,1.55rem)}.dynamics-analysis-card h3{letter-spacing:-.015em;font-size:1rem}.dynamics-analysis-card>p,.dynamics-analysis-card figcaption p,.dynamics-external-fbd>p{color:var(--text-muted);font-size:var(--text-sm)}.dynamics-external-fbd svg{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--content-canvas);width:100%;max-height:18rem;display:block}.dynamics-external-fbd [hidden]{display:none}.dynamics-fbd__orientation{stroke:var(--border-strong);stroke-width:2px;stroke-dasharray:8 6}.dynamics-fbd__body{fill:var(--accent);stroke:var(--accent-strong);stroke-width:2px}.dynamics-fbd__pivot{fill:var(--accent)}.dynamics-fbd__string{stroke:var(--text-muted);stroke-width:3px}.dynamics-fbd__arrow line{stroke:currentColor;stroke-width:3px}.dynamics-fbd__arrow text{fill:currentColor;font-size:14px;font-weight:800}.dynamics-fbd__arrow--applied{color:var(--data-series-1)}.dynamics-fbd__arrow--weight,.dynamics-fbd__arrow--weight-component{color:var(--data-series-2)}.dynamics-fbd__arrow--normal,.dynamics-fbd__arrow--tension{color:var(--data-series-3)}.dynamics-fbd__arrow--friction{color:var(--data-series-4)}.dynamics-fbd__zero{fill:var(--text-muted);font-size:14px;font-weight:750}.dynamics-analysis-toggle{font-size:var(--text-sm);align-items:center;gap:.45rem;font-weight:750;display:inline-flex}.dynamics-analysis-toggle input{accent-color:var(--accent)}.dynamics-equation-list{gap:.65rem;display:grid}.dynamics-equation-list math{border-left:3px solid var(--accent);background:var(--formula-bg);max-width:100%;color:var(--text);padding:.65rem .75rem;font-size:.98rem;overflow-x:auto}.dynamics-equation-list>p{color:var(--text-muted);font-size:var(--text-sm)}.simulation-linked-chart{gap:.65rem;min-width:0;display:grid}.simulation-linked-chart svg{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--content-canvas);width:100%;min-width:0;display:block}.simulation-linked-chart__plot{fill:var(--surface)}.simulation-linked-chart__grid line{stroke:var(--border);stroke-width:1px}.simulation-linked-chart__ticks text{fill:var(--text-muted);font-size:11px}.simulation-linked-chart__ticks .simulation-linked-chart__axis-label{fill:var(--text);font-size:12px;font-weight:750}.simulation-linked-chart__zero{stroke:var(--border-strong);stroke-width:1.5px}.simulation-linked-chart__cursor{stroke:var(--text-muted);stroke-width:1.5px;stroke-dasharray:4 4}.simulation-linked-chart__event{stroke:var(--status-warning-text);stroke-width:2px;stroke-dasharray:5 4}.simulation-linked-chart__event-label{fill:var(--status-warning-text);font-size:11px;font-weight:800}.simulation-linked-chart__reference{stroke:var(--status-warning-text);stroke-width:2px;stroke-dasharray:9 5}.simulation-linked-chart__series{fill:none;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.simulation-linked-chart__series--1{stroke:var(--data-series-1)}.simulation-linked-chart__series--2{stroke:var(--data-series-3);stroke-dasharray:10 5}.simulation-linked-chart__series--3{stroke:var(--data-series-4);stroke-dasharray:3 4}.simulation-linked-chart__current{stroke:var(--surface);stroke-width:2px}.simulation-linked-chart__current--1{fill:var(--data-series-1)}.simulation-linked-chart__current--2{fill:var(--data-series-3)}.simulation-linked-chart__current--3{fill:var(--data-series-4)}.simulation-linked-chart [hidden]{display:none}.simulation-linked-chart__legend{color:var(--text-muted);flex-wrap:wrap;gap:.45rem 1rem;padding:0;font-size:.7rem;list-style:none;display:flex}.simulation-linked-chart__legend li{align-items:center;gap:.4rem;display:inline-flex}.simulation-linked-chart__swatch{border-top:3px solid var(--data-series-1);width:1.8rem;display:inline-block}.simulation-linked-chart__swatch--2{border-color:var(--data-series-3);border-top-style:dashed}.simulation-linked-chart__swatch--3{border-color:var(--data-series-4);border-top-style:dotted}.simulation-linked-chart__swatch--reference{border-color:var(--status-warning-text);border-top-style:dashed}.dynamics-relationship__state{font-weight:750}.dynamics-data-grid{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}.dynamics-readings,.dynamics-meter,.dynamics-controls,.dynamics-playback{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);padding:clamp(1rem,2.5vw,1.35rem)}.dynamics-readings dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;display:grid}.dynamics-readings dl>div,.dynamics-meter dl>div{border-top:1px solid var(--border);padding-top:.55rem}.dynamics-readings dt,.dynamics-meter dt{color:var(--text-muted);font-size:.68rem;font-weight:750}.dynamics-readings dt span{color:var(--accent);font-family:var(--font-mono)}.dynamics-readings dd,.dynamics-meter dd{font-family:var(--font-mono);margin-top:.2rem;font-size:.95rem;font-weight:750}.dynamics-readings dd small{color:var(--text-muted);font-size:.7rem}.dynamics-meter progress{width:100%;height:1rem;accent-color:var(--accent)}.dynamics-meter dl{grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem;display:grid}.dynamics-contact-warning{border:1px solid var(--status-warning-border);border-radius:var(--radius-md);background:var(--status-warning-bg);color:var(--status-warning-text);padding:1rem;font-weight:750}.dynamics-controls{position:sticky;top:5.5rem}.dynamics-presets{border:0;min-width:0}.dynamics-presets legend{color:var(--text-muted);font-size:var(--text-xs);margin-bottom:.55rem;font-weight:800}.dynamics-presets>div{flex-wrap:wrap;gap:.45rem;display:flex}.dynamics-presets button,.dynamics-playback button{border:1px solid var(--border-strong);border-radius:var(--radius-round);background:var(--surface-raised);min-height:2.65rem;color:var(--text);cursor:pointer;font:inherit;padding:.48rem .75rem;font-size:.72rem;font-weight:750}.dynamics-presets button:hover,.dynamics-presets button[aria-pressed=true],.dynamics-playback button:hover:not(:disabled),.dynamics-playback button[aria-pressed=true]{border-color:var(--accent)}.dynamics-presets button[aria-pressed=true],.dynamics-playback button[aria-pressed=true]{background:var(--accent);color:var(--nav-active-text)}.dynamics-playback button:disabled{cursor:not-allowed;opacity:.5}.dynamics-controls form,.dynamics-controls details>div{gap:1rem;display:grid}.dynamics-controls details{border-top:1px solid var(--border);padding-top:1rem}.dynamics-controls summary{cursor:pointer;font-size:var(--text-sm);margin-bottom:1rem;font-weight:800}.dynamics-field{grid-template-columns:minmax(0,1fr) 5.6rem;align-items:center;gap:.5rem .65rem;display:grid}.dynamics-field__heading{grid-column:1/-1;justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.dynamics-field__heading label{font-size:var(--text-xs);font-weight:750}.dynamics-field__heading label span,.dynamics-field__heading output{color:var(--accent);font-family:var(--font-mono)}.dynamics-field__heading output{white-space:nowrap;font-size:.68rem}.dynamics-field input[type=range]{width:100%;min-width:0;accent-color:var(--accent)}.dynamics-field__number{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised);grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid;overflow:hidden}.dynamics-field__number input{width:100%;min-width:0;color:var(--text);background:0 0;border:0;padding:.45rem .2rem .45rem .55rem}.dynamics-field__number span{color:var(--text-muted);font-family:var(--font-mono);padding-right:.45rem;font-size:.62rem}.dynamics-field>small{color:var(--status-warning-text);grid-column:1/-1}.dynamics-field>small:empty{display:none}.dynamics-playback{justify-content:space-between;align-items:center;gap:1rem;display:flex}.dynamics-playback>div{flex-wrap:wrap;gap:.65rem;display:flex}.dynamics-playback>p{color:var(--text-muted);font-size:var(--text-sm);font-weight:750}.forces-friction-observe ol,.circular-dynamics-observe ol{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1.5rem;display:grid}.forces-friction-observe li,.circular-dynamics-observe li{border-top:1px solid var(--border);grid-template-columns:auto 1fr;gap:.75rem;padding-top:1rem;display:grid}.forces-friction-observe li>span,.circular-dynamics-observe li>span{color:var(--accent);font-family:var(--font-mono);font-weight:800}@media (width<=960px){.dynamics-workspace{grid-template-columns:1fr}.dynamics-controls{position:static}}@media (width<=680px){.forces-friction-page-intro,.circular-dynamics-page-intro,.dynamics-data-grid,.dynamics-analysis-grid,.dynamics-chart-grid,.forces-friction-observe ol,.circular-dynamics-observe ol{grid-template-columns:1fr}.dynamics-canvas figcaption,.dynamics-playback{flex-direction:column;align-items:stretch}.dynamics-status{min-width:0}.dynamics-canvas__surface{min-height:360px}.dynamics-readings dl,.dynamics-meter dl{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){.dynamics-simulation *{scroll-behavior:auto!important}}@media print{.dynamics-controls,.dynamics-playback{break-inside:avoid}.dynamics-controls{position:static}.simulation-floating-playback{display:none!important}}.pulley-systems-page-intro{grid-template-columns:minmax(0,1.15fr) minmax(18rem,.85fr);align-items:start;gap:clamp(1.5rem,5vw,4rem);display:grid}.pulley-systems-page-intro h2,.pulley-systems-observe h2,.pulley-systems-limits h2{letter-spacing:-.035em;margin-top:.4rem;font-size:clamp(1.7rem,4vw,2.7rem)}.pulley-scenario-picker{border:0;gap:1rem;padding:0;display:grid}.pulley-scenario-picker legend{letter-spacing:-.03em;gap:.3rem;width:100%;font-size:clamp(1.35rem,3vw,2rem);font-weight:850;display:grid}.pulley-scenario-picker>div{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;display:grid}.pulley-scenario-picker button{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);min-height:8rem;color:var(--text);text-align:left;cursor:pointer;gap:.35rem;padding:1rem;display:grid}.pulley-scenario-picker button:hover,.pulley-scenario-picker button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);box-shadow:var(--shadow-sm)}.pulley-scenario-picker button:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.pulley-scenario-picker button>span{color:var(--accent);letter-spacing:.1em;font-size:.72rem;font-weight:850}.pulley-scenario-picker button strong{font-size:.98rem;line-height:1.25}.pulley-scenario-picker button small{color:var(--text-muted);line-height:1.4}.pulley-workspace{grid-template-columns:minmax(0,1.75fr) minmax(18rem,.62fr)}.pulley-canvas{min-height:480px}.pulley-live-readings{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);gap:1rem;padding:clamp(1rem,2.5vw,1.35rem);display:grid}.pulley-live-readings h2{margin-top:.3rem;font-size:clamp(1.2rem,2.6vw,1.65rem)}.pulley-reading-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;display:grid}.pulley-reading-grid>div{border:1px solid var(--border);border-radius:var(--radius-md);min-width:0;padding:.75rem}.pulley-reading-grid dt{color:var(--text-muted);font-size:var(--text-xs);font-weight:750}.pulley-reading-grid dd{font-size:var(--text-sm);overflow-wrap:anywhere;margin:.3rem 0 0;font-weight:750}.pulley-analysis-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:1rem;display:grid}.pulley-fbd-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.pulley-fbd-grid:has(figure:nth-child(3)){grid-template-columns:repeat(3,minmax(0,1fr))}.pulley-fbd-grid figure{min-width:0;margin:0}.pulley-fbd-grid svg{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--content-canvas);width:100%;display:block}.pulley-fbd-grid figcaption{font-size:var(--text-xs);justify-content:space-between;gap:.5rem;padding-top:.4rem;display:flex}.pulley-fbd-grid figcaption span{color:var(--text-muted)}.pulley-fbd-grid text{font-size:13px;font-weight:850}.pulley-fbd__body-label{fill:var(--surface)}.pulley-fbd__label{fill:var(--text);font-size:11px!important}.pulley-fbd__arrow{stroke-width:3px}.pulley-fbd__arrow--up{color:var(--data-series-3);stroke:currentColor}.pulley-fbd__arrow--down{color:var(--data-series-2);stroke:currentColor}.pulley-fbd__arrow--left{color:var(--data-series-4);stroke:currentColor}.pulley-fbd__arrow--right{color:var(--data-series-1);stroke:currentColor}.pulley-numeric-substitution{color:var(--text-muted);font-family:var(--font-mono);font-size:var(--text-xs);overflow-wrap:anywhere}.pulley-constraint-card{grid-template-columns:minmax(12rem,.35fr) minmax(0,1fr);align-items:center}.pulley-constraint-card math{max-width:100%;font-size:1.15rem;overflow-x:auto}.pulley-constraint-card__check{grid-column:1/-1}.pulley-playback label{font-size:var(--text-sm);align-items:center;gap:.5rem;font-weight:750;display:inline-flex}.pulley-playback select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);min-height:2.5rem;color:var(--text);padding:0 .6rem}.pulley-controls [hidden],.pulley-simulation [hidden]{display:none!important}@media (width<=960px){.pulley-systems-page-intro,.pulley-workspace,.pulley-analysis-grid{grid-template-columns:1fr}.pulley-scenario-picker>div{grid-template-columns:repeat(2,minmax(0,1fr))}.pulley-controls{position:static}}@media (width<=620px){.pulley-scenario-picker>div,.pulley-reading-grid,.pulley-fbd-grid,.pulley-fbd-grid:has(figure:nth-child(3)),.pulley-constraint-card{grid-template-columns:1fr}.pulley-scenario-picker button{min-height:0}.pulley-canvas{min-height:480px}.pulley-playback{align-items:stretch}.pulley-playback>div{grid-template-columns:repeat(3,minmax(0,1fr));width:100%;display:grid}.pulley-playback button{min-height:2.9rem;padding-inline:.55rem}}
