/* ==========================================================================
   Founder Haus — brand.css  (v1)
   Linear-style design system: tokens, type, nav, buttons, cards, forms, tables.
   Dark is the default. Light = <html data-theme="light">.
   Everything is prefixed .fh- except the token variables (see GUIDE.md §2).
   Needs: fonts/inter.woff2 next to this file (or edit the @font-face url).
   ========================================================================== */

@font-face{font-family:"InterV";src:url("fonts/inter.woff2") format("woff2");font-weight:100 900;font-display:swap}

/* ---------- 1. TOKENS ---------- */
:root,[data-theme="dark"]{
  color-scheme:dark;
  --bg:#0A0B0D; --bg-1:#101215; --bg-2:#15181C;
  --navy:#283845; --navy-glow:#3B566B;
  --orange:#E69000; --orange-hi:#F2B04A;
  --ink:#F4F4F2; --ink-2:#C9CDD2; --ink-3:#8A9097; --ink-4:#5E646B;
  --line:rgba(255,255,255,.08); --line-2:rgba(255,255,255,.14);
  --ok:#22C55E; --warn:#F2B04A; --danger:#F0605D;

  /* semantic helpers (swap in light mode) */
  --accent:#E69000; --accent-hi:#F2B04A; --on-accent:#1a1100;
  --accent-soft:rgba(230,144,0,.13);        /* card glow, soft fills */
  --accent-line:rgba(230,144,0,.35);
  --hover:rgba(255,255,255,.04); --hover-2:rgba(255,255,255,.07);
  --nav-bg:rgba(10,11,13,.72);
  --solid-bg:#F4F4F2; --solid-fg:#16191C;   /* "white pill" button */
  --float-shadow:0 40px 120px -20px rgba(0,0,0,.8);
  --halo:0 0 120px -40px rgba(230,144,0,.25);
  --grad-1:#ffffff; --grad-2:#a9b0b8;       /* headline gradient */
  --hero-glow-a:rgba(230,144,0,.20); --hero-glow-b:rgba(59,86,107,.55);
  --ok-soft:rgba(34,197,94,.18);

  /* scale */
  --r-sm:8px; --r-md:12px; --r-lg:16px; --r-xl:24px; --r-full:999px;
  --s-1:4px; --s-2:8px; --s-3:12px; --s-4:16px; --s-5:24px; --s-6:32px; --s-7:48px; --s-8:72px; --s-9:96px;
  --ease:cubic-bezier(.23,1,.32,1);
  --t-fast:.16s; --t-med:.25s; --t-slow:.8s;
  --font:"InterV","Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --wrap:1120px; --nav-h:64px;
}
[data-theme="light"]{
  color-scheme:light;
  --bg:#F5F4F2; --bg-1:#FFFFFF; --bg-2:#F0EEEA;
  --navy:#283845; --navy-glow:#3B566B;
  --orange:#C27800; --orange-hi:#E69000;
  --ink:#283845; --ink-2:#3F4F5C; --ink-3:#66727D; --ink-4:#8F98A0;
  --line:rgba(40,56,69,.12); --line-2:rgba(40,56,69,.22);
  --ok:#16A34A; --warn:#B45309; --danger:#DC2626;

  --accent:#C27800; --accent-hi:#E69000; --on-accent:#ffffff;
  --accent-soft:rgba(230,144,0,.14);
  --accent-line:rgba(194,120,0,.45);
  --hover:rgba(40,56,69,.045); --hover-2:rgba(40,56,69,.08);
  --nav-bg:rgba(245,244,242,.78);
  --solid-bg:#283845; --solid-fg:#F5F4F2;
  --float-shadow:0 40px 100px -30px rgba(40,56,69,.28);
  --halo:0 0 100px -40px rgba(230,144,0,.3);
  --grad-1:#283845; --grad-2:#54687a;
  --hero-glow-a:rgba(230,144,0,.20); --hero-glow-b:rgba(59,86,107,.20);
  --ok-soft:rgba(22,163,74,.16);
}

