/* ============================================================
   Inkperch Travel Companion — Landing v2 (Premium Parchment)
   Tokens mirror the app's constants/theme.ts exactly.
   ============================================================ */
:root{
  --bg:#F0E4C8; --bg-glow:#F7EFDA; --bg-shade:#E9DBB8;
  --card-bg:#FBF4E3; --tonal:rgba(26,18,8,0.055);
  --ink:#201509; --ink2:#5a4a30; --muted:#9c8a68;
  --hairline:rgba(26,18,8,0.09); --hairline-strong:rgba(26,18,8,0.12);
  --foil-ring:rgba(201,150,42,0.28);
  --crimson:#A32B20; --gold-foil:#C9962A; --forest:#2D5016; --steel:#4A6B8A; --rust:#8B3A1A;
  --tabbar-bg:rgba(251,244,227,0.86);
  --radius:6px; --radius-sm:4px;
  --shadow-card:0 1px 2px rgba(26,18,8,0.05), 0 14px 30px rgba(26,18,8,0.14), inset 0 1px 0 rgba(255,255,255,0.5);
  --shadow-card-sm:0 1px 2px rgba(26,18,8,0.05), 0 8px 18px rgba(26,18,8,0.10), inset 0 1px 0 rgba(255,255,255,0.5);
  --shadow-fab:0 14px 30px rgba(163,43,32,0.4), 0 3px 8px rgba(163,43,32,0.3);
  --serif:'Libre Baskerville', Georgia, serif;
  --display:'Playfair Display', Georgia, serif;
  --mono:'DM Mono', ui-monospace, monospace;
  --numeral:'Oswald', 'Arial Narrow', sans-serif;
  --marker:'Permanent Marker', cursive;
}
*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{
  background:var(--bg);
  background-image:radial-gradient(120% 70% at 50% 0%, var(--bg-glow) 0%, var(--bg) 55%, var(--bg-shade) 100%);
  font-family:var(--serif); color:var(--ink2); overflow-x:hidden;
}
a{ color:var(--crimson); text-decoration:none; }
a:hover{ color:var(--gold-foil); }
img{ max-width:100%; }

/* page-wide grain */
.pagegrain{ position:fixed; inset:0; pointer-events:none; z-index:200; opacity:0.05; mix-blend-mode:multiply; }

.lp-wrap{ max-width:1140px; margin:0 auto; padding:0 32px; }

