.fr-hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:clamp(1.4rem,4vw,4rem);align-items:center;padding-top:clamp(3rem,7vw,6rem)}
.fr-hero-copy :is(h1,h2){max-width:18ch;margin:.65rem 0 1rem}.fr-hero-copy p{max-width:68ch}.fr-hero-copy em{font-style:normal;color:var(--accent)}.fr-hero-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.35rem}
.fr-hero-card,.fr-card,.fr-note,.fr-panel,.fr-reading,.fr-boundary-grid article{border:1px solid var(--line);background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow)}
.fr-hero-card{padding:clamp(1rem,2.4vw,1.6rem);display:grid;gap:.85rem}.fr-hero-card>span,.fr-card>span,.fr-reading>span,.fr-boundary-grid article>span{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.fr-equation{padding:.75rem .9rem;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--panel-2) 82%,transparent);overflow-wrap:anywhere}.fr-equation.large{font-size:clamp(1.05rem,2vw,1.45rem);font-weight:750}.fr-mini-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem}.fr-mini-grid>div{padding:.7rem;border-radius:10px;background:var(--panel-2);min-width:0}.fr-mini-grid span{display:block;color:var(--muted);font-size:.72rem}.fr-mini-grid strong{display:block;margin-top:.2rem;font-size:.82rem;overflow-wrap:anywhere}
.fr-foundation,.fr-lab-section,.fr-boundary{padding-top:clamp(3rem,6vw,5rem)}.fr-foundation-grid,.fr-boundary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.fr-card,.fr-boundary-grid article{padding:1rem}.fr-card h3{margin:.35rem 0 .5rem}.fr-card.primary{border-color:color-mix(in srgb,var(--accent) 48%,var(--line))}.fr-note{padding:1rem 1.1rem;margin-top:1rem}.fr-note p{margin:.35rem 0 0}
.fr-lab-shell{display:grid;grid-template-columns:minmax(260px,330px) minmax(0,1fr);gap:1rem;align-items:start}.fr-controls{position:sticky;top:calc(var(--header-height,72px) + 1rem);border:1px solid var(--line);background:var(--panel);border-radius:var(--radius);padding:1rem;display:grid;gap:.82rem;box-shadow:var(--shadow)}.fr-control-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.fr-control-head span,.fr-panel-head span,.fr-readout span{font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.fr-control-head strong{display:block}.fr-status{padding:.25rem .5rem;border:1px solid var(--line);border-radius:999px;white-space:nowrap}.fr-controls label{display:grid;grid-template-columns:1fr auto;gap:.35rem .6rem;align-items:center}.fr-controls label>span{font-size:.84rem}.fr-controls output{font:600 .8rem/1.2 var(--mono);color:var(--accent)}.fr-controls input{grid-column:1/-1;width:100%}.fr-polarization,.fr-presets{margin:0;padding:.7rem;border:1px solid var(--line);border-radius:12px}.fr-polarization legend,.fr-presets legend{padding:0 .3rem;font-size:.76rem;color:var(--muted)}.fr-polarization div,.fr-presets div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}.fr-polarization button,.fr-presets button{min-width:0;padding:.58rem .5rem;border:1px solid var(--line);border-radius:9px;background:var(--panel-2);color:var(--text);cursor:pointer}.fr-polarization button.is-active,.fr-presets button.is-active{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.fr-assumption{padding:.75rem;border-radius:10px;background:var(--panel-2)}.fr-assumption p{margin:.25rem 0 0;font-size:.8rem;color:var(--muted)}
.fr-stage{min-width:0;display:grid;gap:1rem}.fr-panel{padding:.85rem;min-width:0}.fr-panel-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:.65rem}.fr-panel-head strong{display:block}.fr-readout{text-align:right}.fr-readout strong{display:block;color:var(--accent);font-size:.83rem}.fr-panel svg{display:block;width:100%;height:auto;overflow:visible}.fr-metrics,.fr-check-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem}.fr-metrics>div,.fr-check-grid>div{border:1px solid var(--line);border-radius:11px;background:var(--panel);padding:.75rem;min-width:0}.fr-metrics span,.fr-check-grid span{display:block;font-size:.72rem;color:var(--muted)}.fr-metrics strong,.fr-check-grid strong{display:block;margin-top:.22rem;font-size:.86rem;overflow-wrap:anywhere}.fr-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.fr-reading{padding:1rem}.fr-reading h3{margin:.35rem 0 .5rem}.fr-reading p{margin:0;color:var(--muted)}
.fr-svg-axis{stroke:var(--muted);stroke-width:1.5}.fr-svg-grid{stroke:var(--line);stroke-width:1}.fr-svg-interface{stroke:var(--accent);stroke-width:3}.fr-svg-inc{stroke:var(--text);stroke-width:4;fill:none}.fr-svg-ref{stroke:var(--warning,#f0b44d);stroke-width:4;fill:none}.fr-svg-trans{stroke:var(--accent);stroke-width:4;fill:none}.fr-svg-s{stroke:var(--accent);stroke-width:3;fill:none}.fr-svg-p{stroke:var(--violet,#a98cff);stroke-width:3;fill:none}.fr-svg-label{fill:var(--text);font-size:18px;font-weight:700}.fr-svg-small{fill:var(--muted);font-size:14px}.fr-svg-accent{fill:var(--accent);font-size:15px;font-weight:700}.fr-svg-violet{fill:var(--violet,#a98cff);font-size:15px;font-weight:700}.fr-marker{fill:var(--panel);stroke:var(--accent);stroke-width:3}.fr-bar-r{fill:color-mix(in srgb,var(--warning,#f0b44d) 75%,transparent)}.fr-bar-t{fill:color-mix(in srgb,var(--accent) 75%,transparent)}.fr-bar-i{fill:color-mix(in srgb,var(--text) 28%,transparent)}
@media(max-width:980px){.fr-hero,.fr-lab-shell{grid-template-columns:1fr}.fr-controls{position:static}.fr-foundation-grid,.fr-boundary-grid{grid-template-columns:1fr}.fr-detail-grid{grid-template-columns:1fr}}
@media(max-width:640px){.fr-hero{padding-top:2.5rem}.fr-mini-grid,.fr-metrics,.fr-check-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fr-panel{padding:.65rem}.fr-panel-head{display:grid}.fr-readout{text-align:left}.fr-controls{padding:.85rem}.fr-equation{font-size:.88rem}.fr-equation.large{font-size:1rem}}
@media(max-width:360px){.fr-mini-grid,.fr-metrics,.fr-check-grid{grid-template-columns:1fr}.fr-boundary .section-heading h2{overflow-wrap:anywhere}.fr-presets div{grid-template-columns:1fr}}
.fr-card,.fr-card p,.fr-card .mono{min-width:0;overflow-wrap:anywhere;word-break:break-word}
@media(max-width:1100px){.fr-foundation-grid{grid-template-columns:1fr}}
.fr-controls,.fr-control-head,.fr-stage,.fr-panel,.fr-metrics,.fr-detail-grid{min-width:0;max-width:100%}
@media(max-width:640px){.fr-status{white-space:normal;text-align:right;max-width:11rem}.fr-stage,.fr-controls{width:100%}}
