/* ============================================================
   Traveletta — marketing landing page
   One page, three switchable visual directions (data-dir):
     coastal   · warm cream paper, deep forest, soft & inviting
     editorial · airy near-white, serif display, restrained
     bold      · green-dominant, huge type, punchy graphic
   Brand DNA: forest green + warm cream paper, pin/bookmark/plane
   ============================================================ */

/* Fonts are loaded via <link> in index.html for better LCP (no render-blocking @import). */

/* ---------- constant brand atoms ---------- */
:root{
  --forest-deep:#28331f;
  --forest:#3d4d3a;
  --forest-2:#56684f;
  --cream:#f0efe7;
  --cream-2:#e8e7dd;
  --screen:#fbfaf5;
  --ink-warm:#2b2d29;
  --tint:#e5eae0;
  --tint-line:#bac6b2;

  /* direction-driven tokens (coastal defaults) */
  --bg:#efeee5;
  --band:#fbfaf5;
  --card:#ffffff;
  --card-ink:#2b2d29;
  --card-line:#e3e2d6;
  --ink:#262824;
  --ink-soft:#63665c;
  --ink-faint:#9a9c90;
  --line:#dcdbcf;
  --accent:#2f3d28;
  --accent-2:#46583f;
  --accent-ink:#f2f0e6;
  --accent-soft:#e5eae0;
  --on-accent-soft:#34422c;

  --display:'Hanken Grotesk',system-ui,sans-serif;
  --display-w:800;
  --display-tr:-.03em;
  --display-lh:0.98;
  --display-style:normal;
  --body:'Hanken Grotesk',system-ui,sans-serif;

  --r:22px;
  --r-sm:14px;
  --r-pill:999px;
  --band-pad:120px;
  --maxw:1180px;

  --tex:radial-gradient(circle at 1px 1px, rgba(43,45,41,.045) 1px, transparent 0);
  --tex-size:24px 24px;
  --shadow:0 24px 60px -34px rgba(40,51,31,.5);
  font-synthesis:none;
}

/* ============================================================
   DIRECTION · EDITORIAL — airy, serif display, restrained
   ============================================================ */
[data-dir="editorial"]{
  --bg:#fbfaf5;
  --band:#f2f1e9;
  --card:#ffffff;
  --card-ink:#23251f;
  --card-line:#e7e6da;
  --ink:#23251f;
  --ink-soft:#6c6f64;
  --ink-faint:#a6a89c;
  --line:#e4e3d6;
  --accent:#3d4d3a;
  --accent-2:#56684f;
  --accent-ink:#fbfaf5;
  --accent-soft:#eef0e9;
  --on-accent-soft:#3d4d3a;

  --display:'Spectral',Georgia,serif;
  --display-w:500;
  --display-tr:-.005em;
  --display-lh:1.05;

  --r:9px;
  --r-sm:6px;
  --band-pad:132px;
  --tex:none;
  --shadow:0 30px 70px -40px rgba(40,51,31,.35);
}

/* ============================================================
   DIRECTION · BOLD — green dominant, huge type, graphic
   ============================================================ */
[data-dir="bold"]{
  --bg:#26301e;
  --band:#2f3d28;
  --card:#ece7d8;
  --card-ink:#26301e;
  --card-line:#d8d2c0;
  --ink:#ece7d8;
  --ink-soft:#aeb6a3;
  --ink-faint:#7e8a72;
  --line:#3f4f37;
  --accent:#ece7d8;
  --accent-2:#d8d2c0;
  --accent-ink:#26301e;
  --accent-soft:#36452d;
  --on-accent-soft:#ece7d8;

  --display:'Hanken Grotesk',system-ui,sans-serif;
  --display-w:800;
  --display-tr:-.035em;
  --display-lh:0.92;

  --r:8px;
  --r-sm:6px;
  --band-pad:124px;
  --tex:radial-gradient(circle at 1px 1px, rgba(236,231,216,.05) 1px, transparent 0);
  --shadow:0 34px 70px -34px rgba(0,0,0,.6);
}

