.learn-hero { padding: 116px 0 48px; }
.learn-breadcrumb { display: flex; gap: 12px; margin-bottom: 38px; color: var(--text-muted); font-size: 12px; }
.learn-breadcrumb a:hover { color: var(--teal-dark); }
.learn-hero h1 { max-width: 980px; margin-bottom: 24px; font-size: clamp(38px, 4.8vw, 60px); line-height: 1.35; }
.learn-lead { max-width: 700px; margin-bottom: 38px; font-size: 16px; }
.learn-toc { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.learn-toc a { display: grid; grid-template-columns: 28px minmax(0, 1fr) 16px; align-items: center; gap: 10px; padding: 17px 20px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface); font-size: 13px; }
.learn-toc a:hover { border-color: var(--muted-teal); background: var(--hover); }
.learn-toc .mono, .learn-toc a > span:last-child { color: var(--teal-dark); }
.learn-guides { max-width: 1040px; }
.learn-section { padding: 64px 0; border-top: 1px solid var(--border); }
.learning-page .learn-section { scroll-margin-top: 0; }
.learn-section-heading { max-width: 840px; margin-bottom: 24px; }
.learn-number { display: block; margin-bottom: 16px; color: var(--teal-dark); font-size: 12px; letter-spacing: 0.08em; }
.learn-section h2 { margin-bottom: 0; font-size: clamp(27px, 3.2vw, 36px); }
.learn-copy { max-width: 800px; }
.learn-copy p { margin-bottom: 16px; }
.learn-figure { margin: 28px 0 24px; padding: 24px; border: 1px solid var(--border); border-radius: 20px; background: var(--white); }
.learn-figure figcaption { margin-top: 22px; color: var(--text-muted); font-size: 12px; line-height: 1.7; }
.auto-timeline { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.timeline-step { position: relative; min-width: 0; padding: 16px 10px; border-radius: 14px; background: var(--surface-muted); }
.timeline-step + .timeline-step::before { content: "→"; position: absolute; top: 50%; left: -15px; z-index: 1; width: 15px; color: var(--teal-dark); font-size: 16px; }
.diagram-kicker { margin: 0 0 8px; color: var(--teal-dark); font-size: 12px; font-weight: 600; text-align: center; }
.diagram-result { margin: 8px auto 0; max-width: 300px; font-size: 13px; font-weight: 600; text-align: center; color: var(--blue-slate); }
.route-scene { position: relative; width: 100%; height: 220px; }
.scene-lines { position: absolute; width: 100%; height: 100%; inset: 0; overflow: visible; }
.scene-road { fill: none; stroke: var(--border-strong); stroke-width: 2; stroke-dasharray: 5 6; }
.source-link { fill: none; stroke: var(--teal); stroke-width: 2; }
.candidate-link { fill: none; stroke: var(--muted-teal); stroke-width: 2; stroke-dasharray: 5 5; }
.scene-base { position: absolute; top: 14%; width: 14%; height: 44%; object-fit: contain; transform: translateX(-50%); }
.base-a { left: 16%; }.base-b { left: 84%; }
.station-label { position: absolute; top: 0; transform: translateX(-50%); color: var(--blue-slate); font-size: 12px; font-weight: 600; white-space: nowrap; }
.label-a { left: 16%; }.label-b { left: 84%; }
.scene-car { position: absolute; top: 67%; width: 29%; height: 26%; object-fit: contain; transform: translateX(-50%); }
.near-a .scene-car { left: 32%; }.near-b .scene-car { left: 68%; }.far-b .scene-car { left: 75%; }.boundary .scene-car { left: 50%; }
.auto-timeline .route-scene { height: 170px; }
.comparison-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.comparison-panel { min-width: 0; padding: 20px; border-radius: 14px; background: var(--bright-snow); }
.recommended { background: rgba(190,227,219,0.35); }
.learn-takeaway { padding: 22px 26px; border-left: 3px solid var(--teal); border-radius: 0 12px 12px 0; background: rgba(190,227,219,0.22); }
.learn-takeaway strong { display: block; margin-bottom: 8px; font-size: 15px; color: var(--teal-dark); }
.learn-takeaway p { margin-bottom: 0; font-size: 14px; }
.sky-scene { position: relative; width: min(100%, 640px); height: 300px; margin: 0 auto 26px; }
.sky-scene svg { width: 100%; height: 100%; }
.sky-dome { fill: rgba(190,227,219,0.16); stroke: var(--border); stroke-width: 1.5; }
.sky-signal { fill: none; stroke: var(--muted-teal); stroke-width: 1.5; stroke-dasharray: 5 5; }
.sky-satellite { position: absolute; width: 20%; height: 24%; object-fit: contain; transform: translate(-50%, -50%); }
.sky-left { left: 14%; top: 32%; }.sky-top { left: 50%; top: 12%; }.sky-right { left: 83%; top: 45%; }
.sky-receiver { position: absolute; width: 12%; height: 32%; object-fit: contain; left: 50%; bottom: 5%; transform: translateX(-50%); }
.review-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--border); }
.review-steps > div { padding: 22px 20px 0; }
.review-steps > div + div { border-left: 1px solid var(--border); }
.review-steps span { display: block; margin-bottom: 6px; color: var(--teal-dark); font-size: 11px; }
.review-steps strong { font-size: 14px; }.review-steps p { margin: 8px 0 0; font-size: 12px; }
.msm-input { display: flex; justify-content: center; align-items: center; gap: 24px; padding: 8px 0 0; }
.msm-input > img { width: 70px; height: 116px; object-fit: contain; }
.msm-input > div { display: grid; gap: 6px; }.msm-input .diagram-kicker { text-align: left; }
.msm-input strong { font-size: 15px; }
.msm-branches { display: block; width: 100%; height: 55px; }.msm-branches path { fill: none; stroke: var(--teal); stroke-width: 2; }
.msm-outputs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.msm-output { display: flex; flex-direction: column; align-items: center; padding: 22px; min-width: 0; border: 1px solid var(--border); border-radius: 14px; }
.msm-output strong { font-size: 16px; text-align: center; }
.msm-format { margin: 12px 0; padding: 3px 13px; border-radius: 20px; color: var(--teal-dark); background: var(--white); border: 1px solid var(--border); font-size: 12px; }
.msm-output > img { width: 74px; height: 124px; object-fit: contain; }
.msm-output > p:last-child { margin: 16px 0 0; font-size: 12px; text-align: center; }
.learn-end { padding: 0 0 70px; text-align: center; }.learn-end p { margin-bottom: 24px; }
.learn-end > div { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }

