/* menu.llmpreneur.com. Same LLMpreneur family as voc: Alfa Slab One headlines, Libre Franklin body, one yellow text
   button with an ink edge. Home: a cream price tag on a dark nori-green wall. Index and audit pages: cream paper,
   white cards, built for a phone first (44px taps, no sideways scroll at 360px). No inline styles (CSP). */
@font-face { font-family: "Alfa Slab One"; src: url(/fonts/alfa-slab-one.woff2) format("woff2"); font-display: swap; }
@font-face { font-family: "Libre Franklin"; src: url(/fonts/libre-franklin.woff2) format("woff2"); font-weight: 400 800; font-display: swap; }
@font-face { font-family: "Alfa Slab One"; src: url(/fonts/alfa-slab-one-ext.woff2) format("woff2"); font-display: swap; unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Libre Franklin"; src: url(/fonts/libre-franklin-ext.woff2) format("woff2"); font-weight: 400 800; font-display: swap; unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Permanent Marker"; src: url(/fonts/permanent-marker.woff2) format("woff2"); font-display: swap; }

:root {
  --wall: #13332B; --wall-deep: #0C231D; --wall-line: #2A4D43;
  --cr: #F3E7CF; --cr-dim: #C8C3AA; --paper: #FBF4E6; --card: #FFFFFF; --line: #E8DCC6;
  --ye: #FFD60A; --ink: #1A1410; --muted: #6A5B4E; --red: #B8322A; --red-bg: #FCE3DF; --green: #2C6A4A; --green-bg: #E3F1E8;
  --display: "Alfa Slab One", "Rockwell", Georgia, serif;
  --body: "Libre Franklin", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --marker: "Permanent Marker", "Marker Felt", cursive;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; overflow-x: clip; scroll-padding-top: 12px; }
body { margin: 0; font: 17px/1.45 var(--body); overflow-x: clip; }
a { color: inherit; }
img { max-width: 100%; }
button { font: inherit; color: inherit; }
[hidden] { display: none !important; }
:focus-visible { outline: 3px solid var(--ye); outline-offset: 3px; }

