:root {
  --bg: #f7f8fb;
  --bg-2: #eef2ff;
  --paper: rgba(255, 255, 255, 0.68);
  --paper-solid: #ffffff;
  --ink: #0f172a;
  --muted: #64748b;
  --line: rgba(15, 23, 42, 0.095);
  --blue: #2563eb;
  --blue-dark: #1d4ed8;
  --cyan: #06b6d4;
  --violet: #7c3aed;
  --green: #10b981;
  --amber: #f59e0b;
  --shadow: 0 24px 70px rgba(15, 23, 42, 0.12);
  --radius: 8px;
  --motion-fast: 160ms;
  --motion-base: 280ms;
  --motion-slow: 520ms;
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-spring: cubic-bezier(0.16, 1.25, 0.3, 1);
}

/* 2026 learning-system redesign */
:root { --bg:#f6f8fc; --paper-solid:#fff; --ink:#101828; --muted:#526175; --line:#e4e7ec; --blue:#315cf6; --blue-dark:#1c2c5b; --cyan:#18b6c9; --shadow:0 18px 54px rgba(16,24,40,.11); --shadow-card:0 8px 30px rgba(16,24,40,.06); --radius:16px; }
body { font-size:16px; line-height:1.7; }
.physics-field::after, .physics-field span { display:none; }
.nav,.page-shell { max-width:1280px; }
.nav { min-height:68px; }
.brand { display:grid; grid-template-columns:auto 1fr; grid-template-rows:auto auto; }
.brand::before { grid-row:1 / 3; align-self:center; }
.brand strong { font-size:.95rem; line-height:1.25; white-space:nowrap; }
.brand small { color:var(--muted); font-size:.57rem; letter-spacing:.15em; line-height:1.25; }
.surface { box-shadow:var(--shadow-card); backdrop-filter:blur(14px) saturate(125%); }
.hero { min-height:650px; padding:72px 0 56px; gap:64px; }
h1 { font-size:clamp(2.5rem,4.6vw,4rem); }
.lead { font-size:1.08rem; line-height:1.8; }
.subject-line { margin-top:24px; color:var(--muted); font-size:.88rem; letter-spacing:.03em; }
.physics-console { min-height:530px; padding:24px; }
.console-heading { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; }
.console-heading div { display:grid; }
.console-heading span { color:#8ea0b9; font-size:.75rem; letter-spacing:.08em; }
.console-heading strong { font-size:1.18rem; }
.console-heading output { color:#67e8f9; font-family:ui-monospace,monospace; }
.projectile-stage { width:100%; margin:12px 0 8px; color:#67e8f9; overflow:visible; }
.grid-axis { fill:none; stroke:rgba(255,255,255,.22); stroke-width:1.5; }
.trajectory { fill:none; stroke:#67e8f9; stroke-width:2.5; stroke-dasharray:5 7; }
#projectileBall circle { fill:#fff; stroke:#315cf6; stroke-width:4; }
.velocity-vector,.gravity-vector { fill:none; stroke:currentColor; stroke-width:2.5; marker-end:url(#arrow); }
.gravity-vector { color:#f2a544; }
.projectile-stage text { fill:currentColor; font:16px ui-monospace,monospace; }
.experiment-controls { display:grid; grid-template-columns:1fr 1fr; gap:12px 18px; padding-top:12px; border-top:1px solid rgba(255,255,255,.14); }
.experiment-controls label { margin:0; color:#cbd5e1; }
.experiment-controls output { float:right; color:#fff; }
.experiment-controls input { padding:0; accent-color:#67e8f9; background:transparent; box-shadow:none; }
.playback { grid-column:1 / -1; display:flex; gap:8px; }
.section { padding:72px 0; scroll-margin-top:80px; }
.section-head p:not(.eyebrow) { font-size:1.02rem; }
.quick-start { display:grid; grid-template-columns:1.55fr repeat(3,minmax(140px,.75fr)) auto; gap:18px; align-items:end; padding:24px 28px; background:rgba(255,255,255,.9); }
.quick-start h2 { font-size:1.2rem; }.quick-start .eyebrow { margin-bottom:4px; }.quick-start label { margin:0; }
select { min-height:44px; width:100%; padding:8px 34px 8px 11px; border:1px solid var(--line); border-radius:10px; color:var(--ink); background:#fff; font:inherit; }
.learning-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.learning-card { min-height:225px; padding:24px; display:flex; flex-direction:column; justify-content:space-between; transition:transform 180ms ease,border-color 180ms ease; }
.learning-card:hover { transform:translateY(-2px); border-color:rgba(49,92,246,.28); }
.learning-card p { margin:5px 0; color:var(--muted); }.learning-card small { color:var(--muted); }.learning-card>strong { color:var(--blue); font-size:.88rem; }
.physics-mark { font:700 2.2rem Georgia,serif; color:var(--blue); }.subject-1 .physics-mark{color:#6658d3}.subject-2 .physics-mark{color:#e58c27}.subject-3 .physics-mark{color:#18a3b5}.subject-4 .physics-mark{color:#168d82}.subject-5 .physics-mark{color:#a33a55}
.lab-grid { display:grid; grid-template-columns:1.45fr 1fr; gap:18px; }
.featured-lab { min-height:430px; padding:32px; background:linear-gradient(145deg,#101828,#1c2c5b); color:#fff; overflow:hidden; }
.featured-lab p { color:#cbd5e1; }.featured-lab h3 { font-size:1.5rem; max-width:540px; }
.wave-demo { height:160px; display:flex; align-items:center; gap:10px; }
.wave-demo i { width:8px; height:var(--h); border-radius:9px; background:linear-gradient(#67e8f9,#315cf6); opacity:.78; }
.lab-list { display:grid; grid-template-columns:1fr 1fr; gap:16px; }.mini-lab { min-height:205px; padding:22px; display:flex; flex-direction:column; justify-content:space-between; }
.mini-lab p { color:var(--muted); font-size:.88rem; }.lab-icon { color:var(--blue); font-size:2rem; }
.model-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:14px; }.model-card { min-height:260px; padding:22px; display:flex; flex-direction:column; }
.model-card>span { color:var(--blue); font-size:.75rem; font-weight:800; }.model-card p { color:var(--muted); }.model-card code { margin:auto 0 18px; padding:10px; border-radius:8px; color:var(--blue-dark); background:#eef2ff; font-size:1rem; }.model-card a,.text-link { color:var(--blue); font-weight:750; font-size:.86rem; }
.editorial-grid { display:grid; grid-template-columns:1.2fr 1fr; gap:64px; align-items:center; border-top:1px solid var(--line); }.editorial-grid>article:first-child h2 { font-size:clamp(2rem,4vw,3.5rem); max-width:700px; }.editorial-grid>article:first-child p:not(.eyebrow) { color:var(--muted); max-width:650px; }.challenge { padding:32px; }.challenge p { color:var(--muted); }
.philosophy { max-width:860px; text-align:center; margin:0 auto; padding-bottom:100px; }.philosophy p:last-child { color:var(--muted); font-size:1.04rem; }
.footer { max-width:1280px; margin:48px auto 0; padding:48px 24px; display:grid; grid-template-columns:1.7fr repeat(3,1fr); gap:32px; border-top:1px solid var(--line); color:var(--muted); }.footer strong { color:var(--ink); }.footer p { margin:8px 0 0; font-size:.84rem; }
*:focus-visible { outline:3px solid rgba(49,92,246,.35); outline-offset:3px; }
@media(max-width:1000px){.quick-start{grid-template-columns:repeat(2,1fr)}.quick-start>div{grid-column:1/-1}.learning-grid{grid-template-columns:repeat(2,1fr)}.lab-grid,.editorial-grid{grid-template-columns:1fr}.model-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.physics-console{min-height:460px;padding:18px}.experiment-controls,.quick-start,.learning-grid,.lab-list,.model-grid{grid-template-columns:1fr}.playback{grid-column:1}.quick-start .btn{width:100%}.learning-card{min-height:190px}.section{padding:54px 0}.footer{grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.wave-demo i{animation:none}}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  min-height: 100vh;
  color: var(--ink);
  font-family: Inter, "Microsoft YaHei", "PingFang SC", system-ui, sans-serif;
  font-size: 15px;
  line-height: 1.58;
  overflow-x: hidden;
  background:
    radial-gradient(circle at 12% 18%, rgba(37, 99, 235, 0.14), transparent 28rem),
    radial-gradient(circle at 84% 12%, rgba(16, 185, 129, 0.12), transparent 24rem),
    radial-gradient(circle at 72% 74%, rgba(245, 158, 11, 0.09), transparent 20rem),
    linear-gradient(180deg, #fbfcff 0%, var(--bg) 44%, #f8fafc 100%);
}
body.modal-open { overflow: hidden; }

a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; opacity: 0.62; }
img, video, canvas, svg { max-width: 100%; }

.physics-field {
  position: fixed;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
  z-index: -1;
}
.physics-field::before {
  content: "";
  position: absolute;
  inset: 70px 8% auto;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(37, 99, 235, 0.18), transparent);
}
.physics-field::after {
  content: "v-t   F=ma   E_k=1/2mv^2";
  position: absolute;
  left: 8%;
  bottom: 12%;
  color: rgba(37, 99, 235, 0.08);
  font-family: Georgia, serif;
  font-size: clamp(2.2rem, 5vw, 5rem);
  letter-spacing: 0;
  animation: formulaDrift 18s ease-in-out infinite;
}
.physics-field span {
  position: absolute;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: rgba(37, 99, 235, 0.2);
  box-shadow: 0 0 30px rgba(37, 99, 235, 0.28);
  animation: float 10s ease-in-out infinite;
}
.physics-field span:nth-child(1) { left: 12%; top: 18%; }
.physics-field span:nth-child(2) { left: 78%; top: 16%; animation-delay: 1.2s; }
.physics-field span:nth-child(3) { left: 64%; top: 66%; animation-delay: 2.6s; }
.physics-field span:nth-child(4) { left: 24%; top: 78%; animation-delay: 3.4s; }
.physics-field span:nth-child(5) { left: 88%; top: 82%; animation-delay: 4.5s; }
@keyframes float {
  0%, 100% { transform: translate3d(0, 0, 0) scale(1); }
  50% { transform: translate3d(20px, -30px, 0) scale(1.7); }
}
@keyframes formulaDrift {
  0%, 100% { transform: translate3d(0, 0, 0); opacity: 0.55; }
  50% { transform: translate3d(42px, -24px, 0); opacity: 0.9; }
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 20;
  border-bottom: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.58);
  backdrop-filter: blur(24px) saturate(180%);
}
.nav {
  max-width: 1160px;
  min-height: 64px;
  margin: 0 auto;
  padding: 0 max(24px, env(safe-area-inset-left));
  display: flex;
  align-items: center;
  gap: 22px;
}
.brand {
  font-weight: 850;
  letter-spacing: 0;
  color: var(--ink);
}
.brand::before {
  content: "";
  display: inline-block;
  width: 9px;
  height: 9px;
  margin-right: 9px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--blue), var(--cyan));
  box-shadow: 0 0 24px rgba(37, 99, 235, 0.5);
}
.nav-links {
  display: flex;
  gap: 8px;
  flex: 1;
  color: var(--muted);
}
.nav-links a {
  padding: 7px 11px;
  border-radius: 999px;
  font-size: 0.94rem;
}
.nav-links a:hover, .nav a.active {
  color: var(--ink);
  background: rgba(15, 23, 42, 0.06);
}
.nav-actions { display: flex; gap: 10px; align-items: center; }
.menu-button {
  display: none;
  border: 0;
  background: transparent;
  font-size: 1.5rem;
}

.btn {
  border: 1px solid transparent;
  border-radius: var(--radius);
  padding: 9px 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 0.94rem;
  font-weight: 760;
  transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}
.btn:hover { transform: translateY(-1px); }
.btn:active, .icon-text:active, .text-action:active { transform: translateY(1px) scale(0.98); }
.btn.primary {
  color: #fff;
  background: linear-gradient(135deg, var(--blue), var(--violet));
  box-shadow: 0 14px 30px rgba(37, 99, 235, 0.24);
}
.btn.secondary {
  color: var(--ink);
  background: rgba(255, 255, 255, 0.7);
  border-color: var(--line);
}
.small { padding: 7px 11px; }
.user-chip {
  padding: 8px 12px;
  border-radius: 999px;
  color: var(--blue-dark);
  background: rgba(37, 99, 235, 0.1);
  font-weight: 800;
}

.page-shell {
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 24px;
}
.page-enter { animation: pageIn var(--motion-slow) var(--ease-out) both; }
@keyframes pageIn {
  from { opacity: 0; filter: blur(8px); transform: translateY(14px); clip-path: inset(0 0 8% 0 round 8px); }
  to { opacity: 1; filter: blur(0); transform: translateY(0); clip-path: inset(0 0 0 0 round 8px); }
}

::view-transition-old(root) { animation: viewOut 180ms var(--ease-out) both; }
::view-transition-new(root) { animation: viewIn 360ms var(--ease-out) both; }
@keyframes viewOut {
  to { opacity: 0; filter: blur(5px); transform: translateY(-6px) scale(0.995); }
}
@keyframes viewIn {
  from { opacity: 0; filter: blur(7px); transform: translateY(10px) scale(0.99); }
}

.surface {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--paper);
  box-shadow: 0 16px 50px rgba(15, 23, 42, 0.08);
  backdrop-filter: blur(22px) saturate(145%);
}

.concept-card, .resource-card {
  --tilt-x: 0deg;
  --tilt-y: 0deg;
  --glare-x: 50%;
  --glare-y: 50%;
  position: relative;
  overflow: hidden;
  transform: perspective(900px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));
  transform-style: preserve-3d;
  transition: transform var(--motion-base) var(--ease-spring), box-shadow var(--motion-base) var(--ease-out), border-color var(--motion-fast) ease;
  will-change: transform;
}
.concept-card:hover, .resource-card:hover {
  border-color: rgba(37, 99, 235, 0.22);
  box-shadow: 0 24px 58px rgba(15, 23, 42, 0.13);
}
.concept-card::after, .resource-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  border-radius: inherit;
  background: radial-gradient(circle at var(--glare-x) var(--glare-y), rgba(255,255,255,0.72), transparent 34%);
  opacity: 0;
  transition: opacity var(--motion-fast) ease;
  pointer-events: none;
}
.concept-card:hover::after, .resource-card:hover::after { opacity: 0.72; }
.concept-card > *, .resource-card > * { position: relative; z-index: 3; }

.hero {
  min-height: 560px;
  padding: 62px 0 42px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 470px);
  gap: 54px;
  align-items: center;
}
.eyebrow {
  margin: 0 0 10px;
  color: var(--blue-dark);
  font-size: 0.78rem;
  font-weight: 850;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
h1, h2, h3 { margin: 0; line-height: 1.12; letter-spacing: 0; }
h1 { font-size: clamp(2.15rem, 4.2vw, 4.2rem); }
h2 { font-size: clamp(1.55rem, 2.8vw, 2.45rem); }
h3 { font-size: 1.05rem; }
.lead {
  max-width: 680px;
  margin: 24px 0;
  color: var(--muted);
  font-size: 1rem;
}
.hero-actions { display: flex; gap: 12px; flex-wrap: wrap; }

.physics-console {
  min-height: 520px;
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: var(--radius);
  padding: 32px;
  color: white;
  box-shadow: var(--shadow);
  background:
    linear-gradient(135deg, rgba(2, 6, 23, 0.96), rgba(30, 41, 59, 0.9)),
    repeating-linear-gradient(0deg, transparent, transparent 31px, rgba(255,255,255,0.05) 32px),
    repeating-linear-gradient(90deg, transparent, transparent 31px, rgba(255,255,255,0.05) 32px);
}
.console-top { display: flex; gap: 7px; }
.console-top span {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: rgba(255,255,255,0.32);
}
.formula {
  margin-top: 44px;
  font-family: Georgia, serif;
  font-size: clamp(4.4rem, 10vw, 8rem);
}
.curve {
  position: absolute;
  left: 8%;
  right: 8%;
  bottom: 180px;
  height: 120px;
  border-bottom: 3px solid rgba(34, 211, 238, 0.84);
  border-radius: 50%;
  animation: pulseLine 2.8s ease-in-out infinite;
}
@keyframes pulseLine {
  0%, 100% { transform: scaleX(0.94); opacity: 0.7; }
  50% { transform: scaleX(1.04); opacity: 1; }
}
.orbit {
  position: absolute;
  right: 42px;
  top: 42px;
  width: 110px;
  height: 110px;
  border: 1px solid rgba(255,255,255,0.28);
  border-radius: 50%;
  animation: spin 8s linear infinite;
}
.orbit span {
  position: absolute;
  left: 50%;
  top: -6px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #22d3ee;
}
@keyframes spin { to { transform: rotate(360deg); } }
.console-note {
  position: absolute;
  left: 32px;
  right: 32px;
  bottom: 32px;
  padding: 18px;
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: var(--radius);
  background: rgba(255,255,255,0.1);
}
.console-note p { margin: 8px 0 0; color: rgba(255,255,255,0.74); }

.section { padding: 42px 0; }
.section-head { max-width: 760px; margin: 0 auto 28px; text-align: center; }
.section-head.left { margin-left: 0; text-align: left; }
.section-head p:not(.eyebrow), .page-hero p { color: var(--muted); }
.page-hero {
  max-width: 860px;
  padding: 58px 0 22px;
  position: relative;
}
.page-hero h1 {
  font-size: clamp(2.1rem, 3.9vw, 3.7rem);
  width: fit-content;
  color: transparent;
  background: linear-gradient(105deg, var(--ink) 0 38%, var(--blue) 48%, var(--cyan) 52%, var(--ink) 62% 100%);
  background-size: 240% 100%;
  background-position: 100% 0;
  background-clip: text;
  -webkit-background-clip: text;
  animation: titleSweep 6s var(--ease-out) infinite;
}
@keyframes titleSweep {
  0%, 25%, 100% { background-position: 100% 0; }
  90% { background-position: 0 0; }
}
.page-hero .btn { margin-top: 18px; }

.field-lines {
  position: absolute;
  left: min(64vw, 720px);
  top: 18px;
  width: 260px;
  height: 180px;
  pointer-events: none;
  opacity: 0.62;
}
.field-lines span {
  position: absolute;
  inset: 50% auto auto 50%;
  border: 1px solid rgba(37, 99, 235, 0.2);
  border-left-color: rgba(6, 182, 212, 0.58);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  animation: fieldOrbit 7s linear infinite;
}
.field-lines span:nth-child(1) { width: 80px; height: 80px; }
.field-lines span:nth-child(2) { width: 150px; height: 110px; animation-duration: 10s; animation-direction: reverse; }
.field-lines span:nth-child(3) { width: 230px; height: 150px; animation-duration: 14s; }
@keyframes fieldOrbit {
  to { transform: translate(-50%, -50%) rotate(360deg); }
}

.feature-grid, .concept-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.concept-grid { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.knowledge-board {
  display: grid;
  gap: 24px;
}
.knowledge-chapter {
  margin-bottom: 24px;
  min-width: 0;
  animation: chapterReveal var(--motion-slow) var(--ease-out) both;
  animation-timeline: view();
  animation-range: entry 8% cover 28%;
}
@keyframes chapterReveal {
  from { opacity: 0; filter: blur(7px); transform: translateY(24px) scale(0.985); }
}
.chapter-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
  color: var(--muted);
  font-size: 0.86rem;
}
.feature-grid article, .concept-card {
  min-height: 170px;
  padding: 18px;
}
.knowledge-chapter .concept-grid {
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  align-items: stretch;
}
.concept-card {
  min-width: 0;
}
.concept-card h3,
.concept-card p {
  writing-mode: horizontal-tb;
  word-break: normal;
  overflow-wrap: break-word;
}
.feature-grid span {
  color: var(--blue);
  font-weight: 900;
}
.feature-grid p, .concept-card p, .resource-card p { color: var(--muted); margin-bottom: 0; }
.tag {
  display: inline-flex;
  margin-bottom: 16px;
  padding: 4px 9px;
  border-radius: 999px;
  background: rgba(37, 99, 235, 0.1);
  color: var(--blue-dark);
  font-size: 0.78rem;
  font-weight: 800;
}
.reveal { animation: cardIn 0.55s ease both; animation-delay: var(--delay); }
@keyframes cardIn {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: translateY(0); }
}

.split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 370px;
  gap: 24px;
  align-items: start;
}
.resource-workbench { min-width: 0; }
.resources-layout .resource-workbench { width: 100%; }
.folder-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 14px;
  padding: 12px;
  border: 1px solid rgba(255,255,255,0.74);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.42);
  box-shadow: 0 18px 42px rgba(15, 23, 42, 0.06);
  backdrop-filter: blur(22px) saturate(170%);
  animation: toolbarReveal 560ms var(--ease-spring) both;
}
@keyframes toolbarReveal {
  from { opacity: 0; filter: blur(6px); transform: translateY(-12px) scale(0.985); }
}
.folder-tools {
  margin-left: auto;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.folder-chip {
  border: 1px solid rgba(37, 99, 235, 0.14);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.52);
  color: var(--muted);
  padding: 7px 10px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 0.9rem;
  font-weight: 760;
}
.folder-chip strong {
  min-width: 24px;
  height: 24px;
  padding: 0 7px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  color: var(--blue-dark);
  background: rgba(37, 99, 235, 0.1);
  font-size: 0.78rem;
}
.folder-chip.active {
  color: var(--ink);
  border-color: rgba(37, 99, 235, 0.34);
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 12px 28px rgba(37, 99, 235, 0.12);
}
.resource-list { display: grid; gap: 12px; }
.resource-card, .upload-panel, .profile-editor, .profile-preview, .auth-card { padding: 18px; }
.resource-card {
  position: relative;
  overflow: hidden;
}
.resource-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(120deg, transparent 0 35%, rgba(37, 99, 235, 0.08) 48%, transparent 62%),
    radial-gradient(circle at 92% 18%, rgba(6, 182, 212, 0.16), transparent 8rem);
  opacity: 0;
  transition: opacity 0.2s ease;
  pointer-events: none;
}
.resource-card:hover::before { opacity: 1; }
.resource-card > * { position: relative; }
.resource-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
  color: var(--muted);
  font-size: 0.86rem;
  font-weight: 720;
}
.folder-badge {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 4px 9px;
  border: 1px solid rgba(37, 99, 235, 0.12);
  border-radius: 999px;
  color: var(--blue-dark);
  background: rgba(37, 99, 235, 0.08);
}
.empty-state {
  min-height: 150px;
  display: grid;
  align-content: center;
}
.empty-icon {
  width: 42px;
  height: 42px;
  margin-bottom: 10px;
  border-radius: var(--radius);
  display: grid;
  place-items: center;
  color: var(--blue);
  background: rgba(37, 99, 235, 0.1);
  font-weight: 900;
}
.resource-meta {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  color: var(--muted);
  font-size: 0.84rem;
}
.download { color: var(--blue-dark); font-weight: 800; }
.resource-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}
.text-action, .icon-text {
  border: 1px solid rgba(37, 99, 235, 0.14);
  border-radius: var(--radius);
  background: rgba(255,255,255,0.58);
  color: var(--blue-dark);
  padding: 6px 9px;
  font-size: 0.84rem;
  font-weight: 760;
}
.text-action:hover, .icon-text:hover { background: rgba(37, 99, 235, 0.08); }
.text-action.danger, .icon-text.danger { color: #b91c1c; border-color: rgba(185, 28, 28, 0.16); }
.text-action:disabled, .icon-text:disabled { color: var(--muted); opacity: 0.48; }
.icon-text.primary-tool {
  color: #fff;
  border-color: transparent;
  background: linear-gradient(135deg, var(--blue), var(--violet));
  box-shadow: 0 10px 22px rgba(37, 99, 235, 0.16);
}
.panel-title {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  margin-bottom: 12px;
}
.upload-panel {
  position: sticky;
  top: 96px;
  background:
    linear-gradient(160deg, rgba(255,255,255,0.78), rgba(255,255,255,0.46)),
    radial-gradient(circle at 20% 10%, rgba(37, 99, 235, 0.16), transparent 9rem);
}
.modal-card.upload-panel {
  position: relative;
  top: auto;
  width: min(520px, calc(100vw - 32px));
}
.panel-title.compact { margin-bottom: 0; }
.upload-panel::after {
  content: "a(t)";
  position: absolute;
  right: 22px;
  bottom: 18px;
  color: rgba(37, 99, 235, 0.08);
  font-family: Georgia, serif;
  font-size: 3.4rem;
  pointer-events: none;
}
.panel-title p { margin: 4px 0 0; color: var(--muted); }
.panel-icon {
  width: 36px;
  height: 36px;
  border-radius: var(--radius);
  display: grid;
  place-items: center;
  color: #fff;
  background: linear-gradient(135deg, var(--blue), var(--violet));
}

label {
  display: grid;
  gap: 7px;
  margin: 14px 0;
  color: var(--muted);
  font-size: 0.86rem;
  font-weight: 650;
}
input, textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255,255,255,0.88);
  color: var(--ink);
  padding: 9px 11px;
  outline: none;
  transition: border 0.18s ease, box-shadow 0.18s ease;
}
input:focus, textarea:focus {
  border-color: rgba(37, 99, 235, 0.55);
  box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.1);
}
input:disabled { background: #f1f5f9; }

.file-drop {
  min-height: 98px;
  padding: 16px;
  border: 1px dashed rgba(37, 99, 235, 0.35);
  border-radius: var(--radius);
  background:
    linear-gradient(135deg, rgba(37, 99, 235, 0.05), rgba(6, 182, 212, 0.05)),
    rgba(255,255,255,0.46);
  cursor: pointer;
}
.file-drop input { padding: 0; border: 0; background: transparent; }
.file-drop-title { color: var(--ink); font-weight: 850; }
.file-name { color: var(--muted); font-size: 0.88rem; }

.profile-layout {
  display: grid;
  grid-template-columns: minmax(0, 460px) minmax(0, 1fr);
  gap: 22px;
}
.avatar {
  width: 72px;
  height: 72px;
  border-radius: var(--radius);
  background: linear-gradient(135deg, var(--blue), var(--violet));
  color: white;
  display: grid;
  place-items: center;
  font-size: 2rem;
  font-weight: 900;
}

.auth-page {
  min-height: 560px;
  padding: 58px 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 440px);
  gap: 34px;
  align-items: start;
}
.auth-copy { max-width: 650px; }
.auth-copy p:not(.eyebrow) { color: var(--muted); font-size: 1.08rem; }
.tabs {
  display: flex;
  gap: 8px;
  padding: 4px;
  margin-bottom: 18px;
  border-radius: var(--radius);
  background: rgba(15, 23, 42, 0.06);
}
.tab {
  flex: 1;
  border: 0;
  border-radius: calc(var(--radius) - 2px);
  background: transparent;
  padding: 10px;
  color: var(--muted);
  font-weight: 780;
}
.tab.active {
  background: #fff;
  color: var(--ink);
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
}
.hidden { display: none; }
.code-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 128px;
  gap: 10px;
  align-items: end;
}
.password-wrap {
  position: relative;
  display: flex;
  align-items: center;
}
.password-wrap input { padding-right: 48px; }
.eye-button {
  position: absolute;
  right: 6px;
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #334155;
  display: grid;
  place-items: center;
  cursor: pointer;
}
.eye-button:hover { background: rgba(15, 23, 42, 0.06); }
.eye-icon {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.eye-icon-closed { display: none; }
.eye-button.is-visible .eye-icon-open { display: none; }
.eye-button.is-visible .eye-icon-closed { display: block; }
.message { color: var(--muted); min-height: 24px; }

.footer {
  max-width: 1160px;
  margin: 0 auto;
  padding: 36px 24px 60px;
  color: var(--muted);
  display: flex;
  justify-content: space-between;
  gap: 16px;
}
.toast {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 40;
  max-width: min(420px, calc(100vw - 44px));
  background: #020617;
  color: white;
  padding: 12px 16px;
  border-radius: var(--radius);
  opacity: 0;
  transform: translateY(12px);
  transition: 0.2s ease;
  pointer-events: none;
}
.toast.show { opacity: 1; transform: translateY(0); }

.modal-layer {
  position: fixed;
  inset: 0;
  z-index: 60;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(15, 23, 42, 0.24);
  backdrop-filter: blur(12px);
  animation: modalBackdropIn var(--motion-base) ease both;
  overflow-y: auto;
  overscroll-behavior: contain;
}
.modal-card {
  width: min(720px, calc(100vw - 32px));
  max-height: min(760px, calc(100vh - 48px));
  overflow: auto;
  padding: 18px;
  background:
    linear-gradient(160deg, rgba(255,255,255,0.86), rgba(255,255,255,0.62)),
    radial-gradient(circle at 14% 8%, rgba(37, 99, 235, 0.14), transparent 12rem);
  transform-origin: 50% 42%;
  animation: modalCardIn 380ms var(--ease-spring) both;
  margin: auto;
}
@keyframes modalBackdropIn {
  from { opacity: 0; backdrop-filter: blur(0); }
}
@keyframes modalCardIn {
  from { opacity: 0; filter: blur(8px); transform: translateY(18px) scale(0.94); }
  to { opacity: 1; filter: blur(0); transform: translateY(0) scale(1); }
}
.preview-card { width: min(980px, calc(100vw - 32px)); }
.modal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}
.preview-frame {
  width: 100%;
  height: min(68vh, 620px);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: white;
}
.preview-text {
  max-height: min(68vh, 620px);
  overflow: auto;
  margin: 0;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255,255,255,0.76);
  color: var(--ink);
  white-space: pre-wrap;
  font: 0.9rem/1.55 Consolas, "Microsoft YaHei", monospace;
}
.preview-empty {
  min-height: 220px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 12px;
  color: var(--muted);
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: 1ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 1ms !important;
  }
  .concept-card, .resource-card { transform: none !important; }
}