/* ---------- 2. BASE (opt-in: <body class="fh-base">) ---------- */
.fh-base,.fh-base *,.fh-base *::before,.fh-base *::after{box-sizing:border-box}
html{background:var(--bg)}
.fh-base{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:15px;line-height:1.6;letter-spacing:-.011em;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv11","ss01";text-rendering:optimizeLegibility}
.fh-base a{color:inherit;text-decoration:none}
.fh-base ::selection{background:var(--accent-soft);color:var(--ink)}
.fh-wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
.fh-main{padding-top:var(--nav-h)}
:where(.fh-base) :focus-visible,.fh-focus:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}
.fh-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- 3. TYPE ---------- */
.fh-h1{margin:0;font-size:clamp(40px,6vw,68px);line-height:1.02;font-weight:600;letter-spacing:-.035em;text-wrap:balance}
.fh-h2{margin:0;font-size:clamp(28px,3.6vw,44px);line-height:1.08;font-weight:600;letter-spacing:-.03em;text-wrap:balance}
.fh-h3{margin:0;font-size:18px;line-height:1.33;font-weight:590;letter-spacing:-.012em}
.fh-h4{margin:0;font-size:16px;line-height:1.33;font-weight:590;letter-spacing:-.012em}
.fh-grad{background:linear-gradient(180deg,var(--grad-1) 30%,var(--grad-2) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.fh-accent-text,.fh-grad em{font-style:normal;background:linear-gradient(180deg,var(--orange-hi),var(--orange));-webkit-background-clip:text;background-clip:text;color:transparent}
.fh-lede{font-size:18px;line-height:1.55;color:var(--ink-3);text-wrap:pretty;margin:0}
.fh-body{font-size:15px;color:var(--ink-2)}
.fh-small{font-size:13px;line-height:1.5;letter-spacing:-.01em;color:var(--ink-3)}
.fh-eyebrow,.fh-micro{font-size:12px;line-height:1.4;font-weight:590;letter-spacing:.08em;text-transform:uppercase}
.fh-eyebrow{color:var(--accent)}
.fh-micro{color:var(--ink-4);font-size:11px}
.fh-mono{font-family:var(--mono);font-size:12px;letter-spacing:0;color:var(--ink-4)}
.fh-muted{color:var(--ink-3)} .fh-faint{color:var(--ink-4)}
.fh-kbd{font:11px/1 var(--mono);padding:3px 6px;border-radius:6px;color:var(--ink-3);box-shadow:inset 0 0 0 1px var(--line-2);background:var(--hover)}
.fh-divider{height:1px;background:var(--line);border:0;margin:var(--s-5) 0}

/* ---------- 4. LOGO (two <img>, one per theme) ---------- */
.fh-logo{display:inline-flex;align-items:center}
.fh-logo img{height:22px;width:auto;display:block}
.fh-logo .fh-on-light{display:none}
[data-theme="light"] .fh-logo .fh-on-dark{display:none}
[data-theme="light"] .fh-logo .fh-on-light{display:block}
.fh-compass{height:1em;width:1em;display:inline-block;vertical-align:-.12em}

/* ---------- 5. NAV (sticky, blurred, hairline) ---------- */
.fh-nav{position:fixed;inset:0 0 auto 0;height:var(--nav-h);z-index:50;background:var(--nav-bg);
  -webkit-backdrop-filter:blur(20px) saturate(1.4);backdrop-filter:blur(20px) saturate(1.4);border-bottom:1px solid var(--line)}
.fh-nav__inner{height:100%;max-width:var(--wrap);margin:0 auto;padding:0 24px;display:flex;align-items:center;gap:24px}
.fh-nav__links{display:flex;align-items:center;gap:4px;margin:0 auto;padding:0;list-style:none}
.fh-nav__links a{display:inline-flex;align-items:center;height:30px;padding:0 12px;border-radius:var(--r-full);font-size:13px;font-weight:510;color:var(--ink-3);transition:color var(--t-fast) var(--ease),background var(--t-fast) var(--ease)}
.fh-nav__links a:hover{color:var(--ink);background:var(--hover)}
.fh-nav__links a[aria-current="page"]{color:var(--ink);background:var(--hover-2)}
.fh-nav__actions{display:flex;align-items:center;gap:8px;margin-left:auto}
.fh-nav__links + .fh-nav__actions{margin-left:0}
/* mobile app switcher: <details class="fh-apps"> (no JS) */
.fh-apps{display:none;position:relative}
.fh-apps summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:var(--r-full);font-size:13px;font-weight:510;color:var(--ink-2);box-shadow:inset 0 0 0 1px var(--line-2)}
.fh-apps summary::-webkit-details-marker{display:none}
.fh-apps__menu{position:absolute;right:0;top:40px;min-width:210px;padding:6px;border-radius:var(--r-md);background:var(--bg-1);box-shadow:0 0 0 1px var(--line-2),var(--float-shadow)}
.fh-apps__menu a{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;border-radius:var(--r-sm);font-size:14px;color:var(--ink-2)}
.fh-apps__menu a:hover{background:var(--hover)}
.fh-apps__menu a[aria-current="page"]{color:var(--accent);background:var(--accent-soft)}
@media(max-width:900px){.fh-nav__links{display:none}.fh-apps{display:block}.fh-nav__actions{margin-left:auto}}
.fh-icon-btn{width:34px;height:34px;display:inline-grid;place-items:center;border-radius:var(--r-full);border:0;background:transparent;color:var(--ink-3);cursor:pointer;box-shadow:inset 0 0 0 1px var(--line);transition:color var(--t-fast) var(--ease),background var(--t-fast) var(--ease),transform var(--t-fast) var(--ease)}
.fh-icon-btn:hover{color:var(--ink);background:var(--hover)}
.fh-icon-btn:active{transform:scale(.94)}
.fh-icon-btn svg{width:16px;height:16px}
/* theme toggle shows sun in dark, moon in light */
.fh-theme-toggle .fh-i-moon{display:none}
[data-theme="light"] .fh-theme-toggle .fh-i-sun{display:none}
[data-theme="light"] .fh-theme-toggle .fh-i-moon{display:block}

/* ---------- 6. BUTTONS ---------- */
.fh-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:36px;padding:0 16px;border:0;border-radius:var(--r-full);font:510 13px/1 var(--font);letter-spacing:-.01em;cursor:pointer;white-space:nowrap;
  color:var(--ink);background:transparent;transition:transform var(--t-fast) var(--ease),filter var(--t-fast) var(--ease),background var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}
