.sparkle-button{--transition:.25s;--spark:1.8s;--accent:#97648b;--accent-soft:#97648b8c;--bg-base:#14111c;--bg-hover:#1d1727;display:inline-block;position:relative}.sparkle-button button{--cut:.1em;--active:0;--bg:radial-gradient(40% 50% at center 100%, rgba(151, 100, 139, calc(var(--active) * .55)), transparent), radial-gradient(80% 100% at center 120%, rgba(151, 100, 139, calc(var(--active) * .35)), transparent), var(--bg-base);background:var(--bg);cursor:pointer;white-space:nowrap;box-shadow:0 0 calc(var(--active) * 2.2em) calc(var(--active) * .9em) #97648b59,0 .05em rgba(255,255,255,calc(var(--active) * .18)) inset,0 -.05em rgba(151,100,139,calc(var(--active) * .5)) inset;transition:box-shadow var(--transition),scale var(--transition),background var(--transition);scale:calc(1 + (var(--active) * .06));color:#faf9fc;border:1px solid #97648bb3;border-radius:100px;align-items:center;gap:.5em;padding:.85em 1.5em;font-size:1rem;font-weight:500;display:flex;position:relative}.sparkle-button button:active{scale:1}.sparkle-button svg{overflow:visible!important}.sparkle-button .sparkle path{color:rgba(255,255,255,calc(var(--active,0) * .55 + var(--base)));transform-box:fill-box;transform-origin:50%;fill:currentColor;stroke:currentColor;animation-delay:calc((var(--transition) * 1.5) + (var(--delay) * 1s));transition:color var(--transition);animation-duration:.6s}.sparkle-button button:is(:hover,:focus-visible) path{animation-name:sparkle-bounce}@keyframes sparkle-bounce{35%,65%{scale:var(--scale)}}.sparkle-button .sparkle path:first-of-type{--scale:.5;--delay:.1;--base:.55}.sparkle-button .sparkle path:nth-of-type(2){--scale:1.5;--delay:.2;--base:.4}.sparkle-button .sparkle path:nth-of-type(3){--scale:2.5;--delay:.35;--base:.5}.sparkle-button button:before{content:"";z-index:-1;opacity:var(--active,0);transition:opacity var(--transition);border:.2em solid #97648b59;border-radius:100px;position:absolute;inset:-.2em}.sparkle-button .spark{animation:sparkle-flip calc(var(--spark) * 2) infinite steps(2,end);pointer-events:none;border-radius:100px;position:absolute;inset:0;overflow:hidden;rotate:0deg;-webkit-mask:linear-gradient(#fff,#0000 50%);mask:linear-gradient(#fff,#0000 50%)}@keyframes sparkle-flip{to{rotate:360deg}}.sparkle-button .spark:before{content:"";aspect-ratio:1;z-index:-1;width:200%;translate:-50% -15%;rotate:0;opacity:calc(var(--active) + .35);background:conic-gradient(from 0deg,transparent 0 340deg,#fff 360deg);transition:opacity var(--transition);animation:sparkle-rotate var(--spark) linear infinite both;position:absolute;top:0%;left:50%;transform:rotate(-90deg)}.sparkle-button .spark:after{content:"";inset:var(--cut);border-radius:100px;position:absolute}.sparkle-button .backdrop{inset:var(--cut);background:var(--bg);transition:background var(--transition);border-radius:100px;position:absolute}@keyframes sparkle-rotate{to{transform:rotate(90deg)}}.sparkle-button button:is(:hover,:focus-visible)~.particle-pen,.sparkle-button button:is(:hover,:focus-visible){--active:1;--play-state:running}.sparkle-button .bodydrop{display:none}.sparkle-button .particle-pen{aspect-ratio:1;z-index:-1;width:200%;opacity:var(--active,0);transition:opacity var(--transition);pointer-events:none;position:absolute;top:50%;left:50%;translate:-50% -50%;-webkit-mask:radial-gradient(#fff,#0000 65%);mask:radial-gradient(#fff,#0000 65%)}.sparkle-button .particle{fill:#faf9fc;width:calc(var(--size,.25) * 1rem);aspect-ratio:1;top:calc(var(--y) * 1%);left:calc(var(--x) * 1%);opacity:var(--alpha,1);animation:sparkle-float-out calc(var(--duration,1) * 1s) calc(var(--delay) * -1s) infinite linear;transform-origin:var(--origin-x,1000%) var(--origin-y,1000%);z-index:-1;animation-play-state:var(--play-state,paused);position:absolute}.sparkle-button .particle path{fill:#d9c4d4;stroke:none}.sparkle-button .particle:nth-of-type(2n){animation-direction:reverse}@keyframes sparkle-float-out{to{rotate:360deg}}.sparkle-button .text{letter-spacing:.01ch;color:#fff;-webkit-background-clip:initial;transition:color var(--transition);z-index:2;background:0 0;position:relative}.sparkle-button button svg.sparkle{color:#fff;z-index:2;inline-size:1.25em;position:relative}.sparkle-button button>svg:not(.sparkle){z-index:2;color:#fff;position:relative}.scroll-reveal{margin:20px 0}.scroll-reveal-text{font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;letter-spacing:inherit;margin:0}.scroll-reveal .word{display:inline-block}.intro-overlay{z-index:9999;opacity:1;background:radial-gradient(#1d1729,#14111c,#0a0810);flex-direction:column;justify-content:center;align-items:center;transition:opacity .9s,transform .9s;display:flex;position:fixed;inset:0;overflow:hidden}.intro-overlay--leave{opacity:0;pointer-events:none;transform:scale(1.08)}.intro-ring{filter:drop-shadow(0 0 18px #97648b80);opacity:0;border:1px solid #97648b59;border-top-color:#faf9fcd9;border-radius:50%;width:520px;height:520px;animation:.6s forwards intro-ring-in,2.6s linear .6s infinite intro-spin;position:absolute}.intro-ring--2{border-color:#97648b2e #97648b2e #faf9fc80;width:660px;height:660px;animation:.6s .2s forwards intro-ring-in,4s linear .8s infinite intro-spin-rev}@keyframes intro-ring-in{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}@keyframes intro-spin{to{transform:rotate(360deg)}}@keyframes intro-spin-rev{to{transform:rotate(-360deg)}}.intro-logo-wrap{justify-content:center;align-items:center;width:180px;height:180px;margin-bottom:2.5rem;display:flex;position:relative}.intro-logo-mask{clip-path:inset(100% 0 0);justify-content:center;align-items:center;width:100%;height:100%;animation:1.2s cubic-bezier(.7,0,.2,1) .4s forwards intro-logo-reveal;display:flex}.intro-logo{filter:drop-shadow(0 0 30px #97648b99);width:140px;height:auto;animation:1s cubic-bezier(.34,1.56,.64,1) 1.3s forwards intro-logo-pop;transform:scale(.85)}@keyframes intro-logo-reveal{to{clip-path:inset(0)}}@keyframes intro-logo-pop{to{transform:scale(1)}}.intro-logo-shine{mix-blend-mode:overlay;background:linear-gradient(115deg,#0000 35%,#ffffff8c,#0000 65%);animation:1.1s 1.7s intro-shine;position:absolute;inset:0;transform:translate(-150%)}@keyframes intro-shine{to{transform:translate(150%)}}.intro-name{color:#faf9fc;letter-spacing:.02em;text-shadow:0 0 30px #97648b66;margin:0 0 .6rem;font-family:Pompeo,Heebo,serif;font-size:clamp(2.5rem,6vw,4.5rem)}.intro-subtitle{color:#faf9fcbf;letter-spacing:.15em;margin:0;font-size:clamp(1rem,2vw,1.35rem);font-weight:300}.intro-letter{opacity:0;transform-origin:50% 100%;animation:.7s cubic-bezier(.22,1,.36,1) forwards intro-letter-in;display:inline-block;transform:translateY(40px)rotateX(-90deg)}.intro-letter--sub{animation:.5s forwards intro-letter-sub-in;transform:translateY(20px)}@keyframes intro-letter-in{to{opacity:1;transform:translateY(0)rotateX(0)}}@keyframes intro-letter-sub-in{to{opacity:1;transform:translateY(0)}}.intro-particles{pointer-events:none;position:absolute;inset:0}.intro-particle{opacity:0;--angle:calc(var(--i) * 15deg);--dist:320px;background:#faf9fc;border-radius:50%;width:6px;height:6px;animation:1.4s ease-out 1.4s forwards intro-particle-out;position:absolute;top:50%;left:50%;box-shadow:0 0 12px #97648be6}@keyframes intro-particle-out{0%{opacity:0;transform:translate(-50%,-50%) rotate(var(--angle)) translateY(0) scale(.5)}20%{opacity:1}to{opacity:0;transform:translate(-50%,-50%) rotate(var(--angle)) translateY(calc(var(--dist) * -1)) scale(1)}}.intro-curtain{background:#14111c;width:100%;height:0;transition:height .8s cubic-bezier(.7,0,.2,1);position:absolute;left:0}.intro-curtain--top{top:0}.intro-curtain--bottom{bottom:0}.intro-overlay--leave .intro-curtain{height:52%}.intro-overlay--mobile{transition:opacity .3s}.intro-overlay--initial-mobile{display:none}@media(max-width:767px){.intro-overlay--initial-mobile{display:flex}}.intro-overlay--mobile.intro-overlay--leave{transform:none}.intro-mobile-content{opacity:0;flex-direction:column;justify-content:center;align-items:center;gap:1rem;animation:.35s forwards intro-mobile-in;display:flex}.intro-mobile-logo{width:110px;height:auto}.intro-mobile-name{color:#faf9fc;letter-spacing:.02em;margin:0;font-family:Pompeo,Heebo,serif;font-size:2.2rem}.intro-mobile-subtitle{color:#faf9fcbf;letter-spacing:.15em;margin:0;font-size:1rem;font-weight:300}@keyframes intro-mobile-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.border-glow-card{--edge-proximity:0;--cursor-angle:45deg;--edge-sensitivity:30;--color-sensitivity:calc(var(--edge-sensitivity) + 20);--border-radius:28px;--glow-padding:40px;--cone-spread:25;border-radius:var(--border-radius);isolation:isolate;background:var(--card-bg,#120f17);border:1px solid #ffffff26;display:grid;position:relative;overflow:visible;transform:translateZ(.01px);box-shadow:0 1px 2px #0000001a,0 2px 4px #0000001a,0 4px 8px #0000001a,0 8px 16px #0000001a,0 16px 32px #0000001a,0 32px 64px #0000001a}.border-glow-card:before,.border-glow-card:after,.border-glow-card>.edge-light{content:"";border-radius:inherit;z-index:-1;transition:opacity .25s ease-out;position:absolute;inset:0}.border-glow-card:not(:hover):not(.sweep-active):before,.border-glow-card:not(:hover):not(.sweep-active):after,.border-glow-card:not(:hover):not(.sweep-active)>.edge-light{opacity:0;transition:opacity .75s ease-in-out}.border-glow-card:before{background:linear-gradient(var(--card-bg,#120f17) 0 100%) padding-box,linear-gradient(#fff0 0% 100%) border-box,var(--gradient-one) border-box,var(--gradient-two) border-box,var(--gradient-three) border-box,var(--gradient-four) border-box,var(--gradient-five) border-box,var(--gradient-six) border-box,var(--gradient-seven) border-box,var(--gradient-base) border-box;opacity:calc((var(--edge-proximity) - var(--color-sensitivity)) / (100 - var(--color-sensitivity)));-webkit-mask-image:conic-gradient(from var(--cursor-angle) at center,black calc(var(--cone-spread) * 1%),transparent calc((var(--cone-spread) + 15) * 1%),transparent calc((100 - var(--cone-spread) - 15) * 1%),black calc((100 - var(--cone-spread)) * 1%));mask-image:conic-gradient(from var(--cursor-angle) at center,black calc(var(--cone-spread) * 1%),transparent calc((var(--cone-spread) + 15) * 1%),transparent calc((100 - var(--cone-spread) - 15) * 1%),black calc((100 - var(--cone-spread)) * 1%));border:1px solid #0000}.border-glow-card:after{background:var(--gradient-one) padding-box,var(--gradient-two) padding-box,var(--gradient-three) padding-box,var(--gradient-four) padding-box,var(--gradient-five) padding-box,var(--gradient-six) padding-box,var(--gradient-seven) padding-box,var(--gradient-base) padding-box;-webkit-mask-image:linear-gradient(to bottom,black,black),radial-gradient(ellipse at 50% 50%,black 40%,transparent 65%),radial-gradient(ellipse at 66% 66%,black 5%,transparent 40%),radial-gradient(ellipse at 33% 33%,black 5%,transparent 40%),radial-gradient(ellipse at 66% 33%,black 5%,transparent 40%),radial-gradient(ellipse at 33% 66%,black 5%,transparent 40%),conic-gradient(from var(--cursor-angle) at center,transparent 5%,black 15%,black 85%,transparent 95%);mask-image:linear-gradient(to bottom,#000,#000),radial-gradient(ellipse at 50% 50%,black 40%,transparent 65%),radial-gradient(ellipse at 66% 66%,black 5%,transparent 40%),radial-gradient(ellipse at 33% 33%,black 5%,transparent 40%),radial-gradient(ellipse at 66% 33%,black 5%,transparent 40%),radial-gradient(ellipse at 33% 66%,black 5%,transparent 40%),conic-gradient(from var(--cursor-angle) at center,transparent 5%,black 15%,black 85%,transparent 95%);opacity:calc(var(--fill-opacity,.5) * (var(--edge-proximity) - var(--color-sensitivity)) / (100 - var(--color-sensitivity)));mix-blend-mode:soft-light;border:1px solid #0000;-webkit-mask-composite:source-out,source-over,source-over,source-over,source-over,source-over;mask-composite:subtract,add,add,add,add,add}.border-glow-card>.edge-light{inset:calc(var(--glow-padding) * -1);pointer-events:none;z-index:1;-webkit-mask-image:conic-gradient(from var(--cursor-angle) at center,black 2.5%,transparent 10%,transparent 90%,black 97.5%);mask-image:conic-gradient(from var(--cursor-angle) at center,black 2.5%,transparent 10%,transparent 90%,black 97.5%);opacity:calc((var(--edge-proximity) - var(--edge-sensitivity)) / (100 - var(--edge-sensitivity)));mix-blend-mode:plus-lighter}.border-glow-card>.edge-light:before{content:"";inset:var(--glow-padding);border-radius:inherit;box-shadow:inset 0 0 0 1px var(--glow-color,#f5daa3),inset 0 0 1px 0 var(--glow-color-60,#f5daa399),inset 0 0 3px 0 var(--glow-color-50,#f5daa380),inset 0 0 6px 0 var(--glow-color-40,#f5daa366),inset 0 0 15px 0 var(--glow-color-30,#f5daa34d),inset 0 0 25px 2px var(--glow-color-20,#f5daa333),inset 0 0 50px 2px var(--glow-color-10,#f5daa31a),0 0 1px 0 var(--glow-color-60,#f5daa399),0 0 3px 0 var(--glow-color-50,#f5daa380),0 0 6px 0 var(--glow-color-40,#f5daa366),0 0 15px 0 var(--glow-color-30,#f5daa34d),0 0 25px 2px var(--glow-color-20,#f5daa333),0 0 50px 2px var(--glow-color-10,#f5daa31a);position:absolute}.border-glow-inner{z-index:1;border-radius:inherit;flex-direction:column;display:flex;position:relative;overflow:visible}.stack-container{perspective:600px;width:100%;height:100%;position:relative}.card-rotate{cursor:grab;width:100%;height:100%;position:absolute}.card-rotate-disabled{cursor:pointer;width:100%;height:100%;position:absolute}.card{border-radius:1rem;justify-content:center;align-items:center;width:100%;height:100%;display:flex;overflow:hidden}.card img{pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.card-image{object-fit:cover;pointer-events:none;width:100%;height:100%}
