/* v12 package interactions, integrated with the existing profile controls. */
@media (min-width:1101px) and (prefers-reduced-motion:no-preference) {
  .timeline.v12-stack { display:block; position:relative; isolation:isolate; padding-bottom:12vh; }
  .timeline.v12-stack:before { display:none; }
  .timeline.v12-stack .exp-card {
    position:sticky;
    top:var(--v12-stack-top,calc(var(--header) + 28px));
    margin:0 0 11vh;
    min-height:var(--v12-card-height,0px);
    z-index:var(--stack-z,1);
    transform:scale(var(--stack-scale,1));
    transform-origin:center top;
    opacity:var(--stack-opacity,1);
    filter:saturate(var(--stack-sat,1));
    box-shadow:0 14px 30px rgba(16,40,59,.10),0 2px 0 rgba(255,255,255,.85) inset;
    transition:transform .20s linear,opacity .20s linear,filter .20s linear,box-shadow .28s var(--ease),border-color .28s var(--ease);
  }
  .timeline.v12-stack .exp-card.v12-active {
    border-color:#b7d5e1;
    box-shadow:0 24px 48px rgba(16,40,59,.16),0 2px 0 rgba(255,255,255,.9) inset;
  }
  /* A keyboard-focused official-site link remains visible above the stack. */
  .timeline.v12-stack .exp-card:focus-within { z-index:20; transform:scale(1); opacity:1; filter:none; }
}

/* Observe heading groups, not the full height of a long experience section. */
.js-v12 .v12-heading :is(.section-kicker,.section-title,.section-copy) {
  opacity:0; transform:translateY(8px); filter:blur(1px);
  transition:opacity .72s var(--ease),transform .72s var(--ease),filter .72s var(--ease);
}
.js-v12 .v12-heading-visible :is(.section-kicker,.section-title,.section-copy) { opacity:1; transform:none; filter:none; }
.js-v12 .v12-heading-visible .section-kicker { transition-delay:.02s; }
.js-v12 .v12-heading-visible .section-title { transition-delay:.11s; }
.js-v12 .v12-heading-visible .section-copy { transition-delay:.20s; }

/* Independent translate preserves each existing hover transform. */
@media (min-width:1101px) and (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  body:not(.motion-paused) .v12-magnetic { translate:var(--mag-x,0px) var(--mag-y,0px); transition:translate .18s cubic-bezier(.2,.8,.2,1); }
  body:not(.motion-paused) .v12-magnetic.v12-magnet-live { transition:translate .06s linear; }
}
.motion-paused .v12-magnetic { translate:none!important; }
.motion-paused .v12-heading :is(.section-kicker,.section-title,.section-copy) { opacity:1; transform:none; filter:none; transition:none; }
@media (prefers-reduced-motion:reduce) {
  .js-v12 .v12-heading :is(.section-kicker,.section-title,.section-copy) { opacity:1; transform:none; filter:none; transition:none; }
  .v12-magnetic { translate:none!important; }
}
#experience .section-title u { text-decoration-thickness:2px; text-underline-offset:5px; }