.fh-btn:active{transform:scale(.97)}
.fh-btn:disabled,.fh-btn[aria-disabled="true"]{opacity:.45;pointer-events:none}
.fh-btn--sm{height:30px;padding:0 12px;font-size:12px}
.fh-btn--lg{height:44px;padding:0 22px;font-size:14px}
.fh-btn--solid{background:var(--solid-bg);color:var(--solid-fg)}
.fh-btn--solid:hover{filter:brightness(.92)}
.fh-btn--orange{background:var(--accent);color:var(--on-accent);box-shadow:0 0 0 1px rgba(255,255,255,.18) inset,0 8px 24px -8px rgba(230,144,0,.55)}
.fh-btn--orange:hover{background:var(--accent-hi)}
.fh-btn--ghost{color:var(--ink-2);box-shadow:inset 0 0 0 1px var(--line-2)}
.fh-btn--ghost:hover{background:var(--hover);color:var(--ink)}
.fh-btn--danger{color:var(--danger);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--danger) 40%,transparent)}
.fh-btn--danger:hover{background:color-mix(in srgb,var(--danger) 12%,transparent)}
.fh-btn--text{height:auto;padding:0;color:var(--accent)} .fh-btn--text:hover{color:var(--accent-hi)}

/* ---------- 7. CARDS (hairline + mouse glow) ---------- */
.fh-card{position:relative;padding:24px;border-radius:var(--r-lg);background:var(--bg-1);box-shadow:inset 0 0 0 1px var(--line);overflow:hidden;
  transition:box-shadow var(--t-med) var(--ease),transform var(--t-med) var(--ease),background var(--t-med) var(--ease)}
