/* Portfolio V2 motion layer — isolated from the production stylesheet */
:root{
  --v2-ease:cubic-bezier(.22,1,.36,1);
  --v2-fast:.28s;
  --v2-mid:.68s;
  --v2-slow:1.05s;
  --v2-black:#12120f;
  --v2-accent:#c8ff3d;
}

html.v2-motion-ready{scroll-behavior:smooth}
body.v2-motion-ready{overflow-x:hidden}
body.v2-intro-lock{overflow:hidden}

/* intro */
.v2-intro{
  position:fixed;
  inset:0;
  z-index:9999;
  display:grid;
  grid-template-rows:1fr auto;
  padding:32px 38px;
  background:var(--v2-black);
  color:#f2efe6;
  pointer-events:none;
  transform:translateY(0);
  transition:transform .9s var(--v2-ease),visibility 0s linear .9s;
}
.v2-intro.is-done{transform:translateY(-102%);visibility:hidden}
.v2-intro-main{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}
.v2-intro-wordmark{display:flex;flex-direction:column;font-weight:900;font-size:clamp(58px,10vw,164px);line-height:.76;letter-spacing:-.075em}
.v2-intro-wordmark span{display:block;overflow:hidden}
.v2-intro-wordmark i{display:block;font-style:normal;transform:translateY(115%);animation:v2IntroRise .72s var(--v2-ease) forwards}
.v2-intro-wordmark span:nth-child(2) i{animation-delay:.08s}
.v2-intro-count{align-self:flex-end;min-width:86px;text-align:right;font:700 13px/1 monospace;letter-spacing:.08em}
.v2-intro-meta{display:flex;justify-content:space-between;gap:24px;padding-top:22px;border-top:1px solid rgba(255,255,255,.24);font:600 11px/1.4 monospace;letter-spacing:.11em;text-transform:uppercase}
@keyframes v2IntroRise{to{transform:translateY(0)}}

/* global page curtain — one continuous upward sweep */
.v2-page-curtain{
  position:fixed;
  inset:0;
  z-index:9990;
  pointer-events:none;
  background:var(--v2-black);
  transform:translateY(101%);
  will-change:transform;
}
body.v2-page-switching .v2-page-curtain,
body.v2-page-reveal .v2-page-curtain{
  animation:v2CurtainSweep .84s var(--v2-ease) both;
}
@keyframes v2CurtainSweep{
  0%{transform:translateY(101%)}
  46%,54%{transform:translateY(0)}
  100%{transform:translateY(-101%)}
}

/* scroll progress */
.v2-scroll-progress{position:fixed;z-index:90;top:0;left:0;width:100%;height:2px;pointer-events:none}
.v2-scroll-progress i{display:block;width:100%;height:100%;background:var(--v2-accent);transform:scaleX(0);transform-origin:left center;will-change:transform}

/* custom cursor */
.v2-cursor{
  position:fixed;
  z-index:9998;
  top:0;
  left:0;
  width:64px;
  height:64px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--v2-accent);
  color:var(--v2-black);
  font:800 10px/1 monospace;
  letter-spacing:.06em;
  pointer-events:none;
  opacity:0;
  transform:translate(-50%,-50%) scale(.25);
  transition:opacity .2s,transform .24s var(--v2-ease);
  mix-blend-mode:normal;
}
.v2-cursor.is-visible{opacity:1;transform:translate(-50%,-50%) scale(.34)}
.v2-cursor.is-active{transform:translate(-50%,-50%) scale(1)}
.v2-cursor span{opacity:0;transition:opacity .16s}
.v2-cursor.is-active span{opacity:1}

/* navigation polish */
.v2-motion-ready .site-header{transition:min-height .3s var(--v2-ease),background .3s}
.v2-motion-ready .site-header nav button{position:relative;overflow:hidden}
.v2-motion-ready .site-header nav button:after{content:"";position:absolute;left:14px;right:14px;bottom:6px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .32s var(--v2-ease)}
.v2-motion-ready .site-header nav button:hover:after{transform:scaleX(1);transform-origin:left}
.v2-motion-ready .site-header nav button.active:after{display:none}

