/* Page-level styles and keyframes from the KUPO design */
:root{--c-brand:#5B37F0;--c-brand2:#7B57FF;--c-brand-soft:rgba(110,68,255,.10);--c-brand-line:rgba(110,68,255,.32);--c-ai:linear-gradient(135deg,#5B37F0,#A68BFF);--s-comp:#5B37F0;--s-comp-bg:rgba(110,68,255,.12);--s-comp-dot:#8F6BFF}
html{scroll-behavior:smooth}
html,body{margin:0;background:#fff;color:#0A0A0A;-webkit-font-smoothing:antialiased}
*{box-sizing:border-box}
a{color:#0A0A0A;text-decoration:none}
a:hover{color:#5B5B57}
:focus-visible{outline:2px solid #5B37F0;outline-offset:3px}
@keyframes kupo-in{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}
@keyframes kupo-wink{0%,82%,100%{opacity:0}84%,94%{opacity:1}}
@keyframes kupo-open{0%,82%,100%{opacity:1}84%,94%{opacity:0}}
@keyframes kupo-pop{0%{opacity:0;transform:scale(.4) rotate(-24deg)}70%{opacity:1;transform:scale(1.08) rotate(5deg)}100%{opacity:1;transform:none}}
@keyframes kupo-arrive{0%{opacity:0;transform:translate(70vw,-40px) scale(1.7) rotate(50deg)}38%{opacity:1;transform:translate(0,0) scale(1.55) rotate(-8deg)}60%{transform:scale(.5) rotate(6deg)}80%{transform:scale(1.1) rotate(-2deg)}100%{opacity:1;transform:none}}
@keyframes kupo-float{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-10px) rotate(-4deg)}}
@keyframes kupo-marq{to{transform:translateX(-50%)}}
@keyframes kupo-fade{from{opacity:0}to{opacity:1}}
@keyframes kupo-dots{0%,60%,100%{opacity:.25}30%{opacity:1}}
@keyframes kupo-ring{0%{box-shadow:0 0 0 0 rgba(110,68,255,.55)}100%{box-shadow:0 0 0 12px rgba(110,68,255,0)}}
@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation:none!important;transition:none!important}html{scroll-behavior:auto}}