.fh-card::before{content:"";position:absolute;inset:0;opacity:0;transition:opacity .3s var(--ease);pointer-events:none;
  background:radial-gradient(360px circle at var(--mx,50%) var(--my,0%),var(--accent-soft),transparent 60%)}
.fh-card:hover{box-shadow:inset 0 0 0 1px var(--line-2);transform:translateY(-2px)}
.fh-card:hover::before{opacity:1}
.fh-card > *{position:relative}
.fh-card--flat:hover{transform:none}
.fh-card--static{transition:none} .fh-card--static:hover{transform:none;box-shadow:inset 0 0 0 1px var(--line)} .fh-card--static::before{display:none}
.fh-card--raised{background:var(--bg-2)}
.fh-card--pad-sm{padding:16px}
a.fh-card,button.fh-card{display:block;color:inherit;text-align:left;font:inherit;border:0;cursor:pointer;width:100%}
.fh-panel{border-radius:var(--r-lg);background:var(--bg-1);box-shadow:inset 0 0 0 1px var(--line)}
.fh-ico{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;color:var(--accent);
  background:linear-gradient(180deg,var(--hover-2),var(--hover));box-shadow:inset 0 0 0 1px var(--line-2)}
.fh-ico svg{width:18px;height:18px}
.fh-grid{display:grid;gap:16px}
.fh-grid--2{grid-template-columns:repeat(2,1fr)} .fh-grid--3{grid-template-columns:repeat(3,1fr)} .fh-grid--4{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.fh-grid--3,.fh-grid--4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.fh-grid--2,.fh-grid--3,.fh-grid--4{grid-template-columns:1fr}}

/* ---------- 8. PILLS / BADGES / CHIPS ---------- */
.fh-pill{display:inline-flex;align-items:center;gap:8px;height:28px;padding:0 12px;border-radius:var(--r-full);font-size:12px;color:var(--ink-2);background:var(--hover);box-shadow:inset 0 0 0 1px var(--line-2)}
.fh-pill .fh-dot{width:6px;height:6px}
.fh-badge{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 9px;border-radius:var(--r-full);font-size:11px;font-weight:590;letter-spacing:.01em;color:var(--ink-2);background:var(--hover);box-shadow:inset 0 0 0 1px var(--line)}
.fh-badge--orange{color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent-line)}
.fh-badge--green{color:var(--ok);background:var(--ok-soft);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ok) 35%,transparent)}
.fh-badge--red{color:var(--danger);background:color-mix(in srgb,var(--danger) 14%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--danger) 35%,transparent)}
.fh-badge--navy{color:var(--ink);background:color-mix(in srgb,var(--navy-glow) 35%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--navy-glow) 60%,transparent)}
.fh-chip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border:0;border-radius:var(--r-full);font:510 13px/1 var(--font);color:var(--ink-3);background:transparent;box-shadow:inset 0 0 0 1px var(--line);cursor:pointer;transition:all var(--t-fast) var(--ease)}
.fh-chip:hover{color:var(--ink);background:var(--hover)}
.fh-chip[aria-pressed="true"],.fh-chip.is-on{color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent-line)}
.fh-seg{display:inline-flex;padding:3px;border-radius:var(--r-full);background:var(--hover);box-shadow:inset 0 0 0 1px var(--line)}
.fh-seg button{height:28px;padding:0 14px;border:0;border-radius:var(--r-full);background:transparent;color:var(--ink-3);font:510 13px/1 var(--font);cursor:pointer}
.fh-seg button[aria-pressed="true"],.fh-seg button.is-on{background:var(--bg-2);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line-2)}

/* ---------- 9. FORMS ---------- */
.fh-label{display:block;margin:0 0 6px;font-size:12px;font-weight:510;color:var(--ink-3)}
.fh-input,.fh-select,.fh-textarea{width:100%;height:40px;padding:0 14px;border:0;border-radius:var(--r-sm);font:400 14px/1.4 var(--font);letter-spacing:-.011em;color:var(--ink);background:var(--bg-1);
  box-shadow:inset 0 0 0 1px var(--line-2);transition:box-shadow var(--t-fast) var(--ease),background var(--t-fast) var(--ease)}
