/* ============================================================
   Trialloop — light design system  (ivory + burnt orange)
   Simple · warm · friendly. Fraunces (display) · Inter (body) · JetBrains Mono (numbers)
   ============================================================ */

:root{
  --tap:44px; --phone-clear:96px;
  --bg:#F7F3EE; --bg2:#F0E9E1; --card:#FFFFFF; --card2:#FBF8F5;
  --ink:#141110; --ink2:#3A3330; --muted:#6E645D; --faint:#E9E1D8; --line:#EDE6DE;
  --accent:#F0451C; --accent-h:#D63A14; --accent-soft:#FBD9CC; --accent-tint:#FDEDE6;
  --accent-cta:#C93A12; --accent-cta-h:#A82E0D; --muted-safe:#615853;
  --go:#16A34A; --star:#E8A317;
  --wa:#1FA855; --wa-h:#178C46; --on-wa:#FFFFFF;
  /* semantic surfaces — overridden wholesale by the dark theme at the bottom of this file */
  --on-accent:#FFFFFF; --on-black:#FFFFFF; --on-go:#FFFFFF; --accent2:#F2792F;
  --accent-fill:#F0451C; --accent-rgb:240,69,28; --accent-ink:#B02D10;
  --ok-bg:#EAF4EE; --ok-fg:#16A34A; --ok-line:#CFE9D8; --ok-tint:#F3FAF5;
  --warn-bg:#FFF4D6; --warn-fg:#A9760A; --warn-line:#F0DCA0; --warn-fg2:#8A6410;
  --bad:#C0392B; --bad-bg:#FBEAEA; --bad-line:#F3CACA;
  --info-bg:#E8F0FB; --info-fg:#2F5FA8; --macro-bg:#FBE8F0; --macro-fg:#A83F6F;
  --solid-bg:#3A3330; --solid-fg:#FFFFFF;
  --header-bg:rgba(251,246,236,.82);
  --thumb:#FFFFFF; --peach:#F7D9C2; --accent3:#F2A15E;
  --black:#131110; --black-h:#2A2624;
  /* rate card PDF and print: fixed, never changed by a theme, so it prints dark on white */
  --print-paper:#FFFFFF; --print-ink:#141110; --print-muted:#5F6B64; --print-line:#DFEDE3; --print-accent:#0E7C44; --print-tint:#E7F6EC;
  --display:'Anton',Impact,'Haettenschweiler','Arial Narrow','Liberation Sans Narrow','DejaVu Sans Condensed',sans-serif;
  --serif:'Manrope',system-ui,sans-serif; --sans:'Manrope',system-ui,sans-serif; --mono:'JetBrains Mono',ui-monospace,monospace;
  --shadow:0 1px 2px rgba(20,17,16,.04), 0 10px 30px rgba(20,17,16,.07);
  --shadow-lg:0 2px 6px rgba(20,17,16,.05), 0 24px 60px rgba(20,17,16,.12);
  --r:16px; --r-sm:12px; --r-lg:24px;
  /* motion */
  --ease-quart:cubic-bezier(.25,1,.5,1);
  --ease-quint:cubic-bezier(.22,1,.36,1);
  --ease-expo:cubic-bezier(.16,1,.3,1);
  --d-fast:130ms; --d-mid:260ms; --d-slow:520ms; --d-hero:720ms;
  /* spacing scale (4pt) + fluid section rhythm */
  --space-xs:8px; --space-sm:12px; --space-md:16px; --space-lg:24px; --space-xl:32px; --space-2xl:48px;
  --space-section:clamp(72px,9vw,120px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background:radial-gradient(760px 520px at 96% 4%, rgba(var(--accent-rgb),.13), transparent 62%),radial-gradient(680px 620px at 88% 82%, rgba(var(--accent-rgb),.16), transparent 60%),radial-gradient(560px 440px at -6% 14%, rgba(var(--accent-rgb),.05), transparent 58%)}
.wrap{max-width:1280px;margin:0 auto;padding:0 40px;position:relative;z-index:1}
.mono{font-family:var(--mono)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
::selection{background:var(--accent);color:var(--on-accent)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}

/* ---------- nav (full-width sticky header + scroll progress) ---------- */
.site-header{position:sticky;top:0;z-index:50;background:var(--header-bg);-webkit-backdrop-filter:blur(14px) saturate(1.35);backdrop-filter:blur(14px) saturate(1.35);border-bottom:1px solid var(--faint)}
.scrollprog{position:absolute;left:0;bottom:-1.5px;height:3px;width:0;background:linear-gradient(90deg,var(--accent),var(--accent2));transition:width .1s linear;z-index:2;box-shadow:0 0 10px rgba(var(--accent-rgb),.45);border-radius:0 3px 3px 0;will-change:width}
.nav{max-width:1400px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 32px;position:relative;z-index:30}
.brand{font-family:var(--sans);font-weight:800;font-size:22px;letter-spacing:-.03em;display:flex;align-items:center;gap:9px}
.brand .dot{width:11px;height:11px;background:var(--accent);border-radius:50%}
.brand img{height:30px;width:auto;display:block}
.navlinks{display:flex;gap:28px;font-size:14.5px;color:var(--ink2);font-weight:500}
.navlinks a{white-space:nowrap}
.navlinks a{position:relative;transition:color var(--d-fast) var(--ease-quint)}
.navlinks a::after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:2px;background:var(--accent);border-radius:2px;transform:scaleX(0);transform-origin:left;transition:transform var(--d-mid) var(--ease-quint)}
.navlinks a:hover,.navlinks a.active{color:var(--accent)}
.navlinks a:hover::after,.navlinks a.active::after{transform:scaleX(1)}
.navcta{display:flex;align-items:center;gap:12px}
.menu-btn{display:none;background:var(--card);border:1px solid var(--faint);color:var(--ink);font-size:13px;font-weight:600;padding:9px 13px;border-radius:var(--r-sm);cursor:pointer}

/* ---------- buttons ---------- */
.btn{font-size:14.5px;font-weight:600;padding:13px 22px;border:1px solid var(--accent-fill);background:var(--accent-fill);color:var(--on-accent);cursor:pointer;transition:background var(--d-fast) var(--ease-quint),transform var(--d-fast) var(--ease-quint),box-shadow var(--d-mid) var(--ease-quint);display:inline-flex;align-items:center;gap:8px;white-space:nowrap;border-radius:999px}
.btn:hover{background:var(--accent-h);transform:translateY(-2px);box-shadow:0 10px 24px rgba(var(--accent-rgb),.26)}
.btn:active{transform:translateY(0) scale(.97);transition-duration:80ms}
.btn.ghost{background:var(--card);color:var(--ink);border-color:var(--faint)}
.btn.ghost:hover{border-color:var(--accent);color:var(--accent);box-shadow:none;background:var(--card)}
.btn.soft{background:var(--accent-tint);color:var(--accent);border-color:transparent}
.btn.soft:hover{background:var(--accent-soft);box-shadow:none}
.btn.sm{padding:10px 16px;font-size:13.5px}
.btn.dark{background:var(--black);border-color:var(--black);color:var(--on-black)}
.btn.dark:hover{background:var(--black-h);border-color:var(--black-h);box-shadow:0 12px 28px rgba(19,17,16,.28)}
.btn.block{width:100%;justify-content:center}
.navcta .btn.ghost{background:transparent;border-color:transparent;color:var(--ink2);font-weight:600}
.navcta .btn.ghost:hover{background:transparent;color:var(--accent)}
.btn.lg{padding:16px 28px;font-size:16px}
.btn[disabled]{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}

.back-to-top{position:fixed;right:24px;bottom:24px;width:44px;height:44px;border-radius:50%;border:none;background:var(--accent-fill);color:var(--on-accent);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;transform:translateY(8px);transition:opacity var(--d-fast) var(--ease-quint),transform var(--d-fast) var(--ease-quint),background var(--d-fast) var(--ease-quint);z-index:40}
.back-to-top.show{opacity:1;pointer-events:auto;transform:translateY(0)}
.back-to-top:hover{background:var(--accent-h)}
.back-to-top:active{transform:translateY(0) scale(.94)}

/* ---------- generic bits ---------- */
.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:500;display:inline-flex;align-items:center;gap:9px}
.eyebrow::before{content:"";width:22px;height:2px;background:var(--accent);border-radius:2px}
.pill{display:inline-flex;align-items:center;gap:9px;font-size:11.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);background:var(--accent-tint);border:1px solid var(--accent-soft);padding:9px 16px;border-radius:999px}
.pill .d{width:7px;height:7px;border-radius:50%;background:var(--accent)}
h1{font-family:var(--display);font-weight:400;line-height:1.04;letter-spacing:.005em;text-transform:uppercase;text-wrap:balance}
h1 .hl{color:var(--accent)}
h1 em,h2 em{font-style:normal;color:var(--accent)}
h2{font-family:var(--display);font-weight:400;font-size:clamp(28px,4vw,46px);letter-spacing:.005em;line-height:1.0;text-transform:uppercase;text-wrap:balance}
h2 .hl{color:var(--accent)}
h3{font-family:var(--sans);font-weight:700;letter-spacing:-.015em;text-wrap:balance}
section{padding:var(--space-section) 0 0}
.section-airy{padding-top:calc(var(--space-section) + clamp(20px,3.5vw,52px))}
.section-tight{padding-top:0;margin-top:36px}
.shead{max-width:62ch;margin-bottom:18px;text-wrap:balance}
.shead.center{margin:0 auto 40px;text-align:center}
.lede{color:var(--muted);font-size:18px;margin-top:14px;max-width:56ch;text-wrap:pretty}
.hero .sub,.side p,.feat p,.stepc p,.fstep p,.tl-s p{text-wrap:pretty}
.shead.center .lede{margin-left:auto;margin-right:auto}
.card{background:var(--card);border:1px solid var(--faint);border-radius:var(--r);box-shadow:var(--shadow)}
.card,.dcell,.postform,.reqcard,.campaignrow{padding:20px 22px}
@media(max-width:600px){
  .card,.dcell,.postform,.reqcard,.campaignrow{padding:16px 16px}
}
.page-h{padding:48px 0 8px}
.page-h h1{font-size:clamp(40px,6vw,72px)}

/* ---------- HERO ---------- */
.hero{padding:44px 0 20px;display:grid;grid-template-columns:1.05fr .95fr;gap:52px;align-items:start}
.hero h1{font-size:clamp(44px,6.6vw,88px);margin:22px 0 0}
.hero .sub{color:var(--ink2);font-size:19px;max-width:46ch;margin:22px 0 26px}
.hero .sub b{font-weight:600}
.hero .assure{display:flex;gap:20px;flex-wrap:wrap;margin-top:22px;font-size:14px;color:var(--muted)}
.hero .assure span{display:inline-flex;align-items:center;gap:8px}
.hero .assure .ic{color:var(--accent);font-weight:700}

/* ---------- budget widget (the interactive hero card) ---------- */
.widget{background:var(--card);border:1px solid var(--faint);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);padding:26px 26px 24px;position:relative}
.widget .wt{font-family:var(--mono);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:16px;display:flex;justify-content:space-between;align-items:center}
.widget .wt .live{color:var(--go);display:inline-flex;align-items:center;gap:7px}
.widget .wt .live::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--go);box-shadow:0 0 0 3px rgba(46,158,107,.18)}
.linkfield{display:flex;align-items:center;gap:0;border:1px solid var(--faint);border-radius:var(--r-sm);overflow:hidden;background:var(--card2);transition:border-color .15s}
.linkfield:focus-within{border-color:var(--accent)}
.linkfield .pfx{padding:0 0 0 15px;color:var(--muted);font-size:15px}
.linkfield input{flex:1;border:none;background:transparent;padding:14px 14px;font-size:15px;color:var(--ink);font-family:var(--sans);outline:none}
.pfetch-invalid{display:none;align-items:center;gap:8px;margin-top:10px;padding:11px 13px;border:1px solid var(--accent-soft);background:var(--accent-tint);border-radius:var(--r-sm);font-size:13px;color:var(--ink2)}
.pfetch-invalid.on{display:flex;animation:rise .25s cubic-bezier(.2,.7,.2,1)}
.pfetch-invalid .wic{font-size:14px}
.pfetch-invalid .linklike{background:none;border:none;font-family:var(--sans);font-size:13px;font-weight:600;color:var(--accent-cta);cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:2px}
.widget .pfetch{position:relative}
.widget .pfetch .pmanual{position:absolute;top:14px;right:14px}
.budgetblock{margin-top:22px;margin-bottom:20px}
.budgetblock .brow{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px}
.budgetblock .blabel{font-size:15.5px;color:var(--muted);font-weight:500}
.budgetblock .brow .once{font-family:var(--sans);font-size:13px;color:var(--muted);font-weight:500}
/* ---- typed budget input: the precise, primary control; the slider below is a rough sidekick ---- */
.budgetinput{display:flex;align-items:baseline;gap:3px;border-bottom:2px solid var(--faint);padding-bottom:9px;margin-bottom:14px;transition:border-color .15s}
.budgetinput:focus-within{border-bottom-color:var(--accent-cta)}
.budgetinput.lg{font-family:var(--serif);font-size:34px;font-weight:600;letter-spacing:-.02em;color:var(--ink)}
.budgetinput .bipfx{opacity:.75}
.budgetinput input{font:inherit;color:inherit;background:transparent;border:none;outline:none;width:100%;padding:0}
.budgetinput .rv-n,.budgetinput .rv-n:hover,.budgetinput .rv-n:focus{border-bottom:none}
.budgetsidekick{margin-bottom:14px}
.budgetsidekick .sidekicklbl{display:block;font-size:11.5px;color:var(--muted);margin-top:6px}
input[type=range].slider{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:999px;background:linear-gradient(90deg,var(--accent) var(--fill,50%),var(--faint) var(--fill,50%));outline:none}
input[type=range].slider::-webkit-slider-thumb{-webkit-appearance:none;width:26px;height:26px;border-radius:50%;background:var(--thumb);border:2px solid var(--accent);box-shadow:var(--shadow);cursor:pointer;transition:transform .1s}
input[type=range].slider::-webkit-slider-thumb:hover{transform:scale(1.08)}
input[type=range].slider::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:var(--thumb);border:2px solid var(--accent);cursor:pointer}
.presets{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
.preset{font-size:13px;font-weight:600;padding:10px 14px;min-height:44px;border:1px solid var(--faint);border-radius:999px;background:var(--card2);cursor:pointer;transition:.14s;color:var(--ink2);font-family:var(--sans)}
.preset:hover{border-color:var(--accent)}
.preset.sel{background:var(--accent-cta);color:var(--on-accent);border-color:var(--accent-cta)}
.estimate{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:22px 0 22px;border:1px solid var(--faint);border-radius:var(--r-sm);overflow:hidden;background:var(--accent-tint)}
.estimate .e{padding:16px 18px;border-right:1px solid var(--accent-soft)}
.estimate .e:last-child{border-right:none}
.estimate .en{font-family:var(--serif);font-size:30px;font-weight:600;color:var(--accent);letter-spacing:-.02em;line-height:1}
.estimate .en[data-rev]{font-size:17px;line-height:1.5}
.estimate .ek{font-size:12.5px;color:var(--muted-safe);margin-top:6px}
.widget .go{width:100%;justify-content:center;background:var(--accent-cta);border-color:var(--accent-cta)}
.widget .go:hover{background:var(--accent-cta-h);box-shadow:0 10px 24px rgba(184,68,10,.28)}
.widget .fine{font-size:12px;color:var(--muted);text-align:center;margin-top:12px}

/* matched reviewers preview (avatars) */

/* ---------- steps (how it works) ---------- */
.steps3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.stepc{background:var(--card);border:1px solid var(--faint);border-radius:var(--r);padding:30px 26px 32px;box-shadow:var(--shadow);position:relative}
.stepc .sn{width:40px;height:40px;border-radius:50%;background:var(--accent-tint);color:var(--accent);font-family:var(--mono);font-weight:700;display:grid;place-items:center;font-size:15px;margin-bottom:18px}
.stepc h3{font-size:22px;margin-bottom:8px}
.stepc p{color:var(--muted);font-size:15px}
.stepc .big-ic{position:absolute;top:26px;right:26px;font-size:22px;opacity:.5}

/* ---------- feature / value cards ---------- */
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.feat{background:var(--card);border:1px solid var(--faint);border-radius:var(--r);padding:26px 24px;box-shadow:var(--shadow)}
.feat .k{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-weight:500}
.feat h3{font-size:20px;margin:12px 0 8px}
.feat p{color:var(--muted);font-size:14.5px}
.feat,.ex,.side,.stepc{transition:transform var(--d-mid) var(--ease-quint),box-shadow var(--d-mid) var(--ease-quint)}
.feat:hover,.ex:hover,.stepc:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}
.side:hover{transform:translateY(-2px)}
.product{transition:transform var(--d-mid) var(--ease-quint),box-shadow var(--d-mid) var(--ease-quint)}