/* ---------- reset / base ---------- */
*{box-sizing:border-box;}
html,body{margin:0;}
body{
  background:var(--bg);
  background-image:var(--tex);
  background-size:var(--tex-size);
  color:var(--ink);
  font-family:var(--body);
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;}
.band{padding:var(--band-pad) 0;}
.band.alt{background:var(--band);}
.eyebrow{
  font-family:'JetBrains Mono',monospace;
  font-size:12px;letter-spacing:.24em;text-transform:uppercase;
  color:var(--ink-faint);
  display:inline-flex;align-items:center;gap:10px;
}
.eyebrow::before{content:"";width:22px;height:1px;background:currentColor;opacity:.6;}
[data-dir="bold"] .eyebrow{color:var(--accent-2);}

h1,h2,h3{font-family:var(--display);font-weight:var(--display-w);
  letter-spacing:var(--display-tr);line-height:var(--display-lh);margin:0;
  font-style:var(--display-style);}
.display-1{font-size:clamp(44px,6.4vw,92px);}
.display-2{font-size:clamp(34px,4.4vw,62px);}
.display-3{font-size:clamp(24px,2.4vw,34px);}
.lede{font-size:clamp(18px,1.5vw,22px);color:var(--ink-soft);line-height:1.5;max-width:34ch;}
.measure{max-width:60ch;}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  font-family:var(--body);font-weight:600;font-size:16px;
  padding:15px 24px;border-radius:var(--r-pill);
  border:1.5px solid transparent;cursor:pointer;white-space:nowrap;
  transition:transform .15s ease,box-shadow .2s ease,background-color .2s,color .2s;
}
.btn:hover{transform:translateY(-2px);}
.btn-primary{background:var(--accent);color:var(--accent-ink);
  box-shadow:0 14px 30px -16px color-mix(in srgb,var(--accent) 80%,transparent);}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line);}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent);}
[data-dir="bold"] .btn-ghost:hover{color:var(--accent-2);border-color:var(--accent-2);}

/* app-store style pill */
.store{
  display:inline-flex;align-items:center;gap:12px;
  padding:12px 22px 12px 18px;border-radius:14px;
  background:var(--accent);color:var(--accent-ink);
  transition:transform .15s ease;
}
.store:hover{transform:translateY(-2px);}
.store .glyph{font-size:26px;line-height:1;}
.store .st-txt small{display:block;font-size:10.5px;letter-spacing:.12em;
  text-transform:uppercase;opacity:.7;font-family:'JetBrains Mono',monospace;white-space:nowrap;}
.store .st-txt b{font-size:18px;font-weight:700;letter-spacing:-.01em;}
.store.is-soon{background:transparent;color:var(--ink-soft);
  border:1.5px solid var(--line);}

/* ============================================================
   NAV
   ============================================================ */
.nav{position:sticky;top:0;z-index:40;
  backdrop-filter:saturate(140%) blur(14px);
  background:color-mix(in srgb,var(--bg) 82%,transparent);
  border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent);}
.nav-in{display:flex;align-items:center;justify-content:space-between;
  height:74px;max-width:var(--maxw);margin:0 auto;padding:0 32px;}
.brand{display:flex;align-items:center;gap:12px;font-weight:700;font-size:20px;
  letter-spacing:-.01em;font-family:var(--display);font-weight:var(--display-w);}
[data-dir="editorial"] .brand{font-weight:600;}
.nav-links{display:flex;align-items:center;gap:34px;font-size:15px;color:var(--ink-soft);}
.nav-links a:hover{color:var(--ink);}
.nav .btn{padding:11px 20px;font-size:15px;}
@media(max-width:820px){.nav-links{display:none;}}

/* ---------- logo tile (light icon · cream tile, green pin) ---------- */
.logo-tile{position:relative;width:42px;height:42px;border-radius:11px;
  background:var(--screen);flex:none;
  box-shadow:0 4px 12px -6px rgba(40,51,31,.5),inset 0 0 0 1px rgba(40,51,31,.05);
  display:grid;place-items:center;overflow:hidden;}
[data-dir="bold"] .logo-tile{box-shadow:0 4px 12px -6px rgba(0,0,0,.5);}
.logo-tile .mk{position:relative;width:60%;height:60%;}

/* the pin+bookmark+plane mark (CSS, scalable) */
.mark{position:relative;display:inline-block;}
.mark .book{position:absolute;background:var(--forest-deep);
  -webkit-mask:var(--book-mask);mask:var(--book-mask);}
.tt-mark{--c:var(--forest-deep);}

/* ============================================================
   HERO
   ============================================================ */
