/* Continuous practice loop: all content remains readable while the route flows. */
.hero h1, .hero .sub, .hero .desc, #standards-ladder { word-break: keep-all; overflow-wrap: break-word; }
#standards-ladder { padding:76px 0 88px; scroll-margin-top:80px; }
.sl-lead { max-width:850px; margin:18px 0 0; color:var(--g-600); font-size:18px; line-height:1.8; }
.kf-loop { --kf-blue:var(--ox-text); margin-top:36px; color:var(--ink); }
.kf-loop [hidden] { display:none !important; }
.kf-map { position:relative; padding:16px 28px 40px; }
.kf-wires { position:absolute; inset:0; width:100%; height:100%; overflow:visible; pointer-events:none; }
.kf-wire { fill:none; stroke:var(--g-200); stroke-width:2; }
.kf-return-path { stroke:var(--g-300); }
.kf-arrowhead { fill:none; stroke:var(--g-300); stroke-width:1.4; }
.kf-orbit-path { fill:none; stroke:none; }
.kf-travel { fill:none; stroke:var(--kf-blue); stroke-width:3; stroke-linecap:round; }
.kf-packet { fill:var(--kf-blue); }
.kf-packet-halo { fill:var(--kf-blue); opacity:.12; }
.kf-stages { position:relative; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); align-items:stretch; gap:20px; padding:0; margin:0; list-style:none; }
.kf-stage { display:flex; flex-direction:column; align-items:center; min-width:0; }
.kf-marker { display:grid; place-items:center; width:42px; height:42px; flex:none; border:1px solid var(--g-300); border-radius:50%; background:var(--white); color:var(--g-600); font-family:var(--mono); font-size:13px; font-weight:600; transition:color .6s,border-color .6s,background .6s; }
.kf-card { flex:1; width:100%; margin-top:22px; padding:24px 20px; border:1px solid var(--g-200); border-radius:12px; background:var(--white); display:flex; flex-direction:column; transition:border-color .65s,background .65s; }
.kf-stage.is-current .kf-marker { color:var(--c-white); background:var(--ox); border-color:var(--ox); }
.kf-stage.is-current .kf-card { background:var(--ox-50); border-color:var(--kf-blue); }
.kf-card h3 { margin:0; font-size:22px; line-height:1.45; letter-spacing:-.04em; }
.kf-stage-desc { margin:13px 0 0; color:var(--g-600); font-size:14px; line-height:1.85; }
.kf-roles { display:flex; flex-direction:column; gap:12px; margin:20px 0; padding:17px 0; border-block:1px solid var(--g-200); }
.kf-role { display:grid; grid-template-columns:30px minmax(0,1fr); gap:9px; font-size:13px; line-height:1.65; }
.kf-role dt { color:var(--kf-blue); font-weight:700; }
.kf-role dd { margin:0; color:var(--ink); }
html[lang="en"] .kf-role { grid-template-columns:45px minmax(0,1fr); }
.kf-takeaway { margin-top:auto; font-size:13px; line-height:1.7; }
.kf-takeaway p { margin:0; color:var(--g-600); }
.kf-takeaway strong { display:block; color:var(--ink); font-size:14px; }
.kf-takeaway a { display:inline-block; margin-top:16px; color:var(--kf-blue); text-decoration:underline; text-underline-offset:4px; }
.kf-feedback { position:relative; margin:26px 20px 0; text-align:center; }
.kf-feedback-caption { margin:0; color:var(--g-600); font-size:14px; line-height:1.7; }
.kf-feedback-steps { display:flex; flex-direction:row-reverse; gap:40px; justify-content:center; margin:14px 0 0; padding:0; list-style:none; }
.kf-feedback-steps li { position:relative; flex:1; color:var(--g-600); font-size:14px; font-weight:600; line-height:1.65; transition:color .7s; }
.kf-feedback-steps li + li::before { content:'←'; position:absolute; right:-28px; color:var(--g-300); }
.kf-feedback-steps li.is-current { color:var(--kf-blue); }
.kf-loop.is-returning .kf-feedback-caption { color:var(--kf-blue); }
.kf-return-caption { margin:4px 0 0; text-align:center; color:var(--kf-blue); font-size:15px; line-height:1.8; }
.kf-foundation { display:grid; grid-template-columns:150px 1fr; gap:12px 24px; margin-top:26px; padding:24px 0; border-block:1px solid var(--g-200); }
.kf-foundation-label { color:var(--kf-blue); font-size:14px; font-weight:600; }
.kf-foundation h3 { margin:0; font-size:21px; line-height:1.5; }
.kf-foundation p { margin:10px 0 0; color:var(--g-600); font-size:15px; line-height:1.8; }
.kf-footnote { display:flex; justify-content:space-between; align-items:baseline; gap:20px; margin-top:18px; color:var(--g-600); font-size:13px; line-height:1.7; }
.kf-footnote p { margin:0; max-width:780px; }
.kf-motion { display:inline-flex; align-items:center; gap:7px; flex:none; cursor:pointer; }
.kf-motion input { width:16px; height:16px; accent-color:var(--ox); }
#standards-ladder a:focus-visible, #standards-ladder input:focus-visible { outline:3px solid var(--ox); outline-offset:4px; }
@media (max-width:1100px) and (min-width:681px) { .nav-menu { gap:15px; font-size:13px; } .nav-social { display:none; } }
@media (max-width:1000px) {
  .kf-map { padding:16px 24px 38px; }
  .kf-stages { grid-template-columns:1fr; gap:24px; }
  .kf-stage { display:grid; grid-template-columns:36px minmax(0,1fr); align-items:start; gap:16px; }
  .kf-marker { width:36px; height:36px; margin-top:18px; }
  .kf-card { margin-top:0; padding:22px; }
  .kf-roles { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
  .kf-feedback { margin-inline:12px; }
}
@media (max-width:600px) {
  #standards-ladder { padding:56px 0; }
  .sl-lead { font-size:16px; }
  .kf-map { padding-inline:14px; }
  .kf-stages { gap:22px; }
  .kf-stage { grid-template-columns:30px minmax(0,1fr); gap:12px; }
  .kf-marker { width:30px; height:30px; font-size:11px; }
  .kf-card { padding:20px 16px; }
  .kf-card h3 { font-size:21px; }
  .kf-stage-desc { font-size:14px; }
  .kf-roles { display:flex; gap:10px; }
  .kf-feedback-steps { flex-direction:column; gap:19px; }
  .kf-feedback-steps li + li::before { content:'↓'; inset:auto 0 auto; top:-20px; }
  .kf-feedback { margin-top:22px; }
  .kf-return-caption { font-size:14px; }
  .kf-foundation { grid-template-columns:1fr; gap:10px; }
  .kf-foundation h3 { font-size:19px; }
  .kf-footnote { flex-direction:column; gap:12px; }
}
@media (prefers-reduced-motion:reduce) { .kf-loop *, .kf-loop *::before { transition:none !important; } }