/* ---------- two-sided split ---------- */
.twoside{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.side{border-radius:var(--r-lg);padding:44px 40px;position:relative;overflow:hidden;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;align-items:flex-start;min-height:300px}
.side.brand{background:linear-gradient(160deg,var(--card),var(--card2));border:1px solid var(--faint)}
.side.review{background:linear-gradient(160deg,var(--accent),var(--accent2));color:var(--on-accent);border:1px solid var(--accent)}
.side .tag{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:500;opacity:.8}
.side h3{font-family:var(--serif);font-size:clamp(30px,3vw,38px);margin:14px 0 14px;line-height:1.04;max-width:14ch}
.side.brand h3 em{color:var(--accent)}
.side p{font-size:16px;margin-bottom:28px;max-width:32ch}
.side .btn{margin-top:auto}
.side.review p{opacity:.94}
.side.review .btn{background:#fff;color:var(--accent);border-color:#fff}
.side.review .btn:hover{background:#fff;box-shadow:0 8px 20px rgba(0,0,0,.16)}

/* ---------- trust strip ---------- */
.trust{display:flex;align-items:center;justify-content:center;gap:14px 26px;flex-wrap:wrap;padding:22px 24px;margin-top:8px;color:var(--muted);font-size:14px}
.trust .k{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.trust b{color:var(--ink);font-weight:600}
.trust .sep{width:5px;height:5px;border-radius:50%;background:var(--faint)}

/* ---------- logo strip (works-with, real brand logos) ---------- */
.logos{display:flex;align-items:center;justify-content:center;gap:clamp(30px,5.5vw,66px);flex-wrap:wrap;padding:34px 24px 8px}
.logos img{height:24px;width:auto;object-fit:contain;filter:grayscale(1) contrast(.85);opacity:.55;transition:filter .25s ease,opacity .25s ease}
.logos img:hover{filter:grayscale(0) contrast(1);opacity:1}
.logos img.amz{height:30px}
.logos img.fk{height:20px}

/* ---------- card-less flow (how it works) ---------- */
.flow{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(28px,4vw,56px);position:relative;padding-top:8px}
.fstep{position:relative}
.fstep .fn{font-family:var(--serif);font-size:clamp(54px,6vw,76px);font-weight:600;line-height:.9;color:var(--accent);letter-spacing:-.03em;display:flex;align-items:baseline;gap:14px}
.fstep .fn .fi{font-family:var(--sans);font-size:22px}
.fstep h3{font-size:23px;margin:18px 0 9px;letter-spacing:-.01em}
.fstep p{color:var(--muted);font-size:15.5px;max-width:34ch}
.fstep:not(:last-child)::after{content:"";position:absolute;top:34px;right:calc(clamp(28px,4vw,56px)/-2 - 2px);width:clamp(28px,4vw,56px);height:1px;background:linear-gradient(90deg,var(--faint),transparent)}

/* ---------- 24-hour path (how it works, option A) ---------- */
.v-tl{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:36px;padding:46px 20px 6px;margin-top:6px}
.v-tl::before{content:"";position:absolute;top:73px;left:16.6%;right:16.6%;height:2px;background:repeating-linear-gradient(90deg,var(--accent) 0 7px,transparent 7px 15px);opacity:.5}
.tl-s{position:relative;text-align:center}
.tl-node{width:58px;height:58px;border-radius:50%;background:var(--bg);border:2px solid var(--accent);color:var(--accent);font-family:var(--serif);font-size:26px;font-weight:600;display:grid;place-items:center;margin:0 auto 24px;position:relative;z-index:1;box-shadow:0 0 0 10px var(--bg)}
.tl-s:hover .tl-node{background:var(--accent-fill);color:var(--on-accent);transition:.2s}
.tl-s h3{font-size:21px;margin-bottom:9px;letter-spacing:-.01em}
.tl-s p{color:var(--muted);font-size:14.5px;max-width:30ch;margin:0 auto}
.tl-end{position:absolute;top:44px;right:-6px;background:var(--accent-fill);color:var(--on-accent);font-family:var(--mono);font-size:11.5px;font-weight:600;letter-spacing:.05em;padding:7px 13px;border-radius:999px;z-index:3;white-space:nowrap;box-shadow:0 5px 14px rgba(var(--accent-rgb),.3)}
@media(max-width:900px){
  .v-tl{grid-template-columns:1fr;gap:8px;padding:20px 0 6px}
  .v-tl::before{top:0;bottom:0;left:28px;right:auto;width:2px;height:auto;background:repeating-linear-gradient(180deg,var(--accent) 0 7px,transparent 7px 15px)}
  .tl-s{display:grid;grid-template-columns:58px 1fr;gap:4px 20px;text-align:left;align-items:start;padding:14px 0}
  .tl-node{grid-row:1/-1;grid-column:1;margin:0}
  .tl-s h3{grid-column:2}
  .tl-s p{grid-column:2;margin:0;max-width:none}
  .tl-end{grid-column:2;position:static;display:inline-block;margin-top:10px}
}

/* ---------- score ring (kept, orange, simpler) ---------- */
.ring{position:relative;display:inline-block}
.ring svg{transform:rotate(-90deg);display:block}
.ring circle{fill:none}
.ring .track{stroke:var(--faint)}
.ring .arc{stroke:var(--accent);stroke-linecap:round}
.ring .val{position:absolute;inset:0;display:grid;place-items:center;text-align:center}
.ring .num{font-family:var(--serif);font-weight:600;line-height:1;color:var(--ink)}
.ring .den{font-family:var(--mono);font-size:12px;color:var(--muted);margin-top:2px}
.ring.big{width:200px;height:200px}.ring.big .num{font-size:60px}
.ring.sm{width:96px;height:96px}.ring.sm .num{font-size:32px}
.bar{height:8px;background:var(--faint);border-radius:999px;overflow:hidden}
.bar i{display:block;height:100%;background:var(--accent);width:0;border-radius:999px;transition:width 1s cubic-bezier(.2,.7,.2,1)}

/* ---------- pricing (custom budget model) ---------- */
.pricehero{background:var(--card);border:1px solid var(--faint);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);padding:40px;display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
.examples{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:8px}
.ex{background:var(--card);border:1px solid var(--faint);border-radius:var(--r);padding:24px 22px;box-shadow:var(--shadow);text-align:center}
.ex.feat{border-color:var(--accent);box-shadow:0 2px 4px rgba(var(--accent-rgb),.08),0 18px 44px rgba(var(--accent-rgb),.14)}
.ex .amt{font-family:var(--serif);font-size:36px;font-weight:600;letter-spacing:-.02em}
.ex .once{font-size:12px;color:var(--muted)}
.ex .rev{margin:14px 0 4px;font-size:15px;color:var(--ink2)}.ex .rev b{color:var(--accent)}
.ex .note{font-size:13px;color:var(--muted)}

/* ---------- reviewer marketplace ---------- */
.mkt-toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:22px}
.chip{font-size:13.5px;font-weight:600;padding:9px 16px;border:1px solid var(--faint);border-radius:999px;background:var(--card);cursor:pointer;transition:.14s;color:var(--ink2)}
.chip:hover{border-color:var(--accent);color:var(--accent)}
.chip.sel{background:var(--accent-fill);color:var(--on-accent);border-color:var(--accent-fill)}
.products{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.product{background:var(--card);border:1px solid var(--faint);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);transition:.16s;display:flex;flex-direction:column}
.product:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}
.product .thumb{aspect-ratio:16/10;background:linear-gradient(150deg,var(--accent-tint),var(--card));position:relative;display:grid;place-items:center;border-bottom:1px solid var(--faint)}
.product .thumb .emoji{font-size:44px;filter:saturate(1.1)}
.product .thumb .payout{position:absolute;top:12px;right:12px;background:var(--accent-fill);color:var(--on-accent);font-weight:700;font-size:14px;padding:6px 12px;border-radius:999px;box-shadow:0 4px 12px rgba(var(--accent-rgb),.3)}
.product .pb{padding:18px 18px 20px;display:flex;flex-direction:column;flex:1}
.product .cat{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.product h3{font-size:18px;margin:8px 0 6px}
.product .pd{color:var(--muted);font-size:13.5px;flex:1}
.product .pf{display:flex;justify-content:space-between;align-items:center;margin-top:16px;font-size:13px;color:var(--muted)}
.product .pf .time{display:inline-flex;gap:6px;align-items:center}
.earnbar{background:linear-gradient(120deg,var(--accent),var(--accent2));color:var(--on-accent);border-radius:var(--r-lg);padding:36px 40px;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;box-shadow:var(--shadow-lg)}
.earnbar .e .n{font-family:var(--serif);font-size:38px;font-weight:600;letter-spacing:-.02em}
.earnbar .e .k{font-size:13.5px;opacity:.9;margin-top:6px}

/* ---------- wizard (light, simple) ---------- */
.wiz{background:var(--card);border:1px solid var(--faint);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);display:grid;grid-template-columns:270px 1fr}
.wiz-rail{border-right:1px solid var(--faint);padding:30px 26px;background:var(--card2);border-radius:var(--r-lg) 0 0 var(--r-lg)}
.wiz-main{border-radius:0 var(--r-lg) var(--r-lg) 0}
.wiz-rail .rlbl{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:20px}
.railmobile{display:none}
.railmobile .railbar{height:6px;background:var(--faint);border-radius:999px;overflow:hidden;margin-bottom:10px}
.railmobile .railbar i{display:block;height:100%;width:0;background:var(--accent);border-radius:999px;transition:width .3s cubic-bezier(.2,.7,.2,1)}
.railmobile .railtext{font-size:14.5px;font-weight:600;color:var(--ink)}
.railtotal{background:var(--card);border:1px solid var(--faint);border-radius:var(--r-sm);padding:14px 16px;margin-bottom:20px}
.railtotal .rtlbl{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.rttable{display:flex;flex-direction:column}
.rtrow{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:2px 14px;
  align-items:baseline;
  padding:10px 0;
  border-bottom:1px dashed var(--faint);
}
.rtrow > .rti{grid-column:1;grid-row:1}
.rtrow > .rtq{grid-column:1;grid-row:2;text-align:left}
.rtrow > .rta{grid-column:2;grid-row:1/span 2;align-self:center}
.rti{                       /* item label — never truncate */
  min-width:0;
  overflow:visible;
  text-overflow:clip;
  white-space:normal;
  font-size:13.5px;
  color:var(--ink2);
}
.rtq{                       /* count × unit — never split */
  font-size:12.5px;
  color:var(--muted);
  white-space:nowrap;
  text-align:right;
}
.rta{                       /* amount */
  font-family:var(--mono);
  font-size:13.5px;
  color:var(--ink);
  text-align:right;
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.rtfoot{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:baseline;
  padding:12px 0 0;
  border-top:1px solid var(--faint);
}
.rtfoot .rti{font-weight:600;color:var(--ink)}
.rtfoot .rta{font-family:var(--sans);font-size:20px;font-weight:800;color:var(--accent)}
.rtfoot.sub{border-top:none;padding-top:6px}
.rtfoot.sub .rti{font-weight:400;color:var(--muted)}
.rtfoot.sub .rta{font-family:var(--mono);font-size:13px;font-weight:400;color:var(--muted)}
.steps{list-style:none;display:flex;flex-direction:column;gap:4px}
.steps li{display:flex;gap:13px;align-items:center;padding:10px 0;color:var(--muted);font-size:14.5px;font-weight:500}
.steps li .sx{width:28px;height:28px;border-radius:50%;border:1px solid var(--faint);display:grid;place-items:center;font-size:12px;font-weight:700;flex:0 0 28px;color:var(--muted);font-family:var(--mono);transition:.15s;background:var(--card)}
.steps li.active{color:var(--ink)}
.steps li.active .sx{background:var(--accent-fill);border-color:var(--accent-fill);color:var(--on-accent)}
.steps li.done .sx{background:var(--go);border-color:var(--go);color:var(--on-go)}
.steps li .st small{display:block;font-size:12px;color:var(--muted);font-weight:400;margin-top:1px}
.wiz-main{padding:38px 42px 32px;min-height:480px;display:flex;flex-direction:column;min-width:0}
.wiz-step{display:none;min-width:0}.wiz-step.on{display:block;animation:rise .4s cubic-bezier(.2,.7,.2,1)}
.wiz-step .sk{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--accent);margin-bottom:4px}
.wiz-step h2{font-size:clamp(26px,3vw,34px);margin:10px 0 14px}
.wiz-step .hint{color:var(--muted);font-size:15px;max-width:52ch;margin-bottom:28px;line-height:1.55}
.field{margin-bottom:20px}
.field label{display:block;font-size:13.5px;font-weight:600;color:var(--ink2);margin-bottom:8px}
.field input,.field textarea,.field select{width:100%;background:var(--card2);border:1px solid var(--faint);border-radius:var(--r-sm);color:var(--ink);font-family:var(--sans);font-size:15px;padding:13px 14px;transition:border-color .15s}
.field textarea{min-height:88px;resize:vertical}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--accent)}
.field .err{color:var(--bad);font-size:12.5px;margin-top:6px;display:none}
.field.invalid input,.field.invalid textarea{border-color:var(--bad)}
.field.invalid .err{display:block}
.opts{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.opt{border:1px solid var(--faint);border-radius:var(--r-sm);padding:15px 16px;cursor:pointer;transition:.15s;display:flex;gap:12px;align-items:flex-start;background:var(--card2)}
.opt:hover{border-color:var(--accent)}
.opt.sel{border-color:var(--accent);background:var(--accent-tint)}
.opt .ck{width:20px;height:20px;border-radius:6px;border:1px solid var(--faint);flex:0 0 20px;margin-top:1px;display:grid;place-items:center;font-size:12px;color:transparent;background:var(--card)}
.opt.sel .ck{border-color:var(--accent-fill);background:var(--accent-fill);color:var(--on-accent)}
.opt .otwrap{display:flex;flex-direction:column;gap:3px}
.opt .ot{display:block;font-size:14.5px;color:var(--ink);font-weight:500}
.opt .od{display:block;font-size:12.5px;color:var(--muted)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
/* ---- Mass vs Selective campaign-type toggle (self-contained, removable) ---- */
.campaigntype{margin-bottom:22px;padding:16px 18px;border:1px solid var(--faint);border-radius:var(--r-sm);background:var(--card2)}
.ctlbl{font-size:12.5px;font-weight:600;color:var(--ink2);margin-bottom:10px}
.cttoggle{display:flex;gap:8px}
.ctopt{flex:1;padding:10px 16px;border:1px solid var(--faint);border-radius:999px;background:var(--card);color:var(--ink2);font-family:var(--sans);font-size:13.5px;font-weight:600;cursor:pointer;transition:.14s}
.ctopt:hover{border-color:var(--accent)}
.ctopt.sel{background:var(--accent-fill);color:var(--on-accent);border-color:var(--accent-fill)}
.cthint{font-size:12.5px;color:var(--muted);margin-top:10px}
.rv-n{font:inherit;color:inherit;background:transparent;border:none;border-bottom:1.5px dashed var(--faint);width:100%;padding:0 0 2px;outline:none;transition:border-color .15s}
.rv-n:hover{border-bottom-color:var(--accent)}
.rv-n:focus{border-bottom-style:solid;border-bottom-color:var(--accent)}
.wiz-foot{margin-top:auto;padding-top:24px;border-top:1px solid var(--faint);display:flex;justify-content:space-between;align-items:center}
.wiz-foot .prog{font-family:var(--mono);font-size:11.5px;color:var(--muted);letter-spacing:.06em}
.review-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--faint);border:1px solid var(--faint);border-radius:var(--r-sm);overflow:hidden}
.review-grid .ri{padding:15px 18px;background:var(--card)}
.review-grid .rk{font-size:12px;color:var(--muted);font-weight:500}
.review-grid .rvv{font-size:15px;color:var(--ink);margin-top:5px;font-weight:500}
.confirm{text-align:center;padding:26px 10px}
.confirm .seal{width:70px;height:70px;border-radius:50%;background:var(--accent-tint);color:var(--go);display:grid;place-items:center;margin:0 auto 20px;font-size:32px}
.confirm h2{margin-bottom:10px}
.confirm .code{font-family:var(--mono);font-size:13px;color:var(--accent);margin:8px 0 22px;font-weight:500}
.timeline{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:24px 0;text-align:left}
.timeline .tp{background:var(--card2);border:1px solid var(--faint);border-radius:var(--r-sm);padding:16px 16px}
.timeline .td{font-family:var(--mono);font-size:10.5px;color:var(--accent);letter-spacing:.08em}
.timeline .tt{font-size:14px;margin-top:8px}

/* ---------- dashboard (light) ---------- */
.repmeta{display:flex;flex-wrap:wrap;gap:1px;background:var(--faint);border:1px solid var(--faint);border-radius:var(--r);overflow:hidden;margin-top:20px}
.repmeta div{padding:14px 20px;background:var(--card)}
.repmeta .k{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.repmeta .v{font-size:14px;margin-top:5px;font-weight:500}
.repmeta .v.live{color:var(--go);display:flex;align-items:center;gap:7px}
.repmeta .v.live::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--go)}
.dash{display:grid;grid-template-columns:repeat(12,1fr);gap:18px;margin-top:18px}
.dcell{background:var(--card);border:1px solid var(--faint);border-radius:var(--r);box-shadow:var(--shadow)}
.span3{grid-column:span 3}.span4{grid-column:span 4}.span5{grid-column:span 5}
.span6{grid-column:span 6}.span7{grid-column:span 7}.span8{grid-column:span 8}.span12{grid-column:span 12}
.dlbl{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:16px}
.kpi .n{font-family:var(--serif);font-weight:600;font-size:36px;letter-spacing:-.02em}
.kpi .k{font-size:12.5px;color:var(--muted);margin-top:6px}
.kpi .d{font-size:12.5px;color:var(--go);margin-top:5px;font-weight:600}
.rubric{display:flex;flex-direction:column;gap:15px}
.rubric .rh{display:flex;justify-content:space-between;font-size:13.5px;margin-bottom:7px}
.rubric .rh .rp{color:var(--muted);font-family:var(--mono)}
.ugc{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.ugc figure{aspect-ratio:3/4;border-radius:var(--r-sm);overflow:hidden;position:relative;border:1px solid var(--faint)}
.ugcph{width:100%;height:100%;background:linear-gradient(150deg,var(--accent-tint),var(--peach))}
.ugc figcaption{position:absolute;left:0;right:0;bottom:0;font-size:11px;color:#fff;background:linear-gradient(0deg,rgba(33,28,21,.7),transparent);padding:16px 8px 7px;font-weight:500}
.recs .rec{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid var(--faint)}
.recs .rec:last-child{border-bottom:none}
.recs .rx{font-family:var(--mono);font-size:11px;color:var(--accent);font-weight:600;flex:0 0 auto;padding-top:2px}
.recs .rt{font-size:14px;color:var(--ink2)}.recs .rt b{color:var(--ink)}
.quote{font-family:var(--serif);font-style:italic;font-size:17px;line-height:1.5}
.quote .qm{font-family:var(--sans);font-style:normal;font-size:12.5px;color:var(--muted);display:block;margin-top:10px}

/* ---------- FAQ ---------- */
.faqlayout{display:grid;grid-template-columns:.8fr 1.2fr;gap:44px;align-items:start}
.faqaside{position:sticky;top:32px}
.faqaside h2{margin:14px 0 14px}
.faqaside p{color:var(--muted);font-size:16px;margin-bottom:24px;max-width:32ch}
.faqcard{background:linear-gradient(160deg,var(--accent-tint),var(--card2));border:1px solid var(--accent-soft);border-radius:var(--r);padding:22px 24px}
.faqcard .n{font-family:var(--serif);font-size:32px;font-weight:600;color:var(--accent)}
.faqcard .t{font-size:14px;color:var(--ink2);margin-top:4px}
.faq details{background:var(--card);border:1px solid var(--faint);border-radius:var(--r);margin-bottom:12px;box-shadow:var(--shadow);overflow:hidden;transition:border-color .2s}
.faq details[open]{border-color:var(--accent-soft)}
.faq summary{padding:20px 24px;font-family:var(--serif);font-size:19px;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px}
.faq summary:hover{color:var(--accent)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--accent);font-size:26px;font-family:var(--sans);transition:transform .25s cubic-bezier(.2,.7,.2,1);line-height:1}
.faq details[open] summary::after{transform:rotate(135deg)}
.faq details p{padding:0 24px 22px;color:var(--muted);font-size:15px;max-width:62ch}
@media(max-width:900px){.faqlayout{grid-template-columns:1fr;gap:24px}.faqaside{position:static}}

/* ---------- CTA band ---------- */
.ctaband{background:linear-gradient(150deg,var(--accent),var(--accent2));color:var(--on-accent);border-radius:var(--r-lg);padding:60px 44px;text-align:center;box-shadow:var(--shadow-lg)}
.ctaband .eyebrow{color:var(--on-accent)}.ctaband .eyebrow::before{background:var(--on-accent)}
.ctaband h2{color:var(--on-accent);max-width:20ch;margin:16px auto 26px}
.ctaband .btn{background:#fff;color:var(--accent);border-color:#fff}
.ctaband .btn:hover{background:#fff;box-shadow:0 10px 24px rgba(0,0,0,.2)}
.ctaband .btn.ghost{background:transparent;color:var(--on-accent);border-color:rgba(255,255,255,.5)}
.ctaband .btn.ghost:hover{border-color:var(--on-accent);color:var(--on-accent)}

/* ---------- footer ---------- */
.foot{border-top:1px solid var(--faint);margin-top:var(--space-section);padding:44px 0 52px;display:flex;justify-content:space-between;gap:28px;flex-wrap:wrap;align-items:flex-start}
.foot .fb{font-family:var(--serif);font-weight:600;font-size:21px;display:flex;gap:9px;align-items:center}
.foot .fb .dot{width:10px;height:10px;background:var(--accent);border-radius:50%}
.foot .fb img{height:26px;width:auto;display:block}
.foot .fl{display:flex;gap:24px;font-size:14px;color:var(--muted);flex-wrap:wrap}
.foot .fl a:hover{color:var(--accent)}
.foot .fc{font-size:12.5px;color:var(--muted)}

.cta-row{display:flex;gap:12px;flex-wrap:wrap}
/* reveal — visible by default; JS enhances (no blank without JS / on headless renderers) */
.reveal{opacity:1;transform:none}
html.js .reveal{opacity:0;transform:translateY(18px);transition:opacity var(--d-slow) var(--ease-quart),transform var(--d-slow) var(--ease-quart);transition-delay:calc(var(--i,0)*70ms)}
html.js .reveal[data-r="scale"]{transform:translateY(22px) scale(.975)}
html.js .reveal[data-r="left"]{transform:translateX(-26px)}
html.js .reveal[data-r="rise-lg"]{transform:translateY(30px)}
html.js .reveal.in{opacity:1;transform:none}
/* 24h path: draw the connector, then nodes pop (nodes are .reveal siblings) */
html.js .v-tl::before{transform:scaleX(0);transform-origin:left;transition:transform var(--d-hero) var(--ease-expo) 80ms}
html.js .v-tl.in::before{transform:scaleX(1)}
@keyframes rise{to{opacity:1;transform:none}}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}

/* ---------- proof band (floating outcome cards, option B) ---------- */
.proofband{display:flex;gap:22px;justify-content:center;align-items:flex-start;flex-wrap:wrap;margin-top:clamp(30px,5vw,52px)}
.pbcard{background:var(--card);border-radius:16px;padding:22px 24px;width:238px;box-shadow:0 26px 52px -30px rgba(33,28,21,.34),0 5px 14px -8px rgba(33,28,21,.10)}
.pbcard .ph{display:flex;align-items:center;gap:7px;font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
.pbcard .ph .dot{width:6px;height:6px;border-radius:50%;background:var(--go);flex-shrink:0}
.pbcard .pn{font-family:var(--serif);font-size:34px;font-weight:600;letter-spacing:-.02em;line-height:1;color:var(--ink)}
.pbcard .pn small{font-size:.5em;color:var(--muted);font-weight:500;letter-spacing:0;margin-left:1px}
.pbcard .pk{color:var(--muted);font-size:13px;margin-top:6px;line-height:1.4}
.pbcard .pring{width:74px;height:74px;flex-shrink:0}
.pbcard .pstars{color:var(--accent);font-size:17px;letter-spacing:2px;margin-top:11px}
.pbcard .pstars .o{opacity:.3}
.pbcard .pugc{display:flex;gap:7px;margin-top:14px}
.pbcard .pugc i{width:34px;height:34px;border-radius:9px;background:linear-gradient(135deg,var(--accent-soft),var(--accent-tint))}
.pbcard .pugc i:nth-child(3){background:linear-gradient(135deg,var(--peach),var(--accent-tint))}
.pbcard .pbar{height:8px;border-radius:6px;background:var(--faint);margin-top:14px;overflow:hidden}
.pbcard .pbar i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,var(--accent),var(--accent2))}
@media(min-width:1080px){ /* stagger only when 4 cards are guaranteed on one row */
  .pbcard.o2{margin-top:40px}.pbcard.o3{margin-top:14px}.pbcard.o4{margin-top:56px}
}

/* ---------- logo caption ---------- */
.logocaption{text-align:center;font-size:12px;color:var(--muted);margin-top:-4px;padding-bottom:6px}

/* ---------- segment selector ---------- */
.segopts{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.segcard{border:1px solid var(--faint);border-radius:var(--r);padding:24px 20px;cursor:pointer;background:var(--card2);transition:.15s;text-align:left}
.segcard:hover{border-color:var(--accent)}
.segcard.sel{border-color:var(--accent);background:var(--accent-tint);box-shadow:0 2px 4px rgba(var(--accent-rgb),.08),0 12px 30px rgba(var(--accent-rgb),.12)}
.segcard .se{font-size:26px;margin-bottom:10px}
.segcard h4{font-family:var(--serif);font-size:19px;margin-bottom:6px}
.segcard p{font-size:13px;color:var(--muted)}
.segcard .srange{font-family:var(--mono);font-size:11px;color:var(--accent);margin-top:12px;display:block}

/* ---------- targeting multiselect dropdown ---------- */
.targetrow{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px}
.msdrop{position:relative;display:inline-block}
.msdrop-btn{font-size:13.5px;font-weight:600;padding:11px 16px;border:1px solid var(--faint);border-radius:var(--r-sm);background:var(--card2);cursor:pointer;display:inline-flex;align-items:center;gap:10px;color:var(--ink2);min-width:160px;justify-content:space-between}
.msdrop-btn:hover{border-color:var(--accent)}
.msdrop-btn .car{color:var(--muted);font-size:10px;transition:transform .15s}
.msdrop.open .msdrop-btn{border-color:var(--accent)}
.msdrop.open .msdrop-btn .car{transform:rotate(180deg)}
.msdrop-panel{position:absolute;top:calc(100% + 8px);left:0;min-width:220px;background:var(--card);border:1px solid var(--faint);border-radius:var(--r-sm);box-shadow:var(--shadow-lg);padding:8px;z-index:20;display:none}
.msdrop.open .msdrop-panel{display:block}
.msopt{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;cursor:pointer;font-size:14px;color:var(--ink2)}
.msopt:hover{background:var(--accent-tint)}
.msopt .ck{width:18px;height:18px;border-radius:5px;border:1px solid var(--faint);flex:0 0 18px;display:grid;place-items:center;font-size:11px;color:transparent;background:var(--card2)}
.msopt.sel .ck{border-color:var(--accent-fill);background:var(--accent-fill);color:var(--on-accent)}

/* ---------- product link fetch (stub) ---------- */
.pfetching{font-size:12.5px;color:var(--muted);margin-top:10px;display:none;align-items:center;gap:8px}
.pfetching.on{display:flex}
.pfetching .spin{width:13px;height:13px;border-radius:50%;border:2px solid var(--faint);border-top-color:var(--accent);animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.pfetch{margin-top:14px;display:none;gap:14px;align-items:center;border:1px solid var(--faint);border-radius:var(--r-sm);padding:14px;background:var(--card2)}
.pfetch.on{display:flex;animation:rise .3s cubic-bezier(.2,.7,.2,1)}
.pfetch .pth{width:56px;height:56px;border-radius:10px;background:linear-gradient(150deg,var(--accent-tint),var(--peach));flex:0 0 56px;display:grid;place-items:center;font-size:24px}
.pfetch .pinfo{flex:1;min-width:0}
.pfetch .ptitle{font-weight:600;font-size:14.5px;color:var(--ink)}
.pfetch .pmeta{font-size:12.5px;color:var(--muted);margin-top:3px}
.pfetch .pmanual{font-size:12.5px;color:var(--accent);cursor:pointer;font-weight:600;white-space:nowrap;background:none;border:none;font-family:var(--sans)}
.manualform{display:none;margin-top:14px;border-top:1px solid var(--faint);padding-top:16px}
.manualform.on{display:block;animation:rise .3s cubic-bezier(.2,.7,.2,1)}

/* ---------- add-ons ---------- */
.addons{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.addon{border:1px solid var(--faint);border-radius:var(--r);padding:18px;cursor:pointer;background:var(--card2);transition:.15s;display:flex;gap:14px;align-items:flex-start}
.addon:hover{border-color:var(--accent)}
.addon.sel{border-color:var(--accent);background:var(--accent-tint)}
.addon .ck{width:20px;height:20px;border-radius:6px;border:1px solid var(--faint);flex:0 0 20px;margin-top:2px;display:grid;place-items:center;font-size:12px;color:transparent;background:var(--card)}
.addon.sel .ck{border-color:var(--accent-fill);background:var(--accent-fill);color:var(--on-accent)}
.addon .aico{font-size:20px;flex:0 0 auto}
.addon h4{font-size:15px;margin-bottom:4px}
.addon p{font-size:12.5px;color:var(--muted)}
.addon .aprice{font-family:var(--mono);font-size:12px;color:var(--accent);margin-top:8px;font-weight:600}

/* ---------- creator picking ---------- */
.pickinglock{text-align:center;padding:40px 20px;color:var(--muted);border:1px dashed var(--faint);border-radius:var(--r);background:var(--card2)}
.pickinglock .lk{font-size:28px;margin-bottom:10px}
.pickinglock h4{font-family:var(--serif);font-size:19px;color:var(--ink);margin-bottom:8px}
.pickinglock p{font-size:14px;max-width:44ch;margin:0 auto}

/* ---------- OTP auth ---------- */
.authwrap{max-width:440px;margin:56px auto;padding:0 20px}
.authcard{background:var(--card);border:1px solid var(--faint);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);padding:36px 32px}
.authcard .astep{display:none}
.authcard .astep.on{display:block;animation:rise .35s cubic-bezier(.2,.7,.2,1)}
.authcard .astep h2{margin:14px 0 8px}
.authcard .astep .hint{color:var(--muted);font-size:14.5px;line-height:1.5;margin-bottom:20px}
.phonefield{display:flex;align-items:center;border:1px solid var(--faint);border-radius:var(--r-sm);overflow:hidden;background:var(--card2)}
.phonefield:focus-within{border-color:var(--accent)}
.phonefield .cc{padding:13px 12px;border-right:1px solid var(--faint);color:var(--muted);font-family:var(--mono);font-size:14px}
.phonefield input{flex:1;border:none;background:transparent;padding:13px 14px;font-size:16px;font-family:var(--mono);letter-spacing:.03em;outline:none;color:var(--ink)}
.otpboxes{display:flex;gap:9px;justify-content:center;margin:22px 0 6px}
.otpboxes input{width:44px;height:52px;text-align:center;font-family:var(--mono);font-size:20px;border:1px solid var(--faint);border-radius:var(--r-sm);background:var(--card2);color:var(--ink);outline:none}
.otpboxes input:focus{border-color:var(--accent)}
.authcard .resend{text-align:center;font-size:13px;color:var(--muted);margin-top:16px}
.authcard .resend a{color:var(--accent);font-weight:600;cursor:pointer}
.authcard .aback{font-size:13px;color:var(--muted);cursor:pointer;display:inline-flex;gap:6px;align-items:center;margin-bottom:18px;background:none;border:none;font-family:var(--sans)}
.authcard .aback:hover{color:var(--accent)}
.authcard .ahint{font-size:12px;color:var(--muted);text-align:center;margin-top:14px;background:var(--accent-tint);border:1px solid var(--accent-soft);border-radius:var(--r-sm);padding:9px 12px}

/* ---------- wallet / payouts / campaign rows (tester + brand dashboards) ---------- */
.wallet{background:linear-gradient(150deg,var(--accent),var(--accent2));color:var(--on-accent);border-radius:var(--r-lg);padding:28px 30px;box-shadow:var(--shadow-lg);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px}
.wallet .wbal{font-family:var(--serif);font-size:42px;font-weight:600;letter-spacing:-.02em}
.wallet .wlbl{font-size:13px;opacity:.85;margin-top:4px}
.wallet .wsplit{display:flex;gap:26px}
.wallet .wsplit div{text-align:right}
.wallet .wsplit b{display:block;font-family:var(--serif);font-size:20px}
.wallet .wsplit small{font-size:11.5px;opacity:.85}
.campaignrow{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;border:1px solid var(--faint);border-radius:var(--r);background:var(--card);margin-bottom:12px}
.campaignrow .crleft{display:flex;align-items:center;gap:14px;min-width:0;flex:1}
.campaignrow .crph{width:46px;height:46px;border-radius:10px;background:linear-gradient(150deg,var(--accent-tint),var(--peach));display:grid;place-items:center;font-size:20px;flex:0 0 46px}
.campaignrow h4{font-size:15.5px;margin-bottom:3px}
.campaignrow .crmeta{font-size:12.5px;color:var(--muted);min-width:0;overflow-wrap:anywhere}
.campaignrow .cractions{display:flex;align-items:center;gap:10px;flex-shrink:0}
@media(max-width:600px){
  .campaignrow{align-items:flex-start}
  .campaignrow .cractions{width:100%;justify-content:flex-start}
}
.status{font-size:11px;font-weight:700;letter-spacing:.04em;padding:5px 12px;border-radius:999px;text-transform:uppercase;white-space:nowrap}
.status.open{background:var(--accent-tint);color:var(--accent)}
.status.active{background:var(--ok-bg);color:var(--ok-fg)}
.status.review{background:var(--warn-bg);color:var(--warn-fg)}
.status.paid{background:var(--ok-bg);color:var(--ok-fg)}
.status.pending{background:var(--faint);color:var(--muted)}
.status.done{background:var(--solid-bg);color:var(--solid-fg)}
.status.declined{background:var(--bad-bg);color:var(--bad)}

/* ---------- terms / order id submission ---------- */
.proofpreview{display:flex;align-items:center;gap:10px;margin-top:10px}
.proofpreview img{width:52px;height:52px;object-fit:cover;border-radius:var(--r-sm);border:1px solid var(--faint)}
.proofpreview span{font-size:12.5px;color:var(--muted)}
.termsblock{background:var(--card2);border:1px solid var(--faint);border-radius:var(--r-sm);padding:18px 20px;font-size:13.5px;color:var(--ink2);line-height:1.65;margin:20px 0}
.termscheck{display:flex;gap:12px;align-items:flex-start;padding:16px 20px;border:1px solid var(--faint);border-radius:var(--r-sm);cursor:pointer;background:var(--card2);transition:.15s}
.termscheck:hover{border-color:var(--accent)}
.termscheck.sel{border-color:var(--accent);background:var(--accent-tint)}
.termscheck .ck{width:20px;height:20px;border-radius:6px;border:1px solid var(--faint);flex:0 0 20px;margin-top:1px;display:grid;place-items:center;font-size:12px;color:transparent;background:var(--card)}
.termscheck.sel .ck{border-color:var(--accent-fill);background:var(--accent-fill);color:var(--on-accent)}
.termscheck span.tx{font-size:14px;color:var(--ink)}
[data-order-confirm]{display:none}
[data-order-confirm].on{display:block;animation:rise .4s cubic-bezier(.2,.7,.2,1)}

/* ---------- budget split sliders (reviews / instagram / youtube, equal priority) ---------- */
.splitrow{margin-bottom:20px;padding:16px 18px;border:1px solid var(--faint);border-radius:var(--r-sm);background:var(--card2)}
.splitrow:last-child{margin-bottom:0}
.splitlabel{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px;font-size:14.5px;color:var(--ink2);font-weight:600}
.splitlabel b{font-family:var(--serif);font-size:19px;color:var(--accent);font-weight:600}
.splitmeta{margin-top:8px;font-size:12.5px;color:var(--muted)}
.splitrow.sm{padding:10px 14px;margin-bottom:10px;margin-top:0}
.splitrow.sm .splitlabel{font-size:13px;margin-bottom:6px}
.splitrow.sm .splitlabel b{font-size:15px;color:var(--accent-cta)}
.deliverypick{display:none;margin-top:10px;align-items:center;gap:10px}
.deliverypick label{font-size:12px;color:var(--muted);white-space:nowrap}
.deliverypick select{flex:1;background:var(--card);border:1px solid var(--faint);border-radius:var(--r-sm);color:var(--ink);font-family:var(--sans);font-size:13.5px;padding:8px 10px}
.deliverypick select:focus{outline:none;border-color:var(--accent)}

/* ---------- creator tier badges ---------- */
.tierbadge{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:3px 8px;border-radius:999px;background:var(--faint);color:var(--ink2)}
.tierbadge.nano{background:var(--accent-tint);color:var(--accent)}
.tierbadge.micro{background:var(--info-bg);color:var(--info-fg)}
.tierbadge.macro{background:var(--macro-bg);color:var(--macro-fg)}
.tierbadge.lvl-gold{background:var(--warn-bg);color:var(--warn-fg)}
.tierfilters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.tierlocked{font-size:11px;color:var(--muted);font-weight:500}

/* ---------- swipe deck (creator picking) ---------- */
.swipewrap{display:grid;grid-template-columns:1fr 260px;gap:24px;align-items:start}
.swipestage{position:relative;height:360px}
.swipecard{position:absolute;inset:0;background:var(--card);border:1px solid var(--faint);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);padding:26px;display:flex;flex-direction:column;cursor:grab;touch-action:pan-y;user-select:none;transition:transform .3s cubic-bezier(.2,.7,.2,1),opacity .3s}
.swipecard:active{cursor:grabbing}
.swipecard.back2{transform:scale(.94) translateY(14px);opacity:.5;z-index:1}
.swipecard.back1{transform:scale(.97) translateY(7px);opacity:.8;z-index:2}
.swipecard.top{z-index:3}
.swipecard.fly-right{transform:translateX(560px) rotate(18deg);opacity:0}
.swipecard.fly-left{transform:translateX(-560px) rotate(-18deg);opacity:0}
.swipecard .scph{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent3));color:var(--on-accent);font-size:20px;font-weight:700;display:grid;place-items:center;margin-bottom:16px}
.swipecard .schandle{font-size:20px;font-weight:600;font-family:var(--serif)}
.swipecard .scplat{font-family:var(--mono);font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-top:2px;display:flex;align-items:center;gap:8px}
.swipecard .scstats{display:flex;gap:26px;margin-top:20px}
.swipecard .scstats div b{display:block;font-family:var(--mono);font-size:19px;color:var(--ink)}
.swipecard .scstats div small{font-size:11.5px;color:var(--muted)}
.swipecard .scniche{margin-top:16px;font-size:13.5px;color:var(--ink2);background:var(--card2);border-radius:var(--r-sm);padding:10px 14px}
.swipecard .scfoot{margin-top:auto;display:flex;justify-content:space-between;align-items:center;padding-top:16px;border-top:1px solid var(--faint)}
.swipecard .scprice{font-family:var(--serif);font-size:22px;font-weight:600;color:var(--accent)}
.swipestamp{position:absolute;top:26px;font-family:var(--mono);font-weight:800;font-size:22px;letter-spacing:.08em;padding:7px 14px;border-radius:8px;border:3px solid;transform:rotate(-14deg);opacity:0;transition:opacity .15s;pointer-events:none;z-index:4}
.swipestamp.pick{right:22px;color:var(--go);border-color:var(--go)}
.swipestamp.skip{left:22px;color:var(--bad);border-color:var(--bad);transform:rotate(14deg)}
.swipeactions{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:20px}
.swipeautofill{display:block;margin:14px auto 0;background:none;border:none;color:var(--accent);font-size:13px;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.poolnote{margin-top:14px;font-size:12.5px;color:var(--muted);text-align:center;max-width:44ch;margin-left:auto;margin-right:auto}
.automatch{border:1px solid var(--faint);border-radius:var(--r);padding:22px;background:var(--card2)}
.automatch .amhead{display:flex;gap:14px;align-items:flex-start;margin-bottom:16px}
.automatch .amico{font-size:22px}
.automatch .amhead h4{font-family:var(--serif);font-size:18px;margin-bottom:4px}
.automatch .amhead p{font-size:13.5px;color:var(--muted)}
.automatch .amlist{display:flex;flex-direction:column;gap:2px;margin-bottom:6px;max-height:260px;overflow-y:auto}
.automatch .amrow{display:flex;justify-content:space-between;font-size:13.5px;color:var(--ink2);padding:8px 0;border-bottom:1px solid var(--faint)}
.automatch .amtotal{display:flex;justify-content:space-between;align-items:center;padding-top:12px;font-weight:600}
.automatch .amtotal b{font-family:var(--serif);font-size:18px;color:var(--accent)}
.automatch .amactions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:18px}
.swbtn{width:56px;height:56px;border-radius:50%;border:1px solid var(--faint);background:var(--card);display:grid;place-items:center;font-size:22px;cursor:pointer;box-shadow:var(--shadow);transition:.15s}
.swbtn:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.swbtn.skip{color:var(--bad)}
.swbtn.pick{color:var(--go)}
.swipeprogress{font-family:var(--mono);font-size:12px;color:var(--muted);letter-spacing:.05em}
.swipedone{text-align:center;padding:30px 20px}
.swipedone h4{font-size:18px;margin-bottom:6px}
.swipedone .lk{font-size:30px;margin-bottom:12px}
.swipeside{display:flex;flex-direction:column;gap:14px}
.swipeside .sscard{background:var(--card2);border:1px solid var(--faint);border-radius:var(--r);padding:18px}
.swipeside .sslbl{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.swipeside .ssn{font-family:var(--serif);font-size:26px;font-weight:600;color:var(--accent)}
.swipeside .ssn.list{font-family:var(--sans);font-size:13px;font-weight:400;color:var(--ink2);line-height:1.6}
.picklist{display:flex;flex-direction:column;gap:8px;max-height:220px;overflow-y:auto}
.pickrow{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12.5px;background:var(--card);border:1px solid var(--faint);border-radius:8px;padding:8px 10px}
.pickrow .prx{color:var(--muted);cursor:pointer;font-weight:700;flex:0 0 auto}
.pickrow .prx:hover{color:var(--bad)}

/* ---------- wallet balance / top-up (brand) ---------- */
.walletcheck{border:1px solid var(--faint);border-radius:var(--r);padding:20px 22px;background:var(--card2);margin:20px 0 24px}
[data-review] .wiz-foot{margin-top:24px}
.walletcheck.ok{border-color:var(--ok-line);background:var(--ok-tint)}
.walletcheck.low{border-color:var(--accent-soft);background:var(--accent-tint)}
.walletcheck .wcrow{display:flex;justify-content:space-between;align-items:center;font-size:14px}
.walletcheck .wcrow b{font-family:var(--serif);font-size:19px}
.topup{display:none;margin-top:16px;padding-top:16px;border-top:1px solid var(--faint)}
.topup.on{display:block}
.topup .tuchips{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 14px}

/* ---------- creator request cards (tester/creator dashboard) ---------- */
.reqcard{border:1px solid var(--accent-soft);background:var(--accent-tint);border-radius:var(--r);margin-bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.reqcard .rqleft{display:flex;align-items:center;gap:14px;min-width:0;flex:1}
.reqcard .rqph{width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent3));color:var(--on-accent);font-weight:700;display:grid;place-items:center;flex:0 0 46px}
.reqcard h4{font-size:15px;margin-bottom:3px}
.reqcard .rqmeta{font-size:12.5px;color:var(--muted);min-width:0;overflow-wrap:anywhere}
.reqcard .rqactions{display:flex;align-items:center;gap:10px;flex-shrink:0}
@media(max-width:600px){
  .reqcard{align-items:flex-start}
  .reqcard .rqactions{width:100%;justify-content:flex-start}
}

