/* PSI 7.0.1 · Transient motion only; the original grid sets every dimension. */
body.psi-motion-site .overview-grid>a.overview-card.psi-project-motion{
  opacity:1;
  transform:none;
  transition:opacity .58s cubic-bezier(.22,1,.36,1),transform .58s cubic-bezier(.22,1,.36,1);
}
body.psi-motion-site .overview-grid>a.overview-card.psi-project-motion-pending{opacity:0;transform:translateY(14px)}
body.psi-motion-site .overview-grid>a.overview-card.psi-project-motion:nth-child(2){transition-delay:.06s}
body.psi-motion-site .overview-grid>a.overview-card.psi-project-motion:nth-child(3){transition-delay:.12s}
@media (max-width:720px){
  body.psi-motion-site .overview-grid>a.overview-card.psi-project-motion{transition:opacity .42s cubic-bezier(.22,1,.36,1),transform .42s cubic-bezier(.22,1,.36,1)}
  body.psi-motion-site .overview-grid>a.overview-card.psi-project-motion-pending{transform:translateY(8px)}
  body.psi-motion-site .overview-grid>a.overview-card.psi-project-motion:nth-child(2){transition-delay:.03s}
  body.psi-motion-site .overview-grid>a.overview-card.psi-project-motion:nth-child(3){transition-delay:.06s}
}
@media (prefers-reduced-motion:reduce){
  body.psi-motion-site .overview-grid>a.overview-card.psi-project-motion{opacity:1!important;transform:none!important;transition:none!important}
}

/* Public content only. Hero, member access and workbench keep their own motion. */
body.psi-motion-site {
  --psi-motion-ease: cubic-bezier(.2,.72,.24,1);
  --psi-motion-enter: 620ms;
  --psi-motion-distance: 22px;
}

/* Public motion owns reveals. Legacy whole-section rules are scoped to pages
   without psi-motion-site; content stays visible without scripts or observers. */
body.psi-motion-site [data-psi-reveal] {
  opacity: 1; translate: 0 0;
  transition: opacity var(--psi-motion-enter) var(--psi-motion-ease),
    translate var(--psi-motion-enter) var(--psi-motion-ease);
  transition-delay: var(--psi-reveal-delay,0ms);
}
body.psi-motion-site.psi-motion-ready [data-psi-reveal].psi-reveal-pending {
  opacity: 0; translate: 0 var(--psi-motion-distance);
}
body.psi-motion-site [data-psi-reveal].psi-reveal-visible,
body.psi-motion-site [data-psi-reveal]:focus-within {
  opacity: 1; translate: 0 0;
}
body.psi-motion-site [data-psi-reveal="media"] { --psi-motion-enter: 760ms; }
body.psi-motion-site .home-photo-card[data-psi-reveal="media"] img {
  transition: transform 900ms var(--psi-motion-ease);
}
body.psi-motion-site.psi-motion-ready .home-photo-card[data-psi-reveal="media"].psi-reveal-pending img {
  transform: scale(1.045);
}
body.psi-motion-site .home-photo-card[data-psi-reveal="media"].psi-reveal-visible img { transform: scale(1); }

