/* ===========================================================================
   Fanfare design system — ported from the Fanfare Desktop/Landing mockups.
   Shared tokens + component classes used by the rebuilt storefront + dashboard.
   Load AFTER Tailwind so these win where used; components opt in via classes.
   =========================================================================== */

:root{
  --ink:#101c40;--ink2:#5f6a86;--cream:#eef2fb;--card:#fff;
  --blush:#e6edff;--blush2:#c7d7ff;--mag:#1b4fe0;--mag2:#1236b8;--coral:#3d8bff;
  --bl1:#0e2a90;--bl2:#2f54e6;--grn:#12c28b;--grn2:#0ea675;
  --line:rgba(20,30,60,.10);--ok:#16a34a;--ok2:#e7f7ec;--blue:#2f6bff;--blue2:#e6eeff;
  --amber:#c97a09;--amber2:#fff1d6;
}
.acc-violet{--mag:#7a2ff7;--mag2:#6322d6;--coral:#c026d3;--blush:#efe6ff;--blush2:#ddc9ff}
.acc-coral{--mag:#ff5630;--mag2:#e7431f;--coral:#ff9e2c;--blush:#ffe7de;--blush2:#ffd0bf}
.acc-blue{--mag:#2f6bff;--mag2:#1f55e0;--coral:#16c2d6;--blush:#e3edff;--blush2:#c8d9ff}

/* ---- base / typography ------------------------------------------------- */
.ff{font-family:'Hanken Grotesk',system-ui,sans-serif;color:var(--ink);background-color:#eef1fb;background-image:radial-gradient(1000px 520px at 50% -150px,rgba(27,79,224,.12),transparent 60%),radial-gradient(840px 460px at 96% 3%,rgba(47,84,230,.12),transparent 58%),radial-gradient(760px 640px at 1% 24%,rgba(122,47,247,.08),transparent 60%);background-repeat:no-repeat;font-size:17px;line-height:1.5;-webkit-font-smoothing:antialiased}
.ff *{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
.ff-disp{font-family:'Bricolage Grotesque','Hanken Grotesk',sans-serif}
.ff-mono{font-family:'Space Mono',monospace}
.ff-ic{font-family:'Material Symbols Rounded';font-weight:normal;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;direction:ltr;font-variation-settings:'FILL' 1,'wght' 500,'GRAD' 0,'opsz' 24;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:middle}
.ff-wrap{max-width:1200px;margin:0 auto;padding:0 40px}
.ff-kick{font-family:'Space Mono',monospace;font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--mag)}
.ff-h1{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:66px;line-height:.98;letter-spacing:-.035em;text-wrap:balance}
.ff-h2{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:42px;line-height:1.03;letter-spacing:-.025em;text-wrap:balance}
.ff-h3{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:21px;line-height:1.12;letter-spacing:-.01em}
.ff-lead{font-size:18px;line-height:1.55;color:var(--ink2);text-wrap:pretty}
.ff-sm{font-size:14px}.ff-xs{font-size:12.5px}.ff-muted{color:var(--ink2)}.ff-mag{color:var(--mag)}.ff-white{color:#fff}.ff-center{text-align:center}
.ff-sec{padding:96px 0}.ff-sech{text-align:center;max-width:620px;margin:0 auto 56px}
/* Section rhythm modifiers — desktop values here, Landing-mobile values in the ≤820px block */
.ff-sec-platforms{padding-top:30px}
.ff-sec-marquee,.ff-sec-grow,.ff-sec-stats{padding-top:0}
.ff-sec-white{background:#fff}
.ff-sec-pay{display:none}
/* Landing fade-up entrance (hero) */
@keyframes ff-fup{from{transform:translateY(20px)}to{transform:translateY(0)}}
.ff-fup{animation:ff-fup .6s cubic-bezier(.2,.8,.2,1) both;animation-delay:.05s}
@media(prefers-reduced-motion:reduce){.ff-fup{animation:none}}

/* ---- buttons ----------------------------------------------------------- */
.ff-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:'Hanken Grotesk',sans-serif;font-weight:700;font-size:16px;border:none;border-radius:999px;padding:15px 26px;cursor:pointer;transition:transform .12s ease,box-shadow .22s ease,background .2s;text-decoration:none;white-space:nowrap;line-height:1}
.ff-btn:active{transform:scale(.97)}
.ff-btn:disabled{opacity:.45;box-shadow:none;cursor:not-allowed;transform:none;pointer-events:none}
.ff-btn .ff-ic{font-size:20px}
.ff-btn-p{background:var(--grn);color:#fff;box-shadow:0 12px 26px -8px var(--grn)}
.ff-btn-p:hover{box-shadow:0 18px 34px -8px var(--grn);transform:translateY(-1px)}
.ff-btn-d{background:var(--ink);color:#fff}
.ff-btn-g{background:#fff;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--line)}
.ff-btn-g:hover{box-shadow:inset 0 0 0 1.5px var(--mag);color:var(--mag)}
.ff-btn-w{background:#fff;color:var(--mag)}
.ff-btn-lg{padding:18px 32px;font-size:17px}
.ff-block{width:100%}

.ff-tag{display:inline-flex;align-items:center;gap:7px;background:var(--blush);color:var(--mag2);border-radius:999px;padding:8px 15px;font-size:13px;font-weight:700}
.ff-tag .ff-ic{font-size:17px}

/* ---- top offer bar ------------------------------------------------------ */
.ff-offerbar{display:flex;align-items:center;justify-content:center;gap:14px;padding:8px 16px;background:linear-gradient(90deg,var(--bl1),var(--mag) 55%,var(--bl2));color:#fff;font-size:12.5px;font-weight:700;letter-spacing:.01em}
.ff-offerbar span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.ff-offerbar .ff-ic{font-size:15px;opacity:.95}
.ff-offerbar-sep{width:3px;height:3px;border-radius:50%;background:rgba(255,255,255,.45)}
@media(max-width:640px){.ff-offerbar{gap:10px;font-size:11.5px;padding:7px 12px}.ff-offerbar-optional{display:none!important}}

/* ---- nav --------------------------------------------------------------- */
.ff-nav{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;padding:16px 40px;background:rgba(255,255,255,.72);backdrop-filter:blur(18px) saturate(140%);border-bottom:1px solid rgba(20,30,60,.06);transition:box-shadow .25s,padding .22s,background .22s,border-color .22s}
.ff-nav.sc{padding:11px 40px;background:rgba(255,255,255,.86);border-bottom-color:rgba(20,30,60,.09);box-shadow:0 10px 30px -20px rgba(20,30,60,.28)}
.ff-brand{display:flex;align-items:center;gap:8px;font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:24px;letter-spacing:-.02em}
.ff-brand .ff-ic{color:var(--mag);font-size:26px}
.ff-brandlogo{height:34px;max-width:170px;width:auto;object-fit:contain;display:block}
.ff-foot .ff-brandlogo{height:38px}
/* Bundled Stillviral wordmark: wide aspect ratio, so size by height only */
.ff-brandlogo-sv{height:26px;max-width:none}
.ff-foot .ff-brandlogo-sv,.ff-menu .ff-brandlogo-sv{height:28px}
.ff-cobar .ff-brandlogo-sv{height:24px}
.ff-dash .abrand .ff-brandlogo-sv,.ff-dash .side-brand .ff-brandlogo-sv{height:25px}
@media(max-width:820px){.ff-brandlogo-sv{height:22px}.ff-foot .ff-brandlogo-sv,.ff-menu .ff-brandlogo-sv{height:24px}}
.ff-navlink{background:none;border:none;font-family:inherit;font-weight:600;font-size:15px;color:var(--ink);padding:9px 14px;border-radius:999px;cursor:pointer;transition:.18s}
.ff-navlink:hover{background:var(--blush);color:var(--mag2)}
.ff-chrome{min-height:100vh;background:#eef1fb}
.ff-chrome-main{min-height:0}
.ff-brandlink{border:none;background:transparent;color:inherit;padding:0;cursor:pointer;text-decoration:none;text-align:left}
.ff-brandlink:hover{color:inherit}
.ff-chrome-actions{display:flex;align-items:center;gap:6px;min-width:0}
.ff-chrome-navlinks{display:flex;align-items:center;gap:3px;min-width:0}
.ff-chrome-navlinks .ff-navlink{display:inline-flex;align-items:center;text-decoration:none;white-space:nowrap}
.ff-chrome-login{padding:11px 20px}
.ff-chrome-cart{position:relative}
.ff-chrome .ff-footgrid{grid-template-columns:1.35fr repeat(4,minmax(0,1fr))}
.ff-chrome-paystrip{justify-content:flex-start;margin-top:22px}
.ff-chrome-menuhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.ff-chrome-menuctas{margin-top:auto}
@media(max-width:1120px){.ff-chrome-config-link{display:none!important}}

/* ---- hero -------------------------------------------------------------- */
.ff-hero{display:grid;grid-template-columns:1.05fr .95fr;gap:50px;align-items:center;padding:70px 0 90px}
.ff-hero-solo{grid-template-columns:1fr;justify-items:center;text-align:center;padding:64px 0 30px}
.ff-hero-solo .ff-fup{max-width:760px}
.ff-hero-solo .ff-tag{margin-bottom:4px}
.ff-sec-platforms{padding-top:18px}
.ff-heropanel{position:relative;border-radius:32px;background:linear-gradient(160deg,#16308f,#2f54e6);padding:46px;display:flex;justify-content:center;overflow:hidden}
.ff-glow{position:absolute;border-radius:50%;filter:blur(60px);pointer-events:none}
.ff-trustline{display:flex;gap:22px;align-items:center;margin-top:30px;flex-wrap:wrap}
.ff-trustline span{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:14px;color:var(--ink2)}
.ff-trustline .ff-ic{color:var(--mag);font-size:18px}

/* ---- platform grid ----------------------------------------------------- */
.ff-searchbox{display:flex;align-items:center;gap:10px;background:#fff;border:1.5px solid var(--line);border-radius:16px;padding:0 18px;max-width:440px;margin:0 auto 32px}
.ff-searchbox:focus-within{border-color:var(--mag)}
.ff-searchin{flex:1;border:none;outline:none;background:transparent;padding:15px 0;font-family:inherit;font-size:16px;color:var(--ink)}
.ff-searchbox .ff-ic{color:var(--ink2);font-size:22px}
.ff-pgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.ff-pcard{display:flex;align-items:center;gap:15px;background:#fff;border:none;border-radius:20px;padding:18px 20px;box-shadow:inset 0 0 0 1px var(--line);cursor:pointer;text-align:left;transition:transform .14s ease,box-shadow .2s ease;font-family:inherit}
.ff-pcard:hover{transform:translateY(-3px);box-shadow:inset 0 0 0 1.5px var(--mag),0 20px 36px -18px var(--mag)}
.ff-pcard:active{transform:scale(.98)}
.ff-ptile{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-family:'Bricolage Grotesque',sans-serif;font-size:17px;flex-shrink:0;overflow:hidden}
.ff-pcard .ff-ptile{width:60px;height:60px;border-radius:17px;font-size:22px}
.ff-ptile-soft{box-shadow:inset 0 0 0 1px rgba(20,30,60,.06)}
.ff-plogo{width:58%;height:58%;object-fit:contain;display:block}
.ff-pname{font-size:17px;font-weight:800;letter-spacing:-.01em;display:block}

/* ---- features / how it works ------------------------------------------ */
.ff-whygrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.ff-feat{background:#fff;border-radius:22px;padding:26px;box-shadow:inset 0 0 0 1px var(--line);transition:transform .16s,box-shadow .2s}
.ff-feat:hover{transform:translateY(-4px);box-shadow:0 24px 48px -22px rgba(11,21,51,.28)}
.ff-fi{width:52px;height:52px;border-radius:15px;display:flex;align-items:center;justify-content:center;color:#fff;margin-bottom:18px}
.ff-fi .ff-ic{font-size:28px}
.ff-fg1{background:var(--mag)}.ff-fg2{background:linear-gradient(135deg,var(--coral),var(--mag))}.ff-fg3{background:var(--ink)}.ff-fg4{background:var(--mag2)}.ff-fg5{background:var(--coral)}.ff-fg6{background:linear-gradient(135deg,var(--ink),var(--mag))}
.ff-howgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.ff-stepn{font-family:'Space Mono',monospace;font-weight:700;font-size:15px;color:var(--mag);background:var(--blush);width:44px;height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;margin-bottom:16px}
/* .ff-step: stacked on desktop (chip above text); Landing horizontal row ≤820px */
.ff-step{display:block}

/* ---- stats band -------------------------------------------------------- */
.ff-statsband{background:var(--ink);color:#fff;border-radius:30px;padding:48px;display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.ff-num{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:48px;line-height:1;letter-spacing:-.02em}
.ff-slabel{font-size:14px;color:rgba(255,255,255,.55);margin-top:8px}

/* ---- reviews ----------------------------------------------------------- */
.ff-tgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.ff-testi{background:#fff;border-radius:22px;padding:28px;box-shadow:inset 0 0 0 1px var(--line)}
.ff-quote{font-family:'Bricolage Grotesque',sans-serif;font-weight:600;font-size:18px;line-height:1.4;letter-spacing:-.01em}
.ff-ava{border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-family:'Bricolage Grotesque',sans-serif;flex-shrink:0}

/* ---- pricing ----------------------------------------------------------- */
.ff-tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:start}
.ff-price{background:#fff;border-radius:24px;padding:30px;box-shadow:inset 0 0 0 1px var(--line)}
.ff-perks{display:flex;flex-direction:column;gap:12px;margin:18px 0}
.ff-price.sel{box-shadow:0 0 0 2.5px var(--mag),0 30px 60px -28px var(--mag);transform:translateY(-8px)}
.ff-hotbadge{background:var(--mag);color:#fff;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:5px 11px;border-radius:999px}
.ff-perk{display:flex;gap:10px;align-items:center;font-size:15px;font-weight:500}
.ff-perk .ff-ic{color:var(--mag);font-size:21px;flex-shrink:0}

/* ---- faq --------------------------------------------------------------- */
.ff-faq{display:grid;grid-template-columns:.8fr 1.2fr;gap:40px;align-items:start}
.ff-faqitem{border-bottom:1px solid var(--line)}
.ff-faqq{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 0;cursor:pointer;font-weight:700;font-size:18px}
.ff-faqic{color:var(--mag);transition:transform .25s;font-size:26px}
.ff-faqq.open .ff-faqic{transform:rotate(180deg)}
.ff-faqa{font-size:15.5px;color:var(--ink2);line-height:1.6;max-height:0;opacity:0;overflow:hidden;transition:max-height .32s ease,opacity .25s,padding .25s}
.ff-faqa.open{max-height:260px;opacity:1;padding-bottom:22px}

/* ---- final CTA + footer ------------------------------------------------ */
.ff-final{background:linear-gradient(150deg,var(--bl1),var(--bl2));border-radius:34px;padding:80px 40px;color:#fff;text-align:center;position:relative;overflow:hidden}
.ff-paystrip{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:26px}
.ff-paypill{display:inline-flex;align-items:center;justify-content:center;background:#fff;border-radius:11px;padding:9px 14px;font-weight:700;font-size:14px;box-shadow:inset 0 0 0 1px var(--line)}
.ff-paypill img{height:18px;width:auto;max-width:84px;object-fit:contain;display:block}
.ff-foot{background:var(--ink);color:#fff;padding:64px 0 40px}
.ff-fhead{font-size:12px;text-transform:uppercase;letter-spacing:.14em;color:rgba(255,255,255,.45);font-weight:700;margin-bottom:14px}
.ff-flink{color:rgba(255,255,255,.7);text-decoration:none;font-size:15px;display:block;padding:7px 0;cursor:pointer}
.ff-flink:hover{color:#fff}
/* Landing footer extras: social pills (mobile-only) + copyright divider */
.ff-fsoc{display:none;gap:8px;margin-top:20px;flex-wrap:wrap}
.ff-fsoc a{font-size:12px;font-weight:600;color:#fff;background:rgba(255,255,255,.1);border-radius:999px;padding:8px 14px;text-decoration:none;cursor:pointer}
.ff-footcopy{margin-top:44px;padding-top:24px;border-top:1px solid rgba(255,255,255,.12)}

@media(max-width:1000px){.ff-hero{grid-template-columns:1fr}.ff-pgrid{grid-template-columns:repeat(3,1fr)}.ff-whygrid,.ff-howgrid,.ff-tgrid,.ff-tiers{grid-template-columns:1fr}.ff-statsband{grid-template-columns:1fr 1fr}.ff-faq{grid-template-columns:1fr}}
@media(max-width:640px){.ff-wrap{padding:0 20px}.ff-h1{font-size:44px}.ff-h2{font-size:30px}.ff-pgrid{grid-template-columns:1fr 1fr}.ff-sec{padding:56px 0}}

/* ---- service view (package grid) — ported from Fanfare Desktop svcview ---- */
.ff-svchead{background:rgba(238,242,251,.92);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.ff-svcheadtop{max-width:1200px;margin:0 auto;padding:18px 40px;display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.ff-svctabs{max-width:1200px;margin:0 auto;padding:0 40px 14px;display:flex;gap:8px;flex-wrap:wrap}
.ff-svchead-embedded{position:static;background:transparent;backdrop-filter:none;border-bottom:none;z-index:auto}
.ff-svchead-embedded .ff-svctabs{padding-top:24px;padding-bottom:0}
.ff-svctab{border:none;background:#fff;box-shadow:inset 0 0 0 1.5px var(--line);color:var(--ink);font-family:inherit;font-weight:700;font-size:14px;padding:10px 18px;border-radius:999px;cursor:pointer;white-space:nowrap;transition:.18s}
.ff-svctab:hover{color:var(--mag);box-shadow:inset 0 0 0 1.5px var(--mag)}
.ff-svctab.on{background:var(--mag);color:#fff;box-shadow:0 10px 22px -10px var(--mag)}
/* service landing hero */
.ff-svchero{position:relative;text-align:center;padding:38px 0 4px}
.ff-svchero-in{display:flex;flex-direction:column;align-items:center}
.ff-svchero-tile{width:64px;height:64px;border-radius:19px;font-size:25px;box-shadow:0 22px 44px -22px rgba(11,21,51,.42)}
.ff-svchero-title{margin:12px 0 0}
.ff-svchero-sub{max-width:590px;margin:14px auto 0}
.ff-svchero-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:9px;margin-top:22px}
.ff-svchero-chips span{display:inline-flex;align-items:center;gap:6px;background:#fff;border-radius:999px;padding:8px 14px;font-size:13px;font-weight:700;box-shadow:inset 0 0 0 1.5px var(--line)}
.ff-svchero-chips .ff-ic{color:var(--mag);font-size:16px}
.ff-svchero-tabs{justify-content:center;margin-top:30px;padding:0;max-width:none}
.ff-svcbody{padding:44px 0 90px}
.ff-pkgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px 16px}
.ff-pkgcard{position:relative;display:flex;flex-direction:column;background:#fff;border-radius:20px;padding:22px;box-shadow:inset 0 0 0 1px var(--line);transition:transform .15s ease,box-shadow .22s ease}
.ff-pkgcard:hover{transform:translateY(-4px);box-shadow:0 24px 48px -22px rgba(11,21,51,.28)}
.ff-pkgcard.pop{box-shadow:0 0 0 2.5px var(--mag),0 28px 56px -26px var(--mag)}
.ff-popribbon{position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:var(--mag);color:#fff;font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:5px 13px;border-radius:999px;white-space:nowrap;box-shadow:0 8px 18px -8px var(--mag)}
.ff-pkgplat{font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--mag)}
.ff-pkgqty{font-size:14px;font-weight:600;color:var(--ink2);margin:7px 0 16px}
.ff-pkgqty .ff-disp{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:30px;letter-spacing:-.02em;color:var(--ink);display:block;line-height:1.04;margin-bottom:2px}
.ff-pkgfeats{display:flex;flex-direction:column;gap:9px;margin-bottom:18px}
.ff-pkgfeat{display:flex;gap:8px;align-items:center;font-size:13.5px;font-weight:500;color:var(--ink)}
.ff-pkgfeat .ff-ic{color:var(--mag);font-size:18px;flex-shrink:0}
.ff-pkgprice{margin-top:auto;margin-bottom:14px}
.ff-pkgwas{display:flex;align-items:center;gap:8px;margin-bottom:3px}
.ff-pkgwas s{color:var(--ink2);font-size:14px}
.ff-pkgoff{background:var(--blush);color:var(--mag2);font-weight:800;font-size:11px;padding:3px 8px;border-radius:999px}
.ff-pkgnow{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:30px;letter-spacing:-.02em;line-height:1}
.ff-scrim{position:fixed;inset:0;z-index:60;background:rgba(9,15,35,.55);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:24px}
.ff-modal{width:420px;max-width:100%;background:#fff;border-radius:26px;padding:28px;box-shadow:0 40px 90px -30px rgba(11,21,51,.5)}
.ff-flabel{font-family:'Space Mono',monospace;font-size:10.5px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink2);font-weight:700}
.ff-input{width:100%;border:1.5px solid var(--line);border-radius:13px;padding:14px;font-size:16px;font-family:inherit;color:var(--ink);outline:none;background:#fff}
.ff-input:focus{border-color:var(--mag)}
.ff-linkfield{display:flex;align-items:center;border:1.5px solid var(--line);border-radius:13px;overflow:hidden}
.ff-linkfield .ff-input{border:none;border-radius:0}
.ff-linkfield:focus-within{border-color:var(--mag)}
.ff-pfx{padding-left:14px;color:var(--ink2);font-size:15px}
@media(max-width:1000px){.ff-pkgrid{grid-template-columns:repeat(2,1fr)}.ff-svcheadtop,.ff-svctabs{padding-left:20px;padding-right:20px}}
@media(max-width:560px){.ff-pkgrid{grid-template-columns:1fr}}

/* ---- checkout (native Fanfare checkout design) ------------------------- */
.ff-checkout{background:var(--cream)!important;color:var(--ink);padding:0}
.ff-cobar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 34px;background:rgba(238,242,251,.85);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.ff-cobar .ff-brand{font-size:23px}
.ff-cobar .ff-brand .ff-ic{font-size:25px}
.ff-securepill{display:inline-flex;align-items:center;gap:7px;font-weight:700;font-size:13.5px;color:var(--ink2)}
.ff-securepill .ff-ic{color:var(--grn);font-size:19px}
.ff-securepill-m{display:none}
.ff-cobak-m{display:none!important}
.ff-cobak-d{padding:10px 18px!important;font-size:14px!important}
.ff-cowrap{max-width:1120px;margin:0 auto;padding:40px 34px 90px;display:grid;grid-template-columns:1.42fr .9fr;gap:30px;align-items:start}
.ff-cocol{display:flex;flex-direction:column;gap:20px;min-width:0}
.ff-cohead .ff-h2{margin:9px 0 0;font-size:40px}
.ff-cosec{background:#fff;border-radius:20px;padding:22px;box-shadow:inset 0 0 0 1px var(--line)}
.ff-coside{position:sticky;top:92px;background:#fff;border-radius:22px;padding:22px;box-shadow:0 34px 64px -36px rgba(11,21,51,.34),inset 0 0 0 1px var(--line);min-width:0}
.ff-cosidehead{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px}
.ff-cosidehead .ff-disp{font-size:20px;font-weight:800}
.ff-cosideacts{display:flex;align-items:center;gap:10px}
.ff-cochange{background:none;border:none;padding:0;font-family:inherit;font-size:13.5px;font-weight:700;color:var(--mag);cursor:pointer}
.ff-cochange:hover{color:var(--mag2)}
.ff-cochange:disabled{color:var(--ink2);opacity:.5;cursor:not-allowed}
.ff-colabel{display:block;font-family:'Space Mono',monospace!important;font-size:11px!important;text-transform:uppercase;letter-spacing:.12em;color:var(--ink2)!important;font-weight:700!important;margin-bottom:9px}
.ff-colabel .ff-coreq{color:var(--mag)}
.ff-cofield{display:flex;flex-direction:column;min-width:0}
.ff-corow{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ff-cospan2{grid-column:1/-1}
.ff-cohelp{font-size:12.5px;color:var(--ink2);margin-top:8px}
.ff-coerr{font-size:14px;color:var(--mag2);font-weight:600;margin-top:8px}
.ff-oline{display:flex;gap:12px;align-items:flex-start;padding:13px 0;border-bottom:1px solid var(--line)}
.ff-oline .ff-ptile{width:42px;height:42px;border-radius:12px;font-size:16px}
.ff-oline-body{flex:1;min-width:0}
.ff-oline-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.ff-oline-x{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--ink2);cursor:pointer;flex-shrink:0;transition:.15s;padding:0}
.ff-oline-x:hover{background:var(--blush);color:var(--mag2)}
.ff-oline-x .ff-ic{font-size:17px}
.ff-odelta{display:inline-flex;align-items:center;gap:3px;background:var(--blush);color:var(--mag2);font-weight:800;font-size:11px;padding:3px 9px;border-radius:999px;margin-top:6px}
.ff-odelta .ff-ic{font-size:14px}
.ff-cotier{display:inline-flex;background:var(--cream);color:var(--ink2);font-weight:700;font-size:11px;padding:3px 9px;border-radius:999px;margin-top:6px;margin-left:6px}
.ff-copromo{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.ff-profield{display:flex;gap:9px}
.ff-profield .ff-input{flex:1;min-width:0}
.ff-profield .ff-btn{padding:12px 20px;font-size:15px;flex-shrink:0}
.ff-promook{display:flex;align-items:center;gap:7px;background:#e6f8f0;color:var(--grn2);font-weight:700;font-size:13.5px;padding:10px 14px;border-radius:12px}
.ff-promook .ff-ic{font-size:18px;flex-shrink:0}
.ff-promook button{margin-left:auto;background:none;border:none;font-family:inherit;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--grn2);cursor:pointer;padding:0}
.ff-cototals{margin-top:16px}
.ff-trow{display:flex;justify-content:space-between;align-items:center;font-size:15px;padding:7px 0;gap:12px}
.ff-trow-tot{font-weight:800;font-size:20px;border-top:1px solid var(--line);padding-top:13px;margin-top:7px}
.ff-codivider{display:flex;align-items:center;gap:14px;color:var(--ink2);font-size:12.5px;font-weight:600;margin:16px 0}
.ff-codivider::before,.ff-codivider::after{content:'';flex:1;height:1px;background:var(--line)}
.ff-cowallet{border-radius:13px;overflow:hidden;transition:height .2s ease,opacity .2s ease}
.ff-coseg{display:grid;gap:8px;background:var(--cream);border-radius:15px;padding:5px;margin-bottom:16px}
.ff-cotab{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:none;border-radius:11px;padding:11px 14px;font-family:inherit;font-weight:700;font-size:14px;color:var(--ink2);background:transparent;cursor:pointer;transition:.16s}
.ff-cotab.on{background:#fff!important;color:var(--mag2);box-shadow:0 6px 16px -8px rgba(20,30,60,.35)!important}
.ff-cotab .ff-codisc{font-size:11px;font-weight:800;color:var(--grn2)}
.ff-conotice{border-radius:14px;padding:12px 15px;font-size:14px;font-weight:600}
.ff-conotice-info{background:var(--blue2);color:var(--blue)}
.ff-conotice-warn{background:var(--amber2);color:var(--amber)}
.ff-conotice-err{background:var(--blush);color:var(--mag2)}
.ff-cospin{width:18px;height:18px;border-radius:50%;border:2px solid var(--blush2);border-top-color:var(--mag);animation:ff-cospin .8s linear infinite;flex-shrink:0}
@keyframes ff-cospin{to{transform:rotate(360deg)}}
.ff-coload{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:600;color:var(--ink2)}
.ff-cocheck{display:flex;align-items:center;gap:10px;font-size:14.5px;font-weight:600;color:var(--ink);cursor:pointer}
.ff-cocheck input{width:18px;height:18px;accent-color:var(--mag);flex-shrink:0}
.ff-coterms{font-size:13.5px;color:var(--ink2);text-align:center;margin-top:2px}
.ff-coterms a{color:var(--mag);font-weight:700;text-decoration:none}
.ff-coterms a:hover{color:var(--mag2)}
.ff-cobrands{display:inline-flex;align-items:center;gap:6px;vertical-align:middle}
.ff-cobrands span{display:inline-flex;height:24px;width:40px;align-items:center;justify-content:center;background:#fff;border-radius:6px;box-shadow:inset 0 0 0 1px var(--line);padding:2px}
.ff-cobrands img{max-height:16px;max-width:100%;object-fit:contain}
.ff-coempty{background:var(--cream);border-radius:14px;padding:24px;text-align:center;font-size:14px;color:var(--ink2)}
.ff-coupsell{margin-top:16px}
/* Collapsible order summary (mobile only) + coupon toggle (all widths) */
.ff-cosidehead-btn{width:100%;background:none;border:none;padding:0;margin:0;font:inherit;color:inherit;text-align:left;cursor:default}
.ff-cosum-total,.ff-cosum-chev{display:none}
.ff-cosum-chev{color:var(--ink2);font-size:22px;transition:transform .22s ease}
/* Coupon collapses behind an "I have a coupon code" toggle at every width. */
.ff-copromo-label{display:none}
.ff-copromo-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;background:none;border:none;padding:0;font-family:inherit;font-size:15px;font-weight:700;color:var(--ink);cursor:pointer}
.ff-copromo-body{display:none;margin-top:12px}
.ff-copromo-body.ff-copromo-open{display:block}
.ff-switch{width:44px;height:26px;border-radius:999px;background:var(--line);position:relative;flex-shrink:0;transition:background .2s ease}
.ff-switch.on{background:var(--grn)}
.ff-switch-dot{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(20,30,60,.28);transition:transform .2s ease}
.ff-switch.on .ff-switch-dot{transform:translateX(18px)}
/* Legacy Tailwind bridge for retained checkout content (upsell cards, modals) */
.ff-checkout h2{font-family:'Bricolage Grotesque','Hanken Grotesk',sans-serif!important;color:var(--ink)!important;letter-spacing:0!important}
.ff-checkout label:not(.ff-colabel):not(.ff-cocheck){color:var(--ink)!important;font-weight:800!important}
.ff-checkout input:not([type="checkbox"]):not([type="range"]),.ff-checkout select,.ff-checkout textarea{border:1.5px solid var(--line)!important;border-radius:13px!important;background:#fff!important;color:var(--ink)!important;box-shadow:none!important}
.ff-checkout input:not([type="checkbox"]):not([type="range"]):focus,.ff-checkout select:focus,.ff-checkout textarea:focus{border-color:var(--mag)!important;box-shadow:0 0 0 3px rgba(27,79,224,.14)!important;outline:none!important}
.ff-checkout input[type="checkbox"]{accent-color:var(--mag)}
.ff-checkout [class*="text-emerald-"],.ff-checkout [class*="text-teal-"]{color:var(--mag)!important}
.ff-checkout [class*="border-emerald-"],.ff-checkout [class*="border-teal-"]{border-color:var(--blush2)!important}
.ff-checkout [class*="bg-emerald-50"],.ff-checkout [class*="bg-green-50"],.ff-checkout [class*="bg-teal-50"]{background:var(--blush)!important}
.ff-checkout [class*="bg-emerald-100"],.ff-checkout [class*="bg-teal-100"]{background:var(--blush2)!important}
.ff-checkout button[class*="bg-emerald-500"],.ff-checkout button[class*="bg-teal-500"],.ff-checkout button[class*="from-emerald"],.ff-checkout button[type="submit"]{background:var(--grn)!important;background-image:none!important;border-color:transparent!important;color:#fff!important;border-radius:999px!important;box-shadow:0 18px 34px -18px rgba(18,194,139,.75)!important}
.ff-checkout button[class*="bg-emerald-500"]:hover,.ff-checkout button[class*="bg-teal-500"]:hover,.ff-checkout button[type="submit"]:hover{background:var(--grn2)!important}
.ff-checkout a[class*="text-emerald-"]{color:var(--mag)!important}
/* ---- thank-you (native Fanfare design) ---------------------------------- */
.ff-ty{position:relative;min-height:100vh;overflow-x:hidden;background:radial-gradient(120% 82% at 50% -8%,#cfdcff,#e7ecfb 44%,#eef2fb)!important}
.ff-ty-conf{position:fixed;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.ff-ty-piece{position:absolute;top:-8vh;opacity:.92;animation-name:ff-conffall;animation-timing-function:linear;animation-iteration-count:infinite}
@keyframes ff-conffall{0%{transform:translateY(-8vh) rotate(0)}100%{transform:translateY(114vh) rotate(var(--r,360deg))}}
@media(prefers-reduced-motion:reduce){.ff-ty-piece{display:none}}
.ff-ty .ff-cobar{background:rgba(238,242,251,.82)}
.ff-ty-wrap{position:relative;z-index:2;max-width:720px;margin:0 auto;padding:56px 28px 96px}
.ff-ty-hero{text-align:center;margin-bottom:30px}
.ff-ty-ok{width:94px;height:94px;border-radius:50%;background:linear-gradient(150deg,var(--grn),var(--grn2));color:#fff;display:flex;align-items:center;justify-content:center;margin:0 auto 22px;box-shadow:0 22px 46px -16px var(--grn);animation:ff-pop .6s cubic-bezier(.2,1.35,.4,1) both}
.ff-ty-ok .ff-ic{font-size:50px}
.ff-ty-ok.warn{background:linear-gradient(150deg,var(--mag),var(--mag2));box-shadow:0 22px 46px -16px var(--mag)}
.ff-ty-ok.wait{background:linear-gradient(150deg,var(--bl1),var(--bl2));box-shadow:0 22px 46px -16px var(--bl2)}
@keyframes ff-pop{0%{transform:scale(.4);opacity:0}100%{transform:scale(1);opacity:1}}
.ff-ty-hero .ff-h1{font-size:56px;margin:14px 0 13px}
.ff-ty-hero .ff-lead{max-width:530px;margin:0 auto}
.ff-ty-copy{background:none;border:none;padding:2px;margin-left:6px;cursor:pointer;color:var(--mag);display:inline-flex;align-items:center;vertical-align:-3px}
.ff-ty-copy .ff-ic{font-size:16px}
.ff-ty-sec{background:#fff;border-radius:20px;padding:24px 26px;box-shadow:0 26px 52px -36px rgba(11,21,51,.3),inset 0 0 0 1px var(--line)}
.ff-ty-tl{display:flex;flex-direction:column;margin-top:8px}
.ff-ty-row{display:flex;gap:14px;align-items:flex-start;padding:14px 0}
.ff-ty-row:not(:last-child){border-bottom:1px solid var(--line)}
.ff-ty-dot{width:40px;height:40px;border-radius:50%;background:var(--blush);color:var(--mag);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ff-ty-dot.done{background:var(--grn);color:#fff}
.ff-ty-dot .ff-ic{font-size:20px}
.ff-ty-tt{font-weight:800;font-size:15.5px}
.ff-ty-ts{font-size:13.5px;color:var(--ink2);margin-top:2px}
.ff-ty-ctas{display:flex;gap:12px;margin-top:24px}
.ff-ty-ctas .ff-btn{flex:1;padding:18px 30px;font-size:16px}
.ff-ty-foot{display:flex;align-items:center;justify-content:center;gap:7px;text-align:center;color:var(--ink2);font-size:13px;font-weight:600;margin-top:22px}
.ff-ty-foot .ff-ic{font-size:17px;color:var(--mag)}
.ff-ty-resume{background:var(--amber2);border-radius:16px;padding:16px 18px;margin-top:16px;text-align:left}
.ff-ty-resume b{color:var(--amber);font-size:14.5px}
.ff-ty-resume p{color:var(--amber);font-size:13px;margin:4px 0 0;opacity:.9}
@media(max-width:700px){
  .ff-ty-wrap{padding:26px 18px 64px}
  .ff-ty-hero .ff-h1{font-size:30px}
  .ff-ty-ok{width:84px;height:84px}
  .ff-ty-ok .ff-ic{font-size:44px}
  .ff-ty-ctas{flex-direction:column}
  .ff-ty-sec{padding:18px}
}
@media(max-width:1020px){
  .ff-cowrap{grid-template-columns:1fr;padding:16px 16px 64px;gap:14px}
  .ff-coside{position:static;order:-1;border-radius:18px;padding:16px;box-shadow:inset 0 0 0 1px var(--line)}
  .ff-cohead{display:none}
  .ff-cocol{gap:14px}
  .ff-cosec{border-radius:18px;padding:16px}
  .ff-cobar{padding:12px 16px}
  .ff-cobar .ff-brand{font-size:19px}
  .ff-cobar .ff-brand .ff-ic{font-size:21px}
  .ff-cobak-d{display:none!important}
  .ff-cobak-m{display:flex!important}
  .ff-securepill{font-size:12px}
  .ff-securepill .ff-ic{font-size:16px}
  .ff-securepill-d{display:none}
  .ff-securepill-m{display:inline}
  .ff-trow-tot{font-size:18px}
  /* Order summary collapses to save space; tap the header to reveal it. */
  .ff-cosidehead-btn{cursor:pointer}
  .ff-cosum-total{display:inline;font-weight:800;font-size:15px}
  .ff-cosum-chev{display:inline-block}
  .ff-cosum-chev.open{transform:rotate(180deg)}
  .ff-cosum-body{display:none}
  .ff-cosum-body.ff-cosum-open{display:block}
}

/* Safe brand typeface layer (applies Fanfare font by inheritance only) */
.ff-typeface{font-family:'Hanken Grotesk',system-ui,sans-serif}

/* ---- mobile helpers ---- */
@media(max-width:820px){
  .ff-hide-mobile{display:none!important}
  .ff-nav{padding:14px 20px}.ff-nav.sc{padding:10px 20px}
  .ff-brand{font-size:21px}
  .ff-hero-solo{padding:26px 0 10px}
}

/* ---- homepage calculator + footer grids (responsive) ---- */
.ff-calc{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center;background:linear-gradient(150deg,var(--bl1),var(--bl2));border-radius:32px;padding:44px;color:#fff;position:relative;overflow:hidden}
.ff-calcbig{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:72px;line-height:1;letter-spacing:-.04em;margin:6px 0 4px}
.ff-footgrid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:30px}
@media(max-width:820px){
  .ff-calc{grid-template-columns:1fr;padding:26px 22px;gap:20px}
  .ff-calcbig{font-size:52px}
  .ff-footgrid{grid-template-columns:1fr 1fr}
  .ff-chrome .ff-footgrid{grid-template-columns:1fr 1fr}
}

/* ===========================================================================
   Landing (mobile-first) sections — ported from Fanfare Landing.dc.html.
   Responsive so they also compose into the wide desktop layout.
   =========================================================================== */

/* ---- featured platform cards (horizontal snap on mobile, 4-up on desktop) - */
.ff-fslider{display:flex;gap:14px;overflow-x:auto;padding:4px 0 10px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;margin-bottom:28px}
.ff-fslider::-webkit-scrollbar{height:0}
.ff-fcard{flex:0 0 210px;scroll-snap-align:start;border:none;border-radius:20px;padding:18px;color:#fff;display:flex;flex-direction:column;min-height:132px;box-shadow:0 16px 32px -16px rgba(11,21,51,.45);cursor:pointer;text-align:left;font-family:inherit;line-height:1.5;transition:transform .14s ease,box-shadow .2s ease}
.ff-fcard:hover{transform:translateY(-3px);box-shadow:0 22px 40px -18px rgba(11,21,51,.5)}
.ff-fcard:active{transform:scale(.97)}
.ff-fcard .ff-ic{font-size:20px}
@media(min-width:821px){.ff-fslider{overflow:visible}.ff-fcard{flex:1 1 0}}

/* ---- creator marquee --------------------------------------------------- */
.ff-mq{overflow:hidden;-webkit-mask:linear-gradient(90deg,#0000,#000 6%,#000 94%,#0000);mask:linear-gradient(90deg,#0000,#000 6%,#000 94%,#0000)}
.ff-mqtrack{display:flex;gap:12px;width:max-content;animation:ff-mq 40s linear infinite}
.ff-cre{display:flex;align-items:center;gap:9px;background:#fff;border-radius:999px;padding:7px 15px 7px 7px;box-shadow:inset 0 0 0 1px var(--line);white-space:nowrap}
.ff-ava-sm{width:32px;height:32px;font-size:13px}
@keyframes ff-mq{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.ff-mqtrack{animation:none}}

/* ---- grow band (mid-page CTA) ------------------------------------------ */
.ff-grow{background:linear-gradient(150deg,var(--bl1),var(--bl2));border-radius:32px;padding:56px 48px;color:#fff;position:relative;overflow:hidden}
@media(max-width:820px){.ff-grow{padding:34px 24px;border-radius:26px}}

/* ---- segmented tabs + service spotlight -------------------------------- */
.ff-segwrap{max-width:640px;margin:0 auto}
.ff-seg{display:flex;gap:6px;background:var(--blush);border-radius:999px;padding:6px}
.ff-segb{flex:1;border:none;background:transparent;border-radius:999px;padding:11px 8px;font-family:inherit;font-weight:700;font-size:14px;color:var(--ink2);cursor:pointer;transition:.2s;white-space:nowrap}
.ff-segb.on{background:#fff;color:var(--mag);box-shadow:0 6px 14px -6px rgba(11,21,51,.3)}
.ff-spot{background:#fff;border-radius:24px;padding:26px;box-shadow:0 20px 50px -24px rgba(11,21,51,.24);margin-top:18px}
.ff-screencap{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink2);font-weight:700}
.ff-screenfoot{font-size:11px;font-weight:800;color:var(--mag);letter-spacing:.04em}
.ff-screen{background:var(--cream);border-radius:16px;padding:4px 16px;margin-top:14px}
.ff-srow{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}
.ff-srow:last-child{border-bottom:none}
.ff-srowb{font-weight:800;color:var(--mag);font-size:15px}

/* ---- calculator styled range ------------------------------------------- */
.ff-slider{position:relative;height:30px;display:flex;align-items:center}
.ff-strack{position:absolute;left:0;right:0;height:8px;border-radius:99px;background:rgba(255,255,255,.28);overflow:hidden}
.ff-sfill{height:100%;border-radius:99px;background:#fff}
.ff-srange{position:absolute;left:0;right:0;width:100%;height:30px;-webkit-appearance:none;appearance:none;background:transparent;margin:0;cursor:pointer}
.ff-srange::-webkit-slider-thumb{-webkit-appearance:none;width:26px;height:26px;border-radius:50%;background:var(--mag);border:6px solid #fff;box-shadow:0 4px 12px rgba(0,0,0,.22);cursor:grab}
.ff-srange::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:var(--mag);border:6px solid #fff;box-shadow:0 4px 12px rgba(0,0,0,.22)}
/* calculator-scoped segmented control (white-on-blue) */
.ff-calc .ff-seg{background:rgba(255,255,255,.2)}
.ff-calc .ff-segb{color:rgba(255,255,255,.85)}
.ff-calc .ff-segb.on{background:#fff;color:var(--mag)}

/* ---- reviews carousel dots + rating badge ------------------------------ */
.ff-earnbadge{background:var(--blush);color:var(--mag2);font-weight:800;font-size:13px;padding:6px 12px;border-radius:999px;display:inline-flex;gap:5px;align-items:center}
.ff-earnbadge .ff-ic{font-size:15px}
.ff-dots{display:flex;gap:8px;justify-content:center;margin-top:22px}
.ff-dot{width:8px;height:8px;border-radius:50%;background:var(--blush2);cursor:pointer;transition:.25s;border:none;padding:0}
.ff-dot.on{background:var(--mag);width:24px;border-radius:99px}

/* ---- round icon button + mobile menu trigger --------------------------- */
.ff-iconbtn{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fff;box-shadow:inset 0 0 0 1.5px var(--line);cursor:pointer;flex-shrink:0;border:none;color:var(--ink)}
.ff-iconbtn .ff-ic{font-size:23px}
.ff-menubtn{display:none}
@media(max-width:820px){.ff-menubtn{display:inline-flex}}

/* ---- mobile slide-over menu -------------------------------------------- */
/* Mobile-only components are hidden by default and revealed at <=820px, so the
   820/821 boundary shares one edge and leaves no fractional dead-zone. */
.ff-menu{position:fixed;inset:0;z-index:50;background:var(--bl1);color:#fff;padding:24px 24px 30px;display:none;flex-direction:column;overflow-y:auto;opacity:0;pointer-events:none;transition:opacity .26s ease}
.ff-menu.show{opacity:1;pointer-events:auto}
.ff-mlink{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:30px;color:#fff;text-decoration:none;padding:13px 0;border-bottom:1px solid rgba(255,255,255,.2);display:flex;justify-content:space-between;align-items:center;cursor:pointer}
.ff-mlink .ff-ic{font-size:24px;opacity:.7}
@media(max-width:820px){.ff-menu{display:flex}}

/* ---- mobile sticky bottom bar ------------------------------------------ */
.ff-bar{position:fixed;left:0;right:0;bottom:0;z-index:40;padding:13px 16px calc(16px + env(safe-area-inset-bottom));display:none;gap:12px;align-items:center;background:linear-gradient(rgba(238,242,251,0),var(--cream) 36%);transform:translateY(140%);transition:transform .38s cubic-bezier(.2,.8,.2,1)}
.ff-bar.show{transform:translateY(0)}
.ff-barinfo{flex:1;min-width:0}
.ff-bar .ff-btn{flex-shrink:0}
/* show only on mobile + keep the fixed bar from covering the last footer line */
@media(max-width:820px){.ff-bar{display:flex}.ff-foot{padding-bottom:120px}}

/* ---- header cart button + badge ---------------------------------------- */
.ff-nav-cta{padding:11px 22px}
.ff-cartbadge{position:absolute;top:-3px;right:-3px;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:var(--mag);color:#fff;font-size:10.5px;font-weight:800;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 2px var(--cream)}
.ff-brand{flex-shrink:0}
/* Nav CTA renders "Get started" on desktop and the Landing's compact "Sign up" on mobile */
.ff-nav-cta-m{display:none}
@media(max-width:820px){
  .ff-nav-cta{padding:10px 16px;font-size:13.5px}
  .ff-nav-cta .ff-ic,.ff-nav-cta-d{display:none}
  .ff-nav-cta-m{display:inline}
}

/* ---- Fanfare cart drawer ---------------------------------------------- */
.ff-cartroot{position:fixed;inset:0;z-index:90;visibility:hidden;pointer-events:none;font-family:'Hanken Grotesk',system-ui,sans-serif;color:var(--ink);transition:visibility 0s .34s}
.ff-cartroot.open{visibility:visible;pointer-events:auto;transition-delay:0s}
.ff-cartscrim{position:absolute;inset:0;background:rgba(9,15,35,.58);backdrop-filter:blur(4px);opacity:0;transition:opacity .28s ease}
.ff-cartroot.open .ff-cartscrim{opacity:1}
.ff-cartscrim.wait{cursor:wait}
.ff-cartpanel{position:absolute;top:0;right:0;width:min(430px,100%);height:100%;display:flex;flex-direction:column;background:var(--cream);box-shadow:-32px 0 82px -44px rgba(11,21,51,.55);transform:translateX(104%);transition:transform .34s cubic-bezier(.2,.85,.2,1);overflow:hidden}
.ff-cartroot.open .ff-cartpanel{transform:translateX(0)}
.ff-cartbtnicon{width:20px;height:20px}
.ff-cartbtnicon.spin{animation:ff-cartspin .9s linear infinite}
@keyframes ff-cartspin{to{transform:rotate(360deg)}}

/* Cart drawer body — .citem / .cartfoot layout from the Fanfare Desktop
   mockup; one DOM at every viewport (≤820px only narrows the panel). */
.ff-mcarthead{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:22px 24px;border-bottom:1px solid var(--line);flex-shrink:0}
.ff-mcarthead b{font-family:'Bricolage Grotesque',sans-serif;font-size:23px;letter-spacing:-.02em}
.ff-mcartbody{flex:1;min-height:0;overflow-y:auto;padding:18px 24px}
.ff-mcitem{display:flex;gap:13px;align-items:flex-start;background:#fff;border-radius:16px;padding:14px;box-shadow:inset 0 0 0 1px var(--line);margin-bottom:13px}
.ff-mcitem:last-child{margin-bottom:0}
.ff-mcitem .ff-ptile{width:46px;height:46px;border-radius:13px;font-size:18px}
.ff-cqty{display:inline-flex;align-items:center;gap:9px;background:var(--cream);border-radius:999px;padding:4px}
.ff-cqtyb{width:27px;height:27px;border-radius:50%;border:none;background:#fff;box-shadow:inset 0 0 0 1px var(--line);color:var(--ink);font-size:17px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-family:inherit;line-height:1}
.ff-cqtyb:hover{color:var(--mag);box-shadow:inset 0 0 0 1px var(--mag)}
.ff-cremove{background:none;border:none;color:var(--ink2);cursor:pointer;padding:4px 0 0;display:inline-flex}
.ff-cremove:hover{color:var(--mag)}
.ff-mcartempty{height:100%;min-height:370px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px 6px}
.ff-mcartfoot{flex-shrink:0;background:#fff;padding:20px 24px;border-top:1px solid var(--line)}
.ff-csubrow{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.ff-csubrow b{font-size:25px;letter-spacing:-.02em}
.ff-csecureline{margin-top:11px;text-align:center;font-size:12.5px;color:var(--ink2)}
.ff-csecureline .ff-ic{font-size:14px;vertical-align:-2px}

@media(max-width:820px){
  .ff-cartpanel{width:min(354px,90%);background:var(--cream);border-radius:28px 0 0 28px;box-shadow:-26px 0 56px -32px rgba(11,21,51,.68);transform:translateX(106%)}
  .ff-cartroot.open .ff-cartpanel{transform:translateX(0)}
  .ff-cartscrim{background:rgba(9,15,35,.42);backdrop-filter:blur(2px)}
  .ff-mcarthead{padding:18px 18px 14px 20px}
  .ff-mcarthead b{font-size:21px}
  .ff-mcartbody{padding:16px}
  .ff-mcitem{gap:11px;padding:13px;margin-bottom:11px}
  .ff-mcitem .ff-ptile{width:42px;height:42px;border-radius:12px;font-size:16px}
  .ff-mcartfoot{padding:14px 16px calc(20px + env(safe-area-inset-bottom))}
  .ff-csubrow b{font-size:22px}
}

/* ---- Fanfare admin dashboard ------------------------------------------ */
.ff-admin{font-family:'Hanken Grotesk',system-ui,sans-serif;background:var(--cream)!important;color:var(--ink);line-height:1.5;-webkit-font-smoothing:antialiased}
.ff-admin *{box-sizing:border-box}
/* ---- admin sign-in (focused, branded, chrome-less) ---- */
.ff-adminlogin{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:#eef1fb!important;background-image:radial-gradient(760px 420px at 50% -60px,rgba(27,79,224,.14),transparent 60%),radial-gradient(640px 420px at 92% 8%,rgba(47,84,230,.14),transparent 58%),radial-gradient(600px 520px at 4% 30%,rgba(122,47,247,.09),transparent 60%)!important}
/* The card sits inside .w-full > .ff-admin-content wrappers — center it there
   too so it never sticks to the left. */
.ff-adminlogin>.w-full,.ff-adminlogin .ff-admin-content{width:100%;display:flex;justify-content:center}
.ff-adminlogin-card{width:100%;max-width:420px;margin:0 auto;background:#fff;border-radius:26px;padding:34px 32px;box-shadow:0 40px 90px -46px rgba(11,21,51,.42),inset 0 0 0 1px var(--line);text-align:center}
.ff-adminlogin-brand{display:flex;justify-content:center;margin-bottom:18px}
.ff-adminlogin-mark{display:flex;width:56px;height:56px;align-items:center;justify-content:center;border-radius:18px;background:linear-gradient(135deg,var(--mag),var(--coral));color:#fff;box-shadow:0 20px 38px -18px var(--mag)}
.ff-adminlogin-logo{height:44px;max-width:180px;width:auto;object-fit:contain;display:block}
.ff-adminlogin-kick{font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--mag)}
.ff-adminlogin-title{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:28px;line-height:1.05;letter-spacing:-.025em;color:var(--ink);margin:8px 0 0}
.ff-adminlogin-sub{font-size:14px;color:var(--ink2);margin:10px auto 0;max-width:340px;line-height:1.5}
.ff-adminlogin-form{display:flex;flex-direction:column;gap:14px;margin-top:24px;text-align:left}
.ff-adminlogin-field{display:flex;flex-direction:column}
.ff-adminlogin-label{font-family:'Space Mono',monospace;font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink2);font-weight:700;margin-bottom:7px}
.ff-adminlogin-input{width:100%;border:1.5px solid var(--line);border-radius:13px;padding:13px 14px;font-size:15px;font-family:inherit;color:var(--ink);outline:none;background:#fff;transition:border .18s,box-shadow .18s}
.ff-adminlogin-input:focus{border-color:var(--mag);box-shadow:0 0 0 3px rgba(27,79,224,.14)}
.ff-adminlogin-input:disabled{background:var(--cream);color:var(--ink2)}
.ff-adminlogin-err{font-size:13.5px;font-weight:600;color:var(--mag2);margin:0}
.ff-adminlogin-btn{display:inline-flex;align-items:center;justify-content:center;width:100%;border:none;border-radius:999px;padding:15px;font-family:'Hanken Grotesk',sans-serif;font-weight:700;font-size:16px;color:#fff;background:var(--grn);box-shadow:0 14px 28px -8px var(--grn);cursor:pointer;transition:transform .12s,box-shadow .22s,background .2s;margin-top:2px}
.ff-adminlogin-btn:hover{background:var(--grn2);transform:translateY(-1px);box-shadow:0 20px 38px -8px var(--grn)}
.ff-adminlogin-btn:active{transform:scale(.98)}
.ff-adminlogin-btn:disabled{opacity:.55;box-shadow:none;cursor:not-allowed;transform:none}
.ff-adminlogin-secure{display:inline-flex;align-items:center;gap:6px;justify-content:center;margin-top:20px;font-size:12.5px;font-weight:600;color:var(--ink2)}
.ff-adminlogin-secure svg{color:var(--grn)}
@media(max-width:520px){.ff-adminlogin-card{padding:26px 20px;border-radius:22px}.ff-adminlogin-title{font-size:24px}}
.ff-admin-shell{width:min(1440px,100%);max-width:none}
.ff-admin-topbar{position:sticky;top:12px;z-index:20;margin:0 auto;border:1px solid var(--line);border-radius:24px;background:rgba(255,255,255,.88);padding:16px 18px;box-shadow:0 22px 54px -34px rgba(11,21,51,.38);backdrop-filter:blur(16px)}
.ff-admin-back{border-radius:999px;background:var(--cream);padding:10px 15px;color:var(--ink)!important;font-weight:800;text-decoration:none;box-shadow:inset 0 0 0 1px var(--line)}
.ff-admin-back:hover{color:var(--mag)!important;box-shadow:inset 0 0 0 1.5px var(--mag)}
.ff-admin-heading{text-align:left}
.ff-admin-mark{display:flex;width:44px;height:44px;align-items:center;justify-content:center;border-radius:14px;background:linear-gradient(135deg,var(--mag),var(--coral));color:#fff;box-shadow:0 16px 30px -18px var(--mag)}
.ff-admin-eyebrow{font-family:'Space Mono',monospace;color:var(--mag)!important;font-weight:800;letter-spacing:.16em}
.ff-admin-title{font-family:'Bricolage Grotesque',sans-serif;color:var(--ink)!important;font-size:30px!important;line-height:1!important;font-weight:800!important;letter-spacing:-.03em}
.ff-admin-subtitle{margin-top:4px;color:var(--ink2)!important}
.ff-admin-signout{border-radius:999px!important;background:#fff!important;color:var(--ink)!important;font-weight:800!important;box-shadow:inset 0 0 0 1px var(--line)}
.ff-admin-signout:hover{color:var(--mag)!important;box-shadow:inset 0 0 0 1.5px var(--mag)}
.ff-admin-content{padding-bottom:30px}

/* App shell (non-support admins): client-dashboard layout — full-height
   gradient sidebar flush left, cream main column, no pill header. */
.ff-admin-app{padding:0!important;background:var(--cream)!important}
.ff-admin-appshell{width:100%}
.ff-admin-app .ff-admin-content{padding-bottom:0}
.ff-admin .ff-admin-grid{gap:0!important}
.ff-admin-side{position:sticky;top:0;height:100vh;overflow-y:auto;background:linear-gradient(172deg,var(--bl1),var(--bl2));padding:22px 16px;display:flex;flex-direction:column;color:#fff}
.ff-admin-sidebrand{display:flex;align-items:center;gap:8px;font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:23px;letter-spacing:-.02em;padding:6px 10px 2px;color:#fff}
.ff-admin-sidebrand svg{color:#fff}
.ff-admin-sidebrand-tag{font-family:'Space Mono',monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;background:rgba(255,255,255,.18);border-radius:999px;padding:4px 8px;font-weight:700;margin-left:2px}
.ff-admin-sidelogo{height:30px;max-width:150px;width:auto;object-fit:contain;display:block}
.ff-admin-marklogo{width:70%;height:70%;object-fit:contain;display:block}
.ff-admin-sidefoot{margin-top:auto!important;display:flex;flex-direction:column;gap:4px;padding-top:14px}
.ff-admin-sidelink{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:13px;color:rgba(255,255,255,.82);font-weight:600;font-size:14px;background:transparent;border:none;cursor:pointer;font-family:inherit;width:100%;text-align:left;transition:.16s}
.ff-admin-sidelink:hover{background:rgba(255,255,255,.13);color:#fff}
.ff-admin-app .ff-admin-main{padding:26px 30px 44px;min-width:0;max-width:1320px;margin:0 auto;width:100%}
.ff-admin .ff-admin-toast{position:fixed;top:18px;left:50%;transform:translateX(-50%);z-index:80;width:max-content;max-width:min(560px,calc(100vw - 32px));box-shadow:0 20px 46px -20px rgba(11,21,51,.45);font-weight:600}
.ff-admin section.rounded-2xl,.ff-admin div.rounded-2xl,.ff-admin form.rounded-2xl{border-color:var(--line)!important}
.ff-admin .bg-white{background:#fff!important}
.ff-admin [class*="bg-slate-50"],.ff-admin [class*="bg-slate-100"]{background-color:rgba(238,242,251,.72)!important}
.ff-admin .border-slate-100,.ff-admin .border-slate-200,.ff-admin .border-slate-300{border-color:var(--line)!important}
.ff-admin .divide-slate-100>:not([hidden])~:not([hidden]){border-color:var(--line)!important}
.ff-admin .shadow-sm,.ff-admin .shadow{box-shadow:0 18px 42px -32px rgba(11,21,51,.38)!important}
.ff-admin .rounded-2xl{border-radius:22px!important}
.ff-admin .rounded-xl{border-radius:16px!important}
.ff-admin .rounded-lg{border-radius:13px!important}
.ff-admin .rounded-md{border-radius:10px!important}
.ff-admin .text-slate-950,.ff-admin .text-slate-900,.ff-admin .text-slate-800,.ff-admin .text-gray-900{color:var(--ink)!important}
.ff-admin .text-slate-700,.ff-admin .text-slate-600,.ff-admin .text-slate-500,.ff-admin .text-slate-400,.ff-admin .text-gray-500{color:var(--ink2)!important}
.ff-admin .text-teal-700,.ff-admin .text-teal-600,.ff-admin .text-teal-500{color:var(--mag)!important}
.ff-admin .text-emerald-700,.ff-admin .text-emerald-600,.ff-admin .text-green-700{color:var(--ok)!important}
.ff-admin .bg-teal-500,.ff-admin .bg-emerald-500{background:var(--grn)!important;color:#fff!important;border-color:transparent!important}
.ff-admin .hover\:bg-teal-600:hover,.ff-admin .hover\:bg-emerald-600:hover{background:var(--grn2)!important}
.ff-admin .bg-teal-100,.ff-admin .bg-green-50{background:var(--blush)!important}
.ff-admin .bg-emerald-100{background:var(--ok2)!important}
.ff-admin button{font-family:inherit}
.ff-admin button[class*="bg-teal-500"],.ff-admin button[class*="bg-emerald-500"],.ff-admin button[class*="bg-brand"]{border-radius:999px!important;font-weight:800!important;box-shadow:0 14px 28px -18px rgba(18,194,139,.72)!important}
.ff-admin button[class*="border-slate"],.ff-admin a[class*="border-slate"]{border-color:var(--line)!important}
.ff-admin button[class*="border-slate"]:hover,.ff-admin a[class*="border-slate"]:hover{border-color:var(--mag)!important;background:var(--blush)!important;color:var(--mag2)!important}
.ff-admin input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),.ff-admin select,.ff-admin textarea{border-color:var(--line)!important;border-radius:13px!important;background:#fff!important;color:var(--ink)!important;font-family:inherit;box-shadow:none!important}
.ff-admin input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):focus,.ff-admin select:focus,.ff-admin textarea:focus{border-color:var(--mag)!important;box-shadow:0 0 0 3px rgba(27,79,224,.14)!important;outline:none!important}
.ff-admin input[type="checkbox"],.ff-admin input[type="radio"]{accent-color:var(--mag)}
.ff-admin label{color:var(--ink)!important;font-weight:700}
.ff-admin h2,.ff-admin h3{color:var(--ink)!important}
.ff-admin h2.text-lg,.ff-admin h3.text-lg{font-family:'Bricolage Grotesque',sans-serif;font-weight:800!important;letter-spacing:-.015em}
.ff-admin table{border-collapse:separate;border-spacing:0;width:100%}
.ff-admin thead,.ff-admin thead[class*="bg-slate"]{background:var(--cream)!important;color:var(--ink2)!important}
.ff-admin tbody tr:hover{background:var(--blush)!important}
.ff-admin .list-disc li::marker{color:var(--mag)}
/* Sidebar internals → client-dashboard look (whole aside is the gradient
   panel; nav section transparent, snapshot section a translucent card). */
.ff-admin .ff-admin-side section{background:transparent!important;border-color:transparent!important;box-shadow:none!important}
.ff-admin .ff-admin-side section:first-of-type>div:first-child{border-color:rgba(255,255,255,.16)!important;padding-left:10px;padding-right:10px}
.ff-admin .ff-admin-side section:last-of-type{background:rgba(255,255,255,.12)!important;border-radius:18px!important}
.ff-admin .ff-admin-side h2{color:#fff!important;font-family:'Bricolage Grotesque',sans-serif;font-weight:800!important;letter-spacing:-.015em}
.ff-admin .ff-admin-side p,.ff-admin .ff-admin-side .text-slate-500,.ff-admin .ff-admin-side dt{color:rgba(255,255,255,.66)!important}
.ff-admin .ff-admin-side dd,.ff-admin .ff-admin-side .text-slate-900{color:#fff!important}
.ff-admin .ff-admin-side .text-emerald-700,.ff-admin .ff-admin-side .text-slate-600{color:#fff!important}
.ff-admin .ff-admin-side .bg-emerald-100,.ff-admin .ff-admin-side .bg-slate-100{background:rgba(255,255,255,.18)!important}
.ff-admin .ff-admin-side .divide-slate-100>:not([hidden])~:not([hidden]){border-color:rgba(255,255,255,.13)!important}
.ff-admin .ff-admin-side .border-slate-100{border-color:rgba(255,255,255,.16)!important}
.ff-admin .ff-admin-side section:first-of-type button{border-color:transparent!important;color:rgba(255,255,255,.82)!important;font-weight:600;border-radius:13px!important}
.ff-admin .ff-admin-side section:first-of-type button svg{color:rgba(255,255,255,.72)!important}
.ff-admin .ff-admin-side section:first-of-type button:not([aria-current="page"]):hover{background:rgba(255,255,255,.13)!important;color:#fff!important;border-color:transparent!important}
.ff-admin .ff-admin-side section:first-of-type button:not([aria-current="page"]):hover svg{color:#fff!important}
.ff-admin [aria-current="page"],.ff-admin .ff-admin-side section:first-of-type button[aria-current="page"]{background:#fff!important;border-color:transparent!important;color:var(--mag)!important;box-shadow:0 12px 24px -12px rgba(0,0,0,.4)!important}
.ff-admin [aria-current="page"] *,.ff-admin .ff-admin-side section:first-of-type button[aria-current="page"] *{color:var(--mag)!important}
.ff-admin .ff-admin-side section:first-of-type button[aria-current="page"] svg{color:var(--mag)!important}
.ff-admin .ff-admin-side section:first-of-type button[aria-current="page"] span.rounded-full{background:var(--blush)!important}

@media(max-width:1023.98px){
  .ff-admin:not(.ff-admin-app){padding-left:18px!important;padding-right:18px!important}
  .ff-admin-topbar{position:relative;top:auto}
  .ff-admin aside{position:static}

  /* Mobile app shell: compact brand bar + sticky horizontal chip nav.
     The operational snapshot is hidden (Overview shows the same numbers). */
  .ff-admin-app{overflow-x:clip}
  .ff-admin .ff-admin-side{position:relative;display:block;height:auto;overflow:visible;border-radius:0;padding:0;background:linear-gradient(120deg,var(--bl1),var(--bl2))}
  .ff-admin .ff-admin-side>*{margin-top:0!important}
  .ff-admin .ff-admin-sidebrand{padding:13px 16px 8px;font-size:19px}
  .ff-admin .ff-admin-sidebrand svg{width:18px;height:18px}
  .ff-admin .ff-admin-side section:first-of-type{position:sticky;top:0;z-index:35;margin:0;background:linear-gradient(120deg,var(--bl1),var(--bl2))!important;border-radius:0 0 18px 18px!important;box-shadow:0 16px 28px -18px rgba(14,42,144,.55)!important}
  .ff-admin .ff-admin-side section:first-of-type>div:first-child{display:none!important}
  .ff-admin .ff-admin-side section:first-of-type>div:last-child{flex-direction:row;overflow-x:auto;gap:6px;padding:10px 12px 12px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .ff-admin .ff-admin-side section:first-of-type>div:last-child::-webkit-scrollbar{display:none}
  .ff-admin .ff-admin-side section:first-of-type button{width:auto;flex:0 0 auto;white-space:nowrap;padding:9px 14px!important;border-radius:999px!important;font-size:13px}
  .ff-admin .ff-admin-side section:first-of-type button svg{width:15px;height:15px}
  .ff-admin .ff-admin-side section:last-of-type{display:none!important}
  /* Back-to-store + sign-out become icon-only round buttons in the brand bar */
  .ff-admin .ff-admin-sidefoot{position:absolute;top:9px;right:10px;flex-direction:row;gap:6px;margin:0!important;padding:0}
  .ff-admin .ff-admin-sidelink{font-size:0;gap:0;padding:9px;border-radius:999px;background:rgba(255,255,255,.14)}
  .ff-admin .ff-admin-sidelink svg{width:16px;height:16px}

  .ff-admin-app .ff-admin-main{padding:18px 14px 36px}
}
@media(max-width:640px){
  .ff-admin-app .ff-admin-main{padding:14px 10px 32px}
}

@media(max-width:640px){
  .ff-admin:not(.ff-admin-app){padding-top:18px!important}
  .ff-admin-topbar{border-radius:20px;padding:14px}
  .ff-admin-heading{width:100%;align-items:flex-start;text-align:left}
  .ff-admin-title{font-size:25px!important}
  .ff-admin-subtitle{display:none}
  .ff-admin-mark{width:40px;height:40px;border-radius:13px}
}

/* ---- Legacy storefront Fanfare bridge --------------------------------- */
.ff-site-shell{font-family:'Hanken Grotesk',system-ui,sans-serif;background:#eef1fb!important;color:var(--ink);line-height:1.5;-webkit-font-smoothing:antialiased}
.ff-site-shell *{box-sizing:border-box}
.ff-site-shell main{background:transparent;color:var(--ink);min-height:60vh}
.ff-site-shell main>section,.ff-site-shell main>div{background:transparent}
.ff-site-shell h1,.ff-site-shell h2,.ff-site-shell h3{font-family:'Bricolage Grotesque','Hanken Grotesk',sans-serif;color:var(--ink)!important;letter-spacing:-.02em}
.ff-site-shell h1{font-weight:800!important;letter-spacing:-.035em}
.ff-site-shell h2{font-weight:800!important}
.ff-site-shell h3{font-weight:700!important}
.ff-site-shell p,.ff-site-shell li,.ff-site-shell dd,.ff-site-shell dt{color:inherit}
.ff-site-shell p.ff-lead,.ff-site-shell p.ff-muted{color:var(--ink2)}
.ff-site-shell .text-slate-950,.ff-site-shell .text-slate-900,.ff-site-shell .text-slate-800,.ff-site-shell .text-gray-900,.ff-site-shell .text-gray-800{color:var(--ink)!important}
.ff-site-shell .text-slate-700,.ff-site-shell .text-slate-600,.ff-site-shell .text-slate-500,.ff-site-shell .text-slate-400,.ff-site-shell .text-gray-700,.ff-site-shell .text-gray-600,.ff-site-shell .text-gray-500{color:var(--ink2)!important}
.ff-site-shell .text-brand,.ff-site-shell .text-brand-500,.ff-site-shell .text-teal-700,.ff-site-shell .text-teal-600,.ff-site-shell .text-teal-500,.ff-site-shell .text-indigo-600{color:var(--mag)!important}
.ff-site-shell .text-emerald-700,.ff-site-shell .text-emerald-600,.ff-site-shell .text-green-700{color:var(--ok)!important}
.ff-site-shell .bg-white,.ff-site-shell .bg-white\/90,.ff-site-shell .bg-white\/95,.ff-site-shell .bg-white\/80{background:#fff!important}
.ff-site-shell .bg-slate-50,.ff-site-shell .bg-slate-50\/60,.ff-site-shell .bg-slate-50\/70,.ff-site-shell .bg-slate-50\/80,.ff-site-shell .bg-slate-100,.ff-site-shell .bg-gray-50,.ff-site-shell .bg-\[\#F7F7F7\],.ff-site-shell .bg-\[\#f3f4f6\]{background:rgba(238,242,251,.82)!important}
.ff-site-shell .bg-green-50,.ff-site-shell .bg-emerald-50,.ff-site-shell .bg-teal-50{background:var(--ok2)!important}
.ff-site-shell .bg-pink-50,.ff-site-shell .bg-rose-50{background:var(--blush)!important}
.ff-site-shell .bg-blue-50,.ff-site-shell .bg-sky-50{background:var(--blue2)!important}
.ff-site-shell .bg-brand,.ff-site-shell .bg-brand-500,.ff-site-shell .bg-teal-500,.ff-site-shell .bg-emerald-500,.ff-site-shell .from-emerald-500,.ff-site-shell .to-emerald-600{background:var(--grn)!important;color:#fff!important;border-color:transparent!important}
.ff-site-shell .hover\:bg-brand-600:hover,.ff-site-shell .hover\:bg-teal-600:hover,.ff-site-shell .hover\:bg-emerald-600:hover{background:var(--grn2)!important}
.ff-site-shell .border-slate-100,.ff-site-shell .border-slate-200,.ff-site-shell .border-slate-300,.ff-site-shell .border-gray-200,.ff-site-shell .border-white\/80,.ff-site-shell .border-white\/90,.ff-site-shell .border-emerald-100,.ff-site-shell .border-emerald-200{border-color:var(--line)!important}
.ff-site-shell .divide-slate-100>:not([hidden])~:not([hidden]),.ff-site-shell .divide-gray-100>:not([hidden])~:not([hidden]){border-color:var(--line)!important}
.ff-site-shell .shadow,.ff-site-shell .shadow-sm,.ff-site-shell .shadow-md,.ff-site-shell .shadow-lg,.ff-site-shell .shadow-owncard,.ff-site-shell .shadow-owncard2{box-shadow:0 22px 50px -34px rgba(11,21,51,.42)!important}
.ff-site-shell .rounded-\[24px\],.ff-site-shell .rounded-3xl{border-radius:28px!important}
.ff-site-shell .rounded-2xl,.ff-site-shell .rounded-\[22px\],.ff-site-shell .rounded-\[20px\],.ff-site-shell .rounded-\[19px\]{border-radius:22px!important}
.ff-site-shell .rounded-xl{border-radius:16px!important}
.ff-site-shell .rounded-lg{border-radius:13px!important}
.ff-site-shell .rounded-md{border-radius:10px!important}
.ff-site-shell header.sticky,.ff-site-shell header.border-b{background:rgba(238,242,251,.9)!important;border-color:var(--line)!important;box-shadow:0 12px 32px -24px rgba(11,21,51,.42)!important;backdrop-filter:blur(16px)}
.ff-site-shell header.sticky>div.relative,.ff-site-shell header .max-w-\[1180px\],.ff-site-shell header .max-w-6xl{max-width:1200px!important}
.ff-site-shell header a,.ff-site-shell header button{font-weight:800}
.ff-site-shell header button[class*="rounded"],.ff-site-shell header a[class*="rounded"]{border-color:var(--line)!important;background:#fff!important;color:var(--ink)!important;box-shadow:inset 0 0 0 1px var(--line)!important}
.ff-site-shell header button[class*="rounded"]:hover,.ff-site-shell header a[class*="rounded"]:hover{color:var(--mag)!important;box-shadow:inset 0 0 0 1.5px var(--mag)!important}
.ff-site-shell header [class*="top-full"]>div{background:#fff!important;border-color:var(--line)!important;box-shadow:0 22px 54px -28px rgba(11,21,51,.42)!important}
.ff-site-shell main [class*="max-w-6xl"],.ff-site-shell main [class*="max-w-7xl"],.ff-site-shell main [class*="max-w-[1180px]"]{max-width:1200px!important}
.ff-site-shell main [class*="rounded"][class*="bg-white"],.ff-site-shell main [class*="rounded"][class*="bg-slate"],.ff-site-shell main [class*="rounded"][class*="bg-gray"],.ff-site-shell .card-wrapper>div{border-color:var(--line)!important;background:#fff!important;box-shadow:0 22px 50px -36px rgba(11,21,51,.42)!important}
.ff-site-shell button{font-family:inherit}
.ff-site-shell button[class*="bg-brand"],.ff-site-shell button[class*="bg-teal-500"],.ff-site-shell button[class*="bg-emerald-500"],.ff-site-shell a[class*="bg-brand"],.ff-site-shell a[class*="bg-teal-500"],.ff-site-shell a[class*="bg-emerald-500"]{border-radius:999px!important;background:var(--grn)!important;color:#fff!important;font-weight:800!important;box-shadow:0 14px 30px -18px rgba(18,194,139,.75)!important}
.ff-site-shell button[class*="border"],.ff-site-shell a[class*="border"]{border-color:var(--line)!important}
.ff-site-shell button[class*="border"]:hover,.ff-site-shell a[class*="border"]:hover{border-color:var(--mag)!important;background:var(--blush)!important;color:var(--mag2)!important}
.ff-site-shell input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),.ff-site-shell select,.ff-site-shell textarea{border-color:var(--line)!important;border-radius:13px!important;background:#fff!important;color:var(--ink)!important;font-family:inherit;box-shadow:none!important}
.ff-site-shell input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):focus,.ff-site-shell select:focus,.ff-site-shell textarea:focus{border-color:var(--mag)!important;box-shadow:0 0 0 3px rgba(27,79,224,.14)!important;outline:none!important}
.ff-site-shell input[type="checkbox"],.ff-site-shell input[type="radio"]{accent-color:var(--mag)}
.ff-site-shell label{color:var(--ink)!important;font-weight:700}
.ff-site-shell table{border-collapse:separate;border-spacing:0;width:100%}
.ff-site-shell thead,.ff-site-shell thead[class*="bg-slate"]{background:var(--cream)!important;color:var(--ink2)!important}
.ff-site-shell tbody tr:hover{background:var(--blush)!important}
.ff-site-shell footer{background:var(--ink)!important;color:#fff!important}
.ff-site-shell footer>div[aria-hidden="true"]{display:none}
.ff-site-shell footer .max-w-\[1180px\]{max-width:1200px!important;padding-left:40px!important;padding-right:40px!important}
.ff-site-shell footer h3,.ff-site-shell footer span,.ff-site-shell footer p{color:#fff!important}
.ff-site-shell footer a{color:rgba(255,255,255,.72)!important}
.ff-site-shell footer a:hover{color:#fff!important}
.ff-site-shell footer [class*="bg-white"]{background:rgba(255,255,255,.1)!important;border-color:rgba(255,255,255,.14)!important;color:#fff!important}

@media(max-width:820px){
  .ff-site-shell main{overflow-x:hidden}
  .ff-site-shell header .max-w-\[1180px\]{padding-left:14px!important;padding-right:14px!important}
  .ff-site-shell main [class*="px-6"],.ff-site-shell main [class*="px-8"],.ff-site-shell main [class*="px-10"]{padding-left:22px!important;padding-right:22px!important}
  .ff-site-shell h1{font-size:42px!important;line-height:1!important}
  .ff-site-shell h2{font-size:30px!important;line-height:1.05!important}
  .ff-site-shell footer .max-w-\[1180px\]{padding-left:22px!important;padding-right:22px!important}
}

/* ---- bottom sheets (package picker + add-to-cart) ---------------------- */
.ff-scrim-sheet{align-items:flex-end;padding:0}
.ff-sheet{width:100%;max-width:560px;background:#fff;border-radius:26px 26px 0 0;padding:14px 22px 30px;box-shadow:0 -22px 50px -22px rgba(11,21,51,.45);max-height:88vh;overflow-y:auto;animation:ff-sheetup .34s cubic-bezier(.2,.85,.2,1) both}
.ff-grab{width:42px;height:5px;border-radius:99px;background:var(--blush2);margin:0 auto 30px}
.ff-iconbtn-sm{width:40px;height:40px}
.ff-iconbtn-sm .ff-ic{font-size:21px}
.ff-svcpick{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.ff-svcrow{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:var(--cream);border:none;border-radius:14px;padding:12px 14px;font-family:inherit;cursor:pointer;transition:box-shadow .18s,transform .12s}
.ff-svcrow:hover{box-shadow:inset 0 0 0 1.5px var(--mag)}
.ff-svcrow:active{transform:scale(.98)}
.ff-svcico{width:38px;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}
.ff-svcico .ff-ic{font-size:20px}
.ff-pkglist{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.ff-pkgscroll{max-height:min(52vh,360px);overflow-y:auto;padding-right:2px}
.ff-pkg{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--cream);border-radius:14px;padding:12px 14px}
.ff-pkgwasline{font-size:11px;color:var(--ink2);text-decoration:line-through;text-align:right;margin-top:1px}
@keyframes ff-sheetup{from{transform:translateY(12%)}to{transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.ff-sheet{animation:none}}
@media(min-width:821px){
  .ff-scrim-sheet{align-items:center;padding:24px}
  .ff-sheet{border-radius:26px;max-height:82vh;animation:none}
  .ff-grab{display:none}
}

/* ---- added-to-cart toast ----------------------------------------------- */
.ff-toast{position:fixed;top:74px;left:16px;right:16px;max-width:520px;margin:0 auto;z-index:80;background:var(--ink);color:#fff;border-radius:15px;padding:11px 13px;display:flex;align-items:center;gap:11px;box-shadow:0 18px 40px -16px rgba(11,21,51,.6);transform:translateY(-180%);opacity:0;transition:transform .42s cubic-bezier(.2,.85,.2,1),opacity .3s;pointer-events:none}
.ff-toast.show{transform:translateY(0);opacity:1;pointer-events:auto}
.ff-toastdot{width:32px;height:32px;border-radius:50%;background:var(--mag);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff}
.ff-toastbtn{background:#fff;color:var(--ink);border:none;border-radius:999px;padding:7px 13px;font-family:inherit;font-weight:700;font-size:12.5px;cursor:pointer;white-space:nowrap;flex-shrink:0}

/* ---- Fanfare Landing mobile parity -------------------------------------
   Mirrors "Fanfare Landing.dc.html" 1:1 at ≤820px. Desktop values live in
   the base rules above; everything here is scoped to the phone rendering. */
.ff-hero-glow{display:none}
@media(max-width:820px){
  .ff{font-size:16px;line-height:1.5;overflow-x:clip}
  .ff-wrap{padding:0}
  .ff-sec .ff-wrap{padding:0 22px}
  .ff-kick{font-size:11px;letter-spacing:.18em}
  .ff-h1{font-size:43px;line-height:1;letter-spacing:-.03em}
  .ff-h2{font-size:30px;line-height:1.04;letter-spacing:-.022em}
  .ff-h3{font-size:18px}
  .ff-lead{font-size:15.5px;line-height:1.5}
  .ff-sm{font-size:13px}
  .ff-xs{font-size:11.5px}

  /* section rhythm (design .sec = 46px, .secx = 28px, pt6 chains) */
  .ff-sec{padding:46px 0}
  .ff-sec-platforms{padding-top:10px}
  .ff-sec-marquee{padding:6px 0 28px}
  .ff-sec-grow,.ff-sec-stats,.ff-sec-final{padding:28px 0}
  .ff-sec-how,.ff-sec-spotlight,.ff-sec-calc,.ff-sec-reviews,.ff-sec-pricing,.ff-sec-faq{padding-top:6px}
  .ff-sec-pay{display:block;padding:28px 0}
  .ff-sec-white{background:transparent}

  /* section headers — h2 runs full width in the design; only leads are capped */
  .ff-sech{max-width:none;margin:0 auto;text-align:center}
  .ff-sech .ff-h2{margin:8px 0 6px!important}
  .ff-sech .ff-lead{margin:0 auto 18px!important;max-width:300px}
  .ff-sec-why .ff-sech .ff-h2{margin:8px 0 20px!important}
  .ff-sec-why .ff-sech .ff-lead{display:none}
  .ff-sec-how .ff-sech,.ff-sec-spotlight .ff-sech,.ff-sec-calc .ff-sech{text-align:left;max-width:none;margin:0}
  .ff-sec-how .ff-sech .ff-h2{margin:8px 0 22px!important}
  .ff-sec-spotlight .ff-sech .ff-h2{margin:8px 0 18px!important}
  .ff-sec-calc .ff-sech .ff-h2{margin:8px 0 16px!important}
  .ff-sec-reviews .ff-sech .ff-h2{margin:8px 0 18px!important}
  .ff-sec-pricing .ff-sech .ff-lead{max-width:290px}

  /* buttons (design .btn base / .btn-lg) */
  .ff-btn{padding:14px 20px;font-size:15px;gap:7px}
  .ff-btn:active{transform:scale(.96)}
  .ff-btn .ff-ic{font-size:19px}
  .ff-btn-lg{padding:16px 24px;font-size:16px}
  .ff-btn-p{box-shadow:0 9px 22px -7px var(--grn)}
  .ff-btn-p:hover{box-shadow:0 13px 28px -7px var(--grn)}
  .ff-nav-cta{padding:10px 16px;font-size:13.5px}

  .ff-nav{padding:13px 16px;gap:10px;background:rgba(255,255,255,.8);backdrop-filter:blur(14px) saturate(140%);border-bottom:1px solid rgba(20,30,60,.06)}
  .ff-nav.sc{padding:11px 16px 10px;box-shadow:0 8px 22px -14px rgba(11,21,51,.4)}
  .ff-chrome-actions{gap:8px}
  .ff-brand{font-size:21px;gap:6px}
  .ff-brand .ff-ic{font-size:23px}
  .ff-iconbtn,.ff-iconbtn-sm{width:44px;height:44px}
  .ff-iconbtn .ff-ic,.ff-iconbtn-sm .ff-ic{font-size:22px}

  .ff-hero{display:block;padding:16px 22px 26px;position:relative;overflow:hidden}
  .ff-hero-glow{display:block}
  .ff-heropanel{display:none}
  .ff-tag{padding:7px 13px;font-size:12px;gap:6px}
  .ff-tag .ff-ic{font-size:15px}
  .ff-hero .ff-h1{margin-top:14px!important}
  .ff-hero .ff-lead{margin-top:14px!important;max-width:none!important}
  .ff-hero-actions{display:block!important;margin-top:20px!important}
  .ff-hero-actions .ff-btn{width:100%}
  .ff-hero-actions .ff-btn-p{padding:16px 24px;font-size:16px}
  .ff-hero-actions .ff-btn-g{padding:14px 20px;font-size:15px}
  .ff-hero-actions .ff-btn + .ff-btn{margin-top:10px}
  .ff-trustline{display:none}

  .ff-fslider{gap:12px;margin:0 -22px;padding:6px 22px 14px}
  .ff-fcard{flex-basis:198px;min-height:128px;border-radius:20px;padding:16px}
  .ff-fcard .ff-disp{font-size:23px!important}
  .ff-fcard b{font-size:17px!important}
  .ff-fcard .ff-ic{font-size:16px}
  .ff-searchbox{gap:8px;margin:0 0 16px;border-radius:14px;padding:0 14px}
  .ff-searchbox .ff-ic{font-size:16px;color:var(--ink)}
  .ff-searchin{padding:13px 0;font-size:15px}
  .ff-pgrid{grid-template-columns:1fr 1fr;gap:12px}
  .ff-pcard{border-radius:18px;padding:14px;gap:12px}
  .ff-pcard .ff-ptile{width:48px;height:48px;border-radius:14px;font-size:18px}
  .ff-pname{font-size:15px}

  .ff-sec-marquee .ff-kick{margin-bottom:14px!important}
  .ff-mq{-webkit-mask:linear-gradient(90deg,#0000,#000 7%,#000 93%,#0000);mask:linear-gradient(90deg,#0000,#000 7%,#000 93%,#0000)}
  .ff-mqtrack{gap:9px;animation-duration:30s}
  .ff-cre{gap:8px;padding:6px 13px 6px 6px}
  .ff-ava-sm{width:30px;height:30px}

  .ff-grow{margin:0;padding:32px 24px;border-radius:26px}
  .ff-grow .ff-glow{width:220px!important;height:220px!important;top:-70px!important}
  .ff-grow .ff-disp{font-size:32px!important;line-height:1.05!important;letter-spacing:-.02em!important;margin:8px 0 0!important}
  .ff-grow p{font-size:15px!important;margin:12px 0 0!important;max-width:none!important;text-wrap:pretty}
  .ff-grow .ff-btn-lg{margin-top:18px!important}
  .ff-statsband{border-radius:26px;margin:0 14px;padding:24px 20px;grid-template-columns:1fr 1fr;gap:22px 12px}
  .ff-num{font-size:33px}
  .ff-slabel{font-size:12px;margin-top:5px}

  .ff-whygrid{grid-template-columns:1fr 1fr;gap:11px}
  .ff-feat{border-radius:19px;padding:15px}
  .ff-fi{width:44px;height:44px;border-radius:13px;margin-bottom:12px}
  .ff-fi .ff-ic{font-size:24px}
  .ff-feat .ff-h3{font-size:15.5px}
  .ff-feat p{font-size:13px;margin:4px 0 0!important}
  .ff-howgrid{grid-template-columns:1fr;gap:16px}
  .ff-step{display:flex;gap:14px;align-items:flex-start}
  .ff-stepn{width:34px;height:34px;border-radius:11px;font-size:13px;margin-bottom:0}
  .ff-step .ff-h3{font-size:17px}
  .ff-step p{font-size:13px;margin:3px 0 0!important}

  .ff-segwrap{max-width:none}
  .ff-seg{padding:5px;gap:5px}
  .ff-segb{font-size:12px;padding:9px 4px}
  .ff-spot{border-radius:22px;padding:16px;margin-top:14px;box-shadow:0 16px 40px -18px rgba(11,21,51,.24)}
  .ff-spot .ff-h3{font-size:18px!important}
  .ff-spot p.ff-sm{margin:6px 0 0!important}
  .ff-spot-browse{display:none}
  .ff-screen{border-radius:14px;padding:4px 12px}
  .ff-srow{padding:13px 0}
  .ff-srow:last-child{border-bottom:1px solid var(--line)}
  .ff-srowb{font-size:14px}
  .ff-screencap,.ff-screenfoot{font-size:10.5px}

  .ff-calc{border-radius:26px;padding:24px 20px}
  .ff-calc .ff-seg{background:rgba(255,255,255,.18)}
  .ff-calcbig{font-size:48px;letter-spacing:-.035em;margin:4px 0 2px}

  .ff-testi{border-radius:22px;padding:20px;box-shadow:0 16px 40px -18px rgba(11,21,51,.24)}
  .ff-quote{font-size:19px;line-height:1.32}
  .ff-dots{gap:7px;margin-top:18px}
  .ff-dot{width:7px;height:7px}
  .ff-dot.on{width:22px}

  .ff-tiers{grid-template-columns:1fr;gap:14px}
  .ff-price{border-radius:22px;padding:20px}
  .ff-price.sel{transform:none;box-shadow:0 0 0 2.5px var(--mag),0 20px 44px -20px var(--mag)}
  .ff-hotbadge{font-size:10.5px;padding:4px 9px}
  .ff-perks{gap:10px;margin:14px 0 0}
  .ff-perk{font-size:14px}
  .ff-perk .ff-ic{font-size:20px}
  .ff-price>.ff-btn{margin-top:18px}

  .ff-faq{grid-template-columns:1fr;gap:0}
  .ff-faq>div:first-child{text-align:center}
  .ff-faq .ff-lead{display:none}
  .ff-faq .ff-h2{margin:8px 0 16px!important}
  .ff-faqq{font-size:15.5px;padding:16px 0}
  .ff-faqic{font-size:24px}
  .ff-faqa{font-size:14.5px;line-height:1.55}
  .ff-faqa.open{padding-bottom:16px}

  .ff-final{border-radius:28px;margin:14px;padding:40px 24px}
  .ff-final .ff-glow{width:200px!important;height:200px!important}
  .ff-final .ff-disp{letter-spacing:-.025em!important}
  .ff-final p{font-size:15px!important;margin:12px 0 22px!important}
  .ff-final .ff-btn-lg{width:100%}
  .ff-final .ff-xs{opacity:.88!important;margin-top:12px!important}
  .ff-final-pay{display:none}
  .ff-sec-pay .ff-kick{display:block;margin-bottom:12px}
  .ff-paystrip{gap:8px;margin-top:0}
  .ff-paypill{border-radius:10px;padding:8px 14px;font-size:13px}

  .ff-foot{padding:34px 0 110px}
  .ff-foot .ff-wrap{padding:0 22px}
  .ff-foot .ff-brand{font-size:22px}
  .ff-foot p.ff-sm{max-width:250px!important}
  .ff-footgrid{grid-template-columns:1fr 1fr;gap:18px 12px;margin-top:8px}
  .ff-footgrid>div:first-child{grid-column:1/-1}
  .ff-foot-account,.ff-chrome-paystrip{display:none!important}
  .ff-fsoc{display:flex}
  .ff-fhead{font-size:11px;margin-bottom:6px}
  .ff-flink{font-size:14.5px;padding:6px 0}
  .ff-footcopy{margin-top:22px;padding-top:0;border-top:none}

  .ff-grow .ff-glow,.ff-final .ff-glow,.ff-calc .ff-glow{z-index:1}
  .ff-scrim{background:rgba(9,15,35,.5);backdrop-filter:blur(2px)}
  .ff-sheet{max-width:none;border-radius:26px 26px 0 0;padding:14px 22px 32px;max-height:88vh}
  .ff-pkgscroll{max-height:316px}
  .ff-pkg{border-radius:14px;padding:12px 14px}
  .ff-toast{top:16px;left:14px;right:14px}
}

/* ===========================================================================
   Fanfare CLIENT dashboard (/dashboard) — ported from the Fanfare Dashboard
   mockup. Everything is scoped under .ff-dash so class names stay 1:1 with
   the mockup without colliding with Tailwind or storefront ff-* classes.
   =========================================================================== */
.ff-dash{font-family:'Hanken Grotesk',system-ui,sans-serif;color:var(--ink);background:var(--cream);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;min-height:100vh}
.ff-dash *{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
.ff-dash .disp{font-family:'Bricolage Grotesque','Hanken Grotesk',sans-serif}
.ff-dash .mono{font-family:'Space Mono',monospace}
.ff-dash .ic{font-family:'Material Symbols Rounded';font-weight:normal;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;direction:ltr;font-variation-settings:'FILL' 1,'wght' 500,'GRAD' 0,'opsz' 24;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:middle}
.ff-dash .fx{display:flex}.ff-dash .col{flex-direction:column}.ff-dash .ac{align-items:center}.ff-dash .jb{justify-content:space-between}.ff-dash .f1{flex:1;min-width:0}
.ff-dash .gap8{gap:8px}.ff-dash .gap10{gap:10px}.ff-dash .gap12{gap:12px}.ff-dash .gap16{gap:16px}
.ff-dash .sm{font-size:13.5px}.ff-dash .xs{font-size:12px}.ff-dash .muted{color:var(--ink2)}.ff-dash .mag{color:var(--mag)}.ff-dash .ok{color:var(--ok)}.ff-dash .center{text-align:center}
.ff-dash .ell{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.ff-dash .o6{opacity:.6}.ff-dash .o8{opacity:.8}.ff-dash .o9{opacity:.92}
.ff-dash .kick{font-family:'Space Mono',monospace;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--mag)}
.ff-dash .h2{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:34px;line-height:1.04;letter-spacing:-.025em}
.ff-dash .h3{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:20px;line-height:1.12;letter-spacing:-.01em}
.ff-dash .lead{font-size:16px;line-height:1.55;color:var(--ink2)}
.ff-dash .ptitle{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:22px;letter-spacing:-.02em}
.ff-dash .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:'Hanken Grotesk',sans-serif;font-weight:700;font-size:15px;border:none;border-radius:999px;padding:13px 20px;cursor:pointer;transition:transform .12s ease,box-shadow .22s ease,background .2s;text-decoration:none;white-space:nowrap;line-height:1}
.ff-dash .btn:active{transform:scale(.97)}
.ff-dash .btn:disabled{opacity:.45;box-shadow:none;cursor:not-allowed;transform:none;pointer-events:none}
.ff-dash .btn .ic{font-size:19px}
.ff-dash .btn-p{background:var(--grn);color:#fff;box-shadow:0 10px 24px -10px var(--grn)}
.ff-dash .btn-p:hover{box-shadow:0 16px 30px -10px var(--grn);transform:translateY(-1px)}
.ff-dash .btn-d{background:var(--ink);color:#fff}
.ff-dash .btn-g{background:#fff;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--line)}
.ff-dash .btn-g:hover{box-shadow:inset 0 0 0 1.5px var(--mag);color:var(--mag)}
.ff-dash .btn-w{background:#fff;color:var(--mag)}
.ff-dash .btn-lg{padding:16px 26px;font-size:16px}
.ff-dash .block{width:100%}
.ff-dash .tag{display:inline-flex;align-items:center;gap:6px;background:var(--blush);color:var(--mag2);border-radius:999px;padding:6px 12px;font-size:12px;font-weight:700}
.ff-dash .ava{border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-family:'Bricolage Grotesque',sans-serif;flex-shrink:0}
.ff-dash .ava-sm{width:30px;height:30px;font-size:13px}
.ff-dash .input{width:100%;border:1.5px solid var(--line);border-radius:12px;padding:13px 14px;font-size:15px;font-family:inherit;color:var(--ink);outline:none;transition:border .2s;background:#fff}
.ff-dash .input:focus{border-color:var(--mag)}
.ff-dash .input:disabled{background:var(--cream);color:var(--ink2)}
.ff-dash .linkfield{display:flex;align-items:center;border:1.5px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}
.ff-dash .linkfield:focus-within{border-color:var(--mag)}
.ff-dash .linkfield .input{border:none}
.ff-dash .pfx{padding-left:14px;color:var(--ink2);font-size:15px}
.ff-dash .field{margin-bottom:14px}
.ff-dash .fieldlabel{font-family:'Space Mono',monospace;font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink2);font-weight:700;margin-bottom:7px}
.ff-dash .linkt{color:var(--mag);font-weight:700;cursor:pointer;text-decoration:none;background:none;border:none;font-family:inherit;font-size:inherit;padding:0}
.ff-dash .selwrap{position:relative}
.ff-dash .selwrap select{appearance:none;-webkit-appearance:none;padding-right:40px;cursor:pointer}
.ff-dash .selwrap .ic{position:absolute;right:12px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--ink2);font-size:22px}
.ff-dash .errtext{color:#dc2626;font-size:13.5px;font-weight:600;margin:10px 0 0}
.ff-dash .oktext{color:var(--ok);font-size:13.5px;font-weight:600;margin:10px 0 0}

/* auth */
.ff-dash .auth{display:grid;grid-template-columns:1.02fr .98fr;min-height:100vh}
.ff-dash .authbrand{position:relative;overflow:hidden;background:linear-gradient(160deg,var(--bl1),var(--bl2));color:#fff;padding:54px 56px;display:flex;flex-direction:column;justify-content:space-between}
.ff-dash .glow{position:absolute;border-radius:50%;filter:blur(60px);pointer-events:none}
.ff-dash .abrand{display:flex;align-items:center;gap:8px;font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:24px;letter-spacing:-.02em;position:relative;background:none;border:none;color:#fff;cursor:pointer;padding:0;align-self:flex-start}
.ff-dash .abrand .ic{font-size:25px}
.ff-dash .atick{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:600;margin-top:14px}
.ff-dash .atick .ic{font-size:22px}
.ff-dash .authmain{display:flex;align-items:center;justify-content:center;padding:40px}
.ff-dash .authcard{width:100%;max-width:418px}
.ff-dash .authback{display:inline-flex;align-items:center;gap:6px;background:none;border:none;color:var(--ink2);font-family:inherit;font-weight:700;font-size:13.5px;cursor:pointer;padding:0;margin-bottom:22px}
.ff-dash .authback:hover{color:var(--mag)}
.ff-dash .authback .ic{font-size:18px}
.ff-dash .socbtn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:13px;font-family:inherit;font-weight:700;font-size:14.5px;color:var(--ink);cursor:pointer;transition:.16s}
.ff-dash .socbtn:hover{border-color:var(--mag);color:var(--mag)}
.ff-dash .socbadge{width:22px;height:22px;border-radius:6px;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:12px;font-family:'Bricolage Grotesque',sans-serif}
.ff-dash .divider{display:flex;align-items:center;gap:14px;color:var(--ink2);font-size:12.5px;margin:18px 0}
.ff-dash .dline{flex:1;height:1px;background:var(--line)}
.ff-dash .pwwrap{position:relative}
.ff-dash .pwwrap .input{padding-right:44px}
.ff-dash .pweye{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--ink2);cursor:pointer;padding:8px;display:flex}
.ff-dash .pweye .ic{font-size:20px}
.ff-dash .checkrow{display:flex;align-items:center;justify-content:space-between;margin:4px 0 2px}

/* app shell */
.ff-dash .app{display:flex;min-height:100vh}
.ff-dash .sidebar{width:264px;flex-shrink:0;background:linear-gradient(172deg,var(--bl1),var(--bl2));color:#fff;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:22px 16px;gap:6px;overflow-y:auto}
.ff-dash .side-brand{display:flex;align-items:center;gap:8px;font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:23px;letter-spacing:-.02em;padding:6px 10px 14px;background:none;border:none;color:#fff;cursor:pointer;text-align:left}
.ff-dash .side-brand .ic{font-size:25px}
.ff-dash .navlist{display:flex;flex-direction:column;gap:4px;flex:1}
.ff-dash .navItem{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:13px;color:rgba(255,255,255,.82);font-weight:600;font-size:14.5px;cursor:pointer;border:none;background:transparent;font-family:inherit;text-align:left;width:100%;transition:.16s}
.ff-dash .navItem:hover{background:rgba(255,255,255,.13);color:#fff}
.ff-dash .navItem.on{background:#fff;color:var(--mag);box-shadow:0 12px 24px -12px rgba(0,0,0,.4)}
.ff-dash .navItem .ic{font-size:21px}
.ff-dash .navbadge{margin-left:auto;background:rgba(255,255,255,.22);color:#fff;font-size:11px;font-weight:800;min-width:20px;height:20px;border-radius:999px;display:flex;align-items:center;justify-content:center;padding:0 6px}
.ff-dash .navItem.on .navbadge{background:var(--mag);color:#fff}
.ff-dash .sidecard{background:rgba(255,255,255,.14);border-radius:16px;padding:15px;color:#fff;margin-top:6px}
.ff-dash .side-user{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.1);border:none;border-radius:14px;padding:9px 12px;margin-top:8px;cursor:pointer;color:#fff;font-family:inherit;width:100%;transition:.16s;font-size:inherit}
.ff-dash .side-user:hover{background:rgba(255,255,255,.18)}
.ff-dash .side-ava{width:36px;height:36px;border-radius:50%;object-fit:cover;flex-shrink:0}
.ff-dash .main{flex:1;min-width:0;display:flex;flex-direction:column}
.ff-dash .topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:14px;padding:15px 28px;background:rgba(238,242,251,.86);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.ff-dash .topttl{min-width:0;flex-shrink:1;margin-right:auto}
.ff-dash .topsearch{display:flex;align-items:center;gap:9px;background:#fff;border:1.5px solid var(--line);border-radius:11px;padding:0 13px;flex:1;min-width:110px;max-width:340px}
.ff-dash .topsearch input{flex:1;border:none;outline:none;background:transparent;padding:11px 0;font-family:inherit;font-size:14px;color:var(--ink);min-width:0}
.ff-dash .topsearch .ic{color:var(--ink2);font-size:20px}
.ff-dash .balancepill{display:flex;align-items:center;gap:8px;background:#fff;border:1.5px solid var(--line);border-radius:999px;padding:7px 7px 7px 14px;font-weight:700;font-size:14px;white-space:nowrap;flex-shrink:0}
.ff-dash .balancepill .ic{font-size:18px}
.ff-dash .addmini{background:var(--blush);color:var(--mag2);border:none;border-radius:999px;padding:6px 12px;font-family:inherit;font-weight:700;font-size:12.5px;cursor:pointer}
.ff-dash .addmini:hover{background:var(--mag);color:#fff}
.ff-dash .topava{width:42px;height:42px;border-radius:50%;object-fit:cover;cursor:pointer;flex-shrink:0;border:none;padding:0;font-size:15px}
.ff-dash .content{padding:28px;width:100%;max-width:1280px;margin:0 auto}
.ff-dash .toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}

/* cards / tables */
.ff-dash .statgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px}
.ff-dash .statcard{background:#fff;border-radius:20px;padding:20px;box-shadow:inset 0 0 0 1px var(--line)}
.ff-dash .statico{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff}
.ff-dash .statico .ic{font-size:23px}
.ff-dash .si1{background:var(--mag)}.ff-dash .si2{background:linear-gradient(135deg,var(--coral),var(--mag))}.ff-dash .si3{background:var(--ink)}.ff-dash .si4{background:var(--blue)}
.ff-dash .statnum{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:31px;letter-spacing:-.02em;margin-top:14px;line-height:1}
.ff-dash .statlabel{color:var(--ink2);font-size:13.5px;margin-top:5px}
.ff-dash .panel{background:#fff;border-radius:22px;box-shadow:inset 0 0 0 1px var(--line);padding:22px}
.ff-dash .panelhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:12px}
.ff-dash .link{background:none;border:none;color:var(--mag);font-family:inherit;font-weight:700;font-size:13.5px;cursor:pointer;display:inline-flex;align-items:center;gap:4px}
.ff-dash .link .ic{font-size:17px}
.ff-dash .row{display:grid;align-items:center;gap:14px;padding:13px 8px;border-bottom:1px solid var(--line);font-size:14px}
.ff-dash .row:last-child{border-bottom:none}
.ff-dash .row.head{padding:9px 8px;font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink2);font-weight:700;border-bottom:1px solid var(--line)}
.ff-dash .tscroll{overflow-x:auto;overflow-y:hidden}
.ff-dash .lo{grid-template-columns:96px minmax(170px,2.3fr) 92px 88px 128px 92px;min-width:756px}
.ff-dash .lsv{grid-template-columns:minmax(190px,2.4fr) 110px 110px 92px;min-width:560px}
.ff-dash .ltx{grid-template-columns:120px minmax(150px,1.9fr) 96px 120px 100px;min-width:686px}
.ff-dash .lrf{grid-template-columns:minmax(150px,1.6fr) 130px 110px;min-width:420px}
.ff-dash .svccell{display:flex;align-items:center;gap:11px;min-width:0}
.ff-dash .ptile{width:38px;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-family:'Bricolage Grotesque',sans-serif;font-size:15px;flex-shrink:0;overflow:hidden}
.ff-dash .stp{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:12px;padding:5px 10px;border-radius:999px;white-space:nowrap}
.ff-dash .stp .dot{width:6px;height:6px;border-radius:50%;background:currentColor}
.ff-dash .st-done{background:var(--ok2);color:#15803d}
.ff-dash .st-prog{background:var(--blush);color:var(--mag2)}
.ff-dash .st-pend{background:var(--amber2);color:var(--amber)}
.ff-dash .st-part{background:var(--blue2);color:#1d4ed8}
.ff-dash .st-cancel{background:#edeff4;color:var(--ink2)}
.ff-dash .ftabs{display:flex;gap:8px;flex-wrap:wrap}
.ff-dash .ftab{border:none;background:#fff;box-shadow:inset 0 0 0 1.5px var(--line);color:var(--ink);font-family:inherit;font-weight:700;font-size:13px;padding:9px 15px;border-radius:999px;cursor:pointer;transition:.16s}
.ff-dash .ftab:hover{box-shadow:inset 0 0 0 1.5px var(--mag);color:var(--mag)}
.ff-dash .ftab.on{background:var(--mag);color:#fff;box-shadow:0 10px 22px -10px var(--mag)}
.ff-dash .empty{padding:34px;text-align:center;color:var(--ink2);font-size:14px}
.ff-dash .delta{display:inline-flex;align-items:center;gap:3px;background:var(--blush);color:var(--mag2);font-weight:800;font-size:12px;padding:4px 9px;border-radius:999px}
.ff-dash .delta .ic{font-size:14px}

/* overview / two-column layouts */
.ff-dash .ovgrid{display:grid;grid-template-columns:1.7fr 1fr;gap:20px;margin-top:20px;align-items:start}
.ff-dash .ovside{display:flex;flex-direction:column;gap:16px}
.ff-dash .walletcard{background:linear-gradient(155deg,var(--bl1),var(--bl2));border-radius:22px;padding:22px;color:#fff;position:relative;overflow:hidden}
.ff-dash .ghostw{background:rgba(255,255,255,.18);color:#fff}
.ff-dash .ghostw:hover{background:rgba(255,255,255,.28)}
.ff-dash .promoico{width:40px;height:40px;border-radius:12px;background:var(--blush);color:var(--mag);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ff-dash .promoico .ic{font-size:22px}
.ff-dash .ordgrid{display:grid;grid-template-columns:1.55fr 1fr;gap:20px;align-items:start}
.ff-dash .summ{background:#fff;border-radius:22px;box-shadow:inset 0 0 0 1px var(--line);padding:22px;position:sticky;top:92px}
.ff-dash .noteinfo{display:flex;align-items:center;gap:8px;background:var(--blush);color:var(--mag2);border-radius:12px;padding:11px 14px;font-size:13px;font-weight:600;margin-top:4px}
.ff-dash .noteinfo .ic{font-size:18px;flex-shrink:0}
.ff-dash .trow{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:14.5px;padding:7px 0}
.ff-dash .trow.tot{font-weight:800;font-size:19px;border-top:1px solid var(--line);padding-top:13px;margin-top:6px;font-family:'Bricolage Grotesque',sans-serif}
.ff-dash .balrow{display:flex;justify-content:space-between;align-items:center;background:var(--cream);border-radius:12px;padding:11px 14px;margin-top:12px}
.ff-dash .lowbal{display:flex;align-items:center;gap:7px;color:var(--amber);font-size:13px;font-weight:600;margin-top:10px}
.ff-dash .lowbal .ic{font-size:17px}
.ff-dash .lowbal a{color:var(--mag);font-weight:800;cursor:pointer;text-decoration:underline}
.ff-dash .trustrow{display:flex;justify-content:center;gap:18px;color:var(--ink2);font-size:12px;font-weight:700}
.ff-dash .trustrow span{display:inline-flex;align-items:center;gap:4px}
.ff-dash .trustrow .ic{font-size:15px;color:var(--mag)}

/* new order packages */
.ff-dash .pkglist{display:flex;flex-direction:column;gap:9px}
.ff-dash .pkgbtn{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:13px 15px;cursor:pointer;font-family:inherit;font-size:14.5px;color:var(--ink);text-align:left;transition:.16s}
.ff-dash .pkgbtn:hover{border-color:var(--mag)}
.ff-dash .pkgbtn.on{border-color:var(--mag);background:var(--blush);box-shadow:0 0 0 1px var(--mag)}
.ff-dash .pkgbtn b{font-family:'Bricolage Grotesque',sans-serif;font-size:16px;white-space:nowrap}

/* add funds */
.ff-dash .amtgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.ff-dash .amtbtn{display:flex;flex-direction:column;align-items:center;gap:4px;background:#fff;border:1.5px solid var(--line);border-radius:16px;padding:16px 8px;cursor:pointer;font-family:inherit;transition:.16s;color:var(--ink)}
.ff-dash .amtbtn:hover{border-color:var(--mag)}
.ff-dash .amtbtn.on{border-color:var(--mag);background:var(--blush);box-shadow:0 0 0 1px var(--mag)}
.ff-dash .amtbtn b{font-size:21px;letter-spacing:-.02em;font-family:'Bricolage Grotesque',sans-serif}
.ff-dash .amtbonus{font-size:11px;font-weight:700;color:var(--ok)}

/* affiliate */
.ff-dash .reflink{display:flex;align-items:center;gap:10px;background:var(--cream);border:1.5px dashed var(--mag);border-radius:14px;padding:8px 8px 8px 16px}
.ff-dash .reflink>.ic{color:var(--mag);font-size:20px;flex-shrink:0}
.ff-dash .reflink code{flex:1;min-width:0;font-family:'Space Mono',monospace;font-size:13.5px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ff-dash .refshare{display:flex;align-items:center;gap:8px;margin-top:14px;flex-wrap:wrap}
.ff-dash .sharebtn{background:#fff;border:1.5px solid var(--line);border-radius:999px;padding:7px 14px;font-family:inherit;font-weight:700;font-size:12.5px;cursor:pointer;color:var(--ink)}
.ff-dash .sharebtn:hover{border-color:var(--mag);color:var(--mag)}
.ff-dash .steps{display:flex;flex-direction:column;gap:14px}
.ff-dash .stepi{display:flex;gap:12px;align-items:flex-start}
.ff-dash .stepn{font-family:'Space Mono',monospace;font-weight:700;font-size:12px;color:var(--mag);background:var(--blush);width:34px;height:34px;border-radius:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0}

/* support */
.ff-dash .ticket{display:block;width:100%;text-align:left;background:#fff;border:none;border-bottom:1px solid var(--line);padding:15px 6px;cursor:default;font-family:inherit;font-size:inherit;color:inherit}
.ff-dash .ticket:last-child{border-bottom:none}
.ff-dash .ticktop{display:flex;align-items:center;justify-content:space-between;gap:12px}
.ff-dash .chatcard{background:linear-gradient(155deg,var(--ink),#16275e);color:#fff}
.ff-dash .chatcard .muted{color:rgba(255,255,255,.6)}
.ff-dash .chatcard .promoico{background:rgba(255,255,255,.16);color:#fff}

/* settings */
.ff-dash .setava{width:60px;height:60px;border-radius:50%;object-fit:cover}
.ff-dash .setava-ini{width:60px;height:60px;border-radius:50%;font-size:22px}

/* toast */
.ff-dash .toast{position:fixed;top:80px;right:24px;z-index:60;width:320px;max-width:calc(100vw - 32px);background:var(--ink);color:#fff;border-radius:16px;padding:13px 14px;display:flex;align-items:center;gap:12px;box-shadow:0 24px 50px -18px rgba(11,21,51,.6);transform:translateX(150%);opacity:0;pointer-events:none;transition:transform .42s cubic-bezier(.2,.85,.2,1),opacity .3s}
.ff-dash .toast.show{transform:none;opacity:1;pointer-events:auto}
.ff-dash .toastdot{width:36px;height:36px;border-radius:50%;background:var(--mag);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff}
.ff-dash .toastdot .ic{font-size:18px}
@keyframes ffd-fadeup{from{transform:translateY(8px);opacity:.6}to{transform:none;opacity:1}}
.ff-dash .fadeup{animation:ffd-fadeup .4s cubic-bezier(.2,.8,.2,1)}

/* mobile bottom tabs */
.ff-dash .dtabs{display:none;position:fixed;left:0;right:0;bottom:0;z-index:40;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);border-top:1px solid var(--line);padding:6px 8px calc(8px + env(safe-area-inset-bottom));grid-template-columns:repeat(5,1fr);gap:2px}
.ff-dash .dtab{display:flex;flex-direction:column;align-items:center;gap:2px;background:none;border:none;font-family:inherit;font-size:10.5px;font-weight:700;color:var(--ink2);cursor:pointer;padding:5px 2px;border-radius:12px}
.ff-dash .dtab .ic{font-size:22px}
.ff-dash .dtab.on{color:var(--mag)}
.ff-dash .dtab-cta{display:flex;align-items:center;justify-content:center;width:46px;height:46px;margin:0 auto;border-radius:50%;background:var(--grn);color:#fff;border:none;cursor:pointer;box-shadow:0 10px 22px -8px var(--grn)}
.ff-dash .dtab-cta .ic{font-size:24px}
.ff-dash .morelist{display:flex;flex-direction:column}
.ff-dash .morelink{display:flex;align-items:center;gap:12px;padding:14px 8px;border:none;border-bottom:1px solid var(--line);background:none;font-family:inherit;font-size:15px;font-weight:600;color:var(--ink);cursor:pointer;text-align:left;width:100%}
.ff-dash .morelink:last-child{border-bottom:none}
.ff-dash .morelink .ic{color:var(--mag);font-size:21px}
.ff-dash .morelink .chev{margin-left:auto;color:var(--ink2)}

/* responsive */
@media(max-width:1120px){
  .ff-dash .topsearch{display:none}
  .ff-dash .balancepill{display:none}
}
@media(max-width:1000px){
  .ff-dash .ovgrid,.ff-dash .ordgrid{grid-template-columns:1fr}
  .ff-dash .summ{position:static}
}
@media(max-width:820px){
  .ff-dash .sidebar{display:none}
  .ff-dash .dtabs{display:grid}
  .ff-dash .balancepill{display:flex}
  .ff-dash .topbar{padding:12px 16px;gap:10px}
  .ff-dash .topbar .newbtn{display:none}
  .ff-dash .topava{display:none}
  .ff-dash .content{padding:18px 16px calc(96px + env(safe-area-inset-bottom))}
  .ff-dash .ptitle{font-size:19px}
  .ff-dash .statgrid{grid-template-columns:1fr 1fr;gap:10px}
  .ff-dash .statcard{padding:14px;border-radius:16px}
  .ff-dash .statnum{font-size:24px;margin-top:10px}
  .ff-dash .panel,.ff-dash .summ{padding:16px;border-radius:18px}
  .ff-dash .amtgrid{grid-template-columns:repeat(2,1fr)}
  .ff-dash .toast{top:auto;bottom:calc(86px + env(safe-area-inset-bottom));left:16px;right:16px;width:auto;transform:translateY(140%)}
  .ff-dash .toast.show{transform:none}
}
@media(max-width:900px){
  .ff-dash .auth{grid-template-columns:1fr}
  .ff-dash .authbrand{display:none}
  .ff-dash .authmain{padding:32px 20px;align-items:flex-start}
}