@media (max-width: 980px) {
  .learn-toc { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .learn-hero { padding: 96px 0 36px; }.learn-breadcrumb { margin-bottom: 26px; }
  .learn-hero h1 { font-size: clamp(31px, 7.8vw, 46px); }
  .learn-lead { font-size: 15px; }
  .learn-toc { grid-template-columns: 1fr; gap: 8px; }.learn-toc a { padding: 14px 16px; }
  .learn-section { padding: 42px 0; }.learn-section h2 { font-size: 27px; }
  .learn-figure { padding: 18px; border-radius: 16px; }
  .auto-timeline, .comparison-grid { grid-template-columns: 1fr; gap: 24px; }
  .timeline-step { padding: 16px; }
  .timeline-step + .timeline-step::before { content: "↓"; top: -26px; left: calc(50% - 8px); }
  .auto-timeline .route-scene { height: 200px; }
  .comparison-panel { padding: 18px 12px; }.route-scene { height: 200px; }
  .learn-takeaway { padding: 20px; }
  .sky-scene { height: 230px; margin-top: 8px; }
  .sky-satellite { width: 24%; }.sky-receiver { width: 16%; }
  .review-steps { grid-template-columns: 1fr; }.review-steps > div { padding: 18px 4px; }
  .review-steps > div + div { border-left: 0; border-top: 1px solid var(--border); }
  .review-steps p { margin-top: 4px; }
  .msm-input { gap: 16px; }.msm-input strong { font-size: 13px; }
  .msm-input > img { width: 55px; height: 90px; }
  .msm-output { padding: 18px 10px; }.msm-output strong { font-size: 14px; }
  .learn-end { padding-bottom: 48px; }
}
@media (max-width: 430px) {
  .msm-branches { height: 40px; }
  .msm-outputs { gap: 12px; }
  .msm-output .diagram-kicker { font-size: 11px; }
  .msm-output strong { font-size: 12px; }
  .msm-output > img { width: 58px; height: 100px; }
  .learn-end .button { width: 100%; }
}
