/* ============================================================
   puerta — architectural bureau · monochrome, matched to Figma
   tokens sampled from the design: bg #FAFAFA · ink #333335
   ============================================================ */
:root{
  --paper:   #FAFAFA;
  --ink:     #333335;
  --ink-2:   #2A2A2C;
  --gray:    #8E8E8E;
  --gray-2:  #B7B7B7;
  --line:    #E4E4E4;
  --line-2:  #D2D2D2;
  --red:     #E2342A;   /* suprematist accent */
  --black:   #161616;

  --font: "Inter", system-ui, -apple-system, sans-serif;

  --pad: clamp(20px, 4.4vw, 64px);
  --maxw: 1440px;

  --ease: cubic-bezier(.22,.61,.36,1);
  --slow: cubic-bezier(.16,1,.3,1);
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:var(--font);
  background:var(--paper);
  color:var(--ink);
  font-size:clamp(14px,1vw,16px);
  line-height:1.5;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
::selection{background:var(--ink);color:var(--paper)}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}
h1,h2,h3{font-weight:500;letter-spacing:-.01em}

/* scroll progress */
.scroll-progress{position:fixed;top:0;left:0;height:2px;width:0;background:var(--ink);z-index:1000;transition:width .1s linear}

/* ---------- header ---------- */
.header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:26px var(--pad);color:var(--ink);
  transition:padding .4s var(--ease),background .4s,box-shadow .4s;
}
.header.solid{
  background:color-mix(in srgb,var(--paper) 90%,transparent);
  backdrop-filter:blur(12px);padding:16px var(--pad);
  box-shadow:0 1px 0 var(--line);
}
.logo{display:flex;align-items:center;gap:9px;font-size:1.15rem;font-weight:500;letter-spacing:.01em}
.logo__mark{flex:none;transition:transform .5s var(--slow)}
.logo:hover .logo__mark{transform:translateY(-2px)}
.nav{display:flex;gap:42px}
.nav__link{position:relative;font-size:.92rem;color:var(--ink);padding:3px 0}
.nav__link::after{content:"";position:absolute;left:0;bottom:-1px;width:0;height:1px;background:currentColor;transition:width .4s var(--ease)}
.nav__link:hover::after{width:100%}

.burger{display:none;width:30px;height:16px;position:relative}
.burger span{position:absolute;left:0;width:100%;height:1.6px;background:currentColor;transition:.4s var(--ease)}
.burger span:first-child{top:2px}
.burger span:last-child{bottom:2px}
.burger[aria-expanded="true"] span:first-child{top:7px;transform:rotate(45deg)}
.burger[aria-expanded="true"] span:last-child{bottom:7px;transform:rotate(-45deg)}

/* ---------- fullscreen menu ---------- */
.menu-overlay{position:fixed;inset:0;z-index:90;background:var(--ink-2);color:var(--paper);
  display:flex;flex-direction:column;justify-content:center;padding:var(--pad);
  clip-path:inset(0 0 100% 0);transition:clip-path .8s var(--slow);pointer-events:none}
.menu-overlay.open{clip-path:inset(0 0 0 0);pointer-events:auto}
.menu-overlay__nav{display:flex;flex-direction:column;gap:.1em}
.menu-link{font-size:clamp(2.2rem,8vw,6rem);font-weight:500;line-height:1.06;display:flex;align-items:baseline;gap:.35em;overflow:hidden}
.menu-link::before{content:attr(data-i);font-size:.8rem;opacity:.4;align-self:flex-start;margin-top:1em}
.menu-link span{display:inline-block;transform:translateY(110%);transition:transform .7s var(--slow)}
.menu-overlay.open .menu-link span{transform:translateY(0)}
.menu-overlay.open .menu-link:nth-child(1) span{transition-delay:.10s}
.menu-overlay.open .menu-link:nth-child(2) span{transition-delay:.17s}
.menu-overlay.open .menu-link:nth-child(3) span{transition-delay:.24s}
.menu-overlay.open .menu-link:nth-child(4) span{transition-delay:.31s}
.menu-link:hover span{opacity:.6}
.menu-overlay__foot{display:flex;gap:40px;margin-top:8vh;font-size:1rem;opacity:.65}
.menu-overlay__foot a:hover{opacity:1}