/* ============================================================
   PREMIUM TIER (V2) — self-contained, removable block.
   Scoped entirely under body.premtheme; deleting this block plus
   assets/premium.js, premium-dashboard.html and brand-selective.html
   removes the tier without touching the barter design system.
   Premium is NOT a different-looking site — same cream/ink/type as
   everywhere else. The only shift is a restrained bronze/gold hairline
   accent replacing orange, used sparingly (rules, labels, active states),
   plus slightly more serif and finer hairline detail. No dark palette,
   no gradients, no shine.
   ============================================================ */
.premtheme{
  --accent:#8C6B3F; --accent-h:#78592F; --accent-soft:#E7DCC7; --accent-tint:#F6F1E6;
  --accent-cta:#8C6B3F; --accent-cta-h:#78592F; --accent-fill:#8C6B3F;
}
.premtheme .card,.premtheme .dcell,.premtheme .campaignrow,.premtheme .reqcard,
.premtheme .btn:hover,.premtheme .gigcard{box-shadow:none}
.premtheme .wallet{background:var(--card2);color:var(--ink);border:1px solid var(--faint);box-shadow:none}
.premtheme .scph{background:var(--card2);color:var(--ink2);border:1px solid var(--faint)}
.premtheme .wsplit{align-items:center}
.premlink{color:var(--accent)}
.mt16{margin-top:16px}
.fbnote{margin-top:10px}
.postform{padding:24px}
.field.last{margin-bottom:0}
.strikerow{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.mutedmd{font-size:13px;color:var(--muted)}

/* premium page shell */
.premwrap{max-width:1080px}
.premhead{padding:36px 0 24px}
.premhead .eyebrow{margin-bottom:12px}
.premhead h1{font-size:clamp(32px,4.2vw,46px);margin-top:12px}
.premhead p{color:var(--muted);margin-top:10px;max-width:62ch}
.premnav{display:flex;flex-wrap:wrap;gap:18px;padding:12px 0;margin-top:20px;margin-bottom:8px;border-bottom:1px solid var(--faint)}
.premnav a{font-size:13px;color:var(--muted);text-decoration:none;white-space:nowrap;padding:4px 0;transition:color .15s}
.premnav a:hover{color:var(--accent)}
.premsection{margin-top:36px}
.premsection h2{font-size:21px;margin-bottom:4px}
.premsection .premsub{color:var(--muted);font-size:13.5px;margin-bottom:16px;max-width:62ch}

/* gig cards (marketplace, negotiations, escrow) */
.gigcard{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;border:1px solid var(--faint);border-radius:var(--r);background:var(--card);margin-bottom:10px;flex-wrap:wrap}
.gigleft{display:flex;gap:14px;align-items:flex-start}
.gigph{width:42px;height:42px;border-radius:10px;background:var(--card2);border:1px solid var(--faint);display:grid;place-items:center;font-size:17px;flex:0 0 42px}
.gigcard h4{font-size:15px;margin-bottom:3px;color:var(--ink)}
.gigmeta{font-size:12.5px;color:var(--muted);line-height:1.5}
.gigbrief{display:block;margin-top:3px;color:var(--muted-safe)}
.gigright{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.gigprice{font-size:12.5px;color:var(--muted)}
.feeblend{color:var(--accent);font-family:var(--mono);font-weight:600}
.invitedtag{color:var(--accent);font-weight:600}
.gigcard.stack{flex-direction:column;align-items:stretch;gap:12px}
.gigright.col{flex-direction:column;align-items:flex-end;gap:8px}
.escrowhead{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.actionrow{display:flex;gap:8px;flex-wrap:wrap}
.duesrow{display:flex;align-items:center;gap:12px;flex-wrap:wrap}

/* small muted utility text — empty states, waiting states, notes */
.emptynote{color:var(--muted);font-size:13.5px}
.emptynote.full{grid-column:1/-1}
.mutedline{font-size:12.5px;color:var(--muted)}
.mutedsm{font-size:12px;color:var(--muted)}
.mutedxs{font-size:11px;color:var(--muted)}
.notenote{font-size:11.5px;color:var(--muted);margin-top:10px}
.frozennote{font-size:12.5px;color:var(--muted);margin:0}

/* structured offer field — the only place a price is ever entered.
   min-width:0 on the input is the real fix: flex children default to
   min-width:auto and clip their content instead of shrinking. */
.pricefield{display:flex;align-items:center;border:1px solid var(--faint);border-radius:10px;background:var(--card);overflow:hidden;max-width:220px}
.pricefield .cur{padding:0 10px;font-size:14px;color:var(--muted);border-right:1px solid var(--faint);align-self:stretch;display:flex;align-items:center}
.pricefield input{flex:1;min-width:0;border:0;background:transparent;padding:11px 12px;font:inherit;font-size:15px;line-height:1.3;height:auto;color:var(--ink)}
.pricefield input:focus{outline:none}
.pricefield:focus-within{border-color:var(--accent)}
.pricefield.sm{max-width:160px}
.priceaction{display:flex;align-items:center;gap:8px;flex-wrap:wrap}

/* escrow / revisions / strikes */
.escrowbadge{font-size:12.5px;color:var(--accent);font-family:var(--mono);font-weight:600;background:var(--accent-tint);border:1px solid var(--accent-soft);padding:6px 12px;border-radius:999px}
.revdots{display:inline-flex;align-items:center;gap:5px;font-size:11.5px}
.revdot{width:7px;height:7px;border-radius:50%;background:var(--faint);display:inline-block}
.revdot.used{background:var(--accent)}
.strikedot{width:11px;height:11px;border-radius:50%;background:var(--faint);display:inline-block;margin-right:6px}
.strikedot.hit{background:var(--bad)}

/* chat — unlocked only after escrow lock; work only, never price */
.chatbox{border-top:1px dashed var(--faint);padding-top:12px}
.chatlog{display:flex;flex-direction:column;gap:6px;max-height:160px;overflow-y:auto;margin-bottom:10px}
.chatmsg{max-width:70%;font-size:13px;padding:8px 12px;border-radius:12px;background:var(--card2)}
.chatmsg.me{align-self:flex-end;background:var(--accent-tint);color:var(--ink)}
.chatmsg.them{align-self:flex-start}
.chatinput{display:flex;gap:8px}
.chatinput input{flex:1;border:1px solid var(--faint);border-radius:var(--r-sm);background:var(--card2);color:var(--ink);padding:9px 12px;font-size:13.5px;font-family:var(--sans);outline:none}
.chatinput input:focus{border-color:var(--accent)}

/* wallet strip, dues lure, dispute, ban warning */
.banblock{display:none;padding:13px 16px;border-radius:var(--r-sm);font-size:13px;margin-bottom:14px;border:1px solid var(--faint)}
.banblock:empty{display:none}
.banblock.on{display:block}
.banblock.lure{background:var(--accent-tint);border-color:var(--accent-soft);color:var(--ink2)}
.banblock.welcome{background:var(--ok-tint);border-color:var(--ok-line);color:var(--ink2)}
.banblock.banned{background:var(--bad-bg);border-color:var(--bad-line);color:var(--bad)}
.banblock.review{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn-fg2)}
.payoutrow{display:flex;justify-content:space-between;font-size:13.5px;padding:8px 0;border-bottom:1px solid var(--faint);color:var(--ink2)}
.payoutrow:last-child{border-bottom:none}

/* follow-up reminders — order ID / proof / feedback overdue / return window closing */
.reminderrow{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--faint);flex-wrap:wrap}
.reminderrow:last-child{border-bottom:none}
.reminderrow b{display:block;font-size:14px;color:var(--ink)}
.reminderrow .remtext{font-size:12.5px;color:var(--muted)}

/* WhatsApp doorbell — notification only, never the transaction surface */
.watoast{position:fixed;left:24px;bottom:24px;max-width:340px;background:var(--card);color:var(--ink);border:1px solid var(--faint);border-radius:12px;padding:13px 16px;display:flex;gap:10px;align-items:flex-start;font-size:13.5px;box-shadow:var(--shadow-lg);opacity:0;transform:translateY(10px);transition:opacity .25s,transform .25s;z-index:60}
.watoast.on{opacity:1;transform:translateY(0)}
.watoast .waic{flex:0 0 auto}
.walogrow{display:flex;gap:10px;align-items:flex-start;font-size:12.5px;color:var(--muted-safe);padding:7px 0;border-bottom:1px solid var(--faint)}
.walogrow:last-child{border-bottom:none}
.walogrow .waic{flex:0 0 auto}

/* first-penalty ban warning modal */
.banwarn{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);max-width:480px;background:var(--card);color:var(--ink);border:1px solid var(--accent-soft);border-radius:var(--r);padding:18px 20px;font-size:13.5px;line-height:1.5;box-shadow:var(--shadow-lg);opacity:0;transition:opacity .25s,transform .25s;z-index:70}
.banwarn.on{opacity:1;transform:translate(-50%,0)}
.banwarnx{display:block;margin-top:12px;background:var(--accent-fill);color:var(--on-accent);border:none;border-radius:999px;padding:8px 16px;font-size:12.5px;font-weight:600;cursor:pointer}

