.journey-shell{min-height:100vh;color:var(--color-ink);background:var(--color-canvas);padding:92px 20px 64px}.journey-page{width:min(100%,1120px);margin-inline:auto}.journey-intro{text-align:center;max-width:720px;margin:0 auto 56px}.journey-kicker{color:var(--color-accent-strong);font:600 .66rem/1.4 var(--font-body);letter-spacing:.18em;margin:0 0 12px}.journey-intro h1{font:400 clamp(2.6rem, 7vw, 5rem)/1.05 var(--font-display);letter-spacing:-.06em;margin:0}.journey-intro>p:not(.journey-kicker){color:var(--color-muted);font:400 clamp(.95rem, 2vw, 1.1rem)/1.8 var(--font-display);margin:18px auto 0}.journey-legend{color:var(--color-muted);font:.72rem/1.5 var(--font-body);justify-content:center;gap:22px;margin-top:24px;display:flex}.journey-legend>span{align-items:center;gap:8px;display:inline-flex}.journey-legend-line{background:#a96748;border-radius:2px;width:24px;height:2px}.journey-legend-line--person-b{background:#6d8492}.journey-exhibition{position:relative}.journey-years{gap:0;margin:0;padding:0;list-style:none;display:grid;position:relative}.journey-year,.journey-gap{grid-template-columns:minmax(0,1fr) 220px minmax(0,1fr);align-items:stretch;min-height:68px;display:grid;position:relative}.journey-year--has-memories{min-height:160px}.journey-track{grid-area:1/2;min-height:100%;position:relative}.journey-track svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.journey-strand{fill:none;stroke-linecap:round;stroke-width:2.2px;vector-effect:non-scaling-stroke}.journey-strand--person-a{stroke:#a96748}.journey-strand--person-b{stroke:#6d8492}.journey-year--merged .journey-strand--person-a{stroke:#9c705a;stroke-width:3px}.journey-commit-bridge{fill:none;stroke:#b69b84;stroke-width:1.6px;stroke-linecap:round;stroke-dasharray:2 2;vector-effect:non-scaling-stroke}.journey-commit-node{z-index:1;top:50%;left:var(--node-x);border:2px solid var(--color-canvas);border-radius:50%;width:9px;height:9px;position:absolute;transform:translate(-50%,-50%)}.journey-commit-node--person-a{background:#a96748}.journey-commit-node--person-b{background:#6d8492}.journey-year-mark{z-index:1;border:1px solid var(--color-line);min-width:48px;min-height:32px;color:var(--color-accent-strong);background:var(--color-canvas);font:600 .7rem/1 var(--font-body);border-radius:999px;place-items:center;display:grid;position:absolute;top:0;left:50%;transform:translate(-50%)}.journey-year-content{grid-row:1;align-self:center;padding:18px 0}.journey-year--left .journey-year-content{text-align:right;grid-column:1}.journey-year--right .journey-year-content{text-align:left;grid-column:3}.journey-origin{border-radius:var(--radius-card);color:var(--color-accent-strong);background:var(--color-surface);font:600 .88rem/1.4 var(--font-display);gap:4px;margin:8px 0;padding:10px 14px;display:inline-grid}.journey-origin span{color:var(--color-muted);font:.65rem/1.4 var(--font-body)}.journey-location{max-width:100%;color:var(--color-muted);background:var(--color-surface);text-align:left;font:.66rem/1.45 var(--font-body);border-radius:12px;gap:6px;margin:7px 0 10px;padding:9px 11px;display:inline-grid}.journey-location-period{color:var(--color-accent-strong);font-weight:600}.journey-location-people{flex-wrap:wrap;gap:4px 12px;display:flex}.journey-location-person{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.journey-location-swatch{border-radius:2px;width:16px;height:2px}.journey-location-swatch--person-b{background:#6d8492}.journey-location-swatch--person-a{background:#a96748}.journey-location-note{color:var(--color-ink);font-weight:500}.journey-phase{max-width:300px;color:var(--color-muted);font:.72rem/1.55 var(--font-body);gap:4px;margin:8px 0 12px;display:inline-grid}.journey-phase>span:first-child{color:var(--color-accent-strong);font:600 .63rem/1.4 var(--font-body);letter-spacing:.08em}.journey-phase strong{color:var(--color-ink);font:500 1rem/1.35 var(--font-display)}.journey-memory-stack{gap:10px;display:grid}.journey-memory{border-radius:var(--radius-card);color:inherit;text-align:left;background:var(--color-surface);transition:border-color var(--duration-fast) ease, transform var(--duration-fast) ease;border:1px solid #7749361f;grid-template-columns:104px minmax(0,1fr);gap:12px;text-decoration:none;display:grid;overflow:hidden}.journey-year--left .journey-memory{grid-template-columns:minmax(0,1fr) 104px}.journey-year--left .journey-memory>:first-child{order:2}.journey-memory:hover{border-color:#7749365c;transform:translateY(-2px)}.journey-memory:focus-visible{outline:var(--focus-ring);outline-offset:3px}.journey-memory img{object-fit:cover;width:104px;height:100%;min-height:104px}.journey-memory-copy{align-content:center;gap:5px;padding:10px 12px 10px 0;display:grid}.journey-year--left .journey-memory-copy{padding:10px 0 10px 12px}.journey-memory-copy time{color:var(--color-accent-strong);font:.62rem/1.4 var(--font-body)}.journey-memory-copy strong{font:500 .9rem/1.35 var(--font-display)}.journey-memory-copy>span{color:var(--color-muted);font:.72rem/1.5 var(--font-body);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.journey-gap{align-items:start;min-height:112px}.journey-gap--quiet{min-height:30px}.journey-gap--collapsed .journey-strand{stroke-dasharray:4 6;opacity:.62}.journey-gap-details{z-index:2;min-width:0;color:var(--color-muted);font:.65rem/1.4 var(--font-body);grid-area:1/2;align-self:center;margin:0 12px}.journey-gap-details summary{border:1px solid var(--color-line);border-radius:var(--radius-card);min-height:48px;color:var(--color-accent-strong);background:var(--color-canvas);cursor:pointer;text-align:center;align-content:center;justify-items:center;gap:4px;padding:7px 10px;list-style:none;display:grid}.journey-gap-details summary::-webkit-details-marker{display:none}.journey-gap-details summary::marker{content:""}.journey-gap-details summary:hover{border-color:var(--color-highlight)}.journey-gap-details summary strong{font:500 .76rem/1.35 var(--font-display)}.journey-gap-details summary span{color:var(--color-muted);font:.6rem/1.3 var(--font-body)}.journey-gap-details[open] summary{margin-bottom:6px}.journey-gap-years{border:1px solid var(--color-line);border-radius:var(--radius-card);background:var(--color-canvas);text-align:center;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;padding:7px;display:grid}.journey-gap-years span{color:var(--color-muted);font:.57rem/1.2 var(--font-body);padding:3px 0}.journey-ending{border-top:1px solid var(--color-line);max-width:560px;color:var(--color-accent-strong);text-align:center;font:400 1rem/1.7 var(--font-display);margin:32px auto 0;padding:20px}@media (width<=700px){.journey-shell{padding:82px 14px 44px}.journey-intro{margin-bottom:36px}.journey-year,.journey-gap{grid-template-columns:minmax(0,1fr) 96px minmax(0,1fr);min-height:54px}.journey-year--has-memories{min-height:0}.journey-gap{min-height:96px}.journey-gap--quiet{min-height:24px}.journey-gap-details{margin-inline:4px;font-size:.59rem}.journey-gap-details summary{min-height:44px;padding-inline:4px}.journey-gap-details summary strong{font-size:.66rem}.journey-gap-years{grid-template-columns:repeat(3,minmax(0,1fr));padding:5px}.journey-year-content{padding-block:14px}.journey-memory,.journey-year--left .journey-memory{grid-template-columns:1fr}.journey-year--left .journey-memory>:first-child{order:0}.journey-memory img{width:100%;height:108px;min-height:0}.journey-memory-copy,.journey-year--left .journey-memory-copy{padding:10px}.journey-memory-copy>span{display:none}.journey-phase{font-size:.65rem}.journey-phase strong{font-size:.88rem}.journey-location{gap:5px;padding:8px;font-size:.62rem}.journey-location-people{gap:4px;display:grid}}@media (width<=420px){.journey-year,.journey-gap{grid-template-columns:minmax(0,1fr) 72px minmax(0,1fr)}.journey-gap-details{margin-inline:1px}.journey-memory img{height:82px}.journey-memory-copy{gap:3px;padding:8px}.journey-memory-copy strong{font-size:.78rem}.journey-memory-copy time{font-size:.57rem}.journey-origin{padding:8px;font-size:.76rem}.journey-year--right .journey-location{max-width:calc(100% - 44px);margin-right:44px}}@media (prefers-reduced-motion:reduce){.journey-memory{transition:none}.journey-memory:hover{transform:none}}
