/* M02K02 · Traveling waves */
.traveling-chapter { scroll-margin-top:calc(var(--header-h) + 24px); padding-top:92px; padding-bottom:58px; }
.k02-header { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(270px,.55fr); gap:clamp(30px,5vw,70px); align-items:end; padding-top:20px; border-top:1px solid var(--line-strong); }
.k02-header h2 { margin:10px 0 16px; font-size:clamp(2.8rem,6.2vw,5.8rem); line-height:.92; letter-spacing:-.058em; }
.k02-header .lead { max-width:840px; margin:0; color:var(--muted); font-size:clamp(1rem,1.5vw,1.14rem); }
.k02-index { padding:23px; border:1px solid var(--line); border-radius:var(--radius-sm); background:linear-gradient(145deg,color-mix(in srgb,var(--accent-2) 8%,var(--panel)),var(--panel)); }
.k02-index > span { color:var(--accent-2); font-size:.7rem; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.k02-index strong { display:block; margin:14px 0 8px; font-size:1.14rem; }
.k02-index p { margin:0; color:var(--muted); font-size:.86rem; }
.travel-concept-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:42px; }
.travel-concept-card, .proof-card { min-width:0; padding:25px; border:1px solid var(--line); border-radius:var(--radius-sm); background:var(--panel); }
.travel-concept-card.key-card { background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 7%,var(--panel)),var(--panel)); }
.travel-concept-card p, .proof-card p { margin:16px 0 0; color:var(--muted); font-size:.9rem; }
.travel-equation { margin-top:18px; font-size:1.34rem; }
.travel-mini-rule { display:grid; grid-template-columns:auto 1fr; gap:8px 12px; margin-top:22px; padding:14px 16px; border:1px solid var(--line); border-radius:11px; background:color-mix(in srgb,var(--bg-elevated) 58%,transparent); font-size:.82rem; }
.travel-mini-rule b { color:var(--accent); }
.travel-mini-rule span { color:var(--muted); }
.transport-proof { padding:58px 0 72px; }
.proof-grid { display:grid; grid-template-columns:1fr 1fr 1.15fr; gap:12px; }
.proof-card .equation { min-height:116px; margin-top:18px; }
.proof-result { background:linear-gradient(145deg,color-mix(in srgb,var(--accent-3) 6%,var(--panel)),var(--panel)); }

.travel-lab-section { padding:78px 0 84px; border-block:1px solid var(--line); background:linear-gradient(180deg,color-mix(in srgb,var(--accent-2) 3%,transparent),transparent 22%,transparent 78%,color-mix(in srgb,var(--accent) 3%,transparent)); }
.travel-lab-shell { display:grid; grid-template-columns:286px minmax(0,1fr); gap:12px; align-items:start; }
.travel-controls { position:sticky; top:calc(var(--header-h) + 16px); display:grid; gap:18px; padding:22px; border:1px solid var(--line); border-radius:var(--radius-sm); background:var(--panel-solid); }
.segmented-control { min-width:0; margin:0; padding:0; border:0; display:grid; grid-template-columns:1fr 1fr; gap:7px; }
.segmented-control legend { grid-column:1/-1; margin-bottom:2px; color:var(--muted); font-size:.68rem; font-weight:780; letter-spacing:.06em; text-transform:uppercase; }
.segment { min-width:0; min-height:38px; padding:7px 8px; border:1px solid var(--line); border-radius:9px; background:var(--panel); color:var(--text); font-size:.72rem; font-weight:760; cursor:pointer; }
.segment.is-active { border-color:color-mix(in srgb,var(--accent) 55%,var(--line)); background:color-mix(in srgb,var(--accent) 10%,var(--panel)); color:var(--accent); }
.travel-main { display:grid; gap:12px; min-width:0; }
.travel-field-svg { width:100%; min-height:330px; background:linear-gradient(180deg,color-mix(in srgb,var(--bg-elevated) 42%,transparent),transparent); }
.travel-reference { fill:none; stroke:var(--muted); stroke-width:1.6; stroke-dasharray:6 7; opacity:.64; vector-effect:non-scaling-stroke; }
.travel-trace { fill:none; stroke:var(--accent); stroke-width:3; stroke-linejoin:round; stroke-linecap:round; vector-effect:non-scaling-stroke; }
.travel-probe-line { stroke:var(--warm); stroke-width:1.2; stroke-dasharray:4 5; opacity:.72; vector-effect:non-scaling-stroke; }
.travel-probe-dot { fill:var(--warm); stroke:var(--bg); stroke-width:2; }
.travel-feature-line { stroke:var(--accent-2); stroke-width:1.2; stroke-dasharray:3 4; opacity:.8; vector-effect:non-scaling-stroke; }
.travel-feature-dot { fill:var(--accent-2); stroke:var(--bg); stroke-width:2; }
.travel-direction-line { stroke:var(--accent-3); stroke-width:3; stroke-linecap:round; }
.travel-direction-head { fill:var(--accent-3); }
.travel-direction-text { fill:var(--accent-3); font:800 14px system-ui,sans-serif; }
.travel-legend { display:flex; flex-wrap:wrap; gap:17px; padding:0 20px 16px; color:var(--muted); font-size:.69rem; }
.travel-legend span { display:flex; align-items:center; gap:7px; }
.travel-legend i { width:17px; height:2px; display:inline-block; }
.travel-legend i.now { background:var(--accent); }
.travel-legend i.ref { background:var(--muted); }
.travel-legend i.feature { background:var(--accent-2); }
.travel-legend i.probe { background:var(--warm); }
.travel-telemetry { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid var(--line); }
.travel-telemetry > div { display:grid; gap:5px; padding:14px 16px; border-right:1px solid var(--line); }
.travel-telemetry > div:last-child { border-right:0; }
.travel-telemetry span { color:var(--muted); font-size:.68rem; font-weight:760; }
.travel-telemetry strong { color:var(--text); font-size:.98rem; font-variant-numeric:tabular-nums; }
.travel-detail-grid { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr); gap:12px; }
.probe-trace-svg { width:100%; min-height:240px; }
.probe-time-trace { fill:none; stroke:var(--accent-2); stroke-width:2.5; stroke-linecap:round; stroke-linejoin:round; vector-effect:non-scaling-stroke; }
.time-cursor { stroke:var(--warm); stroke-width:1.2; stroke-dasharray:4 4; }
.time-cursor-dot { fill:var(--warm); stroke:var(--bg); stroke-width:2; }
.invariant-panel { padding:25px; display:flex; flex-direction:column; justify-content:center; }
.invariant-panel > strong { margin:13px 0 10px; font-size:1.08rem; }
.invariant-equation { padding:14px 16px; border:1px solid var(--line); border-radius:11px; background:color-mix(in srgb,var(--bg-elevated) 58%,transparent); font-family:"Cambria Math","STIX Two Math",Georgia,serif; font-size:1.16rem; text-align:center; }
.invariant-panel p { margin:13px 0 0; color:var(--muted); font-size:.87rem; }
.invariant-panel small { margin-top:17px; color:var(--muted); font-size:.69rem; }