/* ---------- shared ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-size:.9rem;padding:13px 30px;border:1px solid var(--line-2);border-radius:40px;
  color:var(--ink);transition:.4s var(--ease)}
.btn:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.link-more{display:inline-flex;align-items:center;gap:7px;font-size:.92rem;color:var(--gray);transition:color .3s,gap .3s}
.link-more:hover{color:var(--ink);gap:11px}
.reveal{opacity:0;transform:translateY(26px);transition:opacity .9s var(--slow),transform .9s var(--slow)}
.reveal.in{opacity:1;transform:none}

/* ============== HERO IMAGE ============== */
.hero{width:100%;height:clamp(420px,88vh,960px);overflow:hidden}
.hero__img{width:100%;height:100%;object-fit:cover;
  transform:scale(1.06);opacity:0;transition:transform 1.6s var(--slow),opacity 1.2s ease}
.hero.in .hero__img{transform:scale(1);opacity:1}

/* ============== STATEMENT ============== */
.statement{position:relative;max-width:var(--maxw);margin:0 auto;width:100%;
  padding:clamp(70px,12vw,170px) var(--pad);min-height:60vh;
  display:flex;align-items:center;justify-content:flex-end}
.statement__scroll{position:absolute;left:var(--pad);top:50%;
  transform:translateY(-50%) rotate(180deg);writing-mode:vertical-rl;
  font-size:.72rem;letter-spacing:.18em;color:var(--gray);
  padding-left:14px}
.statement__scroll::after{content:"";position:absolute;left:5px;top:-46px;width:1px;height:38px;background:var(--line-2)}
.statement__title{text-align:right;font-weight:600;
  font-size:clamp(2.1rem,6.6vw,6.2rem);line-height:1.02;letter-spacing:-.02em;max-width:14ch}
.statement__title .line{display:block;overflow:hidden;padding-bottom:.02em}
.statement__title .word{display:inline-block;transform:translateY(110%);transition:transform 1s var(--slow)}
.statement.in .word{transform:translateY(0)}
.statement.in .line:nth-child(2) .word{transition-delay:.08s}
.statement.in .line:nth-child(3) .word{transition-delay:.16s}

/* ============== ABOUT ============== */
.about{max-width:var(--maxw);margin:0 auto;padding:clamp(60px,9vw,140px) var(--pad);
  display:grid;grid-template-columns:1fr 1.35fr;gap:clamp(30px,6vw,90px);align-items:start}
.about__h{font-size:clamp(1.8rem,3.6vw,3.2rem);font-weight:500}
.about__col{display:flex;flex-direction:column;align-items:center;gap:clamp(34px,4vw,58px)}
.about__text{text-align:justify;color:var(--ink);font-size:clamp(.95rem,1.05vw,1.05rem);
  line-height:1.62;max-width:62ch;align-self:stretch}
.about__col .btn{align-self:center}

/* ============== PROJECTS ============== */
.projects{max-width:var(--maxw);margin:0 auto;padding:clamp(40px,5vw,70px) var(--pad) clamp(70px,10vw,150px)}
.projects__head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:clamp(30px,4vw,56px)}
.projects__h{font-size:clamp(1.8rem,3.6vw,3.2rem);font-weight:500}
.slider__viewport{overflow:hidden}
.slider__track{display:flex;gap:18px;transition:transform .9s var(--slow)}
.slide{flex:0 0 calc(100% - 56px);aspect-ratio:16/9.4;overflow:hidden;background:#eee}
.slide img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.02);
  transform:scale(1.05);transition:transform 1.1s var(--slow),filter .6s ease}
.slide.is-active img{transform:scale(1)}
.slide.is-active:hover img{filter:grayscale(0)}