/* Paint the existing row edge without adding boxes or changing positioning. */
body.psi-motion-site [data-psi-reveal="line"] {
  background-image: linear-gradient(90deg,#d8e6ef,#88abc5 74%,#88abc500);
  background-repeat: no-repeat;
  background-position: left top;
  background-size: calc(var(--psi-reading-progress,0) * 100%) 1px;
  transition: opacity var(--psi-motion-enter) var(--psi-motion-ease),
    translate var(--psi-motion-enter) var(--psi-motion-ease),background-size 180ms linear;
}
body.psi-motion-site [data-psi-reveal="line"] time {
  transition: color 450ms var(--psi-motion-ease);
}
body.psi-motion-site [data-psi-reveal="line"].psi-reveal-visible time { color: #d8e6ef; }

/* Small, consistent responses for public links and controls. */
body.psi-motion-site [data-psi-motion-content] :is(.detail-button,.btn,.home-more,.detail-text-link,.arrow-link) {
  transition: background-color 180ms ease,color 180ms ease,border-color 180ms ease,
    transform 180ms var(--psi-motion-ease),opacity 180ms ease;
}
body.psi-motion-site [data-psi-motion-content] :is(.detail-button,.btn):active { transform: scale(.985); }
body.psi-motion-site [data-psi-motion-content] :is(.detail-button,.btn):focus-visible {
  outline: 2px solid #accde4; outline-offset: 5px;
}
body.psi-motion-site [data-psi-motion-content] .detail-faq details[open]>p {
  animation: psi-detail-answer 300ms var(--psi-motion-ease) both;
}
body.psi-motion-site [data-psi-motion-content] .detail-result:not([hidden]) {
  animation: psi-detail-answer 350ms var(--psi-motion-ease) both;
}
@keyframes psi-detail-answer {
  from { opacity: 0; transform: translateY(7px); }
  to { opacity: 1; transform: none; }
}
@media (hover:hover) and (pointer:fine) {
  body.psi-motion-site [data-psi-motion-content] :is(.project,.journal-card,.detail-related,.about-story-card) {
    transition: transform 350ms var(--psi-motion-ease),border-color 250ms ease;
  }
  body.psi-motion-site [data-psi-motion-content] :is(.project,.journal-card,.detail-related,.about-story-card):hover {
    transform: translateY(-4px); box-shadow: none;
  }
  body.psi-motion-site .home-photo-card[data-psi-reveal="media"].psi-reveal-visible:hover img { transform: scale(1.025); }
}
@media (max-width:760px), (hover:none) {
  body.psi-motion-site { --psi-motion-enter: 460ms; --psi-motion-distance: 12px; }
  body.psi-motion-site [data-psi-reveal="media"] { --psi-motion-enter: 540ms; }
  body.psi-motion-site [data-psi-reveal] { transition-delay: min(var(--psi-reveal-delay,0ms),70ms); }
  body.psi-motion-site [data-psi-motion-content] :is(.project,.journal-card,.detail-related,.about-story-card):hover { transform: none; box-shadow: none; }
}
@media (prefers-reduced-motion:reduce) {
  body.psi-motion-site [data-psi-reveal],
  body.psi-motion-site.psi-motion-ready [data-psi-reveal].psi-reveal-pending {
    opacity: 1; translate: none; transition: none;
  }
  body.psi-motion-site [data-psi-reveal="line"] { background-size: 100% 1px; transition: none; }
  body.psi-motion-site .home-photo-card[data-psi-reveal="media"] img { transform: none!important; transition: none; }
  body.psi-motion-site [data-psi-motion-content] :is(.detail-button,.btn,.home-more,.detail-text-link,.arrow-link),
  body.psi-motion-site [data-psi-reveal="line"] time { transition: none; }
  body.psi-motion-site [data-psi-motion-content] .detail-faq details[open]>p,
  body.psi-motion-site [data-psi-motion-content] .detail-result:not([hidden]) { animation: none; }
}

/* Animation only: all existing navigation dimensions come from the 6.0.47 CSS. */
body.psi-motion-site .nav #site-nav > a {
  transition: color 180ms ease, opacity 180ms ease;
  -webkit-tap-highlight-color: transparent;
}
body.psi-motion-site .nav #site-nav > a:focus-visible,
body.psi-motion-site .nav .menu:focus-visible {
  outline: 2px solid #accde4;
  outline-offset: 5px;
}
body.psi-motion-site .nav .psi-nav-backdrop { display: none; }
@media (max-width: 900px) {
  body.psi-motion-site .nav[data-psi-navigation="ready"] .menu {
    position: relative;
    z-index: 3;
    touch-action: manipulation;
    transition: color 180ms ease;
  }
  /* The original hamburger glyph still determines the button's exact geometry. */
  body.psi-motion-site .nav[data-psi-navigation="ready"] .menu[aria-expanded="true"] { color: transparent; }
  body.psi-motion-site .nav[data-psi-navigation="ready"] .menu::before,
  body.psi-motion-site .nav[data-psi-navigation="ready"] .menu::after {
    content: '';
    position: absolute;
    inset: 50% 11px auto;
    border-top: 1.5px solid #fff;
    opacity: 0;
    transform: rotate(0deg);
    transition: transform 240ms cubic-bezier(.22,1,.36,1), opacity 180ms ease;
  }
  body.psi-motion-site .nav[data-psi-navigation="ready"] .menu[aria-expanded="true"]::before { opacity: 1; transform: rotate(45deg); }
  body.psi-motion-site .nav[data-psi-navigation="ready"] .menu[aria-expanded="true"]::after { opacity: 1; transform: rotate(-45deg); }
  body.psi-motion-site .nav[data-psi-navigation="ready"] #site-nav {
    z-index: 2;
    box-shadow: 0 20px 35px #02080e40;
    transform-origin: center top;
  }
  /* Steady open/closed states retain the old .open display rules. */
  body.psi-motion-site .nav[data-psi-navigation="ready"] #site-nav[data-psi-nav-state="opening"],
  body.psi-motion-site .nav[data-psi-navigation="ready"] #site-nav[data-psi-nav-state="closing"] { display: flex; }
  body.psi-motion-site .nav .psi-nav-backdrop {
    display: block;
    position: fixed;
    z-index: 1;
    inset: 64px 0 0;
    background: #02081088;
    opacity: 0;
    cursor: default;
    pointer-events: none;
    touch-action: none;
    transition: opacity 210ms ease;
  }
  body.psi-motion-site .nav.psi-nav-open .psi-nav-backdrop { opacity: 1; pointer-events: auto; }
  body.psi-motion-site .nav .psi-nav-backdrop[hidden] { display: none; }
  body.psi-motion-site .nav[data-psi-nav-motion="off"] .menu,
  body.psi-motion-site .nav[data-psi-nav-motion="off"] .menu::before,
  body.psi-motion-site .nav[data-psi-nav-motion="off"] .menu::after,
  body.psi-motion-site .nav[data-psi-nav-motion="off"] .psi-nav-backdrop { transition: none; }
}
@media (prefers-reduced-motion: reduce) {
  body.psi-motion-site .nav #site-nav > a,
  body.psi-motion-site .nav .menu,
  body.psi-motion-site .nav .menu::before,
  body.psi-motion-site .nav .menu::after,
  body.psi-motion-site .nav .psi-nav-backdrop { transition: none; }
}

/* PSI 7.0.1 · only the transient, non-layout photo animation clone. */
body.psi-motion-site .psi-photo-travel{position:fixed;display:block;max-width:none;max-height:none;margin:0;padding:0;border:0;object-fit:contain;transform-origin:center center;pointer-events:none;user-select:none;-webkit-user-select:none;z-index:1001;box-shadow:none;will-change:transform,clip-path}
@media(prefers-reduced-motion:reduce){body.psi-motion-site .psi-photo-travel{animation:none!important;transition:none!important}}
