.intro{z-index:200;pointer-events:none;display:flex;position:fixed;inset:0}html.intro-seen .intro{display:none}html.intro-running{overflow:hidden}.intro-half{flex:1;align-items:flex-end;padding:clamp(20px,4vw,48px);transition:transform 1.2s cubic-bezier(.76,0,.24,1);display:flex;position:relative}.intro-half-a{background:var(--teal-300)}.intro-half-b{background:var(--yellow-300);justify-content:flex-end}.intro-side{opacity:0;animation:intro-in .6s .3s var(--ease-out) forwards;font-size:clamp(16px,1.6vw,22px);font-weight:700}.intro-center{transition:opacity .4s var(--ease), transform .9s var(--ease-out);align-content:center;place-items:center;gap:18px;display:grid;position:absolute;inset:0}.intro-mark{color:#000;clip-path:inset(0 100% 0 0);width:clamp(160px,22vw,320px);height:auto;animation:1s cubic-bezier(.65,0,.35,1) .15s forwards intro-mark}.intro-count{font-variant-numeric:tabular-nums;letter-spacing:.08em;font-size:15px;font-weight:700}html.intro-out .intro-half-a{transform:translateY(-100%)}html.intro-out .intro-half-b{transition-delay:60ms;transform:translateY(100%)}html.intro-out .intro-center{opacity:0;transform:scale(1.15)}@keyframes intro-mark{to{clip-path:inset(0)}}@keyframes intro-in{to{opacity:1}}.curtain{z-index:150;pointer-events:none;display:flex;position:fixed;inset:0}.curtain span{transform-origin:top;flex:1;animation:.9s cubic-bezier(.76,0,.24,1) forwards curtain-out}.curtain-a{background:var(--teal-300)}.curtain-b{background:var(--yellow-300);animation-delay:70ms!important}@keyframes curtain-out{0%{transform:scaleY(1)}to{transform:scaleY(0)}}.grain-layer{z-index:120;pointer-events:none;opacity:.06;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 1 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");animation:.9s steps(6,end) infinite grain;position:fixed;inset:-50%}@keyframes grain{0%{transform:translate(0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-1%)}80%{transform:translate(3%,3%)}to{transform:translate(0)}}@media (prefers-reduced-motion:reduce){.intro,.curtain{display:none}.grain-layer{animation:none}}
