#timeline .screen-heading{text-align:center;padding:30px 0 45px}
#timeline .timeline-back-top{position:fixed;right:calc(16px + env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:10;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 16px;border:1px solid #d7b568;border-radius:999px;background:#191b27;color:#f5dc91;font-size:13px;font-weight:700;box-shadow:0 4px 20px #0008;cursor:pointer}
#timeline .timeline-back-top span{font-size:18px;line-height:1}
#timeline .timeline-back-top:hover,#timeline .timeline-back-top:focus-visible{background:#d7b568;color:#15151e}
#timeline .timeline-notice{font-size:11px;letter-spacing:1px;color:#d7b568;margin:25px auto 0;max-width:600px}
.story-timeline{position:relative;isolation:isolate;max-width:1120px;margin:0 auto;padding:0;border:0;--gold-progress:0px}
.story-timeline:before,.story-timeline:after{content:'';position:absolute;left:50%;top:0;width:3px;transform:translateX(-50%);z-index:-1}
.story-timeline:before{height:100%;background:#353342}
.story-timeline:after{height:var(--gold-progress);max-height:100%;background:linear-gradient(#ae8640,#f5dc91);box-shadow:0 0 15px #d7b56855}
.story-timeline li{padding:100px 0;min-height:clamp(520px,78vh,820px);display:grid;grid-template-columns:minmax(0,1fr) 100px minmax(0,1fr);align-items:center}
.story-timeline li .life-event{grid-column:1;grid-row:1}
.story-timeline li .timeline-dot{grid-column:2;grid-row:1}
.story-timeline li time{grid-column:3;grid-row:1}
.story-timeline li:nth-child(even) .life-event{grid-column:3}
.story-timeline li:nth-child(even) time{grid-column:1;padding-left:0;padding-right:35px;text-align:right}
.story-timeline.reveal-ready .life-event,.story-timeline.reveal-ready time{opacity:0;transform:translateY(32px);transition:opacity 1s ease,transform 1s cubic-bezier(.2,.7,.2,1),border-color .3s,color .3s}
.story-timeline.reveal-ready .in-view .life-event,.story-timeline.reveal-ready .in-view time{opacity:1;transform:translateY(0)}
.life-event{padding:30px 34px;border:1px solid #343648;border-radius:12px;background:#191b27;transition:border-color .3s,box-shadow .3s}
.life-event h2{font-size:clamp(24px,2.6vw,36px);letter-spacing:-.8px}.life-event p{margin-bottom:0}
.life-event.has-timeline-stamp{position:relative;padding-bottom:42px}
.timeline-stamp{
  position:absolute;z-index:1;top:calc(100% - 23px);right:-12px;
  width:clamp(96px,11vw,142px);aspect-ratio:1/1.17;
  transform:rotate(23deg);filter:drop-shadow(2px 6px 7px #08080bcc);
  pointer-events:none;
}
.story-timeline li:nth-child(even) .timeline-stamp{right:auto;left:-12px;transform:rotate(-23deg)}
.timeline-stamp-paper{
  --perforation:10px;
  display:block;width:100%;height:100%;box-sizing:border-box;padding:10px;
  background:#f0dfb4;
  mask:
    radial-gradient(circle at 50% 0, transparent 3px,#000 3.5px) top/var(--perforation) 100% repeat-x,
    radial-gradient(circle at 50% 100%,transparent 3px,#000 3.5px) bottom/var(--perforation) 100% repeat-x,
    radial-gradient(circle at 0 50%,transparent 3px,#000 3.5px) left/100% var(--perforation) repeat-y,
    radial-gradient(circle at 100% 50%,transparent 3px,#000 3.5px) right/100% var(--perforation) repeat-y;
  mask-composite:intersect;
}
.timeline-stamp img{display:block;width:100%;height:100%;object-fit:cover;border:1px solid #a8824c;box-sizing:border-box;background:#2a2530}
.timeline-dot{justify-self:center;width:15px;height:15px;background:#252532;border:2px solid #776b50;border-radius:50%;transition:background .3s,box-shadow .3s}
.story-timeline time{padding-left:35px;color:#aaa9ba;display:flex;flex-direction:column;gap:8px}
.story-timeline time span{font-size:22px}.story-timeline time strong{font-size:clamp(44px,6vw,80px);font-weight:500;letter-spacing:-3px;line-height:1.05}.story-timeline time small{font-size:9px;letter-spacing:2px;color:#8d8b9c}
.story-timeline time sup{font-size:.6em;line-height:0;vertical-align:super}
.story-timeline .reached .timeline-dot{background:#f1d383;border-color:#f1d383;box-shadow:0 0 0 6px #d7b56812,0 0 20px #d7b56855}
.story-timeline .reached .life-event{border-color:#b48f4d88;box-shadow:0 10px 40px #0002}.story-timeline .reached time{color:#e6cb86}
@media(max-width:600px){.story-timeline li{grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);min-height:70svh;padding:75px 0}.life-event{padding:18px 12px;overflow-wrap:anywhere}.life-event h2{font-size:20px;letter-spacing:-.3px}.life-event p{font-size:13px}.life-event .eyebrow{font-size:9px;letter-spacing:1px}.story-timeline time{padding-left:8px}.story-timeline li:nth-child(even) time{padding-right:8px}.story-timeline time span{font-size:14px}.story-timeline time strong{font-size:38px;letter-spacing:-1px}.timeline-dot{width:12px;height:12px}}
@media(max-width:600px){
  .life-event.has-timeline-stamp{padding-bottom:29px}
  .timeline-stamp{width:clamp(72px,21vw,100px);top:calc(100% - 17px);right:-4px}
  .story-timeline li:nth-child(even) .timeline-stamp{left:-4px}
  .timeline-stamp-paper{padding:7px;--perforation:8px}
}
@media(prefers-reduced-motion:reduce){.life-event,.timeline-dot,.story-timeline.reveal-ready .life-event,.story-timeline.reveal-ready time{transition:none;opacity:1;transform:none}}
