/* Shared stylesheet for the marketing pages: site/index.html, features.html,
   plans.html and the locale copies tool/build_site.py generates from them.
   Lives at the site root, NOT under /assets/: _headers gives /assets/* a
   one-year immutable cache, and this file changes with the copy.
   The generated food pages use assets/food.css, whose tokens mirror these. */
:root{
  --bg:#0e0e0e; --bg2:#141414; --card:#181818; --border:#2a2a2a;
  --text:#f2f2f2; --muted:#9a9a9a; --accent:#d4e600; --accent-dim:#262a08;
  --green:#7dd3a8; --red:#ff6b6b; --gold:#f2b84b; --radius:18px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--bg);color:var(--text);
  font-family:'Manrope',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px;}
.accent{color:var(--accent);}

/* ── nav ───────────────────────────────────────────── */
nav{position:sticky;top:0;z-index:50;backdrop-filter:blur(12px);
  background:rgba(14,14,14,.78);border-bottom:1px solid var(--border);}
nav .wrap{display:flex;align-items:center;justify-content:space-between;height:58px;gap:12px;}
.brand{font-weight:800;font-size:1.15rem;letter-spacing:-.01em;white-space:nowrap;}
.brand span{color:var(--accent);}
.nav-links{display:flex;align-items:center;gap:22px;font-size:.9rem;color:var(--muted);font-weight:600;}
.nav-links a:not(.btn){display:none;}
.nav-links a:not(.btn):hover{color:var(--text);}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--accent);color:#111;
  font-weight:800;letter-spacing:.01em;padding:10px 16px;border-radius:11px;border:0;cursor:pointer;
  font-family:inherit;font-size:.9rem;transition:transform .12s,filter .12s;white-space:nowrap;}
.btn:hover{filter:brightness(1.06);transform:translateY(-1px);}
nav .btn{padding:8px 14px;font-size:.85rem;}
.lang{background:#101010;border:1px solid var(--border);color:var(--muted);font:inherit;
  font-weight:700;font-size:.82rem;padding:7px 8px;border-radius:9px;cursor:pointer;}
.lang:focus{outline:none;border-color:var(--accent);}
@media(min-width:800px){
  .nav-links a:not(.btn){display:inline;}
  nav .btn{padding:10px 18px;font-size:.9rem;}
}

/* Official store badges (site/assets/badges/, per-locale artwork swapped
   via the cta.playB / cta.appB dict keys). The Play PNG carries built-in
   padding, so it renders taller than the Apple SVG for the same visual
   size. cta.play / cta.appstore stay as TEXT keys: the generated food
   pages escape them into styled buttons (tool/site_food_pages.py). */
.store-badges{display:flex;gap:10px;justify-content:center;align-items:center;flex-wrap:wrap;}
.store-badges img{display:block;height:48px;width:auto;}
.store-badges .badge-play img{height:72px;}
/* The visitor's own store first. site.js tags <body> with the platform;
   without JS the order is Play then App Store, both always visible. */
body.plat-ios .badge-play{order:2;}
body.plat-ios .badge-appstore{order:1;}

/* ── hero ──────────────────────────────────────────── */
/* One DOM, two layouts. Phones stack copy, art, then the ask, so the product
   screenshot lands on screen one; desktop puts the art in its own column. */
.hero{position:relative;overflow:hidden;padding:22px 0 30px;}
.hero-glow{position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(560px 340px at 72% 26%,rgba(212,230,0,.13),transparent 70%);}
.hero-inner{position:relative;display:grid;grid-template-areas:"top" "art" "bottom";
  justify-items:center;text-align:center;row-gap:18px;}
.hero-top{grid-area:top;}
.hero-art{grid-area:art;}
.hero-bottom{grid-area:bottom;}
.eyebrow{color:var(--accent);font-weight:800;font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;}
h1{font-size:clamp(2rem,8.2vw,3.5rem);line-height:1.06;letter-spacing:-.02em;margin:10px 0 0;font-weight:800;}
.lead{color:var(--muted);font-size:1.04rem;margin:12px auto 0;max-width:36ch;}
.lead b{color:var(--text);font-weight:700;}
.sure{color:var(--text);font-weight:600;font-size:.98rem;margin:0 auto 16px;max-width:36ch;}
.hint{color:var(--muted);font-size:.82rem;margin:12px 0 0;}

/* Phone + Aiko composition. Both are absolutely placed inside a fixed box so
   the overlap is identical at every width. */
.hero-art{position:relative;width:300px;height:330px;}
.hero-art::before{content:"";position:absolute;left:50%;top:52%;transform:translate(-50%,-50%);
  width:320px;height:320px;border-radius:50%;
  background:radial-gradient(circle at 50% 50%,rgba(212,230,0,.2),transparent 62%);filter:blur(6px);}
