:root{--hw-violet:#6d28d9;--hw-violet-bright:#8b3dff;--hw-peach:#ffc5b4;--hw-stone:#e5e3df;--hw-stage:#0e0d12;--hw-canvas:#f6f4f0;--hw-card:#fff;--hw-fg:#141217;--hw-fg-muted:#141217ad;--hw-fg-faint:#14121766;--hw-line:#1412171f;--hw-accent:#6d28d9;--hw-ease:cubic-bezier(.16, 1, .3, 1);--hw-stage-solid:#f1ede6;--hw-stage-glow:#6d28d929;--hw-stage-glow-2:#ff96781f;--hw-on:#141217;--hw-on-muted:#141217ad;--hw-on-faint:#14121773;--hw-on-line:#14121724;--hw-on-tint:#1412170d;--hw-on-accent:#6d28d9;--hw-grad:linear-gradient(90deg, #6d28d9, #e0765a);--hw-dot:#14121712}html.dark{--hw-canvas:#121016;--hw-card:#1b1920;--hw-fg:#f4f2f8;--hw-fg-muted:#f4f2f8b3;--hw-fg-faint:#f4f2f866;--hw-line:#ffffff1a;--hw-accent:#b197fc;--hw-stage-solid:#0e0d12;--hw-stage-glow:#6d28d947;--hw-stage-glow-2:#ffc5b414;--hw-on:#f4f2f8;--hw-on-muted:#f4f2f8ad;--hw-on-faint:#f4f2f873;--hw-on-line:#ffffff1f;--hw-on-tint:#ffffff0d;--hw-on-accent:#c4b5fd;--hw-grad:linear-gradient(90deg, #c4b5fd, #ffc5b4);--hw-dot:#ffffff0f}.hw{background:var(--hw-canvas);color:var(--hw-fg)}.hw-wrap{width:100%;max-width:1440px;margin-inline:auto;padding-inline:clamp(20px,5vw,80px)}.hw-stage{background:radial-gradient(60% 50% at 80% 10%, var(--hw-stage-glow), transparent 70%), radial-gradient(40% 40% at 10% 90%, var(--hw-stage-glow-2), transparent 70%), var(--hw-stage-solid);color:var(--hw-on)}.hw-grain{background-image:radial-gradient(var(--hw-dot) 1px, transparent 1.2px);background-size:22px 22px}.hw.hw-js [data-reveal]{opacity:0;transition:opacity 1s var(--hw-ease), transform 1s var(--hw-ease);transition-delay:calc(var(--d,0) * 1ms);transform:translateY(36px)}.hw.hw-js [data-reveal=scale]{transform:scale(.95)}.hw.hw-js [data-reveal].is-in{opacity:1;transform:none}.hw-rise{animation:hw-rise 1.1s var(--hw-ease) both;animation-delay:calc(var(--d,0) * 1ms)}.hw-line{animation:hw-line 1.2s var(--hw-ease) both;animation-delay:calc(var(--d,0) * 1ms);display:block}.hw-device-in{animation:hw-device 1.6s var(--hw-ease) both;animation-delay:calc(var(--d,0) * 1ms)}.hw-float{animation:7s ease-in-out infinite alternate hw-float}@keyframes hw-rise{0%{opacity:0;filter:blur(6px);transform:translateY(20px)}to{opacity:1;filter:none;transform:none}}@keyframes hw-line{0%{transform:translateY(110%)}to{transform:none}}@keyframes hw-device{0%{opacity:.3;transform:perspective(2000px)translateY(8%)rotateX(16deg)scale(.94)}to{opacity:1;transform:perspective(2000px)}}@keyframes hw-float{0%{transform:translateY(0)rotate(0)}to{transform:translateY(-3%)rotate(-1.2deg)}}@media (prefers-reduced-motion:reduce){.hw *,.hw :before,.hw :after{transition:none!important;animation:none!important}.hw.hw-js [data-reveal]{opacity:1;transform:none}}@keyframes hw-count{0%{opacity:0;filter:blur(4px);transform:translateY(35%)}to{opacity:1;filter:none;transform:none}}
