html,body,#root{margin:0;width:100%;min-height:100%}:root{font-family:Avenir Next,Helvetica Neue,sans-serif}*{box-sizing:border-box}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #2f95d5;outline-offset:2px}body{margin:0;min-height:100vh}#root{width:100%;min-height:100vh}.app-shell{display:grid;grid-template-rows:auto 1fr;min-height:100vh;padding:1rem;gap:1rem;color:#102a43;background:radial-gradient(circle at 8% -12%,#ffaf7b47,#ffaf7b00 42%),radial-gradient(circle at 92% -10%,#60cdff3d,#60cdff00 44%),linear-gradient(145deg,#fff7ef,#f2fffb 55%,#eef5ff)}.app-shell.theme-day{color:#102a43;background:radial-gradient(circle at 8% -12%,#ffaf7b47,#ffaf7b00 42%),radial-gradient(circle at 92% -10%,#60cdff3d,#60cdff00 44%),linear-gradient(145deg,#fff7ef,#f2fffb 55%,#eef5ff)}.app-shell.theme-night{color:#e8f1ff;background:#0b1220}.app-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.app-header h1{margin:0;font-size:1.5rem}.app-controls{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:.6rem}.scene-actions{display:flex;gap:.5rem}.scene-actions button,.theme-switch button,.presentation-layout-switch button,.presentation-toggle,.overview-link,.overview-card button{border:1px solid #3d5f8d;background:#fff;color:#133d66;border-radius:999px;padding:.5rem .9rem;cursor:pointer;transition:transform .17s ease,border-color .17s ease,box-shadow .17s ease}.scene-actions button:hover,.theme-switch button:hover,.presentation-layout-switch button:hover,.presentation-toggle:hover,.overview-link:hover{transform:translateY(-1px);border-color:#2f95d5;box-shadow:0 8px 16px #2f95d529}.touch-target{min-width:44px;min-height:44px}.theme-switch{display:flex;gap:.5rem}.presentation-layout-switch{display:inline-flex;gap:.4rem;flex-wrap:wrap}.presentation-layout-switch button{font-size:.8rem;font-weight:700;padding:.42rem .72rem}.presentation-indicator{margin:0;padding:.36rem .68rem;border-radius:999px;border:1px solid rgba(37,108,167,.35);background:#e2f5ffd1;color:#10466b;font-size:.82rem;font-weight:700;line-height:1.2}.night-tone-switch{display:inline-flex;gap:.4rem}.night-tone-switch button{border:1px solid #3d5f8d;background:#ffffffeb;color:#124267;border-radius:999px;padding:.42rem .72rem;font-size:.82rem;font-weight:700;cursor:pointer}.night-tone-switch button.active,.scene-actions button.active,.theme-switch button.active,.presentation-layout-switch button.active,.presentation-toggle.active{background:linear-gradient(135deg,#3ea8ff,#36d6b1);border-color:#36d6b1;color:#062235}.overview-page{--overview-ink: #102a43;--overview-soft-ink: #335c75;--overview-card-bg-start: rgba(255, 255, 255, .9);--overview-card-bg-end: rgba(252, 255, 255, .96);--overview-card-border: rgba(58, 107, 153, .2);--overview-shell-border: rgba(74, 131, 180, .22);--overview-shell-bg: linear-gradient(160deg, rgba(255, 255, 255, .78) 0%, rgba(243, 251, 255, .82) 50%, rgba(245, 255, 250, .8) 100%);--overview-shadow: 0 22px 50px rgba(24, 61, 99, .14);position:relative;isolation:isolate;max-width:1120px;margin:0 auto;padding:.35rem .2rem 1.2rem}.overview-page:before{content:"";position:absolute;z-index:-1;inset:-16% -4% auto;height:320px;border-radius:999px;background:radial-gradient(circle at 14% 48%,#ff9a5f4d,#ff9a5f00 45%),radial-gradient(circle at 62% 14%,#56c1ff4d,#56c1ff00 44%),radial-gradient(circle at 86% 64%,#3ddbb83d,#3ddbb800 42%);filter:blur(10px);opacity:.9;pointer-events:none}.overview-shell{display:grid;gap:1rem;padding:1.15rem;border:1px solid var(--overview-shell-border);border-radius:24px;background:var(--overview-shell-bg);box-shadow:var(--overview-shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.overview-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.95rem;padding:1.2rem 1.3rem;border-radius:18px;border:1px solid rgba(77,137,189,.24);background:radial-gradient(circle at 95% 6%,#ffa45447,#ffa45400 48%),radial-gradient(circle at 12% 90%,#42b8ff33,#42b8ff00 45%),linear-gradient(145deg,#fffffff5,#f8fdfff2 45%,#f6fffbf2);animation:overview-rise .38s ease-out both}.overview-hero-main{display:grid;gap:.45rem}.overview-kicker{margin:0;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:#ff6d3a;font-weight:700}.overview-hero h2{margin:0;font-size:clamp(1.52rem,3vw,2.2rem);color:var(--overview-ink);font-family:Avenir Next,Helvetica Neue,sans-serif;font-weight:700;letter-spacing:-.015em}.overview-lead{margin:0;color:var(--overview-soft-ink);max-width:58ch;font-size:.98rem;line-height:1.52}.overview-hero-note{min-width:206px;align-self:start;padding:.75rem .82rem;border-radius:12px;border:1px solid rgba(255,170,87,.55);background:#ffc46629}.overview-note-title,.overview-note-text{margin:0}.overview-note-title{font-size:.76rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#c95c18}.overview-note-text{margin-top:.3rem;color:#5f4c24;font-size:.88rem;line-height:1.45}.overview-shortcut-tip{margin:.28rem 0 0;color:#4f5d72;font-size:.8rem;line-height:1.35}.overview-grid{display:grid;gap:.9rem;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.overview-card{--card-accent: #2cbcff;display:grid;gap:.58rem;border:1px solid var(--overview-card-border);border-radius:16px;background:linear-gradient(165deg,var(--overview-card-bg-start) 0%,var(--overview-card-bg-end) 100%);padding:1rem 1rem .92rem;position:relative;overflow:hidden;animation:overview-rise .43s ease-out both;transition:transform .2s ease,box-shadow .22s ease,border-color .22s ease}.overview-card:before{content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,var(--card-accent) 0%,rgba(255,255,255,0) 88%);opacity:.96}.overview-card:nth-child(1){animation-delay:70ms}.overview-card:nth-child(2){animation-delay:.13s}.overview-card:nth-child(3){animation-delay:.19s}.overview-card:nth-child(4){animation-delay:.25s}.overview-card:hover{transform:translateY(-5px);border-color:#2cbcff75;box-shadow:0 18px 34px #2cbcff2e}.overview-card-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.overview-card-index{margin:0;color:#5a6f86;font-size:.77rem;letter-spacing:.12em;font-weight:700}.overview-card-tag{margin:0;font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;border-radius:999px;padding:.22rem .55rem;background:#2cbcff1f;border:1px solid rgba(44,188,255,.35);color:#0f5f8f}.overview-card h3{margin:0;font-size:1.06rem;color:var(--overview-ink);font-family:Avenir Next,Helvetica Neue,sans-serif;font-weight:700;letter-spacing:-.01em}.overview-card-summary{margin:0;color:#345978;line-height:1.45;font-size:.91rem}.overview-points{margin:0;padding-left:1.1rem;display:grid;gap:.18rem;color:#2f4e68;font-size:.86rem}.overview-points li{margin:0}.overview-enter{width:100%;margin-top:.25rem;display:inline-flex;align-items:center;justify-content:space-between;gap:.45rem;border-radius:12px;border:1px solid rgba(44,188,255,.45);background:linear-gradient(145deg,#f0fbfff5,#fff);color:#12517a;font-weight:700;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.overview-enter:hover{transform:translateY(-1px);border-color:#2cbcffc7;box-shadow:0 10px 22px #2cbcff40}.overview-enter span:last-child{font-size:1rem;line-height:1}.tone-scope{--card-accent: #2cbcff}.tone-cyclotron{--card-accent: #ff9f43}.tone-mhd{--card-accent: #19d39a}.tone-oersted{--card-accent: #ff6f91}@keyframes overview-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.scene-container{min-height:0}.scene-loading{display:grid;place-items:center;height:100%;min-height:280px;font-weight:700;color:#374151}.scene-layout{display:grid;gap:1rem}.scene-layout--desktop{grid-template-columns:minmax(240px,320px) 1fr;min-height:calc(100vh - 130px)}.scene-layout--desktop.scene-layout--presentation-split{grid-template-columns:minmax(360px,44vw) minmax(0,1fr)}.scene-layout--tablet,.scene-layout--mobile{grid-template-columns:1fr;min-height:auto}.scene-layout--presentation,.scene-layout--presentation-viewport{grid-template-columns:1fr}.scene-toolbar{display:flex;justify-content:flex-start}.scene-toolbar-toggle{border:1px solid #3d5f8d;background:#fff;color:#133d66;border-radius:999px;padding:.45rem .8rem;font-weight:700;cursor:pointer}.scene-core-summary{border:1px solid #bcd4ea;border-radius:12px;background:#f7fcffeb;padding:.64rem .78rem}.scene-core-summary-stack{display:grid;gap:.22rem}.scene-core-summary-stack p{margin:0;color:#1d4d72;font-size:.84rem;font-family:SF Mono,Menlo,monospace}.control-panel{background:#ffffffdb;border:1px solid #c7d7e7;border-radius:12px;padding:1rem;display:flex;flex-direction:column;gap:.75rem}.control-panel--compact{width:100%}.control-panel h2{margin:0 0 .3rem;font-size:1.1rem}.control-panel label{font-weight:700;font-size:.95rem}.subsection{display:flex;flex-direction:column;gap:.45rem}.subsection h3{margin:0;font-size:.95rem}.formula-input{width:100%;border:1px solid #90a4ae;border-radius:8px;padding:.45rem .55rem;font-family:SF Mono,Menlo,monospace;font-size:.88rem}.formula-input:focus{outline:2px solid #98c1d9;border-color:#3d5a80}.preset-select{width:100%;border:1px solid #90a4ae;border-radius:8px;padding:.4rem .5rem;font-size:.88rem;background:#fff}.formula-help{font-size:.82rem;color:#2f4f64;padding:.45rem .55rem;border-radius:8px;background:#e6f4ffbf}.formula-error{margin:.1rem 0 0;color:#b00020;font-size:.82rem}.viewport-panel{border-radius:12px;overflow:hidden;border:1px solid #c7d7e7;min-height:420px;background:#ffffffa6}.readings p{margin:.2rem 0;font-family:SF Mono,Menlo,monospace}.structure-card{margin-top:.5rem;padding:.6rem .7rem;border:1px dashed #90a4ae;border-radius:10px;background:#edf7ffb3}.structure-card h3{margin:0 0 .35rem;font-size:.95rem}.structure-card ul{margin:0;padding-left:1.1rem}.structure-card li{margin:.15rem 0}.canvas-fallback{display:grid;place-items:center;height:100%;color:#3a506b}.canvas-fallback-stack,.interactive-canvas{display:grid;grid-template-rows:1fr auto;height:100%}.interactive-canvas-surface{min-height:0;height:100%;touch-action:none}.interactive-canvas-surface canvas{touch-action:none}.interaction-hint{margin:0;padding:.35rem .6rem;font-size:.85rem;color:#284b63;background:#e8f5ffe6;border-top:1px solid #c7d7e7}.interaction-feedback{color:#0b6e4f;font-weight:700}.scene-missing{display:grid;gap:.8rem;place-items:center;min-height:300px;border:1px dashed #9ab1c8;border-radius:12px;background:#ffffffc2}.scene-missing h2,.scene-missing p{margin:0}.scene-missing-links{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center}.scene-missing-links button{border:1px solid #3d5f8d;border-radius:999px;background:#fff;color:#133d66;padding:.45rem .8rem;cursor:pointer}.app-shell.theme-night .app-header h1{color:#f4f8ff}.app-shell.theme-night .scene-actions button,.app-shell.theme-night .theme-switch button,.app-shell.theme-night .presentation-layout-switch button,.app-shell.theme-night .presentation-toggle,.app-shell.theme-night .overview-link,.app-shell.theme-night .overview-card button{border-color:#4f6f98;background:#101c30;color:#dcecff}.app-shell.theme-night .scene-actions button.active,.app-shell.theme-night .theme-switch button.active,.app-shell.theme-night .presentation-layout-switch button.active,.app-shell.theme-night .presentation-toggle.active{background:#2d5277;border-color:#6e95bf;color:#eef6ff}.app-shell.theme-night .scene-toolbar-toggle{border-color:#4f6f98;background:#101c30;color:#dcecff}.app-shell.theme-night .presentation-indicator{border-color:#4f6f98;background:#112236eb;color:#dcecff}.app-shell.theme-night .scene-core-summary{border-color:#3f6285;background:#0e1d2de6}.app-shell.theme-night .scene-core-summary-stack p{color:#d8ebff}.app-shell.theme-night .night-tone-switch button{border-color:#4f6f98;background:#101c30;color:#dcecff}.app-shell.theme-night .night-tone-switch button.active{background:#2d5277;border-color:#6e95bf;color:#eef6ff}.app-shell.theme-night .control-panel{background:#0c1826e6;border-color:#2f4863}.app-shell.theme-night .control-panel h2,.app-shell.theme-night .control-panel label,.app-shell.theme-night .subsection h3{color:#ecf4ff}.app-shell.theme-night .formula-input,.app-shell.theme-night .preset-select{background:#0f1d2d;border-color:#3a5675;color:#dcecff}.app-shell.theme-night .formula-help{color:#c8dbee;background:#1a2a3de6}.app-shell.theme-night .overview-page{--overview-ink: #f1f6ff;--overview-soft-ink: #abc0da;--overview-card-bg-start: rgba(15, 27, 47, .95);--overview-card-bg-end: rgba(15, 27, 47, .95);--overview-card-border: rgba(98, 143, 198, .34);--overview-shell-border: rgba(86, 127, 176, .36);--overview-shell-bg: rgba(8, 20, 38, .92);--overview-shadow: 0 22px 46px rgba(1, 8, 18, .62)}.app-shell.theme-night .overview-page:before{display:none}.app-shell.theme-night .overview-hero{background:#0f1e33;border-color:#6695ca66}.app-shell.theme-night .overview-kicker{color:#9ed0ff}.app-shell.theme-night .overview-hero-note{border-color:#6798d08f;background:#3877b233}.app-shell.theme-night .overview-note-title{color:#c4e5ff}.app-shell.theme-night .overview-note-text{color:#c6dff7}.app-shell.theme-night .overview-shortcut-tip{color:#97afc8}.app-shell.theme-night .overview-card{border-color:#628fc657}.app-shell.theme-night .overview-card-index{color:#86a1be}.app-shell.theme-night .overview-card:before{background:#4f6f98;opacity:.68}.app-shell.theme-night .overview-card-summary{color:#abc2da}.app-shell.theme-night .overview-card-tag{color:#9be0ff;background:#2cbcff29;border-color:#2cbcff75}.app-shell.theme-night .overview-points{color:#c0d2e6}.app-shell.theme-night .overview-card:hover{border-color:#75b6ff99;box-shadow:0 16px 30px #0d40705c}.app-shell.theme-night .overview-enter{background:#10243b;border-color:#5eb5ff94;color:#d8f0ff}.app-shell.theme-night .overview-enter:hover{border-color:#7ec9ffd1;box-shadow:0 12px 24px #1a74bc4d}.app-shell.theme-night .viewport-panel{border-color:#2f4863;background:#0b1523b8}.app-shell.theme-night .structure-card{border-color:#46617d;background:#192a3bd9}.app-shell.theme-night .structure-card h3,.app-shell.theme-night .structure-card li{color:#dcecff}.app-shell.theme-night .interaction-hint{color:#bdd9f2;background:#122234f2;border-top-color:#2f4863}.app-shell.theme-night .interaction-feedback{color:#8ff2cf}.app-shell.theme-night .canvas-fallback{color:#b8d4ec}.app-shell.theme-night .scene-missing{border-color:#40617f;background:#0f1d2ce6}.app-shell.theme-night .scene-missing h2,.app-shell.theme-night .scene-missing p{color:#deedff}.app-shell.theme-night .scene-missing-links button{border-color:#4f6f98;background:#101c30;color:#dcecff}.app-shell.theme-night.night-tone-neon{color:#f6ebff;background:#161127}.app-shell.theme-night.night-tone-neon .scene-actions button,.app-shell.theme-night.night-tone-neon .theme-switch button,.app-shell.theme-night.night-tone-neon .presentation-layout-switch button,.app-shell.theme-night.night-tone-neon .presentation-toggle,.app-shell.theme-night.night-tone-neon .overview-link,.app-shell.theme-night.night-tone-neon .overview-card button,.app-shell.theme-night.night-tone-neon .scene-toolbar-toggle,.app-shell.theme-night.night-tone-neon .night-tone-switch button,.app-shell.theme-night.night-tone-neon .scene-missing-links button{border-color:#9158d8;background:#251744;color:#f3dbff}.app-shell.theme-night.night-tone-neon .scene-actions button.active,.app-shell.theme-night.night-tone-neon .theme-switch button.active,.app-shell.theme-night.night-tone-neon .presentation-layout-switch button.active,.app-shell.theme-night.night-tone-neon .presentation-toggle.active,.app-shell.theme-night.night-tone-neon .night-tone-switch button.active{background:#6a46a3;border-color:#ff67b2;color:#21072e}.app-shell.theme-night.night-tone-neon .control-panel{background:#22143ae6;border-color:#5f4d8f}.app-shell.theme-night.night-tone-neon .control-panel h2,.app-shell.theme-night.night-tone-neon .control-panel label,.app-shell.theme-night.night-tone-neon .subsection h3{color:#f6e9ff}.app-shell.theme-night.night-tone-neon .formula-input,.app-shell.theme-night.night-tone-neon .preset-select{background:#2a1d47;border-color:#7d63b5;color:#f2e8ff}.app-shell.theme-night.night-tone-neon .formula-help{color:#edd9ff;background:#442c69e6}.app-shell.theme-night.night-tone-neon .overview-page{--overview-ink: #fcefff;--overview-soft-ink: #d5baf2;--overview-card-bg-start: rgba(45, 26, 70, .94);--overview-card-bg-end: rgba(45, 26, 70, .94);--overview-card-border: rgba(201, 124, 255, .36);--overview-shell-border: rgba(173, 108, 232, .42);--overview-shell-bg: rgba(35, 19, 55, .9);--overview-shadow: 0 22px 46px rgba(11, 4, 20, .66)}.app-shell.theme-night.night-tone-neon .overview-hero{border-color:#c97cff75;background:#2e1849f5}.app-shell.theme-night.night-tone-neon .overview-kicker{color:#ffb5d6}.app-shell.theme-night.night-tone-neon .overview-hero-note{border-color:#ffb87699;background:#ffb8762e}.app-shell.theme-night.night-tone-neon .overview-note-title{color:#ffe1c2}.app-shell.theme-night.night-tone-neon .overview-note-text{color:#f5dec4}.app-shell.theme-night.night-tone-neon .overview-shortcut-tip{color:#d8bee8}.app-shell.theme-night.night-tone-neon .overview-card{border-color:#c97cff61}.app-shell.theme-night.night-tone-neon .overview-card-index{color:#b89fd3}.app-shell.theme-night.night-tone-neon .overview-card-summary{color:#dbc6ef}.app-shell.theme-night.night-tone-neon .overview-card-tag{color:#f7ddff;background:#c97cff33;border-color:#c97cff80}.app-shell.theme-night.night-tone-neon .overview-points{color:#ddc8ef}.app-shell.theme-night.night-tone-neon .overview-card:hover{border-color:#eb9affa8;box-shadow:0 16px 30px #b14fe057}.app-shell.theme-night.night-tone-neon .overview-enter{background:#481c5ff5;border-color:#e898ff9e;color:#faedff}.app-shell.theme-night.night-tone-neon .overview-enter:hover{border-color:#f1b7ffe0;box-shadow:0 12px 24px #c969ec52}.app-shell.theme-night.night-tone-neon .viewport-panel{border-color:#5f4d8f;background:#1b102fbd}.app-shell.theme-night.night-tone-neon .structure-card{border-color:#8263b1;background:#342052db}.app-shell.theme-night.night-tone-neon .structure-card h3,.app-shell.theme-night.night-tone-neon .structure-card li{color:#f2e5ff}.app-shell.theme-night.night-tone-neon .interaction-hint{color:#e9d9ff;background:#2f1d48f0;border-top-color:#5f4d8f}.app-shell.theme-night.night-tone-neon .interaction-feedback{color:#ffbde4}.app-shell.theme-night.night-tone-neon .canvas-fallback{color:#f2e0ff}.app-shell.theme-night.night-tone-neon .scene-missing{border-color:#6d57a5;background:#25183ee6}.app-shell.theme-night.night-tone-neon .presentation-indicator{border-color:#9158d8;background:#2d1947f2;color:#f3dbff}.app-shell.theme-night.night-tone-neon .scene-core-summary{border-color:#7d63b5;background:#341e51e6}.app-shell.theme-night.night-tone-neon .scene-core-summary-stack p{color:#f2e5ff}.app-shell.theme-night.night-tone-neon .scene-missing h2,.app-shell.theme-night.night-tone-neon .scene-missing p{color:#f4e7ff}.app-shell.presentation-mode .app-header h1{font-size:2.02rem}.app-shell.presentation-mode .app-controls button{font-size:.94rem;padding-top:.56rem;padding-bottom:.56rem}.app-shell.presentation-mode .scene-layout{gap:.75rem}.app-shell.presentation-mode .viewport-panel{min-height:560px}.app-shell.presentation-mode .control-panel{padding:1.08rem;gap:.95rem}.app-shell.presentation-mode .control-panel h2{font-size:1.42rem}.app-shell.presentation-mode .control-panel label,.app-shell.presentation-mode .subsection h3{font-size:1.1rem}.app-shell.presentation-mode .formula-input,.app-shell.presentation-mode .preset-select,.app-shell.presentation-mode .formula-help,.app-shell.presentation-mode .formula-error,.app-shell.presentation-mode .interaction-hint{font-size:1.02rem}.app-shell.presentation-mode .structure-card h3{font-size:1.14rem}.app-shell.presentation-mode .structure-card li,.app-shell.presentation-mode .readings p{font-size:1.02rem}.app-shell.presentation-mode .scene-core-summary-stack p{font-size:.95rem}@media(prefers-reduced-motion:reduce){.overview-hero,.overview-card{animation:none}.overview-card,.overview-enter{transition:none}}@media(max-width:1199px){.viewport-panel{min-height:360px}}@media(max-width:767px){.overview-page{padding:.8rem .25rem 1rem}.overview-shell{padding:.8rem;border-radius:18px}.overview-hero{grid-template-columns:1fr;padding:.95rem .9rem}.overview-hero-note{min-width:0}.overview-grid{grid-template-columns:1fr}.viewport-panel{min-height:300px}}
