:root{--intro-slogan-dur:4.1s;--intro-letter-at:0.18s;--intro-letter-dur:0.9s;--intro-letter-step:0.015s;--intro-bar-in-at:0.15s;--intro-bar-at:0.5s;--intro-bar-dur:2s;--intro-veil-at:2.5s;--intro-logo-at:3.9s;--intro-title-at:4.35s;--intro-desc-at:4.65s;--intro-desc-dur:1.35s;--intro-cta-dur:1.15s;--intro-nav-at:5.9s;--intro-cta-at:calc(var(--intro-desc-at) + var(--intro-desc-dur));--intro-cta-rule-at:calc(var(--intro-desc-at) + var(--intro-desc-dur) + 0.5s);--intro-ease:cubic-bezier(0.22,1,0.36,1)}html.intro-armed,html.intro-armed body{overflow:hidden}.intro-veil{display:none}html.intro-armed .intro-veil{display:flex;position:fixed;inset:0;z-index:3000;align-items:center;justify-content:center;padding:2rem;background:radial-gradient(ellipse at 50% 45%,#141414 0%,#0a0a0a 62%);pointer-events:none}html.intro-armed .intro-veil::after{content:"";position:absolute;inset:0;z-index:-1;opacity:var(--glass-grain);background:url("../assets/images/grain.png?v=2") repeat;background-size:128px 128px;pointer-events:none}html.intro-armed.intro-play .intro-veil{animation:spp-intro-veil 1.2s ease var(--intro-veil-at) forwards}@keyframes spp-intro-veil{to{opacity:0}}html.intro-armed .hero-content{z-index:3001}html.intro-armed .hero-slogan{--intro-slogan-dy:0px;--intro-slogan-scale:1.4;will-change:transform;visibility:hidden}html.intro-armed.intro-ready .hero-slogan{visibility:visible}html.intro-armed .hero-slogan .intro-letter{opacity:0;will-change:opacity,filter}html.intro-armed.intro-play .hero-slogan .intro-letter{animation:spp-intro-letter var(--intro-letter-dur) cubic-bezier(0.37,0,0.63,1) calc(var(--intro-letter-at) + var(--i,0) * var(--intro-letter-step)) both}@keyframes spp-intro-letter{from{opacity:0;filter:blur(9px)}to{opacity:1;filter:blur(0)}}html.intro-armed.intro-play .hero-slogan{animation:spp-intro-slogan var(--intro-slogan-dur) both}@keyframes spp-intro-slogan{0%{transform:translateY(var(--intro-slogan-dy)) scale(calc(var(--intro-slogan-scale) * 1.04));animation-timing-function:linear}61%{transform:translateY(var(--intro-slogan-dy)) scale(var(--intro-slogan-scale));animation-timing-function:cubic-bezier(0.6,0,0.2,1)}100%{transform:none}}.intro-progress{display:none}html.intro-armed .intro-card{position:relative;top:var(--intro-bar-offset,96px)}html.intro-armed .intro-progress{display:block;position:relative;width:clamp(120px,22vw,240px);height:2px;margin:0 auto;border-radius:1px;background:rgba(255,255,255,0.16);box-shadow:0 0 18px rgba(255,255,255,0.06);overflow:hidden;opacity:0}html.intro-armed .intro-progress-fill{display:block;width:100%;height:100%;border-radius:inherit;background:rgba(255,255,255,0.72);transform:scaleX(0);transform-origin:left center;will-change:transform}html.intro-armed.intro-play .intro-progress{animation:spp-intro-bar-in 0.6s ease var(--intro-bar-in-at) both}html.intro-armed.intro-play .intro-progress-fill{animation:spp-intro-bar-fill var(--intro-bar-dur) linear var(--intro-bar-at) both}@keyframes spp-intro-bar-in{from{opacity:0}to{opacity:1}}@keyframes spp-intro-bar-fill{from{transform:scaleX(0)}to{transform:scaleX(1)}}html.intro-armed .hero-logo,html.intro-armed .hero-title,html.intro-armed .hero-description,html.intro-armed .nav{opacity:0}html.intro-armed.intro-play .hero-logo{animation:spp-intro-logo 1.4s var(--intro-ease) var(--intro-logo-at) both}html.intro-armed.intro-play .hero-title{animation:spp-intro-title 1.4s var(--intro-ease) var(--intro-title-at) both}html.intro-armed.intro-play .hero-description{-webkit-mask-image:linear-gradient(90deg,#000 0 36%,rgba(0,0,0,0) 64%);mask-image:linear-gradient(90deg,#000 0 36%,rgba(0,0,0,0) 64%);-webkit-mask-size:300% 100%;mask-size:300% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;will-change:opacity,filter,mask-position;animation:spp-intro-engrave var(--intro-desc-dur) cubic-bezier(0.37,0,0.63,1) var(--intro-desc-at) both}@keyframes spp-intro-engrave{from{opacity:0;filter:blur(7px);-webkit-mask-position:100% 0;mask-position:100% 0}18%{opacity:1}to{opacity:1;filter:blur(0);-webkit-mask-position:0 0;mask-position:0 0}}html.intro-armed.intro-play .nav{animation:spp-intro-nav 1s var(--intro-ease) var(--intro-nav-at) both}@keyframes spp-intro-logo{from{opacity:0;transform:scale(1.32);filter:blur(14px)}to{opacity:0.9;transform:scale(1);filter:blur(0)}}@keyframes spp-intro-title{from{opacity:0;letter-spacing:0.8em;filter:blur(9px)}to{opacity:1;letter-spacing:0.35em;filter:blur(0)}}@keyframes spp-intro-nav{from{opacity:0;filter:blur(6px)}to{opacity:1;filter:blur(0)}}@media (max-width: 760px){@keyframes spp-intro-title{from{opacity:0;letter-spacing:0.5em;filter:blur(9px)}to{opacity:1;letter-spacing:0.35em;filter:blur(0)}}}html.intro-armed.intro-skip .intro-veil{animation:spp-intro-skip-out 0.34s ease both}html.intro-armed.intro-skip .intro-card{animation:spp-intro-skip-out 0.2s ease both}html.intro-armed.intro-skip.intro-past-veil .intro-veil,html.intro-armed.intro-skip.intro-past-veil .intro-card{animation:none;opacity:0}html.intro-armed.intro-skip .hero-slogan{animation:none;transition:transform 0.45s var(--intro-ease)}html.intro-armed.intro-skip .hero-slogan .intro-letter{animation:none;opacity:1;filter:blur(0)}html.intro-armed.intro-skip .hero-title,html.intro-armed.intro-skip .hero-description,html.intro-armed.intro-skip .nav{animation:spp-intro-skip-in 0.5s var(--intro-ease) 0.1s both}html.intro-armed.intro-skip .hero-logo{animation:spp-intro-skip-in-logo 0.5s var(--intro-ease) 0.1s both}@keyframes spp-intro-skip-out{to{opacity:0}}@keyframes spp-intro-skip-in{from{opacity:0}to{opacity:1}}@keyframes spp-intro-skip-in-logo{from{opacity:0}to{opacity:0.9}}html.intro-armed body.home-page .hero-cta{opacity:0}html.intro-armed.intro-play body.home-page .hero-cta{animation:spp-intro-cta var(--intro-cta-dur) var(--intro-ease) var(--intro-cta-at) both}html.intro-armed body.home-page .hero .hero-cta::after{transform:scaleX(0)}html.intro-armed.intro-play body.home-page .hero .hero-cta::after{animation:spp-intro-cta-rule 0.9s var(--intro-ease) var(--intro-cta-rule-at) both}@keyframes spp-intro-cta{from{opacity:0;transform:translateY(9px);filter:blur(5px)}to{opacity:1;transform:none;filter:blur(0)}}@keyframes spp-intro-cta-rule{from{transform:scaleX(0)}to{transform:scaleX(1)}}body.home-page .hero .cta-rule{position:absolute;left:0;right:0;bottom:0;height:1px;overflow:hidden;pointer-events:none;z-index:2;-webkit-mask-image:linear-gradient(to right,transparent 0%,#000 12%,#000 88%,transparent 100%);mask-image:linear-gradient(to right,transparent 0%,#000 12%,#000 88%,transparent 100%)}body.home-page .hero .cta-glint{position:absolute;left:0;top:0;width:18%;height:1px;background:linear-gradient( to right,rgba(255,255,255,0) 0%,rgba(255,255,255,0.95) 50%,rgba(255,255,255,0) 100% );animation:spp-cta-glint 8s linear 0.05s infinite both}body.home-page .hero-cta:hover .cta-glint,body.home-page .hero-cta:focus-visible .cta-glint,body.home-page .hero-cta.cta-beacon .cta-glint{animation:spp-cta-glint 1.7s linear 0s infinite both}html.intro-armed body.home-page .hero .cta-glint{animation:none;opacity:0}@keyframes spp-cta-glint{0%{transform:translateX(-110%)}37.5%{transform:translateX(570%)}100%{transform:translateX(570%)}}@media (prefers-reduced-motion: reduce){html.intro-armed .intro-veil{display:none}html.intro-armed .hero-content{z-index:2}html.intro-armed .hero-slogan .intro-letter{opacity:1}html.intro-armed .hero-logo{opacity:0.9}html.intro-armed .hero-slogan,html.intro-armed .hero-title,html.intro-armed .hero-description,html.intro-armed .nav{opacity:1}html.intro-armed .hero-slogan{visibility:visible}html.intro-armed.intro-play .intro-veil,html.intro-armed.intro-play .intro-progress,html.intro-armed.intro-play .intro-progress-fill,html.intro-armed.intro-play .hero-slogan,html.intro-armed.intro-play .hero-slogan .intro-letter,html.intro-armed.intro-play .hero-logo,html.intro-armed.intro-play .hero-title,html.intro-armed.intro-play .hero-description,html.intro-armed.intro-play .nav{animation:none;transform:none}html.intro-armed.intro-play .hero-description{-webkit-mask-image:none;mask-image:none;filter:none}body.home-page .hero .cta-glint,body.home-page .hero-cta:hover .cta-glint,body.home-page .hero-cta:focus-visible .cta-glint,body.home-page .hero-cta.cta-beacon .cta-glint{animation:none;opacity:0}html.intro-armed body.home-page .hero-cta,html.intro-armed body.home-page .hero .hero-cta::after{animation:none;opacity:1;transform:none}}