.projects__foot{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-top:clamp(22px,3vw,40px);flex-wrap:wrap}
.proj-caption{display:flex;flex-direction:column;gap:5px;min-width:260px}
.proj-caption__idx{font-size:.82rem;color:var(--gray)}
.proj-caption__name{font-size:clamp(1.5rem,3vw,2.6rem);font-weight:500;line-height:1.05;margin:2px 0 4px}
.proj-caption__meta{font-size:.88rem;color:var(--gray);margin-bottom:14px}
.proj-caption .btn{align-self:flex-start;padding:11px 26px}
.slider__nav{display:flex;align-items:center;gap:26px;padding-bottom:6px}
.slider__dots{display:flex;gap:8px}
.slider__dots button{width:8px;height:8px;border-radius:50%;background:var(--line-2);transition:.4s var(--ease)}
.slider__dots button.active{background:var(--ink);transform:scale(1.15)}
.slider__arrows{display:flex;gap:10px}
.arrow{width:50px;height:50px;border:1px solid var(--line-2);border-radius:50%;display:grid;place-items:center;color:var(--ink);transition:.4s var(--ease)}
.arrow:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.arrow:active{transform:scale(.94)}

/* ============== CONTACTS ============== */
.contacts{max-width:var(--maxw);margin:0 auto;padding:clamp(50px,8vw,120px) var(--pad) clamp(30px,4vw,60px)}
.contacts__top{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:clamp(40px,6vw,90px)}
.contacts__h{font-size:clamp(2.2rem,6vw,5.2rem);font-weight:500;line-height:1;letter-spacing:-.02em}
.to-top{display:inline-flex;align-items:center;gap:7px;font-size:.92rem;color:var(--gray);transition:.3s;white-space:nowrap}
.to-top:hover{color:var(--ink);gap:11px}
.contacts__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,70px);margin-bottom:clamp(40px,5vw,70px)}
.contacts__cap{display:block;font-size:.95rem;color:var(--gray);margin-bottom:20px}
.contacts__line{display:block;font-size:clamp(1.05rem,1.5vw,1.35rem);line-height:1.7;width:fit-content;
  transition:color .3s,transform .4s var(--ease)}
.contacts__line:hover{color:#000;transform:translateX(6px)}
.contacts__addr{font-size:clamp(1.05rem,1.5vw,1.35rem);line-height:1.6}
.contacts__map{display:block;position:relative;width:100%;height:clamp(180px,26vw,340px);overflow:hidden;margin-bottom:clamp(30px,4vw,54px)}
.contacts__map img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05);transition:filter .5s,transform 4s var(--slow)}
.contacts__map:hover img{filter:grayscale(.4)}
.contacts__map-cta{position:absolute;right:18px;bottom:14px;background:var(--paper);color:var(--ink);
  font-size:.85rem;padding:8px 16px;border-radius:30px;box-shadow:0 4px 18px rgba(0,0,0,.1)}
.search{display:flex;flex-direction:column;gap:6px;border-bottom:1px solid var(--line-2);padding-bottom:8px}
.search__icon{display:inline-flex;align-items:center;gap:7px;align-self:flex-start;font-size:1rem;color:var(--ink)}
.search input{border:none;outline:none;background:none;font:inherit;font-size:1rem;color:var(--ink);padding:6px 0}

/* ============== FOOTER ============== */
.footer{max-width:var(--maxw);margin:0 auto;padding:clamp(24px,3vw,44px) var(--pad) clamp(30px,4vw,50px);
  display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap}
.footer__left{display:flex;flex-direction:column;gap:10px;font-size:.84rem;color:var(--gray)}
.footer__cookies{align-self:flex-start;color:var(--gray);text-decoration:underline;text-underline-offset:3px}
.footer__cookies:hover{color:var(--ink)}
.footer__socials{display:flex;gap:12px}
.footer__socials a{width:38px;height:38px;border:1px solid var(--line-2);border-radius:50%;display:grid;place-items:center;color:var(--gray);transition:.35s var(--ease)}
.footer__socials a:hover{background:var(--ink);color:var(--paper);border-color:var(--ink);transform:translateY(-3px)}

