/* A lifted face, a little curiosity underneath, and a spring on release. */
.btn{position:relative;transition:transform .42s var(--ease),background .35s,box-shadow .35s;}
.button-arrow{position:relative;display:inline-block;width:17px;height:17px;flex:0 0 17px;overflow:hidden;vertical-align:middle;}
.button-arrow .icon{position:absolute;inset:0;width:17px;height:17px;transition:transform .48s var(--ease),opacity .3s;}
.button-arrow .icon:last-child{transform:translate(-125%,125%);opacity:0;}
.btn:hover .button-arrow .icon:first-child,.btn:focus-visible .button-arrow .icon:first-child{transform:translate(125%,-125%);opacity:0;}
.btn:hover .button-arrow .icon:last-child,.btn:focus-visible .button-arrow .icon:last-child{transform:translate(0,0);opacity:1;}
.playful-cta,.playful-cta.white{display:inline-flex;isolation:isolate;position:relative;background:#030a10;padding:0;border:1px solid #030a10;min-height:48px;border-radius:14px;box-shadow:0 3px 0 #030a10;overflow:visible;vertical-align:middle;}
.playful-cta:hover,.playful-cta:focus-visible{background:#030a10;transform:none;box-shadow:0 3px 0 #030a10;}
.button-face{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;gap:22px;padding:12px 23px;min-height:48px;border-radius:12px;background:var(--accent);color:var(--ink);transform-origin:12% 72%;transition:transform .5s cubic-bezier(.34,1.7,.42,1),background .35s,box-shadow .4s;will-change:transform;}
.white .button-face{background:var(--text);}
.playful-cta:hover .button-face,.playful-cta:focus-visible .button-face{transform:translateY(-4px) rotate(-6deg);background:var(--accent);box-shadow:0 0 25px #39d9ff19;}
.button-eyes{position:absolute;right:18px;bottom:4px;z-index:1;display:flex;align-items:center;gap:5px;height:12px;opacity:0;transform:translateY(-3px);transition:opacity .25s,transform .4s var(--ease);pointer-events:none;}
.playful-cta:hover .button-eyes,.playful-cta:focus-visible .button-eyes{opacity:1;transform:translateY(0);}
.button-eye{height:9px;width:9px;background:#f7fcff;border-radius:50%;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.button-eye i{display:block;background:#081421;border-radius:50%;width:4px;height:4px;transition:transform .13s;}
.playful-cta:active .button-face{transform:translateY(3px) rotate(0) scale(.98);transition-duration:.08s;}
.playful-cta:active .button-eyes{opacity:0;}
.playful-cta.pressing .button-face{animation:button-spring .45s cubic-bezier(.22,1,.36,1);}
.btn:not(.playful-cta):active{transform:translateY(1px) scale(.96);box-shadow:none;}
.btn:not(.playful-cta).pressing{animation:control-press .4s var(--ease);}
@keyframes button-spring{0%{transform:translateY(-4px) rotate(-6deg)}25%{transform:translateY(3px) rotate(0) scale(.97)}60%{transform:translateY(-7px) rotate(-7deg)}100%{transform:translateY(-4px) rotate(-6deg)}}
@keyframes control-press{0%,100%{scale:1}30%{scale:.96}65%{scale:1.025}}
.nav>a,.nav button{position:relative;transition:color .3s,background .3s,transform .4s var(--ease);}
.nav>a:after,.nav> .dropdown>button:after{content:'';position:absolute;left:18px;right:18px;bottom:6px;height:1px;border-radius:1px;background:linear-gradient(90deg,transparent,#39d9ff,transparent);transform:scaleX(0);transition:transform .4s var(--ease);}
.nav>a:hover,.nav> .dropdown>button:hover{transform:translateY(-2px);background:#14283a;color:var(--accent);}
.nav>a:hover:after,.nav> .dropdown>button:hover:after{transform:scaleX(1);}
.nav .icon{transition:transform .5s cubic-bezier(.34,1.5,.44,1),color .3s;}
.nav>a:hover .icon{animation:nav-icon-hop .6s var(--ease);}
.nav>a:hover .icon[data-icon=grid]{transform:rotate(90deg);animation:none;}
.nav button:hover .icon:not([data-icon=chevron]){animation:nav-icon-hop .6s var(--ease);}
.nav button:hover .icon[data-icon=chevron]{transform:translateY(2px);}
.nav .dropdown.open button .icon[data-icon=chevron]{transform:rotate(180deg);}
.nav a:active,.nav button:active{transform:translateY(1px) scale(.96);}
.drop-menu a{transition:background .25s,transform .35s var(--ease);}
.drop-menu a:hover{transform:translateX(4px);background:#1b354c;}
.brand img{transition:transform .5s cubic-bezier(.34,1.6,.42,1),box-shadow .4s;border-radius:11px;}
.brand:hover img{transform:rotate(-9deg) scale(1.06);box-shadow:0 0 22px #39d9ff26;}
.brand:active img{transform:rotate(4deg) scale(.92);}
.icon-button{transition:transform .4s var(--ease),background .3s,box-shadow .3s;}
.icon-button .icon{transition:transform .5s cubic-bezier(.34,1.6,.42,1);}
.icon-button:hover{transform:translateY(-2px);background:#1b354c;box-shadow:0 5px 20px #0003;}
.icon-button:hover .icon{transform:rotate(-12deg) scale(1.12);}
.icon-button:active{transform:scale(.91);}
.feature-foot:hover .icon{transform:translate(3px,-3px);transition:transform .35s var(--ease);}
@keyframes nav-icon-hop{0%,100%{translate:0 0;rotate:0deg}35%{translate:0 -4px;rotate:-10deg}65%{translate:0 1px;rotate:4deg}}
/* The arrow stays at the actual pointer; only the halo and trail follow. */
.morrow-cursor,.cursor-trail{position:fixed;inset:0 auto auto 0;z-index:1000;pointer-events:none;opacity:0;}
.morrow-cursor{width:0;height:0;transition:opacity .16s;}
.morrow-cursor.visible{opacity:1;}
.cursor-arrow{position:fixed;left:0;top:0;overflow:visible;filter:drop-shadow(0 0 5px #39d9ff33);transition:opacity .16s;}
.cursor-arrow path{transform-origin:3px 2px;transition:transform .25s cubic-bezier(.34,1.6,.42,1),fill .25s;}
.is-hovering .cursor-arrow path{transform:rotate(-10deg) scale(1.04);fill:#39d9ff;stroke:#edfaff;}
.is-grabbing .cursor-arrow path{transform:rotate(15deg);}
.is-pressed .cursor-arrow path{transform:scale(.8);}
.cursor-halo{position:fixed;left:0;top:0;width:30px;height:30px;}
.cursor-halo:before{content:'';position:absolute;left:-15px;top:-15px;width:30px;height:30px;box-sizing:border-box;border:1px solid #39d9ff44;border-radius:50%;transition:scale .35s var(--ease),border-color .3s,background .3s;}
.is-hovering .cursor-halo:before{scale:1.45;border-color:#39d9ff77;background:#39d9ff08;}
.is-pressed .cursor-halo:before{scale:.7;}
.is-text .cursor-arrow,.is-text .cursor-halo{opacity:0;}
.cursor-trail{width:var(--trail-size);height:var(--trail-size);border-radius:50%;background:#39d9ff;box-shadow:0 0 9px #39d9ff35;}
.cursor-click{position:fixed;z-index:1001;pointer-events:none;box-sizing:border-box;width:24px;height:24px;margin:-12px 0 0 -12px;border:1px solid #39d9ffb3;border-radius:50%;animation:cursor-ripple .55s ease-out forwards;}
@keyframes cursor-ripple{from{transform:scale(.3);opacity:.8}to{transform:scale(2.3);opacity:0}}
@media(hover:hover) and (pointer:fine){body,a,button,summary,canvas{cursor:url('/assets/cursor.svg') 3 2,auto;}html.has-custom-cursor,html.has-custom-cursor body,html.has-custom-cursor a,html.has-custom-cursor button,html.has-custom-cursor summary,html.has-custom-cursor canvas,html.has-custom-cursor select{cursor:none!important;}html.has-custom-cursor input:not([type=range]):not([type=checkbox]),html.has-custom-cursor textarea{cursor:text!important;}}
@media(max-width:850px){.header-end .playful-cta{min-height:42px;}.header-end .playful-cta .button-face{min-height:42px;padding:10px 14px;gap:9px;}}
@media(hover:none),(pointer:coarse){.morrow-cursor,.cursor-trail,.cursor-click{display:none}.playful-cta:hover .button-face{transform:none}.playful-cta:hover .button-eyes{opacity:0}.playful-cta:active .button-face{transform:translateY(2px) scale(.97)}}
.reduced-motion .morrow-cursor,.reduced-motion .cursor-trail,.reduced-motion .cursor-click{display:none;}
.reduced-motion .playful-cta:hover .button-face,.reduced-motion .playful-cta:focus-visible .button-face{transform:none;}
.reduced-motion .button-eyes{display:none;}
@media(prefers-reduced-motion:reduce){.morrow-cursor,.cursor-trail,.cursor-click{display:none;}.playful-cta:hover .button-face,.playful-cta:focus-visible .button-face{transform:none}.button-eyes{display:none;}}
