/* M04K06 · Refraction */
.refraction-hero{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(330px,.82fr);gap:42px;align-items:center;padding-block:88px 74px}.refraction-hero-copy{min-width:0}.refraction-hero h1{max-width:880px;margin:14px 0 20px;font-size:clamp(2.8rem,6vw,5.8rem);line-height:.96;letter-spacing:-.055em}.refraction-hero h1 em{font-style:normal;color:var(--accent-3)}.refraction-hero-copy>p{max-width:760px;margin:0;color:var(--muted);font-size:1.07rem}.refraction-hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.refraction-hero-card{padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(145deg,color-mix(in srgb,var(--accent-3) 8%,var(--panel)),var(--panel));box-shadow:var(--shadow)}.refraction-hero-card>span{color:var(--accent-3);font-size:.76rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.refraction-hero-card>p{margin:14px 0 0;color:var(--muted)}.refraction-equation{display:flex;align-items:center;justify-content:center;min-height:72px;margin:16px 0;padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb,var(--bg) 42%,transparent);font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace;font-weight:700;letter-spacing:-.03em;text-align:center;overflow-wrap:anywhere}.refraction-equation.large{min-height:92px;font-size:clamp(1.22rem,2.3vw,1.72rem)}.refraction-mini-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.refraction-mini-grid>div{min-width:0;padding:11px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--panel-solid) 64%,transparent)}.refraction-mini-grid span{display:block;color:var(--muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.07em}.refraction-mini-grid strong{display:block;margin-top:4px;font-size:.9rem;overflow-wrap:anywhere}
.refraction-phase,.refraction-law,.refraction-invariants,.refraction-takeaways{padding-block:78px}.refraction-phase{border-top:1px solid var(--line)}.refraction-phase-grid,.refraction-law-grid,.refraction-invariant-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:28px}.refraction-card,.refraction-law-card,.refraction-balance-card{min-width:0;padding:20px;border:1px solid var(--line);border-radius:18px;background:var(--panel)}.refraction-card.primary,.refraction-law-card.primary,.refraction-balance-card.primary{border-color:color-mix(in srgb,var(--accent-3) 42%,var(--line));background:linear-gradient(145deg,color-mix(in srgb,var(--accent-3) 7%,var(--panel)),var(--panel))}.refraction-card>span,.refraction-law-card>span,.refraction-balance-card>span{color:var(--accent-3);font-size:.72rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.refraction-card p,.refraction-law-card p,.refraction-balance-card p{margin:10px 0 0;color:var(--muted)}.refraction-note,.refraction-caution{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start;margin-top:18px;padding:18px 20px;border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb,var(--panel) 78%,transparent)}.refraction-note strong,.refraction-caution strong{color:var(--accent-3);white-space:nowrap}.refraction-note p,.refraction-caution p{margin:0;color:var(--muted)}.refraction-caution{border-color:color-mix(in srgb,var(--warm) 30%,var(--line))}.refraction-caution strong{color:var(--warm)}
.refraction-lab-section{padding-block:80px;border-block:1px solid var(--line);background:linear-gradient(180deg,color-mix(in srgb,var(--accent-3) 3%,transparent),transparent 28%)}.refraction-lab-shell{display:grid;grid-template-columns:330px minmax(0,1fr);gap:18px;align-items:start;margin-top:28px}.refraction-controls{position:sticky;top:calc(var(--header-h) + 18px);padding:18px;border:1px solid var(--line);border-radius:20px;background:var(--panel);box-shadow:var(--shadow)}.refraction-control{display:grid;gap:8px;padding:14px 0;border-bottom:1px solid var(--line)}.refraction-control:first-child{padding-top:0}.refraction-control label{display:flex;justify-content:space-between;gap:12px;align-items:baseline;font-weight:720}.refraction-control output{color:var(--accent-3);font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace;font-size:.86rem}.refraction-control input[type="range"]{width:100%;accent-color:var(--accent-3)}.refraction-control small{color:var(--muted)}.refraction-preset-set{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:14px}.refraction-preset-set button,.refraction-actions button{min-width:0;padding:10px 11px;border:1px solid var(--line);border-radius:11px;background:var(--panel-solid);color:var(--text);font:inherit;font-size:.8rem;font-weight:720;cursor:pointer}.refraction-preset-set button:hover,.refraction-preset-set button:focus-visible,.refraction-actions button:hover,.refraction-actions button:focus-visible{border-color:var(--line-strong)}.refraction-preset-set button.is-active{border-color:color-mix(in srgb,var(--accent-3) 60%,var(--line));background:color-mix(in srgb,var(--accent-3) 12%,var(--panel-solid))}.refraction-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px}.refraction-actions button:first-child{border-color:color-mix(in srgb,var(--accent-3) 42%,var(--line))}.refraction-lab-note{margin:14px 0 0;color:var(--muted);font-size:.82rem}.refraction-stage{display:grid;gap:16px;min-width:0}.refraction-panel{min-width:0;border:1px solid var(--line);border-radius:20px;background:var(--panel);overflow:hidden}.refraction-panel-head{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:15px 18px;border-bottom:1px solid var(--line)}.refraction-panel-head>div:first-child{display:grid;gap:3px}.refraction-panel-head span{color:var(--muted);font-size:.73rem;text-transform:uppercase;letter-spacing:.08em}.refraction-panel-head strong{font-size:1rem}.refraction-status{max-width:48%;padding:7px 10px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:.77rem;font-weight:760;text-align:right}.refraction-status.is-slower{color:var(--accent-3);border-color:color-mix(in srgb,var(--accent-3) 36%,var(--line))}.refraction-status.is-faster{color:var(--warm);border-color:color-mix(in srgb,var(--warm) 38%,var(--line))}.refraction-status.is-equal{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 40%,var(--line))}.refraction-status.is-nonprop{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,var(--line))}.refraction-geometry-svg{width:100%;height:auto;min-height:390px;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 2%,transparent) 0 50%,color-mix(in srgb,var(--accent-3) 3%,transparent) 50% 100%)}.rfr-interface{stroke:var(--line-strong);stroke-width:2}.rfr-normal{stroke:var(--muted);stroke-width:1.5;stroke-dasharray:7 7;opacity:.75}.rfr-ray-i{stroke:var(--accent);stroke-width:4;fill:none}.rfr-ray-r{stroke:var(--accent-2);stroke-width:3;fill:none;opacity:.8}.rfr-ray-t{stroke:var(--accent-3);stroke-width:4;fill:none}.rfr-ray-disabled{stroke:var(--danger);stroke-width:3;stroke-dasharray:8 8;opacity:.7}.rfr-wavefront-i line{stroke:color-mix(in srgb,var(--accent) 66%,transparent);stroke-width:1.7}.rfr-wavefront-t line{stroke:color-mix(in srgb,var(--accent-3) 68%,transparent);stroke-width:1.7}.rfr-angle-i{stroke:var(--accent);stroke-width:2;fill:none}.rfr-angle-t{stroke:var(--accent-3);stroke-width:2;fill:none}.rfr-medium-text,.rfr-axis-text{fill:var(--muted);font-size:16px;font-weight:700}.rfr-origin{fill:var(--text)}.refraction-panel svg [hidden]{display:none}.refraction-field-legend,.refraction-k-legend{display:flex;flex-wrap:wrap;gap:12px;padding:12px 16px 15px;border-top:1px solid var(--line);color:var(--muted);font-size:.78rem}.refraction-field-legend span,.refraction-k-legend span{display:inline-flex;align-items:center;gap:7px}.refraction-field-legend i,.refraction-k-legend i{width:18px;height:3px;border-radius:999px;background:var(--accent)}.refraction-field-legend span:nth-child(2) i{background:var(--accent-2)}.refraction-field-legend span:nth-child(3) i{background:var(--accent-3)}.refraction-k-legend span:nth-child(1) i{background:var(--accent)}.refraction-k-legend span:nth-child(2) i{background:var(--accent-3)}.refraction-k-legend span:nth-child(3) i{height:1px;background:var(--muted)}.refraction-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:1px solid var(--line)}.refraction-metrics>div{min-width:0;padding:14px 15px;border-right:1px solid var(--line)}.refraction-metrics>div:last-child{border-right:0}.refraction-metrics span{display:block;color:var(--muted);font-size:.69rem;text-transform:uppercase;letter-spacing:.07em}.refraction-metrics strong{display:block;margin-top:5px;font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace;font-size:.9rem;overflow-wrap:anywhere}.refraction-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.82fr);gap:16px}.refraction-k-svg{width:100%;height:auto;min-height:330px;background:color-mix(in srgb,var(--bg) 28%,transparent)}.rfr-k-axis{stroke:var(--line-strong);stroke-width:1.5}.rfr-k-guide{stroke:var(--muted);stroke-width:1.3;stroke-dasharray:6 6;opacity:.8}.rfr-k-circle1{stroke:var(--accent);stroke-width:2;fill:none;opacity:.62}.rfr-k-circle2{stroke:var(--accent-3);stroke-width:2;fill:none;opacity:.62}.rfr-k-vector1{stroke:var(--accent);stroke-width:4}.rfr-k-vector2{stroke:var(--accent-3);stroke-width:4}.rfr-k-point1{fill:var(--accent)}.rfr-k-point2{fill:var(--accent-3)}.rfr-k-cross{stroke:var(--danger);stroke-width:3}.refraction-reading{padding:18px}.refraction-reading h3{margin:0 0 10px;font-size:1.12rem}.refraction-reading p{margin:0;color:var(--muted)}.refraction-check{margin-top:16px;padding:14px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--bg) 25%,transparent)}.refraction-check span{display:block;color:var(--muted);font-size:.69rem;text-transform:uppercase;letter-spacing:.07em}.refraction-check strong{display:block;margin-top:5px;font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace;font-size:.82rem;overflow-wrap:anywhere}.refraction-domain{margin-top:12px;color:var(--muted);font-size:.83rem}
.refraction-invariants{border-bottom:1px solid var(--line)}.refraction-cross-reference{margin:28px 0 0;padding-top:18px;border-top:1px solid var(--line);color:var(--muted);font-size:.9rem}.refraction-cross-reference a{color:var(--accent-3)}.refraction-next{margin-top:0}.refraction-phase h2,.refraction-law h2,.refraction-lab-section h2,.refraction-invariants h2,.refraction-takeaways h2{overflow-wrap:anywhere}
@media(max-width:1080px){.refraction-hero{grid-template-columns:1fr;gap:24px}.refraction-hero-card{max-width:760px}.refraction-lab-shell{grid-template-columns:1fr}.refraction-controls{position:relative;top:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.refraction-preset-set,.refraction-actions,.refraction-lab-note{grid-column:1/-1}.refraction-detail-grid{grid-template-columns:1fr}.refraction-geometry-svg{min-height:360px}.refraction-k-svg{min-height:300px}}
@media(max-width:760px){.rfr-medium-text,.rfr-axis-text{font-size:28px}.refraction-hero{padding-block:68px 56px}.refraction-hero h1{font-size:clamp(2.35rem,11vw,4rem)}.refraction-mini-grid,.refraction-phase-grid,.refraction-law-grid,.refraction-invariant-grid{grid-template-columns:1fr}.refraction-note,.refraction-caution{grid-template-columns:1fr;gap:7px}.refraction-note strong,.refraction-caution strong{white-space:normal}.refraction-controls{grid-template-columns:1fr}.refraction-preset-set,.refraction-actions,.refraction-lab-note{grid-column:auto}.refraction-panel-head{align-items:flex-start;gap:10px;flex-direction:column}.refraction-status{max-width:none;text-align:left}.refraction-geometry-svg{min-height:300px}.refraction-k-svg{min-height:270px}.refraction-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.refraction-metrics>div:nth-child(2){border-right:0}.refraction-metrics>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.refraction-field-legend,.refraction-k-legend{gap:10px}.refraction-controls{padding:14px}.refraction-lab-section{padding-block:70px 78px}}
@media(max-width:360px){.refraction-preset-set{grid-template-columns:1fr}.refraction-actions{grid-template-columns:1fr}.refraction-metrics{grid-template-columns:1fr}.refraction-metrics>div{border-right:0;border-bottom:1px solid var(--line)}.refraction-metrics>div:last-child{border-bottom:0}.refraction-equation{font-size:.94rem}.refraction-geometry-svg{min-height:270px}.refraction-k-svg{min-height:250px}}