.hero-phone{position:absolute;left:14px;top:8px;width:158px;z-index:1;border-radius:24px;
  border:6px solid #1b1b1b;background:#1b1b1b;overflow:hidden;
  box-shadow:0 22px 48px rgba(0,0,0,.6);transform:rotate(-3deg);}
.hero-phone img{border-radius:18px;width:100%;height:auto;}
.hero-aiko{position:absolute;right:0;bottom:0;height:330px;width:auto;z-index:2;
  filter:drop-shadow(0 18px 34px rgba(0,0,0,.55));}
.bubble{position:absolute;z-index:3;right:96px;top:0;background:#fff;color:#111;
  font-weight:800;font-size:.8rem;line-height:1.3;padding:8px 12px;border-radius:14px;
  max-width:150px;text-align:left;box-shadow:0 10px 24px rgba(0,0,0,.45);}
.bubble::after{content:"";position:absolute;right:-6px;top:14px;border:7px solid transparent;
  border-left-color:#fff;border-right:0;}
@media(min-width:820px){
  .hero{padding:48px 0 44px;}
  .hero-inner{grid-template-columns:1fr auto;grid-template-areas:"top art" "bottom art";
    justify-items:start;text-align:left;column-gap:48px;row-gap:22px;align-items:center;}
  .hero-top{align-self:end;}
  .hero-bottom{align-self:start;}
  .lead,.sure{margin-left:0;margin-right:0;max-width:40ch;}
  .hero-copy .store-badges{justify-content:flex-start;}
  .hero-art{width:470px;height:540px;}
  .hero-art::before{width:520px;height:520px;}
  .hero-phone{width:250px;left:6px;top:16px;border-width:7px;border-radius:30px;}
  .hero-phone img{border-radius:23px;}
  .hero-aiko{height:540px;}
  .bubble{right:150px;top:4px;font-size:.92rem;max-width:190px;padding:10px 14px;}
}

/* ── sections ──────────────────────────────────────── */
section{padding:48px 0;}
.section-head{text-align:center;max-width:660px;margin:0 auto 30px;}
.section-head .eyebrow{display:block;margin-bottom:10px;}
h2{font-size:clamp(1.6rem,6vw,2.3rem);line-height:1.14;letter-spacing:-.02em;margin:0;font-weight:800;}
.section-head p{color:var(--muted);margin:12px 0 0;}
.section-head p b{color:var(--text);font-weight:700;}
.more-link{display:block;text-align:center;margin-top:24px;color:var(--accent);font-weight:700;}
.more-link:hover{text-decoration:underline;text-underline-offset:3px;}
.after-badges{margin-top:30px;}

/* Subpage header (features, plans): the page's one h1. */
.page-head{padding:40px 0 4px;text-align:center;}
.page-head h1{font-size:clamp(2rem,7vw,3rem);}
.page-head .lead{max-width:52ch;}

/* phone screenshot frame */
.device{border-radius:26px;border:7px solid #1b1b1b;background:#1b1b1b;
  box-shadow:0 24px 55px rgba(0,0,0,.55);overflow:hidden;width:100%;max-width:216px;margin:0 auto;}
.device img{border-radius:20px;width:100%;height:auto;}

/* steps / device trios */
.steps{display:grid;grid-template-columns:1fr;gap:22px;max-width:340px;margin:0 auto;}
.step{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;text-align:center;}
.step .device{margin-bottom:16px;}
.step .num{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;
  border-radius:8px;background:var(--accent-dim);color:var(--accent);font-weight:800;font-size:.85rem;margin-bottom:8px;}
.step h3{margin:0 0 6px;font-size:1.1rem;}
.step p{color:var(--muted);margin:0;font-size:.92rem;}
.steps.two{max-width:660px;}
/* Phone widths: the three how-it-works steps become a thumb-swipe strip
   (the hello.html .shots pattern) so they cost one screen, not three. */
.steps.strip{display:flex;max-width:none;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;margin:0 -20px;padding:0 20px 8px;}
.steps.strip .step{flex:0 0 66%;scroll-snap-align:center;padding:16px;}
.steps.strip .device{max-width:170px;}
@media(min-width:760px){
  .steps{grid-template-columns:repeat(3,1fr);max-width:none;}
  .steps.two{grid-template-columns:repeat(2,1fr);}
  .steps.strip{display:grid;overflow:visible;margin:0;padding:0;}
  .steps.strip .device{max-width:216px;}
  .steps.two.strip{max-width:660px;margin:0 auto;}
}

/* features */
.features{display:grid;grid-template-columns:1fr;gap:16px;}
.feature{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:22px;}
.feature .ic{width:20px;height:20px;border-radius:6px;background:var(--accent);margin-bottom:16px;}
.feature h3{margin:0 0 8px;font-size:1.08rem;}
.feature p{color:var(--muted);margin:0;font-size:.93rem;}
.feature p a{color:var(--text);text-decoration:underline;text-decoration-color:var(--border);text-underline-offset:3px;}
@media(min-width:600px){.features{grid-template-columns:1fr 1fr;}}
@media(min-width:920px){.features{grid-template-columns:repeat(3,1fr);}}

/* "Eat. Move. Keep going." points (hello.html pattern) */
.points{list-style:none;margin:0 auto;padding:0;max-width:640px;display:grid;gap:12px;}
.points li{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);
  padding:16px 18px;font-size:.95rem;color:var(--muted);}
