.visual-timeline{--timeline-gold:#e7c65b;background:#11120f;color:#f7f6ef;padding:64px 0 32px;margin:60px 0 100px;overflow:hidden;border-top:2px solid var(--timeline-gold)}
.timeline-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:0 5% 38px}.timeline-heading h2{font-size:clamp(38px,5.8vw,86px);line-height:1;letter-spacing:-.06em;font-weight:500;margin:0}.timeline-heading h2 span{color:var(--timeline-gold);margin-right:.25em}.timeline-name{font-size:12px;letter-spacing:.16em}.timeline-controls{display:flex;gap:8px}.timeline-controls button{width:46px;height:46px;border:1px solid #77786d;border-radius:50%;background:transparent;color:#fff;font-size:22px;cursor:pointer}.timeline-controls button:disabled{opacity:.28;cursor:default}.timeline-controls button:hover:not(:disabled){background:var(--timeline-gold);border-color:var(--timeline-gold);color:#111}
.timeline-rail{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;padding:0 5% 16px;scroll-padding-left:5%;scrollbar-width:thin;scrollbar-color:#696347 #11120f}.timeline-frame{flex:0 0 88%;scroll-snap-align:start;margin:0;min-width:0}.timeline-media{background:#090a08;aspect-ratio:16/9}.timeline-media img,.timeline-media video{display:block;width:100%;height:100%;object-fit:contain}.timeline-frame figcaption{display:flex;align-items:baseline;justify-content:space-between;gap:20px;padding:18px 0 6px}.timeline-frame figcaption strong{font-size:clamp(30px,4vw,56px);font-weight:500;letter-spacing:-.05em;color:var(--timeline-gold)}.timeline-frame figcaption span{font-size:12px;letter-spacing:.08em;text-align:right}.timeline-years{display:flex;gap:28px;margin:20px 5% 0;border-top:1px solid #45463b;padding-top:20px;overflow:auto;scrollbar-width:thin}.timeline-years a{color:#b9b9ab;text-decoration:none;padding:6px 0;white-space:nowrap;font-variant-numeric:tabular-nums}.timeline-years a[aria-current]{color:var(--timeline-gold);box-shadow:0 2px var(--timeline-gold)}.visual-timeline :focus-visible{outline:2px solid var(--timeline-gold);outline-offset:4px}
.timeline-edit-card{display:grid;grid-template-columns:minmax(180px,1fr) 2fr;gap:24px;border:1px solid #ddd;padding:20px;margin:28px 0}.timeline-edit-media img,.timeline-edit-media video{width:100%;max-height:260px;object-fit:contain;background:#111}.timeline-edit-order{display:flex;gap:10px;align-items:center}.timeline-edit-fields{min-width:0}#timeline-editor .content-actions{position:sticky;bottom:0;background:#fff;padding:16px;border-top:1px solid #ccc;z-index:3}#timeline-preview{width:min(1200px,96vw);height:90vh;padding:15px;border:0}#timeline-preview iframe{width:100%;height:calc(100% - 60px);border:0}#timeline-preview::backdrop{background:#000a}
@media(min-width:1700px){.visual-timeline{max-width:1560px;margin-left:auto;margin-right:auto}}
@media(max-width:650px){.visual-timeline{padding-top:36px;margin:40px 0 60px}.timeline-heading{align-items:center;padding-bottom:24px}.timeline-heading h2{font-size:36px}.timeline-heading h2 span{display:block;margin-bottom:8px}.timeline-controls button{width:38px;height:38px}.timeline-frame{flex-basis:94%}.timeline-rail{gap:12px}.timeline-frame figcaption span{font-size:10px}.timeline-years{gap:22px}.timeline-edit-card{grid-template-columns:1fr}.timeline-edit-media img,.timeline-edit-media video{max-height:200px}}
@media(prefers-reduced-motion:reduce){.timeline-rail{scroll-behavior:auto}}

#moments{background:#f4f2eb;color:#111;border:0}#moments .timeline-heading{padding-bottom:26px}#moments .timeline-rail{gap:4%;scrollbar-color:#bcb9ae #f4f2eb}#moments .timeline-frame{flex-basis:48%}#moments .timeline-media{aspect-ratio:1;background:transparent}#moments .timeline-controls,#moments .timeline-years{display:none}#moments figcaption{border-top:1px solid #d1cfc5;margin-top:16px;padding-top:16px}#moments figcaption strong{color:#111}#moments .timeline-media img{object-fit:contain}
@media(max-width:650px){#moments .timeline-frame{flex-basis:88%}#moments .timeline-controls{display:flex}#moments .timeline-controls button{color:#111}}

/* Cable timeline: scroll follows the images, never captures the wheel. */
.cable-timeline{--cable-paper:#f3f1eb;--cable-ink:#1c1d1a;--cable-gold:#a07b21;position:relative;isolation:isolate;max-width:1560px;margin:0 auto 80px;background:var(--cable-paper);color:var(--cable-ink);padding:0 6%;overflow:clip}
.cable-intro{position:relative;min-height:560px;display:grid;grid-template-columns:1fr 1fr;align-items:center;z-index:2}.cable-intro-copy{padding:60px 0}.cable-kicker{font-size:11px;letter-spacing:.18em}.cable-intro h1{font-size:clamp(110px,16vw,240px);font-weight:500;line-height:1;letter-spacing:-.085em;margin:25px 0 30px}.cable-enter{font-size:12px;text-decoration:none;color:inherit;display:inline-flex;gap:28px;align-items:center;border-bottom:1px solid #aaa69c;padding:10px 0}.cable-enter span{font-size:20px}
.cable-headphone{position:relative;width:min(100%,460px);justify-self:center;filter:drop-shadow(14px 24px 12px #14120a15)}.cable-headphone img{width:100%;height:auto;display:block}.cable-headphone [data-cable-origin]{position:absolute;left:25.7%;top:96%;width:1px;height:1px}
.cable-toolbar{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:17px 0;background:var(--cable-paper);border-top:1px solid #d3d0c7;border-bottom:1px solid #d3d0c7;min-height:68px}.cable-toolbar nav{display:flex;gap:6px;flex-wrap:wrap}.cable-toolbar nav[hidden]{display:none}.cable-toolbar button{font:inherit;font-size:12px;padding:9px 17px;border:1px solid transparent;border-radius:22px;background:transparent;color:#56574f;cursor:pointer;transition:background .15s,color .15s}.cable-toolbar button:hover{background:#e7e3d8;color:#111}.cable-toolbar button[aria-pressed=true]{background:var(--cable-ink);color:#fff}.cable-toolbar small{font-size:10px;margin-left:5px;color:inherit}.cable-current{font-size:13px;font-variant-numeric:tabular-nums;letter-spacing:.08em;color:#6e561b;white-space:nowrap}
.cable-wire{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:0;overflow:visible}.cable-wire path{fill:none;stroke-linecap:round;stroke-linejoin:round}.wire-shadow{stroke:#000;stroke-width:9;opacity:.09;transform:translate(3px,4px)}.wire-base{stroke:#cecbc2;stroke-width:4}.wire-lit{stroke:#20211e;stroke-width:4}.wire-edge{stroke:#6b6b62;stroke-width:1;transform:translateX(-.8px)}
.cable-events{position:relative;padding-top:90px;z-index:1;scroll-margin-top:180px}.cable-event{position:relative;display:grid;grid-template-columns:1fr 100px 1fr;min-height:390px;padding:0 0 80px;scroll-margin-top:170px}.cable-event[hidden]{display:none}.cable-event figure{grid-column:1;margin:0;align-self:start;min-width:0}.cable-event.is-right figure{grid-column:3}.cable-event:nth-child(even) figure{grid-column:3}.cable-event.is-left figure{grid-column:1}.cable-node{position:absolute;top:50px;left:50%;width:12px;height:12px;border:3px solid var(--cable-paper);border-radius:50%;background:#56564f;box-shadow:0 0 0 1px #9b978a;transform:translate(-50%,-50%);z-index:2}.cable-event.is-current .cable-node{background:#c6a03c;box-shadow:0 0 0 1px #a08235}.cable-date{grid-column:3;grid-row:1;padding:21px 0 0 15px;font-size:clamp(38px,6.8vw,98px);font-weight:500;line-height:1;letter-spacing:-.055em;color:#b3afa2;transition:color .25s}.cable-event.is-right .cable-date,.cable-event:nth-child(even) .cable-date{grid-column:1;text-align:right;padding:21px 15px 0 0}.cable-event.is-left .cable-date{grid-column:3;text-align:left;padding:21px 0 0 15px}.cable-event.is-current .cable-date{color:var(--cable-gold)}.cable-event figure{grid-row:1;position:relative;background:var(--cable-paper)}
.cable-media{aspect-ratio:16/10;background:#171815;overflow:hidden}.cable-media img,.cable-media video{display:block;width:100%;height:100%;object-fit:contain}.cable-media img{object-fit:cover}.cable-personal .cable-media{aspect-ratio:1;background:#e9e5db}.cable-personal .cable-media img{object-fit:contain}.cable-event figcaption{display:flex;gap:14px;align-items:baseline;padding:17px 0;border-bottom:1px solid #d0cdc3;font-size:12px;line-height:1.5}.cable-caption-year{display:none}.cable-format{margin-left:auto;font-size:9px;letter-spacing:.13em;color:#72736b}.cable-end{position:relative;width:18px;height:64px;margin:0 auto 90px;z-index:1;background:linear-gradient(90deg,#222,#5d5d56 35%,#181917 75%);border-radius:4px 4px 7px 7px}.cable-end span{position:absolute;top:60px;left:4px;width:10px;height:32px;border-radius:0 0 5px 5px;background:repeating-linear-gradient(0deg,#c8a453 0 9px,#25251f 9px 11px)}
.cable-timeline :focus-visible{outline:2px solid #97701e;outline-offset:5px}.timeline-story-link{max-width:1560px;margin:-70px auto 90px;padding:0 5%;text-align:right}.timeline-story-link a{color:inherit;text-decoration:none;border-bottom:1px solid #aaa;padding:12px 0;display:inline-flex;gap:36px;font-size:14px}
@media(min-width:1000px){.cable-event.is-current figure{box-shadow:0 12px 32px #1915090b}}
@media(max-width:760px){.cable-timeline{padding:0 6%;margin-bottom:40px}.cable-intro{min-height:340px;grid-template-columns:1fr 1fr;gap:0}.cable-intro-copy{padding:34px 0}.cable-kicker{font-size:8px;letter-spacing:.12em}.cable-intro h1{font-size:clamp(78px,20vw,145px);margin:20px 0}.cable-headphone{width:130%;max-width:280px;margin-right:-8%}.cable-enter{font-size:10px;gap:16px}.cable-toolbar{top:0;min-height:66px;padding:11px 0;gap:6px}.cable-toolbar nav{gap:0;flex-wrap:nowrap;overflow:auto}.cable-toolbar button{font-size:11px;padding:8px 10px;white-space:nowrap}.cable-toolbar small{display:none}.cable-current{font-size:10px}.cable-events{padding-top:70px}.cable-event{display:block;min-height:0;padding:0 0 60px 35px}.cable-node{left:4px;top:22px;width:9px;height:9px;border-width:2px}.cable-event .cable-date,.cable-event.is-right .cable-date,.cable-event.is-left .cable-date,.cable-event:nth-child(even) .cable-date{font-size:46px;text-align:left;padding:0 0 18px}.cable-event figure{width:100%}.cable-event figcaption{padding:12px 0;font-size:11px}.cable-media{aspect-ratio:4/3}.cable-personal .cable-media{aspect-ratio:1}.cable-end{margin-left:-5px;transform:scale(.7);transform-origin:top center;margin-bottom:40px}.wire-shadow{stroke-width:6}.wire-base,.wire-lit{stroke-width:3}.wire-edge{stroke-width:.7}.timeline-story-link{margin:-35px auto 60px}}
@media(prefers-reduced-motion:reduce){.cable-timeline *{transition:none!important;scroll-behavior:auto!important}}

.cable-event:not(.cable-personal) .cable-media:has(img){aspect-ratio:auto}.cable-event:not(.cable-personal) .cable-media img{height:auto;object-fit:contain}

/* Each cable stop is a year; its smaller frames stay close to the main image. */
.cable-year-gallery{display:contents}.cable-year-gallery figure[hidden],.year-thumbnails[hidden],.year-thumbnail-grid button[hidden],.timeline-edit-card[hidden]{display:none}
.cable-media>a{display:block;color:inherit;height:100%}.cable-media>a:focus-visible{outline-offset:-5px}
.cable-event .cable-expand{margin-left:auto;white-space:nowrap;font-size:10px;color:#49493f;text-decoration:none;border-bottom:1px solid #aba694;padding:3px 0}.cable-expand span{margin-left:8px}
.year-thumbnails{grid-column:3;grid-row:1;align-self:start;margin:145px 0 0 20px;min-width:0}.cable-event.is-right .year-thumbnails,.cable-event:nth-child(even) .year-thumbnails{grid-column:1;margin:145px 20px 0 0}.cable-event.is-left .year-thumbnails{grid-column:3;margin:145px 0 0 20px}
.year-gallery-count{display:block;font-size:10px;letter-spacing:.12em;text-transform:uppercase;margin-bottom:14px;color:#656358}.year-thumbnail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-height:360px;overflow:auto;padding:3px;scrollbar-width:thin}
.year-thumbnail-grid button{position:relative;padding:0;border:0;background:#171815;aspect-ratio:3/2;cursor:pointer;opacity:.68;transition:opacity .18s}.year-thumbnail-grid button:hover,.year-thumbnail-grid button[aria-pressed=true]{opacity:1}.year-thumbnail-grid button[aria-pressed=true]{outline:2px solid #a07b21;outline-offset:2px}.year-thumbnail-grid img{display:block;object-fit:cover;width:100%;height:100%}.year-thumb-play{position:absolute;bottom:8px;left:8px;color:#fff;background:#111c;padding:5px 8px;border-radius:50%;font-size:10px}
.timeline-lightbox{position:fixed;inset:0;width:min(1400px,96vw);max-width:96vw;height:94dvh;max-height:94dvh;padding:18px 24px;border:1px solid #45463b;background:#11120f;color:#f7f6ef;overflow:hidden}.timeline-lightbox[open]{display:flex;flex-direction:column;gap:16px}.timeline-lightbox::backdrop{background:#090a08ed}.timeline-lightbox-bar,.timeline-lightbox-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-shrink:0;font-size:12px}.timeline-lightbox button{min-width:44px;min-height:44px;border:1px solid #77776a;padding:8px 14px;background:transparent;color:inherit;cursor:pointer;font:inherit}.timeline-lightbox button:hover:not(:disabled){border-color:#e7c65b;color:#e7c65b}.timeline-lightbox button:disabled{opacity:.35;cursor:default}[data-lightbox-media]{flex:1;min-height:0;display:flex;justify-content:center;align-items:center}[data-lightbox-media] img,[data-lightbox-media] video{width:100%;height:100%;object-fit:contain;max-height:100%}.timeline-lightbox-open{overflow:hidden}
.timeline-year-desk{margin-top:34px;border:1px solid #d4d3cd;background:#f5f4ef;padding:24px}.timeline-year-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}.timeline-year-heading h2{font-size:26px;margin:0}.timeline-new-year{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:13px}.timeline-new-year input{width:90px;border:1px solid #bdbbb2;background:#fff;padding:12px;font:inherit}.timeline-new-year button{min-height:44px}
[data-year-nav]{display:flex;gap:8px;flex-wrap:wrap;margin:24px 0;padding:0 0 24px;border-bottom:1px solid #d4d3cd}[data-year-nav] button{border:1px solid #bdbbb2;background:#fff;color:#303027;padding:11px 17px;min-height:44px;font:inherit;font-size:13px;cursor:pointer}[data-year-nav] button[aria-pressed=true]{background:#151611;color:#f1cf66;border-color:#151611}
.timeline-bulk{display:grid;grid-template-columns:1fr minmax(200px,.6fr);gap:16px 24px;align-items:start}.timeline-bulk h3{font-size:40px;font-weight:500;letter-spacing:-.04em;margin:0 0 10px}.timeline-bulk p{font-size:13px;color:#55564e;line-height:1.6;margin:0}.timeline-bulk-picker{position:relative;display:flex;flex-direction:column;gap:12px;padding:22px;border:1px dashed #a7a497;background:#fff;font-weight:600;grid-column:1/-1}.timeline-bulk-picker input{font:inherit;font-size:14px;max-width:100%}.timeline-bulk-picker input::file-selector-button{background:#171815;color:#fff;border:0;padding:12px 16px;margin-right:14px;cursor:pointer}[data-bulk-status]{grid-column:1/-1;font-size:14px;overflow-wrap:anywhere}[data-bulk-status]:empty{display:none}[data-bulk-status] ul{color:#912d21;margin-bottom:0}[data-year-empty]{margin:30px 0;color:#55564e}#timeline-editor [disabled]{cursor:default;opacity:.55}#timeline-editor [data-key="featured"]{accent-color:#9e791c}
@media(max-width:760px){.year-thumbnails,.cable-event.is-right .year-thumbnails,.cable-event.is-left .year-thumbnails,.cable-event:nth-child(even) .year-thumbnails{margin:20px 0 0}.year-thumbnail-grid{display:flex;gap:10px;overflow-x:auto;max-height:none;padding:3px 3px 8px}.year-thumbnail-grid button{flex:0 0 30%;min-width:85px}.timeline-lightbox{padding:12px;gap:10px}.timeline-lightbox-bar{font-size:11px;gap:12px}.timeline-bulk{grid-template-columns:1fr}.timeline-year-desk{padding:16px}.timeline-new-year{gap:8px}.timeline-new-year label{flex-basis:100%}.timeline-edit-order{flex-wrap:wrap}#timeline-editor .content-actions{flex-wrap:wrap}.cable-event .cable-expand{font-size:10px}}

/* Modal motion: transitions.dev; native dialog keeps focus and Escape handling. */
:root {
  --modal-open-dur: 250ms;
  --modal-close-dur: 150ms;
  --modal-scale: 0.96;
  --modal-scale-close: 0.96;
  --modal-ease: cubic-bezier(0.22, 1, 0.36, 1);
}
.t-modal {
  transform-origin: center;
  transform: scale(var(--modal-scale));
  opacity: 0;
  pointer-events: none;
  transition:
    transform var(--modal-open-dur) var(--modal-ease),
    opacity   var(--modal-open-dur) var(--modal-ease);
  will-change: transform, opacity;
}
.t-modal.is-open {
  transform: scale(1);
  opacity: 1;
  pointer-events: auto;
}
.t-modal.is-closing {
  transform: scale(var(--modal-scale-close));
  opacity: 0;
  pointer-events: none;
  transition:
    transform var(--modal-close-dur) var(--modal-ease),
    opacity   var(--modal-close-dur) var(--modal-ease);
}

@media (prefers-reduced-motion: reduce) {
  .t-modal { transition: none !important; }
}
.timeline-bulk>*{min-width:0}.timeline-bulk-picker input{width:100%;min-width:0}
