.df-chapter{padding:76px 0 18px}.df-hero{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);gap:30px;align-items:start}.df-hero-copy :is(h1,h2){max-width:23ch;margin:.45rem 0 1rem}.df-hero-card,.df-card,.df-panel,.df-reading,.df-limits-grid article{border:1px solid var(--line);border-radius:18px;background:var(--panel);box-shadow:var(--shadow)}.df-hero-card{padding:24px}.df-hero-card>span,.df-card>span,.df-panel-head span,.df-metrics span,.df-check-panel span,.df-limits-grid span{display:block;color:var(--muted);font-size:.76rem;text-transform:uppercase;letter-spacing:.08em}.df-equation{margin:14px 0;padding:14px 15px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--panel-strong) 82%,transparent);font-family:var(--mono);overflow-wrap:anywhere}.df-equation.large{font-size:1.04rem}.df-mini-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.df-mini-grid div{padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.df-mini-grid span{display:block;color:var(--muted);font-size:.72rem}.df-mini-grid strong{display:block;margin-top:4px;font-size:.88rem}.df-foundation{padding:54px 0}.df-foundation-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:20px}.df-card{padding:20px;box-shadow:none}.df-card.primary{border-color:color-mix(in srgb,var(--accent) 48%,var(--line));background:color-mix(in srgb,var(--accent) 6%,var(--panel))}.df-card h3{margin:.45rem 0 .5rem}.df-card p{margin:0;color:var(--muted)}.df-note{display:grid;grid-template-columns:auto 1fr;gap:14px;margin-top:16px;padding:14px 17px;border-left:2px solid var(--accent);background:color-mix(in srgb,var(--accent) 5%,transparent)}.df-note p{margin:0;color:var(--muted)}
.df-lab-section{padding:54px 0 40px}.df-lab-shell{display:grid;grid-template-columns:minmax(255px,320px) minmax(0,1fr);gap:16px;align-items:start}.df-controls{position:sticky;top:92px;display:grid;gap:11px;padding:17px;border:1px solid var(--line);border-radius:18px;background:var(--panel)}.df-control-head{display:flex;justify-content:space-between;gap:10px;align-items:start;padding-bottom:7px;border-bottom:1px solid var(--line)}.df-control-head span{display:block;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}.df-control-head strong{display:block;margin-top:3px;font-size:.92rem}.df-status,.df-domain{padding:5px 8px;border:1px solid var(--line);border-radius:999px;background:var(--surface);white-space:nowrap}.df-status.max{border-color:color-mix(in srgb,var(--success) 50%,var(--line))}.df-status.min{border-color:color-mix(in srgb,var(--danger) 50%,var(--line))}.df-domain.good{border-color:color-mix(in srgb,var(--success) 45%,var(--line))}.df-domain.warn{border-color:color-mix(in srgb,var(--warning) 55%,var(--line))}.df-domain.bad{border-color:color-mix(in srgb,var(--danger) 48%,var(--line))}.df-controls label{display:grid;grid-template-columns:1fr auto;gap:6px 10px;font-size:.8rem}.df-controls output{font-family:var(--mono);font-size:.78rem}.df-controls input{grid-column:1/-1;width:100%}.df-preset-row{display:grid;grid-template-columns:1fr 1fr;gap:7px}.df-preset-row button{min-height:38px;padding:7px 9px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);font:inherit;font-size:.76rem;cursor:pointer}.df-preset-row button.is-active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--surface))}.df-reset{width:100%}.df-assumption{padding:12px;border-radius:12px;background:var(--surface);font-size:.76rem}.df-assumption p{margin:5px 0 0;color:var(--muted)}
.df-stage{display:grid;gap:14px;min-width:0}.df-top-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:14px;min-width:0}.df-panel{padding:14px;min-width:0;box-shadow:none;overflow:hidden;contain:paint}.df-panel-head{display:flex;justify-content:space-between;gap:12px;align-items:start;margin-bottom:8px}.df-panel-head strong{display:block;margin-top:3px}.df-readout{text-align:right;min-width:100px}.df-readout strong{font-family:var(--mono)}.df-geometry-svg,.df-phasor-svg,.df-pattern-svg{display:block;width:100%;height:auto;overflow:hidden}.df-axis{stroke:var(--line-strong);stroke-width:1.4}.df-grid-line{stroke:var(--line);stroke-width:1}.df-screen,.df-barrier{stroke:var(--line-strong);stroke-width:5;stroke-linecap:round}.df-aperture{stroke:var(--accent);stroke-width:7;stroke-linecap:round}.df-ray{stroke:var(--accent-2);stroke-width:1.3;opacity:.42}.df-ray.edge{stroke:var(--accent);stroke-width:2;opacity:.9}.df-detector{fill:var(--text);stroke:var(--panel);stroke-width:3}.df-bracket,.df-guide{stroke:var(--muted);stroke-width:1.4;fill:none;stroke-dasharray:5 5}.df-phase-ramp{stroke:var(--accent);stroke-width:3;fill:none}.df-phasor-chain{fill:none;stroke:var(--accent-2);stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round}.df-phasor-result{stroke:var(--accent);stroke-width:4;stroke-linecap:round}.df-unit-circle{fill:none;stroke:var(--line);stroke-width:1.2;stroke-dasharray:4 5}.df-curve.angular{fill:none;stroke:var(--accent);stroke-width:3}.df-curve.parax{fill:none;stroke:var(--accent-2);stroke-width:2;stroke-dasharray:8 7;opacity:.92}.df-marker{stroke:var(--text);stroke-width:1.5;stroke-dasharray:4 4}.df-dot{fill:var(--accent);stroke:var(--panel);stroke-width:3}.df-svg-label{fill:var(--muted);font-size:12px;font-family:var(--sans)}.df-svg-label.strong{fill:var(--text);font-weight:700}.df-svg-label.accent{fill:var(--accent)}.df-svg-label.second{fill:var(--accent-2)}.df-grid-label{fill:var(--muted);font-size:11px}.df-legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:7px;color:var(--muted);font-size:.75rem}.df-legend i{display:inline-block;width:18px;height:3px;margin-right:6px;vertical-align:middle;border-radius:99px}.df-legend .angular{background:var(--accent)}.df-legend .parax{background:var(--accent-2)}
.df-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.df-metrics>div,.df-check-panel>div{padding:12px 13px;border:1px solid var(--line);border-radius:12px;background:var(--surface);min-width:0}.df-metrics strong,.df-check-panel strong{display:block;margin-top:4px;font-family:var(--mono);font-size:.87rem;overflow-wrap:anywhere}.df-metrics small,.df-check-panel small{display:block;margin-top:3px;color:var(--muted);font-size:.7rem;overflow-wrap:anywhere}.df-check-panel{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.df-reading{padding:19px 21px;box-shadow:none}.df-reading h3{margin:.3rem 0 .45rem;font-size:1rem}.df-reading p{margin:0;color:var(--muted)}.df-cross-reference{margin:18px 0 0;padding:14px 16px;border-left:2px solid var(--accent);background:color-mix(in srgb,var(--accent) 6%,transparent);color:var(--muted);font-size:.86rem}.df-cross-reference a{color:var(--text)}
.df-limits{padding:64px 0}.df-limits-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.df-limits-grid article{padding:19px;box-shadow:none}.df-limits-grid strong{display:block;margin-top:5px;font-size:.9rem}.df-limits-grid p{margin:7px 0 0;color:var(--muted);font-size:.82rem}
@media(max-width:1060px){.df-hero{grid-template-columns:1fr}.df-lab-shell{grid-template-columns:1fr}.df-controls{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}.df-control-head,.df-preset-row,.df-reset,.df-assumption{grid-column:1/-1}.df-top-grid{grid-template-columns:1fr}.df-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:720px){.df-chapter{padding-top:62px}.df-mini-grid,.df-foundation-grid{grid-template-columns:1fr}.df-note{grid-template-columns:1fr;gap:7px}.df-controls{grid-template-columns:1fr}.df-control-head,.df-preset-row,.df-reset,.df-assumption{grid-column:auto}.df-metrics,.df-check-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.df-limits-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.df-panel{padding:11px}.df-panel-head{gap:7px}.df-geometry-svg,.df-phasor-svg,.df-pattern-svg{min-width:0}}
@media(max-width:420px){.df-hero-copy :is(h1,h2){font-size:clamp(1.8rem,9.5vw,2.55rem)}.df-preset-row{grid-template-columns:1fr 1fr}.df-metrics,.df-check-panel,.df-limits-grid{grid-template-columns:1fr 1fr}.df-panel-head{display:grid}.df-readout{text-align:left;min-width:0}.df-svg-label{font-size:13px}}