.points li b{color:var(--accent);}
.solo{text-align:center;color:var(--muted);font-size:.9rem;margin:18px auto 0;max-width:52ch;}

/* companion band */
.companions{position:relative;background:var(--bg2);border-top:1px solid var(--border);border-bottom:1px solid var(--border);overflow:hidden;}
.comp-art{position:absolute;bottom:0;width:auto;height:420px;opacity:.9;pointer-events:none;display:none;
  filter:drop-shadow(0 18px 34px rgba(0,0,0,.5));}
.comp-art.left{left:-40px;}
.comp-art.right{right:-40px;}
@media(min-width:1250px){.comp-art{display:block;}}
.roster{display:flex;gap:10px 22px;justify-content:center;flex-wrap:wrap;margin-top:26px;}
.roster span{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:.9rem;font-weight:600;}
.roster i{width:11px;height:11px;border-radius:50%;display:inline-block;}
.roster b{color:var(--text);font-weight:800;}

/* plans teaser (home) */
.tease{display:grid;grid-template-columns:1fr;gap:12px;max-width:900px;margin:0 auto;}
.tier{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;}
.tier h3{margin:0;font-size:1.05rem;letter-spacing:.04em;}
.tier.ex h3{color:var(--gold);}
.tier.max h3{color:var(--accent);}
.tier p{color:var(--muted);margin:6px 0 0;font-size:.92rem;}
.tier .price{color:var(--text);font-weight:800;margin-top:10px;font-size:.95rem;}
@media(min-width:760px){.tease{grid-template-columns:repeat(3,1fr);}}

/* short data note (home) */
.data-short{max-width:640px;margin:0 auto;text-align:center;}
.data-short p{color:var(--muted);margin:0 0 8px;}
.data-links{display:flex;gap:8px 18px;justify-content:center;flex-wrap:wrap;margin-top:14px;font-weight:700;}
.data-links a{color:var(--accent);}
.data-links a:hover{text-decoration:underline;text-underline-offset:3px;}

/* premium (EX / MAX) */
.premium-band{position:relative;overflow:hidden;border:1px solid #3a3413;border-radius:24px;
  background:linear-gradient(180deg,#191505,#111008);padding:36px 22px;}
.premium-band::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(480px 260px at 82% 0%,rgba(242,184,75,.14),transparent 70%);}
.premium-head{position:relative;text-align:center;max-width:640px;margin:0 auto 28px;}
.premium-head p{color:var(--muted);margin:12px 0 0;}
.ex-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border:1px solid var(--gold);
  border-radius:999px;color:var(--gold);font-size:.66rem;font-weight:800;letter-spacing:.14em;}
.perks{position:relative;display:grid;grid-template-columns:1fr;gap:14px;}
.perk{background:rgba(24,24,24,.72);border:1px solid #33301c;border-radius:var(--radius);padding:18px;}
.perk h3{margin:0 0 6px;font-size:1.02rem;display:flex;align-items:center;gap:8px;}
.perk h3::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--gold);flex:0 0 auto;}
.perk p{color:var(--muted);margin:0;font-size:.9rem;}
.premium-note{position:relative;text-align:center;color:var(--muted);font-size:.85rem;margin-top:22px;}
.premium-note b{color:var(--gold);font-weight:800;}
@media(min-width:600px){.perks{grid-template-columns:1fr 1fr;}}
@media(min-width:920px){.perks{grid-template-columns:repeat(3,1fr);}}
/* Plan and competitor comparison tables. Wide content scrolls inside its
   own wrapper; the page body must never scroll horizontally. */