.dalembert-section { padding:72px 0 56px; }
.dalembert-grid { display:grid; grid-template-columns:1fr auto 1fr auto 1.25fr; gap:12px; align-items:center; }
.dalembert-card { min-width:0; padding:24px; border:1px solid var(--line); border-radius:var(--radius-sm); background:var(--panel); text-align:center; }
.dalembert-card > span { display:block; color:var(--accent); font-size:1.4rem; }
.dalembert-card strong { display:block; margin:9px 0 5px; font-family:"Cambria Math","STIX Two Math",Georgia,serif; font-size:1.25rem; overflow-wrap:anywhere; }
.dalembert-card p { margin:0; color:var(--muted); font-size:.78rem; }
.dalembert-card.left-card > span { color:var(--accent-2); }
.dalembert-card.result-card { background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 7%,var(--panel)),var(--panel)); }
.dalembert-plus, .dalembert-equals { color:var(--muted); font-size:1.7rem; font-weight:300; }
.k02-takeaway { padding-top:48px; }
.k02-next { margin-top:10px; }

@media (max-width:980px) {
  .k02-header { grid-template-columns:1fr; }
  .k02-index { max-width:620px; }
  .travel-concept-grid, .proof-grid { grid-template-columns:1fr 1fr; }
  .travel-concept-grid > :last-child, .proof-grid > :last-child { grid-column:1/-1; }
  .travel-lab-shell { grid-template-columns:1fr; }
  .travel-controls { position:static; grid-template-columns:1fr 1fr; }
  .time-control { grid-column:1/-1; }
  .travel-detail-grid { grid-template-columns:1fr; }
  .dalembert-grid { grid-template-columns:1fr auto 1fr; }
  .dalembert-equals { display:none; }
  .dalembert-card.result-card { grid-column:1/-1; }
}
@media (max-width:680px) {
  .traveling-chapter { padding-top:62px; padding-bottom:44px; }
  .k02-header h2 { font-size:clamp(2.45rem,13vw,4.5rem); }
  .travel-concept-grid, .proof-grid { grid-template-columns:1fr; }
  .travel-concept-grid > :last-child, .proof-grid > :last-child { grid-column:auto; }
  .transport-proof { padding:44px 0 52px; }
  .travel-lab-section { padding:52px 0 58px; }
  .travel-controls { grid-template-columns:1fr; }
  .time-control { grid-column:auto; }
  .travel-field-svg { min-height:255px; }
  .travel-telemetry { grid-template-columns:1fr 1fr; }
  .travel-telemetry > div:nth-child(2) { border-right:0; }
  .travel-telemetry > div:nth-child(-n+2) { border-bottom:1px solid var(--line); }
  .dalembert-section { padding-top:52px; }
  .dalembert-grid { grid-template-columns:1fr; }
  .dalembert-plus { justify-self:center; }
  .dalembert-card.result-card { grid-column:auto; }
}
@media (max-width:420px) {
  .traveling-chapter { padding-top:50px; }
  .travel-concept-card, .proof-card { padding:20px; }
  .travel-telemetry > div { padding:12px; }
  .segmented-control { grid-template-columns:1fr; }
  .travel-field-svg { min-height:230px; }
}
@media (max-width:360px) {
  .k02-header h2 { font-size:2.38rem; overflow-wrap:anywhere; }
  .travel-equation { font-size:1.15rem; }
}
