/* My Journey: scroll-driven timeline (Style C) */
.journey-intro h1 .hl{color:var(--accent);display:block}
.resume-link{margin-top:1.25rem;font-size:.95rem}
.resume-link a{color:var(--fg);opacity:.8;text-underline-offset:4px}
.resume-link a::before{content:"↓ ";color:var(--accent)}
.resume-link a:hover{opacity:1;color:var(--accent)}
.journey{padding-top:1rem}
.tl{position:relative;--rail-x:28px}
.tl-rail{position:absolute;left:var(--rail-x);top:0;bottom:0;width:3px;background:var(--line);border-radius:3px;transform:translateX(-50%)}
.tl-fill{position:absolute;left:0;top:0;width:100%;height:calc(var(--progress,1) * 100%);background:var(--accent);border-radius:3px;box-shadow:0 0 18px var(--accent-glow)}
.timeline{list-style:none;margin:0;padding:0;display:grid;gap:clamp(2.5rem,6vw,4.5rem)}
.chapter{position:relative;padding-left:calc(var(--rail-x) + clamp(1.5rem,4vw,3rem))}
.ch-dot{position:absolute;left:var(--rail-x);top:.6rem;width:18px;height:18px;border-radius:50%;background:var(--bg);border:3px solid var(--line-strong);transform:translateX(-50%);transition:background .3s,border-color .3s,box-shadow .3s}
.chapter.is-active .ch-dot,.chapter.is-past .ch-dot{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 6px var(--accent-ring)}
.ch-when{display:flex;flex-wrap:wrap;gap:.25rem .9rem;align-items:baseline;font-weight:600;font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-meta);margin-bottom:.6rem}
.ch-n{color:var(--accent)}
.ch-card h2{font-size:clamp(1.8rem,4.2vw,3.2rem);line-height:.95;margin-bottom:1.25rem;max-width:22ch}
.ch-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:2rem}
.chapter:has(.ch-photo) .ch-grid{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:start}
.ch-text>p{font-size:1.12rem;color:var(--text-soft);max-width:62ch}
.ch-card h4{font:600 .75rem/1 var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:1.5rem 0 .75rem}
.ch-wins ul{list-style:none;padding:0;margin:0;display:grid;gap:.6rem}
.ch-wins li{position:relative;padding:.8rem 1rem .8rem 2.6rem;background:var(--surface);border:1px solid var(--line);border-radius:10px;font-weight:500}
.ch-wins li::before{content:"✦";position:absolute;left:1rem;top:.8rem;color:var(--accent)}
.ch-skills ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.45rem}
.ch-skills li{font-size:.85rem;padding:.4rem .75rem;border:1px solid var(--line-strong);border-radius:999px;color:var(--text-soft)}
.ch-photo{margin:0}
.ch-photo img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:10px}
.ch-photo figcaption{font-size:.8rem;opacity:.6;margin-top:.5rem}
.js-journey .chapter .ch-card{opacity:0;transform:translateY(28px);transition:opacity .6s ease,transform .6s ease}
.js-journey .chapter.is-seen .ch-card{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js-journey .chapter .ch-card{opacity:1;transform:none}}
.skills-strip{border-top:1px solid var(--line);background:var(--band-dark)}
.sk-lede{color:var(--text-muted);margin-bottom:2rem}
.sk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:1rem}
.sk-group{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:1.25rem 1.4rem}
.sk-group h3{font-size:1rem;color:var(--accent);margin-bottom:.75rem}
.sk-group ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.4rem}
.sk-group li{font-size:.85rem;padding:.3rem .65rem;background:var(--surface-2);border-radius:6px}
@media (max-width:860px){.chapter:has(.ch-photo) .ch-grid{grid-template-columns:1fr}.tl{--rail-x:10px}.ch-dot{width:16px;height:16px}}
