/* Academic journey — shared brand, independent page layout. */
.journey-intro{max-width:1140px;margin:auto;padding:150px 32px 50px}
.journey-intro .kicker{margin-top:35px;font-size:.875rem}
.journey-intro h1{font-size:clamp(3.4rem,7vw,6.8rem);margin:22px 0}
.journey-lead{font-size:1.2rem;color:var(--navy)}
.journey-hint{font-size:.9rem;color:var(--muted)}
.timeline-section{max-width:1140px;margin:auto;padding:10px 32px 85px}
.academic-timeline{position:relative;list-style:none;margin:0;padding:0;--progress:0%}
.academic-timeline::before,.academic-timeline::after{content:"";position:absolute;top:0;left:50%;width:2px;transform:translateX(-50%);height:100%;background:var(--line)}
.academic-timeline::after{height:var(--progress);background:var(--gold)}
.journey-stop{position:relative;display:block;padding:22px 0 22px 78px;min-height:0}
.timeline-node{position:absolute;z-index:1;left:50%;top:55px;transform:translateX(-50%);width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--gold);border-radius:50%;background:var(--paper);color:var(--navy);font-size:.8rem}
.journey-card{grid-column:1;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 35px rgba(16,39,91,.05);overflow:hidden;transition:border-color .3s,box-shadow .3s}
.journey-stop:nth-child(even) .journey-card{grid-column:2}
.journey-card:hover,.journey-card[open]{border-color:var(--gold);box-shadow:0 15px 40px rgba(16,39,91,.1)}
.journey-card summary{position:relative;cursor:pointer;list-style:none;display:grid;grid-template-columns:1fr auto;gap:18px;padding:28px}
.journey-card summary::-webkit-details-marker{display:none}
.journey-card summary:focus-visible{outline:3px solid var(--blue);outline-offset:-5px;border-radius:14px}
.period{font-family:var(--serif);font-size:2rem;color:var(--blue);line-height:1.2}
.stage-icon{font-size:1.8rem}
.stage-title{grid-column:1 / -1;font-family:var(--serif);font-size:1.5rem;line-height:1.25;padding-right:25px}
.expand-icon{position:absolute;right:25px;bottom:25px;color:var(--blue);font-size:1.5rem;transition:transform .25s}
.journey-card[open] .expand-icon{transform:rotate(45deg)}
.stage-detail{border-top:1px solid var(--line);margin:0 28px;padding:18px 0 22px;color:var(--muted);font-size:1rem}
.stage-detail p{margin:0 0 18px;line-height:1.8}
.stage-detail h3{font-family:var(--sans);font-size:1rem;color:var(--navy);margin:26px 0 12px}
.stage-detail ul{padding-left:22px;margin:12px 0 24px}
.stage-detail li{padding-left:5px;margin:10px 0;line-height:1.7}
.stage-detail li::marker{color:var(--blue)}
.stage-detail strong{font-weight:600;color:var(--navy)}
.stage-detail .institution{padding:12px 16px;background:#f1f3f7;border-radius:6px;margin-bottom:24px}
.stage-detail .stage-takeaway{border-left:3px solid var(--gold);padding:14px 20px;background:var(--cream);border-radius:0 8px 8px 0;margin-top:26px}
.academic-timeline::before,.academic-timeline::after{left:19px}
.timeline-node{left:19px}
.journey-card{max-width:900px}
.journey-card summary{grid-template-columns:1fr}
.stage-detail{padding-bottom:30px}
.stage-detail .institution{color:var(--navy);font-weight:700}
.journey-card[open] .stage-detail{animation:detail-in .35s ease}
.journey-stop:last-child .journey-card{background:var(--navy);color:white}
.journey-stop:last-child .period,.journey-stop:last-child .expand-icon{color:var(--gold)}
.journey-stop:last-child .stage-detail{color:#e2e8ee;border-color:#52617d}
.present-services .present-service-list{list-style:none;padding:0;margin:6px 0 0;display:grid;gap:14px}
.present-services .present-service-list li{display:flex;align-items:center;gap:18px;margin:0;padding:18px 20px;border:1px solid rgba(255,255,255,.16);border-radius:10px;background:rgba(255,255,255,.04);color:#fff;line-height:1.5}
.present-services .service-number{flex-shrink:0;color:var(--gold);font-size:.8rem;letter-spacing:.08em;border-right:1px solid rgba(255,255,255,.2);padding-right:18px}
.journey-motion .journey-card{opacity:0;transform:translateY(34px);transition:opacity .7s ease,transform .7s ease,border-color .3s}
.journey-motion .journey-stop.in-view .journey-card{opacity:1;transform:none}
.journey-stop.in-view .timeline-node{background:var(--gold)}
.research-panel{max-width:1076px;margin:0 auto 80px;padding:45px;display:flex;justify-content:space-between;align-items:center;gap:30px;background:var(--navy);color:white;border-radius:16px}
.research-panel h2{font-size:clamp(2rem,4vw,3.5rem);line-height:1.05}
.research-panel h2 em{color:var(--sage)}
.orcid-link{display:grid;gap:7px;flex-shrink:0;padding:20px 24px;border:1px solid var(--gold);border-radius:8px;color:white;text-decoration:none}
.orcid-link:hover{background:#263e6b}
.orcid-link span{font-weight:700}.orcid-link small{font-size:.875rem;color:#d7dfeb}
@keyframes detail-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@media(max-width:800px){.journey-intro{padding:115px 22px 25px}.timeline-section{padding:0 22px 50px}.academic-timeline::before,.academic-timeline::after{left:19px}.journey-stop{display:block;min-height:0;padding:15px 0 15px 52px}.timeline-node{left:19px;top:40px}.journey-card summary{padding:22px;gap:14px}.period{font-size:1.65rem}.stage-title{font-size:1.3rem}.stage-detail{margin:0 22px}.research-panel{margin:0 22px 50px;padding:28px;display:block}.orcid-link{margin-top:25px}.stage-icon{font-size:1.4rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.journey-motion .journey-card{opacity:1;transform:none;transition:none}.journey-card[open] .stage-detail{animation:none}.expand-icon{transition:none}}
