:root{color:#122033;--bg:#f2f6fb;--bg-soft:#e8f0fa;--faint:#12203314;background-color:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}*{box-sizing:border-box}body{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));color:#122033;margin:0;position:relative}body[data-theme=dark]{--bg:#0a1118;--bg-soft:#0f1620;--faint:#e5edf814;color:#e5edf8}body:before{z-index:0;pointer-events:none;content:"";background-image:linear-gradient(var(--faint) 1px, transparent 1px), linear-gradient(90deg, var(--faint) 1px, transparent 1px);background-size:48px 48px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#000000bf,#0000 82%);mask-image:linear-gradient(#000000bf,#0000 82%)}#root{z-index:1;background:0 0;position:relative}.vector2-editor{margin:.45rem 0 .55rem}.vector2-editor-title{color:var(--text-muted);margin:0 0 .3rem;font-size:.88rem}.vector2-editor-grid{grid-template-columns:repeat(2,minmax(72px,120px));gap:.4rem;display:grid}.vector2-editor-grid label{gap:.2rem;display:grid}.vector2-editor-grid span{color:var(--text-muted);font-size:.78rem}.vector2-editor-grid input{border:1px solid var(--panel-border);background:var(--tab-bg);width:100%;color:var(--text-main);border-radius:7px;padding:.28rem .38rem}.dot-module{gap:1rem;display:grid}.dot-scene-card{border:1px solid var(--panel-border);background:var(--panel-bg);border-radius:10px;padding:.5rem}.dot-scene{background:var(--panel-bg);border-radius:8px}.dot-layout{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.dot-info-column{gap:1rem;display:grid}.dot-controls,.dot-algebra,.dot-applications{border:1px solid var(--panel-border);background:var(--panel-bg);border-radius:10px;padding:.9rem}.dot-controls h3,.dot-algebra h3,.dot-applications h3{margin:0 0 .75rem;font-size:1rem}.dot-control-title{color:var(--text-muted);margin:0 0 .45rem;font-size:.88rem}.dot-chip-group{flex-wrap:wrap;gap:.5rem;margin-bottom:.6rem;display:flex}.dot-toggle-list{gap:.45rem;margin-bottom:.65rem;display:grid}.dot-toggle-list label{align-items:center;gap:.45rem;font-size:.88rem;display:flex}.dot-algebra p{margin:.4rem 0}.dot-applications ul{margin:0;padding-left:1.1rem}.dot-applications li{margin:.4rem 0}.dot-algebra code{background:var(--tab-bg);border:1px solid var(--panel-border);border-radius:4px;padding:.1rem .3rem}.sign-badge{border-radius:999px;padding:.2rem .65rem;font-weight:600;display:inline-block}.sign-positive{color:#1b7f43;background:#e8f8ed}.sign-zero{color:#334a62;background:#eef2f8}.sign-negative{color:#b42318;background:#fdeaea}.theme-dark .sign-positive{color:#9be7be;background:#173324}.theme-dark .sign-zero{color:#c7d4e6;background:#243347}.theme-dark .sign-negative{color:#ffb4ab;background:#3a2023}@media (width<=920px){.dot-layout{grid-template-columns:1fr}}.eigen-module{gap:1rem;display:grid}.eigen-scene-card{border:1px solid var(--panel-border);background:var(--panel-bg);border-radius:10px;padding:.5rem}.eigen-scene{background:var(--panel-bg);border-radius:8px}.eigen-layout{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.eigen-controls,.eigen-algebra,.eigen-applications{border:1px solid var(--panel-border);background:var(--panel-bg);border-radius:10px;padding:.9rem}.eigen-controls h3,.eigen-algebra h3,.eigen-applications h3{margin:0 0 .75rem;font-size:1rem}.eigen-info-column{gap:1rem;display:grid}.eigen-section-title{color:var(--text-muted);margin:.4rem 0 .45rem;font-size:.88rem}.eigen-subtitle{margin-top:0}.matrix-grid input,.lambda-manual input{border:1px solid var(--panel-border);background:var(--tab-bg);width:100%;color:var(--text-main);border-radius:8px;padding:.35rem .45rem}.eigen-chip-group{flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem;display:flex}.eigen-readout-line{margin:.3rem 0 .5rem}.eigen-readout-line code,.eigen-algebra code{background:var(--tab-bg);border:1px solid var(--panel-border);border-radius:4px;padding:.1rem .3rem}.lambda-manual{gap:.28rem;margin-bottom:.5rem;display:grid}.lambda-manual span{color:var(--text-muted);font-size:.82rem}.copy-lambda-button{border:1px solid var(--panel-border);background:var(--tab-bg);color:var(--text-main);cursor:pointer;border-radius:8px;padding:.34rem .55rem;font-size:.82rem}.eigen-toggle-list{gap:.42rem;margin-bottom:.7rem;display:grid}.eigen-toggle-list label{align-items:center;gap:.45rem;font-size:.88rem;display:flex}.eigen-warning{color:#991b1b;background:#fee2e2;border:1px solid #ef4444;border-radius:8px;margin:.6rem 0 0;padding:.42rem .55rem;font-size:.84rem}.eigen-algebra p{margin:.4rem 0}.eigen-applications ul{margin:0;padding-left:1.1rem}.eigen-applications li{margin:.4rem 0}.residual-badge{border-radius:999px;padding:.2rem .65rem;font-weight:600;display:inline-block}.residual-good{color:#1b7f43;background:#e8f8ed}.residual-mid{color:#8a6510;background:#fff7db}.residual-off{color:#b42318;background:#fdeaea}.theme-dark .eigen-warning{color:#fecaca;background:#3f1f1f;border-color:#f87171}.theme-dark .residual-good{color:#9be7be;background:#173324}.theme-dark .residual-mid{color:#fde68a;background:#3d3418}.theme-dark .residual-off{color:#ffb4ab;background:#3a2023}@media (width<=920px){.eigen-layout{grid-template-columns:1fr}}.lsq-module{gap:1rem;display:grid}.lsq-scene-card{border:1px solid var(--panel-border);background:var(--panel-bg);border-radius:10px;padding:.5rem}.lsq-scene{background:var(--panel-bg);border-radius:8px}.lsq-fit-line{stroke:#f59e0b;stroke-width:2.1px}.lsq-proj-point{fill:#d97706;stroke:#b45309;stroke-width:1px}.lsq-col-space-label{fill:var(--text-muted);font-size:.76rem}.lsq-scene-actions{gap:.45rem;margin-top:.45rem;display:flex}.lsq-layout{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.lsq-info-column{gap:1rem;display:grid}.lsq-controls,.lsq-algebra,.lsq-applications{border:1px solid var(--panel-border);background:var(--panel-bg);border-radius:10px;padding:.9rem}.lsq-controls h3,.lsq-algebra h3,.lsq-applications h3{margin:0 0 .75rem;font-size:1rem}.lsq-section-title{color:var(--text-muted);margin:.35rem 0 .42rem;font-size:.86rem}.lsq-points-grid{gap:.38rem;display:grid}.lsq-point-row{grid-template-columns:2rem 1fr 1fr;align-items:end;gap:.35rem;display:grid}.lsq-point-name{color:var(--text-muted);font-size:.78rem}.lsq-point-row label{gap:.14rem;display:grid}.lsq-point-row span{color:var(--text-muted);font-size:.74rem}.lsq-point-row input{border:1px solid var(--panel-border);background:var(--tab-bg);width:100%;color:var(--text-main);border-radius:7px;padding:.27rem .36rem}.lsq-toggle-list{gap:.38rem;margin-top:.7rem;display:grid}.lsq-toggle-list label{align-items:center;gap:.45rem;font-size:.88rem;display:flex}.lsq-algebra p{margin:.4rem 0}.lsq-algebra code{background:var(--tab-bg);border:1px solid var(--panel-border);border-radius:4px;padding:.1rem .3rem}.lsq-applications ul{margin:0;padding-left:1.1rem}.lsq-applications li{margin:.4rem 0}@media (width<=980px){.lsq-layout{grid-template-columns:1fr}}.matrix2d-module{gap:1rem;display:grid}.matrix2d-scene-card{border:1px solid var(--panel-border);background:var(--panel-bg);border-radius:10px;padding:.5rem}.matrix2d-scene{background:var(--panel-bg);border-radius:8px}.matrix2d-layout{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.matrix2d-info-column{gap:1rem;display:grid}.matrix2d-controls,.matrix2d-algebra,.matrix2d-applications{border:1px solid var(--panel-border);background:var(--panel-bg);border-radius:10px;padding:.9rem}.matrix2d-controls h3,.matrix2d-algebra h3,.matrix2d-applications h3{margin:0 0 .75rem;font-size:1rem}.matrix2d-section-title{color:var(--text-muted);margin:.4rem 0 .45rem;font-size:.88rem}.matrix2d-chip-group{flex-wrap:wrap;gap:.5rem;margin-bottom:.55rem;display:flex}.matrix-editor{margin-bottom:.35rem}.matrix-grid{grid-template-columns:repeat(2,minmax(72px,90px));gap:.4rem;display:grid}.matrix-grid input{border:1px solid var(--panel-border);background:var(--tab-bg);width:100%;color:var(--text-main);border-radius:8px;padding:.35rem .45rem}.scalar-control{gap:.35rem;margin:.4rem 0 .6rem;display:grid}.matrix2d-toggle-list{gap:.4rem;display:grid}.matrix2d-toggle-list label{align-items:center;gap:.45rem;font-size:.88rem;display:flex}.preset-list{gap:.5rem;margin-top:.7rem;display:grid}.matrix2d-algebra p{margin:.4rem 0}.matrix2d-applications ul{margin:0;padding-left:1.1rem}.matrix2d-applications li{margin:.4rem 0}.matrix2d-algebra code{background:var(--tab-bg);border:1px solid var(--panel-border);border-radius:4px;padding:.1rem .3rem}.orientation-badge{border-radius:999px;padding:.2rem .65rem;font-weight:600;display:inline-block}.orientation-positive{color:#1b7f43;background:#e8f8ed}.orientation-zero{color:#334a62;background:#eef2f8}.orientation-negative{color:#b42318;background:#fdeaea}.theme-dark .orientation-positive{color:#9be7be;background:#173324}.theme-dark .orientation-zero{color:#c7d4e6;background:#243347}.theme-dark .orientation-negative{color:#ffb4ab;background:#3a2023}@media (width<=920px){.matrix2d-layout{grid-template-columns:1fr}}.vector2d-module{gap:1rem;display:grid}.vector2d-scene-card{border:1px solid var(--panel-border);background:var(--panel-bg);border-radius:10px;padding:.5rem}.vector2d-scene{background:var(--panel-bg);border-radius:8px}.scene-reset-button{border:1px solid var(--panel-border);background:var(--tab-bg);color:var(--text-main);cursor:pointer;border-radius:8px;margin-top:.45rem;padding:.28rem .6rem;font-size:.82rem}.vector2d-layout{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.vector2d-info-column{gap:1rem;display:grid}.vector2d-controls,.vector2d-algebra,.vector2d-note,.vector2d-applications{border:1px solid var(--panel-border);background:var(--panel-bg);border-radius:10px;padding:.9rem}.vector2d-controls h3,.vector2d-algebra h3,.vector2d-note h3,.vector2d-applications h3{margin-top:0;margin-bottom:.75rem;font-size:1rem}.vector2d-chip-group{flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem;display:flex}.chip{border:1px solid var(--panel-border);background:var(--tab-bg);color:var(--text-main);cursor:pointer;border-radius:999px;padding:.35rem .7rem;font-size:.85rem}.chip.is-active{border-color:var(--tab-active-border);background:var(--tab-active-bg);color:var(--tab-active-text)}.scalar-control{margin:.4rem 0 .3rem;display:block}.control-hint{color:var(--text-muted);margin:.5rem 0 .75rem;font-size:.85rem}.preset-list{gap:.5rem;display:grid}.preset-button{text-align:left;border:1px solid var(--panel-border);background:var(--tab-bg);color:var(--text-main);cursor:pointer;border-radius:8px;justify-items:start;gap:.2rem;padding:.55rem .65rem;display:grid}.preset-button span{color:var(--text-muted);font-size:.82rem}.vector2d-algebra p,.vector2d-note p,.vector2d-applications li{margin:.4rem 0}.vector2d-applications ul{margin:0;padding-left:1.1rem}.vector2d-algebra code{background:var(--tab-bg);border:1px solid var(--panel-border);border-radius:4px;padding:.1rem .3rem}.prediction-prompt{color:var(--text-muted);margin-top:.7rem;font-size:.88rem}@media (width<=920px){.vector2d-layout{grid-template-columns:1fr}}.app-shell{--app-bg:#f2f6fb;--panel-bg:#fff;--panel-border:#d4dce5;--text-main:#122033;--text-muted:#3f4c5b;--tab-bg:#f7f9fc;--tab-active-bg:#e9f2ff;--tab-border:#bcc6d2;--tab-active-border:#2f7ad8;--tab-active-text:#164b90;background:var(--app-bg);max-width:1120px;color:var(--text-main);margin:0 auto;padding:2rem 1rem 2.5rem}.app-shell.theme-dark{--app-bg:#0f1620;--panel-bg:#151f2b;--panel-border:#2a3a4d;--text-main:#e5edf8;--text-muted:#a9b8ca;--tab-bg:#1b2735;--tab-active-bg:#20354f;--tab-border:#39506b;--tab-active-border:#63a4ff;--tab-active-text:#d6e9ff}.app-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.2rem;display:flex}.app-kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin:0;font-size:.75rem}.app-header h1{margin:.25rem 0 .5rem;font-size:1.8rem;line-height:1.2}.app-subtitle{color:var(--text-muted);margin:0}.app-header-right{flex-direction:column;gap:.45rem;display:flex}.app-preferences{background:var(--panel-bg);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}.app-author{color:var(--text-muted);text-align:right;margin:0;font-size:.82rem}.app-author a{color:var(--tab-active-text);font-weight:600}.pref-label{color:var(--text-muted);font-size:.82rem}.app-preferences .chip-group{gap:.3rem;display:flex}.app-preferences .chip{border:1px solid var(--panel-border);background:var(--tab-bg);color:var(--text-main);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;width:2.35rem;height:2.1rem;padding:0;font-size:.78rem;line-height:1.2;display:inline-flex}.app-preferences .chip.is-active{border-color:var(--tab-active-border);background:var(--tab-active-bg);color:var(--tab-active-text)}.module-nav{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.module-tab{border:1px solid var(--tab-border);background:var(--tab-bg);color:var(--text-main);cursor:pointer;border-radius:999px;padding:.45rem .8rem;font-size:.9rem}.module-tab.is-active{border-color:var(--tab-active-border);background:var(--tab-active-bg);color:var(--tab-active-text)}.module-layout{grid-template-columns:1.7fr 1fr;gap:1rem;display:grid}.module-viewport,.module-panel{border:1px solid var(--panel-border);background:var(--panel-bg);border-radius:.75rem;padding:1rem}.module-viewport{min-height:260px}.module-panel h2{margin-top:0;margin-bottom:.4rem}.module-panel>p{color:var(--text-muted)}.sidebar-card{border:1px solid var(--panel-border);border-radius:10px;margin-top:.9rem;padding:.65rem .75rem}.sidebar-card h3{margin:0 0 .5rem;font-size:1rem}.sidebar-card p{margin:.4rem 0}.theory-line p{margin:.35rem 0}.theory-formula-line{border:1px solid var(--tab-active-border);background:var(--tab-active-bg);color:var(--tab-active-text);border-radius:6px;margin-top:.1rem;padding:.1rem .35rem;font-family:Consolas,Courier New,monospace;display:inline-block}.module-status{margin-top:.2rem;font-weight:600}.det-theory{border:1px dashed var(--panel-border);border-radius:10px;margin-top:.55rem;padding:.55rem}.det-grid{grid-template-columns:repeat(2,2.35rem);justify-content:start;gap:.18rem;width:fit-content;margin-bottom:.45rem;display:grid}.det-cell{text-align:center;border:1px solid var(--panel-border);border-radius:6px;padding:.2rem .15rem;font-weight:600}.det-main{color:#0f7a3a;background:#eaf8ef}.det-second{color:#b42318;background:#fdecec}.det-minus{color:#b42318;font-weight:700}.det-formula{margin:0;line-height:1.4}.theme-dark .det-main{color:#9be7be;background:#183426}.theme-dark .det-second{color:#ffb4ab;background:#3a2023}.cross-theory{border:1px dashed var(--panel-border);border-radius:10px;margin-top:.55rem;padding:.55rem}.cross-theory-hint{color:var(--text-muted);margin:0;font-size:.82rem}.cross-axis-row{align-items:center;gap:.45rem;margin-bottom:.45rem;display:flex}.cross-axis-tabs{gap:.35rem;display:flex}.cross-axis-tab{border:1px solid var(--panel-border);background:var(--tab-bg);color:var(--text-main);cursor:pointer;border-radius:999px;padding:.2rem .5rem;font-size:.82rem}.cross-axis-tab.is-active{border-color:var(--tab-active-border);background:var(--tab-active-bg);color:var(--tab-active-text)}.cross-grid{grid-template-columns:repeat(3,2.4rem);gap:.18rem;width:fit-content;margin-bottom:.45rem;display:grid}.cross-head,.cross-cell{text-align:center;border:1px solid var(--panel-border);background:var(--tab-bg);border-radius:6px;padding:.2rem .15rem;font-size:.82rem}.cross-head.is-active{border-color:var(--tab-active-border);background:var(--tab-active-bg);color:var(--tab-active-text);font-weight:600}.cross-cell-positive{color:#0f7a3a;background:#eaf8ef;font-weight:600}.cross-cell-negative{color:#b42318;background:#fdecec;font-weight:600}.cross-formula{margin:0;line-height:1.4}.cross-pos{color:#0f7a3a;font-weight:600}.cross-neg,.cross-minus{color:#b42318;font-weight:600}.theme-dark .cross-cell-positive{color:#9be7be;background:#183426}.theme-dark .cross-cell-negative{color:#ffb4ab;background:#3a2023}.det3-theory{border:1px dashed var(--panel-border);border-radius:10px;margin-top:.55rem;padding:.55rem}.det3-column-row{align-items:center;gap:.45rem;margin-bottom:.45rem;display:flex}.det3-hint{color:var(--text-muted);margin:0;font-size:.82rem}.det3-column-tabs{gap:.35rem;display:flex}.det3-column-tab{border:1px solid var(--panel-border);background:var(--tab-bg);color:var(--text-main);cursor:pointer;border-radius:999px;padding:.2rem .5rem;font-size:.82rem}.det3-column-tab.is-active{border-color:var(--tab-active-border);background:var(--tab-active-bg);color:var(--tab-active-text);font-weight:600}.det3-grid{grid-template-columns:repeat(3,2.05rem);gap:.18rem;width:fit-content;margin-bottom:.45rem;display:grid}.det3-cell{text-align:center;border:1px solid var(--panel-border);background:var(--tab-bg);border-radius:6px;padding:.18rem .12rem;font-size:.82rem;position:relative}.det3-cell-positive{color:#0f7a3a;background:#eaf8ef;font-weight:600}.det3-cell-negative{color:#b42318;background:#fdecec;font-weight:600}.det3-cell-dual{color:#122033;background:linear-gradient(135deg,#eaf8ef 0 49%,#fdecec 51% 100%);font-weight:700}.det3-dual-markers{pointer-events:none;position:absolute;inset:0}.det3-dual-plus,.det3-dual-minus{font-size:.6rem;font-weight:700;line-height:1;position:absolute}.det3-dual-plus{color:#1b7f43;top:.1rem;left:.16rem}.det3-dual-minus{color:#b42318;bottom:.1rem;right:.16rem}.det3-formula{margin:0;line-height:1.5}.det3-positive-term{color:#1b7f43}.det3-positive-term-selected{background:#e8f8ed;border-radius:6px;padding:.05rem .16rem}.det3-negative-term{color:#b42318}.det3-negative-term-selected{background:#fdeaea;border-radius:6px;padding:.05rem .16rem}.det3-plus{color:#1b7f43;font-weight:700}.det3-minus{color:#b42318;font-weight:700}.det3-term-selected{font-weight:700}.det3-signs{border-top:1px solid var(--panel-border);margin-top:.55rem;padding-top:.5rem}.det3-signs-title{color:var(--text-muted);margin:0 0 .35rem;font-size:.82rem}.det3-sign-grid{grid-template-columns:repeat(3,1.5rem);gap:.16rem;width:fit-content;margin-bottom:.35rem;display:grid}.det3-sign-cell{text-align:center;border:1px solid var(--panel-border);background:var(--tab-bg);border-radius:5px;font-size:.78rem;font-weight:700;line-height:1.3}.det3-sign-positive{color:#1b7f43;background:#e8f8ed}.det3-sign-negative{color:#b42318;background:#fdeaea}.det3-signs-explanation{color:var(--text-muted);margin:0;font-size:.8rem}.theme-dark .det3-cell-positive{color:#9be7be;background:#183426}.theme-dark .det3-cell-negative{color:#ffb4ab;background:#3a2023}.theme-dark .det3-cell-dual{color:#e5edf8;background:linear-gradient(135deg,#183426 0 49%,#3a2023 51% 100%)}.theme-dark .det3-dual-plus{color:#9be7be}.theme-dark .det3-dual-minus{color:#ffb4ab}.theme-dark .det3-positive-term{color:#9be7be}.theme-dark .det3-negative-term{color:#ffb4ab}.theme-dark .det3-positive-term-selected{background:#183426}.theme-dark .det3-negative-term-selected{background:#3a2023}.theme-dark .det3-sign-positive{color:#9be7be;background:#173324}.theme-dark .det3-sign-negative{color:#ffb4ab;background:#3a2023}.eigen-theory{border:1px dashed var(--panel-border);border-radius:10px;margin-top:.55rem;padding:.55rem}.eigen-theory-title{color:var(--text-muted);margin:.1rem 0 .35rem;font-size:.82rem;font-weight:700}.eigen-theory-formula{color:var(--tab-active-text);background:var(--tab-active-bg);border:1px solid var(--tab-active-border);border-radius:6px;margin:.25rem 0;padding:.1rem .35rem;font-family:Consolas,Courier New,monospace;display:inline-block}.eigen-mono{font-family:Consolas,Courier New,monospace}@media (width<=840px){.app-header{flex-direction:column}.app-header-right{width:100%}.app-author{text-align:left}.module-layout{grid-template-columns:1fr}}