.fh-textarea{height:auto;min-height:96px;padding:10px 14px;resize:vertical}
.fh-select{appearance:none;-webkit-appearance:none;padding-right:34px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238A9097' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}
.fh-input::placeholder,.fh-textarea::placeholder{color:var(--ink-4)}
.fh-input:hover,.fh-select:hover,.fh-textarea:hover{box-shadow:inset 0 0 0 1px var(--ink-4)}
.fh-input:focus,.fh-select:focus,.fh-textarea:focus{outline:none;box-shadow:inset 0 0 0 1.5px var(--accent),0 0 0 4px var(--accent-soft)}
.fh-input[aria-invalid="true"]{box-shadow:inset 0 0 0 1.5px var(--danger)}
.fh-input--search{padding-left:38px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238A9097' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:13px center}
.fh-field{display:block;margin-bottom:16px}
.fh-error{margin:8px 0 0;font-size:13px;color:var(--danger)}
.fh-check{accent-color:var(--accent)}

/* ---------- 10. TABLE ---------- */
.fh-table-wrap{overflow-x:auto;border-radius:var(--r-lg);background:var(--bg-1);box-shadow:inset 0 0 0 1px var(--line)}
.fh-table{width:100%;border-collapse:collapse;font-size:13px}
.fh-table th{padding:10px 16px;text-align:left;font-size:11px;font-weight:590;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4);border-bottom:1px solid var(--line);white-space:nowrap}
.fh-table td{padding:12px 16px;border-top:1px solid var(--line);color:var(--ink-2);vertical-align:middle}
.fh-table tbody tr:first-child td{border-top:0}
.fh-table tbody tr{transition:background var(--t-fast) var(--ease)}
.fh-table tbody tr:hover{background:var(--hover)}
.fh-table .num,.fh-table td.fh-mono{font-family:var(--mono);font-size:12px;color:var(--ink-3)}

/* ---------- 11. STATUS DOT / AVATAR / ROWS ---------- */
.fh-dot{display:inline-block;flex:none;width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px var(--ok-soft);animation:fh-pulse 2.4s infinite}
.fh-dot--off{background:var(--ink-4);box-shadow:none;animation:none;opacity:.55}
.fh-dot--orange{background:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);animation:none}
@keyframes fh-pulse{50%{box-shadow:0 0 0 6px transparent}}
.fh-avatar{position:relative;flex:none;width:28px;height:28px;border-radius:50%;display:inline-grid;place-items:center;overflow:hidden;font-size:11px;font-weight:590;color:#F4F4F2;letter-spacing:0;
  background:linear-gradient(135deg,var(--navy-glow),var(--navy));box-shadow:0 0 0 1px var(--line-2)}
.fh-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.fh-avatar--sm{width:22px;height:22px;font-size:9px} .fh-avatar--lg{width:44px;height:44px;font-size:14px} .fh-avatar--xl{width:72px;height:72px;font-size:22px}
.fh-avatar--ring{box-shadow:0 0 0 2px var(--bg-1),0 0 0 3px var(--accent)}
.fh-avatars{display:inline-flex} .fh-avatars .fh-avatar{margin-left:-8px;box-shadow:0 0 0 2px var(--bg-1)} .fh-avatars .fh-avatar:first-child{margin-left:0}
.fh-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line);font-size:13px}
.fh-row .fh-t{margin-left:auto;font:11px var(--mono);color:var(--ink-4)}

/* ---------- 12. HERO / MOCKUP / SECTIONS / FOOTER ---------- */
.fh-hero{position:relative;padding:calc(var(--nav-h) + 80px) 0 72px;text-align:center;overflow:hidden}
.fh-hero::before{content:"";position:absolute;left:50%;top:-220px;width:1100px;max-width:160vw;height:720px;transform:translateX(-50%);pointer-events:none;filter:blur(8px);
  background:radial-gradient(ellipse 50% 50% at 50% 40%,var(--hero-glow-a),transparent 70%),radial-gradient(ellipse 65% 60% at 50% 30%,var(--hero-glow-b),transparent 72%)}
