:root{--bg: #f7f3ea;--bg2: #e7edf4;--text: #172033;--muted: #526071;--card: rgba(255, 252, 244, .78);--card-strong: rgba(255, 252, 244, .92);--line: rgba(38, 53, 77, .16);--shadow: 0 24px 70px rgba(15, 23, 42, .14);--deep: #0f172a;--ivory: #fffaf0;--slate: #475569;--accent: #67e8f9}:root[data-theme=dark]{--bg: #07111f;--bg2: #101927;--text: #e5eefb;--muted: #9fb0c5;--card: rgba(15, 23, 42, .72);--card-strong: rgba(15, 23, 42, .9);--line: rgba(226, 232, 240, .16);--shadow: 0 24px 80px rgba(0, 0, 0, .36);--deep: #020617;--ivory: #fffaf0;--slate: #94a3b8}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--text);background:radial-gradient(circle at 12% 8%,rgba(103,232,249,.22),transparent 28%),radial-gradient(circle at 86% 18%,rgba(167,139,250,.2),transparent 32%),linear-gradient(135deg,var(--bg),var(--bg2));min-height:100vh}button,input,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;position:relative;overflow-x:hidden}main{width:min(1220px,calc(100% - 34px));margin:0 auto;padding:108px 0 56px}.glass{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}.glass-lite{background:#ffffff0f;border:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.ambient{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:-1}.ambient-grid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:radial-gradient(circle at 50% 20%,black,transparent 75%);mask-image:radial-gradient(circle at 50% 20%,black,transparent 75%);opacity:.46}.ambient-wave{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:.42}.ambient-line{fill:none;stroke:#67e8f952;stroke-width:1.1;stroke-dasharray:7 14;animation:dash 22s linear infinite}@keyframes dash{to{stroke-dashoffset:-400}}.topbar{position:fixed;left:50%;top:16px;transform:translate(-50%);z-index:20;width:min(1220px,calc(100% - 34px));border-radius:24px;min-height:68px;padding:10px 12px;display:flex;align-items:center;gap:12px}.brand{display:flex;align-items:center;gap:12px;border:0;background:transparent;color:var(--text);padding:7px 10px;border-radius:18px}.brand:hover{background:#7dd3fc1f}.brand-mark{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#0f172a,#1e3a8a 55%,#67e8f9);color:#fff;font-family:Playfair Display,serif;font-size:25px;box-shadow:0 0 28px #67e8f947}.brand strong{display:block;font-weight:800;letter-spacing:.03em}.brand em{display:block;font-style:normal;font-size:11px;color:var(--muted)}.topnav{display:flex;gap:5px;overflow-x:auto;flex:1;justify-content:center;padding:2px}.topnav button,.theme-toggle{border:1px solid var(--line);color:var(--text);background:#ffffff14;border-radius:999px;padding:9px 12px;transition:.25s ease}.topnav button:hover,.topnav button.active,.theme-toggle:hover{transform:translateY(-2px);background:#67e8f929;border-color:#67e8f980}.theme-toggle{white-space:nowrap}.page-rise{animation:rise .55s cubic-bezier(.2,.8,.2,1) both}@keyframes rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:22px;align-items:stretch;min-height:590px}.hero-copy{padding:64px 6px 36px}.eyebrow{margin:0 0 12px;color:var(--accent);text-transform:uppercase;letter-spacing:.16em;font-size:12px;font-weight:800}h1,h2,h3{margin:0;line-height:1.08}h1{font-family:Playfair Display,Source Serif 4,serif;font-size:clamp(48px,8vw,102px);letter-spacing:-.045em}h1 span{color:transparent;background:linear-gradient(90deg,#67e8f9,#a78bfa,#fbbf24);background-clip:text;-webkit-background-clip:text}h2{font-family:Playfair Display,Source Serif 4,serif;font-size:clamp(28px,4vw,48px);letter-spacing:-.025em}h3{font-size:22px}.hero-lead{color:var(--muted);font-size:clamp(17px,2vw,21px);line-height:1.8;max-width:740px}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.primary-btn,.ghost-btn,.back-btn,.module-next button{border:1px solid transparent;border-radius:999px;padding:12px 18px;transition:.25s ease}.primary-btn{background:linear-gradient(135deg,#1d4ed8,#06b6d4);color:#fff;box-shadow:0 12px 30px #06b6d438}.ghost-btn,.back-btn,.module-next button{background:#ffffff14;color:var(--text);border-color:var(--line)}.primary-btn:hover,.ghost-btn:hover,.back-btn:hover,.module-next button:hover{transform:translateY(-2px);filter:brightness(1.06)}.earth-panel{border-radius:34px;padding:20px;display:grid;grid-template-rows:1fr auto;min-height:570px;overflow:hidden}.earth-svg{width:100%;height:min(72vh,480px)}.earth-ring{cursor:pointer;outline:none;transition:.25s ease}.earth-ring:hover circle:first-child{stroke-width:4;opacity:1}.ray-orbit{fill:none;stroke:#67e8f9;stroke-width:2;stroke-dasharray:8 10;animation:dash 10s linear infinite;filter:drop-shadow(0 0 8px rgba(103,232,249,.7))}.ray-orbit.delay{animation-duration:15s;stroke:#fbbf24;opacity:.75}.quake-dot{fill:#fb7185;filter:drop-shadow(0 0 14px #fb7185);animation:pulse 1.8s infinite}@keyframes pulse{50%{transform:scale(1.25);opacity:.7}}.earth-label,.svg-label{fill:var(--text);font:700 16px Inter}.svg-label.small,.earth-label{font-size:12px;fill:var(--muted)}.earth-list{display:grid;gap:8px;grid-template-columns:repeat(2,1fr)}.earth-list button{display:flex;align-items:center;gap:8px;padding:10px;border:1px solid var(--line);border-radius:14px;background:#ffffff0f;color:var(--text)}.earth-list span{width:10px;height:10px;border-radius:999px}.question-panel{margin-top:22px;border-radius:34px;padding:28px;display:grid;grid-template-columns:.8fr 1.2fr;gap:22px}.question-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.mini-card{padding:18px;border-radius:22px;border:1px solid var(--line);background:#ffffff14}.mini-card p{margin-bottom:0;color:var(--muted);line-height:1.65}.module-grid{margin-top:22px;display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.module-card{text-align:left;color:var(--text);border-radius:26px;padding:22px;min-height:210px;transition:.28s cubic-bezier(.2,.8,.2,1);position:relative;overflow:hidden}.module-card:before{content:"";position:absolute;inset:auto 18px 0 18px;height:4px;border-radius:99px;background:var(--accent);box-shadow:0 0 22px var(--accent)}.module-card:hover{transform:translateY(-8px) scale(1.01);border-color:color-mix(in srgb,var(--accent),transparent 35%)}.module-icon{font-size:36px;color:var(--accent)}.module-id{float:right;color:var(--muted);font-weight:800}.module-card h3{margin-top:18px}.module-card p{color:var(--muted);line-height:1.55}.module-card small{color:var(--accent);font-weight:800}.module-page{padding-bottom:30px}.module-hero{border-radius:34px;padding:34px;position:relative;overflow:hidden}.module-hero:after{content:"";position:absolute;right:-70px;top:-120px;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,var(--accent),transparent 62%);opacity:.18}.module-hero h1{font-size:clamp(40px,6vw,78px)}.formula-pill{display:inline-block;margin-top:20px;border:1px solid color-mix(in srgb,var(--accent),transparent 50%);background:#67e8f914;border-radius:18px;padding:12px 16px;color:var(--text)}.back-btn{margin-bottom:24px}.content-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:20px;margin-top:20px}.knowledge-card,.prof-note,.interactive-zone,.quiz,.accordion,.module-next,.code-lab{border-radius:30px;padding:26px}.knowledge-card p,.prof-note p,.accordion-body,.quiz-result,.sim-explain{color:var(--muted);line-height:1.75}.formula-card{border:1px solid var(--line);border-radius:22px;padding:18px;margin:22px 0;background:#ffffff12;overflow-x:auto}.formula-card span{display:block;color:var(--accent);font-weight:800;margin-bottom:8px}.bullet-list p{margin:12px 0}.prof-note{align-self:start;position:sticky;top:110px}.prof-avatar{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent),#1d4ed8);color:#fff;font-weight:900;margin-bottom:18px}.interactive-zone{margin-top:20px}.zone-title{margin-bottom:20px}.interactive-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px;align-items:start}.interactive-grid.two{grid-template-columns:1fr .8fr}.sim-card,.control-panel{border:1px solid var(--line);border-radius:26px;background:#ffffff0f;padding:18px}.wide-svg{width:100%;min-height:310px;display:block}.chart-card canvas{width:100%;height:auto;display:block;background:#ffffff08;border-radius:18px}.control-panel{display:grid;gap:16px}.slider-row{display:grid;gap:8px}.slider-row span{display:flex;justify-content:space-between;color:var(--muted)}.slider-row strong{color:var(--text)}input[type=range]{width:100%;accent-color:var(--accent)}.numbers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.numbers.big{grid-template-columns:1fr}.numbers span{border:1px solid var(--line);border-radius:16px;padding:11px;background:#ffffff0f;font-size:14px;color:var(--text)}hr{width:100%;border:0;border-top:1px solid var(--line)}.scan-ray{fill:none;stroke:#67e8f973;stroke-width:1.3;stroke-dasharray:4 8;animation:dash 6s linear infinite}.bar-stack{display:grid;gap:12px}.metric-bar{display:grid;grid-template-columns:120px 1fr 34px;gap:10px;align-items:center;font-size:13px}.metric-bar div{height:10px;border-radius:999px;background:#94a3b838;overflow:hidden}.metric-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#1d4ed8,#67e8f9)}.sphere-ray{fill:none;stroke:#67e8f9;stroke-width:3.4;stroke-dasharray:9 10;animation:dash 7s linear infinite;filter:drop-shadow(0 0 10px rgba(103,232,249,.55))}.sphere-ray.faint{stroke:#a78bfa;opacity:.5;animation-duration:10s}.phase-path{fill:none;stroke:#94a3b880;stroke-width:5;stroke-linecap:round;cursor:pointer;transition:.25s ease}.phase-path:hover,.phase-path.active{stroke-width:8;filter:drop-shadow(0 0 12px currentColor)}.phase-path.active{stroke:#67e8f9}.phase-path.s.active{stroke:#f0abfc}.phase-path.pp.active{stroke:#fbbf24}.phase-path.pcp.active{stroke:#fb7185}.phase-path.pkp.active,.phase-path.pkikp.active{stroke:#fbbf24}.phase-path.diff.active{stroke:#a78bfa}.phase-panel h3{font-family:Playfair Display,serif;font-size:68px;color:var(--accent)}.phase-buttons{display:flex;flex-wrap:wrap;gap:8px}.phase-buttons button,.toggle-group button{border:1px solid var(--line);background:#ffffff12;color:var(--text);border-radius:999px;padding:9px 12px}.phase-buttons button.active,.toggle-group button.active{background:#67e8f929;border-color:var(--accent)}.toggle-group{display:flex;gap:10px;flex-wrap:wrap}.wavefront{stroke-width:3;stroke-dasharray:10 10;animation:dash 8s linear infinite}.wavefront.fast{stroke:#67e8f9}.wavefront.slow{stroke:#fb7185;animation-duration:12s}.split-wave{fill:none;stroke:#fbbf24;stroke-width:3;filter:drop-shadow(0 0 10px rgba(251,191,36,.38))}.accordion-zone{margin-top:20px;display:grid;gap:12px}.accordion{padding:0;overflow:hidden}.accordion>button{width:100%;display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border:0;background:transparent;color:var(--text);font-weight:800}.accordion-body{padding:0 24px 22px}.accordion-body li{margin:10px 0}.quiz{margin-top:20px}.quiz-options{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px}.quiz-options button{border:1px solid var(--line);border-radius:18px;padding:16px;background:#ffffff0f;color:var(--text);transition:.25s ease}.quiz-options button:hover{transform:translateY(-2px)}.quiz-options button.correct{border-color:#22c55e;background:#22c55e26}.quiz-options button.wrong{border-color:#fb7185;background:#fb718526}.quake-feedback{animation:shake .36s ease}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}.module-next{margin-top:20px;display:flex;justify-content:space-between;gap:12px}.code-lab-section{margin-top:24px;scroll-margin-top:120px}.code-lab{margin-top:0}.lab-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.editor-panel,.output-panel{border:1px solid var(--line);border-radius:24px;overflow:hidden;background:#02061726}.editor-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px;border-bottom:1px solid var(--line)}.editor-toolbar span{color:var(--muted);font-size:13px}.editor-panel textarea{width:100%;min-height:520px;border:0;resize:vertical;padding:18px;background:#020617d1;color:#e2e8f0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.55}.output-panel{padding:14px}.output-panel pre{min-height:90px;white-space:pre-wrap;color:var(--muted);margin:0 0 14px}.output-panel img{width:100%;border-radius:18px;background:#fff}.empty-output{min-height:360px;display:grid;place-items:center;border:1px dashed var(--line);border-radius:18px;color:var(--muted)}.footer{text-align:center;color:var(--muted);padding:30px;font-size:13px}@media (max-width: 980px){main{padding-top:126px}.topbar{flex-wrap:wrap}.topnav{order:3;flex-basis:100%;justify-content:flex-start}.hero-grid,.content-grid,.interactive-grid,.interactive-grid.two,.question-panel,.lab-grid{grid-template-columns:1fr}.module-grid{grid-template-columns:repeat(2,1fr)}.question-grid,.quiz-options{grid-template-columns:1fr}.prof-note{position:static}}@media (max-width: 620px){main{width:min(100% - 20px,1220px)}.module-grid,.numbers{grid-template-columns:1fr}.hero-copy{padding-top:30px}.earth-list{grid-template-columns:1fr}.module-hero,.knowledge-card,.interactive-zone,.quiz,.code-lab{padding:20px;border-radius:24px}.brand em{display:none}}.textbook-gallery{margin:28px 0;padding:26px;border-radius:30px;position:relative;overflow:hidden}.textbook-gallery:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(circle at 12% 8%,color-mix(in srgb,var(--accent) 24%,transparent),transparent 28%),linear-gradient(135deg,rgba(148,163,184,.08),transparent 42%)}.textbook-gallery>*{position:relative}.textbook-gallery .zone-title p:last-child{max-width:820px;margin-top:6px;color:var(--muted)}.textbook-figure-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:20px}.textbook-figure{margin:0;border:1px solid color-mix(in srgb,var(--accent) 26%,rgba(148,163,184,.26));border-radius:24px;overflow:hidden;background:color-mix(in srgb,var(--panel) 88%,rgba(255,255,255,.06));box-shadow:0 18px 48px #0206172e;transform:translateY(0);transition:transform .24s ease,border-color .24s ease,box-shadow .24s ease}.textbook-figure:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--accent) 60%,rgba(255,255,255,.2));box-shadow:0 24px 70px #0206173d}.textbook-figure.wide{grid-column:1 / -1}.figure-image-wrap{display:grid;place-items:center;min-height:230px;padding:14px;background:linear-gradient(180deg,#fffffff2,#f1f5f9f0),repeating-linear-gradient(0deg,rgba(15,23,42,.04),rgba(15,23,42,.04) 1px,transparent 1px,transparent 14px)}.figure-image-wrap img{max-width:100%;width:100%;max-height:560px;object-fit:contain;border-radius:14px;display:block;filter:contrast(1.04)}.textbook-figure:not(.wide) .figure-image-wrap img{max-height:330px}.textbook-figure figcaption{padding:16px 18px 18px;border-top:1px solid rgba(148,163,184,.16)}.figure-index{display:inline-flex;width:fit-content;margin-bottom:9px;padding:4px 9px;border-radius:999px;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:color-mix(in srgb,var(--accent) 76%,var(--text));background:color-mix(in srgb,var(--accent) 14%,transparent);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent)}.textbook-figure strong{display:block;font-family:"Source Serif 4",serif;font-size:1.03rem;color:var(--text);margin-bottom:6px}.textbook-figure p{margin:0;line-height:1.75;color:var(--muted);font-size:.94rem}@media (max-width: 860px){.textbook-gallery{padding:18px}.textbook-figure-grid{grid-template-columns:1fr}.textbook-figure.wide{grid-column:auto}.figure-image-wrap{min-height:180px;padding:10px}}.record-lab{display:grid;gap:22px}.record-hero-card{padding:22px;border-radius:26px}.record-hero-card h3{margin:4px 0 10px;font-family:Playfair Display,"Source Serif 4",serif;font-size:clamp(1.35rem,2.4vw,2rem)}.record-hero-card p:last-child{color:var(--muted);line-height:1.85;margin:0}.record-grid{align-items:stretch}.record-viewer{min-width:0}.record-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.record-toolbar h3{margin:4px 0 0;font-family:"Source Serif 4",serif;font-size:1.25rem}.toggle-group.compact{flex-wrap:nowrap}.toggle-line{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0 14px;color:var(--muted)}.small-btn{border:1px solid rgba(148,163,184,.25);border-radius:999px;background:#94a3b814;color:var(--text);padding:7px 12px;cursor:pointer}.small-btn.active,.toggle-line .active{background:color-mix(in srgb,var(--accent) 20%,transparent);border-color:color-mix(in srgb,var(--accent) 45%,rgba(148,163,184,.25))}.record-image-frame{position:relative;overflow:auto;border-radius:22px;border:1px solid color-mix(in srgb,var(--accent) 28%,rgba(148,163,184,.2));background:linear-gradient(180deg,#fffffffa,#f1f5f9f5),repeating-linear-gradient(90deg,rgba(15,23,42,.04),rgba(15,23,42,.04) 1px,transparent 1px,transparent 22px);max-height:640px}.record-image-frame img{width:100%;min-width:720px;display:block;object-fit:contain}.record-callout{position:absolute;z-index:2;max-width:230px;padding:9px 12px;border-radius:14px;font-size:.82rem;line-height:1.45;color:#0f172a;background:#ffffffe0;border:1px solid rgba(15,23,42,.18);box-shadow:0 12px 30px #0206172e;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.record-callout.distance{left:44%;bottom:18px}.record-callout.time{left:18px;top:32%}.record-callout.trend{right:22px;top:46%}.record-controls .numbers.big{grid-template-columns:1fr}.record-analysis-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.analysis-card{padding:18px;border-radius:22px}.analysis-card strong{display:block;margin-bottom:8px;color:color-mix(in srgb,var(--accent) 68%,var(--text));font-family:"Source Serif 4",serif;font-size:1.05rem}.analysis-card p{margin:0;color:var(--muted);line-height:1.75;font-size:.93rem}.process-board{padding:24px;border-radius:30px}.process-steps{list-style:none;margin:18px 0 0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.process-steps li{padding:16px;border-radius:20px;border:1px solid rgba(148,163,184,.22);background:#94a3b812}.process-steps span{display:inline-flex;width:fit-content;margin-bottom:10px;padding:4px 9px;border-radius:999px;color:color-mix(in srgb,var(--accent) 80%,var(--text));background:color-mix(in srgb,var(--accent) 14%,transparent);font-size:.76rem;font-weight:800}.process-steps strong{display:block;margin-bottom:6px;font-family:"Source Serif 4",serif}.process-steps p,.code-note p{margin:0;color:var(--muted);line-height:1.7;font-size:.92rem}.code-note{padding:18px 20px;border-radius:22px}.code-note strong{display:block;margin-bottom:6px}@media (max-width: 1100px){.record-analysis-grid,.process-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 720px){.record-toolbar{align-items:flex-start;flex-direction:column}.record-image-frame img{min-width:620px}.record-analysis-grid,.process-steps{grid-template-columns:1fr}.record-callout{display:none}}.phase-path.k{stroke:#fbbf24;stroke-width:6;fill:none;stroke-linecap:round}.phase-path.i{stroke:#fff;stroke-width:5;fill:none;stroke-linecap:round}.phase-path.diff{stroke:#34d399;stroke-width:6;fill:none;stroke-linecap:round;stroke-dasharray:8 8}.phase-legend{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:18px;color:var(--muted);font-size:.92rem;line-height:1.5}.phase-legend span{display:inline-flex;align-items:center;gap:7px}.legend-line{width:28px;height:4px;border-radius:999px;display:inline-block}.legend-line.p{background:#67e8f9}.legend-line.s{background:#e879f9}.legend-line.k{background:#fbbf24}.legend-line.i{background:#fff}.legend-line.diff{background:#34d399}