/* ---------------- nav ---------------- */
.lp-nav{ position:sticky; top:0; z-index:100; background:var(--tabbar-bg); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); box-shadow:0 1px 0 var(--foil-ring), 0 10px 30px rgba(26,18,8,0.06); }
.lp-nav-row{ max-width:1140px; margin:0 auto; padding:14px 32px; display:flex; align-items:center; justify-content:space-between; }
.lp-nav-row img{ height:60px; width:auto; display:block; }
.lp-nav-links{ display:flex; align-items:center; gap:26px; }
.lp-nav-links a{ font-family:var(--mono); font-size:16px; letter-spacing:0.14em; text-transform:uppercase; color:var(--ink2); }
.lp-nav-links a:hover{ color:var(--crimson); }
.lp-nav-cta{ font-family:var(--mono); font-size:14px; letter-spacing:0.12em; text-transform:uppercase; color:#fff !important; background:var(--crimson); background-image:linear-gradient(155deg, color-mix(in oklab, var(--crimson) 88%, white), var(--crimson) 55%); padding:10px 18px; border-radius:999px; box-shadow:0 6px 16px rgba(163,43,32,0.32); }
.lp-nav-cta:hover{ color:#fff !important; filter:brightness(1.06); }

/* ---------------- hero ---------------- */
.lp-hero{ padding:104px 32px 84px; text-align:center; position:relative; }
.lp-hero-kicker{ font-family:var(--serif); font-style:italic; font-size:19px; color:var(--ink2); }
.lp-hero-kicker .dot{ color:var(--gold-foil); margin:0 8px; }
.lp-hero-fig{
  font-family:var(--numeral); font-weight:600; font-size:clamp(120px, 17vw, 208px); line-height:1;
  letter-spacing:-0.01em; font-variant-numeric:tabular-nums; margin:18px 0 8px;
  background:linear-gradient(180deg, color-mix(in oklab, var(--crimson) 55%, white) 0%, var(--crimson) 40%, color-mix(in oklab, var(--crimson) 75%, black) 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
  filter:drop-shadow(0 2px 0 rgba(255,255,255,0.35)) drop-shadow(0 18px 34px rgba(163,43,32,0.22));
}
.lp-hero-fig .net{
  display:inline-block; vertical-align:super;
  font-family:var(--marker); font-size:0.16em; letter-spacing:0.02em;
  background:none; -webkit-text-fill-color:var(--ink); color:var(--ink);
  transform:rotate(-4deg); margin-left:0.12em; filter:none;
}
.lp-hero-meta{ font-family:var(--mono); font-size:14px; letter-spacing:0.16em; text-transform:uppercase; color:var(--muted); margin-bottom:22px; }
.lp-hero-line{ font-family:var(--display); font-weight:700; font-size:31px; line-height:1.32; color:var(--ink); max-width:42ch; margin-left:auto; margin-right:auto; text-wrap:balance; }
.lp-hero-scroll{ display:inline-flex; flex-direction:column; align-items:center; gap:9px; margin-top:44px; font-family:var(--mono); font-size:14px; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold-foil); }
.lp-hero-scroll i{ width:1px; height:52px; background:linear-gradient(180deg, var(--gold-foil), transparent); display:block; }

/* gold ornament */
.ornament{ display:flex; align-items:center; justify-content:center; gap:10px; }
.ornament i{ display:block; background:var(--gold-foil); }
.ornament i:nth-child(1), .ornament i:nth-child(3){ width:56px; height:1px; }
.ornament i:nth-child(2){ width:7px; height:7px; transform:rotate(45deg); }

/* ---------------- story beats ---------------- */
.lp-section{ padding:76px 0; }
.beat{ display:grid; grid-template-columns:1fr 400px; gap:88px; align-items:center; }
.beat--reverse{ grid-template-columns:400px 1fr; }
.beat--reverse .beat-copy{ order:2; }
.beat--reverse .beat-stage{ order:1; }

.lp-eyebrow{ font-family:var(--mono); font-size:15px; letter-spacing:0.2em; text-transform:uppercase; color:var(--gold-foil); font-weight:500; margin-bottom:18px; display:flex; align-items:center; gap:14px; }
.lp-eyebrow .n{
  font-family:var(--numeral); font-weight:600; font-size:15px; color:var(--card-bg);
  background:var(--crimson); background-image:linear-gradient(155deg, color-mix(in oklab, var(--crimson) 88%, white), var(--crimson) 55%);
  width:32px; height:32px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center;
  box-shadow:0 6px 14px rgba(163,43,32,0.32), inset 0 1px 0 rgba(255,255,255,0.3); letter-spacing:0;
}
.beat-title{ font-family:var(--display); font-weight:800; font-size:clamp(30px, 3.4vw, 40px); line-height:1.12; letter-spacing:-0.01em; color:var(--ink); margin-bottom:20px; text-wrap:pretty; }
.beat-body{ font-size:16.5px; line-height:1.75; color:var(--ink2); text-wrap:pretty; }
.beat-body + .beat-body{ margin-top:16px; }

/* marker scrawl */
.scrawl{ font-family:var(--marker); font-size:21px; color:var(--crimson); transform:rotate(-2deg); display:inline-block; }
.scrawl--ink{ color:var(--ink2); }

/* surface cards used in copy column */
.surf-card{ background:var(--card-bg); border-radius:var(--radius); box-shadow:var(--shadow-card-sm); padding:18px 20px; position:relative; overflow:hidden; }
.surf-card.spine::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:linear-gradient(180deg, color-mix(in oklab, var(--gold-foil) 130%, white), var(--gold-foil) 45%, color-mix(in oklab, var(--gold-foil) 55%, black)); }
.surf-card .lbl{ font-family:var(--mono); font-size:13.5px; letter-spacing:0.16em; text-transform:uppercase; color:var(--gold-foil); font-weight:500; margin-bottom:10px; }
.surf-card .big{ font-family:var(--display); font-weight:700; font-size:21px; line-height:1.3; color:var(--ink); }

/* ledger side panel */
.side-panel{ background:var(--card-bg); border-radius:var(--radius); box-shadow:var(--shadow-card); padding:8px 20px 16px; margin-top:18px; }
.side-panel-h{ font-family:var(--mono); font-size:13.5px; letter-spacing:0.16em; text-transform:uppercase; color:var(--gold-foil); font-weight:500; padding:14px 0 6px; }
.side-row{ display:flex; align-items:baseline; justify-content:space-between; padding:11px 0; border-top:1px solid var(--hairline); }
.side-row:first-of-type{ border-top:0; }
.side-k{ font-family:var(--mono); font-size:14.5px; letter-spacing:0.12em; text-transform:uppercase; color:var(--ink2); }
.side-v{ font-family:var(--numeral); font-weight:600; font-size:19px; color:var(--ink); font-variant-numeric:tabular-nums; }
.side-foot{ display:flex; align-items:baseline; justify-content:space-between; padding-top:13px; border-top:1px solid var(--hairline-strong); }
.side-foot .k{ font-family:var(--mono); font-size:14px; letter-spacing:0.12em; text-transform:uppercase; color:var(--gold-foil); font-weight:500; }
.side-foot .v{ font-family:var(--numeral); font-weight:600; font-size:23px; color:var(--gold-foil); font-variant-numeric:tabular-nums; }

/* route leg divider */
.lp-leg{ display:flex; align-items:center; gap:12px; padding:6px 0; }
.lp-leg-line{ flex:1; border-top:2px dashed var(--foil-ring); }
.lp-leg-mark{ width:9px; height:9px; border-radius:50%; background:var(--gold-foil); box-shadow:0 0 0 4px rgba(201,150,42,0.16); }

/* reveal */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity 0.7s ease, transform 0.7s ease; }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ .reveal{ opacity:1; transform:none; transition:none; } }

