html{scroll-behavior:smooth}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1!important;transform:none!important;transition:none!important}
}

nav{transition:box-shadow .25s ease}
nav.is-scrolled{
  box-shadow:
    0 1px 0 rgba(0,0,0,0.06),
    0 4px 16px rgba(0,0,0,0.08),
    0 12px 32px rgba(0,0,0,0.06);
}

.logo{transition:opacity .2s ease}
.logo:hover{opacity:.55}

.nav-links a{position:relative;display:inline-block}
.nav-links a::after{
  content:'';position:absolute;left:0;bottom:-5px;width:100%;height:1px;
  background:currentColor;transform:scaleX(0);transform-origin:left center;
  transition:transform .22s ease;
}
.nav-links a:hover::after,.nav-links a.active::after{transform:scaleX(1)}

@keyframes micro-up{
  from{opacity:0;transform:translateY(12px)}
  to{opacity:1;transform:translateY(0)}
}

.page-header{animation:micro-up .55s ease backwards}
.page-eyebrow{animation:micro-up .55s .06s ease backwards}
.page-title{animation:micro-up .55s .12s ease backwards}

a.work-row{
  position:relative;
  border-left:2px solid transparent;
  transition:background .2s ease,padding .2s ease,border-color .2s ease,box-shadow .2s ease;
}
a.work-row:hover{
  border-left-color:var(--accent,#171717);
  box-shadow:
    inset 0 0 0 1px rgba(0,0,0,0.05),
    0 2px 8px rgba(0,0,0,0.06),
    0 12px 28px rgba(0,0,0,0.1);
}

.hero-right .work-list a.work-row{
  opacity:0;
  animation:micro-up .45s ease forwards;
}
.hero-right .work-list a.work-row:nth-child(1){animation-delay:.42s}
.hero-right .work-list a.work-row:nth-child(2){animation-delay:.5s}

a.project-card{
  transition:background .2s ease,transform .28s ease,box-shadow .28s ease;
}
a.project-card:hover{
  transform:translateY(-4px);
  box-shadow:
    0 4px 12px rgba(0,0,0,0.08),
    0 12px 32px rgba(0,0,0,0.12),
    0 24px 56px rgba(0,0,0,0.08);
}
.grid .project-card{animation:micro-up .5s ease backwards}
.grid .project-card:nth-child(1){animation-delay:.08s}
.grid .project-card:nth-child(2){animation-delay:.14s}
.grid .project-card:nth-child(3){animation-delay:.2s}
.grid .project-card:nth-child(4){animation-delay:.26s}

.intro-photo img{transition:transform .45s ease,box-shadow .45s ease}
.intro-photo:hover img{
  transform:scale(1.025);
  box-shadow:0 8px 24px rgba(0,0,0,0.12),0 20px 48px rgba(0,0,0,0.1);
}

.knit-stat,.knit-meta-item{
  transition:background .2s ease,transform .2s ease,box-shadow .2s ease;
  box-shadow:0 1px 3px rgba(0,0,0,0.04);
}
.knit-stat:hover,.knit-meta-item:hover{
  transform:translateY(-2px);
  box-shadow:0 4px 12px rgba(0,0,0,0.08),0 8px 20px rgba(0,0,0,0.06);
}

.travel-row{transition:background .2s ease,padding-left .22s ease,box-shadow .2s ease}
.travel-row:hover{
  padding-left:28px;
  box-shadow:inset 3px 0 0 rgba(0,0,0,0.08);
}

.container .section.reveal:nth-child(1){transition-delay:0s}
.container .section.reveal:nth-child(2){transition-delay:.06s}
.container .section.reveal:nth-child(3){transition-delay:.12s}
.container .section.reveal:nth-child(4){transition-delay:.18s}

.cs-back{display:inline-flex;align-items:center;gap:8px;transition:color .2s ease,transform .2s ease}
.cs-back:hover{transform:translateX(-3px)}

img[data-lightbox]{
  transition:transform .35s ease,box-shadow .35s ease;
  border-radius:4px;
}
img[data-lightbox]:hover{
  transform:scale(1.012);
  box-shadow:
    0 4px 12px rgba(0,0,0,0.08),
    0 16px 40px rgba(0,0,0,0.14),
    0 32px 64px rgba(0,0,0,0.08);
}

.sidebar a{transition:color .15s ease,padding-left .2s ease}
.sidebar a:hover{padding-left:8px}

.finding-row,.problem-row{transition:background .2s ease,transform .2s ease,box-shadow .2s ease}
.finding-row.is-visible:hover,.problem-row.is-visible:hover{
  transform:translateX(3px);
  box-shadow:-4px 0 0 rgba(0,0,0,0.06),0 2px 8px rgba(0,0,0,0.04);
}

.pw-btn,.gate-btn,.download-btn{
  transition:opacity .2s ease,transform .15s ease,background .2s ease,border-color .2s ease,box-shadow .2s ease;
  box-shadow:0 1px 3px rgba(0,0,0,0.06);
}
.pw-btn:hover,.gate-btn:hover,.download-btn:hover{
  transform:translateY(-1px);
  box-shadow:0 4px 12px rgba(0,0,0,0.1),0 8px 20px rgba(0,0,0,0.06);
}
.pw-btn:active,.gate-btn:active,.download-btn:active{transform:scale(.98)}

.footer-made span{transition:opacity .2s ease}
.footer-made:hover span{opacity:1!important}

.reveal{
  opacity:0;
  transform:translateY(14px);
  transition:opacity .5s ease,transform .5s ease;
}
.reveal.is-visible{opacity:1;transform:translateY(0)}

.work-section-label a{transition:color .2s ease,transform .2s ease;display:inline-block}
.work-section-label a:hover{transform:translate(2px,-2px)}

.doc{transition:box-shadow .3s ease,transform .3s ease}
.doc:hover{
  transform:translateY(-3px);
  box-shadow:
    0 4px 8px rgba(0,0,0,0.06),
    0 12px 24px rgba(0,0,0,0.1),
    0 24px 48px rgba(0,0,0,0.12),
    0 0 0 1px rgba(0,0,0,0.06)!important;
}
