.announcement { padding:var(--space-2) var(--space-4); background:#191c17; color:#fffef8; text-align:center; font-size:var(--text-xs); }
.announcement span { color:var(--accent); margin-left:var(--space-2); }
.nav { display:flex; justify-content:space-between; align-items:center; gap:var(--space-5); padding-block:var(--space-5); border-bottom:1px solid var(--rule); }
.logo { display:inline-flex; align-items:center; gap:var(--space-2); font-size:2rem; font-weight:900; letter-spacing:-1.5px; }
.logo svg { width:38px; height:38px; }
.logo svg circle:not(:nth-of-type(2)) { fill:var(--bg); }
.nav-city { display:inline-flex; align-items:center; gap:var(--space-2); padding:var(--space-2) var(--space-4); background:var(--surface); border:1px solid var(--rule); border-radius:var(--radius-full); font-size:var(--text-sm); font-weight:700; color:var(--ink); }
.nav-city .pin { color:#c26f2c; font-size:.8em; }
.nav-actions { display:flex; align-items:center; gap:var(--space-4); }
.theme-toggle { border:0; background:none; color:var(--muted); font-size:var(--text-xs); min-width:44px; min-height:44px; padding:var(--space-2); }
.button { display:inline-flex; justify-content:center; align-items:center; gap:var(--space-6); min-height:52px; padding:var(--space-3) var(--space-6); border:0; border-radius:var(--radius-full); background:var(--accent); color:#171a14; font-weight:700; font-size:var(--text-sm); transition:transform .2s,background .2s; }
.button:hover { background:#b6ec35; transform:translateY(-2px); }
.button:active { transform:translateY(0); }
.button.dark { background:var(--ink); color:var(--bg); }
.button.dark:hover { opacity:.88; }
.button .arrow { font-size:var(--text-lg); line-height:1; }
.hero { display:grid; grid-template-columns:1.04fr 1fr; gap:var(--space-12); align-items:center; padding-block:var(--space-12) var(--space-16); }
.eyebrow { font-size:var(--text-xs); font-weight:700; display:flex; align-items:center; gap:var(--space-2); margin-bottom:var(--space-6); }
.status-dot { width:7px; height:7px; border-radius:50%; background:var(--ink); box-shadow:0 0 0 4px var(--accent); margin-inline:var(--space-1); }
.hero h1 { font-size:var(--text-hero); line-height:.98; letter-spacing:-.06em; max-width:680px; }
.hero h1 em { letter-spacing:-.045em; white-space:nowrap; }
.hero .intro { margin-top:var(--space-6); max-width:435px; color:var(--muted); }
.hero-cta { margin-top:var(--space-8); max-width:520px; }
.hero-form { background:var(--paper); border:1px solid var(--rule); border-radius:var(--radius-md); padding:var(--space-5); color-scheme:light; }
.hero-form-kicker { font-size:var(--text-xs); font-weight:700; color:var(--muted); letter-spacing:.02em; text-transform:uppercase; }
.hero-fields { display:grid; grid-template-columns:1.5fr .9fr; gap:var(--space-2); margin-top:var(--space-4); }
.hero-fields .button { grid-column:1 / -1; min-height:56px; padding-inline:var(--space-6); font-size:var(--text-base); }
.hero-form input[type="email"],.hero-form input[type="text"] { margin-top:0; }
.hero-consent { margin-top:var(--space-3); font-size:var(--text-xs); font-weight:400; line-height:1.5; color:var(--muted); }
.hero-consent input { flex:0 0 18px; margin-top:2px; }
.hero-fine { margin-top:var(--space-3); font-size:var(--text-xs); color:var(--muted); }
.privacy-inline { border:0; background:none; text-decoration:underline; font-size:var(--text-xs); color:var(--muted); padding:0; margin-left:var(--space-1); cursor:pointer; }
.hero-success { background:var(--paper); border:1px solid var(--rule); border-radius:var(--radius-md); padding:var(--space-5); color:var(--ink); }
.hero-success h3 { font-size:var(--text-base); }
.hero-success p { color:var(--muted); font-size:var(--text-sm); margin-top:var(--space-2); }
.hero-form .form-status { color:#a42e1a; margin-top:var(--space-3); font-size:var(--text-xs); }
.hero-form .form-status:empty { display:none; }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.promises { display:flex; flex-wrap:wrap; gap:var(--space-5); padding-top:var(--space-8); margin-top:var(--space-8); border-top:1px solid var(--rule); font-size:var(--text-xs); font-weight:700; }
.promises span::before { content:'✓'; margin-right:var(--space-2); }
.hero-visual { position:relative; min-width:0; align-self:stretch; }
.photo-frame { position:relative; overflow:hidden; border-radius:var(--radius-md); }
.city-photo { width:100%; height:624px; object-fit:cover; display:block; transform:scale(1.02); animation:kenburns 18s ease-in-out infinite alternate; }
.photo-overlay { position:absolute; inset:0; background:linear-gradient(180deg, transparent 40%, rgba(30,18,8,.22) 100%); pointer-events:none; }
@keyframes kenburns { from { transform:scale(1.02) translate(0,0); } to { transform:scale(1.08) translate(-1%, -1%); } }
@media (prefers-reduced-motion: reduce) { .city-photo { animation:none; transform:none; } }
.photo-tag { position:absolute; top:var(--space-5); left:var(--space-5); background:var(--paper); color:var(--ink); border-radius:var(--radius-full); padding:var(--space-2) var(--space-4); font-size:var(--text-xs); font-weight:700; display:inline-flex; align-items:center; gap:var(--space-2); box-shadow:0 6px 20px rgba(30,18,8,.15); }
.photo-tag .leaf { font-size:1em; }
.preview-card { position:absolute; bottom:var(--space-6); left:calc(-1 * var(--space-5)); width:min(380px,92%); background:#fff; color:#171917; border-radius:var(--radius-lg); padding:var(--space-5); box-shadow:0 14px 40px #111a1124; }
.preview-head { display:flex; align-items:center; gap:var(--space-2); margin-bottom:var(--space-4); border-bottom:1px solid #ebebe8; padding-bottom:var(--space-3); }
.preview-head .mini-mark { background:var(--accent); border-radius:50%; width:30px; height:30px; padding:5px; }
.preview-head strong { font-size:var(--text-sm); }
.preview-head small { margin-left:auto; font-size:var(--text-xs); color:#6a7065; }
.chat { display:flex; flex-direction:column; gap:var(--space-2); text-align:left; }
.message { max-width:86%; width:fit-content; padding:10px 14px; border-radius:19px; font:400 16px/1.35 -apple-system,BlinkMacSystemFont,'Satoshi',sans-serif; text-align:left; overflow-wrap:break-word; position:relative; }
.message.out { align-self:flex-end; background:var(--blue); color:#fff; border-bottom-right-radius:5px; }
.message.in { background:#e9e9eb; color:#171917; align-self:flex-start; border-bottom-left-radius:5px; }
.preview-note { color:#676b62; font-size:var(--text-xs); padding-top:var(--space-3); }
.typing { display:inline-flex; align-items:center; gap:4px; background:#e9e9eb; padding:12px 14px; border-radius:19px; border-bottom-left-radius:5px; align-self:flex-start; margin-top:4px; opacity:0; }
.typing.appear { opacity:1; transition:opacity .2s ease; }
.typing span { width:6px; height:6px; border-radius:50%; background:#8a8a8f; animation:bounce 1.2s infinite ease-in-out; }
.typing span:nth-child(2) { animation-delay:.15s; }
.typing span:nth-child(3) { animation-delay:.3s; }
@keyframes bounce { 0%,60%,100% { transform:translateY(0); opacity:.4; } 30% { transform:translateY(-4px); opacity:1; } }
.message { opacity:0; transform:translateY(6px); }
.message.appear { opacity:1; transform:translateY(0); transition:opacity .3s ease, transform .3s ease; }
@media (prefers-reduced-motion: reduce) { .message { opacity:1; transform:none; } .typing span { animation:none; opacity:.6; } }
[data-reveal].is-hidden { opacity:0; transform:translateY(14px); }
[data-reveal].is-visible { opacity:1; transform:translateY(0); transition:opacity .7s ease, transform .7s ease; }
@media (prefers-reduced-motion: reduce) { [data-reveal].is-hidden { opacity:1; transform:none; } }
.photo-caption { position:absolute; right:var(--space-4); top:50%; writing-mode:vertical-rl; color:#fff; font-size:var(--text-xs); text-shadow:0 1px 6px #000; }
.city-strip { border-block:1px solid var(--rule); padding-block:var(--space-5); display:flex; align-items:center; justify-content:space-between; gap:var(--space-6); }
.city-strip p { font-weight:700; font-size:var(--text-sm); }
.city-strip .area-list { display:flex; flex-wrap:wrap; gap:var(--space-6); color:var(--muted); font-size:var(--text-sm); }
.local { padding-block:var(--space-20); display:grid; grid-template-columns:1fr 1fr; gap:var(--space-16); }
.local h2,.story h2,.waitlist h2,.faq h2 { font-size:var(--text-xl); letter-spacing:-.045em; }
.local p { max-width:470px; color:var(--muted); }
.local .fine { margin-top:var(--space-5); max-width:450px; }
.local .eyebrow { margin-bottom:var(--space-4); }
.try-label { margin-top:var(--space-6); margin-bottom:var(--space-2); font-weight:700; font-size:var(--text-sm); }
.problem-options { display:flex; flex-wrap:wrap; gap:var(--space-2); }
.problem-options button { border:1px solid var(--rule); color:var(--ink); background:transparent; border-radius:var(--radius-full); padding:var(--space-3) var(--space-4); min-height:44px; font-size:var(--text-sm); }
.problem-options button[aria-pressed="true"] { background:var(--ink); color:var(--bg); border-color:var(--ink); }
.topic-preview { margin-top:var(--space-4); padding:var(--space-5); border-radius:var(--radius-md); background:var(--paper); border:1px solid var(--rule); min-height:142px; }
.topic-preview q { font-weight:700; quotes:'“' '”'; }
.topic-preview p { font-size:var(--text-sm); margin-top:var(--space-2); }
.story { background:var(--surface); border-radius:var(--radius-lg); padding:var(--space-6); display:grid; grid-template-columns:.95fr 1fr; gap:var(--space-16); align-items:center; }
.story-photo { width:100%; height:530px; object-fit:cover; object-position:50% 16%; border-radius:var(--radius-md); }
.story figcaption { font-size:var(--text-xs); margin-top:var(--space-2); color:var(--muted); }
.story-content { padding:var(--space-8) var(--space-8) var(--space-8) 0; }
.story-content>p { margin-top:var(--space-5); color:var(--muted); }
.steps { margin:var(--space-8) 0 0; padding:0; list-style:none; }
.steps li { display:grid; grid-template-columns:32px 1fr; gap:var(--space-4); border-top:1px solid var(--rule); padding-block:var(--space-4); }
.steps .num { color:var(--muted); font-size:var(--text-xs); padding-top:var(--space-1); font-variant-numeric:tabular-nums; }
.steps h3 { font-size:var(--text-base); line-height:1.4; font-weight:700; }
.steps p { font-size:var(--text-sm); color:var(--muted); margin-top:var(--space-1); }
.story .small-link { display:inline-block; margin-top:var(--space-4); border-bottom:1px solid currentColor; padding-block:var(--space-2); font-size:var(--text-sm); font-weight:700; }
.waitlist { scroll-margin-top:var(--space-6); margin-block:var(--space-20); background:#1b2018; color:#fafbf4; border-radius:var(--radius-lg); padding:var(--space-16); display:grid; grid-template-columns:1fr 1fr; gap:var(--space-16); align-items:center; }
.waitlist .eyebrow { color:var(--accent); }
.waitlist h2 { font-size:clamp(2.4rem,1.5rem + 2.7vw,4.3rem); }
.waitlist h2 em { color:var(--accent); }
.waitlist-copy>p { color:#c5cbbc; margin-top:var(--space-6); max-width:360px; }
.waitlist .region-note { margin-top:var(--space-6); font-size:var(--text-xs); color:#b8c1ac; }
.form-shell { padding:var(--space-8); background:#fafbf4; border-radius:var(--radius-md); color:#1b2018; color-scheme:light; }
.form-title { font-size:var(--text-lg); font-weight:700; line-height:1.2; }
.form-kicker { margin-top:var(--space-2); color:#626859; font-size:var(--text-xs); }
.field-row { display:grid; grid-template-columns:1.4fr .8fr; gap:var(--space-3); margin-top:var(--space-6); }
label { display:block; font-size:var(--text-sm); font-weight:700; }
input[type="email"],input[type="text"] { width:100%; border:1px solid #bfc4b6; border-radius:var(--radius-sm); padding:var(--space-3); min-height:52px; color:#181c14; background:#fff; font-size:16px; margin-top:var(--space-2); }
.consent { display:flex; align-items:flex-start; gap:var(--space-3); margin-top:var(--space-4); font-size:var(--text-xs); font-weight:400; line-height:1.6; cursor:pointer; }
.consent input { margin:4px 0 0; flex:0 0 18px; width:18px; height:18px; accent-color:#334b18; }
.form-shell .button { width:100%; margin-top:var(--space-5); }
.privacy-button { border:0; background:none; text-decoration:underline; font-size:var(--text-xs); padding:var(--space-3) 0 0; color:#626859; min-height:44px; }
.trap { position:absolute; left:-9999px; }
.form-status { font-size:var(--text-sm); margin-top:var(--space-3); color:#a42e1a; }
.form-status:empty { display:none; }
.success-icon { display:flex; align-items:center; justify-content:center; background:var(--accent); color:#1b2018; width:48px; height:48px; border-radius:50%; margin-bottom:var(--space-5); font-size:var(--text-lg); }
.success h3 { font-size:var(--text-lg); line-height:1.3; }
.success p { margin-top:var(--space-3); color:#626859; overflow-wrap:anywhere; font-size:var(--text-sm); }
.faq { display:grid; grid-template-columns:.75fr 1.25fr; gap:var(--space-16); padding-bottom:var(--space-20); }
.faq .eyebrow { margin-bottom:var(--space-4); }
.faq details { border-bottom:1px solid var(--rule); padding-block:var(--space-4); }
.faq details:first-child { border-top:1px solid var(--rule); }
.faq summary { display:flex; align-items:center; justify-content:space-between; gap:var(--space-5); list-style:none; min-height:44px; font-size:var(--text-base); font-weight:700; cursor:pointer; }
.faq summary::-webkit-details-marker { display:none; }
.faq summary::after { content:'+'; font-size:var(--text-lg); font-weight:400; }
.faq details[open] summary::after { content:'−'; }
.faq details p { margin-top:var(--space-3); color:var(--muted); font-size:var(--text-sm); max-width:600px; }
footer { padding-block:var(--space-8); border-top:1px solid var(--rule); }
.footer-top,.footer-bottom { display:flex; align-items:center; justify-content:space-between; gap:var(--space-6); }
.footer-top>p { font-size:var(--text-sm); font-weight:700; }
.footer-bottom { margin-top:var(--space-6); font-size:var(--text-xs); color:var(--muted); }
.footer-links { display:flex; gap:var(--space-5); flex-wrap:wrap; }
.footer-links a { min-height:44px; display:inline-flex; align-items:center; }
.footer-links a:hover { color:var(--ink); text-decoration:underline; }
dialog { max-width:min(480px,calc(100% - 40px)); border:1px solid var(--rule); border-radius:var(--radius-md); background:var(--paper); color:var(--ink); padding:var(--space-8); }
dialog::backdrop { background:#11180fcc; backdrop-filter:blur(4px); }
dialog h2 { font-size:var(--text-lg); margin-bottom:var(--space-4); }
dialog p { font-size:var(--text-sm); color:var(--muted); margin-top:var(--space-3); }
dialog .button { margin-top:var(--space-6); }
@media(min-width:1600px) { .city-photo { height:660px; } }
@media(max-width:1120px) {
  .wrap { width:calc(100% - 64px); }
  .hero { gap:var(--space-8); }
  .hero h1 { font-size:clamp(3.5rem,6.5vw,5.3rem); }
  .city-photo { height:620px; }
  .preview-card { left:calc(-1 * var(--space-3)); width:94%; }
  .story { gap:var(--space-8); }
  .story-content { padding-right:var(--space-3); }
  .waitlist { padding:var(--space-10); gap:var(--space-8); }
  .field-row { grid-template-columns:1fr; }
}
@media(max-width:760px) {
  .wrap { width:calc(100% - 40px); }
  .announcement { font-size:var(--text-xs); }
  .announcement span { display:none; }
  .nav { flex-wrap:wrap; padding-block:var(--space-3); gap:var(--space-2); }
  .nav .logo { font-size:1.8rem; }
  .nav .logo svg { width:32px; height:32px; }
  .nav-actions { gap:var(--space-1); }
  .nav-actions .button { min-height:44px; padding:var(--space-2) var(--space-4); }
  .nav-city { display:none; }
  .hero { grid-template-columns:1fr; gap:var(--space-10); padding-block:var(--space-8) var(--space-8); }
  .hero h1 { font-size:clamp(3.15rem,10.7vw,5rem); letter-spacing:-.058em; }
  .eyebrow { margin-bottom:var(--space-5); }
  .hero .intro { font-size:var(--text-base); margin-top:var(--space-5); max-width:520px; }
  .hero-cta { margin-top:var(--space-6); max-width:none; }
  .hero-form { padding:var(--space-4); }
  .hero-fields { grid-template-columns:1fr; }
  .hero-fields .button { width:100%; }
  .hero-fine { text-align:left; }
  .promises { margin-top:var(--space-5); padding-top:var(--space-5); gap:var(--space-3); justify-content:space-between; }
  .city-photo { height:510px; }
  .hero-visual { margin-bottom:var(--space-2); }
  .preview-card { left:var(--space-4); bottom:var(--space-4); width:calc(100% - 32px); max-width:400px; padding:var(--space-4); }
  .preview-head { margin-bottom:var(--space-3); }
  .photo-caption { display:none; }
  .city-strip { display:block; }
  .city-strip .area-list { gap:var(--space-2) var(--space-4); margin-top:var(--space-3); font-size:var(--text-xs); }
  .local { grid-template-columns:1fr; gap:var(--space-6); padding-block:var(--space-12); }
  .local h2,.story h2,.faq h2 { font-size:clamp(2rem,8vw,2.8rem); }
  .local .fine { margin-top:var(--space-4); }
  .story { grid-template-columns:1fr; padding:var(--space-4); gap:var(--space-5); }
  .story-photo { height:330px; object-position:50% 16%; }
  .story-content { padding:var(--space-4) var(--space-2); }
  .steps { margin-top:var(--space-6); }
  .waitlist { grid-template-columns:1fr; padding:var(--space-6); gap:var(--space-8); margin-block:var(--space-12); }
  .waitlist h2 { font-size:clamp(2.4rem,8vw,3.2rem); }
  .waitlist-copy>p { margin-top:var(--space-4); }
  .form-shell { padding:var(--space-5); }
  .form-title { font-size:var(--text-lg); }
  .field-row { margin-top:var(--space-5); }
  .faq { grid-template-columns:1fr; gap:var(--space-6); padding-bottom:var(--space-12); }
  .footer-top { align-items:flex-start; }
  .footer-top>p { text-align:right; max-width:180px; }
  .footer-bottom { flex-direction:column; align-items:flex-start; gap:var(--space-2); }
}
@media(max-width:360px) {
  .wrap { width:calc(100% - 32px); }
  .hero h1 { font-size:3rem; }
  .nav-actions .theme-toggle { padding:var(--space-1); }
  .waitlist { padding:var(--space-4); }
  .promises { font-size:var(--text-xs); gap:var(--space-2); }
}
