/* Hero art options (see hero-art.js) */
.hart{position:absolute;right:0;top:16%;width:min(36%,470px);height:44%;z-index:1;pointer-events:none}
@media (max-width:1100px){.hart{display:none}}

/* code */
.ha-code{position:absolute;inset:6% 2% auto 6%;background:#0a0a0a;color:#e9e9e6;border:1px solid #0a0a0a;box-shadow:0 30px 60px -25px rgba(10,10,10,.45);transform-style:preserve-3d;will-change:transform}
.ha-bar{display:flex;align-items:center;gap:6px;padding:10px 12px;border-bottom:1px solid #222;font:500 .62rem "JetBrains Mono",monospace;text-transform:uppercase;letter-spacing:.06em;color:#8a8a8a}
.ha-bar i{width:8px;height:8px;border-radius:50%;background:#333}.ha-bar i:first-child{background:var(--acc,#e8173a)}
.ha-bar span{margin-left:8px}
.ha-code pre{margin:0;padding:16px 18px 20px;min-height:13.5em;font:400 clamp(.62rem,.9vw,.78rem)/1.65 "JetBrains Mono",monospace;white-space:pre}
.ha-code b{font-weight:400}.t-k{color:var(--acc2,#ff6b81)}.t-s{color:#9ad3a5}.t-f{color:#fff;font-weight:500!important}.t-n{color:#f5b971}.t-v{color:#cfd8ff}.t-p{color:#bdbdb8}.t-c{color:#6b6b6b}
.ha-cur{display:inline-block;width:7px;height:1.05em;background:var(--acc,#e8173a);vertical-align:text-bottom;animation:haBlink 1s steps(1) infinite}
@keyframes haBlink{50%{opacity:0}}
.ha-toast{position:absolute;right:-14px;bottom:-18px;background:var(--acc,#e8173a);color:#fff;font:600 .78rem "Inter Tight",sans-serif;padding:10px 14px;opacity:0;transform:translateY(10px);transition:opacity .35s,transform .35s}
.ha-toast.on{opacity:1;transform:none}

/* stack */
.ha-stack{position:absolute;inset:0}
.ha-stack>*{position:absolute;will-change:transform}
.ha-br{left:4%;top:8%;width:68%;background:#fff;border:1px solid var(--ink,#0a0a0a);box-shadow:0 24px 50px -28px rgba(10,10,10,.4)}
.ha-br .ha-bar{border-color:var(--line,#d9d9d4);color:var(--mut,#6b6b6b)}.ha-br .ha-bar i{background:var(--line,#d9d9d4)}
.ha-pg{padding:14px;display:grid;gap:8px}
.ha-pg em{display:block;height:54px;background:var(--acc,#e8173a)}
.ha-pg b{display:block;height:8px;width:80%;background:var(--ink,#0a0a0a)}.ha-pg b.s{width:55%;background:var(--line,#d9d9d4)}
.ha-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:4px}.ha-tiles u{height:34px;border:1px solid var(--line,#d9d9d4)}
.ha-ph{right:6%;top:2%;width:30%;aspect-ratio:9/18;background:#0a0a0a;border-radius:18px;padding:7px;box-shadow:0 30px 50px -22px rgba(10,10,10,.5)}
.ha-scr{height:100%;background:var(--bg,#f6f6f3);border-radius:12px;display:flex;flex-direction:column;justify-content:flex-end;gap:6px;padding:8px;font:500 clamp(.5rem,.7vw,.62rem)/1.3 "Inter Tight",sans-serif}
.ha-scr span{max-width:85%;padding:6px 8px;border-radius:9px}
.ha-scr .q{align-self:flex-end;background:#0a0a0a;color:#fff;animation:haPop 6s infinite}
.ha-scr .a{align-self:flex-start;background:#fff;border:1px solid var(--line,#d9d9d4);animation:haPop 6s 1.6s infinite both}
.ha-scr .ty{align-self:flex-start;display:flex;gap:3px;background:#fff;border:1px solid var(--line,#d9d9d4)}
.ha-scr .ty i{width:4px;height:4px;border-radius:50%;background:var(--acc,#e8173a);animation:haDot 1s infinite}.ha-scr .ty i:nth-child(2){animation-delay:.15s}.ha-scr .ty i:nth-child(3){animation-delay:.3s}
@keyframes haPop{0%,8%{opacity:0;transform:translateY(6px)}14%,88%{opacity:1;transform:none}96%,100%{opacity:0}}
@keyframes haDot{0%,100%{opacity:.25}50%{opacity:1}}
.ha-ch{left:30%;bottom:0;width:38%;background:#fff;border:1px solid var(--ink,#0a0a0a);padding:10px 12px;box-shadow:0 24px 40px -26px rgba(10,10,10,.4)}
.ha-ch .mono{font-size:.58rem}.ha-ch strong{display:block;font-size:1.3rem;letter-spacing:-.03em;color:var(--acc,#e8173a)}
.ha-bars{display:flex;align-items:flex-end;gap:5px;height:44px;margin-top:6px}
.ha-bars i{flex:1;background:var(--ink,#0a0a0a);transform-origin:bottom;animation:haBar 3.2s ease-in-out infinite}
.ha-bars i:nth-child(1){height:30%}.ha-bars i:nth-child(2){height:42%;animation-delay:.1s}.ha-bars i:nth-child(3){height:38%;animation-delay:.2s}.ha-bars i:nth-child(4){height:60%;animation-delay:.3s}.ha-bars i:nth-child(5){height:74%;animation-delay:.4s}.ha-bars i:nth-child(6){height:100%;background:var(--acc,#e8173a);animation-delay:.5s}
@keyframes haBar{0%,100%{transform:scaleY(.35)}45%,70%{transform:scaleY(1)}}
.ha-ai{right:0;bottom:16%;width:54px;height:54px;border-radius:50%;background:var(--acc,#e8173a);color:#fff;display:grid;place-items:center;font:700 1rem "Inter Tight",sans-serif;box-shadow:0 0 0 0 rgba(232,23,58,.5);animation:haPulse 2.2s infinite}
@keyframes haPulse{70%{box-shadow:0 0 0 18px rgba(232,23,58,0)}100%{box-shadow:0 0 0 0 rgba(232,23,58,0)}}
@media (prefers-reduced-motion:reduce){.hart *{animation:none!important}}

/* kinetic type */
.ha-kin{position:absolute;inset:0;display:flex;align-items:center;justify-content:flex-end;overflow:hidden;-webkit-mask-image:linear-gradient(transparent,#000 22%,#000 78%,transparent);mask-image:linear-gradient(transparent,#000 22%,#000 78%,transparent)}
.ha-kin-in{position:absolute;right:10px;top:50%;margin-top:calc(-1.5 * 1.05em);font:700 clamp(1.6rem,2.8vw,2.7rem)/1.05 "Inter Tight",sans-serif;letter-spacing:-.045em;text-align:right;transition:transform .9s cubic-bezier(.65,0,.35,1)}
.ha-kin-in b{display:block;height:1.05em;white-space:nowrap;color:transparent;-webkit-text-stroke:1px var(--ink,#0a0a0a);transition:color .6s,-webkit-text-stroke-color .6s}
.ha-kin-in b.on{color:var(--acc,#e8173a);-webkit-text-stroke-color:var(--acc,#e8173a)}

/* chat */
.ha-chat{position:absolute;inset:4% 2% 4% 10%;background:#fff;border:1px solid var(--ink,#0a0a0a);display:flex;flex-direction:column;box-shadow:0 26px 50px -30px rgba(10,10,10,.45)}
.ha-chat-h{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#0a0a0a;color:#fff;font:600 .82rem "Inter Tight",sans-serif}
.ha-chat-h i{width:8px;height:8px;border-radius:50%;background:var(--acc,#e8173a)}
.ha-chat-h span{margin-left:auto;font:500 .58rem "JetBrains Mono",monospace;text-transform:uppercase;letter-spacing:.06em;color:#4ade80}
.ha-chat-b{flex:1;display:flex;flex-direction:column;justify-content:flex-end;gap:7px;padding:12px;overflow:hidden;transition:opacity .5s}
.ha-chat-b.clear{opacity:0}
.ha-msg{max-width:82%;padding:8px 11px;font:500 clamp(.66rem,.85vw,.78rem)/1.35 "Inter Tight",sans-serif;opacity:0;transform:translateY(8px);transition:opacity .45s ease,transform .45s cubic-bezier(.2,.8,.2,1)}
.ha-msg.in{opacity:1;transform:none}
.ha-msg.u{align-self:flex-end;background:var(--acc,#e8173a);color:#fff}
.ha-msg.b{align-self:flex-start;background:var(--bg,#f6f6f3);border:1px solid var(--line,#d9d9d4)}
.ha-typing{display:inline-flex;gap:3px}.ha-typing i{width:5px;height:5px;border-radius:50%;background:var(--ink,#0a0a0a);animation:haDot 1s infinite}.ha-typing i:nth-child(2){animation-delay:.15s}.ha-typing i:nth-child(3){animation-delay:.3s}

/* service carousel */
.ha-car{position:absolute;inset:0}
.ha-car span{position:absolute;left:50%;top:50%;white-space:nowrap;padding:9px 14px;background:#fff;border:1px solid var(--ink,#0a0a0a);font:600 clamp(.75rem,1vw,.92rem) "Inter Tight",sans-serif;will-change:transform,opacity;transition:background .4s,color .4s,border-color .4s}
.ha-car span.on{background:var(--acc,#e8173a);border-color:var(--acc,#e8173a);color:#fff}
.ha-car i{position:absolute;left:50%;top:50%;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:var(--ink,#0a0a0a);box-shadow:0 0 0 10px rgba(232,23,58,.12),0 0 0 22px rgba(232,23,58,.06)}