/* homepage brand-first hero */
.v2-home .hero{position:relative;border-bottom:0}
.v2-home .hero-copy{position:relative;min-height:calc(100svh - 84px);padding-top:34px;padding-bottom:42px;justify-content:flex-start}
.v2-home .eyebrow{margin-bottom:auto}
.v2-home .role-line{margin-top:34px;margin-bottom:10px;text-transform:uppercase;letter-spacing:.08em}
.v2-home .hero h1.v2-hero-title{display:flex;flex-direction:column;margin:0 0 34px;max-width:none;font-size:clamp(76px,12.2vw,188px);line-height:.74;letter-spacing:-.075em;font-weight:900;text-transform:uppercase}
.v2-home .hero h1.v2-hero-title .v2-line{display:block;overflow:hidden;padding-bottom:.06em}
.v2-home .hero h1.v2-hero-title .v2-line>span{display:block;transform:translateY(112%);animation:v2HeroRise 1s var(--v2-ease) forwards}
.v2-home .hero h1.v2-hero-title .v2-line:nth-child(2)>span{animation-delay:.08s}
@keyframes v2HeroRise{to{transform:translateY(0)}}
.v2-home .hero-intro{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(240px,.6fr);gap:8vw;max-width:none;margin:0 0 30px;padding-top:18px;border-top:1px solid var(--ink);font-size:clamp(15px,1.3vw,18px)}
.v2-home .hero-intro:after{content:"SYSTEM / GAMEPLAY / LEVEL / NARRATIVE";align-self:start;justify-self:end;max-width:250px;color:var(--muted);font:700 11px/1.55 monospace;letter-spacing:.1em;text-align:right}
.v2-home .hero-actions{margin-top:auto}
.v2-home .hero-actions button{position:relative;overflow:hidden;transition:color .34s var(--v2-ease),background .34s var(--v2-ease),transform .34s var(--v2-ease)}
.v2-home .hero-actions button:hover{transform:translateY(-3px)}

/* hero media becomes an exhibition panel */
.v2-home .hero-feature.hero-carousel{margin-top:0;border-color:var(--ink);box-shadow:0 18px 60px rgba(23,23,20,.1)}
.v2-home .hero-carousel .hero-media{will-change:transform}
.v2-home .hero-carousel .hero-caption>strong{letter-spacing:-.035em}
.v2-home .hero-carousel .hero-slide{transition:opacity .72s var(--v2-ease),visibility .72s}
.v2-home .hero-carousel .hero-slide.is-active .hero-media{animation:v2ImageIn 1.05s var(--v2-ease) both}
@keyframes v2ImageIn{from{clip-path:inset(0 0 100% 0);transform:scale(1.035)}to{clip-path:inset(0 0 0 0);transform:scale(1)}}