@media (min-width: 1440px) {
  .nav, .page-shell, .footer { max-width: 1280px; }
  .hero {
    grid-template-columns: minmax(0, 1fr) minmax(420px, 520px);
    gap: 72px;
  }
  .split { grid-template-columns: minmax(0, 1fr) 410px; }
}

@media (max-width: 1180px) {
  .nav, .page-shell, .footer { max-width: 100%; }
  .hero {
    grid-template-columns: minmax(0, 1fr) minmax(300px, 430px);
    gap: 34px;
  }
  .concept-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 920px) {
  .nav { flex-wrap: wrap; padding: 14px 18px; }
  .menu-button { display: block; margin-left: auto; }
  .nav-links {
    display: none;
    order: 4;
    width: 100%;
    flex-direction: column;
    gap: 4px;
    padding: 10px 0;
  }
  .nav-links.open { display: flex; }
  .nav-actions { margin-left: auto; }
  .hero, .split, .profile-layout, .auth-page { grid-template-columns: 1fr; }
  .hero { padding-top: 42px; min-height: auto; }
  .physics-console { min-height: 390px; }
  .concept-grid, .feature-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer { flex-direction: column; }
}

@media (max-width: 768px) {
  body { line-height: 1.58; }
  .site-header {
    padding-top: env(safe-area-inset-top);
  }
  .hero, .auth-page {
    min-height: auto;
    padding: 44px 0 34px;
  }
  .page-hero { padding: 52px 0 22px; }
  .section { padding: 38px 0; }
  .surface { box-shadow: 0 14px 40px rgba(15, 23, 42, 0.08); }
  .split { gap: 18px; }
  .upload-panel { order: -1; }
  .btn, input, textarea { min-height: 44px; }
  .physics-console { padding: 24px; }
}

