.fha-tokens{--bg-page:#f5f5f4;--bg-surface:#fff;--bg-sidebar:#fafaf9;--bg-subtle:#f5f5f4;--bg-muted:#00000006;--bg-hover:#0000000a;--bg-active:#0000000f;--fg-primary:#0a0a0a;--fg-secondary:#404040;--fg-tertiary:#737373;--fg-quaternary:#a3a3a3;--border:#00000014;--border-strong:#0000001f;--accent:#0a0a0a;--accent-fg:#fff;--accent-subtle:#0a0a0a0f;--scrim:#ffffff0f;--search-bg:#ffffffeb;--brand-fg:#0a7d44;--accent-bg:#0a7d441a;--accent-bg-hover:#0a7d4429;--accent-border:#0a7d442e;--method-get:#0a7d44;--method-get-bg:#0a7d4414;--method-post:#1e6bd6;--method-post-bg:#1e6bd61a;--method-patch:#b45309;--method-patch-bg:#b4530914;--method-del:#b91c1c;--method-del-bg:#b91c1c14;--status-200:#0a7d44;--status-200-bg:#0a7d4414;--shadow-sm:0 1px 2px #0000000a;--shadow-md:0 2px 4px #0000000f, 0 1px 2px #0000000a;--shadow-lg:0 20px 40px -12px #0000002e, 0 4px 12px #0000000f;--font-sans:var(--font-inter), -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:var(--font-jetbrains-mono), "SF Mono", Menlo, Consolas, monospace;font-family:var(--font-sans);color:var(--fg-primary)}.fha-tokens[data-theme=dark]{--bg-page:#0a0a0a;--bg-surface:#111;--bg-sidebar:#0d0d0d;--bg-subtle:#171717;--bg-muted:#ffffff0a;--bg-hover:#ffffff0f;--bg-active:#ffffff14;--fg-primary:#fafafa;--fg-secondary:#d4d4d4;--fg-tertiary:#a3a3a3;--fg-quaternary:#737373;--border:#ffffff14;--border-strong:#ffffff24;--accent:#fafafa;--accent-fg:#0a0a0a;--accent-subtle:#fafafa14;--scrim:#0006;--search-bg:#141414d9;--brand-fg:#4ade80;--accent-bg:#4ade801f;--accent-bg-hover:#4ade802e;--accent-border:#4ade8038;--method-get:#4ade80;--method-get-bg:#4ade801f;--method-post:#60a5fa;--method-post-bg:#60a5fa24;--method-patch:#fbbf24;--method-patch-bg:#fbbf241f;--method-del:#f87171;--method-del-bg:#f871711f;--status-200:#4ade80;--status-200-bg:#4ade801f;--shadow-lg:0 20px 40px -12px #0009, 0 4px 12px #0000004d}.fha-root{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;justify-content:center;width:100%;animation:2s cubic-bezier(.3,1,.3,1) both fha-appReveal;display:flex}@media (prefers-reduced-motion:reduce){.fha-root{animation:none}}.fha-root .fha-stack{grid-template-columns:1fr;justify-items:center;width:100%;display:grid}.fha-root .fha-stack-layer{grid-area:1/1;justify-content:center;width:100%;min-width:0;display:flex}.fha-root .fha-app-layer{animation:.24s ease-out both fha-fadeIn}@media (prefers-reduced-motion:reduce){.fha-root .fha-app-layer{animation:none}}.fha-root .browser.fha-skeleton .browser-body{background:var(--bg-subtle)}.fha-tokens,.fha-tokens *,.fha-tokens :before,.fha-tokens :after{box-sizing:border-box}.fha-root .homepage-frame{flex-direction:column;gap:24px;width:100%;max-width:1240px;display:flex}.fha-root .homepage-label{color:var(--fg-tertiary);letter-spacing:.04em;text-transform:uppercase;font-size:12px;font-weight:500}.fha-root .browser{background:linear-gradient(var(--bg-surface), var(--bg-surface)) padding-box, linear-gradient(135deg, #ffffffb3, #0000002e) border-box;width:100%;height:640px;box-shadow:var(--shadow-lg);border:1px solid #0000;border-radius:12px;flex-direction:column;display:flex;position:relative;overflow:hidden}.fha-root[data-theme=dark] .browser{background:linear-gradient(var(--bg-surface), var(--bg-surface)) padding-box, linear-gradient(135deg, #ffffff1a, #00000080) border-box}.fha-root .browser:after{content:"";pointer-events:none;z-index:50;background:radial-gradient(140% 110% at 0 0,#0000 0% 35%,#0000000b 75%,#00000013 100%);position:absolute;inset:0}.fha-root[data-theme=dark] .browser:after{mix-blend-mode:screen;background:radial-gradient(120% 90% at -5% -10%,#ffffff17 0%,#ffffff08 22%,#fff0 50%),linear-gradient(135deg,#ffffff09 0%,#ffffff02 28%,#fff0 55%)}.fha-root .browser-chrome{background:var(--bg-subtle);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:12px;height:40px;padding:0 12px;display:flex}.fha-root .browser-lights{align-items:center;gap:6px;display:flex}.fha-root .browser-light{border-radius:50%;width:11px;height:11px}.fha-root .browser-light.red{background:#ff5f57}.fha-root .browser-light.yellow{background:#febc2e}.fha-root .browser-light.green{background:#28c840}.fha-root .browser-nav{color:var(--fg-quaternary);gap:4px;display:flex}.fha-root .browser-nav svg{width:14px;height:14px}.fha-root .browser-url{background:var(--bg-surface);border:1px solid var(--border);min-width:0;height:24px;color:var(--fg-secondary);font-size:12px;font-family:var(--font-sans);white-space:nowrap;border-radius:6px;flex:1;align-items:center;max-width:460px;margin:0 auto;padding:0 10px;display:flex;overflow:hidden}.fha-root .browser-url .lock{color:var(--fg-tertiary);flex-shrink:0;align-items:center;margin-right:6px;display:flex}.fha-root .browser-url .domain{color:var(--fg-tertiary);flex-shrink:0}.fha-root .browser-url .path{color:var(--fg-primary);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.fha-root .browser-right{color:var(--fg-quaternary);justify-content:flex-end;gap:8px;width:60px;display:flex}.fha-root .browser-body{background:var(--bg-surface);flex:1;position:relative;overflow:hidden}.fha-root .shblock{overflow-x:auto;overflow-x:overlay;scrollbar-width:thin;scrollbar-color:var(--border) transparent;transition:scrollbar-color .16s;overflow-y:hidden}.fha-root .shblock:hover{scrollbar-color:var(--fg-quaternary) transparent}.fha-root .shblock::-webkit-scrollbar{background:0 0;height:6px}.fha-root .shblock::-webkit-scrollbar-thumb{background:var(--border);border-radius:6px;transition:background .16s}.fha-root .shblock:hover::-webkit-scrollbar-thumb{background:var(--fg-quaternary)}.fha-root .shblock::-webkit-scrollbar-thumb:hover{background:var(--fg-tertiary)}.fha-root .shblock{--sh-plain:var(--fg-secondary);--sh-kw:#8b3ac2;--sh-string:#0e7a43;--sh-num:#ae5b1f;--sh-comment:#8c8c8c;--sh-fn:#1d6fd1;--sh-prop:#1d4f9b;--sh-type:#0f766e;--sh-builtin:#4f46e5;--sh-punct:var(--fg-tertiary);--sh-op:#ae5b1f;color:var(--sh-plain)}.fha-root[data-theme=dark] .shblock{--sh-plain:#e5e5e5;--sh-kw:#c286e8;--sh-string:#7dd8a4;--sh-num:#f0b072;--sh-comment:#7a7a7a;--sh-fn:#7cc0ff;--sh-prop:#a5cffd;--sh-type:#6cd6c4;--sh-builtin:#9f96f0;--sh-punct:#a8a8a8;--sh-op:#f0b072}.fha-root .shblock .shkw{color:var(--sh-kw)}.fha-root .shblock .shs{color:var(--sh-string)}.fha-root .shblock .shn{color:var(--sh-num)}.fha-root .shblock .shc{color:var(--sh-comment);font-style:italic}.fha-root .shblock .shfn{color:var(--sh-fn)}.fha-root .shblock .shprop{color:var(--sh-prop)}.fha-root .shblock .shtype{color:var(--sh-type)}.fha-root .shblock .shb{color:var(--sh-builtin)}.fha-root .shblock .shp{color:var(--sh-punct)}.fha-root .shblock .shop{color:var(--sh-op)}.fha-root .demo-cursor{pointer-events:none;z-index:9000;opacity:0;filter:drop-shadow(0 1.185px 1.185px #00000040)drop-shadow(0 3.556px 3.556px #00000040);width:26.62px;height:32px;transition:transform .7s cubic-bezier(.45,0,.2,1),opacity .3s;position:absolute;transform:translate(40px,40px)}.fha-root .demo-cursor svg{display:block}.fha-root .demo-cursor.visible{opacity:1}.fha-root .demo-cursor.clicking:after{content:"";background:#00870038;border-radius:50%;width:20px;height:20px;animation:.4s ease-out fha-pulse;position:absolute;top:4.5px;left:0;transform:translate(-50%,-50%)}.fha-root[data-theme=dark] .demo-cursor.clicking:after{background:#00b4004d}.fha-root .hint-tooltip{pointer-events:none;z-index:9001;font-family:var(--font-sans);color:var(--fg-primary);background:var(--bg-surface);border:1px solid var(--border);box-shadow:var(--shadow-md);white-space:nowrap;opacity:0;transform:translate(var(--hx,0px), var(--hy,0px)) translate(16px, 18px);border-radius:6px;align-items:center;gap:6px;padding:5px 9px 5px 8px;font-size:11px;font-weight:500;line-height:1;transition:opacity .18s;display:inline-flex;position:absolute;top:0;left:0}.fha-root .hint-tooltip.visible{opacity:.92}.fha-root .hint-tooltip .hint-dot{background:#008700;border-radius:50%;flex-shrink:0;width:6px;height:6px;box-shadow:0 0 0 3px #0087002e}.fha-root[data-theme=dark] .hint-tooltip .hint-dot{background:#4ade80;box-shadow:0 0 0 3px #4ade8033}.fha-root .demo-slot .demo-slot-inner{position:absolute;inset:0}.fha-root .demo-slot.animated .demo-slot-inner{transition:inset .42s cubic-bezier(.34,1.35,.64,1),border-radius .42s}.fha-root .demo-slot.editor-on .demo-slot-inner{border-radius:9px;inset:62px 10px 10px;overflow:hidden}.fha-root,.fha-root *{scrollbar-width:thin;scrollbar-color:transparent transparent;transition:scrollbar-color .18s}.fha-root :hover{scrollbar-color:var(--border-strong) transparent}.fha-root ::-webkit-scrollbar{background:0 0;width:8px;height:8px}.fha-root ::-webkit-scrollbar-track{background:0 0}.fha-root ::-webkit-scrollbar-thumb{background:0 0;border-radius:6px;transition:background .18s}.fha-root :hover::-webkit-scrollbar-thumb{background:var(--border-strong)}.fha-root ::-webkit-scrollbar-thumb:hover{background:var(--fg-quaternary)}.fha-root ::-webkit-scrollbar-corner{background:0 0}@keyframes fha-pulse{0%{opacity:1;transform:translate(-50%,-50%)scale(.6)}to{opacity:0;transform:translate(-50%,-50%)scale(1.8)}}@keyframes fha-fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fha-appReveal{0%{opacity:0;filter:blur(10px);transform:translateY(10px)}to{opacity:1;filter:blur();transform:translateY(0)}}@keyframes fha-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes fha-modalIn{0%{opacity:0;transform:translateY(-8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes fha-scrimIn{0%{-webkit-backdrop-filter:blur();background:0 0}to{-webkit-backdrop-filter:blur(12px);background:var(--scrim)}}@keyframes fha-editorIn{0%{opacity:0}to{opacity:1}}@keyframes fha-editorTopBarIn{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes fha-editorFrameIn{0%{opacity:.3;transform:scale(1.04)}60%{opacity:1;transform:scale(.99)}to{opacity:1;transform:scale(1)}}
