:root{--text-color:#17212f;--bg:#f3f7fd;--bg-soft:#edf3ff;--surface:#fff;--surface-elevated:#fff;--panel-border:#cad5e4;--panel-border-strong:#99afca;--accent:#5079ad;--accent-soft:#d2e2f8;--faint:#5079ad14;--topbar-bg:linear-gradient(120deg, #f0f8ff 0%, #e7efff 100%);background:0 0;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;line-height:1.45}*{box-sizing:border-box}body{color:var(--text-color);background:radial-gradient(circle at 12% 10%, #7dd3fc38, transparent 32rem), radial-gradient(circle at 82% 12%, #c084fc2e, transparent 34rem), linear-gradient(135deg, var(--bg), var(--bg-soft));margin:0;position:relative}body:before{z-index:-2;pointer-events:none;content:"";background-image:linear-gradient(var(--faint) 1px, transparent 1px), linear-gradient(90deg, var(--faint) 1px, transparent 1px);background-size:56px 56px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#000000bf,#0000 82%);mask-image:linear-gradient(#000000bf,#0000 82%)}#root{background:0 0}.chip-group{flex-wrap:wrap;gap:.5rem;display:flex}.chip{border:1px solid var(--panel-border-strong);background:var(--surface-elevated);color:var(--text-color);font:inherit;cursor:pointer;border-radius:999px;padding:.35rem .7rem;font-size:.85rem}.chip.is-active{border-color:var(--accent);background:var(--accent-soft);color:var(--text-color);font-weight:600}.preset-list{gap:.5rem;display:grid}.preset-button{text-align:left;border:1px solid var(--panel-border);background:var(--surface-elevated);color:var(--text-color);cursor:pointer;font:inherit;border-radius:8px;justify-items:start;gap:.2rem;padding:.55rem .65rem;display:grid}.preset-button.is-active{border-color:var(--accent);background:var(--accent-soft)}.theory-line p{margin:.35rem 0}.theory-formula-line{border:1px solid var(--accent);background:var(--accent-soft);color:var(--accent);border-radius:6px;margin-top:.1rem;padding:.1rem .35rem;font-family:Consolas,Courier New,monospace;display:inline-block}:root[data-theme=dark]{--text-color:#e6ecf4;--bg:#0b1220;--bg-soft:#111a2a;--surface:#1b2432;--surface-elevated:#202c3d;--panel-border:#3b4d67;--panel-border-strong:#587193;--accent:#7db0f1;--accent-soft:#2f4866;--faint:#7db0f114;--topbar-bg:linear-gradient(120deg, #1d2a3d 0%, #202f45 100%)}:root[data-theme=dark] body{background:radial-gradient(circle at 12% 10%, #7dd3fc1f, transparent 32rem), radial-gradient(circle at 82% 12%, #c084fc17, transparent 34rem), linear-gradient(135deg, var(--bg), var(--bg-soft))}:root[data-theme=dark] body:before{background-image:linear-gradient(#7db0f129 1px,#0000 1px),linear-gradient(90deg,#7db0f129 1px,#0000 1px);background-size:48px 48px}.app-shell{box-sizing:border-box;max-width:1120px;min-height:100vh;color:var(--text-color);background:color-mix(in srgb, var(--surface) 92%, transparent);border:1px solid color-mix(in srgb, var(--panel-border) 70%, transparent);border-radius:16px;margin:0 auto;padding:2rem 1rem 2.5rem}.app-shell.theme-dark{background:color-mix(in srgb, var(--surface) 84%, transparent);border-color:color-mix(in srgb, var(--panel-border) 78%, transparent)}.app-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.2rem;display:flex}.app-header-main{min-width:240px}.app-kicker{letter-spacing:.08em;text-transform:uppercase;color:color-mix(in srgb, var(--text-color) 70%, transparent);margin:0;font-size:.75rem}.app-header h1{margin:.25rem 0 .5rem;font-size:1.8rem;line-height:1.2}.app-subtitle{color:color-mix(in srgb, var(--text-color) 78%, transparent);margin:0}.app-header-right{flex-direction:column;gap:.45rem;display:flex}.app-author{color:color-mix(in srgb, var(--text-color) 78%, transparent);text-align:right;margin:0;font-size:.82rem}.app-author a{color:var(--accent);font-weight:600}.app-preferences{background:var(--surface);border:1px solid var(--panel-border);border-radius:10px;grid-template-columns:auto auto;align-items:center;gap:.35rem .55rem;padding:.6rem .7rem;display:grid}.pref-label{color:color-mix(in srgb, var(--text-color) 78%, transparent);font-size:.82rem}.app-preferences .chip-group{gap:.35rem}.app-preferences .chip{text-align:center;min-width:2.2rem;padding:.18rem .45rem;font-size:.82rem}.module-nav{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.module-button{border:1px solid var(--panel-border-strong);background:var(--surface-elevated);font:inherit;cursor:pointer;color:var(--text-color);border-radius:999px;padding:.45rem .9rem}.module-button.is-active{background:var(--accent-soft);border-color:var(--accent);font-weight:600}.module-layout{margin-top:1rem}@media (width<=900px){.app-header{flex-direction:column;align-items:stretch}.app-header-right{width:100%}.app-author{text-align:left}.app-preferences{grid-template-columns:auto 1fr}}.slider-input-control{gap:.3rem;min-width:0;display:grid}.slider-input-row{grid-template-columns:minmax(0,1fr);gap:.35rem;min-width:0;display:grid}.slider-input-row input[type=range]{width:100%;min-width:0;accent-color:var(--accent)}.slider-number-input{border:1px solid var(--panel-border);background:var(--surface-elevated);width:100%;color:var(--text-color);box-sizing:border-box;border-radius:7px;min-width:0;padding:.28rem .38rem}.derivative-layout{grid-template-columns:2fr 1fr;gap:1rem;display:grid}.derivative-left-column{gap:1rem;display:grid}.derivative-scene-panel,.derivative-controls-panel,.derivative-info-panel{border:1px solid var(--panel-border);background:var(--surface);border-radius:16px;padding:1rem}.derivative-explorer-grid{grid-template-columns:2fr 1fr;gap:1rem;display:grid}.derivative-controls-panel h2{margin:0 0 .5rem;font-size:1.15rem}.derivative-controls-panel p{margin:.4rem 0}.derivative-controls-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem 1rem;margin-top:.8rem;display:grid}.derivative-info-panel{align-content:start;gap:.8rem;display:grid}@media (width<=900px){.derivative-layout,.derivative-explorer-grid,.derivative-controls-grid{grid-template-columns:1fr}}.gradient-scene svg{border:1px solid var(--panel-border);border-radius:10px}.gradient-layout{grid-template-columns:2fr 1fr;gap:1rem;display:grid}.gradient-left-column{gap:1rem;display:grid}.gradient-scene-panel,.gradient-controls-panel,.gradient-info-panel{border:1px solid var(--panel-border);background:var(--surface);border-radius:16px;padding:1rem}.gradient-explorer-grid{grid-template-columns:2fr 1fr;gap:1rem;display:grid}.gradient-controls-panel h2{margin:0 0 .5rem;font-size:1.15rem}.gradient-controls-panel p{margin:.4rem 0}.gradient-controls-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem 1rem;margin-top:.8rem;display:grid}.gradient-button-row{gap:.5rem;display:flex}.gradient-button-row button{border:1px solid var(--panel-border-strong);background:var(--surface-elevated);color:var(--text-color);cursor:pointer;border-radius:8px;padding:.4rem .7rem}.gradient-info-panel{align-content:start;gap:.8rem;display:grid}@media (width<=900px){.gradient-layout,.gradient-explorer-grid,.gradient-controls-grid{grid-template-columns:1fr}}.integral-layout{grid-template-columns:2fr 1fr;gap:1rem;display:grid}.integral-left-column{gap:1rem;display:grid}.integral-scene-panel,.integral-controls-panel,.integral-info-panel{border:1px solid var(--panel-border);background:var(--surface);border-radius:16px;padding:1rem}.integral-explorer-grid{grid-template-columns:2fr 1fr;gap:1rem;display:grid}.integral-controls-panel h2{margin:0 0 .5rem;font-size:1.15rem}.integral-controls-panel p{margin:.4rem 0}.integral-controls-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem 1rem;margin-top:.8rem;display:grid}.method-chip-group{flex-direction:column;gap:.35rem;width:100%}.method-chip-group .chip{text-align:left;width:100%}.integral-info-panel{align-content:start;gap:.8rem;display:grid}@media (width<=900px){.integral-layout,.integral-explorer-grid,.integral-controls-grid{grid-template-columns:1fr}}.limits-layout{grid-template-columns:2fr 1fr;gap:1rem;display:grid}.limits-left-column{gap:1rem;display:grid}.limits-scene-panel,.limits-controls-panel,.limits-info-panel{border:1px solid var(--panel-border);background:var(--surface);border-radius:16px;padding:1rem}.limits-explorer-grid{grid-template-columns:2fr 1fr;gap:1rem;display:grid}.limits-controls-panel h2{margin:0 0 .5rem;font-size:1.15rem}.limits-controls-panel p{margin:.4rem 0}.limits-controls-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem 1rem;margin-top:.8rem;display:grid}.control-group{gap:.35rem;display:grid}.control-group.full-width{grid-column:1/-1}.control-group label{font-size:.95rem;font-weight:600}.control-group select,.control-group input[type=range]{width:100%;min-width:0}.inline-row{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.inline-row label{font-weight:500}.readout-grid{border:1px solid var(--panel-border);background:var(--surface-elevated);border-radius:10px;align-self:stretch;padding:.7rem}.readout-grid p{margin:.25rem 0;font-family:Consolas,Monaco,Courier New,monospace}.limits-info-panel{align-content:start;gap:.8rem;display:grid}.info-section{border:1px solid var(--panel-border);background:var(--surface-elevated);border-radius:10px;padding:.8rem}.info-section h3{margin:0 0 .45rem}.info-section p{margin:0}.info-section p+p{margin-top:.45rem}.notice-box{color:#55381e;background:#fff4e8;border-color:#f2d5b7}:root[data-theme=dark] .notice-box{color:#f4e5cf;background:#3a2f21;border-color:#7a5d3a}@media (width<=900px){.limits-layout,.limits-controls-grid,.limits-explorer-grid{grid-template-columns:1fr}}.optimization-scene-wrap{gap:.75rem;display:grid}.optimization-geometry-panel{border:1px solid var(--panel-border);background:var(--surface-elevated);border-radius:12px;padding:.5rem}.optimization-geometry-row{grid-template-columns:auto 1fr;align-items:center;gap:.75rem;display:grid}.optimization-geometry-panel svg{width:220px;max-height:220px}.optimization-task-text h4{margin:0 0 .35rem;font-size:.95rem}.optimization-task-text p{margin:0;line-height:1.45}.optimization-graphs-grid{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.optimization-graph-panel{margin:0}.optimization-caption{margin:0;font-size:.9rem}@media (width<=900px){.optimization-geometry-row{grid-template-columns:1fr}.optimization-geometry-panel svg{justify-self:center;width:100%;max-width:260px}.optimization-graphs-grid{grid-template-columns:1fr}}