@media (max-width: 560px) {
  .page-shell { padding: 0 max(16px, env(safe-area-inset-left)); }
  .nav { gap: 12px; }
  .brand { max-width: calc(100vw - 96px); }
  .concept-grid, .feature-grid { grid-template-columns: 1fr; }
  .nav-actions { width: 100%; }
  .nav-actions a, .nav-actions button { flex: 1; }
  .code-row { grid-template-columns: 1fr; }
  h1 { font-size: clamp(2.35rem, 14vw, 3.6rem); }
  .page-hero h1 { font-size: clamp(2.15rem, 12vw, 3.2rem); }
  .lead { font-size: 1rem; }
  .hero-actions, .resource-meta { flex-direction: column; align-items: stretch; }
  .btn { width: 100%; }
  .resource-card, .upload-panel, .profile-editor, .profile-preview, .auth-card {
    padding: 18px;
  }
  .toast {
    left: 16px;
    right: 16px;
    bottom: max(16px, env(safe-area-inset-bottom));
    max-width: none;
  }
}

@media (max-width: 390px) {
  .page-shell { padding: 0 14px; }
  .nav { padding-left: 14px; padding-right: 14px; }
  .tabs { gap: 4px; }
  .tab { padding: 9px 6px; }
}

/* Keep the redesign overrides last in the cascade. */
body{font-size:16px;line-height:1.7}.physics-field::after,.physics-field span{display:none}.nav,.page-shell{max-width:1280px}.nav{min-height:68px}.brand{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto}.brand::before{grid-row:1/3;align-self:center}.brand strong{font-size:.95rem;line-height:1.25;white-space:nowrap}.brand small{color:var(--muted);font-size:.57rem;letter-spacing:.15em;line-height:1.25}.hero{min-height:650px;padding:72px 0 56px;gap:64px}.hero h1{font-size:clamp(2.5rem,4.6vw,4rem)}.lead{font-size:1.08rem;line-height:1.8}.physics-console{min-height:530px;padding:24px}.section{padding:72px 0;scroll-margin-top:80px}.surface{border-radius:16px;box-shadow:var(--shadow-card);backdrop-filter:blur(14px) saturate(125%)}.footer{max-width:1280px;margin:48px auto 0;padding:48px 24px;display:grid;grid-template-columns:1.7fr repeat(3,1fr);gap:32px;border-top:1px solid var(--line);color:var(--muted);text-align:left}.footer strong{color:var(--ink)}.footer p{margin:8px 0 0;font-size:.84rem}
@media(max-width:1000px){.quick-start{grid-template-columns:repeat(2,1fr)}.quick-start>div{grid-column:1/-1}.learning-grid{grid-template-columns:repeat(2,1fr)}.lab-grid,.editorial-grid{grid-template-columns:1fr}.model-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.brand small{display:block}.hero{padding-top:48px}.quick-start,.learning-grid,.lab-list,.model-grid,.experiment-controls{grid-template-columns:1fr}.playback{grid-column:1}.physics-console{min-height:460px;padding:18px}.section{padding:54px 0}.footer{grid-template-columns:1fr 1fr}.btn{width:auto}.quick-start .btn{width:100%}}