/* standing — plain-language state line */
.standingline{font-size:13.5px;padding:10px 0;color:var(--ink2)}
.standingline.ok{color:var(--go)}
.standingline.warn{color:var(--warn-fg)}
.standingline.banned{color:var(--bad)}

/* profile & terms: label/value pairs on a shared baseline */
.premprofile{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:28px;align-items:start}
.premprofile .ring{margin:0 auto}
@media(max-width:760px){.premprofile{grid-template-columns:1fr;gap:22px}}
.premfield{display:grid;grid-template-columns:130px minmax(0,1fr);align-items:center;gap:14px;padding:11px 0;border-bottom:1px solid var(--faint)}
.premfield:last-child{border-bottom:0}
.premfield label{font-size:12.5px;color:var(--muted);margin:0}
.premval{font-size:14.5px;color:var(--ink)}

/* chip / toggle buttons — joined pill, one clear filled selected state */
.termtoggle{display:inline-flex;gap:0}
.termtoggle button{
  font:inherit;font-size:13px;line-height:1;padding:9px 16px;min-height:36px;
  display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;
  background:transparent;color:var(--ink2);border:1px solid var(--faint);cursor:pointer;
  transition:background .15s,color .15s,border-color .15s;
}
.termtoggle button:first-child{border-radius:999px 0 0 999px}
.termtoggle button:last-child{border-radius:0 999px 999px 0;border-left:0}
.termtoggle button.sel{background:var(--accent-fill);border-color:var(--accent-fill);color:var(--on-accent)}
.termtoggle button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* filter bar */
.ccfilterbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:20px}
@media(max-width:760px){.ccfilterbar{grid-template-columns:1fr}}
.ccfilter label{display:block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.ccfilter select{
  width:100%;min-height:42px;padding:10px 34px 10px 12px;font:inherit;font-size:14px;line-height:1.2;
  color:var(--ink);background:var(--card);border:1px solid var(--faint);border-radius:10px;appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23999' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center;
}

/* prototype-only demo controls, visually distinct from real product chrome */
.democontrols{border:1px dashed var(--faint);border-radius:12px;padding:14px 16px;margin-top:20px;background:var(--card2)}
.democontrols .dclbl{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.democontrols .cta-row{gap:8px}

/* ---------- progressive creator profiling (optional, skippable, never a gate) ---------- */
.profilecard{padding:20px 22px}
.profilehead{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap;margin-bottom:14px}
.profilehead h4{font-size:16px;margin-bottom:4px}
.profilemeter{min-width:160px;text-align:right}
.profilemeter small{font-size:11.5px;color:var(--muted)}
.profilemeterbar{width:160px;height:6px;border-radius:999px;background:var(--faint);overflow:hidden;margin-bottom:4px}
.profilemeterbar span{display:block;height:100%;background:var(--accent);border-radius:999px;transition:width .2s}
.profileform .field:last-child{margin-bottom:0}
.householdrow{display:flex;gap:16px;flex-wrap:wrap}
.householdrow>div{flex:1;min-width:160px}
.householdrow small{display:block;font-size:11.5px;color:var(--muted);margin-bottom:6px}
@media(max-width:600px){.profilehead{flex-direction:column}.profilemeter{text-align:left}.profilemeterbar{width:100%}}

/* ---------- admin surface (reuses premwrap/premhead/premnav/premsection layout,
   no premtheme body class so it renders on the base orange accent, not bronze) ---------- */
.admlogincard{max-width:380px;margin:0 auto}
.regcard{margin-bottom:14px}
.regstats{display:flex;flex-wrap:wrap;gap:16px 22px;margin-top:12px;padding-top:12px;border-top:1px dashed var(--faint)}
.regstat{min-width:96px}
.regstat b{display:block;font-family:var(--serif);font-size:16px;color:var(--ink)}
.regstat small{font-size:11px;color:var(--muted)}
.creatorpills{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.creatorpill{font-size:11.5px;padding:4px 10px;border-radius:999px;background:var(--card2);border:1px solid var(--faint);color:var(--ink2)}
.creatorpill.accepted,.creatorpill.posted{background:var(--ok-bg);color:var(--ok-fg);border-color:var(--ok-line)}
.creatorpill.declined,.creatorpill.rejected{background:var(--bad-bg);color:var(--bad);border-color:var(--bad-line)}
.creatorpill.requested,.creatorpill.invited{background:var(--accent-tint);color:var(--accent);border-color:var(--accent-soft)}
.status.flagged{background:var(--warn-bg);color:var(--warn-fg)}
.status.adminapproved{background:var(--accent-tint);color:var(--accent)}
.status.rejectedstate{background:var(--bad-bg);color:var(--bad)}
.status.activestate{background:var(--ok-bg);color:var(--ok-fg)}
.status.completestate{background:var(--solid-bg);color:var(--solid-fg)}
.status.autostate{background:var(--faint);color:var(--muted)}
.flagreason{font-size:12.5px;color:var(--warn-fg2);background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:var(--r-sm);padding:8px 12px;margin:10px 0 0}
.rfield{width:100%;background:var(--card2);border:1px solid var(--faint);border-radius:var(--r-sm);color:var(--ink);font-family:var(--sans);font-size:14px;padding:10px 12px;margin:10px 0}
.rfield:focus{outline:none;border-color:var(--accent)}
.auditrow{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid var(--faint);font-size:12.5px;color:var(--ink2)}
.auditrow:last-child{border-bottom:none}
.auditrow .auleft{max-width:70%}
.auditrow .autarget{color:var(--muted);display:block;margin-top:2px}
.auditts{color:var(--muted);white-space:nowrap;font-family:var(--mono);font-size:11px}
.threshgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px 22px}
.threshgrid .field{margin-bottom:0}
.admstat{display:inline-flex;flex-direction:column;gap:2px;margin-right:26px}
.admstat b{font-family:var(--serif);font-size:22px;color:var(--accent)}
.admstat small{font-size:11.5px;color:var(--muted)}
.admname{font-size:13px;color:var(--muted)}
.admname b{color:var(--ink)}

/* ---------- responsive ---------- */
@media(max-width:900px){
  .navlinks{display:none}
  .menu-btn{display:inline-block}
  .navcta .btn.ghost{display:none}
  .nav{padding:12px 20px}
  .brand{font-size:20px}
  .nav.open .navlinks{display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;background:var(--card);border:1px solid var(--faint);border-radius:var(--r);padding:8px 20px;margin-top:8px;box-shadow:var(--shadow-lg)}
  .nav.open .navlinks a{padding:13px 0;border-bottom:1px solid var(--faint)}
  .hero{grid-template-columns:1fr;gap:34px}
  .hero .widget{order:-1}
  .steps3,.grid3,.grid4{grid-template-columns:1fr}
  .twoside{grid-template-columns:1fr}
  .grid2{grid-template-columns:1fr}
  .pricehero{grid-template-columns:1fr;gap:26px;padding:30px}
  .examples{grid-template-columns:1fr}
  .products{grid-template-columns:1fr 1fr}
  .earnbar{grid-template-columns:1fr 1fr}
  .wiz{grid-template-columns:minmax(0,1fr)}
  .wiz-rail{border-right:none;border-bottom:1px solid var(--faint);border-radius:var(--r-lg) var(--r-lg) 0 0;padding:20px 22px}
  .wiz-main{border-radius:0 0 var(--r-lg) var(--r-lg)}
  .steps{display:none}
  .railmobile{display:block}
  .wiz-main{padding:28px 22px}.opts{grid-template-columns:1fr}
  .dash{grid-template-columns:repeat(6,1fr)}
  .span3,.span4,.span5{grid-column:span 3}.span6,.span7,.span8,.span12{grid-column:span 6}
  .ugc{grid-template-columns:repeat(2,1fr)}
  .review-grid{grid-template-columns:1fr}
  .segopts,.addons{grid-template-columns:1fr}
  .wallet{flex-direction:column;align-items:flex-start}
  .wallet .wsplit{width:100%;justify-content:space-between}
  .campaignrow{flex-direction:column;align-items:flex-start}
  .authcard{padding:28px 22px}
  .otpboxes input{width:38px;height:46px}
  .swipewrap{grid-template-columns:1fr}
  .swipestage{height:320px}
  .reqcard{flex-direction:column;align-items:flex-start}
}
@media(max-width:560px){
  .products{grid-template-columns:1fr}
  .earnbar{grid-template-columns:1fr 1fr;gap:18px;padding:26px}
  .estimate{grid-template-columns:1fr}.estimate .e{border-right:none;border-bottom:1px solid var(--accent-soft)}
  .dash{grid-template-columns:1fr}[class*=span]{grid-column:span 1 !important}
  .timeline{grid-template-columns:1fr}
  .budgetblock .brow{flex-direction:column;align-items:flex-start;gap:4px}
}
@media(prefers-reduced-motion:reduce){
  html.js .reveal,.reveal,.wiz-step{animation:none!important;opacity:1!important;transform:none!important;transition:none!important;clip-path:none!important}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  html{scroll-behavior:auto}
}

/* ============================================================
   v3 restyle — condensed display type, vermilion accent,
   black CTA, black band. Reference: homepage direction, Aug 2026.
   ============================================================ */

/* big numbers and estimates read as heavy sans, not serif */
.budgetinput.lg{font-family:var(--sans);font-weight:800;letter-spacing:-.03em}
.estimate .en{font-family:var(--sans);font-weight:800;letter-spacing:-.02em}
.ring .num,.fstep .fn,.tl-node,.side h3{font-family:var(--sans);font-weight:800;letter-spacing:-.03em}
.side h3{font-size:clamp(28px,2.8vw,36px);line-height:1.05}

/* hand-drawn underline under a highlighted word */
.sketch{position:relative;display:inline-block}
.sketch::after{content:"";position:absolute;left:-1%;right:-1%;bottom:-.16em;height:.22em;
  background:no-repeat center/100% 100% url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 12' preserveAspectRatio='none'><path d='M2 8.5C38 3.5 92 2.5 198 5.5' stroke='%23141110' stroke-width='3.2' fill='none' stroke-linecap='round'/></svg>")}
.sketch.acc::after{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 12' preserveAspectRatio='none'><path d='M2 8.5C38 3.5 92 2.5 198 5.5' stroke='%23F0451C' stroke-width='3.2' fill='none' stroke-linecap='round'/></svg>")}

/* hero assurance row — circled icons, two-line labels */
.hero .assure{gap:26px;margin-top:30px}
.hero .assure span{align-items:flex-start;gap:11px;font-size:13.5px;line-height:1.35;color:var(--ink2);max-width:19ch}
.hero .assure .ic{flex:0 0 auto;width:36px;height:36px;border-radius:50%;border:1.5px solid var(--accent);
  color:var(--accent);display:grid;place-items:center;font-size:15px;font-weight:700;background:var(--card)}

/* full-bleed black band */
.blackband{background:var(--black);color:#fff;padding:38px 0 42px;margin-top:56px;position:relative;z-index:1;
  border-radius:var(--r-lg) var(--r-lg) 0 0}
.blackband .k{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.55);margin-bottom:20px}
.blackband .marks{display:flex;flex-wrap:wrap;align-items:center;gap:44px}
.blackband .marks img{height:26px;width:auto;filter:brightness(0) invert(1);opacity:.78}
.blackband .marks span{font-size:15px;font-weight:700;letter-spacing:-.01em;color:rgba(255,255,255,.82)}
.blackband .note{margin-top:18px;font-size:12.5px;color:rgba(255,255,255,.5);max-width:70ch}

/* widget: primary action is black, presets tighter */
.widget .go,.widget .btn.dark{width:100%;justify-content:center;background:var(--black);border-color:var(--black);color:#fff;margin-top:4px}
.widget .go:hover,.widget .btn.dark:hover{background:var(--black-h);border-color:var(--black-h);box-shadow:0 12px 28px rgba(19,17,16,.28)}
.widget .wt{font-weight:600;color:var(--muted)}
.preset{font-weight:700}
.preset.on,.preset[aria-pressed="true"]{background:var(--accent-fill);border-color:var(--accent-fill);color:var(--on-accent)}

/* cards sit a touch softer */
.card,.widget,.stepc,.feat,.ex{border-color:var(--line)}

@media (max-width:900px){
  .hero .assure{gap:18px}
  .hero .assure span{max-width:none;flex:1 1 100%}
  .blackband .marks{gap:26px}
  .blackband .marks img{height:20px}
}

/* ============================================================
   DARK THEME
   Light is the default. Dark switches on only when theme.js puts
   data-theme="dark" on <html>, which happens when the person taps
   the sun / moon button in the top bar. The choice is remembered.

   Everything below is token swaps plus a short list of components
   that had a light colour baked in. Do not add page-specific dark
   rules — fix the token instead, or the two themes will drift.
   ============================================================ */
html[data-theme="dark"]{
  --bg:#131316; --bg2:#191A1E; --card:#1C1D22; --card2:#171820;
  --ink:#F4F1ED; --ink2:#CFC9C3; --muted:#9C948C; --muted-safe:#B0AAA4;
  --faint:#2C2D34; --line:#2A2B31;
  --accent:#FF5630; --accent-h:#FF6E4D; --accent-soft:#5A2417; --accent-tint:#25150F;
  --accent-cta:#EC4718; --accent-cta-h:#FF5A2E; --accent-fill:#EC4718; --accent-rgb:255,86,48; --accent-ink:#B02D10;
  --go:#3DD68C; --star:#F5C242;
  --black:#0D0D10; --black-h:#17171B;
  --on-accent:#FFFFFF; --accent2:#FF7A45; --accent3:#FF9364;
  --ok-bg:#132A20; --ok-fg:#4ADE8F; --ok-line:#1F4534; --ok-tint:#101E18;
  --warn-bg:#2C2210; --warn-fg:#F0C14B; --warn-line:#4A3A17; --warn-fg2:#F0C14B;
  --bad:#FF6B5A; --bad-bg:#2E1614; --bad-line:#4D2320;
  --info-bg:#14203A; --info-fg:#7FA8E8; --macro-bg:#2C1522; --macro-fg:#E390B4;
  --solid-bg:#33343C; --solid-fg:#F4F1ED;
  --header-bg:rgba(19,19,22,.82);
  --thumb:#F4F1ED; --peach:#3A2118; --on-black:#F4F1ED; --on-go:#08251A;
  --shadow:0 1px 2px rgba(0,0,0,.4), 0 10px 30px rgba(0,0,0,.42);
  --shadow-lg:0 2px 8px rgba(0,0,0,.45), 0 24px 60px rgba(0,0,0,.55);
}
html[data-theme="dark"] body::before{
  background:radial-gradient(760px 520px at 96% 4%, rgba(var(--accent-rgb),.10), transparent 62%),
             radial-gradient(680px 620px at 88% 82%, rgba(var(--accent-rgb),.11), transparent 60%),
             radial-gradient(560px 440px at -6% 14%, rgba(var(--accent-rgb),.05), transparent 58%)}

/* the ivory-only bits that had a light colour written in by hand */
html[data-theme="dark"] .btn.ghost:hover{background:var(--card2)}
html[data-theme="dark"] .menu-btn{background:var(--card)}
html[data-theme="dark"] .side.review .btn,
html[data-theme="dark"] .ctaband .btn{background:#FFFFFF;color:var(--accent-ink);border-color:#FFFFFF}

/* on dark, a black band is invisible — make it a bordered panel instead */
html[data-theme="dark"] .blackband{background:#0C0C0F;border-top:1px solid var(--faint)}

/* the widget's primary action is black on ivory; on dark it becomes coral */
html[data-theme="dark"] .widget .go,
html[data-theme="dark"] .widget .btn.dark,
html[data-theme="dark"] .btn.dark{background:var(--accent-fill);border-color:var(--accent-fill);color:var(--on-accent)}
html[data-theme="dark"] .btn:hover{background:var(--accent-cta-h);border-color:var(--accent-cta-h)}
html[data-theme="dark"] .widget .go:hover,
html[data-theme="dark"] .widget .btn.dark:hover,
html[data-theme="dark"] .btn.dark:hover{background:var(--accent-h);border-color:var(--accent-h);box-shadow:0 12px 28px rgba(var(--accent-rgb),.28)}

/* hand-drawn underline: the stroke colour lives inside an SVG data url */
html[data-theme="dark"] .sketch::after{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 12' preserveAspectRatio='none'><path d='M2 8.5C38 3.5 92 2.5 198 5.5' stroke='%23F4F1ED' stroke-width='3.2' fill='none' stroke-linecap='round'/></svg>")}
html[data-theme="dark"] .sketch.acc::after{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 12' preserveAspectRatio='none'><path d='M2 8.5C38 3.5 92 2.5 198 5.5' stroke='%23FF5630' stroke-width='3.2' fill='none' stroke-linecap='round'/></svg>")}

/* marketplace logos are dark SVGs — they already invert inside .blackband,
   anywhere else on dark they need the same treatment */
html[data-theme="dark"] .blackband .marks img{opacity:.78}

/* the bronze premium accent is too dark to read on charcoal */
html[data-theme="dark"] .premtheme{
  --accent:#D9AE72; --accent-h:#EBC48D; --accent-soft:#453521; --accent-tint:#221B12;
  --accent-cta:#D9AE72; --accent-cta-h:#EBC48D; --accent-fill:#D9AE72;
  /* bronze is a light fill on dark, so anything sitting on it needs dark text */
  --on-accent:#1C1608;
}
html[data-theme="dark"] .premtheme .btn.ghost{color:var(--ink)}

/* ---------- the sun / moon button, injected into .navcta by theme.js ---------- */
.themetoggle{width:36px;height:36px;flex:0 0 36px;display:grid;place-items:center;padding:0;
  border:1px solid var(--faint);border-radius:50%;background:var(--card);color:var(--ink2);
  cursor:pointer;order:-1;
  transition:color var(--d-fast) var(--ease-quint),border-color var(--d-fast) var(--ease-quint),
             background var(--d-fast) var(--ease-quint),transform var(--d-fast) var(--ease-quint)}
.themetoggle:hover{color:var(--accent);border-color:var(--accent);transform:translateY(-1px)}
.themetoggle:active{transform:translateY(0) scale(.94)}
.themetoggle svg{display:block}

/* logo swap without waiting for JS (Chrome / Safari); theme.js also swaps the
   src so Firefox and anything else still get the light-wordmark version */
html[data-theme="dark"] .brand img,
html[data-theme="dark"] .foot .fb img{content:url("trialloop-logo-dark.png?v=12oct15")}

/* ============================================================
   Accent options — for the colour decision only.
   Vermilion is the default (no data-accent attribute).
   data-accent="forest" and data-accent="ink" swap the whole
   accent family in both themes. Picked from the dots in the top
   bar, remembered in localStorage tl-accent. The logo keeps its
   coral mark in this preview — it gets recoloured only once a
   final colour is chosen.
   ============================================================ */
html[data-accent="forest"]{
  --accent:#15803D; --accent-h:#116632; --accent-soft:#CBEAD6; --accent-tint:#E9F7EE;
  --accent-cta:#116632; --accent-cta-h:#0D5228; --accent-fill:#15803D;
  --accent2:#2FA05C; --accent3:#63BE8B; --peach:#D9EFE1;
  --accent-rgb:21,128,61; --accent-ink:#0D5228;
}
html[data-accent="forest"][data-theme="dark"]{
  --accent:#4ADE80; --accent-h:#6BE699; --accent-soft:#1C4A30; --accent-tint:#10241A;
  --accent-cta:#15803D; --accent-cta-h:#1B9A4B; --accent-fill:#15803D;
  --accent2:#5AE28F; --accent3:#7FEAA8; --peach:#183526;
  --accent-rgb:74,222,128; --accent-ink:#0D5228;
}
html[data-accent="ink"]{
  --accent:#1D4ED8; --accent-h:#1740B5; --accent-soft:#CEDCF8; --accent-tint:#EAF0FC;
  --accent-cta:#1740B5; --accent-cta-h:#123394; --accent-fill:#1D4ED8;
  --accent2:#3B6BE8; --accent3:#7396EE; --peach:#DCE6FA;
  --accent-rgb:29,78,216; --accent-ink:#123394;
}
html[data-accent="ink"][data-theme="dark"]{
  --accent:#7CA5F5; --accent-h:#96B7F8; --accent-soft:#1E3560; --accent-tint:#131E33;
  --accent-cta:#2B5CE6; --accent-cta-h:#3E6CEF; --accent-fill:#2B5CE6;
  --accent2:#8FB1F7; --accent3:#AAC4FA; --peach:#16233D;
  --accent-rgb:124,165,245; --accent-ink:#123394;
}

/* hand-drawn underline stroke follows the accent */
html[data-accent="forest"] .sketch.acc::after{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 12' preserveAspectRatio='none'><path d='M2 8.5C38 3.5 92 2.5 198 5.5' stroke='%2315803D' stroke-width='3.2' fill='none' stroke-linecap='round'/></svg>")}
html[data-accent="forest"][data-theme="dark"] .sketch.acc::after{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 12' preserveAspectRatio='none'><path d='M2 8.5C38 3.5 92 2.5 198 5.5' stroke='%234ADE80' stroke-width='3.2' fill='none' stroke-linecap='round'/></svg>")}
html[data-accent="ink"] .sketch.acc::after{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 12' preserveAspectRatio='none'><path d='M2 8.5C38 3.5 92 2.5 198 5.5' stroke='%231D4ED8' stroke-width='3.2' fill='none' stroke-linecap='round'/></svg>")}
html[data-accent="ink"][data-theme="dark"] .sketch.acc::after{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 12' preserveAspectRatio='none'><path d='M2 8.5C38 3.5 92 2.5 198 5.5' stroke='%237CA5F5' stroke-width='3.2' fill='none' stroke-linecap='round'/></svg>")}

/* the accent dots in the top bar */
.accentpick{display:inline-flex;align-items:center;gap:7px;margin-right:2px}
.accentdot{width:17px;height:17px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;
  box-shadow:inset 0 0 0 2px var(--bg);transition:transform var(--d-fast) var(--ease-quint)}
.accentdot:hover{transform:scale(1.15)}
.accentdot[aria-pressed="true"]{border-color:var(--ink)}
.accentdot.v{background:#F0451C}
.accentdot.f{background:#15803D}
.accentdot.i{background:#1D4ED8}
@media(max-width:600px){.accentpick{gap:6px}.accentdot{width:15px;height:15px}}

/* ============================================================
   Campaign tracker — the brand's post-submission view.
   One row per creator, eight stages:
   Offered → Accepted → Ordered → Shipped → Delivered →
   Feedback → Window shut → Paid
   ============================================================ */
.tracklegend{display:flex;justify-content:space-between;gap:6px;font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:14px 0 4px;padding-left:146px;padding-right:158px}
.trackrow{display:flex;align-items:center;gap:16px;padding:11px 0;border-top:1px solid var(--faint);font-size:13.5px}
.trackrow .who{flex:0 0 130px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.trackrow .where{flex:0 0 142px;text-align:right}
.trackdots{flex:1;display:flex;align-items:center;min-width:0}
.tdot{width:10px;height:10px;border-radius:50%;background:var(--faint);flex:none;position:relative}
.tdot.done{background:var(--accent-fill)}
.tdot.now{width:14px;height:14px;background:var(--card);border:3px solid var(--accent)}
.tdot.stop{width:14px;height:14px;background:var(--warn-bg);border:3px solid var(--warn-fg)}
.tbar{flex:1;height:3px;background:var(--faint);min-width:8px}
.tbar.done{background:var(--accent-fill)}
@media(max-width:760px){
  .tracklegend{display:none}
  .trackrow{flex-wrap:wrap;gap:8px}
  .trackrow .who{flex:1 1 auto}
  .trackrow .where{flex:0 0 auto}
  .trackdots{flex:1 1 100%;order:3}
}
.trackrow .who a{color:inherit;border-bottom:1px dashed var(--faint)}
.trackrow .who a:hover{color:var(--accent);border-bottom-color:var(--accent)}

/* ============================================================
   THEME PACKS — for the design decision with Amit.
   Not just a colour: each pack changes type, shape, surfaces
   and the accent together. Picked from the named buttons in the
   top bar, remembered in localStorage tl-pack.
   - Ivory (default): Anton + Manrope, ivory, vermilion. As built.
   - Fresh: Poppins 800 + Sora, mint-white, bright
     positive green with dark ink on buttons, rounder and softer.
   - Studio: Space Grotesk + Inter, flat paper, sharp corners,
     tight ops-tool feel. Same vermilion — proves a theme is more
     than a colour.
   The logo mark stays coral in every pack until branding is final.
   ============================================================ */
html[data-pack="fresh"]{
  --display:'Poppins','Anton',system-ui,sans-serif;
  --sans:'Sora','Manrope',system-ui,sans-serif; --serif:'Sora',system-ui,sans-serif;
  --bg:#F4FAF6; --bg2:#EAF4EC; --card:#FFFFFF; --card2:#F7FBF8;
  --faint:#DFEDE3; --line:#E2EEE6;
  --accent:#0E7C44; --accent-h:#0B6437; --accent-soft:#C9EBD7; --accent-tint:#E7F6EC;
  --accent-cta:#0E7C44; --accent-cta-h:#0B6437; --accent-fill:#31C97C; --on-accent:#08130C;
  --accent2:#31C97C; --accent3:#7FE3AE; --peach:#D9F3E3;
  --accent-rgb:49,201,124; --accent-ink:#0B6437;
  --header-bg:rgba(244,250,246,.85);
  --r:22px; --r-sm:15px; --r-lg:30px;
  --shadow:0 1px 2px rgba(14,60,35,.05), 0 12px 34px rgba(14,60,35,.08);
  --shadow-lg:0 2px 8px rgba(14,60,35,.06), 0 26px 64px rgba(14,60,35,.13);
}
html[data-pack="fresh"] h1,html[data-pack="fresh"] h2{text-transform:none;letter-spacing:-.02em;font-weight:800;line-height:1.06}
html[data-pack="fresh"] .btn{border-radius:999px;font-weight:700}
html[data-pack="fresh"] .btn.dark{background:var(--accent-fill);border-color:var(--accent-fill);color:var(--on-accent)}
html[data-pack="fresh"] .btn.dark:hover{background:#3BDB8A;border-color:#3BDB8A}
html[data-pack="fresh"][data-theme="dark"]{
  --bg:#0F1512; --bg2:#141B17; --card:#181F1B; --card2:#131A16;
  --faint:#25302A; --line:#232E28;
  --accent:#57E39B; --accent-h:#79EBAF; --accent-soft:#1D4530; --accent-tint:#12271B;
  --accent-cta:#2BB56C; --accent-cta-h:#35C77A; --accent-fill:#2BB56C; --on-accent:#06130B;
  --accent2:#57E39B; --accent3:#8FEEBB; --peach:#16301F;
  --accent-rgb:87,227,155; --accent-ink:#0B6437;
  --header-bg:rgba(15,21,18,.85);
}
html[data-pack="studio"]{
  --display:'Space Grotesk','Anton',system-ui,sans-serif;
  --sans:'Inter','Manrope',system-ui,sans-serif; --serif:'Inter',system-ui,sans-serif;
  --bg:#F6F5F2; --bg2:#EFEDE8; --card:#FFFFFF; --card2:#FAF9F7;
  --faint:#E4E1DB; --line:#E7E4DE;
  --accent:#0E756C; --accent-h:#0B5F58; --accent-soft:#C4E7E2; --accent-tint:#E6F4F2;
  --accent-cta:#0E756C; --accent-cta-h:#0B5F58; --accent-fill:#0E756C; --on-accent:#FFFFFF;
  --accent2:#149C90; --accent3:#5CC4BA; --peach:#D6EEEA;
  --accent-rgb:14,117,108; --accent-ink:#0B5F58;
  --r:10px; --r-sm:7px; --r-lg:14px;
  --header-bg:rgba(246,245,242,.9);
  --shadow:0 1px 2px rgba(20,17,16,.06);
  --shadow-lg:0 2px 6px rgba(20,17,16,.07), 0 14px 34px rgba(20,17,16,.09);
}
html[data-pack="studio"] h1,html[data-pack="studio"] h2{letter-spacing:-.01em;font-weight:700;line-height:1.04}
html[data-pack="studio"] .btn{border-radius:8px}
html[data-pack="studio"] .pill,html[data-pack="studio"] .count,html[data-pack="studio"] .aplvl{border-radius:6px}
html[data-pack="studio"] body::before{display:none}
html[data-pack="studio"][data-theme="dark"]{
  --bg:#121212; --bg2:#171716; --card:#1B1B1A; --card2:#161615;
  --faint:#2B2A28; --line:#292826;
  --accent:#2DD4BF; --accent-h:#53E0CE; --accent-soft:#134E48; --accent-tint:#0F2926;
  --accent-cta:#0F766E; --accent-cta-h:#12968C; --accent-fill:#0F766E; --on-accent:#FFFFFF;
  --accent2:#2DD4BF; --accent3:#7BE5D8; --peach:#0F2926;
  --accent-rgb:45,212,191; --accent-ink:#0B5F58;
  --header-bg:rgba(18,18,18,.9);
}

/* pack picker buttons in the top bar */
.packpick{display:inline-flex;align-items:center;gap:5px;margin-right:4px}
.packbtn{font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:transparent;border:1px solid var(--faint);border-radius:999px;padding:5px 8px;cursor:pointer;white-space:nowrap;transition:color var(--d-fast) var(--ease-quint),border-color var(--d-fast) var(--ease-quint)}
.packbtn:hover{color:var(--accent);border-color:var(--accent-soft)}
.packbtn[aria-pressed="true"]{color:var(--accent);border-color:var(--accent);background:var(--accent-tint)}
@media(max-width:760px){.packbtn{padding:5px 8px;font-size:10px}}

/* little (?) explainer for first-timers — hover for the answer */
.qmark{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;border:1.5px solid var(--muted);color:var(--muted);font-size:10.5px;font-weight:700;cursor:help;vertical-align:1px;margin-left:5px}
.qmark:hover{border-color:var(--accent);color:var(--accent)}
/* small screens: theme buttons step aside, the sun/moon stays */
@media(max-width:560px){.packpick{display:none}}
/* keep the nav on one line now that the theme buttons are in it */
@media(max-width:1380px){.navlinks{gap:20px;font-size:14px}}
@media(max-width:1200px){.navlinks{gap:14px;font-size:13.5px}}

/* small exit link on app screens — back to the desktop demo */
.apexit{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border:1px solid var(--faint);border-radius:999px;padding:5px 9px;white-space:nowrap}
.apexit:hover{color:var(--accent);border-color:var(--accent-soft)}

/* ---------- floating WhatsApp button (number in site-settings.js) ---------- */
.wa-float{position:fixed;right:20px;bottom:20px;z-index:60;display:inline-flex;align-items:center;gap:8px;background:var(--wa);color:var(--on-wa);font-weight:700;font-size:14px;padding:12px 18px 12px 14px;border-radius:999px;box-shadow:var(--shadow-lg);transition:background var(--d-fast) var(--ease-quint),transform var(--d-fast) var(--ease-quint)}
.wa-float:hover{background:var(--wa-h);transform:translateY(-2px)}
.wa-float svg{flex:none}
@media (max-width:560px){.wa-float{padding:13px;right:14px;bottom:14px}.wa-float span{display:none}}
.back-to-top{bottom:84px}

/* ---------- wizard: open world (10 Oct 2026) ---------- */
.reqm{color:var(--bad);font-weight:700}
.optl{color:var(--muted);font-weight:400}
.reqnote{margin:0 0 14px}
.field.invalid select{border-color:var(--bad)}
.fieldrow{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.fieldrow > .field{min-width:0}
.locfield > .err{display:none}
.locfield.locbad > .err{display:block}
.loclist{display:flex;flex-direction:column;gap:12px;margin-bottom:12px}
.loclist:empty{display:none}
.locrow{border:1px solid var(--faint);border-radius:var(--r-sm);background:var(--card2);padding:14px 16px 2px}
.lochead{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.locn{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.locrm{background:none;border:none;font-family:var(--sans);font-size:12.5px;font-weight:600;color:var(--muted);cursor:pointer;padding:6px 4px;text-decoration:underline;text-underline-offset:2px}
.locrm:hover{color:var(--bad)}
.locgrid{display:grid;grid-template-columns:1fr 1.6fr;gap:0 12px}
.locgrid.ev{grid-template-columns:1fr 1.6fr 1fr}
.locgrid .field{margin-bottom:12px;min-width:0}
.locgrid .field label{font-size:12.5px;margin-bottom:6px}
.locgrid .field input{padding:11px 12px;font-size:14.5px;background:var(--card)}
.invitebox{margin-top:24px;padding-top:20px;border-top:1px solid var(--faint)}
.handlechips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.handlechips:empty{display:none}
.hcount{font-size:12.5px;font-weight:700;color:var(--on-accent);background:var(--accent-fill);border-radius:999px;padding:4px 10px}
.hchip{font-family:var(--mono);font-size:12px;color:var(--ink2);background:var(--card2);border:1px solid var(--faint);border-radius:999px;padding:4px 10px;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.swipehow{font-size:12.5px;color:var(--muted);text-align:center;margin:8px 0 0}
.pickrow button.prx{background:none;border:none;color:inherit;font:inherit;cursor:pointer;padding:2px 6px}
.branddetails{border:1px solid var(--faint);border-radius:var(--r);padding:18px 20px 4px;margin:0 0 22px;background:var(--card2);min-width:0}
.branddetails legend{font-size:13.5px;font-weight:700;color:var(--ink);padding:0 6px}
.branddetails .field input{background:var(--card)}
.waphone{display:flex;align-items:stretch}
.waphone .wapfx{display:flex;align-items:center;padding:0 12px;border:1px solid var(--faint);border-right:none;border-radius:var(--r-sm) 0 0 var(--r-sm);background:var(--bg2);color:var(--muted);font-family:var(--mono);font-size:14px}
.field .waphone input{border-radius:0 var(--r-sm) var(--r-sm) 0;min-width:0}
.field .termsck{display:flex;align-items:center;gap:10px;font-weight:500;cursor:pointer;margin:0}
.field .termsck input{width:20px;height:20px;flex:0 0 20px;padding:0;accent-color:var(--accent-fill)}
.field.invalid .termsck input{outline:2px solid var(--bad);outline-offset:1px}
.paybox .wcrow + .wcrow{margin-top:8px}
.paybox .wcrow.wctotal{padding-top:10px;border-top:1px solid var(--faint);margin-top:12px}
.paybox .wctotal b{color:var(--accent)}
.paybox .wcbal{font-size:12.5px;color:var(--muted)}
.payfoot{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.paysheet{position:fixed;inset:0;z-index:90;display:flex;align-items:flex-end;justify-content:center}
.paysheet[hidden]{display:none}
.psback{position:absolute;inset:0;background:var(--black);opacity:.5}
.pspanel{position:relative;width:100%;max-width:440px;background:var(--card);color:var(--ink);border:1px solid var(--faint);border-radius:var(--r-lg) var(--r-lg) 0 0;box-shadow:var(--shadow-lg);padding:22px 20px 24px;max-height:90vh;overflow-y:auto;animation:rise .3s cubic-bezier(.2,.7,.2,1)}
.pspanel:focus{outline:none}
.pshead{display:flex;justify-content:space-between;align-items:center;gap:12px}
.pshead h3{font-size:22px}
.psx{background:none;border:1px solid var(--faint);border-radius:999px;width:40px;height:40px;flex:0 0 40px;color:var(--ink2);cursor:pointer;font-size:14px}
.psdemo{font-size:13px;color:var(--warn-fg2);background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:var(--r-sm);padding:8px 12px;margin:12px 0 16px}
.psmethods{display:flex;flex-direction:column;gap:8px;margin-bottom:18px}
.psm{display:flex;align-items:center;gap:12px;border:1px solid var(--faint);border-radius:var(--r-sm);padding:12px 14px;background:var(--card2);cursor:pointer}
.psm:has(input:checked){border-color:var(--accent);background:var(--accent-tint)}
.psm input{width:18px;height:18px;accent-color:var(--accent-fill);flex:0 0 18px}
.psm b{display:block;font-size:14.5px}
.psm small{display:block;font-size:12.5px;color:var(--muted)}
.psm.off{opacity:.55;cursor:not-allowed}
html.psopen{overflow:hidden}
@media(min-width:600px){.paysheet{align-items:center}.pspanel{border-radius:var(--r-lg)}}
@media(max-width:600px){
  .fieldrow{grid-template-columns:1fr}
  .locgrid,.locgrid.ev{grid-template-columns:1fr}
  .branddetails{padding:14px 14px 2px}
  [data-review] .wiz-foot{flex-wrap:wrap;gap:12px}
  .payfoot{width:100%}
  .payfoot .btn{flex:1 1 auto;justify-content:center}
}
.fieldrow .opts[data-opts="evplus"]{grid-template-columns:1fr 1fr}
@media(max-width:600px){
  .wiz-foot{flex-wrap:wrap;row-gap:12px}
  .wiz-foot .prog{white-space:nowrap}
  .wiz-foot > div{margin-left:auto}
  .splitlabel{flex-wrap:wrap;gap:2px 12px}
  .splitlabel > span{white-space:nowrap}
  .splitlabel b{white-space:nowrap;font-size:16px}
}

/* status pills may wrap on phones so they never push the page wider (10 Oct 2026) */
@media (max-width:560px){.status{white-space:normal}}
/* phone width fixes found in the 10 Oct check */
@media (max-width:1020px){.journeylayout{grid-template-columns:minmax(0,1fr)!important}}
.jstep{min-width:0}.jstep .chain{overflow-wrap:anywhere}
@media (max-width:560px){.termtoggle{display:flex;flex-wrap:wrap;max-width:100%}.termtoggle button{flex:1 1 auto}}

/* ---------- launch fixes, batch c (12 Oct) ---------- */
/* logged in pages stay hidden until the log in check passes, so nothing flashes (fix 13) */
body[data-requires-session]:not(.tl-ready){visibility:hidden}
/* sign up details step + new account dashboards (fixes 3 and 4) */
.tl-sddone{background:var(--ok-tint);border:1px solid var(--ok-line);border-radius:var(--r);padding:18px;color:var(--ink2);font-size:14.5px}
.tl-sdwa{display:inline-flex;align-items:center;min-height:var(--tap);color:var(--accent);font-weight:600;text-decoration:underline;text-underline-offset:2px}
.tl-fresh{padding:32px}
.tl-fresh h2{font-size:clamp(24px,3vw,32px)}
.tl-fresh .cta-row{margin-top:20px}
[data-fresh-list] .campaignrow{margin-bottom:14px}
/* phone menu carries Log in, since the ghost buttons hide on phone */
.navlinks .navlinks-login{display:none}
/* home: "I'm a brand / I'm a creator" under the headline, phone only */
.herochoice{display:none}
.blackband .k:only-child{margin-bottom:0}
@media(max-width:900px){
  .nav.open .navlinks .navlinks-login{display:block}
  .hero .widget{order:0}
  .herochoice{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:22px 0 4px}
  .herochoice .btn{justify-content:center;min-height:52px;padding:12px 10px;font-size:16px;white-space:nowrap;text-align:center}
  /* every tap target at least --tap tall on phone (fix 9) */
  .themetoggle{width:var(--tap);height:var(--tap);flex-basis:var(--tap)}
  .menu-btn{min-height:var(--tap);min-width:var(--tap)}
  .brand{min-height:var(--tap)}
  .nav.open .navlinks a{min-height:var(--tap);display:flex;align-items:center}
  .foot .fl{gap:0 20px}
  .foot .fl a{min-height:var(--tap);display:inline-flex;align-items:center}
  .apexit{min-height:var(--tap);display:inline-flex;align-items:center;padding:0 14px}
  .termtoggle button{min-height:var(--tap)}
  /* clear strip so the WhatsApp button and back to top never sit on content (fix 10) */
  body{padding-bottom:var(--phone-clear)}
}

/* ---------- brand journey, 12 Oct (row 28): creator counts, pay sheet, campaign page ---------- */
.cntlist{display:flex;flex-direction:column;gap:10px}
.cntrow{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:14px;border:1px solid var(--faint);border-radius:var(--r-sm);background:var(--card);padding:12px 14px}
.cntrow.sm{grid-template-columns:1fr auto;padding:10px 12px;gap:10px}
.cntlbl b{display:flex;align-items:center;gap:6px;font-size:15px}
.cntlbl small{display:block;font-size:12.5px;color:var(--muted);margin-top:2px}
.cntico{flex:0 0 auto}
.cnt{display:flex;align-items:center;border:1px solid var(--line);border-radius:999px;background:var(--card2);overflow:hidden}
.cntb{width:var(--tap);height:var(--tap);border:none;background:none;color:var(--ink);font-size:20px;line-height:1;cursor:pointer}
.cntb:hover{background:var(--accent-tint)}
.cntb:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.cnt input{width:52px;text-align:center;border:none;background:none;font-family:var(--mono);font-size:16px;font-weight:600;color:var(--ink);padding:0}
.cntamt{min-width:84px;text-align:right;font-family:var(--mono);font-weight:600;color:var(--ink2)}
.cntsum{display:flex;justify-content:space-between;align-items:baseline;margin-top:14px;padding:12px 14px;border-radius:var(--r-sm);background:var(--accent-tint)}
.cntsum b{font-family:var(--serif);font-size:22px;color:var(--accent)}
[data-cnt-err]{display:none;color:var(--bad);font-size:12.5px;margin-top:8px}
.widget .cntlist{margin-top:4px}
.widget .fieldrow{gap:10px}
@media(max-width:600px){
  .cntrow{grid-template-columns:1fr auto;row-gap:8px}
  .cntrow .cntlbl{grid-column:1 / -1}
  .cntrow .cntlbl b{white-space:nowrap}
  .cntrow .cntamt{grid-row:2;grid-column:1;text-align:left;min-width:0}
  .cntrow .cnt{grid-row:2;grid-column:2}
  .cntrow.sm .cnt{grid-column:1 / -1;justify-self:start}
}
.greynote,.greynote b,.greynote .rti,.greynote .rta{color:var(--muted);font-weight:500}
.wcdemo{font-size:12.5px;color:var(--muted);margin-top:12px}
.nogst{margin-top:10px!important;font-size:14px}
.ahint.quiet,.authcard .ahint.quiet{background:none;border:none;padding:0;font-size:11.5px;color:var(--muted)}
.psm[hidden]{display:none}
.psbusy{display:flex;align-items:center;justify-content:center;gap:10px;padding:28px 0 12px;font-weight:600}
.psbusy[hidden]{display:none}
.psbusy .spin{width:16px;height:16px;border-radius:50%;border:2px solid var(--faint);border-top-color:var(--accent);animation:spin .7s linear infinite}
.amexamples{margin-top:12px}
.amexlbl{font-size:12.5px;color:var(--muted)}
.wchip{background:transparent;border-color:currentColor;color:inherit;cursor:pointer;font:inherit}
a.crlink{color:inherit;text-decoration:none}
a.crlink:hover{border-color:var(--accent)}
.backlink{display:inline-block;font-size:14px;color:var(--accent);margin-bottom:14px}
.legal h2{font-size:20px;margin:22px 0 8px}
.legal h2:first-child{margin-top:0}
.legal p{color:var(--ink2);line-height:1.65;max-width:70ch}

.demostrip{display:flex;align-items:center;gap:14px;flex-wrap:wrap;border:1px dashed var(--warn-line);background:var(--warn-bg);color:var(--warn-fg2);border-radius:var(--r);padding:14px 16px;margin-bottom:18px}
.demostrip p{flex:1 1 260px;margin:0;font-size:14px}
.demotag{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;border:1px solid currentColor;border-radius:999px;padding:3px 9px}
.demobtns{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.demoreset{font-size:12.5px;color:inherit;text-decoration:underline}
.stageline{list-style:none;display:flex;flex-wrap:wrap;gap:6px;padding:0;margin:0 0 18px}
.stageline li{font-size:12.5px;padding:6px 11px;border-radius:999px;border:1px solid var(--faint);color:var(--muted);background:var(--card)}
.stageline li.done{color:var(--ok-fg);background:var(--ok-bg);border-color:var(--ok-line)}
.stageline li.now{color:var(--on-accent);background:var(--accent-fill);border-color:var(--accent-fill);font-weight:700}
.bctabs{display:flex;gap:6px;overflow-x:auto;border-bottom:1px solid var(--faint);margin-bottom:18px;scrollbar-width:none}
.bctabs::-webkit-scrollbar{display:none}
.bctabs button{flex:0 0 auto;background:none;border:none;border-bottom:3px solid transparent;padding:12px 12px;min-height:var(--tap);font:inherit;font-weight:600;color:var(--muted);cursor:pointer}
.bctabs button[aria-selected="true"]{color:var(--accent);border-bottom-color:var(--accent)}
.bcpanel{min-height:200px}
.bch{font-size:17px;margin-bottom:12px}
.bcscore{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:16px}
.bcscore div{border:1px solid var(--faint);border-radius:var(--r-sm);background:var(--card);padding:12px 14px}
.bcscore small{display:block;font-size:12px;color:var(--muted)}
.bcscore b{display:block;font-size:16px;margin-top:4px}
.bcgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:760px){.bcgrid{grid-template-columns:1fr}}
.bcfacts{display:flex;flex-direction:column;gap:10px}
.bcfacts small{display:block;font-size:12px;color:var(--muted)}
.bcfacts span{overflow-wrap:anywhere}
.paybox .wcrow{display:flex;justify-content:space-between;gap:12px}
.paybox .wcrow span{overflow-wrap:anywhere}
.bcwait p{color:var(--muted);margin:0}
.bcnote{font-size:13.5px;color:var(--muted);margin:0 0 12px}
.bclist{display:flex;flex-direction:column;gap:8px}
.bcrow{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;border:1px solid var(--faint);border-radius:var(--r-sm);background:var(--card);padding:12px 14px}
.bcrow-top{align-items:flex-start}
.bcrow small,.bcpostbody small,.bcfb small{display:block;font-size:12.5px;color:var(--muted);margin-top:2px;overflow-wrap:anywhere}
.bcright{flex:0 1 320px;min-width:0}
.extag{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border:1px solid var(--faint);border-radius:999px;padding:1px 7px}
.shipform{margin-top:10px}
.shipform[hidden]{display:none}
.shipform .field{margin-bottom:10px}
.shipform textarea{min-height:70px}
.shipdone b{color:var(--ok-fg)}
.bccontent{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.bcpost{display:flex;gap:14px;padding:14px}
.bcthumb{flex:0 0 84px;height:140px;border-radius:var(--r-sm);background:linear-gradient(160deg,var(--accent-soft),var(--accent-tint));display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;padding:6px;color:var(--accent)}
.bcthumb span{font-size:26px}
.bcthumb small{font-size:10px;color:var(--ink2)}
.bcpostbody{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.bcactions{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start}
.bcactions .shipform{flex:1 1 100%}
.bcfb p{margin:10px 0;line-height:1.6;color:var(--ink2)}
.bcphotos{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.bcphotos span{width:46px;height:46px;border-radius:10px;background:linear-gradient(160deg,var(--accent-soft),var(--accent-tint))}
.bcphotos small{font-size:12px;color:var(--muted)}
.bcrate{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.bcrate > span{font-size:13.5px;font-weight:600}
.rate{display:flex;gap:2px}
.ratestar{background:none;border:none;font-size:26px;line-height:1;width:var(--tap);height:var(--tap);color:var(--faint);cursor:pointer;padding:0}
.ratestar.on{color:var(--star)}
.ratestar:focus-visible{outline:2px solid var(--accent);border-radius:8px}
.rated{color:var(--ok-fg)!important;font-weight:600}
.bcprintbar{display:flex;justify-content:flex-end;margin-bottom:12px}
.invoice{background:var(--print-paper);color:var(--print-ink);border:1px solid var(--print-line);border-radius:var(--r-sm);padding:24px}
.invhead{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;border-bottom:2px solid var(--print-accent);padding-bottom:14px;margin-bottom:16px}
.invhead h3{font-size:20px;color:var(--print-ink)}
.invhead small,.invmeta small,.invparties small{display:block;font-size:12px;color:var(--print-muted)}
.invmeta{display:flex;gap:18px}
.invparties{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.invparties b,.invparties span{display:block;overflow-wrap:anywhere}
.invparties span{font-size:13.5px;color:var(--print-muted)}
.invtable{width:100%;border-collapse:collapse;font-size:14px}
.invtable th{text-align:left;font-size:12px;color:var(--print-muted);border-bottom:1px solid var(--print-line);padding:8px 0}
.invtable td{padding:9px 0;border-bottom:1px solid var(--print-line)}
.invtable th:last-child,.invtable td:last-child{text-align:right;white-space:nowrap;padding-left:12px}
.invtable tr.sub td{font-weight:600}
.invtable tr.tot td{font-weight:800;font-size:16px;border-bottom:none;color:var(--print-accent)}
.invfoot{font-size:12.5px;color:var(--print-muted);margin-top:14px}
@media(max-width:560px){.invparties{grid-template-columns:1fr}.invoice{padding:16px}}
@media print{
  body.bc-print *{visibility:hidden}
  body.bc-print .invoice,body.bc-print .invoice *{visibility:visible}
  body.bc-print .invoice{position:absolute;left:0;top:0;width:100%;border:none}
}
.bcpostbody .status{white-space:normal}

/* ---------- Batch B polish (row 29) ---------- */
/* the logo never squashes; on a narrow phone with a Start a campaign button it becomes the mark */
.brand{flex-shrink:0}
.brand img{flex-shrink:0;object-fit:contain}
@media(max-width:480px){
  .nav{padding:10px 14px;gap:8px}
  .navcta{gap:6px}
  .brand img{height:24px}
  .navcta .btn.sm{padding:0 12px;font-size:13px;min-height:40px}
  .menu-btn{padding:9px 10px}
}
@media(max-width:420px){
  .nav:has(.navcta .btn.sm:not(.ghost)) .brand img,
  html[data-theme="dark"] .nav:has(.navcta .btn.sm:not(.ghost)) .brand img{content:url("trialloop-icon.png");height:28px;width:auto}
}
.widget .wt{gap:12px;flex-wrap:wrap}
/* the WhatsApp bubble steps aside while a Continue or Pay row is on screen */
.wa-float{transition:background var(--d-fast) var(--ease-quint),transform var(--d-fast) var(--ease-quint),opacity var(--d-fast) var(--ease-quint)}
.wa-float.wa-tucked{opacity:0;transform:translateY(16px);pointer-events:none}
/* save as you go */
.draftbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:var(--card2);border:1px solid var(--faint);border-radius:var(--r-sm);padding:10px 14px;margin-bottom:16px;font-size:13.5px;color:var(--ink2)}
.draftbar .btn{min-height:36px}
.savedtick{font-size:12.5px;color:var(--muted)}
/* under review: no new campaign until the account is approved */
.reviewgate{background:var(--card2);border:1px solid var(--faint);border-radius:var(--r-sm);padding:14px 16px;margin-top:14px}
.reviewgate p{font-size:14px;color:var(--ink2);margin:0 0 10px;line-height:1.55}
.btn[aria-disabled="true"]{opacity:.5;pointer-events:none}
/* step 4 filters */
.filtergrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.filtergrid select{width:100%}
@media(max-width:700px){.filtergrid{grid-template-columns:1fr}}
.chipwrap{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}

/* ---------- simple site, two doors (batch C, 12 Oct) ---------- */
/* header: a small Log in stays on the phone too */
@media(max-width:900px){ .navcta .btn.ghost.navlogin{display:inline-flex;padding:0 10px;min-height:var(--tap)} }
/* home */
.doorhero{padding:48px 0 12px;text-align:center}
.doorhero h1{font-size:clamp(46px,8vw,104px);margin:22px 0 0}
.doorhero h1.dtcg{font-size:clamp(14px,4.8vw,68px);line-height:1.08;white-space:nowrap}
.dtcg .hw{white-space:nowrap}
.dtcg i{font-style:normal;color:var(--accent);font-weight:600;margin:0 .06em}
.doorhero .doorline{font-family:var(--display);font-weight:700;font-size:clamp(20px,2.6vw,28px);color:var(--ink);margin:18px 0 0;letter-spacing:-.01em}
.doorhero .sub{color:var(--ink2);font-size:clamp(17px,2.2vw,21px);margin:18px auto 30px;max-width:40ch}
.doors{display:grid;grid-template-columns:1fr 1fr;gap:16px;max-width:820px;margin:0 auto}
.door{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;padding:26px 26px 24px;border-radius:var(--r-lg);background:var(--accent-fill);color:var(--on-accent);border:1px solid var(--accent-fill);box-shadow:var(--shadow);transition:transform var(--d-fast) var(--ease-quint),box-shadow var(--d-mid) var(--ease-quint)}
.door.alt{background:var(--card);color:var(--ink);border-color:var(--faint)}
.door:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}
.door .dk{font-size:11.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;opacity:.85}
.door b{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:clamp(30px,4vw,44px);line-height:1.05}
.door small{font-size:14.5px;opacity:.9;max-width:28ch}
.door .darr{position:absolute;right:22px;top:22px;font-size:22px}
.doorcol{display:flex;flex-direction:column;gap:10px}
.doorsub{margin:0;padding:0 6px;font-size:14px;line-height:1.4;color:var(--ink2);text-align:left}
a.doorsub{font-weight:700;color:var(--accent)}
a.doorsub:hover{text-decoration:underline}
.howtwo{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.howcol{background:var(--card);border:1px solid var(--faint);border-radius:var(--r-lg);padding:26px}
.howcol h2{font-size:clamp(24px,3vw,32px)}
.howsteps{margin:16px 0 20px;padding:0;list-style:none;counter-reset:hs}
.howsteps li{counter-increment:hs;position:relative;padding:0 0 14px 40px;color:var(--ink2);font-size:15px;line-height:1.5}
.howsteps li::before{content:counter(hs);position:absolute;left:0;top:0;width:28px;height:28px;border-radius:50%;background:var(--accent-tint);color:var(--accent);font-weight:700;font-size:13.5px;display:grid;place-items:center}
.howsteps b{color:var(--ink)}
.howbtns{display:flex;flex-wrap:wrap;gap:10px}
.soontag{display:inline-block;margin-left:8px;padding:1px 8px;line-height:1.5;border-radius:999px;background:var(--accent-tint);color:var(--accent);font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;vertical-align:middle}
.feat.soon{opacity:.7;cursor:default}
@media(max-width:700px){
  .doorhero{padding:28px 0 4px}
  .doors,.howtwo{grid-template-columns:1fr}
  .door{padding:22px 20px}
}
/* open campaigns */
.cgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.ccard{all:unset;box-sizing:border-box;display:flex;flex-direction:column;gap:10px;cursor:pointer;background:var(--card);border:1px solid var(--faint);border-radius:var(--r-lg);padding:20px;box-shadow:var(--shadow);transition:transform var(--d-fast) var(--ease-quint),border-color var(--d-fast) var(--ease-quint);min-width:0}
.ccard:hover{transform:translateY(-2px);border-color:var(--accent-soft)}
.ccard:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.ctags{display:flex;flex-wrap:wrap;gap:6px}
.ctag{font-size:11.5px;font-weight:700;padding:4px 10px;border-radius:999px;background:var(--card2);border:1px solid var(--faint);color:var(--ink2)}
.ctag.ex{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn-fg2)}
.ctag.own{background:var(--accent-tint);border-color:var(--accent-soft);color:var(--accent)}
.ctag.ship{background:var(--ok-tint);border-color:var(--ok-line);color:var(--ink2)}
.ctitle{font-family:var(--serif);font-weight:700;font-size:19px;color:var(--ink);line-height:1.25}
.cline{display:block;font-size:14px;color:var(--ink2);line-height:1.5}
.clbl{display:block;font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.cworth{color:var(--ink);white-space:nowrap}
.cmeta{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12.5px;color:var(--muted)}
.cgo{margin-top:auto;font-weight:700;color:var(--accent);font-size:14.5px;min-height:var(--tap);display:flex;align-items:center}
.cphoto{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:var(--r-sm);background:var(--card2)}
.cphoto.big{margin-top:14px}
.applysheet .pshead h3{font-size:20px}
.applysheet .ctags{margin:14px 0 4px}
.cdl{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;margin:14px 0;font-size:14.5px}
.cdl dt{color:var(--muted);font-weight:600}
.cdl dd{margin:0;color:var(--ink)}
.applysheet .btn.block{width:100%;justify-content:center;margin-top:14px}
.applysheet .asgap{margin-top:10px}
.applysheet .btn[disabled]{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}
.assub{color:var(--ink2);font-size:14.5px;margin:10px 0 14px}
.asotp{letter-spacing:.5em;font-family:var(--mono);font-size:20px;text-align:center}
.linkbtn{background:none;border:0;padding:0;color:var(--accent);font:inherit;font-weight:600;text-decoration:underline;cursor:pointer}
.asdone{text-align:center;padding:10px 0}
.asdone .seal{width:60px;height:60px;border-radius:50%;background:var(--accent-tint);color:var(--go);display:grid;place-items:center;margin:6px auto 14px;font-size:28px}
.asdone p{color:var(--ink2);font-size:15px}
[data-applied-list]{margin-top:16px}
/* brand steps: photo, shipped by brand (locked), marketplace line, ads */
.photopick{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.photopick img{width:96px;height:96px;object-fit:cover;border-radius:var(--r-sm);border:1px solid var(--faint)}
.photopick input[type=file]{flex:1 1 220px;padding:10px}
.shiplock .termsck input:disabled{opacity:1}
.shiplock .termsck{font-weight:700;color:var(--ink)}
.fixedline{background:var(--card2);border:1px solid var(--faint);border-radius:var(--r-sm);padding:10px 12px;color:var(--ink2)}
.adsopts{grid-template-columns:1fr 1fr}
.monthopts{grid-template-columns:repeat(4,1fr)}
@media(max-width:600px){.monthopts{grid-template-columns:1fr 1fr}.adsopts{grid-template-columns:1fr 1fr}}
.revphoto{width:120px;height:120px;object-fit:cover;border-radius:var(--r-sm)}

/* ---------- phone fit: one screen, no scrolling (Kabir 12 Oct, plan 2026-10-12-phone-fit) ---------- */
.lblmore{color:var(--muted);font-weight:400}
.pftop,.pfmore,.pfnext{display:none}
.railtotal{display:none}
.totline{font-weight:700;font-size:14.5px;color:var(--ink);margin-right:auto;white-space:nowrap}
.totline[hidden]{display:none}
.wiz-foot .totline + .prog{display:none}
.wiz-foot .totline[hidden] + .prog{display:inline}
body.pf-form .scr-off{display:none!important}
body.pf-form .page-h,body.pf-form .foot,body.pf-form .wiz-rail,body.pf-form .back-to-top,body.pf-form .reqnote,body.pf-form .lblmore,body.pf-form .wiz-step .sk{display:none!important}
body.pf-form .wrap{padding-left:16px;padding-right:16px}
body.pf-form .wiz{border:none;box-shadow:none;background:transparent;border-radius:0}
body.pf-form .wiz-main{padding:6px 0 96px;min-height:0}
body.pf-form .pftop{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:40px}
.pfback{background:none;border:none;font:inherit;font-size:15px;font-weight:600;color:var(--ink);padding:8px 8px 8px 0;cursor:pointer}
.pfstep{font-family:var(--mono);font-size:12px;letter-spacing:.04em;color:var(--muted)}
body.pf-form .draftbar{padding:6px 10px;font-size:12px;margin-bottom:6px;flex-wrap:nowrap}
body.pf-form .draftbar .btn{min-height:32px;font-size:12px;padding:0 10px}
body.pf-form .savedtick{display:none}
body.pf-form .wiz-step h2{font-size:24px;margin:4px 0 8px}
body.pf-form .wiz-step .hint{font-size:14px;margin-bottom:12px}
body.pf-form .field{margin-bottom:16px}
body.pf-form .field > label:not(.termsck){font-size:17px;font-weight:700;color:var(--ink)}
body.pf-form [data-more]:not(.pf-open){display:none!important}
body.pf-form .pfmore{display:block;background:none;border:none;color:var(--accent);font:inherit;font-size:13.5px;font-weight:600;text-decoration:underline;padding:2px 0;margin:0 0 10px;cursor:pointer}
body.pf-form .pfmore.pf-open{display:none}
body.pf-form .wiz-step.on .wiz-foot{position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--card);border-top:1px solid var(--faint);padding:10px 16px calc(10px + env(safe-area-inset-bottom));margin:0;display:flex;flex-wrap:nowrap;align-items:center;gap:10px}
body.pf-form .wiz-step.on .wiz-foot.pfnofoot{display:none}
body.pf-form .wiz-foot .prog,body.pf-form .wiz-foot [data-back]{display:none!important}
body.pf-form .wiz-foot > div{margin-left:auto;display:flex;gap:8px}
body.pf-form .wiz-foot .btn{min-height:48px}
body.pf-form [data-review] .pfnext{display:inline-flex}
body.pf-form .wiz:not(.pf-last) [data-review] [data-submit],body.pf-form .wiz:not(.pf-last) [data-review] [data-save-draft]{display:none}
body.pf-form .wiz.pf-last .pfnext{display:none}
body.pf-form .opt .od{font-size:12.5px;line-height:1.35}
body.pf-form .cntrow{grid-template-columns:1fr auto;padding:10px 12px;row-gap:0}
body.pf-form .cntrow .cntlbl{grid-column:1;grid-row:1}
body.pf-form .cntrow .cnt{grid-column:2;grid-row:1}
body.pf-form .cntrow .cntamt{display:none}
body.pf-form .cntrow .cntlbl b{white-space:normal}
body.pf-form .cntsum{margin-top:10px;padding:10px 12px}
.odshort{display:none}
.draftbar[hidden]{display:none}
.pffresh{background:none;border:none;font:inherit;font-size:13px;font-weight:600;color:var(--muted);text-decoration:underline;padding:8px 0 8px 8px;cursor:pointer}
body.pf-form .draftbar{display:none}
body.pf-form .wiz-step.on{animation:none}
body.pf-form .wiz-step{padding-bottom:84px}
body.pf-form .wiz-step:not(:has(.wiz-foot)),body.pf-form .wiz-step:has(.pfnofoot){padding-bottom:0}
body.pf-form .wiz-main{padding-bottom:0}
body.pf-form .giveopts .od{display:none}
body.pf-form .giveopts .odshort{display:block;font-size:13px;color:var(--muted);margin-top:2px;line-height:1.35}
body.pf-form .giveopts .opt{padding-top:12px;padding-bottom:12px}
body.pf-form [data-am-accept],body.pf-form .amlist,body.pf-form .amtotal{display:none}
[data-photo-remove][hidden]{display:none}
body.pf-form .wa-float{bottom:84px}
body.pf-form .swipeside,body.pf-form [data-swipe-continue]{display:none}
body.pf-form .swipestage{height:300px}
body.pf-form .swipecard{padding:20px}
/* phone fit, every page: footer links move into the Menu, the long footer goes */
.navlinks .navextra{display:none}
@media(max-width:600px){
  .nav.open .navlinks .navextra{display:block;padding:10px 0;font-size:14px;color:var(--ink2)}
  .nav.open .navlinks{max-height:calc(100vh - 80px);overflow-y:auto}
  .foot{display:none}
  .back-to-top{display:none!important}
  .doorhero ~ #how{display:none}
  .doorhero{padding:28px 0 0}
}
@media(max-width:600px){
  .authwrap{margin:20px auto;padding:0}
  .loginpick{margin-top:18px!important;gap:10px}
  .loginpick .feat{padding:16px 18px}
  .loginpick .feat h3{font-size:19px;margin:4px 0 2px}
  .loginpick .feat p{font-size:13.5px;margin-top:4px!important}
  .page-h:has(+ .loginpick){padding-top:24px}
}
@media(max-width:600px){ .pfhide{display:none!important} }
.cswipe{display:none}
@media(max-width:600px){
  .page-h:has(+ .section-tight [data-campaigns]){padding-top:20px}
  .page-h:has(+ .section-tight [data-campaigns]) h1{font-size:40px;margin-top:0!important}
  .section-tight:has([data-campaigns]){margin-top:16px}
  .cgrid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px;margin:0 -16px;padding:2px 16px 10px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .cgrid::-webkit-scrollbar{display:none}
  .cgrid .ccard{flex:0 0 calc(100% - 20px);scroll-snap-align:center}
  .cgrid .ccard:hover{transform:none}
  .cswipe{display:block;text-align:center;font-size:13px;color:var(--muted);margin-top:6px}
}
@media(max-width:600px){
  .wrap{padding-left:16px;padding-right:16px}
  .page-h .lede{font-size:16px}
}
/* phone fit for plain pages: fold long text, one screen at a time */
.pfpbar{display:none}
@media(max-width:600px){
  [data-more]:not(.pf-open){display:none!important}
  .pfmore-page{display:block;background:none;border:none;color:var(--accent);font:inherit;font-size:13.5px;font-weight:600;text-decoration:underline;padding:2px 0;margin:4px 0 10px;cursor:pointer}
  .pfmore-page.pf-open{display:none}
  .pf-paged .scr-off{display:none!important}
  .pf-paged{padding-bottom:84px}
  .pf-paged .pfpbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;align-items:center;justify-content:space-between;gap:10px;background:var(--card);border-top:1px solid var(--faint);padding:10px 16px calc(10px + env(safe-area-inset-bottom))}
  .pf-paged .pfpbar .btn{min-height:48px}
  .pf-paged .pfpbar [hidden]{display:none}
  .pf-paged:has([data-pfdone].on) .pfpbar,.pf-paged:has([data-pfdone].on) .scr-off{display:none!important}
  body:has(.pf-paged) .wa-float{bottom:84px}
}
@media(max-width:600px){
  .wallet{padding:16px 18px;gap:10px}
  .wallet .wbal{font-size:30px}
  .page-h:has([data-fresh-name]){padding-top:22px}
}
@media(max-width:600px){
  .page-h:has(+ .bblayout){padding-top:18px}
  .page-h:has(+ .bblayout) .pill{display:none}
  .page-h:has(+ .bblayout) h1{margin-top:0}
  .bblayout{margin-top:12px!important}
}
.pfdet > summary{display:none}
@media(max-width:600px){
  .pfdet > summary{display:block;cursor:pointer;color:var(--accent);font-weight:600;font-size:14px;padding:10px 0;text-decoration:underline}
  .stageline li:not(.now){display:none}
  .stageline{margin-bottom:10px}
  .demostrip{padding:12px 14px}
  .page-h:has([data-bc-title]){padding-top:16px}
  .page-h:has([data-bc-title]) h1{margin-top:8px!important}
}
@media(max-width:600px){
  .page-h:has([data-bc-title]) .pill{display:none}
  .page-h:has([data-bc-title]) + * + .section-tight,.page-h:has([data-bc-title]) ~ .section-tight{margin-top:14px}
  .tl-fresh h2{font-size:22px}
  .tl-fresh .lede{font-size:14.5px;margin-top:6px}
  .tl-fresh .cta-row{margin-top:12px}
  .section-tight:has([data-fresh-list]){margin-top:16px}
}
@media(max-width:600px){ .doorhero ~ #how:target{display:block} }
