.tf-hero{overflow:clip}.tf-hero-title{text-wrap:balance}.wf-hero-in{animation:wfReveal var(--t-slow) var(--ease-out) both;animation-delay:var(--wf-d,0s)}.wf-hero-in--lcp{animation:wfRise var(--t-slow) var(--ease-out) both;animation-delay:var(--wf-d,0s)}@keyframes wfRise{0%{transform:translateY(12px)}to{transform:none}}.tf-scene{isolation:isolate;--rest-x:3;--rest-y:-7;max-width:560px;margin-inline:auto;position:relative}@media (min-width:1024px){.tf-scene{max-width:none}}.tf-stage{z-index:1;perspective:1200px;perspective-origin:50% 40%;position:relative}.tf-rig{transform-style:preserve-3d;transform:rotateX(calc((var(--rest-x) + var(--tx,0)) * 1deg)) rotateY(calc((var(--rest-y) + var(--ty,0)) * 1deg));position:relative}.tf-window{position:relative;transform:translateZ(0)}.tf-rig--layers{z-index:2;pointer-events:none;position:absolute;inset:0}.tf-ground{pointer-events:none;background:radial-gradient(closest-side,#00000080,#0000);border-radius:50%;height:22%;position:absolute;bottom:2%;left:6%;right:6%;transform:translate3d(0,18px,-80px)}:root[data-theme=light] .tf-ground{background:radial-gradient(closest-side,#3c28142e,#3c281400)}.tf-float{z-index:2;pointer-events:none;transform:translate3d(calc(var(--px,0) * var(--shift,0px)), calc(var(--py,0) * var(--shift,0px) * -1), var(--z,40px));transition:opacity var(--t-slow) var(--ease-out);display:none;position:absolute}.tf-stage:has(.tf-frame[data-tone=before]) .tf-float{opacity:0;transition-duration:var(--t-med);transition-timing-function:var(--ease-in)}.tf-float--b{transition-delay:80ms}.tf-float-card{border:1px solid rgb(var(--tf-ink) / .1);background:rgb(var(--tf-card) / .92);box-shadow:0 1px 0 rgb(var(--tf-ink) / .05) inset, 0 18px 36px -18px #0000008c;border-radius:10px}:root[data-theme=light] .tf-float-card{box-shadow:0 1px 2px #1b1e210f,0 18px 36px -20px #1b1e2147}.tf-float--a{top:34%;left:-9%}.tf-float--b{top:15%;right:-9%}@media (min-width:640px){.tf-float{display:block}}@media (max-width:639px){.tf-rig{transform:none}.tf-ground{display:none}}.tf-orb{z-index:0;aspect-ratio:1;width:128%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.tf-orb:before,.tf-orb-canvas{transition:opacity var(--t-slow) var(--ease-out);position:absolute;inset:0}.tf-orb:before{content:"";background:radial-gradient(closest-side, rgb(var(--tf-accent) / .2) 0%, rgb(var(--tf-accent) / .08) 50%, rgb(var(--tf-accent) / 0) 100%);border-radius:50%}.tf-orb-canvas{opacity:0;width:100%;height:100%}.tf-orb[data-gl=on]:before{opacity:0}.tf-orb[data-gl=on] .tf-orb-canvas{opacity:1}.tf-tag-tone{background-color:rgb(var(--tf-ink) / .08);color:rgb(var(--tf-ink));transition:background-color var(--t-med) var(--ease-out), color var(--t-med) var(--ease-out)}.tf-tag[data-tone=after] .tf-tag-tone{background-color:rgb(var(--tf-accent));color:rgb(var(--tf-onaccent))}.tf-frame{border-color:rgb(var(--tf-ink) / .12);background:rgb(var(--tf-deep));transition:border-color var(--t-slow) var(--ease-out);box-shadow:inset 0 1px #ffffff0a,0 40px 80px -40px #000000b3}.tf-frame[data-tone=after]{border-color:rgb(var(--tf-accent) / .45)}:root[data-theme=light] .tf-frame{box-shadow:0 1px 2px #1b1e210f,0 40px 80px -44px #1b1e2166}.wf-track{will-change:transform;transition:transform var(--t-slow) var(--ease-panel)}.tf-ctrl,.tf-dotbtn{width:2.75rem;height:2.75rem;transition:background-color var(--t-fast) var(--ease-out), color var(--t-fast) var(--ease-out)}@media (hover:hover) and (pointer:fine){.tf-ctrl{width:2.25rem;height:2.25rem}.tf-dotbtn{width:1.75rem;height:2.25rem}.tf-ctrl:hover{background-color:rgb(var(--tf-ink) / .07);color:rgb(var(--tf-ink))}.tf-dotbtn:hover .tf-dot:not([data-on=true]){background-color:rgb(var(--tf-ink) / .5)}}.tf-dot{background-color:rgb(var(--tf-ink) / .25);width:18px;height:4px;transition:transform var(--t-med) var(--ease-out), background-color var(--t-med) var(--ease-out);border-radius:999px;display:block;transform:scaleX(.3)}.tf-dot[data-on=true]{background-color:rgb(var(--tf-ink) / .85);transform:none}.tf-dot[data-on=true][data-tone=after]{background-color:rgb(var(--tf-accent))}.tf-slide[data-active=true] .tf-in{animation:tfIn var(--t-slow) var(--ease-out) both;animation-delay:calc(var(--i,0) * 60ms + .14s)}@keyframes tfIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.tf-wipe{transform-origin:100%;transform:scaleX(0)}.tf-slide[data-active=true] .tf-wipe{animation:tfWipe var(--t-slow) var(--ease-panel) both;animation-delay:.26s}@keyframes tfWipe{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.tf-slide[data-active=true] .tf-new{animation:tfPop var(--t-med) var(--ease-out) both;animation-delay:.5s}@keyframes tfPop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}@media (max-width:767px){@keyframes wfRise{0%{transform:translateY(8px)}to{transform:none}}@keyframes tfIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}}@media (prefers-reduced-motion:reduce){.tf-in,.tf-wipe,.tf-new{animation:none!important}.wf-track{transition:none}}