/* ============== RESPONSIVE ============== */
@media(max-width:860px){
  .nav{display:none}
  .burger{display:block}
  .statement{justify-content:center;min-height:46vh}
  .statement__title{text-align:center;max-width:none}
  .statement__scroll{display:none}
  .about{grid-template-columns:1fr;gap:22px}
  .about__col{align-items:stretch}
  .about__col .btn{align-self:flex-start}
  .slide{flex:0 0 calc(100% - 32px)}
  .contacts__grid{grid-template-columns:1fr;gap:34px}
  .projects__foot{flex-direction:column;align-items:stretch}
  .slider__nav{justify-content:space-between}
}
@media(max-width:520px){
  .hero{height:62vh}
  .projects__head{flex-direction:column;align-items:flex-start;gap:10px}
  .footer{flex-direction:column;align-items:flex-start}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition-duration:.01ms!important}
  .reveal{opacity:1;transform:none}
  .statement__title .word,.menu-link span,.hero__img{transform:none;opacity:1}
  .intro{display:none!important}
}

/* ============================================================
   SUPREMATIST INTRO
   ============================================================ */
.intro{position:fixed;inset:0;z-index:2000;background:var(--paper);display:grid;place-items:center;overflow:hidden}
.intro.exit{animation:introExit .85s cubic-bezier(.76,0,.24,1) forwards}
@keyframes introExit{to{clip-path:inset(0 0 100% 0)}}
.intro.hidden{display:none}
.intro__stage{position:relative;width:min(520px,80vw);height:min(380px,56vh)}
.sup{position:absolute;animation-duration:1.05s;animation-timing-function:cubic-bezier(.16,1,.3,1);animation-fill-mode:both}
.sq-black{width:clamp(70px,12vw,120px);aspect-ratio:1;background:var(--black);left:10%;top:26%;animation-name:supA;animation-delay:.05s}
.sq-red{width:clamp(40px,7vw,68px);aspect-ratio:1;background:var(--red);left:60%;top:56%;animation-name:supB;animation-delay:.2s}
.circle{width:clamp(54px,9vw,92px);aspect-ratio:1;border-radius:50%;background:var(--black);left:62%;top:8%;animation-name:supC;animation-delay:.32s}
.bar{width:clamp(160px,26vw,280px);height:clamp(10px,1.4vw,16px);background:var(--black);left:6%;top:74%;transform-origin:left center;animation-name:supD;animation-delay:.12s}
.line{width:clamp(120px,18vw,200px);height:3px;background:var(--red);left:38%;top:20%;animation-name:supE;animation-delay:.44s}
.dot{width:16px;aspect-ratio:1;border-radius:50%;background:var(--red);left:26%;top:14%;animation-name:supB;animation-delay:.54s}
@keyframes supA{from{opacity:0;transform:translate(-180px,-140px) rotate(-24deg)}to{opacity:1;transform:none}}
@keyframes supB{from{opacity:0;transform:translate(150px,130px) rotate(22deg) scale(.4)}to{opacity:1;transform:none}}
@keyframes supC{from{opacity:0;transform:translate(140px,-90px) scale(.3)}to{opacity:1;transform:none}}
@keyframes supD{from{opacity:0;transform:translateX(-220px) rotate(-40deg) scaleX(.15)}to{opacity:1;transform:rotate(-19deg)}}
@keyframes supE{from{opacity:0;transform:translateY(-70px) scaleX(0)}to{opacity:1;transform:rotate(7deg)}}
.intro__word{position:absolute;left:50%;top:104%;transform:translate(-50%,0);z-index:5;
  font-size:clamp(1.8rem,7vw,4.2rem);font-weight:600;letter-spacing:.02em;color:var(--black);white-space:nowrap;
  opacity:0;animation:wordIn .85s cubic-bezier(.16,1,.3,1) .5s forwards}
@keyframes wordIn{from{opacity:0;letter-spacing:.45em;filter:blur(4px)}to{opacity:1;letter-spacing:.02em;filter:none}}

/* ============================================================
   HERO OVERLAY + SHAPES
   ============================================================ */