.cmp{margin-top:36px;position:relative;}
.cmp h3{text-align:center;font-size:1.25rem;margin:0 0 6px;}
.cmp-sub{text-align:center;color:var(--muted);font-size:.9rem;margin:0 0 16px;}
.cmp-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.cmp table{border-collapse:collapse;width:100%;min-width:540px;font-size:.88rem;}
.cmp th,.cmp td{padding:9px 10px;border-bottom:1px solid var(--border);text-align:center;vertical-align:middle;}
.cmp th:first-child,.cmp td:first-child{text-align:left;}
.cmp thead th{font-weight:800;font-size:.85rem;}
.cmp thead .col-hi{color:var(--accent);}
.cmp .y{color:var(--accent);font-weight:700;}
.cmp .n{color:#5c5c5c;}
.cmp tbody tr:last-child td{border-bottom:none;font-weight:700;}
.cmp-note{text-align:center;color:#8a8a8a;font-size:.75rem;margin:10px 0 0;}

/* launch-price block, inside the premium band: perk surface, gold accent. */
.offer{position:relative;margin-top:22px;background:rgba(24,24,24,.72);border:1px solid #33301c;
  border-radius:var(--radius);padding:22px;display:flex;flex-direction:column;gap:20px;}
.offer-copy .eyebrow{color:var(--gold);display:block;}
.offer-copy h3{margin:10px 0 0;font-size:1.24rem;line-height:1.2;}
.offer-copy p{color:var(--muted);margin:8px 0 0;font-size:.92rem;}
.offer-price{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-top:14px;}
.offer-was{color:var(--muted);text-decoration:line-through;font-weight:700;font-size:.95rem;}
.offer-now{color:var(--gold);font-size:1.55rem;font-weight:800;letter-spacing:-.01em;line-height:1;}
.offer-now-note{color:var(--muted);font-size:.7rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;}
.offer-get{text-align:center;}
.offer-fine{width:100%;color:var(--muted);font-size:.78rem;margin:12px 0 0;}
@media(min-width:820px){
  .offer{flex-direction:row;align-items:center;gap:30px;padding:26px 28px;}
  .offer-copy{flex:1 1 0;}
  .offer-get{flex:0 0 372px;}
}

/* final cta */
.cta-band{background:linear-gradient(180deg,#161608,#0e0e0e);border:1px solid var(--border);
  border-radius:24px;padding:36px 22px;text-align:center;}
.cta-band h2{margin-bottom:8px;}
.cta-band p{color:var(--muted);margin:0 auto 22px;max-width:52ch;}
.badges{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:20px;color:var(--muted);font-size:.85rem;}
.badges span{display:inline-flex;align-items:center;gap:6px;}
/* Desktop→phone hand-off. Hidden below 900px on purpose: nobody scans a code
   with the phone the code is already on. The SVG is dark-on-transparent, so
   the white card supplies the contrast AND the quiet zone. */
.qr{display:none;}
@media(min-width:900px){
  .qr{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:28px;}
  .qr-card{background:#fff;border-radius:14px;padding:10px;line-height:0;
    box-shadow:0 12px 30px rgba(0,0,0,.45);}
  .qr-card img{width:132px;height:132px;}
  .qr-label{color:var(--muted);font-size:.85rem;font-weight:600;}
}

footer{border-top:1px solid var(--border);padding:26px 0;color:var(--muted);font-size:.85rem;}
footer .wrap{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;}
footer a{color:var(--muted);}footer a:hover{color:var(--accent);}
.foot-links{display:flex;gap:10px 16px;flex-wrap:wrap;}
footer .marks{color:#8a8a8a;font-size:.7rem;max-width:560px;margin:14px auto 0;}

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

/* faq */
.faq{max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:12px;}
.faq details{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;}
.faq summary{cursor:pointer;font-weight:700;font-size:1.02rem;list-style:none;
  display:flex;justify-content:space-between;align-items:center;gap:14px;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+";color:var(--accent);font-weight:800;font-size:1.3rem;line-height:1;
  transition:transform .18s;}
.faq details[open] summary::after{transform:rotate(45deg);}
.faq p{color:var(--muted);margin:12px 0 0;font-size:.95rem;}
.faq a{color:var(--text);text-decoration:underline;text-decoration-color:var(--border);
  text-underline-offset:3px;}
.faq a:hover{text-decoration-color:var(--accent);}
.tag-ex{display:inline-block;margin-left:8px;padding:2px 7px;border:1px solid var(--gold);
  border-radius:999px;color:var(--gold);font-size:.55rem;font-weight:800;letter-spacing:.12em;
  vertical-align:3px;}
.cite-note{margin:26px auto 0;max-width:780px;text-align:center;color:var(--muted);
  font-size:.8rem;line-height:1.7;}
.cite-note a{color:var(--text);text-decoration:underline;text-decoration-color:var(--border);
  text-underline-offset:3px;}
.cite-note a:hover{text-decoration-color:var(--accent);}