/* Buttons (shared) */
.cta { display: block; width: 100%; text-align: center; text-decoration: none; background: var(--ye); color: var(--ink);
  font: 400 21px/1.1 var(--display); padding: 18px 16px; border-radius: 14px; border: 3px solid var(--ink);
  box-shadow: 0 5px 0 var(--ink); transition: transform .08s, box-shadow .08s; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.cta:active { transform: translateY(4px); box-shadow: 0 1px 0 var(--ink); }
.cta-2 { display: block; width: 100%; text-align: center; text-decoration: none; font-weight: 800; font-size: 16px;
  padding: 13px 16px; min-height: 48px; border-radius: 14px; border: 2px solid currentColor; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.cta-note { margin: 0; font-size: 13px; text-align: center; }

/* ---------- Home: the price tag on the wall ---------- */
body.home { background: var(--wall); color: var(--cr); color-scheme: dark;
  background-image: repeating-linear-gradient(90deg, rgba(0,0,0,.08) 0 2px, transparent 2px 28px); }
.home .wrap { max-width: 460px; margin: 0 auto; padding: env(safe-area-inset-top, 0px) 18px env(safe-area-inset-bottom, 0px); }
.home .first { min-height: 100vh; min-height: 100svh; display: flex; flex-direction: column; }
.top { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding-top: 14px; }
.top-tag { margin: 0; font-size: 11px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--cr-dim); }
.top-btn { white-space: nowrap; background: var(--cr); color: var(--wall); border: 0; border-radius: 999px; padding: 10px 15px;
  font-size: 14px; font-weight: 800; text-decoration: none; }
.pitch { flex: 1; display: flex; flex-direction: column; justify-content: center; gap: clamp(12px, 2.4svh, 22px); padding: 18px 0 22px; }
.tag-wrap { position: relative; align-self: center; width: min(100%, 360px); margin: 6px 0 clamp(14px, 3svh, 28px); }
.ptag { position: relative; background: var(--cr); color: var(--wall-deep); border-radius: 16px 16px 16px 16px; transform: rotate(-2.5deg);
  padding: clamp(46px, 7svh, 58px) 24px clamp(26px, 4svh, 34px); text-align: center; box-shadow: 0 16px 30px rgba(0,0,0,.4);
  background-image: linear-gradient(transparent calc(100% - 10px), rgba(19,51,43,.06) 0); }
.ptag::before { content: ""; position: absolute; left: 50%; top: 18px; width: 18px; height: 18px; margin-left: -9px; border-radius: 50%;
  background: var(--wall); box-shadow: inset 0 2px 3px rgba(0,0,0,.5), 0 0 0 4px rgba(19,51,43,.12); }
.ptag::after { content: ""; position: absolute; left: 50%; top: -44px; width: 2px; height: 70px; background: var(--cr-dim); transform-origin: bottom; transform: rotate(14deg); }
.ptag h1 { margin: 0; display: flex; flex-direction: column; gap: 12px; font-weight: 400; }
.ring { font-size: 13px; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; color: var(--red); }
.h1-big { font: 400 clamp(36px, 11vw, 46px)/1.02 var(--display); letter-spacing: -.01em; text-wrap: balance; }
.sticker { position: absolute; right: -8px; bottom: -22px; background: var(--ye); color: var(--ink);
  font: 17px/1.05 var(--marker); padding: 8px 11px; transform: rotate(-7deg); box-shadow: 2px 3px 0 rgba(0,0,0,.35); }
.lede { margin: 0; font-size: clamp(17px, 2.4svh, 19px); line-height: 1.4; text-align: center; text-wrap: balance; }
.home .cta-block { display: flex; flex-direction: column; gap: 8px; }
.home .cta-note { color: var(--cr-dim); }
.home .cta-2 { color: var(--cr); background: transparent; margin-top: 4px; }
.more-hint { align-self: center; font-size: 14px; font-weight: 700; color: var(--cr-dim); text-decoration: underline; text-underline-offset: 4px; padding: 6px; }

.panel { background: var(--wall-deep); border: 1px solid var(--wall-line); border-radius: 18px; padding: 20px 18px; margin: 0 0 14px; }
.panel h2 { margin: 0 0 12px; font: 400 23px/1.15 var(--display); color: var(--cr); }
.cats { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.cats li { display: flex; justify-content: space-between; align-items: center; gap: 10px; min-height: 48px; border-bottom: 1px solid var(--wall-line); font-weight: 700; }
.cats li:last-child { border-bottom: 0; }
.cats a { display: flex; justify-content: space-between; align-items: center; width: 100%; min-height: 48px; text-decoration: none; }
.cats .live { background: var(--ye); color: var(--ink); font-size: 12px; font-weight: 800; padding: 5px 10px; border-radius: 999px; white-space: nowrap; }
.cats .soon { color: var(--cr-dim); font-size: 13px; font-weight: 600; }
.how { margin: 0; padding: 0 0 0 20px; display: flex; flex-direction: column; gap: 8px; font-size: 16px; }
.how li::marker { color: var(--ye); font-weight: 800; }
.legal { margin: 0; font-size: 15px; line-height: 1.45; color: var(--cr); }
.legal b { color: var(--ye); }
.foot { display: flex; justify-content: center; padding: 10px 0 18px; }
.foot a { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; text-decoration: none; min-height: 44px; }
.home .foot a { color: var(--cr-dim); }
.foot a:hover span { text-decoration: underline; }
.foot img { border-radius: 5px; }

/* ---------- Paper pages: /sushi/ index and private audits ---------- */
body.paper { background: var(--paper); color: var(--ink); color-scheme: light; padding-bottom: 104px; }
.bar { background: var(--wall); color: var(--cr); padding: calc(10px + env(safe-area-inset-top, 0px)) 16px 10px; display: flex;
  justify-content: space-between; align-items: center; gap: 10px; font-size: 12px; }
.bar a { text-decoration: none; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; min-height: 28px; display: inline-flex; align-items: center; }
.bar span { color: var(--cr-dim); }
main.doc { max-width: 640px; margin: 0 auto; padding: 20px 16px 24px; display: flex; flex-direction: column; gap: 16px; }
.hero { display: flex; flex-direction: column; gap: 12px; }
.kick { margin: 0; color: var(--red); font-size: 13px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.paper h1 { margin: 0; font: 400 clamp(30px, 8.6vw, 42px)/1.05 var(--display); color: var(--wall); text-wrap: balance; }
.paper .lede { text-align: left; font-size: 17.5px; }
.paper .cta-note { color: var(--muted); }
.cta-box { display: flex; flex-direction: column; gap: 7px; }
.facts { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 0; padding: 0; list-style: none; font-size: 14px; color: var(--muted); }
.facts b { color: var(--ink); }
.toc { display: flex; gap: 8px; overflow-x: auto; padding: 2px 0 4px; scrollbar-width: none; }
.toc::-webkit-scrollbar { display: none; }
.toc a { flex: none; text-decoration: none; font-size: 14px; font-weight: 700; padding: 10px 14px; min-height: 44px; border-radius: 999px; background: var(--card); border: 1.5px solid var(--line); }
.tiers-key { display: grid; gap: 6px; margin: 0; padding: 14px 14px; background: var(--card); border: 1px solid var(--line); border-radius: 14px; font-size: 14.5px; }
.tiers-key div { display: flex; gap: 8px; }
.tiers-key dt { font-weight: 800; min-width: 104px; }
.tiers-key dd { margin: 0; color: var(--muted); }

.grp { display: flex; flex-direction: column; gap: 10px; scroll-margin-top: 10px; }
.grp h2 { margin: 10px 0 0; font: 400 25px/1.1 var(--display); color: var(--wall); }
.grp h2 span { font: 600 14px/1 var(--body); color: var(--muted); margin-left: 6px; }
.item { background: var(--card); border: 1px solid var(--line); border-radius: 16px; padding: 14px 14px 10px; }
.item h3 { margin: 0 0 8px; font-size: 17px; font-weight: 800; }
.item .unit { font-weight: 600; font-size: 13px; color: var(--muted); }
.item table { width: 100%; border-collapse: collapse; font-size: 14.5px; font-variant-numeric: tabular-nums; }
.item thead th { font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); text-align: left; padding: 0 4px 6px 0; }
.item tbody th { text-align: left; font-weight: 600; padding: 7px 4px 7px 0; white-space: nowrap; }
.item td { padding: 7px 4px 7px 0; border-top: 1px solid var(--line); }
.item tbody th { border-top: 1px solid var(--line); }
.item .med { font-weight: 800; font-size: 16px; }
.item .rng { color: var(--muted); font-size: 13.5px; }
.item .n, .item thead th:last-child { text-align: right; padding-right: 0; }
.item tr.t-all th, .item tr.t-all td { background: var(--paper); }
.item tr.t-all th { padding-left: 6px; border-radius: 8px 0 0 8px; }
.item tr.t-all td:last-child { padding-right: 6px; border-radius: 0 8px 8px 0; }
.thin { margin: 6px 0 2px; font-size: 13px; color: var(--muted); }

.card { background: var(--card); border: 1px solid var(--line); border-radius: 18px; padding: 18px 16px; display: flex; flex-direction: column; gap: 12px; scroll-margin-top: 10px; }
.card-label { margin: 0; font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.card h2 { margin: 0; font: 400 24px/1.12 var(--display); color: var(--wall); text-wrap: balance; }
.card p { margin: 0; }
.method { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 7px; font-size: 15.5px; }
.note { font-size: 13.5px; color: var(--muted); }
.legal-paper { margin: 0; padding: 12px 14px; border-radius: 12px; background: var(--green-bg); font-size: 14.5px; }

/* Audit: what we found + price cards */
.found { display: flex; flex-direction: column; border-top: 1.5px solid var(--line); margin-top: 4px; }
.found-title { margin: 12px 0 2px; font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.found a { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 50px; padding: 8px 0; border-bottom: 1px solid var(--line); text-decoration: none; font-size: 16.5px; font-weight: 700; }
.found a b { font-variant-numeric: tabular-nums; white-space: nowrap; }
.found a.up b { color: var(--green); }
.found a.ok b { color: var(--muted); font-size: 14px; }
.prices { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.price { border-radius: 12px; padding: 10px 10px 9px; background: var(--paper); display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.price span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 12px; line-height: 1.2; color: var(--muted); font-weight: 600; }
.price b { font: 400 24px/1 var(--display); font-variant-numeric: tabular-nums; }
.price.try { background: var(--green-bg); }
.price.try b { color: var(--green); }
.price.high { background: var(--red-bg); }
.price.high b { color: var(--red); }
.gain { padding: 10px 12px; background: var(--paper); border-radius: 12px; font-size: 15.5px; font-weight: 700; }
.gain b { color: var(--green); }
.total { padding: 14px 14px; border-radius: 14px; background: var(--wall); color: var(--cr); font-size: 16px; }
.total b { color: var(--ye); font: 400 22px/1.2 var(--display); }

/* Sticky text button on paper pages */
.dock { position: fixed; left: 0; right: 0; bottom: 0; z-index: 5; padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px));
  background: linear-gradient(rgba(251,244,230,0), var(--paper) 30%); }
.dock .cta { max-width: 608px; margin: 0 auto; font-size: 19px; padding: 15px 14px; }
.paper .foot a { color: var(--muted); }
@media (prefers-reduced-motion: reduce) { .cta { transition: none; } }

/* ---------- 2026-10-17: cities, categories, one-screen pages, sheets, the locked index ---------- */
html.sheet-open { overflow: hidden; }
.home .screen { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; }
.home .screen .foot { padding-top: 0; }
a.top-tag { text-decoration: none; }
button.top-btn, button.cta-2, .bar-btn, .mini { cursor: pointer; font-family: var(--body); }
.home button.cta-2 { background: transparent; }

/* City page: a smaller tag, then category tiles */
.tag-wrap.small { margin-bottom: clamp(10px, 2svh, 22px); }
.tag-wrap.small .ptag { padding: clamp(40px, 5.5svh, 50px) 22px clamp(20px, 3svh, 28px); }
.tag-wrap.small .h1-big { font-size: clamp(30px, 8.6vw, 38px); }
.tiles { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.tile { display: flex; flex-direction: column; justify-content: center; gap: 2px; min-height: 56px; padding: 8px 14px; border-radius: 14px;
  border: 1px solid var(--wall-line); background: var(--wall-deep); text-decoration: none; }
.tile b { font: 400 18px/1.1 var(--display); color: var(--cr); }
.tile span { font-size: 12.5px; font-weight: 600; color: var(--cr-dim); }
.tile.live { background: var(--ye); border: 2px solid var(--ink); box-shadow: 0 3px 0 var(--ink); }
.tile.live b, .tile.live span { color: var(--ink); }
.tile.live span { font-weight: 800; }

/* Sheets (native dialog): bottom sheet on phones, centered card on computers */
dialog.sheet { padding: 0; border: 0; background: transparent; color: var(--ink); color-scheme: light; width: min(520px, calc(100% - 32px));
  max-width: none; max-height: calc(100dvh - 40px); overflow: visible; }
dialog.sheet::backdrop { background: rgba(6, 18, 15, .66); }
dialog.sheet:focus { outline: none; }
.sheet-card { display: flex; flex-direction: column; max-height: calc(100dvh - 40px); background: var(--paper); border-radius: 20px;
  padding: 14px 18px 14px; box-shadow: 0 20px 50px rgba(0,0,0,.35); }
@media (max-width: 640px) {
  dialog.sheet { width: 100%; margin: auto 0 0; max-height: 92dvh; }
  .sheet-card { max-height: 92dvh; border-radius: 20px 20px 0 0; padding-bottom: max(14px, env(safe-area-inset-bottom)); }
  dialog.sheet[open] .sheet-card { animation: sheet-up 320ms cubic-bezier(.2,.8,.2,1); }
}
@keyframes sheet-up { from { transform: translateY(100%); } }
.sheet-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding-bottom: 8px; }
.sheet-head h2 { margin: 0; font: 400 24px/1.1 var(--display); color: var(--wall); }
.sheet-x { flex: none; width: 44px; height: 44px; border-radius: 50%; border: 0; background: var(--line); color: var(--ink); display: grid; place-items: center; cursor: pointer; }
.sheet-x svg { width: 13px; height: 13px; }
.sheet-body { overflow-y: auto; overscroll-behavior: contain; min-height: 0; flex: 1 1 auto; display: flex; flex-direction: column; gap: 12px;
  margin: 0 -18px; padding: 4px 18px 8px; }
.sheet-body h3 { margin: 6px 0 0; font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.sheet-lede { margin: 0; font-size: 16px; }
.sheet-note { margin: 0; font-size: 13.5px; color: var(--muted); }
.sheet-body .how { font-size: 15px; gap: 6px; }
.sheet-body .how li::marker { color: var(--red); }
.sheet-foot { display: flex; flex-direction: column; gap: 6px; padding-top: 12px; border-top: 1px solid var(--line); }
.sheet-foot .cta { font-size: 19px; padding: 15px 14px; }
.sheet-foot .cta-note { color: var(--muted); }
.sheet-foot .foot { padding: 0; }
.sheet-foot .foot a { color: var(--muted); min-height: 36px; }
.avail { display: flex; flex-direction: column; gap: 10px; }
.avail-row { display: flex; flex-direction: column; gap: 6px; }
.avail-city { font: 400 18px/1.1 var(--display); color: var(--wall); text-decoration: none; }
.chips { display: flex; flex-wrap: wrap; gap: 6px; }
.chip { display: inline-flex; align-items: center; padding: 5px 11px; border-radius: 999px; font-size: 13px; font-weight: 700;
  border: 1.5px solid var(--line); background: var(--card); color: var(--muted); text-decoration: none; }
.chip.live { background: var(--ye); border-color: var(--ink); color: var(--ink); font-weight: 800; }
.avail-key { margin: 0; display: flex; gap: 6px; }
.avail-key .chip { padding: 2px 9px; font-size: 12px; }
.avail-more { margin: 0; font-size: 14.5px; color: var(--muted); }
.city-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.city-row { display: flex; justify-content: space-between; align-items: center; gap: 10px; min-height: 52px; border-bottom: 1px solid var(--line); text-decoration: none; }
.city-list li:last-child .city-row { border-bottom: 0; }
.city-row b { font: 400 19px/1.1 var(--display); color: var(--muted); }
.city-row span { font-size: 13px; font-weight: 700; color: var(--muted); }
.city-row.live b { color: var(--wall); }
.city-row.live span { background: var(--ye); color: var(--ink); border: 1.5px solid var(--ink); padding: 4px 10px; border-radius: 999px; font-weight: 800; }

/* Forms in sheets */
.form .field { display: flex; flex-direction: column; gap: 6px; margin: 0; }
.form label, .form legend { font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.form input[type=text] { font: 17px/1.2 var(--body); color: var(--ink); padding: 12px 14px; min-height: 48px; border-radius: 12px;
  border: 2px solid var(--line); background: var(--card); width: 100%; }
.form input[type=text]:focus { outline: none; border-color: var(--wall); }
.roles { border: 0; padding: 0; flex-direction: row !important; flex-wrap: wrap; gap: 8px !important; }
.roles legend { padding: 0; margin-bottom: 6px; float: left; width: 100%; }
.roles label { position: relative; letter-spacing: 0; text-transform: none; font-size: 15px; color: var(--ink); }
.roles input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.roles span { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border-radius: 999px; border: 2px solid var(--line);
  background: var(--card); font-weight: 700; }
.roles input:checked + span { background: var(--wall); border-color: var(--wall); color: var(--cr); }
.roles input:focus-visible + span { outline: 3px solid var(--ye); outline-offset: 2px; }
.err { margin: 0; color: var(--red); font-size: 14px; font-weight: 700; }

/* Paper bar button and small buttons */
.bar a { letter-spacing: .07em; font-size: 11.5px; }
.bar-btn { flex: none; background: var(--cr); color: var(--wall); border: 0; border-radius: 999px; padding: 7px 12px; min-height: 32px;
  font-size: 13px; font-weight: 800; }
.mini { align-self: flex-start; flex: none; background: var(--card); color: var(--wall); border: 1.5px solid var(--line); border-radius: 999px;
  padding: 7px 12px; min-height: 36px; font-size: 13.5px; font-weight: 800; }

/* Public index: one screen (header, two items, the locked card) */
body.paper.fit { padding-bottom: 0; }
.fit .screen { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; }
.fit main.doc { flex: 1 1 auto; width: 100%; gap: 10px; padding-top: 14px; padding-bottom: max(14px, env(safe-area-inset-bottom)); }
.fit .hero { gap: 6px; }
.fit .paper h1, .fit h1 { font-size: clamp(27px, 7.6vw, 38px); }
.fit .hero .lede { font-size: 15.5px; color: var(--muted); }
.facts-row { display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap; }
.fit .facts { font-size: 13.5px; }
.preview { display: flex; flex-direction: column; gap: 10px; }
.fit .item { padding: 10px 12px 6px; }
.fit .item h3 { margin-bottom: 4px; font-size: 16px; }
.fit .item thead th { padding-bottom: 3px; font-size: 10.5px; }
.fit .item tbody th, .fit .item td { padding-top: 5px; padding-bottom: 5px; }
.locked { flex: 1 1 auto; min-height: 150px; display: flex; flex-direction: column; gap: 10px; background: var(--card); border: 1px solid var(--line);
  border-radius: 16px; padding: 12px 12px 12px; overflow: hidden; }
.lock-head { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.lock-head h2 { margin: 0; font: 400 20px/1.1 var(--display); color: var(--wall); }
.lock-head span { font-size: 13px; color: var(--muted); font-weight: 600; white-space: nowrap; }
.lock-rows { flex: 1 1 0; min-height: 22px; overflow: hidden; display: flex; flex-direction: column;
  -webkit-mask-image: linear-gradient(#000 40%, transparent); mask-image: linear-gradient(#000 40%, transparent); }
.lr { display: grid; grid-template-columns: minmax(0, 1fr) auto 56px; align-items: center; gap: 10px; min-height: 30px; border-top: 1px solid var(--line); font-size: 14.5px; font-weight: 600; }
.lr span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lr i { display: block; height: 12px; border-radius: 6px; background: #DCCDB2; filter: blur(2.5px); }
.lr i.w1 { width: 70%; } .lr i.w2 { width: 90%; } .lr i.w3 { width: 55%; }
.locked .cta { flex: none; font-size: 19px; padding: 15px 14px; }
.unlocked-index { display: flex; flex-direction: column; gap: 12px; }
.unlocked-note { margin: 0; padding: 10px 14px; border-radius: 12px; background: var(--green-bg); color: var(--green); font-weight: 800; font-size: 15px; }
.is-unlocked .card .mini { margin-top: 2px; }
.sheet-card:focus { outline: none; }
@media (prefers-reduced-motion: reduce) { dialog.sheet[open] .sheet-card { animation: none; } }
/* Short phones (iPhone SE): tighten the wall pages so they stay one screen */
@media (max-height: 720px) {
  .home .pitch { gap: 10px; padding: 8px 0 10px; }
  .home .tag-wrap { margin: 0 0 16px; }
  .home .ptag { padding: 38px 20px 20px; }
  .home .h1-big { font-size: clamp(30px, 9vw, 38px); }
  .home .tag-wrap.small .h1-big { font-size: 28px; }
  .tile { min-height: 48px; padding: 6px 12px; }
  .home .cta { padding: 15px 14px; }
}

/* Locked rows: typical range public, median blurred */
.lr .rng { font-weight: 700; font-size: 14px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.lock-head span { white-space: nowrap; }
.by-area { margin: 8px 0 0; font-size: 13.5px; color: var(--muted); }
.by-area b { color: var(--ink); }
/* Neighborhood sheet */
.hoods { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 12px; }
.hoods li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 10px; align-items: center; }
.hoods .h-name { font-weight: 800; }
.hoods .h-val { font-weight: 700; font-variant-numeric: tabular-nums; text-align: right; }
.hoods .h-bar { grid-column: 1 / -1; grid-row: 2; position: relative; height: 10px; background: var(--card); border: 1px solid var(--line); border-radius: 6px; }
.hoods .h-bar::after { content: ""; position: absolute; left: 50%; top: -3px; bottom: -3px; width: 2px; background: var(--ink); }
.hoods .h-bar i { position: absolute; top: 0; bottom: 0; border-radius: 6px; }
.hoods .h-bar i.up { left: 50%; background: var(--wall); }
.hoods .h-bar i.down { right: 50%; background: #9DB8AE; }
.hoods small { grid-column: 1 / -1; grid-row: 3; color: var(--muted); font-size: 12.5px; }
.h-wait, .h-none { color: var(--muted); font-size: 13.5px; margin: 14px 0 0; }

/* Clear paths (2026-10-17): index buttons on home, tap hint and arrow on city tiles */
.home .cta-2.go { border: 2px solid var(--cr); border-radius: 14px; padding: 13px 14px; margin-top: 10px; }
.home .cta-2.go i, .tile.live b i { font-style: normal; }
.link-btn { background: none; border: 0; color: var(--cr-dim); font: 700 14px/1 var(--body); text-decoration: underline; text-underline-offset: 3px; padding: 10px; cursor: pointer; align-self: center; }
.tiles-hint { margin: 0 0 8px; font-size: 14px; font-weight: 700; color: var(--cr); }
.tile:not(.live) { opacity: .6; }

/* Home rack (2026-10-18): every live index is a cream price tag hanging from a brass rail, one link each (icon, cuisine,
   area, one item's typical price in marker, menu count). Coming cuisines hang smaller and unprinted under "Coming next".
   Tags rest at small angles and swing from the hook on hover or tap; still under prefers-reduced-motion. */
.sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.rack { position: relative; left: 50%; translate: -50% 0; width: min(calc(100vw - 32px), 1000px); padding: 0 0 34px; margin-top: -4px; }
.rack-head { text-align: center; }
.rack-head h2 { margin: 0; font: 400 clamp(25px, 7vw, 32px)/1.1 var(--display); color: var(--cr); }
.rack-head p { margin: 6px auto 0; max-width: 34ch; font-size: 15px; color: var(--cr-dim); text-wrap: balance; }
.rail { --gx: 14px; list-style: none; margin: 14px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px var(--gx); }
.rail li { position: relative; display: flex; padding-top: 30px; }
.rail li::before { content: ""; position: absolute; top: 6px; left: calc(var(--gx) / -2 - 1px); right: calc(var(--gx) / -2 - 1px); height: 5px;
  background: linear-gradient(#EADFC2, #A39A7C 70%, #7E765D); box-shadow: 0 3px 4px rgba(0,0,0,.4); }
.rail li:nth-child(2n+1)::before { border-radius: 3px 0 0 3px; }
.rail li:nth-child(2n)::before { border-radius: 0 3px 3px 0; }
.tag { --r: -2deg; position: relative; display: flex; flex-direction: column; width: 100%; text-decoration: none; color: var(--wall-deep);
  transform: rotate(var(--r)); transform-origin: 50% -22px; filter: drop-shadow(0 9px 10px rgba(0,0,0,.38)); -webkit-tap-highlight-color: transparent; }
.rail li:nth-child(4n+2) .tag { --r: 1.6deg; }
.rail li:nth-child(4n+3) .tag { --r: 1.2deg; }
.rail li:nth-child(4n+4) .tag { --r: -1.4deg; }
/* the string from the hook on the rail down to the punched hole, and the hook itself */
.tag::before { content: ""; position: absolute; z-index: 2; left: 50%; top: -22px; width: 2px; height: 41px; margin-left: -1px; background: #D9CDB0; border-radius: 1px; }
.tag::after { content: ""; position: absolute; z-index: 2; left: 50%; top: -29px; width: 9px; height: 9px; margin-left: -5.5px; border: 2px solid #D9CDB0; border-radius: 50%; }
.tag-body { position: relative; flex: 1; display: flex; flex-direction: column; align-items: center; text-align: center;
  background: var(--cr); padding: 36px 12px 11px; clip-path: polygon(24% 0, 76% 0, 100% 13%, 100% 100%, 0 100%, 0 13%);
  background-image: linear-gradient(transparent calc(100% - 8px), rgba(19,51,43,.07) 0); }
.tag-body::before { content: ""; position: absolute; top: 12px; left: 50%; width: 13px; height: 13px; margin-left: -6.5px; border-radius: 50%;
  background: var(--wall); box-shadow: 0 0 0 4px #E3D4B3, inset 0 2px 3px rgba(0,0,0,.55); }
.tag-icon { width: 46px; height: 46px; color: var(--wall); margin: 2px 0 4px; }
.tag-icon .fill { fill: var(--ye); }
.tag-icon .acc { stroke: var(--green); }
.tag-name { font: 400 22px/1.05 var(--display); }
.tag-area { margin-top: 4px; font-size: 10.5px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.tag-hook { display: flex; flex-direction: column; align-items: center; margin: 10px 0 10px; }
.tag-item { font-size: 13.5px; font-weight: 700; color: var(--ink); line-height: 1.2; }
.tag-price { font: 400 36px/1 var(--marker); color: var(--red); margin-top: 5px; transform: rotate(-4deg); font-variant-numeric: tabular-nums; }
.tag-per { font-size: 12px; color: var(--muted); margin-top: 4px; }
.tag-foot { align-self: stretch; display: flex; justify-content: space-between; align-items: center; gap: 6px; margin-top: auto; padding-top: 9px;
  border-top: 2px dashed rgba(19,51,43,.28); font-size: 13px; font-weight: 800; color: var(--wall); }
.tag-foot i { font-style: normal; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--ye);
  color: var(--ink); border: 2px solid var(--ink); font-size: 14px; line-height: 1; }
.tag.live:hover, .tag.live:focus-visible { animation: tag-swing 1s ease-out; filter: drop-shadow(0 14px 14px rgba(0,0,0,.45)); }
.tag.live:active { filter: drop-shadow(0 5px 6px rgba(0,0,0,.4)); }
.tag.live:focus-visible { outline: 3px solid var(--ye); outline-offset: 5px; border-radius: 4px; }
@keyframes tag-swing {
  0% { transform: rotate(var(--r)); } 22% { transform: rotate(calc(var(--r) + 5deg)); } 48% { transform: rotate(calc(var(--r) - 3.5deg)); }
  72% { transform: rotate(calc(var(--r) + 1.5deg)); } 100% { transform: rotate(var(--r)); } }
/* Coming next: smaller, unprinted tags (dark card stock), not links */
.rack-next { margin: 30px 0 0; text-align: center; font-size: 12px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--cr-dim); }
.rail-soon { --gx: 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px var(--gx); margin-top: 4px; }
.rail-soon li { padding-top: 26px; }
.tag.soon { color: var(--cr-dim); filter: drop-shadow(0 6px 6px rgba(0,0,0,.3)); transform-origin: 50% -18px; }
.tag.soon::before { top: -18px; height: 33px; background: #8F8A72; }
.tag.soon::after { top: -25px; border-color: #8F8A72; }
.tag.soon .tag-body { background: #1E453A; background-image: none; padding: 28px 8px 8px; }
.tag.soon .tag-body::before { top: 9px; width: 10px; height: 10px; margin-left: -5px; box-shadow: 0 0 0 3px #2B5649, inset 0 2px 3px rgba(0,0,0,.55); }
.tag.soon .tag-icon { width: 34px; height: 34px; color: var(--cr-dim); margin: 0 0 3px; }
.tag.soon .tag-name { font-size: 17px; color: var(--cr); }
.tag-stamp { margin-top: 5px; font: 13px/1 var(--marker); color: var(--ye); border: 1.5px solid currentColor; border-radius: 3px; padding: 3px 5px 2px; transform: rotate(-6deg); }
@media (min-width: 640px) {
  .rail { --gx: 24px; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 30px var(--gx); }
  .rail li::before, .rail li:nth-child(n)::before { border-radius: 0; }
  .rail li:first-child::before { border-radius: 3px 0 0 3px; }
  .rail li:last-child::before { border-radius: 0 3px 3px 0; }
  .rail-soon { --gx: 24px; grid-template-columns: repeat(4, minmax(0, 1fr)); max-width: 760px; margin-left: auto; margin-right: auto; }
  .tag-icon { width: 54px; height: 54px; }
  .tag-name { font-size: 26px; }
  .tag-price { font-size: 42px; }
  .tag-body { padding: 40px 16px 13px; }
}
/* +1 vote (shown by track.js) and "Tell me when it's live" text link on coming tags */
.vote { margin-top: 10px; min-width: 64px; min-height: 40px; padding: 6px 14px; border-radius: 999px; border: 2px solid var(--cr); background: transparent;
  color: var(--cr); font: 400 17px/1 var(--display); cursor: pointer; -webkit-tap-highlight-color: transparent; transition: transform .1s, background .1s; }
.vote:hover { background: rgba(243,231,207,.12); }
.vote:active { transform: scale(.94); }
.vote.voted { background: var(--ye); border-color: var(--ye); color: var(--ink); cursor: default; }
.soon-sms { margin-top: 6px; padding: 6px 2px; font-size: 12.5px; font-weight: 700; line-height: 1.25; color: var(--cr-dim); text-underline-offset: 3px; cursor: pointer; }
.soon-sms:hover { color: var(--cr); }
@media (prefers-reduced-motion: reduce) { .tag.live:hover, .tag.live:focus-visible { animation: none; } .vote { transition: none; } .vote:active { transform: none; } }

/* Opening Kit (2026-10-18): home link as a small cream luggage tag, and /opening/ (same wall, smaller price tag,
   three ticked lines, the first step on a dashed ticket, one yellow button, consultant line, honest note). */
.open-tag { align-self: center; position: relative; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; margin-top: 6px;
  padding: 8px 12px 8px 28px; background: var(--cr); color: var(--wall-deep); text-decoration: none; font-size: 15px; font-weight: 800; line-height: 1.2;
  clip-path: polygon(12px 0, 100% 0, 100% 100%, 12px 100%, 0 50%); transform: rotate(-1.5deg); filter: drop-shadow(0 5px 6px rgba(0,0,0,.35));
  -webkit-tap-highlight-color: transparent; }
.open-tag::before { content: ""; position: absolute; left: 11px; top: 50%; width: 8px; height: 8px; margin-top: -4px; border-radius: 50%;
  background: var(--wall); box-shadow: inset 0 1px 2px rgba(0,0,0,.5); }
.open-tag i { font-style: normal; display: grid; place-items: center; flex: none; width: 20px; height: 20px; border-radius: 50%; background: var(--ye);
  color: var(--ink); border: 2px solid var(--ink); font-size: 11px; line-height: 1; }
.open-tag span { text-align: left; }
.open-tag b { display: block; font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--red); margin-bottom: 2px; }
.open-tag:hover, .open-tag:focus-visible { transform: rotate(0deg); }
.open-tag:focus-visible { outline: 3px solid var(--ye); outline-offset: 4px; }
.opening .pitch { gap: clamp(10px, 1.8svh, 16px); padding: 10px 0 14px; }
.opening .ptag { padding: clamp(38px, 5svh, 46px) 20px clamp(18px, 2.6svh, 24px); }
.opening .tag-wrap.small { margin: 2px 0 clamp(14px, 2.6svh, 22px); }
.opening .h1-big { font-size: clamp(29px, 8.4vw, 40px); }
.open-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 7px; font-size: 15px; line-height: 1.35; }
.open-list li { position: relative; padding-left: 30px; }
.open-list li::before { content: ""; position: absolute; left: 0; top: 1px; width: 20px; height: 20px; border-radius: 50%; background: var(--ye);
  box-shadow: inset 0 0 0 2px var(--ink); }
.open-list li::after { content: ""; position: absolute; left: 7px; top: 5px; width: 5px; height: 9px; border: solid var(--ink); border-width: 0 2.5px 2.5px 0; transform: rotate(45deg); }
.open-step { background: var(--wall-deep); border: 2px dashed var(--wall-line); border-radius: 14px; padding: 10px 14px; font-size: 14.5px; line-height: 1.4; }
.open-step p { margin: 0; }
.open-step .open-step-k { margin-bottom: 4px; font-size: 11px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--ye); }
.open-step b { color: var(--ye); font: 400 19px/1 var(--display); }
.open-pro { margin: 0; text-align: center; font-size: 13.5px; color: var(--cr); }
.open-pro a { font-weight: 800; color: var(--ye); text-underline-offset: 3px; cursor: pointer; display: inline-block; padding: 6px 2px; white-space: nowrap; }
.open-honest { margin: 0; text-align: center; font-size: 12.5px; line-height: 1.45; color: var(--cr-dim); text-wrap: balance; }
.opening .cta-price { font-size: 14px; color: var(--cr); text-wrap: balance; }
.opening .cta-price b { color: var(--ye); font-weight: 800; font-size: 16px; }
@media (min-width: 640px) { .opening .open-list { font-size: 16px; } .opening .open-step { font-size: 15px; } }
@media (max-height: 720px) { .opening .tag-wrap.small .h1-big { font-size: 28px; } .open-list { font-size: 15px; gap: 6px; } }
@media (prefers-reduced-motion: reduce) { .open-tag:hover, .open-tag:focus-visible { transform: rotate(-1.5deg); } }

/* Opening page: space between the numbered steps */
.open-step p + p { margin-top: 10px; }

/* Master list (2026-10-18): /<city>/all/, every item in one table. Phone: each row is a card (item and median on top,
   category, unit and places under it, the typical range, then three tier boxes). 760px and up: a real table.
   Public view: 3 rows with values, the other names blurred in the locked card. Full view: search, chips, sort. */
body.paper.master { padding-bottom: 24px; }
.m-doc { gap: 14px; }
@media (min-width: 760px) { main.doc.m-doc { max-width: 1200px; } }
.m-gate, .m-full { display: flex; flex-direction: column; gap: 12px; }
.m-tools { display: flex; flex-direction: column; gap: 8px; }
.m-label { font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.m-search { width: 100%; min-height: 48px; padding: 10px 14px; font: 600 17px/1.2 var(--body); color: var(--ink); background: var(--card);
  border: 2px solid var(--ink); border-radius: 12px; -webkit-appearance: none; appearance: none; }
.m-search::placeholder { color: #75665A; }
.m-status { margin: 0; min-height: 20px; font-size: 14.5px; font-weight: 600; color: var(--muted); }
.m-status a { color: var(--wall); font-weight: 800; text-underline-offset: 3px; }
.m-chips { display: flex; gap: 6px; overflow-x: auto; padding: 2px 0 4px; scrollbar-width: none; }
.m-chips::-webkit-scrollbar { display: none; }
.m-chip { flex: none; min-height: 40px; padding: 8px 13px; border-radius: 999px; background: var(--card); color: var(--ink);
  border: 1.5px solid var(--line); font-size: 14px; font-weight: 700; cursor: pointer; }
.m-chip span { color: var(--muted); font-weight: 600; margin-left: 2px; }
.m-chip[aria-pressed="true"] { background: var(--wall); border-color: var(--wall); color: var(--cr); }
.m-chip[aria-pressed="true"] span { color: var(--cr-dim); }
.m-sortrow { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; }
.m-sort { min-height: 40px; padding: 6px 10px; font: 600 15px/1 var(--body); color: var(--ink); background: var(--card); border: 1.5px solid var(--line); border-radius: 10px; }
.m-empty { margin: 0; padding: 14px; background: var(--card); border: 1px solid var(--line); border-radius: 14px; color: var(--muted); }

/* One cell format for every number: body font, 15px, tabular, right-aligned, "$0.00". The median differs only by color
   and a slightly heavier weight. Missing tiers read a muted n/a. */
.m-table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.m-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.m-table tbody { display: flex; flex-direction: column; gap: 8px; }
.m-p { font: 600 15px/1.3 var(--body); font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; color: var(--ink); }
.m-med { font-weight: 800; color: var(--wall); }
.m-na { color: var(--muted); font-weight: 500; }
/* Phone: a card per item. Name, then category and unit, then label/value rows in one format. */
.m-row { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 8px; background: var(--card); border: 1px solid var(--line); border-radius: 14px; padding: 10px 12px 6px; }
.m-row > * { display: block; padding: 0; }
.m-item { flex: 1 1 100%; text-align: left; font-weight: 800; font-size: 16.5px; }
.m-cat, .m-unit { flex: none; text-align: left; font-size: 13px; color: var(--muted); font-weight: 600; margin-bottom: 4px; }
.m-cat::after { content: "\00b7"; margin-left: 8px; }
.m-row > .m-p { flex: 1 1 100%; display: flex; justify-content: space-between; align-items: baseline; gap: 12px; min-height: 30px;
  padding: 5px 0; border-top: 1px solid var(--line); }
.m-row > .m-p::before { content: attr(data-l); font: 600 13.5px/1.3 var(--body); color: var(--muted); text-align: left; }
.m-tier-destination .m-t[data-l="Chef-driven"], .m-tier-neighborhood .m-t[data-l="Neighborhood"], .m-tier-quick .m-t[data-l="Quick"] { background: #FFF3B0; }

.m-locked { min-height: 0; gap: 10px; }
.m-locked .lock-head h2 { font-size: 22px; text-wrap: balance; }
.m-lock-lede { margin: 0; font-size: 15px; color: var(--muted); }
.m-small { margin: 0; font-size: 14px; color: var(--muted); }
.m-lock-rows { list-style: none; margin: 0; padding: 0; max-height: 210px; overflow: hidden;
  -webkit-mask-image: linear-gradient(#000 45%, transparent); mask-image: linear-gradient(#000 45%, transparent); }
.m-locked.m-searching .m-lock-rows { max-height: 330px; -webkit-mask-image: none; mask-image: none; overflow-y: auto; }
.m-lr { display: grid; grid-template-columns: minmax(0, 1fr) auto 56px; align-items: center; gap: 10px; min-height: 34px; border-top: 1px solid var(--line); font-size: 14.5px; font-weight: 600; }
.m-lr span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.m-lr small { font-size: 12.5px; color: var(--muted); font-weight: 600; }
.m-lr i { display: block; height: 12px; border-radius: 6px; background: #DCCDB2; filter: blur(2.5px); }
.m-lr i.w1 { width: 70%; } .m-lr i.w2 { width: 90%; } .m-lr i.w3 { width: 55%; }
.is-granted .m-full + .card { margin-top: 4px; }

@media (min-width: 760px) {
  .m-table { display: table; background: var(--card); border: 1px solid var(--line); border-radius: 16px; border-collapse: separate; border-spacing: 0; overflow: hidden; }
  .m-table thead { position: static; width: auto; height: auto; overflow: visible; clip: auto; display: table-header-group; }
  .m-table thead th { font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); text-align: left; padding: 12px 10px 8px; vertical-align: bottom; }
  .m-table thead th.m-p { text-align: right; }
  .m-table tbody { display: table-row-group; }
  .m-row { display: table-row; background: none; border: 0; border-radius: 0; padding: 0; }
  .m-row[hidden] { display: none !important; }
  .m-row > * { display: table-cell; padding: 10px 10px; border-top: 1px solid var(--line); vertical-align: baseline; }
  .m-row > .m-p { display: table-cell; min-height: 0; text-align: right; }
  .m-row > .m-p::before, .m-cat::after { content: none; }
  .m-item { font-size: 15px; }
  .m-row > :first-child, .m-table thead th:first-child { padding-left: 14px; }
  .m-row > :last-child, .m-table thead th:last-child { padding-right: 14px; }
  .m-cat, .m-unit { font-size: 14px; margin: 0; white-space: nowrap; }
  .m-unit { min-width: 104px; }
  .m-rng { min-width: 150px; }
}

/* Links to the master list: home (under the price tags) and the category locked card */
.rack-all { margin: 18px 0 0; text-align: center; }
.rack-all a { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 8px 14px; color: var(--cr); font-weight: 800; font-size: 15px;
  text-decoration: underline; text-underline-offset: 4px; }
.rack-all i, .lock-all i { font-style: normal; }
.lock-all { align-self: center; flex: none; display: inline-flex; align-items: center; gap: 6px; min-height: 36px; color: var(--wall);
  font-size: 14px; font-weight: 800; text-underline-offset: 3px; }
.rack-head .rack-small { margin-top: 4px; font-size: 13px; color: var(--cr-dim); }

/* Details form before Messages (dlg_ask.html, 2026-10-19) */
.form.ask { gap: 14px; }
.form .opt { font-weight: 600; letter-spacing: 0; text-transform: none; color: var(--muted); }
.form input[aria-invalid=true] { border-color: var(--red); }
.ask .roles span { padding: 0 14px; font-size: 15px; }
.ask .roles .err { width: 100%; }
.ask-out { display: flex; flex-direction: column; gap: 6px; padding: 12px; border-radius: 12px; background: var(--green-bg); }
.ask-out-k { margin: 0; font-size: 14px; font-weight: 800; color: var(--green); }
.ask-out textarea { font: 16px/1.4 var(--body); color: var(--ink); padding: 10px 12px; border-radius: 10px; border: 2px solid var(--line);
  background: var(--card); width: 100%; resize: vertical; }
.ask-out-num { margin: 0; font-size: 14px; }
.sheet-foot button.cta, .sheet-foot a.cta { font-family: var(--display); }

/* Weekly tracking line under the $99 price check (2026-10-19) */
.track-line { margin-top: 14px; font-size: 15px; line-height: 1.5; text-align: center; }
.track-line a { color: inherit; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
/* Common questions in the How it works sheet of each index page (SEO, 2026-10-19) */
.faq { display: flex; flex-direction: column; gap: 10px; }
.faq p { margin: 0; font-size: 14.5px; line-height: 1.45; }
.faq b { display: block; color: var(--ink); }