.fh-hero::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.35;
  background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:64px 64px;
  -webkit-mask-image:radial-gradient(ellipse 60% 70% at 50% 0%,#000 0%,transparent 75%);mask-image:radial-gradient(ellipse 60% 70% at 50% 0%,#000 0%,transparent 75%)}
.fh-hero > *{position:relative;z-index:1}
.fh-hero--left{text-align:left}
.fh-hero--compact{padding:calc(var(--nav-h) + 40px) 0 32px}
.fh-section{padding:var(--s-9) 0 24px}
@media(max-width:700px){.fh-section{padding-top:64px}.fh-hero{padding-top:calc(var(--nav-h) + 48px)}}
.fh-shot{position:relative;border-radius:var(--r-xl);background:var(--bg-1);overflow:hidden;text-align:left;box-shadow:0 0 0 1px var(--line),var(--float-shadow),var(--halo)}
.fh-shot--fade::after{content:"";position:absolute;inset:auto 0 0 0;height:140px;background:linear-gradient(180deg,transparent,var(--bg));pointer-events:none}
.fh-bar{height:40px;display:flex;align-items:center;gap:7px;padding:0 14px;border-bottom:1px solid var(--line);background:var(--hover)}
.fh-bar b{width:10px;height:10px;border-radius:50%;background:var(--line-2)}
.fh-bar span{margin-left:12px;font-size:12px;color:var(--ink-4)}
.fh-menu{padding:6px;border-radius:var(--r-md);background:var(--bg-1);box-shadow:0 0 0 1px var(--line-2),var(--float-shadow)}
.fh-modal-backdrop{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:24px;background:rgba(5,6,8,.62);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
[data-theme="light"] .fh-modal-backdrop{background:rgba(40,56,69,.35)}
.fh-modal{width:100%;max-width:560px;max-height:calc(100vh - 48px);overflow:auto;padding:28px;border-radius:var(--r-xl);background:var(--bg-1);box-shadow:0 0 0 1px var(--line-2),var(--float-shadow)}
.fh-footer{margin-top:var(--s-9);border-top:1px solid var(--line);padding:32px 0 48px;color:var(--ink-4);font-size:13px}
.fh-footer__inner{max-width:var(--wrap);margin:0 auto;padding:0 24px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.fh-footer .fh-logo img{height:18px;opacity:.85}
.fh-footer a{color:var(--ink-3)} .fh-footer a:hover{color:var(--ink)}
.fh-footer__links{display:flex;gap:20px;flex-wrap:wrap}
.fh-skeleton{border-radius:var(--r-sm);background:linear-gradient(90deg,var(--hover) 25%,var(--hover-2) 50%,var(--hover) 75%);background-size:200% 100%;animation:fh-shimmer 1.4s infinite linear}
@keyframes fh-shimmer{to{background-position:-200% 0}}

/* ---------- 13. REVEAL (fade + 16px rise; stagger with style="--d:.08s") ---------- */
.fh-js .fh-reveal{opacity:0;transform:translateY(16px);transition:opacity var(--t-slow) var(--ease),transform var(--t-slow) var(--ease);transition-delay:var(--d,0s)}
.fh-js .fh-reveal.in{opacity:1;transform:none}
.fh-fade-in{animation:fh-fade .5s var(--ease) both} @keyframes fh-fade{from{opacity:0;transform:translateY(6px)}}

/* ---------- 14. REDUCED MOTION ---------- */
@media (prefers-reduced-motion:reduce){
  .fh-js .fh-reveal{opacity:1;transform:none;transition:none}
  .fh-dot,.fh-skeleton,.fh-fade-in{animation:none}
  .fh-card,.fh-btn,.fh-card::before{transition:none}
  .fh-card:hover{transform:none}
}

/* ---------- 15. BRAND LOCKUP = LINK TO HUB HOME ---------- */
.fh-home{display:inline-flex;align-items:center;gap:inherit;color:inherit;text-decoration:none;cursor:pointer;border-radius:var(--r-sm,6px)}
.fh-home img,.fh-home .fh-badge{cursor:pointer}
.fh-home:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
