/* NeoRangeR teaser and waitlist pages (owner 2026-10-25): the approved homepage look, one map sheet with a collar.
   Saira Extra Condensed for big titles (owner pick, A), Atkinson Hyperlegible Next for everything else. */
@font-face { font-family: 'Atkinson Hyperlegible Next'; font-style: normal; font-display: swap; font-weight: 200 800; src: url(/fonts/atkinson-hyperlegible-next-latin-wght-normal.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Atkinson Hyperlegible Next'; font-style: normal; font-display: swap; font-weight: 200 800; src: url(/fonts/atkinson-hyperlegible-next-latin-ext-wght-normal.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Saira Extra Condensed'; font-style: normal; font-display: swap; font-weight: 800; src: url(/fonts/saira-extra-condensed-latin-800-normal.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
:root {
  --paper: #f1ede1; --paper-2: #e9e4d4; --ink: #16241a; --muted: #4a5846; --rule: #16241a; --hair: #cfc7b0;
  --contour: #c49a6c; --contour-i: #9a6a3a;
  --forest: #1b3a29; --forest-2: #12271c; --on-forest: #e9f0de; --on-forest-muted: #b8c7b4;
  --lime: #c5f43d; --heard: #6f9c10; --card: #fbfaf5;
  --then: #1b3a29; --btn-bg: #1b3a29; --btn-fg: #c5f43d; --num: #1b3a29;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) {
  --paper: #121a15; --paper-2: #18231c; --ink: #e6ede2; --muted: #a9b8a6; --rule: #c9d4c4; --hair: #2c3b31;
  --contour: #4c5a3e; --contour-i: #6d7a52; --card: #1a261f; --heard: #c5f43d; --then: #b5dc6a; --btn-bg: #c5f43d; --btn-fg: #101820; --num: #c5f43d; color-scheme: dark; } }
:root[data-theme="dark"] {
  --paper: #121a15; --paper-2: #18231c; --ink: #e6ede2; --muted: #a9b8a6; --rule: #c9d4c4; --hair: #2c3b31;
  --contour: #4c5a3e; --contour-i: #6d7a52; --card: #1a261f; --heard: #c5f43d; --then: #b5dc6a; --btn-bg: #c5f43d; --btn-fg: #101820; --num: #c5f43d; color-scheme: dark; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 18px/1.55 "Atkinson Hyperlegible Next", system-ui, sans-serif; -webkit-font-smoothing: antialiased; }
::selection { background: var(--lime); color: #101820; }
a { color: inherit; text-underline-offset: 3px; }
:focus-visible { outline: 3px solid var(--heard); outline-offset: 3px; border-radius: 4px; }
.wrap { max-width: 1240px; margin: 0 auto; padding-inline: 20px; }
h1, h2, h3 { margin: 0; text-wrap: balance; }
p { margin: 0; }
.display { font-family: "Saira Extra Condensed", sans-serif; font-weight: 800; text-transform: uppercase; line-height: .9; letter-spacing: -.005em; }
h2.display { font-size: clamp(2.6rem, 6vw, 4.4rem); }
.lede { font-size: clamp(1.05rem, 1.6vw, 1.25rem); color: var(--muted); max-width: 58ch; }
.btn { white-space: nowrap; display: inline-flex; align-items: center; justify-content: center; min-height: 56px; padding: 0 24px; border-radius: 10px; font-weight: 800; font-size: 1.02rem; text-decoration: none; border: 2px solid transparent; cursor: pointer; font-family: inherit; transition: transform .18s cubic-bezier(.2,.8,.2,1); }
.btn:hover { transform: translateY(-2px); }
.btn.primary { background: var(--btn-bg); color: var(--btn-fg); }
.example { font-size: .82rem; color: var(--muted); }
.mark { display: inline-block; vertical-align: middle; flex: none; }

/* The page is one map sheet with a collar, as on the full site */
.sheet { position: relative; border-inline: 2px solid var(--rule); margin-inline: 14px; }
.contours { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.hero .contours { -webkit-mask-image: linear-gradient(90deg, rgba(0,0,0,.12) 0 44%, #000 62%); mask-image: linear-gradient(90deg, rgba(0,0,0,.12) 0 44%, #000 62%); }
.contours path.c { fill: none; stroke: var(--contour); stroke-width: 1.1; opacity: .55; }
.contours path.i { fill: none; stroke: var(--contour-i); stroke-width: 2.2; opacity: .6; }

header.site { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 10; background: var(--paper); margin: 14px 14px 0; border: 2px solid var(--rule); }
header.site .wrap { display: flex; align-items: center; gap: 20px; min-height: 70px; }
header.site .brand { margin-right: auto; display: flex; }
header.site .soon { font-family: "Saira Extra Condensed", sans-serif; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; font-size: .95rem; color: var(--muted); }
header.site .btn { min-height: 42px; padding: 0 16px; font-size: .95rem; }

.hero { overflow: hidden; }
.hero .wrap { position: relative; display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: 40px; padding-block: 64px 60px; align-items: center; }
.hero h1 { display: grid; gap: 14px; }
.hero h1 .big { font-size: clamp(3.4rem, 7.4vw, 6rem); }
.hero h1 .then { font-family: "Atkinson Hyperlegible Next", sans-serif; font-weight: 800; font-size: clamp(1.5rem, 2.6vw, 2.15rem); line-height: 1.15; color: var(--then); text-transform: none; letter-spacing: 0; }
.hero .lede { margin-top: 20px; }
.hero .ctas { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; margin-top: 30px; }
.hero .fine { margin-top: 14px; font-size: .95rem; color: var(--muted); }
.art { display: grid; grid-template-columns: 270px minmax(260px, 1fr); gap: 22px; align-items: center; }
.phone { position: relative; width: 270px; height: 560px; border-radius: 42px; background: #0e1410; padding: 12px; box-shadow: 0 0 0 1.5px var(--hair), 0 34px 60px -30px rgba(0,0,0,.6); }
.phone .screen { width: 100%; height: 100%; border-radius: 31px; overflow: hidden; background: #e8eedf; }
.phone .screen svg { width: 100%; height: 100%; display: block; }
.side { display: grid; gap: 18px; }
.tag { position: relative; padding: 48px 18px 12px; background: var(--card); border: 1.5px solid var(--hair); box-shadow: 0 24px 40px -26px rgba(22,36,26,.5); clip-path: polygon(14% 0, 86% 0, 100% 8%, 100% 100%, 0 100%, 0 8%); color: var(--ink); }
.tag .hole { position: absolute; top: 13px; left: 50%; width: 24px; height: 24px; margin-left: -12px; border-radius: 50%; background: var(--paper); box-shadow: inset 0 0 0 5px #b8b09a; }
.tag .head { display: flex; justify-content: space-between; gap: 8px; font-family: "Saira Extra Condensed", sans-serif; font-weight: 800; font-size: 1.02rem; letter-spacing: .05em; border-bottom: 2.5px solid var(--ink); padding-bottom: 6px; }
.tag .row { display: grid; grid-template-columns: 30px 1fr auto; align-items: center; gap: 8px; padding: 6px 0; border-bottom: 1.5px dashed var(--hair); font-size: .93rem; }
.tag .row:last-child { border-bottom: 0; }
.tag .row span { color: var(--muted); font-variant-numeric: tabular-nums; font-size: .86rem; text-align: right; }
.tag .row span b { color: var(--ink); display: block; font-size: .93rem; }
.dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--heard); margin-right: 4px; vertical-align: 1px; }
.neo-quote { padding: 14px 16px; background: var(--forest-2); color: var(--on-forest); border-radius: 14px; font-size: .95rem; line-height: 1.4; }
.neo-quote b { color: var(--lime); display: block; font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; margin-bottom: 3px; }

/* Three points */
.points { border-top: 2px solid var(--rule); }
.points ol { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.points li { padding: 34px 28px 38px; display: grid; gap: 10px; align-content: start; }
.points li + li { border-left: 1.5px solid var(--hair); }
.points .n { font-family: "Saira Extra Condensed", sans-serif; font-weight: 800; font-size: 1.1rem; letter-spacing: .08em; color: var(--num); }
.points h3 { font-family: "Saira Extra Condensed", sans-serif; font-weight: 800; font-size: 1.9rem; text-transform: uppercase; line-height: 1; }
.points p { color: var(--muted); max-width: 36ch; }

/* Waitlist */
.close { background: var(--forest-2); color: var(--on-forest); margin-inline: 14px; border-inline: 2px solid var(--rule); border-top: 2px solid var(--rule); }
.close .wrap { padding-block: 84px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; align-items: center; }
.close h2 { color: #fff; }
.close .lede { color: var(--on-forest-muted); margin-top: 16px; }
.waitlist { display: grid; gap: 14px; width: 100%; max-width: 560px; }
.waitlist > label:first-child { font-weight: 800; color: var(--on-forest); }
.wl-row { display: flex; gap: 10px; flex-wrap: wrap; }
.wl-row input { flex: 1 1 240px; min-width: 0; min-height: 56px; padding: 0 16px; border-radius: 10px; border: 2px solid var(--on-forest-muted); background: var(--forest); color: var(--on-forest); font: inherit; font-size: 1.05rem; }
.wl-row input::placeholder { color: var(--on-forest-muted); }
.wl-row input:focus-visible, .wl-check input:focus-visible { outline: 3px solid var(--lime); outline-offset: 2px; }
.close .btn.primary { background: var(--lime); color: #101820; }
.wl-check { display: flex; align-items: center; gap: 10px; color: var(--on-forest); }
.wl-check input { width: 20px; height: 20px; accent-color: var(--lime); flex: none; }
.wl-fine { color: var(--on-forest-muted); font-size: .92rem; }
.wl-fine a { color: var(--on-forest); }

/* Safety and footer */
.safety { margin-inline: 14px; border-inline: 2px solid var(--rule); border-top: 2px solid var(--rule); }
.safety .wrap { padding-block: 26px; color: var(--muted); font-size: .97rem; max-width: 1240px; }
.safety b { color: var(--ink); }
footer.site { margin: 0 14px 14px; border: 2px solid var(--rule); }
footer.site .wrap { padding-block: 26px; display: grid; gap: 10px; font-size: .88rem; color: var(--muted); }
footer.site nav { display: flex; flex-wrap: wrap; gap: 8px 20px; font-weight: 700; color: var(--ink); }

@media (min-width: 981px) and (max-width: 1200px) {
  .hero .wrap { grid-template-columns: 1fr; gap: 48px; }
  .art { grid-template-columns: 270px minmax(0, 340px); justify-content: center; }
  .hero .contours { -webkit-mask-image: linear-gradient(180deg, rgba(0,0,0,.12) 0 40%, #000 60%); mask-image: linear-gradient(180deg, rgba(0,0,0,.12) 0 40%, #000 60%); }
}
@media (max-width: 980px) {
  .hero .contours { -webkit-mask-image: linear-gradient(180deg, rgba(0,0,0,.12) 0 52%, #000 70%); mask-image: linear-gradient(180deg, rgba(0,0,0,.12) 0 52%, #000 70%); }
  .hero .wrap, .close .wrap { grid-template-columns: 1fr; }
  .art { grid-template-columns: 1fr; justify-items: center; max-width: 420px; width: 100%; justify-self: center; }
  .side { width: 100%; }
  .points ol { grid-template-columns: 1fr; }
  .points li + li { border-left: 0; border-top: 1.5px solid var(--hair); }
  .points li { padding: 28px 4px; }
  header.site .soon { display: none; }
}
@media (max-width: 560px) {
  .sheet, .close, .safety, header.site, footer.site { margin-inline: 6px; }
  header.site { margin-top: 6px; }
  .phone { width: 250px; height: 520px; }
  header.site .btn { padding: 0 12px; font-size: .88rem; }
  .close .wrap { padding-block: 60px; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } html { scroll-behavior: auto; } }

/* Waitlist form extras: the bot trap stays off screen; Turnstile shows only if it needs a tap. */
.hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.cf-turnstile:empty { display: none; }
.wl-fine a { color: var(--on-forest); }

/* Small pages: check your email, confirm, done */
.note-page { min-height: 52vh; }
.note-page .wrap { padding-block: 72px 88px; display: grid; gap: 18px; justify-items: start; }
.note-page .lede { color: var(--muted); }
.note-page .big-title { font-size: clamp(2.6rem, 6vw, 4.4rem); }
.note-page form { margin-top: 8px; }
.note-page .btn.ghost { border-color: var(--ink); color: var(--ink); background: var(--paper); }

/* Documents (terms, privacy, SMS, support) stay on the light paper in every theme (owner 2026-10-25). */
body.light-doc {
  --paper: #f1ede1; --paper-2: #e9e4d4; --ink: #16241a; --muted: #4a5846; --rule: #16241a; --hair: #cfc7b0;
  --contour: #c49a6c; --contour-i: #9a6a3a; --card: #fbfaf5; --heard: #6f9c10; --then: #1b3a29; --btn-bg: #1b3a29; --btn-fg: #c5f43d;
  color-scheme: light; background: var(--paper); color: var(--ink);
}
html:has(body.light-doc) { background: #f1ede1; }

/* Header badge: forest with a lime R on light paper, lime with a forest R on dark, so it never sinks into the page (owner 2026-10-25). */
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) body:not(.light-doc) header.site .brand svg > g + g polygon { fill: #c5f43d; stroke: #c5f43d; }
  :root:not([data-theme="light"]) body:not(.light-doc) header.site .brand svg > g + g path { fill: #12271c; } }
:root[data-theme="dark"] body:not(.light-doc) header.site .brand svg > g + g polygon { fill: #c5f43d; stroke: #c5f43d; }
:root[data-theme="dark"] body:not(.light-doc) header.site .brand svg > g + g path { fill: #12271c; }

/* Documents keep the light paper but always get the dark forest banner, like the confirmation email (owner 2026-10-25). */
body.light-doc header.site { --paper: #12271c; --ink: #e9f0de; --muted: #b8c7b4; --rule: #16241a; --btn-bg: #c5f43d; --btn-fg: #101820; color: var(--ink); color-scheme: dark; }
body.light-doc header.site .brand svg > g + g polygon { fill: #c5f43d; stroke: #c5f43d; }
body.light-doc header.site .brand svg > g + g path { fill: #12271c; }

/* Documents: one reading column. */
.doc .wrap { padding-block: 56px 96px; }
.prose { max-width: 72ch; min-width: 0; }
.prose .doc-title { font-size: clamp(2.6rem, 6vw, 4.2rem); }
.prose .effective { margin: 14px 0 26px; padding-bottom: 14px; border-bottom: 2px solid var(--rule); font-family: "Saira Extra Condensed", sans-serif; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.prose h2 { font-family: "Saira Extra Condensed", sans-serif; font-weight: 800; font-size: 1.75rem; line-height: 1.05; text-transform: uppercase; margin: 44px 0 12px; padding-top: 16px; border-top: 1.5px solid var(--hair); scroll-margin-top: 110px; }
.prose h3 { font-size: 1.1rem; margin: 24px 0 6px; }
.prose p, .prose ul, .prose ol { margin: 0 0 14px; line-height: 1.65; }
.prose ul, .prose ol { padding-left: 22px; }
.prose li + li { margin-top: 6px; }
.prose a { color: var(--ink); text-decoration-thickness: 1.5px; text-underline-offset: 3px; }
.prose .muted { color: var(--muted); }
.prose .notice { margin: 22px 0; padding: 16px 18px; background: var(--card); border: 2px solid var(--rule); border-left-width: 7px; }
.prose .notice p:last-child, .prose .notice ul:last-child { margin-bottom: 0; }
.prose .table-wrap { overflow-x: auto; margin: 0 0 16px; border-top: 2px solid var(--rule); }
.prose table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.prose th, .prose td { text-align: left; vertical-align: top; padding: 10px 12px 10px 0; border-bottom: 1.5px solid var(--hair); }
.prose th { font-family: "Saira Extra Condensed", sans-serif; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; font-size: 1rem; }
@media (max-width: 980px) {
  .doc .wrap { padding-block: 40px 72px; }
}

/* The SMS page's picture of the Trip Watch opt-in screen (what carrier reviewers check): unchanged from the old site. */
.optin-mock { margin: 20px 0 24px; display: grid; justify-items: center; gap: 10px; }
.optin-phone { width: min(100%, 360px); box-sizing: border-box; background: #fbfaf5; color: #13241a; border: 1px solid #c9c4ae; border-radius: 28px; padding: 28px 22px; box-shadow: 0 8px 24px rgba(0, 0, 0, .18); }
.optin-phone p { margin: 0 0 10px; }
.optin-brand { font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #3e5c0a; }
.optin-title { font-size: 21px; font-weight: 700; line-height: 1.2; }
.optin-sub { font-size: 15px; color: #4e5d52; }
.optin-label { font-size: 13px; font-weight: 700; margin-top: 16px !important; margin-bottom: 4px !important; }
.optin-field { border: 1.5px solid #8f8a74; border-radius: 10px; padding: 10px 12px; font-size: 16px; background: #fff; }
.optin-check { display: flex; gap: 10px; font-size: 13px; line-height: 1.45; margin-top: 14px !important; }
.optin-check .box { flex: none; width: 20px; height: 20px; border: 2px solid #13281d; border-radius: 4px; background: #fff; margin-top: 1px; }
.optin-button { background: #13281d; color: #c5f43d; text-align: center; font-weight: 700; border-radius: 12px; padding: 12px; margin-top: 16px !important; }
.optin-alt { text-align: center; font-size: 13px; color: #4e5d52; text-decoration: underline; margin-bottom: 0 !important; }
/* Join a group (owner 2026-10-25): the two ways in, then the key note and the warning. */
.note-page-stack { display: grid; gap: 18px; justify-items: start; }
.note-page-stack[hidden] { display: none; }
.join-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.note-page .fine { color: var(--muted); font-size: .95rem; max-width: 60ch; }
.note-page .warn { margin: 0; max-width: 60ch; padding: 14px 18px; border: 2px solid var(--rule); border-left-width: 8px; background: var(--card); font-weight: 700; }
.optin-mock figcaption { font-size: 14px; color: var(--muted); text-align: center; max-width: 46ch; }
