/* Opening typography: one centred lockup, followed by a curved rising curtain. */
.opening-intro{display:none;position:fixed;inset:0;z-index:200;overflow:hidden;isolation:isolate;touch-action:none;user-select:none;--intro-length:4.7s;--intro-ease:cubic-bezier(.76,0,.24,1)}
.intro-pending{--intro-delay:.82s}
.intro-pending .opening-intro{display:block}
.intro-paper{position:absolute;inset:0;background:#fff}
.intro-curtain{position:absolute;inset:-40px -50%;background:#000;border-radius:50% / 32vh;transform:translate3d(0,110%,0);will-change:transform,border-radius}
.intro-type{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;mix-blend-mode:difference;pointer-events:none}
.intro-logo-clip{clip-path:inset(0 -50%);font:850 clamp(76px,12.5vw,210px)/1 Inter,Arial,sans-serif;letter-spacing:-.065em}
.intro-logo{display:block;transform:translate3d(0,130%,0);padding:0 .08em 0 .015em}
.intro-word-clip{position:relative;width:90%;height:1.25em;overflow:hidden;text-align:center;font:italic 500 clamp(30px,3.542vw,60px)/1 Mark,Georgia,serif;letter-spacing:-.02em}
.intro-word{position:absolute;inset:0;display:grid;place-items:center;white-space:nowrap;opacity:0}
.intro-word-base{display:block}
.intro-word::before,.intro-word::after{content:attr(data-word);position:absolute;inset:0;display:grid;place-items:center;opacity:0;pointer-events:none}
.intro-word.is-glitching .intro-word-base{transform:skewX(var(--glitch-skew,0deg)) scaleX(var(--glitch-scale,1));clip-path:polygon(0 0,100% 0,100% 29%,0 29%,0 43%,100% 43%,100% 63%,0 63%,0 76%,100% 76%,100% 100%,0 100%)}
.intro-word.is-glitching::before{opacity:1;clip-path:inset(29% 0 57%);transform:translate3d(var(--glitch-a,0px),0,0)}
.intro-word.is-glitching::after{opacity:1;clip-path:inset(63% 0 24%);transform:translate3d(var(--glitch-b,0px),0,0)}
.intro-counter{position:absolute;bottom:max(28px,env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);color:#fff;mix-blend-mode:difference;font:400 10px/1 Inter,Arial,sans-serif;font-variant-numeric:tabular-nums;opacity:0}
.intro-pending .site-shell{pointer-events:none}
.intro-running .intro-logo{animation:woovoi-intro-logo-in .846s cubic-bezier(.16,1,.3,1) .094s both,woovoi-intro-logo-out .658s cubic-bezier(.76,0,.24,1) calc(3.102s + var(--intro-delay)) forwards}
.intro-running .intro-word{animation:woovoi-intro-word var(--intro-length) linear var(--intro-delay) both}
.intro-running .intro-curtain{animation:woovoi-intro-curtain var(--intro-length) linear var(--intro-delay) both}
.intro-running .intro-paper{animation:woovoi-intro-paper var(--intro-length) steps(1,end) var(--intro-delay) both}
.intro-running .intro-counter{animation:woovoi-intro-counter var(--intro-length) linear var(--intro-delay) both}
.intro-running .site-shell{animation:woovoi-intro-site 1.05s cubic-bezier(.16,1,.3,1) calc(3.65s + var(--intro-delay)) both}
.intro-pending .cursor-label{visibility:hidden}
@keyframes woovoi-intro-logo-in{from{transform:translate3d(0,130%,0)}to{transform:translate3d(0,0,0)}}
@keyframes woovoi-intro-logo-out{from{transform:translate3d(0,0,0)}to{transform:translate3d(0,-135%,0)}}
@keyframes woovoi-intro-word{
  0%,8.93617%{opacity:0}
  12%,69%{opacity:1}
  81%,100%{opacity:0}
}
@keyframes woovoi-intro-curtain{
  0%,50%{transform:translate3d(0,110%,0);border-radius:50% / 32vh;animation-timing-function:cubic-bezier(.76,0,.24,1)}
  68%,78%{transform:translate3d(0,0,0);border-radius:0;animation-timing-function:cubic-bezier(.76,0,.24,1)}
  100%{transform:translate3d(0,-115%,0);border-radius:0 0 50% 50% / 0 0 22vh 22vh}
}
@keyframes woovoi-intro-paper{0%{visibility:visible}69%,100%{visibility:hidden}}
@keyframes woovoi-intro-counter{0%,16%{opacity:0}23%,72%{opacity:1}80%,100%{opacity:0}}
@keyframes woovoi-intro-site{from{transform:translate3d(0,9vh,0)}to{transform:translate3d(0,0,0)}}
@media(max-width:640px){
 .intro-logo-clip{font-size:16vw;letter-spacing:-.065em}
 .intro-word-clip{font-size:clamp(26px,7vw,40px);height:1.35em}
 .intro-counter{bottom:max(24px,env(safe-area-inset-bottom,0px));font-size:9px}
}
@media(max-height:500px) and (min-width:641px){.intro-logo-clip{font-size:min(12.5vw,25vh)}.intro-word-clip{font-size:min(3.542vw,8vh)}}
@media(prefers-reduced-motion:reduce){.opening-intro{display:none!important}.intro-pending .site-shell{pointer-events:auto;animation:none!important}}