.nav-actions>div{display:flex;gap:8px;align-items:center}.search-trigger{height:38px;min-width:72px;padding:0 9px;border:1px solid var(--line);border-radius:10px;display:flex;align-items:center;justify-content:space-between;gap:9px;color:var(--muted);background:rgba(255,255,255,.75)}.search-trigger span{font-size:1.25rem}.search-trigger kbd{padding:2px 5px;border:1px solid var(--line);border-radius:5px;background:#fff;font:600 .65rem ui-monospace,monospace}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.search-layer{align-items:flex-start;padding-top:min(12vh,110px);background:rgba(16,24,40,.45);backdrop-filter:blur(8px)}.search-dialog{width:min(720px,calc(100vw - 32px));max-height:min(720px,80vh);overflow:hidden;border:1px solid rgba(255,255,255,.7);border-radius:18px;background:#fff;box-shadow:0 30px 90px rgba(16,24,40,.25)}.search-dialog>header{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:16px 18px;border-bottom:1px solid var(--line)}.search-dialog>header>span{font-size:1.5rem;color:var(--blue)}.search-dialog input{border:0;padding:6px 0;font-size:1.05rem;box-shadow:none}.search-dialog>header button{border:1px solid var(--line);border-radius:7px;padding:4px 8px;color:var(--muted);background:#f8fafc}.search-results{max-height:58vh;overflow:auto;padding:14px 18px}.search-empty{min-height:260px;display:grid;place-content:center;text-align:center;color:var(--muted)}.search-empty span{font-size:2.4rem;color:var(--blue)}.search-group h3{display:flex;align-items:center;gap:8px;margin:14px 0 6px;font-size:.8rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.search-group h3 span{min-width:22px;height:22px;border-radius:999px;display:grid;place-items:center;background:#eef2ff;color:var(--blue);font-size:.7rem}.search-group>a{display:grid;grid-template-columns:1fr auto;gap:2px 16px;padding:11px 12px;border-radius:10px}.search-group>a:hover{background:#f6f8fc}.search-group>a strong{color:var(--ink)}.search-group>a p{grid-column:1;margin:0;color:var(--muted);font-size:.83rem}.search-group>a>span{grid-column:2;grid-row:1/3;align-self:center;color:var(--blue)}.search-dialog>footer{padding:11px 18px;border-top:1px solid var(--line);color:var(--muted);font-size:.76rem}
.map-page-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.map-module{padding:30px}.map-module header{display:flex;gap:18px;align-items:center}.map-module header .eyebrow{margin:0}.map-module>p{min-height:54px;color:var(--muted)}.module-stats{display:flex;gap:24px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--muted);font-size:.84rem}.module-stats strong{color:var(--ink);font-size:1.2rem}.map-module ol{list-style:none;margin:18px 0 24px;padding:0}.map-module li{display:flex;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px dashed var(--line)}.map-module li small{color:var(--muted)}
.model-library{display:grid;gap:14px}.model-library-card{display:grid;grid-template-columns:90px 1fr;padding:28px;overflow:hidden}.model-index{font:700 2.7rem ui-monospace,monospace;color:#d0d5dd}.model-meta{display:flex;gap:8px;margin-bottom:8px}.model-meta span{padding:3px 8px;border-radius:999px;background:#eef2ff;color:var(--blue-dark);font-size:.73rem;font-weight:700}.model-copy>p{color:var(--muted)}.model-copy dl{display:grid;grid-template-columns:1fr 1.3fr 1.3fr;gap:16px;max-height:0;opacity:0;overflow:hidden;margin:0;transition:max-height .25s ease,opacity .2s ease,margin .25s ease}.model-library-card.expanded dl{max-height:180px;opacity:1;margin:22px 0}.model-copy dl>div{padding:16px;border-radius:12px;background:#f8fafc}.model-copy dt{margin-bottom:7px;color:var(--muted);font-size:.76rem}.model-copy dd{margin:0}.model-copy code{color:var(--blue-dark);font-size:1rem}.model-expand{border:0;padding:0;background:transparent}
.experiment-workbench{padding:0;overflow:hidden}.experiment-workbench>header{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;padding:26px 28px;border-bottom:1px solid var(--line)}.experiment-workbench>header p:last-child{margin:6px 0 0;color:var(--muted)}.workbench-grid{display:grid;grid-template-columns:minmax(0,1fr) 280px;min-height:520px}.experiment-canvas{padding:28px;background:#101828}.experiment-canvas svg{width:100%;height:auto;display:block}.lab-axis{fill:none;stroke:#667085;stroke-width:2}.lab-trajectory{fill:none;stroke:#67e8f9;stroke-width:3;stroke-dasharray:7 7}.experiment-canvas circle{fill:#fff;stroke:#315cf6;stroke-width:5}.lab-vector{fill:none;stroke-width:3;stroke-linecap:round}.vector-x{stroke:#67e8f9}.vector-y{stroke:#f2a544}.lab-readout text{fill:#cbd5e1;font:15px ui-monospace,monospace}.timeline{display:flex;gap:9px;align-items:center;margin-top:16px}.timeline button{min-height:38px;border:1px solid rgba(255,255,255,.18);border-radius:8px;padding:0 12px;color:#fff;background:rgba(255,255,255,.08)}.timeline input{padding:0;accent-color:#67e8f9;background:transparent;box-shadow:none}.parameter-panel{padding:26px;border-left:1px solid var(--line);background:#fff}.parameter-panel h3{margin-bottom:20px}.parameter-panel input[type=range]{padding:0;accent-color:var(--blue);box-shadow:none}.check-row{display:flex;grid-template-columns:auto 1fr;align-items:center}.check-row input{width:18px;height:18px;margin:0}.experiment-notes{display:grid;grid-template-columns:1.2fr 1fr .8fr;gap:0;border-top:1px solid var(--line)}.experiment-notes article{padding:26px 28px;border-right:1px solid var(--line)}.experiment-notes p,.experiment-notes li{color:var(--muted)}.experiment-notes code{display:block;margin:7px 0;padding:7px 10px;border-radius:7px;background:#eef2ff;color:var(--blue-dark)}.workbench-fullscreen{position:fixed;inset:12px;z-index:80;overflow:auto;background:#fff;box-shadow:0 0 0 20px rgba(16,24,40,.6)}.experiment-catalog{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.experiment-catalog article{min-height:230px;padding:22px;display:flex;flex-direction:column;justify-content:space-between}.experiment-catalog small,.experiment-catalog p{color:var(--muted)}.experiment-catalog button{align-self:flex-start;border:0;padding:0;background:none}
.problem-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:22px;align-items:start}.problem-filters{position:sticky;top:90px;padding:22px}.problem-list{display:grid;gap:14px}.problem-card{display:grid;grid-template-columns:58px 1fr;padding:24px}.problem-number{font:700 1.5rem ui-monospace,monospace;color:#98a2b3}.problem-card h2{font-size:1.25rem}.problem-card p{color:var(--muted)}.problem-actions{display:flex;align-items:center;gap:16px}.problem-actions .text-link{border:0;background:none}.hint-panel{margin-top:16px;padding:16px;border-left:3px solid var(--blue);border-radius:0 10px 10px 0;background:#f6f8fc}.hint-panel p{margin-bottom:0}
@media(max-width:1000px){.map-page-grid{grid-template-columns:1fr}.experiment-catalog{grid-template-columns:repeat(2,1fr)}.workbench-grid{grid-template-columns:1fr}.parameter-panel{border-left:0;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:0 22px}.experiment-notes{grid-template-columns:1fr}.experiment-notes article{border-right:0;border-bottom:1px solid var(--line)}}
@media(max-width:760px){.search-trigger kbd{display:none}.search-trigger{min-width:40px}.model-library-card{grid-template-columns:1fr}.model-index{font-size:1.4rem}.model-copy dl{grid-template-columns:1fr}.model-library-card.expanded dl{max-height:520px}.parameter-panel,.experiment-catalog{grid-template-columns:1fr}.experiment-workbench>header{flex-direction:column}.experiment-canvas{padding:12px}.problem-layout{grid-template-columns:1fr}.problem-filters{position:static}.problem-card{grid-template-columns:1fr}.problem-number{font-size:1rem}.map-module{padding:22px}.module-stats{flex-wrap:wrap}.map-module li{display:grid}.footer{grid-template-columns:1fr}}

.knowledge-reader{display:grid;grid-template-columns:220px minmax(0,760px) 220px;gap:28px;align-items:start}.chapter-sidebar,.article-toc,.related-card{position:sticky;top:92px;padding:20px}.chapter-sidebar h3{margin-bottom:16px}.chapter-sidebar nav{display:grid}.chapter-sidebar nav a{display:grid;grid-template-columns:24px 1fr;gap:7px;padding:9px 7px;border-left:2px solid transparent;color:var(--muted);font-size:.84rem}.chapter-sidebar nav a span{color:#98a2b3;font:700 .7rem ui-monospace,monospace}.chapter-sidebar nav a.active{border-left-color:var(--blue);color:var(--ink);background:#f6f8fc}.knowledge-article{min-width:0}.article-kicker,.model-meta{display:flex;flex-wrap:wrap;gap:8px}.article-kicker span{padding:4px 9px;border-radius:999px;background:#eef2ff;color:var(--blue-dark);font-size:.75rem;font-weight:700}.knowledge-article>h1{margin-top:18px;font-size:clamp(2.4rem,5vw,4rem)}.article-lead{margin:20px 0 38px;color:var(--muted);font-size:1.15rem;line-height:1.8}.knowledge-article>section{padding:38px 0;border-top:1px solid var(--line);scroll-margin-top:90px}.knowledge-article>section h2{margin-bottom:18px;font-size:1.7rem}.knowledge-article>section p{font-size:1.02rem;line-height:1.85}.section-number{margin:0 0 8px!important;color:var(--blue);font-size:.75rem!important;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.learning-objectives{padding:26px!important;border:1px solid #dbe4ff!important;border-radius:16px;background:#f7f9ff}.learning-objectives ul{margin-bottom:0}.phenomenon-diagram{display:grid;gap:20px;margin:26px 0;padding:28px;border-radius:16px;background:#101828}.cart-row{display:grid;grid-template-columns:70px 1fr 80px;align-items:center;gap:20px;color:#fff}.force-arrow{position:relative;color:#67e8f9;font:700 1rem ui-monospace,monospace}.force-arrow::after{content:"";display:inline-block;width:34px;margin-left:7px;border-top:2px solid #67e8f9}.cart{display:block;width:90px;height:38px;border-radius:7px 7px 3px 3px;background:#315cf6;box-shadow:14px 25px 0 -11px #cbd5e1,-14px 25px 0 -11px #cbd5e1}.cart.heavy{width:150px;background:#475467}.cart-row strong{font-size:.8rem;color:#cbd5e1}.model-flow{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:24px 0;padding:18px;border:1px solid var(--line);border-radius:14px}.model-flow span{padding:7px 10px;border-radius:8px;background:#eef2ff;color:var(--blue-dark);font-weight:700;font-size:.84rem}.model-flow b{color:#98a2b3}.equation-card{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:0 18px;margin:26px 0;padding:28px;border-radius:16px;color:#fff;background:linear-gradient(135deg,#101828,#1c2c5b)}.equation-card>span{grid-row:1/3;color:#67e8f9;font-size:2.6rem}.equation-card strong{font:600 2.3rem Georgia,serif}.equation-card small{color:#cbd5e1}.condition-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.condition-grid article{padding:18px;border:1px solid var(--line);border-radius:12px}.condition-grid article p{margin-bottom:0;color:var(--muted);font-size:.85rem}.solution-steps{padding:22px 22px 22px 44px;border-radius:14px;background:#f6f8fc}.solution-steps li{padding:7px}.solution-steps code{padding:3px 7px;border-radius:5px;color:var(--blue-dark);background:#e8edff}.mistake-box{padding:22px;border-left:4px solid #f2a544;border-radius:0 14px 14px 0;background:#fff9ed}.mistake-box p{margin-top:3px}.article-aside{display:grid;gap:14px}.article-toc{display:grid;gap:7px}.article-toc strong{margin-bottom:7px}.article-toc a,.related-card a{padding:5px 0;color:var(--muted);font-size:.84rem}.article-toc a:hover,.related-card a:hover{color:var(--blue)}.related-card{position:static;display:grid}.related-card .tag{width:max-content}.concept-card{cursor:default}
@media(max-width:1100px){.knowledge-reader{grid-template-columns:200px minmax(0,1fr)}.article-aside{display:none}}
@media(max-width:760px){.knowledge-reader{grid-template-columns:1fr}.chapter-sidebar{position:static}.chapter-sidebar nav{display:flex;overflow:auto;padding-bottom:6px}.chapter-sidebar nav a{min-width:max-content;border-left:0;border-bottom:2px solid transparent}.chapter-sidebar nav a.active{border-bottom-color:var(--blue)}.condition-grid{grid-template-columns:1fr}.model-flow{align-items:stretch;flex-direction:column}.model-flow b{transform:rotate(90deg);align-self:center}.knowledge-article>section{padding:30px 0}.phenomenon-diagram{padding:18px}.cart-row{grid-template-columns:52px 1fr 65px}.cart.heavy{width:120px}.equation-card strong{font-size:1.8rem}}

.article-kicker button{padding:4px 9px;border:1px solid #dbe4ff;border-radius:999px;color:var(--blue-dark);background:#fff;font-size:.75rem;font-weight:700}.workbench-actions{display:flex;flex-wrap:wrap;gap:8px}
.learning-center-hero{padding-bottom:34px}.learning-summary{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:14px}.learning-summary article{padding:22px}.summary-primary{display:grid;grid-template-columns:1fr auto;align-items:center}.summary-primary>span{color:var(--muted);font-weight:700}.summary-primary>strong{font-size:2.3rem}.summary-primary .progress-track,.summary-primary p{grid-column:1/-1}.summary-primary p{margin-bottom:0;color:var(--muted);font-size:.84rem}.progress-track{height:7px;overflow:hidden;border-radius:999px;background:#e9edf5}.progress-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blue),var(--cyan))}.summary-stat{display:grid;grid-template-columns:auto 1fr;gap:0 12px;align-content:center}.summary-stat>span{grid-row:1/3;width:40px;height:40px;border-radius:11px;display:grid;place-items:center;color:var(--blue);background:#eef2ff;font-size:1.3rem}.summary-stat strong{font-size:1.55rem;line-height:1.2}.summary-stat p{margin:0;color:var(--muted);font-size:.8rem}.learning-dashboard{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;align-items:start}.dashboard-main{display:grid;gap:46px}.dashboard-block{display:grid;gap:12px}.dashboard-head{display:flex;justify-content:space-between;align-items:end;gap:18px}.dashboard-head .eyebrow{margin:0}.dashboard-head a{color:var(--blue);font-size:.85rem;font-weight:700}.continue-card{display:grid;grid-template-columns:1fr minmax(180px,.5fr);gap:24px;align-items:center;padding:20px}.continue-card span{color:var(--blue);font-size:.76rem;font-weight:700}.continue-card h3{margin:5px 0}.continue-card p{margin:0;color:var(--muted);font-size:.84rem}.continue-card>div:last-child{display:grid;grid-template-columns:1fr auto;gap:9px;align-items:center}.continue-card>div:last-child strong{color:var(--blue)}.continue-card .progress-track{grid-column:1/-1}.dashboard-empty{padding:30px}.dashboard-empty>span{color:var(--blue);font-size:2rem}.dashboard-empty p,.muted-copy{color:var(--muted)}.activity-list{display:grid}.activity-list article{display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center;padding:14px 2px;border-bottom:1px solid var(--line)}.activity-icon{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;color:var(--blue);background:#eef2ff}.activity-list p{margin:3px 0 0;color:var(--muted);font-size:.78rem}.remove-learning{border:0;color:#98a2b3;background:none;font-size:1.2rem}.dashboard-side{display:grid;gap:14px;position:sticky;top:90px}.saved-overview,.profile-settings{padding:22px}.saved-overview{display:grid}.saved-overview>a{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line);color:var(--muted)}.saved-overview>a strong{color:var(--ink)}.profile-settings summary{cursor:pointer;color:var(--ink);font-weight:750}.profile-settings form{padding-top:10px}.profile-settings label{margin:10px 0}
@media(max-width:900px){.learning-summary{grid-template-columns:repeat(3,1fr)}.summary-primary{grid-column:1/-1}.learning-dashboard{grid-template-columns:1fr}.dashboard-side{position:static;grid-template-columns:1fr 1fr}}
@media(max-width:620px){.learning-summary{grid-template-columns:1fr 1fr}.summary-primary{grid-column:1/-1}.continue-card{grid-template-columns:1fr}.dashboard-side{grid-template-columns:1fr}.activity-list article{grid-template-columns:38px 1fr auto}}
.note-form{display:grid;gap:12px}.note-form textarea{font-size:1rem;line-height:1.7}.note-form button{justify-self:start}.saved-section{scroll-margin-top:90px}.saved-section>.dashboard-head>span{color:var(--muted);font-size:.8rem}.saved-item{display:grid;grid-template-columns:1fr auto auto;gap:14px;align-items:center;padding:16px 18px}.saved-item p{max-width:560px;margin:4px 0 0;color:var(--muted);font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.saved-item a{color:var(--blue);font-size:.82rem;font-weight:700}.saved-item button{border:0;color:#98a2b3;background:none;font-size:1.1rem}.saved-empty{padding:22px;color:var(--muted)}
.theme-toggle{width:38px;height:38px;border:1px solid var(--line);border-radius:10px;color:var(--muted);background:rgba(255,255,255,.75);font-size:1.05rem}
[data-theme="dark"]{--bg:#0e1420;--bg-2:#172033;--paper:rgba(24,34,51,.88);--paper-solid:#182233;--ink:#f2f4f7;--muted:#aeb8c7;--line:rgba(255,255,255,.12);--blue:#7392ff;--blue-dark:#b8c7ff;--cyan:#4dd4df;--shadow-card:0 10px 32px rgba(0,0,0,.22);color-scheme:dark}
[data-theme="dark"] body{background:radial-gradient(circle at 12% 18%,rgba(49,92,246,.15),transparent 28rem),radial-gradient(circle at 84% 12%,rgba(24,182,201,.10),transparent 24rem),#0e1420}
[data-theme="dark"] .site-header{background:rgba(14,20,32,.82)}[data-theme="dark"] .surface,[data-theme="dark"] .quick-start,[data-theme="dark"] .parameter-panel,[data-theme="dark"] .search-dialog,[data-theme="dark"] .workbench-fullscreen{background-color:#182233}[data-theme="dark"] input,[data-theme="dark"] textarea,[data-theme="dark"] select,[data-theme="dark"] .theme-toggle,[data-theme="dark"] .search-trigger,[data-theme="dark"] .search-trigger kbd,[data-theme="dark"] .article-kicker button{color:var(--ink);background:#121b2a}[data-theme="dark"] .search-dialog>header button,[data-theme="dark"] .model-copy dl>div,[data-theme="dark"] .solution-steps,[data-theme="dark"] .hint-panel,[data-theme="dark"] .learning-objectives,[data-theme="dark"] .chapter-sidebar nav a.active{background:#121b2a}[data-theme="dark"] .search-group>a:hover,[data-theme="dark"] .mistake-box{background:#20283a}[data-theme="dark"] .equation-card,[data-theme="dark"] .featured-lab,[data-theme="dark"] .experiment-canvas{background:#090f1a}[data-theme="dark"] .model-card code,[data-theme="dark"] .experiment-notes code,[data-theme="dark"] .model-flow span{background:#243253}[data-theme="dark"] .preview-frame{background:#fff}
.assistant-trigger{position:fixed;right:24px;bottom:24px;z-index:36;min-height:46px;padding:9px 15px;border:0;border-radius:999px;display:flex;align-items:center;gap:8px;color:#fff;background:linear-gradient(135deg,var(--blue),#6658d3);box-shadow:0 16px 38px rgba(49,92,246,.28);font-weight:750}.assistant-trigger span{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.18)}.physics-assistant{position:fixed;right:24px;bottom:82px;z-index:35;width:min(390px,calc(100vw - 32px));max-height:min(620px,calc(100vh - 120px));overflow:auto;padding:0;background:var(--paper-solid)}.physics-assistant>header{position:sticky;top:0;display:flex;justify-content:space-between;align-items:center;padding:17px 18px;border-bottom:1px solid var(--line);background:var(--paper-solid)}.physics-assistant>header div{display:grid}.physics-assistant>header small{color:var(--muted)}.physics-assistant>header button{width:32px;height:32px;border:0;border-radius:8px;color:var(--muted);background:#f2f4f7;font-size:1.2rem}.assistant-answer{min-height:150px;padding:18px}.assistant-answer p,.assistant-answer li{color:var(--muted)}.assistant-answer code{padding:2px 6px;border-radius:5px;color:var(--blue-dark);background:#eef2ff}.assistant-prompts{display:grid;gap:7px;padding:0 18px 18px}.assistant-prompts button{padding:10px 12px;border:1px solid var(--line);border-radius:9px;text-align:left;color:var(--ink);background:transparent}.assistant-prompts button:hover{border-color:var(--blue);background:#f6f8fc}.assistant-note{margin:0;padding:13px 18px;border-top:1px solid var(--line);color:var(--muted);font-size:.72rem}[data-theme="dark"] .physics-assistant>header,[data-theme="dark"] .physics-assistant{background:#182233}[data-theme="dark"] .physics-assistant>header button,[data-theme="dark"] .assistant-prompts button:hover{background:#121b2a}
@media(max-width:620px){.assistant-trigger{right:16px;bottom:max(16px,env(safe-area-inset-bottom))}.physics-assistant{right:16px;bottom:76px;max-height:70vh}}
.skip-link{position:fixed;left:16px;top:10px;z-index:100;transform:translateY(-160%);padding:8px 12px;border-radius:8px;color:#fff;background:var(--blue);font-weight:700}.skip-link:focus{transform:translateY(0)}
.equation-card math{font:600 2.3rem Georgia,serif;color:#fff}
@media(max-width:560px){.nav{flex-wrap:wrap;gap:8px;padding:10px 14px}.brand{max-width:150px}.brand strong{font-size:.86rem}.brand small{font-size:.51rem}.nav-actions{order:2;width:auto;margin-left:auto;gap:6px}.nav-actions>div{gap:4px}.nav-actions a,.nav-actions button{flex:0 0 auto}.nav-actions .btn{width:auto;min-height:38px;padding:7px 10px}.menu-button{order:3;margin-left:0;width:38px;height:38px;padding:0}.nav-links{order:4}.search-trigger{width:38px;min-width:38px;padding:0;justify-content:center}.hero{padding-top:36px}.hero h1{font-size:clamp(2.35rem,11vw,2.75rem);line-height:1.12}.lead{line-height:1.72}.quick-start{padding:20px}.physics-console{min-height:430px}.footer{gap:24px}}
@media(max-width:420px){.theme-toggle{display:none}.brand{max-width:142px}.nav-actions .btn{padding-inline:9px}}
@media print{
  :root,:root[data-theme="dark"]{--bg:#f6f8fc!important;--bg-2:#eef2ff!important;--paper:rgba(255,255,255,.96)!important;--paper-solid:#fff!important;--ink:#101828!important;--muted:#526175!important;--line:#e4e7ec!important;--blue:#315cf6!important;--blue-dark:#1c2c5b!important;--cyan:#18b6c9!important;color-scheme:light!important}
  body{color:#101828!important;background:#f6f8fc!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  .site-header{position:relative!important;background:#fff!important}.surface,.quick-start,.parameter-panel{color:#101828;background-color:#fff!important}.assistant-trigger,.physics-assistant,.toast{display:none!important}
}
.ssr-page{max-width:1000px;margin:0 auto;padding:72px 0 96px}.ssr-breadcrumb{display:flex;gap:9px;align-items:center;margin-bottom:34px;color:var(--muted);font-size:.84rem}.ssr-breadcrumb a{color:var(--blue)}.ssr-page>h1{max-width:860px;margin-bottom:20px}.ssr-intro{max-width:760px;margin:0 0 46px;color:var(--muted);font-size:1.08rem}.ssr-page>section{padding:24px 0;border-top:1px solid var(--line)}.ssr-page>section h2{font-size:1.35rem}.ssr-categories,.ssr-links{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 0;padding:0;list-style:none}.ssr-categories li{padding:7px 12px;border-radius:999px;color:var(--blue-dark);background:#eef2ff;font-weight:700}.ssr-links a{display:block;padding:12px 15px;border:1px solid var(--line);border-radius:11px;background:var(--paper-solid);font-weight:700}.ssr-notice{padding:14px;border-left:3px solid var(--blue);background:#f6f8fc;color:var(--muted)}[data-theme="dark"] .ssr-categories li{background:#243253}[data-theme="dark"] .ssr-notice{background:#121b2a}@media(max-width:620px){.ssr-page{padding:46px 0 72px}.ssr-page>h1{font-size:2.45rem}.ssr-links{display:grid}.ssr-links a{width:100%}}
.search-label{display:none}.search-group>a.active{outline:2px solid var(--blue);outline-offset:-2px;background:#f6f8fc}.search-history{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:18px}.search-history strong{width:100%;color:var(--muted);font-size:.75rem}.search-history button{padding:7px 11px;border:1px solid var(--line);border-radius:999px;color:var(--ink);background:var(--paper-solid)}[data-theme="dark"] .search-group>a.active{background:#20283a}
.newton-unit{display:grid;gap:36px}.unit-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;align-items:end;padding-bottom:28px;border-bottom:1px solid var(--line)}.unit-heading p:last-child{max-width:690px;color:var(--muted)}.unit-progress{display:grid;grid-template-columns:repeat(4,auto);gap:2px 14px;align-items:end}.unit-progress strong{font-size:1.8rem;color:var(--blue)}.unit-progress span{grid-row:2;color:var(--muted);font-size:.72rem}.unit-block{display:grid;gap:14px}.unit-knowledge{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.unit-knowledge>a{display:grid;grid-template-columns:auto 1fr;gap:14px;padding:19px}.unit-knowledge>a>span{color:var(--blue);font:700 .75rem ui-monospace,monospace}.unit-knowledge h3{margin:0 0 5px;font-size:1rem}.unit-knowledge p{margin:0;color:var(--muted);font-size:.8rem}.unit-columns,.unit-resources{display:grid;grid-template-columns:1fr 1fr;gap:18px}.unit-row{display:grid;gap:4px;padding:14px 2px;border-bottom:1px solid var(--line);font-weight:750}.unit-row small{color:var(--muted);font-weight:400}.unit-list{padding:20px}.unit-list summary{cursor:pointer;font-weight:800}.unit-list ol{margin:16px 0 0;padding-left:25px}.unit-list li{padding:7px 0;border-bottom:1px solid var(--line)}.unit-list li a{color:var(--ink)}.unit-list li span{float:right;color:var(--muted);font-size:.72rem}.unit-resources article{padding:24px}.unit-resources p{color:var(--muted)}
@media(max-width:760px){.search-label{display:inline}.search-trigger{width:auto;min-width:auto;padding:0 10px;gap:5px}.unit-heading{grid-template-columns:1fr}.unit-progress{justify-content:start}.unit-knowledge{grid-template-columns:1fr}.unit-columns,.unit-resources{grid-template-columns:1fr}}
.unit-readings{display:grid;gap:10px;margin-top:10px}.unit-readings details{scroll-margin-top:92px}.unit-readings summary{display:flex;gap:14px;align-items:center;padding:18px 20px;cursor:pointer}.unit-readings summary span{color:var(--blue);font:700 .75rem ui-monospace,monospace}.unit-readings details>div{padding:0 20px 22px}.unit-readings dl{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.unit-readings dl>div{padding:14px;border-radius:10px;background:#f6f8fc}.unit-readings dt{margin-bottom:6px;color:var(--muted);font-size:.72rem}.unit-readings dd{margin:0;font-size:.84rem}.self-check{padding:12px 14px;border-left:3px solid var(--blue);background:#eef2ff}[data-theme="dark"] .unit-readings dl>div,[data-theme="dark"] .self-check{background:#121b2a}
.problem-content{display:grid;gap:64px}.problem-set{scroll-margin-top:92px}.problem-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.solved-problem,.practice-problem{padding:21px;scroll-margin-top:92px}.solved-problem header,.practice-problem header{display:flex;gap:13px;align-items:flex-start}.solved-problem header>span,.practice-problem header>span{color:var(--blue);font:800 .76rem ui-monospace,monospace}.solved-problem small,.practice-problem small{color:var(--muted)}.solved-problem h3,.practice-problem h3{margin:3px 0 12px}.solved-problem>p,.practice-problem>p{min-height:52px;color:var(--muted)}.solved-problem details,.practice-problem details{padding:9px 0;border-top:1px solid var(--line)}.solved-problem summary,.practice-problem summary{cursor:pointer;font-size:.83rem;font-weight:750}.solved-problem details p,.practice-problem details p{margin:8px 0 0;color:var(--muted);font-size:.83rem}.full-solution{color:var(--blue-dark)}.problem-filters>a{display:block;padding:9px 0;border-bottom:1px solid var(--line);color:var(--blue);font-weight:700}
.newton-lab-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.mini-lab{padding:22px}.mini-lab header span{color:var(--blue);font:800 .72rem ui-monospace,monospace}.mini-lab h3{margin:5px 0 0}.mini-lab>p{color:var(--muted)}.mini-lab label{margin:14px 0;color:var(--muted);font-size:.82rem}.mini-lab output{float:right;color:var(--ink);font-weight:750}.mini-lab input[type=range]{padding:0;accent-color:var(--blue);box-shadow:none}.mini-lab-visual{position:relative;height:92px;margin:15px 0;border-bottom:2px solid #98a2b3}.force-cart{position:absolute;left:20px;bottom:8px;height:38px;display:grid;place-items:center;border-radius:6px;color:#fff;background:var(--blue);transition:width .2s}.mini-lab-visual i{position:absolute;left:88px;bottom:40px;border-top:3px solid var(--cyan)}.mini-lab-visual i::after{content:"";position:absolute;right:-2px;top:-7px;border:6px solid transparent;border-left-color:var(--cyan)}.lab-result{padding:11px;border-radius:8px;text-align:center;color:var(--ink)!important;background:#eef2ff}.lab-result.moving{background:#fff4e5;color:#9a5000!important}.observation{margin-top:16px;padding:13px;border-left:3px solid var(--blue);background:#f6f8fc}.observation p{margin:5px 0 0!important;font-size:.78rem}.incline-stage{height:92px;margin:15px 0;border-bottom:7px solid #98a2b3;transform:skewY(-12deg)}.incline-block{width:42px;height:32px;margin-left:48%;transform-origin:center bottom;border-radius:5px;background:var(--blue)}.data-plot{position:relative;height:145px;margin:12px 0;border-left:2px solid #98a2b3;border-bottom:2px solid #98a2b3;background:linear-gradient(#e4e7ec 1px,transparent 1px),linear-gradient(90deg,#e4e7ec 1px,transparent 1px);background-size:25% 25%}.data-plot i{position:absolute;width:9px;height:9px;border-radius:50%;background:var(--blue);transform:translate(-50%,50%)}.mini-lab table{width:100%;border-collapse:collapse;font-size:.76rem}.mini-lab th,.mini-lab td{padding:4px;border-bottom:1px solid var(--line);text-align:center}[data-theme="dark"] .lab-result,[data-theme="dark"] .observation{background:#121b2a}
@media(max-width:1000px){.newton-lab-grid{grid-template-columns:1fr 1fr}.mini-lab:last-child{grid-column:1/-1}.problem-grid{grid-template-columns:1fr}}
@media(max-width:700px){.unit-readings dl{grid-template-columns:1fr}.newton-lab-grid{grid-template-columns:1fr}.mini-lab:last-child{grid-column:auto}.solved-problem>p,.practice-problem>p{min-height:0}}
.curriculum-breadcrumbs{padding:30px 0 0}.curriculum-breadcrumbs ol{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;color:var(--muted);font-size:.82rem}.curriculum-breadcrumbs li:not(:last-child)::after{content:"›";margin-left:8px;color:#98a2b3}.curriculum-breadcrumbs a{color:var(--blue)}
.curriculum-subject-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.curriculum-subject-card{position:relative;display:flex;flex-direction:column;min-height:350px;padding:24px}.curriculum-subject-card header{display:flex;gap:14px;align-items:center}.curriculum-subject-card h2{margin:0}.curriculum-subject-card>p{flex:1;color:var(--muted)}.card-cover-link{position:absolute;inset:0;border-radius:inherit}.curriculum-subject-card .card-action{position:relative;z-index:1;align-self:flex-start}.curriculum-subject-card:focus-within{outline:3px solid rgba(49,92,246,.24);outline-offset:3px}.curriculum-stats{display:flex;flex-wrap:wrap;gap:9px 16px;margin:17px 0}.curriculum-stats span{color:var(--muted);font-size:.78rem}.curriculum-stats strong{color:var(--ink);font-size:1rem}.curriculum-header .curriculum-stats{max-width:760px}.curriculum-map .curriculum-subject-card{min-height:390px}
.curriculum-tree,.curriculum-chapters{display:grid;gap:14px;margin-top:24px}.curriculum-chapter{padding:0;overflow:hidden;scroll-margin-top:90px}.curriculum-chapter>summary{display:flex;gap:16px;align-items:center;padding:21px 24px;cursor:pointer}.curriculum-chapter>summary>span{color:var(--blue);font:800 .75rem ui-monospace,monospace}.curriculum-chapter>summary div{display:grid;gap:3px}.curriculum-chapter>summary small{color:var(--muted);font-weight:400}.curriculum-chapter>p,.curriculum-chapter>ol,.curriculum-chapter>.chapter-relations,.curriculum-chapter>.text-link,.curriculum-chapter>ul{margin-left:24px;margin-right:24px}.curriculum-chapter>p{color:var(--muted)}.curriculum-chapter>ol,.curriculum-chapter>ul{padding:0 0 4px;list-style:none}.curriculum-chapter>.text-link{display:inline-block;margin-bottom:22px}.chapter-relations{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:15px}.chapter-relations a{position:relative;z-index:1;padding:5px 9px;border-radius:999px;color:var(--blue-dark);background:#eef2ff;font-size:.72rem}
.topic-card{border-top:1px solid var(--line)}.topic-card>a{display:grid;grid-template-columns:minmax(170px,.4fr) 1fr auto;gap:16px;align-items:center;padding:15px 2px}.topic-card span{display:grid;gap:2px}.topic-card small{color:var(--muted);font-size:.7rem}.topic-card p{margin:0;color:var(--muted);font-size:.78rem;line-height:1.55}.topic-card b{color:var(--blue)}.topic-card>a:hover strong{color:var(--blue)}
.learning-progress{max-width:560px;margin:12px 0 22px}.learning-progress>div:first-child{display:flex;justify-content:space-between;margin-bottom:7px;color:var(--muted);font-size:.78rem}.knowledge-entry-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:34px}.compact-topic-list{display:grid;grid-template-columns:1fr 1fr;gap:12px}.compact-topic-list>a{padding:18px}.compact-topic-list span{color:var(--blue);font-size:.7rem;font-weight:750}.compact-topic-list strong{display:block;margin:5px 0}.compact-topic-list p{margin:0;color:var(--muted);font-size:.77rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.recent-list{display:grid}.recent-list a{display:flex;justify-content:space-between;gap:14px;padding:13px 0;border-bottom:1px solid var(--line)}.recent-list small{color:var(--muted)}
.curriculum-detail,.curriculum-topic-detail,.curriculum-topic-page,.curriculum-chapter-page,.curriculum-subject-page{max-width:1040px;margin:0 auto;padding-bottom:90px}.curriculum-detail>section,.curriculum-topic-detail>section,.curriculum-topic-page>section,.curriculum-chapter-page>section,.curriculum-subject-page>section{padding:30px 0;border-top:1px solid var(--line)}.curriculum-detail>section>p,.curriculum-topic-detail>section>p{max-width:760px;color:var(--muted);line-height:1.8}.chapter-topic-cards{margin:18px 0;padding:0;list-style:none}.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:30px 0}.related-block{padding:20px;border:1px solid var(--line);border-radius:14px;background:var(--paper-solid)}.related-block h2{font-size:1.05rem}.related-links{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.related-links a{padding:7px 10px;border:1px solid var(--line);border-radius:8px;color:var(--blue-dark);font-size:.78rem}.curriculum-empty{padding:12px 0;color:var(--muted);font-size:.82rem}.previous-next{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:36px}.previous-next a{display:grid;gap:3px;padding:18px;border:1px solid var(--line);border-radius:12px;background:var(--paper-solid)}.previous-next a:last-child{text-align:right}.previous-next small{color:var(--muted)}
.formula-scroll{max-width:100%;overflow-x:auto;padding-bottom:7px}.topic-formulas{display:flex;flex-wrap:wrap;gap:10px}.topic-formulas code,.topic-formulas math{display:block;min-width:max-content;padding:15px 20px;border-radius:10px;color:#fff;background:#182230;font:600 1.15rem Georgia,serif}.mistake-list{display:grid;gap:8px;max-width:760px}.mistake-list li{padding:11px 14px;border-left:3px solid #f2a544;background:#fff9ed}.ssr-topic-list{display:grid;gap:8px;padding-left:25px}.ssr-topic-list a{display:grid;gap:4px;padding:12px;border:1px solid var(--line);border-radius:9px}.ssr-topic-list span{color:var(--muted);font-size:.8rem}.not-found-state{min-height:62vh}
[data-theme="dark"] .chapter-relations a{background:#243253}[data-theme="dark"] .mistake-list li{background:#20283a}[data-theme="dark"] .related-block{background:#182233}
@media(max-width:1000px){.curriculum-subject-grid{grid-template-columns:1fr 1fr}.knowledge-entry-grid{grid-template-columns:1fr}.related-grid{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.curriculum-breadcrumbs{padding-top:20px}.curriculum-subject-grid,.compact-topic-list,.related-grid{grid-template-columns:1fr}.curriculum-subject-card{min-height:310px}.topic-card>a{grid-template-columns:1fr auto}.topic-card p{grid-column:1/-1}.curriculum-chapter>summary{padding:18px}.curriculum-chapter>p,.curriculum-chapter>ol,.curriculum-chapter>.chapter-relations,.curriculum-chapter>.text-link,.curriculum-chapter>ul{margin-left:18px;margin-right:18px}.previous-next{grid-template-columns:1fr}.previous-next a:last-child{text-align:left}.topic-formulas{flex-wrap:nowrap}.curriculum-header h1{font-size:2.5rem}}