/* ============================================================
   PHONE — chrome + app screens (mirrors the shipped app)
   ============================================================ */
.beat-stage{ display:flex; justify-content:center; }
.phone-scale{ width:355px; height:745px; position:relative; }
.phone-scale .phone{ transform:scale(0.85); transform-origin:top left; }
.phone{ width:417px; height:876px; background:#0c0a07; border-radius:56px; padding:12px; box-shadow:0 40px 80px rgba(26,18,8,0.35), 0 6px 18px rgba(26,18,8,0.22), 0 0 0 2px #2a2620; position:relative; }
.screen{ width:393px; height:852px; border-radius:46px; overflow:hidden; position:relative; display:flex; flex-direction:column;
  background:radial-gradient(120% 90% at 50% 0%, var(--bg-glow) 0%, var(--bg) 55%, var(--bg-shade) 100%); }
.island{ position:absolute; top:11px; left:50%; transform:translateX(-50%); width:118px; height:34px; background:#0c0a07; border-radius:20px; z-index:90; }
.grain{ position:absolute; inset:0; width:100%; height:100%; pointer-events:none; z-index:2; opacity:0.055; mix-blend-mode:multiply; }

.statusbar{ height:52px; flex:0 0 52px; display:flex; align-items:flex-end; justify-content:space-between; padding:0 26px 7px; position:relative; z-index:80; }
.sb-time{ font-family:var(--mono); font-weight:500; font-size:14px; color:var(--ink); }
.sb-right{ display:flex; align-items:center; gap:6px; }

.navbar{ flex:0 0 auto; display:flex; align-items:center; justify-content:space-between; padding:8px 22px 16px; position:relative; z-index:3; }
.navmark{ display:flex; align-items:center; gap:10px; }
.navmark .medal{ width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:var(--card-bg); box-shadow:0 1px 1px rgba(255,255,255,0.5) inset, 0 2px 6px rgba(20,12,4,0.18), 0 0 0 1px var(--hairline); }
.navmark .medal img{ height:31px; width:auto; display:block; }
.navright{ display:flex; align-items:center; gap:10px; }
.daypill{ font-family:var(--mono); font-size:13px; letter-spacing:0.12em; text-transform:uppercase; color:var(--ink2); background:var(--tonal); padding:6px 14px; border-radius:999px; box-shadow:inset 0 0 0 1px var(--foil-ring); }
.menu-btn{ width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:var(--card-bg); box-shadow:0 1px 1px rgba(255,255,255,0.5) inset, 0 2px 6px rgba(20,12,4,0.18), 0 0 0 1px var(--hairline); flex:0 0 auto; }
.menu-btn svg{ width:16px; height:16px; display:block; }

.scroll{ flex:1; overflow:hidden; position:relative; z-index:3; }
.rule{ height:1px; background:var(--hairline-strong); width:100%; }
.rule-soft{ height:1px; background:var(--hairline); width:100%; }
.lbl{ font-family:var(--mono); font-size:14px; letter-spacing:0.16em; text-transform:uppercase; color:var(--gold-foil); font-weight:500; }
.seclabel{ font-family:var(--serif); font-size:14px; font-weight:700; color:var(--ink); }
.mono{ font-family:var(--mono); text-transform:uppercase; letter-spacing:0.14em; }
.display{ font-family:var(--display); color:var(--ink); }
.title{ font-family:var(--display); font-weight:900; color:var(--ink); line-height:0.98; letter-spacing:-0.01em; }

.card{ background:var(--card-bg); border-radius:var(--radius); box-shadow:var(--shadow-card); padding:18px; position:relative; }

.tag{ display:inline-flex; align-items:center; font-family:var(--mono); font-size:13.5px; font-weight:500; letter-spacing:0.12em; text-transform:uppercase; padding:5px 11px; color:#fff; border-radius:999px; box-shadow:inset 0 1px 0 rgba(255,255,255,0.2), 0 2px 6px rgba(0,0,0,0.12); }
.tag-forest{ background:var(--forest); }
.tag-gold{ background:var(--gold-foil); color:var(--ink); }
.tag-ghost{ background:var(--tonal); color:var(--ink2); box-shadow:inset 0 0 0 1px var(--hairline-strong); }

.eyebrow{ font-family:var(--serif); font-style:italic; font-size:14px; color:var(--ink2); }
.eyebrow .dot{ color:var(--gold-foil); margin:0 6px; }
.hero-amt{ font-family:var(--numeral); font-weight:600; font-size:60px; line-height:1.06; letter-spacing:0; margin:10px 0 6px; font-variant-numeric:tabular-nums; color:var(--crimson); }
.hero-amt.foil{ background:linear-gradient(180deg, color-mix(in oklab, var(--crimson) 60%, white) 0%, var(--crimson) 42%, color-mix(in oklab, var(--crimson) 78%, black) 100%); -webkit-background-clip:text; background-clip:text; color:transparent; filter:drop-shadow(0 1px 0 rgba(255,255,255,0.25)); }
.hero-meta{ font-family:var(--mono); font-size:14px; letter-spacing:0.08em; text-transform:uppercase; color:var(--muted); }

/* income log */
.logcard{ background:var(--card-bg); border-radius:var(--radius); box-shadow:var(--shadow-card); overflow:hidden; position:relative; }
.logcard.spine::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:linear-gradient(180deg, color-mix(in oklab, var(--gold-foil) 130%, white), var(--gold-foil) 45%, color-mix(in oklab, var(--gold-foil) 55%, black)); z-index:2; }
.entry{ display:flex; align-items:center; gap:14px; padding:17px 20px 17px 22px; position:relative; }
.entry + .entry::before{ content:""; position:absolute; top:0; left:20px; right:20px; height:1px; background:linear-gradient(90deg, transparent, var(--hairline-strong) 12%, var(--hairline-strong) 88%, transparent); }
.e-main{ flex:1; min-width:0; }
.e-desc{ font-family:var(--serif); font-size:15px; color:var(--ink); margin-bottom:6px; }
.e-meta{ display:flex; align-items:center; gap:8px; }
.pay{ font-family:var(--mono); font-size:13.5px; letter-spacing:0.08em; padding:3px 8px; border-radius:var(--radius-sm); background:var(--tonal); color:var(--ink2); white-space:nowrap; box-shadow:inset 0 1px 0 rgba(255,255,255,0.4); }
.e-time{ font-family:var(--mono); font-size:13.5px; letter-spacing:0.04em; color:var(--muted); }
.e-amt{ font-family:var(--numeral); font-weight:600; font-size:22px; color:var(--crimson); white-space:nowrap; font-variant-numeric:tabular-nums; }
.endcap{ display:flex; justify-content:center; padding:22px 0 8px; }
.endcap span{ font-family:var(--mono); font-size:13.5px; letter-spacing:0.12em; color:var(--muted); text-transform:uppercase; }

.fab{ position:absolute; right:20px; bottom:98px; z-index:70; background:var(--crimson); background-image:linear-gradient(155deg, color-mix(in oklab, var(--crimson) 88%, white), var(--crimson) 55%); color:#fff; font-family:var(--serif); font-weight:700; font-size:14px; padding:14px 22px; display:flex; align-items:center; gap:8px; border-radius:999px; box-shadow:var(--shadow-fab); overflow:hidden; }
.fab::before{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(255,255,255,0.30), rgba(255,255,255,0) 55%); pointer-events:none; }
.fab svg{ width:14px; height:14px; position:relative; }
.fab span{ position:relative; }
.fab.left{ right:auto; left:20px; background:var(--steel); background-image:linear-gradient(155deg, color-mix(in oklab, var(--steel) 85%, white), var(--steel) 55%); box-shadow:0 14px 30px rgba(74,107,138,0.4), 0 3px 8px rgba(74,107,138,0.3); }

/* profit rows + bars */
.pl-row{ display:flex; align-items:baseline; justify-content:space-between; padding:13px 0; }
.pl-k{ font-family:var(--mono); font-size:14.5px; letter-spacing:0.14em; text-transform:uppercase; color:var(--ink2); }
.pl-v{ font-family:var(--numeral); font-weight:600; font-size:23px; font-variant-numeric:tabular-nums; }
.barrow{ margin-bottom:15px; }
.blabel{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:6px; }
.bname{ font-family:var(--mono); font-size:14px; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink2); }
.bval{ font-family:var(--numeral); font-weight:600; font-size:14px; color:var(--ink); font-variant-numeric:tabular-nums; }
.bartrack{ height:13px; background:var(--tonal); border-radius:7px; position:relative; box-shadow:inset 0 1px 2px rgba(26,18,8,0.12); overflow:hidden; }
.barfill{ height:100%; background:linear-gradient(90deg, color-mix(in oklab, var(--gold-foil) 80%, white), var(--gold-foil)); border-radius:7px; }
.barfill.cur{ background:linear-gradient(90deg, color-mix(in oklab, var(--crimson) 75%, white), var(--crimson)); }
.tripswitch{ display:flex; gap:9px; overflow:hidden; padding-bottom:2px; }
.tsw-chip{ flex:0 0 auto; font-family:var(--mono); font-size:13.5px; letter-spacing:0.08em; text-transform:uppercase; padding:8px 14px; border-radius:999px; background:var(--card-bg); color:var(--ink2); box-shadow:var(--shadow-card-sm); white-space:nowrap; }
.tsw-chip.active{ background:var(--crimson); background-image:linear-gradient(155deg, color-mix(in oklab, var(--crimson) 88%, white), var(--crimson) 55%); color:#fff; box-shadow:0 6px 16px rgba(163,43,32,0.32); }
.nudgebanner{ display:flex; align-items:center; gap:12px; background:var(--card-bg); border-radius:var(--radius); box-shadow:var(--shadow-card); padding:15px 16px; position:relative; overflow:hidden; }
.nudgebanner::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:linear-gradient(180deg, color-mix(in oklab, var(--gold-foil) 130%, white), var(--gold-foil) 55%); }
.nudgebanner .nb-txt{ font-family:var(--serif); font-size:15px; color:var(--ink); line-height:1.4; flex:1; }
.nudgebanner .nb-txt b{ color:var(--gold-foil); font-weight:700; }

/* clients */
.search{ display:flex; align-items:center; gap:10px; background:var(--card-bg); border-radius:var(--radius); box-shadow:var(--shadow-card-sm); padding:13px 15px; }
.search .ph-txt{ font-family:var(--serif); font-size:14px; color:var(--muted); }
.citytabs{ display:flex; gap:22px; padding:0 22px; }
.citytab{ font-family:var(--mono); font-size:14.5px; letter-spacing:0.12em; text-transform:uppercase; color:var(--muted); padding-bottom:11px; position:relative; }
.citytab.active{ color:var(--ink); }
.citytab.active::after{ content:""; position:absolute; bottom:0; left:0; right:0; height:2px; background:var(--crimson); border-radius:2px; }
.client{ padding:18px 0; position:relative; }
.client + .client::before{ content:""; position:absolute; top:0; left:0; right:0; height:1px; background:linear-gradient(90deg, transparent, var(--hairline-strong) 12%, var(--hairline-strong) 88%, transparent); }
.c-top{ display:flex; align-items:baseline; justify-content:space-between; gap:10px; }
.c-name{ font-family:var(--display); font-weight:700; font-size:19px; color:var(--ink); }
.c-since{ font-family:var(--mono); font-size:13.5px; letter-spacing:0.08em; color:var(--gold-foil); white-space:nowrap; text-transform:uppercase; }
.c-piece{ font-family:var(--serif); font-style:italic; font-size:14.5px; color:var(--ink2); margin:7px 0 8px; }
.c-meta{ display:flex; align-items:center; gap:8px; font-family:var(--mono); font-size:13px; letter-spacing:0.06em; text-transform:uppercase; color:var(--muted); flex-wrap:wrap; }
.unfin{ font-family:var(--mono); font-size:12px; letter-spacing:0.1em; text-transform:uppercase; background:var(--crimson); color:#fff; padding:3px 9px; border-radius:999px; box-shadow:0 2px 6px rgba(163,43,32,0.3); }

/* trips calendar */
.cal-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
.cal-grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:2px; }
.cal-dow{ font-family:var(--mono); font-size:13.5px; letter-spacing:0.08em; color:var(--muted); text-align:center; padding-bottom:8px; }
.cal-day{ aspect-ratio:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; font-family:var(--serif); font-size:14.5px; color:var(--ink2); position:relative; border-radius:50%; }
.cal-day.mut{ color:#c8bb9a; }
.cal-day .dot{ width:5px; height:5px; border-radius:50%; background:var(--gold-foil); }
.cal-day.sel{ background:var(--crimson); background-image:linear-gradient(155deg, color-mix(in oklab, var(--crimson) 85%, white), var(--crimson) 60%); color:#fff; box-shadow:0 4px 12px rgba(163,43,32,0.4); }
.cal-day.sel .dot{ background:#fff; }
.conv{ padding:16px; border-radius:var(--radius); box-shadow:var(--shadow-card-sm); background:var(--card-bg); margin-bottom:14px; }
.v-top{ display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.v-name{ font-family:var(--display); font-weight:700; font-size:18px; color:var(--ink); line-height:1.1; }
.v-when{ font-family:var(--mono); font-size:13.5px; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink2); margin-top:6px; }
.v-foot{ display:flex; align-items:center; justify-content:space-between; margin-top:12px; }
.v-cost{ font-family:var(--numeral); font-weight:600; font-size:16px; color:var(--crimson); }
.v-deadline{ font-family:var(--mono); font-size:13px; letter-spacing:0.08em; text-transform:uppercase; color:var(--steel); }
.v-badge{ display:inline-flex; align-items:center; gap:6px; margin-top:11px; padding:5px 10px; border-radius:999px; box-shadow:inset 0 0 0 1px var(--foil-ring); }
.v-badge .bt{ font-family:var(--mono); font-size:13px; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold-foil); }

/* year-end export */
.modaltop{ flex:0 0 auto; display:flex; align-items:center; justify-content:space-between; padding:8px 20px 16px; position:relative; z-index:3; }
.mt-title{ font-family:var(--display); font-weight:800; font-size:18px; color:var(--ink); }
.mt-x{ width:34px; height:34px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:var(--card-bg); box-shadow:0 1px 1px rgba(255,255,255,0.5) inset, 0 2px 6px rgba(20,12,4,0.16), 0 0 0 1px var(--hairline); }
.mt-x svg{ width:14px; height:14px; }
.yearpick{ display:flex; align-items:center; justify-content:center; gap:20px; padding:6px 0; }
.yp-arrow{ width:36px; height:36px; border-radius:50%; background:var(--card-bg); box-shadow:var(--shadow-card-sm); display:flex; align-items:center; justify-content:center; }
.yp-arrow svg{ width:13px; height:13px; }
.yp-year{ font-family:var(--display); font-weight:900; font-size:34px; color:var(--ink); }
.reportline{ display:flex; align-items:center; gap:12px; padding:13px 0; }
.reportline svg{ width:17px; height:17px; flex:0 0 auto; }
.reportline span{ font-family:var(--serif); font-size:14.5px; color:var(--ink); }
.exportbtns{ display:flex; gap:10px; }
.exp-btn{ flex:1; text-align:center; font-family:var(--mono); font-size:13.5px; letter-spacing:0.1em; text-transform:uppercase; padding:15px 6px; border-radius:var(--radius); background:var(--card-bg); color:var(--ink); box-shadow:var(--shadow-card-sm); display:flex; align-items:center; justify-content:center; gap:8px; }
.exp-btn svg{ width:14px; height:14px; }

/* tabbar — six tabs, matches app/(tabs)/_layout.tsx */
.tabbar{ flex:0 0 auto; height:80px; background:var(--tabbar-bg); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); display:flex; padding:11px 2px 20px; position:relative; z-index:3; box-shadow:inset 0 1px 0 var(--foil-ring), 0 -1px 0 var(--hairline), 0 -10px 24px rgba(20,14,6,0.06); }
.tab{ flex:1; display:flex; flex-direction:column; align-items:center; gap:4px; color:var(--muted); position:relative; padding-top:2px; }
.tab svg{ width:22px; height:22px; display:block; }
.tab .dollar{ font-family:var(--numeral); font-weight:600; font-size:19px; line-height:22px; }
.tab .tlab{ font-family:var(--mono); font-size:11.5px; letter-spacing:0.03em; text-transform:uppercase; }
.tab .tdot{ width:5px; height:5px; border-radius:50%; background:transparent; }
.tab.active{ color:var(--crimson); }
.tab.active .tdot{ background:var(--crimson); }

/* ---------------- features ---------------- */
.lp-features .feat-head{ max-width:720px; margin-bottom:52px; }
.feat-title{ font-family:var(--display); font-weight:800; font-size:clamp(30px, 3.4vw, 40px); line-height:1.12; color:var(--ink); margin-bottom:18px; }
.feat-lead{ font-size:16.5px; line-height:1.75; color:var(--ink2); }
.feat-grid{ list-style:none; display:grid; grid-template-columns:repeat(4, 1fr); gap:14px; }
.feat{ background:var(--card-bg); border-radius:var(--radius); box-shadow:var(--shadow-card-sm); padding:22px 20px 24px; position:relative; overflow:hidden; }
.feat::before{ content:""; position:absolute; left:0; top:0; right:0; height:3px; background:linear-gradient(90deg, color-mix(in oklab, var(--gold-foil) 130%, white), var(--gold-foil) 45%, color-mix(in oklab, var(--gold-foil) 55%, black)); }
.feat-n{ font-family:var(--numeral); font-weight:600; font-size:14.5px; color:var(--gold-foil); letter-spacing:0.08em; display:block; margin-bottom:12px; }
.feat-name{ font-family:var(--display); font-weight:700; font-size:18px; color:var(--ink); margin-bottom:9px; }
.feat-desc{ font-size:15px; line-height:1.65; color:var(--ink2); }

/* ---------------- close ---------------- */
.lp-close-band{ background:var(--card-bg); border-top:1px solid var(--foil-ring); border-bottom:1px solid var(--foil-ring); box-shadow:inset 0 1px 0 rgba(255,255,255,0.6), inset 0 -1px 0 rgba(255,255,255,0.6); }
.lp-close{ text-align:center; padding:88px 32px; }
.lp-close-fig{
  font-family:var(--numeral); font-weight:600; font-size:clamp(84px, 11vw, 140px); line-height:1; font-variant-numeric:tabular-nums;
  background:linear-gradient(180deg, color-mix(in oklab, var(--crimson) 55%, white) 0%, var(--crimson) 40%, color-mix(in oklab, var(--crimson) 75%, black) 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
  filter:drop-shadow(0 1px 0 rgba(255,255,255,0.35)) drop-shadow(0 14px 26px rgba(163,43,32,0.2));
  margin:34px 0 10px;
}
.lp-close-fig .net{ display:inline-block; vertical-align:super; font-family:var(--marker); font-size:0.17em; -webkit-text-fill-color:var(--ink); color:var(--ink); transform:rotate(-4deg); margin-left:0.12em; filter:none; }
.lp-close-line{ font-family:var(--display); font-weight:700; font-size:26px; color:var(--ink); margin-bottom:52px; }

.waitlist{ max-width:480px; margin:0 auto; }
.waitlist-eyebrow{ font-family:var(--mono); font-size:14.5px; letter-spacing:0.2em; text-transform:uppercase; color:var(--gold-foil); font-weight:500; margin-bottom:12px; }
.waitlist-lead{ font-size:15.5px; line-height:1.7; color:var(--ink2); margin-bottom:26px; }
.waitlist-form{ display:flex; gap:10px; align-items:stretch; }
.waitlist-field{ flex:1; text-align:left; }
.waitlist-label{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.waitlist-input{ width:100%; font-family:var(--serif); font-size:15px; color:var(--ink); background:var(--bg-glow); border:0; border-radius:var(--radius); box-shadow:var(--shadow-card-sm), inset 0 0 0 1px var(--hairline-strong); padding:16px 18px; outline:none; }
.waitlist-input::placeholder{ color:var(--muted); }
.waitlist-input:focus{ box-shadow:var(--shadow-card-sm), inset 0 0 0 2px var(--gold-foil); }
.waitlist-submit{ font-family:var(--serif); font-weight:700; font-size:15px; color:#fff; background:var(--crimson); background-image:linear-gradient(155deg, color-mix(in oklab, var(--crimson) 88%, white), var(--crimson) 55%); border:0; border-radius:var(--radius); padding:16px 26px; cursor:pointer; box-shadow:var(--shadow-fab); position:relative; overflow:hidden; white-space:nowrap; }
.waitlist-submit::before{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(255,255,255,0.22), rgba(255,255,255,0) 55%); }
.waitlist-submit:hover{ filter:brightness(1.06); }
.waitlist-err{ font-family:var(--mono); font-size:14px; letter-spacing:0.06em; color:var(--crimson); margin-top:12px; text-align:left; }
.waitlist-done-h{ font-family:var(--display); font-weight:800; font-size:24px; color:var(--ink); margin-bottom:10px; }
.waitlist-done-b{ font-size:15px; line-height:1.7; color:var(--ink2); }
.lp-avail{ font-family:var(--mono); font-size:13.5px; letter-spacing:0.16em; text-transform:uppercase; color:var(--muted); }

/* ---------------- footer ---------------- */
.lp-footer{ background:#1a1208; color:#cbb98f; padding:56px 0 40px; position:relative; }
.lp-footer::before{ content:""; position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(90deg, transparent, var(--gold-foil), transparent); opacity:0.6; }
.lp-footer-row{ display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; margin-bottom:30px; }
.lp-footer-row img{ height:60px; width:auto; }
.lp-footer-links{ display:flex; gap:26px; }
.lp-footer-links a{ font-family:var(--mono); font-size:14px; letter-spacing:0.12em; text-transform:uppercase; color:#cbb98f; }
.lp-footer-links a:hover{ color:var(--gold-foil); }
.lp-disclaimer{ font-family:var(--serif); font-style:italic; font-size:14px; line-height:1.7; color:rgba(203,185,143,0.6); max-width:640px; }

/* ---------------- responsive ---------------- */
@media (max-width: 980px){
  .beat, .beat--reverse{ grid-template-columns:1fr; gap:44px; }
  .beat--reverse .beat-copy{ order:1; }
  .beat--reverse .beat-stage{ order:2; }
  .feat-grid{ grid-template-columns:repeat(2, 1fr); }
}
@media (max-width: 560px){
  .feat-grid{ grid-template-columns:1fr; }
  .waitlist-form{ flex-direction:column; }
  .lp-hero{ padding:72px 20px 60px; }
  .lp-wrap{ padding:0 20px; }
}