.hero{position:relative;overflow:hidden;padding-top:64px;}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center;}
@media(max-width:900px){.hero-grid{grid-template-columns:1fr;gap:54px;}}
.hero-copy .display-1{margin:22px 0 0;}
.hero-copy .display-1 em{font-style:normal;color:var(--accent);
  position:relative;}
[data-dir="editorial"] .hero-copy .display-1 em{font-style:italic;}
[data-dir="bold"] .hero-copy .display-1 em{color:var(--accent-2);}
.hero-copy .lede{margin:26px 0 34px;}
.hero-cta{display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
.hero-note{margin-top:22px;font-size:14px;color:var(--ink-faint);
  display:flex;align-items:center;gap:9px;}
.hero-note .dot{width:7px;height:7px;border-radius:50%;background:var(--accent);}

/* hero stage holds floating devices + route motif */
.hero-stage{position:relative;height:620px;}
@media(max-width:900px){.hero-stage{height:560px;}}
.route-svg{position:absolute;inset:-6% -10%;width:120%;height:112%;
  pointer-events:none;z-index:0;color:var(--accent);opacity:.5;}
[data-dir="bold"] .route-svg{opacity:.65;color:var(--accent-2);}
.float-pin{position:absolute;z-index:3;display:flex;align-items:center;gap:9px;
  padding:9px 14px 9px 11px;border-radius:var(--r-pill);
  background:var(--card);color:var(--card-ink);
  box-shadow:0 16px 34px -20px rgba(40,51,31,.55);
  font-size:13.5px;font-weight:600;border:1px solid var(--card-line);white-space:nowrap;}
.float-pin .pindot{width:20px;height:24px;flex:none;}
.fp-1{top:6%;left:-2%;}
.fp-2{bottom:10%;right:-4%;}

/* ============================================================
   DEVICE / PHONE MOCKUP  (hi-fi app screens)
   ============================================================ */
.device{position:relative;width:300px;border-radius:52px;padding:12px;flex:none;
  background:
    /* left — action/mute button */    linear-gradient(90deg,#5d6056,#494c43) 0 92px/3px 26px no-repeat,
    /* left — volume up */             linear-gradient(90deg,#5d6056,#494c43) 0 150px/3px 38px no-repeat,
    /* left — volume down */           linear-gradient(90deg,#5d6056,#494c43) 0 196px/3px 38px no-repeat,
    /* right — power button */         linear-gradient(90deg,#494c43,#5d6056) 100% 166px/3px 72px no-repeat,
    /* titanium rail */                linear-gradient(150deg,#474a42 0%,#26281f 32%,#171911 56%,#41443c 100%);
  box-shadow:var(--shadow),inset 0 0 0 1px rgba(255,255,255,.10),inset 0 0 2px 1px rgba(0,0,0,.5);}
/* dynamic island */
.device::before{content:"";position:absolute;top:14px;left:50%;transform:translateX(-50%);
  width:108px;height:30px;background:#060705;border-radius:999px;z-index:6;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.04);}
.device::after{content:"";position:absolute;top:21px;left:calc(50% + 30px);
  width:9px;height:9px;border-radius:50%;background:#0d1418;
  box-shadow:inset 0 0 0 1.5px rgba(90,130,150,.35);z-index:7;}
.screen{position:relative;border-radius:40px;overflow:hidden;background:var(--screen);
  height:600px;color:#2b2d29;font-family:'Hanken Grotesk',sans-serif;
  display:flex;flex-direction:column;outline:4px solid #070806;outline-offset:0;}
.scr-status{display:flex;justify-content:space-between;align-items:center;
  padding:18px 26px 4px;font-size:12.5px;font-weight:600;color:#2b2d29;}
.scr-status .sb{display:flex;gap:5px;align-items:center;font-size:10px;}

.hero-stage .device{position:absolute;z-index:2;}
.hero-stage .dev-front{right:4%;top:34px;}
.hero-stage .dev-back{left:0;bottom:0;width:250px;transform:rotate(-5deg);opacity:.96;z-index:1;}
@media(max-width:900px){.hero-stage .dev-back{display:none;}
  .hero-stage .dev-front{right:50%;transform:translateX(50%);}}
@media(max-width:520px){.hero-stage .device{width:262px;}}

/* --- app screen: paste --- */
.ap-head{background:var(--forest-deep);color:#ece7d8;padding:14px 18px 46px;
  position:relative;}
.ap-brand{display:flex;align-items:center;gap:8px;font-weight:700;font-size:14px;}
.ap-brand .pindot{width:13px;height:16px;}
.ap-h{font-size:20px;font-weight:700;letter-spacing:-.02em;margin:16px 0 4px;line-height:1.12;}
.ap-sub{font-size:12.5px;color:#b9c1ac;line-height:1.35;}
.ap-card{margin:-32px 14px 0;background:#fff;border-radius:18px;padding:15px;
  box-shadow:0 18px 34px -22px rgba(40,51,31,.4);border:1px solid #ecebdf;position:relative;z-index:2;}
.ap-tag{font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.18em;
  text-transform:uppercase;color:#8b9182;white-space:nowrap;}
.ap-field{margin-top:9px;border:1.5px solid #e0dfd2;border-radius:11px;padding:11px 12px;
  font-size:12.5px;color:#9a9c90;display:flex;justify-content:space-between;align-items:center;}
.ap-field.ml{height:58px;align-items:flex-start;}
.ap-field .clip{font-size:9px;font-family:'JetBrains Mono',monospace;letter-spacing:.1em;
  color:#3d4d3a;background:#e5eae0;padding:3px 7px;border-radius:6px;}
.ap-btn{margin-top:11px;background:#2f3d28;color:#f2f0e6;text-align:center;
  padding:12px;border-radius:11px;font-weight:600;font-size:13px;}
.ap-recent{padding:16px 18px 0;}
.ap-rtitle{font-size:11px;font-weight:700;color:#2b2d29;display:flex;justify-content:space-between;}
.ap-rtitle span{color:#3d4d3a;font-weight:600;}
.ap-row{display:flex;align-items:center;gap:11px;padding:10px 0;border-bottom:1px solid #efeee4;}
.ap-thumb{width:42px;height:42px;border-radius:10px;flex:none;
  background:repeating-linear-gradient(135deg,#e8ebe2,#e8ebe2 5px,#eef1e9 5px,#eef1e9 10px);
  display:grid;place-items:center;font-size:8px;color:#9aa392;font-family:'JetBrains Mono',monospace;}
.ap-row .nm{font-size:13px;font-weight:600;}
.ap-row .mt{font-size:10.5px;color:#8b8e82;}
.ap-row .chev{margin-left:auto;color:#b7bab0;font-size:16px;}
.ap-tabbar{margin-top:auto;display:flex;border-top:1px solid #ecebdf;
  padding:9px 0 18px;background:#fff;}
.ap-tab{flex:1;text-align:center;font-size:10px;font-weight:600;color:#b0b3a8;
  display:flex;flex-direction:column;align-items:center;gap:4px;}
.ap-tab.on{color:#2f3d28;}
.ap-tab .ic{width:15px;height:15px;border-radius:5px;border:1.6px solid currentColor;}
.ap-tab.on .ic.pin{border:0;}

/* --- app screen: review --- */
.rv-head{display:flex;align-items:center;gap:10px;padding:14px 16px 10px;
  border-bottom:1px solid #efeee4;}
.rv-head .bk{font-size:20px;color:#3d4d3a;}
.rv-head .ti{font-weight:700;font-size:15px;flex:1;}
.rv-head .ed{font-size:11px;color:#3d4d3a;font-weight:600;white-space:nowrap;}
.rv-sel{display:flex;justify-content:space-between;gap:8px;padding:9px 16px;font-size:10.5px;
  font-family:'JetBrains Mono',monospace;letter-spacing:.06em;color:#8b8e82;
  text-transform:uppercase;white-space:nowrap;}
.rv-list{padding:0 13px;display:flex;flex-direction:column;gap:9px;overflow:hidden;}
.gcard{display:flex;gap:10px;padding:11px;border:1px solid #e9e8dc;border-radius:14px;background:#fff;}
.gcard .cbx{width:19px;height:19px;border-radius:6px;border:1.6px solid #cdd3c4;flex:none;margin-top:1px;}
.gcard .cbx.on{background:#2f3d28;border-color:#2f3d28;position:relative;}
.gcard .cbx.on::after{content:"";position:absolute;left:6px;top:2.5px;width:4px;height:9px;
  border:solid #f2f0e6;border-width:0 2px 2px 0;transform:rotate(45deg);}
.gcard .gt{width:46px;height:46px;border-radius:9px;flex:none;
  background:repeating-linear-gradient(135deg,#e8ebe2,#e8ebe2 5px,#eef1e9 5px,#eef1e9 10px);}
.gcard>div:last-child{flex:1 1 auto;min-width:0;}
.gcard .nm{font-size:13px;font-weight:700;letter-spacing:-.01em;overflow-wrap:anywhere;}
.gcard .lc{font-size:10.5px;color:#8b8e82;}
.chip{display:inline-block;font-size:9px;font-weight:600;
  font-family:'JetBrains Mono',monospace;letter-spacing:.08em;text-transform:uppercase;
  color:#3d4d3a;background:#e5eae0;border:1px solid #c8d2c0;padding:2px 7px;border-radius:999px;}
.gcard .chip{margin-top:5px;}
.rv-bar{margin-top:auto;padding:12px 14px 20px;border-top:1px solid #efeee4;background:#fff;
  display:flex;flex-direction:column;gap:8px;}
.rv-bar .ap-btn{margin:0;}
.rv-bar .sec{background:transparent;color:#3d4d3a;border:1.5px solid #cdd3c4;}

/* ============================================================
   GENERIC SECTION HEADERS
   ============================================================ */
.sec-head{max-width:680px;margin-bottom:64px;}
.sec-head.center{margin-left:auto;margin-right:auto;text-align:center;}
.sec-head .display-2{margin:18px 0 0;}
.sec-head p{margin:20px 0 0;color:var(--ink-soft);font-size:18px;line-height:1.55;}

/* ============================================================
   HOW IT WORKS — 4 steps
   ============================================================ */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
@media(max-width:900px){.steps{grid-template-columns:repeat(2,1fr);gap:20px;}}
@media(max-width:560px){.steps{grid-template-columns:1fr;}}
.step{position:relative;padding:30px 24px 28px;border-radius:var(--r);
  background:var(--card);color:var(--card-ink);border:1px solid var(--card-line);
  transition:transform .2s ease,box-shadow .2s ease;}
.step:hover{transform:translateY(-4px);box-shadow:var(--shadow);}
.step .n{font-family:'JetBrains Mono',monospace;font-size:13px;letter-spacing:.12em;
  color:var(--accent);font-weight:500;}
[data-dir="bold"] .step .n{color:var(--forest);}
.step .ico{width:46px;height:46px;border-radius:12px;margin:14px 0 18px;
  background:var(--accent-soft);display:grid;place-items:center;color:var(--on-accent-soft);}
[data-dir="bold"] .step .ico{background:var(--tint);color:var(--forest-deep);}
.step h3{font-size:21px;letter-spacing:-.01em;}
.step p{margin:10px 0 0;font-size:15px;line-height:1.5;
  color:color-mix(in srgb,var(--card-ink) 64%,transparent);}
.step .arrow{position:absolute;top:36px;right:-16px;color:var(--ink-faint);font-size:20px;z-index:2;}
.steps .step:last-child .arrow{display:none;}
@media(max-width:900px){.step .arrow{display:none;}}

/* big number variant for bold */
[data-dir="bold"] .step .n{font-size:13px;}

/* ============================================================
   FEATURE ROWS — alternating copy / device
   ============================================================ */
.feat{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;
  padding:46px 0;}
.feat + .feat{border-top:1px solid var(--line);}
@media(max-width:880px){.feat{grid-template-columns:1fr;gap:40px;}
  .feat .feat-media{order:-1;}}
.feat.flip .feat-media{order:-1;}
@media(max-width:880px){.feat.flip .feat-media{order:-1;}}
.feat-copy .display-3{margin:16px 0 0;}
.feat-copy p{margin:16px 0 0;color:var(--ink-soft);font-size:17px;line-height:1.6;max-width:46ch;}
.feat-list{list-style:none;padding:0;margin:24px 0 0;display:flex;flex-direction:column;gap:13px;}
.feat-list li{display:flex;gap:12px;align-items:flex-start;font-size:15.5px;color:var(--ink);}
.feat-list .tick{width:22px;height:22px;border-radius:7px;flex:none;margin-top:1px;
  background:var(--accent-soft);color:var(--on-accent-soft);display:grid;place-items:center;font-size:12px;}
[data-dir="bold"] .feat-list .tick{background:var(--accent);color:var(--accent-ink);}
.feat-media{display:flex;justify-content:center;position:relative;}
.feat-media .device{width:282px;}

/* soft graphic plate behind device */
.media-plate{position:relative;}
.media-plate::before{content:"";position:absolute;inset:-8% -6%;border-radius:46px;
  background:var(--accent-soft);z-index:0;}
[data-dir="bold"] .media-plate::before{background:var(--band);}
[data-dir="editorial"] .media-plate::before{background:var(--band);border:1px solid var(--line);}
.media-plate .device{position:relative;z-index:1;}

/* ============================================================
   PRIVACY / VALUE STRIP (graphic, no device)
   ============================================================ */
.valuegrid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
@media(max-width:760px){.valuegrid{grid-template-columns:1fr;}}
.vcard{padding:30px 26px;border-radius:var(--r);border:1px solid var(--card-line);
  background:var(--card);color:var(--card-ink);}
.vcard .big{font-family:var(--display);font-weight:var(--display-w);
  font-size:40px;letter-spacing:-.02em;color:var(--accent);line-height:1;}
[data-dir="bold"] .vcard .big{color:var(--forest);}
[data-dir="editorial"] .vcard .big{font-style:italic;}
.vcard h3{font-size:18px;margin:16px 0 0;}
.vcard p{margin:9px 0 0;font-size:14.5px;line-height:1.5;
  color:color-mix(in srgb,var(--card-ink) 62%,transparent);}

/* ============================================================
   FAQ
   ============================================================ */
.faq{max-width:780px;margin:0 auto;}
.qa{border-top:1px solid var(--line);padding:26px 4px;cursor:pointer;}
.qa:last-child{border-bottom:1px solid var(--line);}
.qa summary{list-style:none;display:flex;justify-content:space-between;gap:24px;
  align-items:center;font-family:var(--display);font-weight:var(--display-w);
  font-size:21px;letter-spacing:-.01em;}
[data-dir="editorial"] .qa summary{font-weight:600;}
.qa summary::-webkit-details-marker{display:none;}
.qa .pm{flex:none;width:26px;height:26px;border-radius:50%;border:1.5px solid var(--line);
  display:grid;place-items:center;font-size:18px;color:var(--accent);}
.qa[open] .pm{transform:rotate(45deg);}
.qa p{margin:16px 0 0;color:var(--ink-soft);font-size:16px;line-height:1.6;max-width:64ch;}

/* ============================================================
   FINAL CTA
   ============================================================ */
.cta{position:relative;overflow:hidden;border-radius:34px;
  background:var(--forest-deep);color:#ece7d8;padding:84px 56px;text-align:center;}
[data-dir="bold"] .cta{background:var(--band);border:1px solid var(--line);}
[data-dir="editorial"] .cta{border-radius:14px;}
.cta .display-2{color:#f3f1e7;}
.cta p{margin:20px auto 34px;color:#bcc4af;font-size:18px;max-width:48ch;}
.cta .hero-cta{justify-content:center;}
.cta .store{background:#ece7d8;color:#26301e;}
.cta .store.is-soon{background:transparent;color:#ece7d8;border:1.5px solid rgba(236,231,216,.35);}
.cta .route-svg{color:#ece7d8;opacity:.18;}
.cta-content{position:relative;z-index:2;}

/* ============================================================
   FOOTER
   ============================================================ */
.foot{padding:64px 0 56px;border-top:1px solid var(--line);}
.foot-grid{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;}
.foot-brand{max-width:280px;}
.foot-brand p{color:var(--ink-soft);font-size:14px;margin:16px 0 0;line-height:1.5;}
.foot-cols{display:flex;gap:64px;flex-wrap:wrap;}
.foot-col h4{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ink-faint);margin:0 0 16px;font-weight:500;}
.foot-col a{display:block;color:var(--ink-soft);font-size:14.5px;margin-bottom:11px;}
.foot-col a:hover{color:var(--ink);}
.foot-base{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;
  margin-top:54px;padding-top:26px;border-top:1px solid var(--line);
  font-size:13px;color:var(--ink-faint);}

/* ---------- pin glyph (reusable) ---------- */
.pindot{display:inline-block;background:currentColor;
  clip-path:polygon(50% 100%,0 38%,0 0,100% 0,100% 38%);
  -webkit-mask:none;}
/* simpler teardrop pin */
.pin-glyph{display:inline-block;width:1em;height:1.25em;position:relative;color:inherit;}

/* entrance — intentionally none: this render target freezes animation
   timelines, so content must be visible without depending on them. */
.reveal{}