.hero{position:relative}
.hero__shade{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(0,0,0,.30) 0%,rgba(0,0,0,0) 34%,rgba(0,0,0,0) 50%,rgba(0,0,0,.50) 100%)}
.hero__shapes{position:absolute;inset:0;z-index:2;pointer-events:none}
.hs{position:absolute;will-change:transform;animation:floaty 7s ease-in-out infinite}
.hs--sq{width:clamp(40px,5vw,72px);aspect-ratio:1;background:var(--red);top:20%;right:13%;transform:rotate(12deg)}
.hs--circle{width:clamp(32px,4vw,52px);aspect-ratio:1;border:2px solid #fff;border-radius:50%;top:31%;right:23%;animation-delay:-2s}
.hs--bar{width:clamp(80px,11vw,140px);height:clamp(6px,.9vw,9px);background:var(--black);top:15%;right:5%;transform:rotate(-24deg);animation-delay:-4s}
@keyframes floaty{0%,100%{translate:0 0}50%{translate:0 -14px}}
.hero__overlay{position:absolute;left:var(--pad);bottom:clamp(30px,5vw,66px);z-index:3;color:#fff}
.hero__eyebrow{display:inline-block;font-size:.85rem;letter-spacing:.06em;opacity:.92;padding-left:24px;position:relative}
.hero__eyebrow::before{content:"";position:absolute;left:0;top:50%;width:16px;height:2px;background:var(--red)}
.hero__name{font-size:clamp(3.4rem,13vw,11rem);font-weight:600;line-height:.86;letter-spacing:-.03em;margin:.12em 0 .18em}
.hero__sub{font-size:clamp(1rem,1.7vw,1.45rem);opacity:.95;max-width:22ch;font-weight:400}
.hero.in .hero__overlay>*{animation:heroUp 1s cubic-bezier(.16,1,.3,1) both}
.hero.in .hero__eyebrow{animation-delay:.15s}
.hero.in .hero__name{animation-delay:.26s}
.hero.in .hero__sub{animation-delay:.4s}
@keyframes heroUp{from{opacity:0;transform:translateY(34px)}to{opacity:1;transform:none}}

/* ============================================================
   PROJECT DETAIL OVERLAY
   ============================================================ */
.pv{position:fixed;inset:0;z-index:1500;background:var(--paper);overflow-y:auto;
  clip-path:inset(0 0 100% 0);transition:clip-path .8s cubic-bezier(.76,0,.24,1);pointer-events:none}
.pv.open{clip-path:inset(0 0 0 0);pointer-events:auto}
.pv__bars{position:absolute;top:0;right:var(--pad);display:flex;gap:8px;z-index:3}
.pv__bars i{display:block;width:14px;height:46px}
.pv__bars i:nth-child(1){background:var(--red)}
.pv__bars i:nth-child(2){background:var(--black)}
.pv__bars i:nth-child(3){background:var(--line-2)}
.pv__head{position:sticky;top:0;z-index:4;display:flex;align-items:center;justify-content:space-between;
  padding:22px var(--pad);background:color-mix(in srgb,var(--paper) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.pv__back{display:inline-flex;align-items:center;gap:8px;font-size:.95rem;color:var(--ink);transition:gap .3s}
.pv__back:hover{gap:13px}
.pv__brand{font-weight:500;letter-spacing:.02em}
.pv__inner{max-width:var(--maxw);margin:0 auto;padding:clamp(30px,5vw,70px) var(--pad) clamp(50px,8vw,110px);
  opacity:0;transform:translateY(30px);transition:opacity .7s var(--slow) .25s,transform .7s var(--slow) .25s}
.pv.open .pv__inner{opacity:1;transform:none}
.pv__top{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:clamp(24px,3vw,44px)}
.pv__code{display:block;font-size:clamp(1.8rem,4vw,3.4rem);font-weight:600;letter-spacing:-.01em}
.pv__tag{display:block;color:var(--gray);font-size:clamp(.95rem,1.3vw,1.15rem);margin-top:6px}
.pv__idx{font-size:1rem;color:var(--gray);font-variant-numeric:tabular-nums;white-space:nowrap}
.pv__stage{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(20px,3vw,44px);align-items:stretch}
.pv__draw{background:#fff;border:1px solid var(--line);padding:clamp(16px,2.4vw,34px);display:grid;place-items:center}
.pv__draw img{width:100%;height:auto;mix-blend-mode:multiply}
.pv__photo{overflow:hidden}
.pv__photo img{width:100%;height:100%;object-fit:cover;min-height:320px}
.pv__meta{display:grid;grid-template-columns:1.4fr 1fr;gap:clamp(24px,4vw,60px);margin-top:clamp(28px,4vw,52px);align-items:start}
.pv__desc{font-size:clamp(1.05rem,1.5vw,1.4rem);line-height:1.5;font-weight:400}
.pv__specs{list-style:none;display:flex;flex-direction:column}
.pv__specs li{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-top:1px solid var(--line);font-size:.98rem}
.pv__specs li span:first-child{color:var(--gray)}
.pv__nav{display:flex;align-items:center;gap:22px;margin-top:clamp(34px,5vw,64px)}
.pv__dots{display:flex;gap:8px;flex:1}
.pv__dots button{width:30px;height:3px;background:var(--line-2);border-radius:2px;transition:.4s var(--ease)}
.pv__dots button.active{background:var(--ink);width:48px}
.pv .arrow{flex:none}
.pv__hero{width:100%;aspect-ratio:16/9;overflow:hidden;margin-bottom:clamp(28px,4vw,52px);background:#eee}
.pv__hero img{width:100%;height:100%;object-fit:cover}
.pv__intro{max-width:62ch;color:var(--gray);font-size:clamp(1rem,1.3vw,1.2rem);line-height:1.55;margin-bottom:clamp(24px,3vw,40px)}
.pv__desc p{margin-bottom:.9em}
.pv__desc p:last-child{margin-bottom:0}
.pv__quote{margin-top:1.3em;padding-left:18px;border-left:3px solid var(--red);
  font-size:clamp(1.05rem,1.5vw,1.4rem);font-style:italic;line-height:1.35;color:var(--ink)}
/* full project page sections */
.pv__statement{border:none;padding:0;margin:clamp(60px,9vw,130px) 0;max-width:18ch;
  font-size:clamp(1.7rem,3.6vw,3.2rem);font-weight:500;line-height:1.1;letter-spacing:-.01em}
.pv__statement--right{margin-left:auto;text-align:right}
.pvb{margin:clamp(50px,7vw,100px) 0}
.pvb__h{font-size:clamp(1.4rem,2.4vw,2.1rem);font-weight:500;margin-bottom:clamp(20px,2.6vw,36px)}
.pvb__plate{background:#fff;border:1px solid var(--line);overflow:hidden}
.pvb__plate img{width:100%;height:auto;display:block}
.pvb__plate--plan{display:flex;justify-content:center;padding:clamp(20px,3.5vw,50px)}
.pvb__plate--plan img{width:auto;max-width:100%;max-height:72vh}
.pv__shot{margin:clamp(40px,5vw,80px) 0;overflow:hidden}
.pv__shot img{width:100%;height:auto;display:block}
.pv__backrow{display:flex;align-items:center;justify-content:space-between;gap:20px;
  margin-top:clamp(50px,7vw,110px);padding-top:30px;border-top:1px solid var(--line);flex-wrap:wrap}
.pv__backlink{font-size:1rem;color:var(--ink);display:inline-flex;align-items:center;gap:8px;transition:gap .3s}
.pv__backlink:hover{gap:13px}
.pv__vtag{font-size:.9rem;color:var(--gray);margin-right:auto;white-space:nowrap}
.pv__transition{position:fixed;inset:0;z-index:1700;pointer-events:none;display:flex}
.pv__transition i{flex:1;background:var(--black);transform:scaleY(0);transform-origin:bottom}
.pv__transition i:nth-child(2){background:var(--red)}
.pv__transition.run i{animation:wipe 1s cubic-bezier(.76,0,.24,1) both}
.pv__transition.run i:nth-child(1){animation-delay:0s}
.pv__transition.run i:nth-child(2){animation-delay:.07s}
.pv__transition.run i:nth-child(3){animation-delay:.14s}
@keyframes wipe{0%{transform:scaleY(0);transform-origin:bottom}45%{transform:scaleY(1);transform-origin:bottom}55%{transform:scaleY(1);transform-origin:top}100%{transform:scaleY(0);transform-origin:top}}

@media(max-width:860px){
  .pv__stage{grid-template-columns:1fr}
  .pv__meta{grid-template-columns:1fr;gap:26px}
  .hero__overlay{right:var(--pad)}
}