/* metric rail */
.v2-home .proof-strip{margin:0 5.2vw;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.v2-home .proof-strip div{min-height:164px;padding:24px 0 22px 22px}
.v2-home .proof-strip b{font-size:clamp(42px,5vw,72px);line-height:.9}
.v2-home .proof-strip span{max-width:150px}

/* selected work — oversized editorial list */
.v2-home .home-selected{padding-top:120px;padding-bottom:150px}
.v2-home .home-selected .section-heading{margin-bottom:64px}
.v2-home .home-selected .section-heading h2{max-width:900px;white-space:normal;font-size:clamp(42px,5vw,76px);line-height:1.02}
.v2-home .home-project-index{border-top:1px solid var(--ink)}
.v2-home .home-project-item{position:relative;grid-template-columns:54px minmax(230px,.7fr) minmax(280px,1fr) minmax(210px,.65fr) 28px;min-height:196px;padding:22px 10px 22px 0;overflow:hidden;transition:padding .48s var(--v2-ease),background .35s}
.v2-home .home-project-item:before{content:"";position:absolute;inset:0;background:var(--v2-accent);transform:scaleY(0);transform-origin:bottom;transition:transform .44s var(--v2-ease);z-index:-1}
.v2-home .home-project-item:hover:before,.v2-home .home-project-item:focus-visible:before{transform:scaleY(1)}
.v2-home .home-project-item:hover,.v2-home .home-project-item:focus-visible{padding-left:18px;background:transparent}
.v2-home .home-project-thumb{height:148px;transform:scale(.96);transition:transform .55s var(--v2-ease)}
.v2-home .home-project-item:hover .home-project-thumb{transform:scale(1)}
.v2-home .home-project-thumb img{transition:transform .7s var(--v2-ease)}
.v2-home .home-project-item:hover .home-project-thumb img{transform:scale(1.035)}
.v2-home .home-project-main strong{font-size:clamp(32px,3.4vw,54px);letter-spacing:-.045em}
.v2-home .home-project-arrow{font-size:24px;transition:transform .42s var(--v2-ease)}
.v2-home .home-project-item:hover .home-project-arrow{transform:translate(5px,-5px)}

/* reusable reveals */
.v2-reveal{opacity:0;transform:translateY(46px);transition:opacity .78s var(--v2-ease),transform .78s var(--v2-ease)}
.v2-reveal.is-visible{opacity:1;transform:translateY(0)}
.v2-reveal[data-v2-delay="1"]{transition-delay:.07s}
.v2-reveal[data-v2-delay="2"]{transition-delay:.14s}
.v2-reveal[data-v2-delay="3"]{transition-delay:.21s}

/* subtle card life outside homepage too */
.v2-motion-ready .project-card{transition:transform .42s var(--v2-ease),box-shadow .42s var(--v2-ease)}
.v2-motion-ready .project-card:hover{transform:translateY(-5px);box-shadow:0 18px 44px rgba(23,23,20,.09)}
.v2-motion-ready .project-card .project-image,.v2-motion-ready .project-card .project-video{transition:transform .7s var(--v2-ease)}
.v2-motion-ready .project-card:hover .project-image{transform:scale(1.018)}

@media (hover:hover) and (pointer:fine){
  .v2-motion-ready a,.v2-motion-ready button{cursor:none}
}

@media(max-width:820px){
  .v2-intro{padding:24px 20px}
  .v2-intro-wordmark{font-size:clamp(54px,18vw,108px)}
  .v2-intro-meta{font-size:9px}
  .v2-cursor{display:none}
  .v2-home .hero-copy{min-height:auto;padding:34px 24px 38px}
  .v2-home .eyebrow{margin-bottom:34px}
  .v2-home .hero h1.v2-hero-title{font-size:clamp(58px,17vw,116px);line-height:.78;margin-bottom:26px}
  .v2-home .hero-intro{grid-template-columns:1fr;gap:12px}
  .v2-home .hero-intro:after{justify-self:start;text-align:left}
  .v2-home .proof-strip{margin:0}
  .v2-home .home-selected{padding-top:82px;padding-bottom:100px}
  .v2-home .home-project-item{grid-template-columns:36px 106px minmax(0,1fr) 20px;min-height:134px;padding:16px 0}
  .v2-home .home-project-thumb{height:90px}
  .v2-home .home-project-main strong{font-size:var(--type-body)}
  .v2-home .home-project-item:hover{padding-left:10px}
}

@media(max-width:540px){
  .v2-home .hero h1.v2-hero-title{font-size:clamp(52px,16vw,92px)}
  .v2-home .proof-strip div{min-height:132px;padding:20px 14px}
  .v2-home .proof-strip b{font-size:38px}
  .v2-home .home-selected .section-heading h2{font-size:40px}
}

@media(prefers-reduced-motion:reduce){
  .v2-intro{display:none!important}
  .v2-page-curtain,.v2-cursor{display:none!important}
  .v2-reveal{opacity:1!important;transform:none!important}
  .v2-home .hero h1.v2-hero-title .v2-line>span{transform:none!important;animation:none!important}
  .v2-home .hero-carousel .hero-slide.is-active .hero-media{animation:none!important}
}
