@font-face{ font-family:'CaslonDisplay'; src:url(fonts/caslon.ttf?v=2340c49718) format('truetype'); font-weight:400 700; font-display:swap; }

:root{
  --bg:#000000; --bg-raised:#0A0908; --card:#121110; --line:#2B2723;
  --ink:#F6F1EA; --ink-dim:#ABA59C;
  --accent:#C45000; --accent-light:#F2792B; --accent-deep:#8A3A00; --accent-ink:#FFFFFF; --btn-from:#C45000; --btn-to:#A94300; --glow:196,80,0;
  --forest:#52B48A; --forest-light:#6FCBA2;
  --radius:20px; --max:1140px;
  --serif:'CaslonDisplay','Iowan Old Style',Georgia,serif;
  --sans:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
}
*{ box-sizing:border-box; }
html{ color-scheme:dark light; }
@media (prefers-reduced-motion:no-preference){ html{ scroll-behavior:smooth; } }
body{ margin:0; background:radial-gradient(ellipse 1200px 700px at 75% -10%, rgba(var(--glow),.08), transparent 60%), var(--bg); color:var(--ink); font-family:var(--sans); line-height:1.55; -webkit-font-smoothing:antialiased; }
h1,h2{ font-family:var(--serif); font-weight:400; margin:0; line-height:1.1; letter-spacing:-0.005em; color:var(--ink); }
h3{ font-family:var(--serif); font-weight:400; margin:0; line-height:1.1; letter-spacing:-0.005em; color:var(--ink); }
p{ margin:0; color:var(--ink-dim); }
a{ color:inherit; }
svg{ display:block; }
.wrap{ max-width:var(--max); margin:0 auto; padding:0 24px; }
::selection{ background:var(--accent); color:var(--accent-ink); }
:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; }
section{ scroll-margin-top:80px; }

header{ position:sticky; top:0; z-index:30; background:var(--header-bg); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); border-bottom:1px solid var(--line); }
.nav{ display:flex; align-items:center; justify-content:space-between; padding:18px 24px; }
.brand{ display:flex; align-items:center; gap:9px; text-decoration:none; font-family:var(--serif); font-weight:400; font-size:1.28rem; color:var(--ink); letter-spacing:.01em; }
.brand svg{ width:40px; height:40px; flex-shrink:0; }
.nav-cta{ font-family:var(--sans); font-weight:600; font-size:.9rem; text-decoration:none; padding:10px 18px; border:1px solid var(--line); border-radius:999px; color:var(--ink); transition:border-color .2s,color .2s; white-space:nowrap; }
.nav-menu{ display:flex; align-items:center; gap:30px; }
.nav-menu a{ color:var(--ink-dim); text-decoration:none; font-size:.92rem; transition:color .2s ease; white-space:nowrap; }
.nav-menu a.active{ color:var(--accent-light); }
.nav-menu a:hover{ color:var(--ink); }
.nav-toggle{ display:none; background:none; border:none; cursor:pointer; padding:8px; flex-direction:column; gap:5px; z-index:60; }
.nav-toggle span{ width:22px; height:2px; background:var(--ink); transition:transform .25s ease, opacity .25s ease; display:block; }
.nav-toggle.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-toggle.open span:nth-child(2){ opacity:0; }
.nav-toggle.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
/* The menu becomes a slide-out panel below 1480px: with eleven links (Partners and Sponsors each have a page) it no longer fits in one row on a laptop. */
@media (max-width:1480px){
  .nav-toggle{ display:flex; }
  .nav-menu{ position:fixed; top:0; right:0; height:100vh; width:min(78vw,320px); background:var(--bg-raised); border-left:1px solid var(--line); flex-direction:column; align-items:flex-start; padding:90px 30px 30px; gap:26px; transform:translateX(100%); transition:transform .3s ease; z-index:55; }
  .nav-menu.open{ transform:translateX(0); }
  .nav-menu a{ font-size:1.15rem; }
  .nav-menu a.nav-cta{ margin-top:8px; }
}
.nav-cta:hover{ border-color:var(--accent); color:var(--accent-light); }

form.waitlist{ display:flex; gap:10px; max-width:460px; flex-wrap:wrap; }
.waitlist input{ flex:1 1 200px; background:var(--card); border:1px solid var(--line); color:var(--ink); padding:14px 16px; border-radius:12px; font-size:1rem; font-family:inherit; }
.waitlist input::placeholder{ color:var(--ink-dim); }
.btn{ background:linear-gradient(135deg,var(--btn-from),var(--btn-to)); color:var(--accent-ink); border:none; padding:14px 24px; border-radius:12px; font-weight:700; font-size:1rem; cursor:pointer; font-family:inherit; transition:filter .2s, box-shadow .2s; white-space:nowrap; box-shadow:0 4px 24px rgba(var(--glow),.30); }
.btn:hover{ filter:brightness(1.08); box-shadow:0 6px 30px rgba(var(--glow),.40); }
.confirm{ display:inline-flex; align-items:center; gap:10px; max-width:460px; background:var(--card); border:1px solid var(--forest-light); color:var(--ink); padding:15px 18px; border-radius:12px; font-size:.98rem; }
.confirm svg{ width:20px; height:20px; color:var(--forest-light); flex-shrink:0; }
.field-error{ color:var(--accent); font-size:.85rem; margin-top:8px; }
.hero-note{ margin-top:12px; font-size:.86rem; color:var(--ink-dim); }

.hero{ padding:60px 0 0; }
.hero-title{ font-size:clamp(3.1rem,6vw + 1rem,5.6rem); max-width:15ch; }
.hero-lower{ display:grid; grid-template-columns:1.15fr .85fr; gap:44px; align-items:end; margin-top:40px; }
.hero-sub{ font-size:1.14rem; max-width:40ch; }
.hero-stat{ margin-top:20px; padding:14px 18px; background:var(--card); border:1px solid var(--accent-deep); border-radius:12px; font-size:.95rem; color:var(--ink-dim); display:inline-block; }
.hero-stat strong{ font-family:var(--serif); font-size:1.3rem; color:var(--accent-light); margin-right:4px; }
.hero .form-box{ margin-top:28px; }
.hero-quote{ display:flex; align-items:center; padding:20px 4px; }
.hero-quote p{ font-family:var(--serif); font-weight:400; font-style:italic; font-size:clamp(1.3rem,1.6vw + 1rem,1.7rem); line-height:1.5; color:var(--ink); }




.gallery{ padding:96px 0 20px; }
.gallery h2{ font-size:clamp(1.9rem,2vw + 1.3rem,2.6rem); max-width:18ch; }
.gallery .lede{ margin-top:16px; max-width:52ch; font-size:1.05rem; }
.grow{ display:grid; grid-template-columns:1fr 1fr; gap:52px; align-items:center; padding:76px 0; border-top:1px solid var(--line); transition:opacity .7s ease, transform .7s ease; }
.js .grow:not(.is-visible){ opacity:0; transform:translateY(26px); }
.grow.is-visible{ opacity:1; transform:none; }
.grow:nth-child(even){ grid-template-columns:1fr 1.05fr; }
.grow:nth-child(even) .scene{ order:2; }
.photo-frame{ position:relative; aspect-ratio:5/4; border-radius:var(--radius); overflow:hidden; background:var(--bg-raised); border:1px solid var(--line); transition:border-color .3s ease; box-shadow:0 20px 50px rgba(0,0,0,.35); }
.grow-cta{ display:inline-block; margin-top:16px; color:var(--accent-light); font-weight:600; font-size:.92rem; text-decoration:none; border-bottom:1px solid var(--accent-deep); padding-bottom:2px; }
.grow-cta:hover{ border-color:var(--accent-light); }
.photo-frame:hover{ border-color:var(--accent-deep); }
.photo-bg{ position:absolute; inset:-6%; width:112%; height:112%; background-size:cover; background-position:center; animation:kenburns 22s ease-in-out infinite alternate; }
.photo-frame::after{ content:""; position:absolute; inset:0; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100' height='100' filter='url(%23n)'/%3E%3C/svg%3E"); opacity:.06; mix-blend-mode:overlay; pointer-events:none; }
@keyframes kenburns{ from{ transform:scale(1) translate(0,0); } to{ transform:scale(1.09) translate(-1.5%,-1.5%); } }
@media (prefers-reduced-motion:reduce){ .photo-bg{ animation:none; } }
.flame{ animation:flicker 2.4s ease-in-out infinite; transform-origin:50% 100%; }
@keyframes flicker{ 0%,100%{ transform:scaleY(1) scaleX(1); } 50%{ transform:scaleY(1.04) scaleX(.98); } }
@media (prefers-reduced-motion:reduce){ .flame{ animation:none; } }
.grow-text h3{ font-size:1.55rem; font-weight:400; }
.grow-text p{ margin-top:12px; font-size:1.02rem; max-width:36ch; }

.how{ padding:86px 0 96px; border-top:1px solid var(--line); }
.how h2{ font-size:clamp(1.9rem,2vw + 1.3rem,2.6rem); max-width:18ch; }
.how .lede{ margin-top:16px; max-width:56ch; font-size:1.06rem; }
.steps{ margin-top:50px; display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.step{ background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:30px 26px; transition:transform .25s ease, border-color .25s ease; }
.step:hover{ transform:translateY(-4px); border-color:var(--accent-deep); }
.step-num{ width:46px; height:46px; border-radius:50%; border:1px solid var(--accent); display:flex; align-items:center; justify-content:center; font-family:var(--serif); font-size:1.4rem; margin-bottom:18px; }
.step-num span{ color:var(--accent-text); }
.step h3{ font-size:1.24rem; font-weight:400; }
.step p{ margin-top:11px; font-size:.98rem; max-width:32ch; }

.trust{ padding:84px 0; background:var(--bg-raised); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.trust .wrap{ display:grid; grid-template-columns:auto 1fr; gap:26px; align-items:start; max-width:740px; }
.trust-icon{ width:44px; height:44px; color:var(--forest-light); flex-shrink:0; }
.trust h2{ font-size:clamp(1.5rem,1.4vw + 1.1rem,1.85rem); }
.trust p{ margin-top:13px; max-width:58ch; font-size:1.03rem; }

.differentiate{ padding:90px 0; border-top:1px solid var(--line); }
.differentiate h2{ max-width:18ch; margin-bottom:44px; }
.table-scroll{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
.compare-table{ width:100%; min-width:560px; border-collapse:collapse; }
.compare-table th, .compare-table td{ padding:16px 18px; text-align:left; border-bottom:1px solid var(--line); font-size:.95rem; }
.compare-table thead th{ font-family:var(--serif); font-weight:400; font-size:1.05rem; color:var(--ink); }
.compare-table tbody td:first-child{ color:var(--ink); font-weight:600; font-size:.9rem; }
.compare-table td{ color:var(--ink-dim); }
.compare-table .no{ color:var(--ink-dim); opacity:.5; }
.compare-table .yes{ color:var(--forest-light); font-weight:700; font-size:1.1rem; }
.compare-table .partial{ color:var(--ink-dim); font-style:italic; }
.compare-table th.hl, .compare-table td.hl{ background:rgba(var(--glow),.10); border-bottom-color:var(--accent-deep); }
.compare-table thead th.hl{ color:var(--accent-light); }
@media (max-width:820px){ .diff-grid{ grid-template-columns:1fr; } }

.faq{ padding:90px 0; border-top:1px solid var(--line); }
.faq h2{ max-width:16ch; margin-bottom:36px; }
.faq-list{ max-width:760px; }
.faq-list details{ border-bottom:1px solid var(--line); padding:20px 0; }
.faq-list summary{ font-family:var(--serif); font-size:1.1rem; color:var(--ink); cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:16px; }
.faq-list summary::-webkit-details-marker{ display:none; }
.faq-list summary::after{ content:"+"; font-size:1.4rem; color:var(--accent); flex-shrink:0; transition:transform .2s ease; }
.faq-list details[open] summary::after{ transform:rotate(45deg); }
.faq-list p{ margin-top:14px; font-size:.98rem; max-width:60ch; }



.final-cta{ padding:92px 0 112px; border-top:1px solid var(--line); }
.cta-caption{ font-family:var(--serif); font-style:italic; font-size:1.05rem; color:var(--accent-light); margin:0 0 14px; }
.final-cta h2{ font-size:clamp(2rem,3vw + 1.2rem,3rem); max-width:15ch; }
.final-cta .lede{ margin-top:16px; max-width:50ch; font-size:1.06rem; }
.final-cta .form-box{ margin-top:30px; max-width:600px; }
.final-cta form.waitlist{ max-width:600px; }

footer{ border-top:1px solid var(--line); padding:36px 0; }
footer .wrap{ display:flex; flex-direction:column; align-items:center; text-align:center; gap:10px; }
footer .brand{ font-size:1.15rem; }
footer p{ font-size:.82rem; }
.footer-link{ color:var(--ink-dim); text-decoration:none; transition:color .2s ease; }
.footer-link:hover{ color:var(--accent-light); }
button.footer-link{ background:none; border:0; font:inherit; cursor:pointer; padding:0; }


@media (max-width:860px){
  .hero-lower{ grid-template-columns:1fr; }
  .hero-art{ margin-top:24px; aspect-ratio:4/3; }
  .grow, .grow:nth-child(even){ grid-template-columns:1fr; gap:20px; padding:32px 0; }
  .grow:nth-child(even) .scene{ order:0; }
  .steps{ grid-template-columns:1fr; }
  .trust .wrap{ grid-template-columns:1fr; }
}

.subpage{ padding:56px 0 90px; max-width:820px; margin:0 auto; }
.subpage h1{ font-family:var(--serif); font-weight:400; font-size:clamp(2.1rem,3.5vw+1.2rem,3rem); color:var(--accent-light); margin:0 0 8px; }
.subpage h2{ font-family:var(--serif); font-weight:400; font-size:1.5rem; color:var(--ink); margin:44px 0 14px; }
.subpage h3{ font-family:var(--serif); font-weight:400; font-size:1.2rem; color:var(--ink); margin:28px 0 10px; }
.subpage .lede{ font-size:1.1rem; color:var(--ink-dim); max-width:60ch; margin-bottom:8px; }
.subpage p, .subpage li{ color:var(--ink-dim); font-size:.98rem; margin:0 0 14px; max-width:68ch; }
.subpage ul{ padding-left:20px; }
.subpage strong{ color:var(--ink); }
.subpage .card{ background:var(--card); border:1px solid var(--line); border-radius:16px; padding:22px 24px; margin:18px 0; }
.subpage .btn{ display:inline-block; background:linear-gradient(135deg,var(--btn-from),var(--btn-to)); color:var(--accent-ink); text-decoration:none; padding:14px 24px; border-radius:12px; font-weight:700; font-size:1rem; box-shadow:0 4px 24px rgba(var(--glow),.30); margin-top:10px; }
.subpage .disclaimer{ background:var(--bg-raised); border:1px solid var(--line); border-radius:12px; padding:16px 18px; margin-bottom:36px; font-size:.88rem; }
.subpage .disclaimer p{ margin:0; }
.subpage .updated{ color:var(--ink-dim); font-size:.85rem; margin-bottom:44px; }
.subpage a.inline, .subpage a{ color:var(--accent-light); }
.back-top{ position:fixed; right:20px; bottom:20px; width:46px; height:46px; border-radius:50%; background:var(--card); border:1px solid var(--line); color:var(--ink); display:flex; align-items:center; justify-content:center; cursor:pointer; opacity:0; pointer-events:none; transition:opacity .25s ease, border-color .2s; z-index:70; }
.back-top.show{ opacity:1; pointer-events:auto; }
.back-top:hover{ border-color:var(--accent); }
.back-top svg{ width:18px; height:18px; }

/* v8: mobile overflow + tap targets + new safety grid */
html,body{ overflow-x:clip; }
.nav-menu{ visibility:hidden; transition:transform .3s ease, visibility 0s linear .3s; }
.nav-menu.open{ visibility:visible; transition:transform .3s ease, visibility 0s; }
.steps-2{ grid-template-columns:repeat(2,1fr); }
.step-icon{ width:46px; height:46px; border-radius:50%; border:1px solid var(--accent); display:flex; align-items:center; justify-content:center; margin-bottom:18px; color:var(--accent-light); }
.step-icon svg{ width:22px; height:22px; }
.field-error{ color:#E8786F; font-size:.88rem; margin:10px 2px 0; }
.waitlist button[disabled]{ opacity:.6; cursor:progress; }
@media (min-width:1481px){ .nav-menu{ visibility:visible; } } /* below this the menu is a closed panel: hidden from Tab and screen readers until opened */
summary{ min-height:44px; }
.grow-cta{ padding:12px 0 6px; }
@media (max-width:760px){
  .steps-2{ grid-template-columns:1fr; }
  .nav-menu a{ display:block; padding:12px 0; }
  .nav-toggle{ min-width:44px; min-height:44px; align-items:center; justify-content:center; }
  .grow-cta, .footer-link{ display:inline-block; padding:12px 0; }
  .compare-table{ min-width:0; table-layout:fixed; }
  .compare-table th, .compare-table td{ padding:12px 8px; font-size:.82rem; }
  .compare-table thead th{ font-size:.9rem; }
  .compare-table th:first-child, .compare-table td:first-child{ width:40%; }
}

/* ===== v9: themes ===== */
:root{ --header-bg:rgba(0,0,0,.78); --accent-text:#F2792B; --shadow:0 20px 50px rgba(0,0,0,.35); --glass:rgba(255,255,255,.04); --warn:#EE7F73; }
html[data-theme="light"]{
  --bg:#FBF8F3; --bg-raised:#F3EEE6; --card:#FFFFFF; --line:#E6DED2;
  --ink:#16110D; --ink-dim:#5F574F;
  --accent:#C45000; --accent-light:#B04800; --accent-deep:#8A3A00; --accent-ink:#FFFFFF; --accent-text:#B04800; --btn-from:#C45000; --btn-to:#A94300; --glow:196,80,0;
  --forest:#23795A; --forest-light:#23795A;
  --header-bg:rgba(251,248,243,.82); --shadow:0 18px 40px rgba(58,42,30,.14); --glass:rgba(0,0,0,.03); --warn:#B3392F;
}
html[data-theme="light"] body{ background:radial-gradient(ellipse 1200px 700px at 75% -10%, rgba(var(--glow),.07), transparent 60%), var(--bg); }
html[data-theme="light"] .photo-frame{ box-shadow:var(--shadow); }
html[data-theme="light"] .compare-table th.hl, html[data-theme="light"] .compare-table td.hl{ background:rgba(var(--glow),.08); }
html[data-theme="light"] .field-error{ color:var(--warn); }
.only-light{ display:none !important; } html[data-theme="light"] .only-light{ display:block !important; } html[data-theme="light"] .only-dark{ display:none !important; }
body{ transition:background-color .25s ease, color .25s ease; }
.nav-menu a.active, .subpage a, .subpage a.inline, .grow-cta, .cta-caption, .hero-stat strong{ color:var(--accent-text); }
.compare-table thead th.hl, .nav-cta:hover, .footer-link:hover{ color:var(--accent-text); }
.nav-menu a.nav-cta{ color:var(--ink); }
.nav-menu a.nav-cta:hover{ color:var(--accent-text); }
.subpage .btn, .btn{ color:var(--accent-ink); }
.subpage a.btn{ color:var(--accent-ink); }

/* theme toggle */
.theme-toggle{ background:none; border:1px solid var(--line); color:var(--ink-dim); width:44px; height:44px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; cursor:pointer; transition:border-color .2s,color .2s,transform .2s; flex-shrink:0; }
.theme-toggle:hover{ border-color:var(--accent); color:var(--accent-text); }
.theme-toggle:active{ transform:scale(.92); }
.theme-toggle svg{ width:18px; height:18px; }
.theme-toggle .i-sun,.theme-toggle .i-moon,.theme-toggle .i-auto{ display:none; }
html[data-theme-pref="light"] .theme-toggle .i-sun{ display:block; }
html[data-theme-pref="dark"] .theme-toggle .i-moon{ display:block; }
html[data-theme-pref="system"] .theme-toggle .i-auto{ display:block; }
.nav-tools{ display:flex; align-items:center; gap:12px; }
.nav-right{ display:flex; align-items:center; gap:10px; }
@media (max-width:1480px){ .nav-menu .theme-toggle{ display:none; } }

/* nav dropdown-free: more links so tighten */
.nav-menu{ gap:24px; }
@media (max-width:1660px) and (min-width:1481px){ .nav-menu{ gap:16px; } .nav-menu a{ font-size:.88rem; } }

/* ===== footer (multi-column) ===== */
footer{ padding:56px 0 30px; }
footer .wrap{ display:block; text-align:left; }
.foot-grid{ display:grid; grid-template-columns:1.4fr repeat(5,1fr); gap:32px; }
.foot-grid h2.foot-h{ font-family:var(--sans); line-height:1.3; text-align:left; font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink); margin:0 0 14px; font-weight:600; }
.foot-grid ul{ list-style:none; margin:0; padding:0; }
.foot-grid li{ margin:0; }
.foot-grid a, .foot-grid button.footer-link{ display:inline-block; padding:7px 0; font-size:.92rem; color:var(--ink-dim); text-decoration:none; background:none; border:0; cursor:pointer; font-family:inherit; text-align:left; }
.foot-grid a:hover, .foot-grid button.footer-link:hover{ color:var(--accent-text); }
.foot-about p{ font-size:.9rem; margin-top:14px; max-width:30ch; }
.foot-base{ margin-top:40px; padding-top:22px; border-top:1px solid var(--line); display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; font-size:.82rem; color:var(--ink-dim); }
.foot-base p{ font-size:.82rem; }
@media (max-width:900px){ .foot-grid{ grid-template-columns:1fr 1fr; } .foot-about{ grid-column:1/-1; } }
footer .brand{ font-size:1.15rem; }

/* ===== placeholders the owner must fill ===== */
mark.todo{ background:rgba(232,168,56,.22); color:var(--ink); padding:0 .3em; border-radius:4px; border-bottom:1px dashed #C98A12; font-style:normal; }

/* ===== sub-pages ===== */
.subpage{ max-width:880px; }
.subpage.wide{ max-width:1040px; }
.crumbs{ font-size:.84rem; margin-bottom:18px; color:var(--ink-dim); }
.crumbs a{ color:var(--ink-dim); text-decoration:none; display:inline-block; padding:8px 0; margin:-8px 0; } .crumbs a:hover{ color:var(--accent-text); }
.subpage h1{ color:var(--accent-text); }
.toc{ background:var(--bg-raised); border:1px solid var(--line); border-radius:14px; padding:18px 22px; margin:0 0 36px; }
.toc strong{ display:block; font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; margin-bottom:8px; }
.toc ol{ margin:0; padding-left:20px; columns:2; column-gap:30px; } .toc li{ margin:0; padding:2px 0; font-size:.92rem; }
@media (max-width:640px){ .toc ol{ columns:1; } }
.subpage table{ width:100%; border-collapse:collapse; margin:18px 0 28px; font-size:.92rem; }
.subpage th,.subpage td{ text-align:left; vertical-align:top; padding:12px 12px; border-bottom:1px solid var(--line); color:var(--ink-dim); }
.subpage th{ color:var(--ink); font-weight:600; font-size:.82rem; letter-spacing:.04em; }
.subpage td:first-child{ color:var(--ink); font-weight:600; }
.table-wrap{ overflow-x:auto; -webkit-overflow-scrolling:touch; border:1px solid var(--line); border-radius:14px; background:var(--card); margin:18px 0 28px; }
.table-wrap table{ margin:0; min-width:640px; }
.table-wrap tr:last-child td{ border-bottom:0; }
.pill{ display:inline-block; font-size:.74rem; font-weight:600; padding:3px 10px; border-radius:999px; border:1px solid var(--line); color:var(--ink-dim); white-space:nowrap; }
.pill.yes{ border-color:var(--forest); color:var(--forest-light); }
.pill.no{ border-color:var(--warn); color:var(--warn); }
.callout{ border-left:3px solid var(--accent); background:var(--bg-raised); border-radius:0 12px 12px 0; padding:16px 20px; margin:22px 0; }
.callout p{ margin:0; } .callout p+p{ margin-top:10px; }
.grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:18px; } .grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
@media (max-width:760px){ .grid-2,.grid-3{ grid-template-columns:1fr; } }
.subpage .card h3{ margin:0 0 8px; }
.subpage .card p:last-child{ margin-bottom:0; }
.kicker{ font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:var(--accent-text); font-weight:600; margin-bottom:10px; }
.btn.secondary, .subpage .btn.secondary{ background:transparent; color:var(--ink); border:1px solid var(--line); }
.btn.secondary:hover{ border-color:var(--accent); box-shadow:none; filter:none; color:var(--accent-text); }
.btn-row{ display:flex; flex-wrap:wrap; gap:12px; margin-top:8px; }
.subpage .btn, .btn{ text-decoration:none; display:inline-block; }
.swatches{ display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:12px; margin:16px 0; }
.swatch{ border:1px solid var(--line); border-radius:12px; overflow:hidden; background:var(--card); font-size:.82rem; }
.swatch i{ display:block; height:56px; } .swatch span{ display:block; padding:8px 10px; color:var(--ink-dim); } .swatch b{ color:var(--ink); display:block; }

/* forms */
.form-grid{ display:grid; gap:16px; max-width:560px; margin-top:20px; }
.form-grid label{ display:block; font-size:.86rem; color:var(--ink); font-weight:600; margin-bottom:6px; }
.form-grid input,.form-grid select,.form-grid textarea{ width:100%; background:var(--card); border:1px solid var(--line); color:var(--ink); padding:13px 14px; border-radius:12px; font-size:1rem; font-family:inherit; }
.form-grid textarea{ min-height:110px; resize:vertical; }
.form-grid .hint{ font-size:.82rem; margin-top:6px; }
.form-grid .check{ display:flex; gap:10px; align-items:flex-start; } .form-grid .check input{ width:20px; height:20px; margin-top:2px; flex-shrink:0; } .form-grid .check label{ font-weight:400; color:var(--ink-dim); margin:0; }
.form-grid input:focus-visible,.form-grid select:focus-visible,.form-grid textarea:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }

/* ===== home: usp strip, phones ===== */
.usp{ padding:70px 0 10px; }
.usp-line{ font-family:var(--serif); font-size:clamp(1.9rem,3vw + 1rem,3.1rem); line-height:1.12; max-width:20ch; }
.usp-line em{ color:var(--accent-text); font-style:italic; }
.usp-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:34px; }
.usp-card{ background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:24px; }
.usp-card h3{ font-size:1.25rem; } .usp-card p{ margin-top:10px; font-size:.97rem; }
.usp-card .step-icon{ margin-bottom:16px; }
@media (max-width:860px){ .usp-grid{ grid-template-columns:1fr; } }
.showcase{ padding:90px 0; border-top:1px solid var(--line); overflow:hidden; }
.showcase h2{ font-size:clamp(1.9rem,2vw + 1.3rem,2.6rem); max-width:20ch; }
.showcase .lede{ margin-top:16px; max-width:56ch; font-size:1.05rem; }
.phones{ display:flex; gap:26px; margin-top:44px; justify-content:center; align-items:flex-start; }
.phone{ width:min(270px,28vw); flex-shrink:0; border-radius:34px; border:7px solid #1A1714; background:#000; box-shadow:var(--shadow); overflow:hidden; position:relative; }
html[data-theme="light"] .phone{ border-color:#1A1410; }
.phone img{ width:100%; height:auto; display:block; }
.phone:nth-child(2){ margin-top:36px; }
.phone-cap{ text-align:center; margin-top:14px; font-size:.88rem; }
.phone-wrap{ display:block; } .phone-wrap figcaption{ text-align:center; margin-top:14px; font-size:.88rem; color:var(--ink-dim); }
.phone-wrap{ margin:0; }
@media (max-width:760px){ .phones{ gap:14px; justify-content:flex-start; overflow-x:auto; padding:0 0 14px; scroll-snap-type:x mandatory; } .phone{ width:62vw; scroll-snap-align:center; } .phone:nth-child(2){ margin-top:0; } }
.privacy-glance{ padding:80px 0; border-top:1px solid var(--line); background:var(--bg-raised); }
.privacy-glance h2{ font-size:clamp(1.7rem,2vw + 1.2rem,2.4rem); max-width:22ch; }
.glance-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:30px; }
.glance-grid div{ background:var(--card); border:1px solid var(--line); border-radius:16px; padding:20px; }
.glance-grid h3{ font-size:1.08rem; } .glance-grid p{ font-size:.92rem; margin-top:8px; }
@media (max-width:900px){ .glance-grid{ grid-template-columns:1fr 1fr; } } @media (max-width:520px){ .glance-grid{ grid-template-columns:1fr; } }
.more-link{ display:inline-block; margin-top:22px; color:var(--accent-text); font-weight:600; text-decoration:none; border-bottom:1px solid var(--accent-deep); padding:10px 0 4px; }

/* ===== consent ===== */
.cc-banner{ position:fixed; left:16px; right:16px; bottom:16px; z-index:120; max-width:640px; margin:0 auto; background:var(--card); color:var(--ink); border:1px solid var(--line); border-radius:18px; padding:20px 22px; box-shadow:0 18px 60px rgba(0,0,0,.45); animation:ccIn .35s ease both; }
@keyframes ccIn{ from{ opacity:0; transform:translateY(16px); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce){ .cc-banner{ animation:none; } }
.cc-banner h2{ font-family:var(--serif); font-size:1.2rem; margin:0 0 6px; }
.cc-banner p{ font-size:.9rem; margin:0; }
.cc-banner a{ color:var(--accent-text); }
.cc-actions{ display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; align-items:center; }
.cc-btn{ font:inherit; font-size:.92rem; font-weight:600; min-height:44px; padding:10px 20px; border-radius:999px; cursor:pointer; background:transparent; color:var(--ink); border:1.5px solid var(--ink-dim); flex:1 1 auto; text-align:center; transition:border-color .2s,color .2s,background .2s; }
.cc-btn:hover{ border-color:var(--accent); color:var(--accent-text); }
.cc-btn.link{ border:0; flex:0 0 auto; text-decoration:underline; text-underline-offset:3px; color:var(--ink-dim); padding:10px 8px; }
.cc-overlay{ position:fixed; inset:0; z-index:140; background:rgba(0,0,0,.6); display:flex; align-items:center; justify-content:center; padding:16px; }
.cc-modal{ background:var(--card); color:var(--ink); border:1px solid var(--line); border-radius:20px; max-width:560px; width:100%; max-height:calc(100vh - 32px); overflow:auto; padding:26px; box-shadow:0 30px 90px rgba(0,0,0,.5); }
.cc-modal h2{ font-family:var(--serif); font-size:1.5rem; margin:0 0 8px; }
.cc-modal p{ font-size:.92rem; }
.cc-cat{ border-top:1px solid var(--line); padding:18px 0; display:grid; grid-template-columns:1fr auto; gap:6px 18px; align-items:start; }
.cc-cat h3{ font-size:1.05rem; font-family:var(--sans); font-weight:600; margin:0; }
.cc-cat p{ grid-column:1; margin:0; }
.cc-cat .cc-sw{ grid-column:2; grid-row:1 / span 2; }
.cc-always{ font-size:.78rem; color:var(--forest-light); font-weight:600; white-space:nowrap; }
.cc-sw{ position:relative; width:52px; height:30px; }
.cc-sw input{ position:absolute; inset:0; opacity:0; width:100%; height:100%; margin:0; cursor:pointer; z-index:2; }
.cc-sw span{ position:absolute; inset:0; border-radius:999px; background:var(--line); border:1px solid var(--ink-dim); transition:background .2s; }
.cc-sw span::after{ content:""; position:absolute; left:3px; top:3px; width:22px; height:22px; border-radius:50%; background:var(--ink-dim); transition:transform .2s, background .2s; }
.cc-sw input:checked + span{ background:var(--accent); border-color:var(--accent); }
.cc-sw input:checked + span::after{ transform:translateX(22px); background:#fff; }
.cc-sw input:focus-visible + span{ outline:2px solid var(--accent); outline-offset:3px; }
.cc-foot{ display:flex; flex-wrap:wrap; gap:10px; margin-top:8px; border-top:1px solid var(--line); padding-top:18px; }
.cc-status{ display:inline-flex; gap:8px; align-items:center; font-size:.9rem; }
.cc-dot{ width:10px; height:10px; border-radius:50%; background:var(--ink-dim); } .cc-dot.on{ background:var(--forest-light); }
.toast{ position:fixed; left:50%; bottom:24px; transform:translateX(-50%); background:var(--ink); color:var(--bg); padding:12px 20px; border-radius:999px; font-size:.9rem; z-index:160; box-shadow:0 10px 30px rgba(0,0,0,.4); }
.skip-link{ position:absolute; left:-9999px; top:0; background:var(--accent); color:var(--accent-ink); padding:12px 20px; border-radius:0 0 10px 0; font-weight:600; z-index:300; }
.skip-link:focus{ left:0; }
.hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
@media print{ header,footer,.cc-banner,.back-top,.theme-toggle{ display:none !important; } body{ background:#fff; color:#000; } .subpage p,.subpage li{ color:#222; } }
.sr{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.hero-note a{ color:var(--accent-text); }

/* contrast fix: white text on a deeper gradient (>=5:1 in both themes) */
.btn, .subpage .btn, .subpage a.btn{ background:linear-gradient(135deg,var(--btn-from),var(--btn-to)); color:var(--accent-ink); }
.btn.secondary, .subpage .btn.secondary, .subpage a.btn.secondary{ background:transparent; color:var(--ink); border:1px solid var(--line); }
.btn.secondary:hover, .subpage a.btn.secondary:hover{ color:var(--accent-text); border-color:var(--accent); }
::selection{ background:var(--accent); color:#fff; }

/* header: toggle sits at the far right on desktop */
.nav-menu{ order:2; margin-left:auto; }
.nav-right{ order:3; margin-left:18px; }
@media (max-width:1480px){ .nav-right{ margin-left:auto; order:2; } .nav-menu{ order:3; margin-left:0; } }

.hero .wrap{ position:relative; }
.hero-phone{ position:absolute; right:40px; top:-6px; width:230px; transform:rotate(3deg); z-index:0; }
.hero-phone .phone{ width:100%; }
.hero-phone img{ height:auto; }
.hero-title,.hero-lower{ position:relative; z-index:1; }
@media (max-width:1100px){ .hero-phone{ display:none; } }
.hero-phone{ width:196px; right:60px; top:-14px; }

.usp-grid.four{ grid-template-columns:repeat(2,1fr); }
@media (max-width:860px){ .usp-grid.four{ grid-template-columns:1fr; } }
.student-band{ padding:64px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--card); }
.student-band .wrap{ display:grid; grid-template-columns:1.3fr .7fr; gap:40px; align-items:center; }
.student-band h2{ margin:6px 0 10px; }
.student-band .btn{ display:inline-block; margin-top:18px; text-decoration:none; }
.student-zones{ display:flex; flex-direction:column; gap:10px; font-family:var(--serif); font-size:clamp(2rem,4vw,3rem); line-height:1.1; color:var(--ink); }
.student-zones span:nth-child(2){ color:var(--accent-text); padding-left:28px; }
.student-zones span:nth-child(3){ padding-left:56px; }
@media (max-width:860px){ .student-band .wrap{ grid-template-columns:1fr; } .student-zones{ flex-direction:row; flex-wrap:wrap; gap:6px 18px; font-size:1.8rem; } .student-zones span{ padding-left:0 !important; } }
.subpage .phones{ margin-top:24px; }
/* heading polish */
main section h2{ font-size:clamp(1.9rem,2vw + 1.3rem,2.6rem); }
h1,h2,.usp-line{ text-wrap:balance; }
.usp-line{ max-width:24ch; }
.student-band h2{ font-size:clamp(2.2rem,3vw + 1rem,3.2rem); }

/* ===== v10: burnt orange, black, premium ===== */
body{ font-feature-settings:"kern","liga"; text-rendering:optimizeLegibility; }
html[data-theme="dark"] body{ background:radial-gradient(ellipse 900px 520px at 82% -8%, rgba(var(--glow),.22), transparent 62%), radial-gradient(ellipse 700px 400px at -5% 40%, rgba(var(--glow),.06), transparent 60%), #000; }
html[data-theme="light"] body{ background:radial-gradient(ellipse 1000px 560px at 82% -10%, rgba(var(--glow),.10), transparent 62%), var(--bg); }
::selection{ background:var(--accent); color:#fff; }
:focus-visible{ outline:2px solid var(--accent-text); outline-offset:3px; border-radius:6px; }

/* scroll progress hairline */
#gc-progress{ position:fixed; top:0; left:0; height:2px; width:100%; transform-origin:0 50%; transform:scaleX(0); background:linear-gradient(90deg,var(--accent-deep),var(--accent),var(--accent-light)); z-index:120; pointer-events:none; }

/* header: glass, hairline appears on scroll */
header{ backdrop-filter:saturate(1.4) blur(18px); -webkit-backdrop-filter:saturate(1.4) blur(18px); border-bottom:1px solid transparent; transition:border-color .3s, background .3s; }
header.scrolled{ border-bottom-color:var(--line); }
.brand svg{ filter:drop-shadow(0 0 10px rgba(var(--glow),.35)); }
.brand{ letter-spacing:.01em; }

/* type */
.kicker{ letter-spacing:.2em; font-size:.72rem; display:flex; align-items:center; gap:12px; }
.kicker::before{ content:""; width:28px; height:1px; background:linear-gradient(90deg,transparent,var(--accent-text)); display:inline-block; }
.hero-kicker{ margin:0 0 22px; position:relative; z-index:1; }
.hero-title{ font-weight:400; letter-spacing:-.02em; line-height:1.02; }
.hero-title .hl{ color:var(--accent-text); font-style:italic; position:relative; }
html[data-theme="dark"] .hero-title .hl{ background:linear-gradient(100deg,#F2792B 10%,#FF9A52 55%,#C45000 100%); -webkit-background-clip:text; background-clip:text; color:transparent; }
main section h2{ letter-spacing:-.012em; font-weight:400; }
main section{ position:relative; }

/* buttons: orange gradient, inner highlight, soft sheen */
.btn,.subpage .btn,.subpage a.btn{ position:relative; overflow:hidden; border-radius:999px; padding:15px 28px; letter-spacing:.01em; box-shadow:inset 0 1px 0 rgba(255,255,255,.28), 0 8px 28px rgba(var(--glow),.38); transition:transform .2s ease, box-shadow .25s ease, filter .2s; }
.btn::after{ content:""; position:absolute; inset:0; background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.28) 50%,transparent 70%); transform:translateX(-120%); transition:transform .7s ease; }
.btn:hover{ transform:translateY(-1px); filter:none; box-shadow:inset 0 1px 0 rgba(255,255,255,.3), 0 12px 36px rgba(var(--glow),.5); }
.btn:hover::after{ transform:translateX(120%); }
.btn:active{ transform:translateY(0) scale(.985); }
.nav-cta{ border-radius:999px; }

/* cards: hairline, depth, hover glow */
.usp-card,.step,.tg-card,.glance-grid div,.compare-table{ position:relative; }
.usp-card,.step,.tg-card{ background:linear-gradient(180deg,var(--card),var(--bg-raised)); border:1px solid var(--line); border-radius:22px; padding:28px; transition:transform .35s cubic-bezier(.2,.7,.2,1), border-color .3s, box-shadow .35s; }
html[data-theme="light"] .usp-card,html[data-theme="light"] .step,html[data-theme="light"] .tg-card{ background:#fff; box-shadow:0 1px 0 rgba(255,255,255,.8) inset, 0 10px 30px rgba(58,42,30,.06); }
.usp-card:hover,.step:hover,.tg-card:hover{ transform:translateY(-4px); border-color:rgba(var(--glow),.55); box-shadow:0 18px 50px rgba(var(--glow),.16); }
.step-icon{ border-color:rgba(var(--glow),.55); background:rgba(var(--glow),.08); }
.usp-card h3,.tg-card h3,.step h3{ font-size:1.18rem; }
.usp-card p,.tg-card p,.step p{ font-size:.97rem; }
.usp-card{ display:flex; flex-direction:column; align-items:flex-start; }
.usp-card .learn,.tg-card .learn{ margin-top:auto; padding-top:16px; }

/* "learn more" link: understated arrow link */
.learn{ display:inline-flex; align-items:center; gap:8px; color:var(--accent-text); font-weight:600; font-size:.94rem; text-decoration:none; margin-top:20px; letter-spacing:.01em; }
.learn::after{ content:"→"; transition:transform .25s ease; }
.learn:hover::after,.tg-card:hover .learn::after{ transform:translateX(5px); }
.learn:hover{ text-decoration:underline; text-underline-offset:4px; }
.tg-card{ display:flex; flex-direction:column; text-decoration:none; color:inherit; }
.tg{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:34px; }
@media (max-width:980px){ .tg{ grid-template-columns:1fr 1fr; } } @media (max-width:560px){ .tg{ grid-template-columns:1fr; } }
.trustgrid{ padding:84px 0; background:var(--bg-raised); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.trustgrid h2{ max-width:20ch; }

/* tighter home rhythm */
.usp{ padding:72px 0 56px; }
.how{ padding:72px 0; } .how .lede{ margin-top:10px; }
.how h2,.gallery h2,.showcase h2,.faq h2{ margin-top:6px; max-width:24ch; }
.showcase{ padding:72px 0; }
.faq{ padding:72px 0; }
.final-cta{ padding:96px 0; }

/* ticker */
.ticker{ overflow:hidden; border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin-top:56px; padding:16px 0; -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); }
.ticker-track{ display:flex; width:max-content; gap:44px; animation:tick 46s linear infinite; }
.ticker-track span{ font-family:var(--serif); font-size:1.35rem; color:var(--ink-dim); white-space:nowrap; display:inline-flex; align-items:center; gap:44px; }
.ticker-track span::after{ content:"✦"; font-size:.7rem; color:var(--accent-text); }
@keyframes tick{ to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion:reduce){ .ticker-track{ animation:none; } .btn::after{ display:none; } }

/* gallery tiles */
.gallery{ padding:72px 0 80px; }
.tiles{ display:grid; grid-template-columns:repeat(5,1fr); gap:14px; margin-top:34px; }
.tile{ position:relative; aspect-ratio:3/4.3; border-radius:20px; overflow:hidden; border:1px solid var(--line); background:var(--card); isolation:isolate; transition:transform .4s cubic-bezier(.2,.7,.2,1), border-color .3s, box-shadow .4s; }
.tile:hover{ transform:translateY(-6px); border-color:rgba(var(--glow),.6); box-shadow:0 22px 50px rgba(var(--glow),.2); }
.tile-bg{ position:absolute; inset:0; background-size:cover; transition:transform .8s ease; z-index:-2; }
.tile-bg svg{ width:100%; height:100%; display:block; }
.tile:hover .tile-bg{ transform:scale(1.05); }
.tile::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(0,0,0,0) 38%,rgba(0,0,0,.82) 100%); }
.tile-text{ position:absolute; left:0; right:0; bottom:0; padding:18px 16px 18px; color:#fff; }
.tile-text h3{ font-size:1.12rem; color:#fff; margin:0 0 4px; }
.tile-text p{ font-size:.84rem; margin:0; color:rgba(255,255,255,.82); line-height:1.4; }
@media (max-width:980px){ .tiles{ display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:12px; margin-right:-20px; padding-right:20px; padding-bottom:14px; } .tile{ flex:0 0 62vw; max-width:260px; scroll-snap-align:start; } }

/* FAQ polish */
.faq-list details{ border:1px solid var(--line); border-radius:16px; background:var(--card); padding:0 22px; margin-bottom:10px; transition:border-color .25s, background .25s; }
.faq-list details[open]{ border-color:rgba(var(--glow),.5); }
.faq-list summary{ padding:20px 0; }
.faq-list details p{ padding-bottom:20px; margin:0; }

/* student band + hero stat polish */
.student-band{ background:linear-gradient(135deg,var(--card),var(--bg-raised)); position:relative; overflow:hidden; }
.student-band::before{ content:""; position:absolute; right:-120px; top:-160px; width:520px; height:520px; border-radius:50%; background:radial-gradient(circle,rgba(var(--glow),.22),transparent 65%); pointer-events:none; }
.student-band .wrap{ position:relative; }
.hero-stat{ border-color:rgba(var(--glow),.45); border-radius:999px; padding:10px 20px; background:rgba(var(--glow),.07); }
.hero-phone .phone{ box-shadow:0 30px 80px rgba(var(--glow),.28), 0 10px 30px rgba(0,0,0,.4); }
.phone{ box-shadow:0 26px 60px rgba(var(--glow),.18), var(--shadow); }
.form-box input[type=email],.form-box input[type=text],.form-box select{ border-radius:999px; }
.final-cta{ background:radial-gradient(ellipse 700px 320px at 50% 0%, rgba(var(--glow),.18), transparent 70%); }

/* footer */
footer{ border-top:1px solid var(--line); }
@media (max-width:760px){ .usp-card,.step,.tg-card{ padding:22px; } .ticker{ margin-top:40px; } }

.js .rv:not(.is-visible){ opacity:0; translate:0 22px; }
.rv{ transition:opacity .8s ease, translate .8s cubic-bezier(.2,.7,.2,1), transform .35s cubic-bezier(.2,.7,.2,1), border-color .3s, box-shadow .35s; }
@media (prefers-reduced-motion:reduce){ .js .rv:not(.is-visible){ opacity:1; translate:none; } }

.brand svg{ width:40px; height:40px; }
.tile::after{ background:linear-gradient(180deg,rgba(0,0,0,0) 20%,rgba(0,0,0,.55) 55%,rgba(0,0,0,.9) 100%); }
.tile-text{ padding-top:40px; }
.tile-text p{ color:rgba(255,255,255,.9); }
.usp-card h3,.tg-card h3,.step h3{ margin:0 0 8px; }
.hero form.waitlist{ max-width:540px; flex-wrap:nowrap; align-items:center; padding:6px; gap:6px; border:1px solid var(--line); border-radius:999px; background:var(--card); transition:border-color .25s, box-shadow .25s; }
.hero form.waitlist:focus-within{ border-color:rgba(var(--glow),.7); box-shadow:0 0 0 4px rgba(var(--glow),.14); }
.hero .waitlist input{ background:transparent; border:0; padding:12px 16px; min-width:0; flex:1 1 auto; }
.hero .waitlist input:focus-visible{ outline:none; }
.hero .waitlist .btn{ padding:13px 24px; }
.final-cta .form-box{ max-width:760px; }
.final-cta form.waitlist{ max-width:760px; flex-wrap:nowrap; }
.final-cta .waitlist .btn{ flex:0 0 auto; }
@media (max-width:620px){
  .hero form.waitlist,.final-cta form.waitlist{ flex-wrap:wrap; border-radius:22px; padding:8px; }
  .hero .waitlist input,.final-cta .waitlist input{ flex:1 1 100%; }
  .hero .waitlist .btn,.final-cta .waitlist .btn{ width:100%; }
}
@media (max-width:620px){ .hero-stat{ border-radius:18px; } .kicker{ letter-spacing:.14em; } }
/* mobile: long card groups on the home page become swipe rows */
@media (max-width:760px){
  .ticker + .usp .usp-grid, .trustgrid .tg, #how .steps, .range-grid, .subpage .sport-grid, .subpage .level-grid{ display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:12px; margin-right:-20px; padding:4px 20px 14px 0; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
  .ticker + .usp .usp-grid::-webkit-scrollbar, .trustgrid .tg::-webkit-scrollbar, #how .steps::-webkit-scrollbar, .range-grid::-webkit-scrollbar, .sport-grid::-webkit-scrollbar, .level-grid::-webkit-scrollbar{ display:none; }
  .ticker + .usp .usp-card, .trustgrid .tg-card, #how .step, .range-card, .subpage .sport-card, .subpage .level-card{ flex:0 0 80%; max-width:320px; scroll-snap-align:start; margin:0; }
  .hero-quote{ display:none; }
  .usp{ padding:56px 0 40px; } .how,.showcase,.faq,.gallery,.trustgrid{ padding-top:56px; padding-bottom:56px; } .final-cta{ padding:72px 0; }
}

/* ===== v11: centred headings, no accent rules, no glows/fades, tighter FAQ + footer ===== */
.kicker::before{ display:none; }
.kicker{ justify-content:center; text-align:center; }
main h1, main h2{ text-align:center; margin-left:auto; margin-right:auto; }
.subpage h1, .subpage h2{ text-align:center; margin-left:auto; margin-right:auto; }
.subpage .lede, .gallery .lede, .how .lede, .showcase .lede, .final-cta .lede, .student-band .lede{ margin-left:auto; margin-right:auto; text-align:center; }
.usp-line, .how h2, .gallery h2, .showcase h2, .faq h2, .trustgrid h2, .privacy-glance h2{ max-width:none; }

/* hero: centred, no floating phone (the phones sit in the app section just below) */
.hero-phone{ display:none; }
.hero-title{ max-width:none; }
.hero-kicker{ justify-content:center; }
.hero-lower{ grid-template-columns:1fr; justify-items:center; text-align:center; gap:26px; }
.hero-sub{ margin-left:auto; margin-right:auto; }
.hero .form-box{ width:100%; display:flex; flex-direction:column; align-items:center; }
.hero form.waitlist{ width:100%; margin-left:auto; margin-right:auto; }
.hero-note{ text-align:center; }
.hero-quote{ justify-content:center; text-align:center; max-width:640px; }
.student-band .wrap > div:first-child{ text-align:center; }
.student-band .wrap > div:first-child .kicker{ justify-content:center; }
.final-cta{ text-align:center; background:none; }
.final-cta .form-box{ margin-left:auto; margin-right:auto; }
.final-cta form.waitlist{ margin-left:auto; margin-right:auto; }
.how .wrap > .learn, .faq .wrap > .learn{ display:flex; justify-content:center; }
.hero-stat{ display:inline-block; }

/* remove orange/black glows, gradients and fades */
html[data-theme="dark"] body, html[data-theme="light"] body, body{ background:var(--bg); }
header, header.scrolled{ background:var(--bg); backdrop-filter:none; -webkit-backdrop-filter:none; }
.brand svg{ filter:none; }
#gc-progress{ background:var(--accent); }
.student-band{ background:var(--card); } .student-band::before{ display:none; }
.hero-phone .phone, .phone{ box-shadow:var(--shadow); }
html[data-theme="dark"] .hero-title .hl, .hero-title .hl{ background:none; -webkit-background-clip:border-box; background-clip:border-box; color:var(--accent-text); -webkit-text-fill-color:currentColor; }
.step-num span{ background:none; -webkit-background-clip:border-box; background-clip:border-box; color:var(--accent-text); }
.btn,.subpage .btn,.subpage a.btn{ background:var(--accent); box-shadow:none; }
.btn::after{ display:none; }
.btn:hover{ transform:none; box-shadow:none; filter:brightness(1.1); }
.hero-stat{ background:var(--card); }
.usp-card,.step,.tg-card, html[data-theme="light"] .usp-card, html[data-theme="light"] .step, html[data-theme="light"] .tg-card{ background:var(--card); box-shadow:none; }
.usp-card:hover,.step:hover,.tg-card:hover{ transform:none; box-shadow:none; border-color:var(--accent); }
.tile:hover{ transform:none; box-shadow:none; border-color:var(--accent); } .tile:hover .tile-bg{ transform:none; }
.tile::after{ display:none; }
.tile-text{ background:#0d0b0a; padding:12px 16px 14px; box-sizing:border-box; height:118px; overflow:hidden; } /* same caption height on every tile */
.ticker{ -webkit-mask-image:none; mask-image:none; }
.js .rv:not(.is-visible){ opacity:1; translate:none; }
.rv{ transition:border-color .25s; }
.faq-list details[open]{ border-color:var(--accent); }

/* FAQ: compact boxes */
.faq-list{ max-width:680px; margin:28px auto 0; }
.faq-list details{ padding:0 18px; margin-bottom:8px; border-radius:12px; }
.faq-list summary{ padding:13px 0; font-size:1rem; }
.faq-list summary::after{ font-size:1.25rem; }
.faq-list details p{ padding:0 0 14px; margin:0; font-size:.94rem; }

/* footer: tighter */
.foot-grid{ gap:24px 32px; }
.foot-grid h2.foot-h{ margin:0 0 2px; }
.foot-grid ul a, .foot-grid button.footer-link{ display:inline-flex; align-items:center; min-height:44px; padding:0; }
.foot-about p{ margin-top:8px; }

/* mobile tiles: about half the height */
@media (max-width:980px){
  .tile{ flex:0 0 58vw; max-width:230px; aspect-ratio:4/3; }
  .tile-text{ padding:9px 12px 10px; height:auto; } .tile-text h3{ font-size:1rem; margin:0; } .tile-text p{ display:none; }
}
.student-band .wrap{ grid-template-columns:1fr; justify-items:center; gap:26px; }
.student-band .lede{ max-width:56ch; }
.student-zones{ flex-direction:row; flex-wrap:wrap; justify-content:center; gap:6px 28px; font-size:clamp(1.8rem,3vw,2.4rem); }
.student-zones span, .student-zones span:nth-child(2), .student-zones span:nth-child(3){ padding-left:0; }
/* floating hero phone: desktop only */
@media (min-width:1180px){ .hero-phone{ display:block; right:30px; top:10px; width:200px; } }
@media (max-width:1179px){ .hero-phone{ display:none; } }

/* ===== v12: premium mobile menu ===== */
.nav-toggle{ width:44px; height:44px; padding:0; border:1px solid var(--line); border-radius:50%; background:var(--card); align-items:center; justify-content:center; gap:6px; transition:border-color .25s, background .25s; }
.nav-toggle:hover{ border-color:var(--accent); }
.nav-toggle span{ width:18px; height:1.5px; border-radius:2px; background:var(--ink); transition:transform .3s cubic-bezier(.2,.7,.2,1), width .3s; }
.nav-toggle span:nth-child(2){ width:12px; align-self:center; }
.nav-toggle span:nth-child(3){ display:none; }
.nav-toggle.open{ border-color:var(--accent); }
.nav-toggle.open span:nth-child(1){ transform:translateY(3.75px) rotate(45deg); }
.nav-toggle.open span:nth-child(2){ opacity:1; width:18px; transform:translateY(-3.75px) rotate(-45deg); }
@media (max-width:760px){
  .brand, .nav-right{ position:relative; z-index:60; }
  .nav-right{ gap:10px; }
  header .nav-menu{ position:fixed; top:0; left:0; right:0; width:100%; height:100vh; height:100dvh; background:var(--bg); border:0; padding:92px 32px 36px; gap:0; align-items:stretch; justify-content:center; transform:none; opacity:0; transition:opacity .28s ease, visibility 0s linear .28s; }
  header .nav-menu.open{ opacity:1; transform:none; transition:opacity .28s ease, visibility 0s; }
  header .nav-menu a:not(.nav-cta){ font-family:var(--serif); font-size:clamp(1.7rem,7vw,2.2rem); line-height:1.1; text-align:center; padding:17px 0; color:var(--ink); border-bottom:1px solid var(--line); }
  header .nav-menu a:not(.nav-cta):first-child{ border-top:1px solid var(--line); }
  header .nav-menu a.active{ color:var(--accent-text); }
  header .nav-menu a:not(.nav-cta):hover{ color:var(--accent-text); }
  header .nav-menu a.nav-cta{ margin-top:28px; text-align:center; background:var(--accent); color:#fff; border:0; border-radius:999px; padding:16px 24px; font-size:1.02rem; font-weight:700; }
  header .nav-menu::after{ content:"Verified people · Real plans · Small groups"; position:absolute; left:0; right:0; bottom:26px; text-align:center; font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-dim); }
  html:has(.nav-menu.open){ overflow:hidden; } /* on the root, not body: body overflow made body a scroll box and the sticky header jumped to the top of the page */
}

/* ===== v13: logo lockup ===== */
@font-face{ font-family:'Jost'; src:url(fonts/jost-300.woff2?v=4755701d1a) format('woff2'); font-weight:300; font-display:swap; }
@font-face{ font-family:'Jost'; src:url(fonts/jost-500.woff2?v=98dce4f076) format('woff2'); font-weight:500; font-display:swap; }
:root{ --logo:#E0661A; } html[data-theme="light"]{ --logo:#16110D; }
/* compass-rose mark (brand2/rose.py): lines, the hollow half of each point (= page background), the north point */
:root{ --rose-line:#E9DCC8; --rose-fill:var(--bg); --rose-n1:#FF8A47; --rose-n2:#E0661A; } html[data-theme="light"]{ --rose-line:#16110D; --rose-n1:#E0661A; --rose-n2:#C45000; }
.brand{ gap:12px; font-family:'Jost','Helvetica Neue',Arial,sans-serif; }
.brand svg{ width:40px; height:40px; filter:none; }
.brand-text{ display:flex; flex-direction:column; gap:5px; line-height:1; }
.brand-name{ font-weight:300; font-size:.95rem; letter-spacing:.34em; text-transform:uppercase; color:var(--ink); white-space:nowrap; }
.brand-name b{ font-weight:500; }
.brand-tag{ font-weight:400; font-size:.56rem; letter-spacing:.3em; text-transform:uppercase; color:var(--ink-dim); white-space:nowrap; }
@media (max-width:380px){ .brand-name{ font-size:.82rem; letter-spacing:.28em; } .brand-tag{ font-size:.5rem; letter-spacing:.24em; } .brand svg{ width:34px; height:34px; } }
.foot-about .brand-name{ font-size:1.02rem; } .foot-about .brand-tag{ font-size:.6rem; }

/* ===== v14: security ===== */
.layers{ max-width:none !important; width:100%; list-style:none; margin:26px 0 8px; padding:0; display:grid; gap:12px; counter-reset:none; }
.layer{ display:grid; grid-template-columns:34px 44px 1fr; gap:14px; align-items:start; background:linear-gradient(180deg,var(--card),var(--bg-raised)); border:1px solid var(--line); border-radius:18px; padding:18px 20px; }
html[data-theme="light"] .layer{ background:#fff; }
.layer .step-icon{ margin:0; width:44px; height:44px; }
.layer-n{ font-family:'Jost',system-ui,sans-serif; font-weight:500; font-size:.8rem; letter-spacing:.2em; color:var(--accent-light); padding-top:12px; }
.layer-k{ margin:0 0 2px; font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-dim); }
.layer h3{ margin:0 0 4px; font-size:1.08rem; } .layer p{ margin:0; font-size:.95rem; }
.layer>div p:last-child{ color:var(--ink-dim); }
.secstrip{ text-align:center; padding:56px 0; }
.secstrip h2{ margin-bottom:22px; }
.sec-row{ list-style:none; margin:0 auto 18px; padding:0; display:grid; grid-template-columns:repeat(5,1fr); gap:12px; max-width:980px; position:relative; }
.sec-row li{ display:flex; flex-direction:column; align-items:center; gap:4px; background:var(--card); border:1px solid var(--line); border-radius:16px; padding:16px 10px; font-size:.82rem; color:var(--ink-dim); }
html[data-theme="light"] .sec-row li{ background:#fff; }
.sec-row li strong{ color:var(--ink); font-size:.92rem; font-weight:600; }
.sec-row .step-icon{ margin:0 0 6px; width:38px; height:38px; }
.cf-ts{ margin:12px 0 4px; min-height:0; display:flex; justify-content:center; }
.cf-ts:empty{ display:none; }
@media (max-width:820px){
  .sec-row{ grid-template-columns:repeat(2,1fr); }
  .sec-row li:last-child{ grid-column:1 / -1; }
  .layer{ grid-template-columns:28px 1fr; } .layer .step-icon{ display:none; }
  .secstrip{ padding:40px 0; }
}
.subpage .layer{ max-width:none; margin:0; }

/* keyboard focus ring for the sign-up inputs outside the hero (hero uses its wrapper ring) */
.waitlist input:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }
.hero .waitlist input:focus-visible{ outline:none; }

/* ===== v15: theme button (sun / moon), footer lockup, premium mobile menu, swipeable security cards ===== */
.theme-toggle{ position:relative; overflow:hidden; }
.theme-toggle svg{ position:absolute; inset:0; margin:auto; width:19px; height:19px; transition:transform .45s cubic-bezier(.2,.7,.2,1), opacity .3s ease; }
.theme-toggle .i-sun, .theme-toggle .i-moon{ display:block !important; opacity:0; transform:rotate(-80deg) scale(.4); }
html[data-theme="light"] .theme-toggle .i-sun{ opacity:1; transform:none; color:var(--accent-text); }
html[data-theme="dark"] .theme-toggle .i-moon{ opacity:1; transform:none; color:var(--accent-text); }
@media (prefers-reduced-motion:reduce){ .theme-toggle svg{ transition:none; } }

/* footer: same lockup as the header (logo, then name with the tagline underneath, beside it) */
.foot-grid a.brand{ display:flex; align-items:center; padding:0; gap:12px; color:var(--ink); }
.foot-grid a.brand:hover{ color:var(--ink); }

@media (max-width:760px){
  header .nav-menu{
    background:radial-gradient(130% 55% at 100% 0%, rgba(var(--glow),.2), transparent 62%), radial-gradient(90% 40% at 0% 100%, rgba(var(--glow),.1), transparent 70%), var(--bg);
    padding:calc(92px + env(safe-area-inset-top)) 26px calc(26px + env(safe-area-inset-bottom));
    justify-content:flex-start; overflow-y:auto; counter-reset:nav; overscroll-behavior:contain;
  }
  header .nav-menu a:not(.nav-cta){
    display:flex; align-items:center; gap:16px; text-align:left; counter-increment:nav;
    font-size:clamp(1.55rem,4.3vh,2.05rem); padding:clamp(11px,2.1vh,17px) 2px; border-bottom:1px solid var(--line);
    opacity:0; transform:translateY(16px); transition:opacity .4s ease, transform .5s cubic-bezier(.2,.7,.2,1), color .2s;
  }
  header .nav-menu a:not(.nav-cta):first-child{ border-top:0; }
  header .nav-menu a:not(.nav-cta)::before{ content:counter(nav,decimal-leading-zero); font-family:'Jost','Helvetica Neue',Arial,sans-serif; font-size:.64rem; letter-spacing:.22em; color:var(--ink-dim); min-width:1.9em; }
  header .nav-menu a:not(.nav-cta)::after{ content:""; margin-left:auto; width:9px; height:9px; border-top:1.5px solid var(--ink-dim); border-right:1.5px solid var(--ink-dim); transform:rotate(45deg); transition:transform .25s, border-color .25s; flex-shrink:0; }
  header .nav-menu a:not(.nav-cta):hover::after, header .nav-menu a:not(.nav-cta):focus-visible::after{ transform:translateX(4px) rotate(45deg); border-color:var(--accent-text); }
  header .nav-menu a.active::before{ color:var(--accent-text); }
  header .nav-menu a.active::after{ border-color:var(--accent-text); }
  header .nav-menu.open a:not(.nav-cta){ opacity:1; transform:none; }
  header .nav-menu.open a:nth-child(1){ transition-delay:.06s,.06s,0s; } header .nav-menu.open a:nth-child(2){ transition-delay:.1s,.1s,0s; }
  header .nav-menu.open a:nth-child(3){ transition-delay:.14s,.14s,0s; } header .nav-menu.open a:nth-child(4){ transition-delay:.18s,.18s,0s; }
  header .nav-menu.open a:nth-child(5){ transition-delay:.22s,.22s,0s; } header .nav-menu.open a:nth-child(6){ transition-delay:.26s,.26s,0s; }
  header .nav-menu.open a:nth-child(7){ transition-delay:.3s,.3s,0s; }
  header .nav-menu a.nav-cta{ margin-top:auto; padding:17px 24px; box-shadow:0 12px 34px rgba(var(--glow),.28); opacity:0; transform:translateY(16px); transition:opacity .4s ease .36s, transform .5s cubic-bezier(.2,.7,.2,1) .36s; }
  header .nav-menu.open a.nav-cta{ opacity:1; transform:none; }
  header .nav-menu::before{ content:""; display:block; flex:0 0 0; margin-bottom:0; }
  header .nav-menu::after{ position:static; margin-top:20px; padding-top:2px; flex-shrink:0; }
  /* the cookie banner steps aside while the menu is open */
  html:has(.nav-menu.open) .cc-banner{ opacity:0; pointer-events:none; }
  .nav-toggle{ box-shadow:0 0 0 0 rgba(var(--glow),0); }
  .nav-toggle.open{ background:rgba(var(--glow),.12); }
  @media (prefers-reduced-motion:reduce){ header .nav-menu a:not(.nav-cta), header .nav-menu a.nav-cta{ transition:none; transform:none; } }
}

/* security: small swipeable cards on phones, like the rest of the home page */
@media (max-width:760px){
  .secstrip{ text-align:left; padding:56px 0; }
  .secstrip .kicker, .secstrip h2{ text-align:center; }
  .secstrip .learn{ display:flex; justify-content:center; }
  .sec-row{
    display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:12px; max-width:none; margin:0 -20px 10px 0; padding:4px 20px 14px 0;
    scrollbar-width:none; -webkit-overflow-scrolling:touch;
  }
  .sec-row::-webkit-scrollbar{ display:none; }
  .sec-row li, .sec-row li:last-child{
    flex:0 0 62%; max-width:232px; scroll-snap-align:start; align-items:flex-start; text-align:left; gap:5px; padding:20px 18px 22px; border-radius:22px; grid-column:auto;
    background:linear-gradient(180deg,var(--card),var(--bg-raised)); font-size:.88rem; line-height:1.35;
  }
  html[data-theme="light"] .sec-row li{ background:#fff; box-shadow:0 10px 30px rgba(58,42,30,.06); }
  .sec-row li strong{ font-size:1.02rem; margin-top:2px; }
  .sec-row .step-icon{ margin:0 0 10px; width:42px; height:42px; }
}
.foot-about .brand-name{ font-size:.95rem; } .foot-about .brand-tag{ font-size:.56rem; }
@media (max-width:380px){ .foot-about .brand-name{ font-size:.82rem; } .foot-about .brand-tag{ font-size:.5rem; } }
@media (max-width:340px){ .brand{ gap:9px; } .brand svg{ width:30px; height:30px; } .brand-name{ font-size:.74rem; letter-spacing:.22em; } .brand-tag{ letter-spacing:.18em; } .nav-right{ gap:6px; } .theme-toggle,.nav-toggle{ width:44px; height:44px; } }

/* v15b: menu type matches the logo (Jost, light, tracked capitals) and is much smaller */
@media (max-width:760px){
  header .nav-menu a:not(.nav-cta){ font-family:'Jost','Helvetica Neue',Arial,sans-serif; font-weight:300; font-size:clamp(.92rem,2.4vh,1.05rem); letter-spacing:.26em; text-transform:uppercase; line-height:1.2; padding:clamp(15px,2.6vh,20px) 2px; gap:18px; }
  header .nav-menu a.active:not(.nav-cta){ font-weight:500; }
  header .nav-menu a:not(.nav-cta)::before{ font-size:.58rem; letter-spacing:.2em; }
  header .nav-menu a:not(.nav-cta)::after{ width:7px; height:7px; }
  header .nav-menu a.nav-cta{ font-family:'Jost','Helvetica Neue',Arial,sans-serif; font-weight:500; font-size:.86rem; letter-spacing:.2em; text-transform:uppercase; padding:16px 24px; }
  header .nav-menu::after{ font-size:.6rem; }
}

/* safety cards: a grid on wide screens, a swipe row on phones (same as the other home-page card groups) */
.sfgrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin:30px 0 8px; }
.sf-card{ cursor:default; }
.sf-card p{ margin:0; }
.safetysec .lede{ max-width:60ch; margin-left:auto; margin-right:auto; text-align:center; }
.safetysec .learn{ margin-top:22px; display:inline-flex; }
@media (max-width:980px){ .sfgrid{ grid-template-columns:1fr 1fr; } }
@media (max-width:760px){
  .sfgrid{ display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:12px; margin:26px -20px 6px 0; padding:4px 20px 14px 0; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
  .sfgrid::-webkit-scrollbar{ display:none; }
  .sf-card{ flex:0 0 80%; max-width:320px; scroll-snap-align:start; margin:0; }
}
html[data-theme="light"] .brand-name, html[data-theme="light"] .brand-tag{ color:#16110D; }

/* ===== v22: compact premium cookie banner; no waitlist button inside the phone menu ===== */
.cc-banner{ left:20px; right:auto; bottom:20px; width:min(400px,calc(100vw - 40px)); max-width:none; margin:0; padding:16px 18px 14px; border-radius:16px; background:color-mix(in srgb,var(--card) 92%,transparent); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); box-shadow:0 10px 36px rgba(0,0,0,.28), 0 0 0 1px rgba(255,255,255,.03) inset; }
.cc-banner p{ font-size:.8rem; line-height:1.5; color:var(--ink-dim); }
.cc-banner p strong{ color:var(--ink); font-weight:600; }
.cc-banner .cc-actions{ margin-top:12px; gap:8px; flex-wrap:nowrap; }
.cc-banner .cc-btn{ min-height:44px; padding:7px 14px; font-size:.8rem; letter-spacing:.01em; border-width:1px; border-color:var(--line); flex:1 1 0; }
.cc-banner .cc-btn[data-cc="accept"]{ background:var(--accent); border-color:var(--accent); color:#fff; }
.cc-banner .cc-btn[data-cc="accept"]:hover{ filter:brightness(1.08); color:#fff; }
.cc-banner .cc-btn.link{ flex:0 0 auto; padding:7px 4px; font-size:.78rem; }
@media (max-width:520px){ .cc-banner{ left:12px; right:12px; bottom:12px; width:auto; padding:14px 16px 12px; } }
@media (max-width:760px){ header .nav-menu a.nav-cta{ display:none; } }

/* ===== v23: accessibility and robustness fixes ===== */
/* form field borders: at least 3:1 against the field and the page, in both themes (WCAG 1.4.11) */
:root{ --field-line:#76706A; }
html[data-theme="light"]{ --field-line:#857C73; }
.waitlist input, .form-grid input, .form-grid select, .form-grid textarea{ border-color:var(--field-line); }
.hero form.waitlist{ border-color:var(--field-line); }
.hero .waitlist input{ border:0; }
/* visible labels for the waitlist */
.wl-label{ display:block; font-size:.88rem; font-weight:600; color:var(--ink); margin:0 0 8px; }
.waitlist .wl-field{ flex:1 1 200px; display:flex; flex-direction:column; gap:6px; min-width:0; text-align:left; }
.waitlist .wl-field label{ font-size:.86rem; font-weight:600; color:var(--ink); padding-left:6px; }
.waitlist .wl-field input, .final-cta .waitlist .wl-field input{ flex:0 0 auto; width:100%; }
form.waitlist.has-city{ align-items:flex-end; }
@media (max-width:620px){ .final-cta .waitlist .wl-field{ flex:1 1 100%; } }
/* buttons that only work with JavaScript start disabled (see site.js) */
.btn[disabled]{ opacity:.6; cursor:not-allowed; }
.noscript-note{ margin-top:10px; }
/* tap targets: header links at least 44px tall on wide screens */
@media (min-width:761px){ .nav-menu a{ display:inline-flex; align-items:center; min-height:44px; } }
/* without JavaScript: no menu button or theme button (they need it); the menu shows as a simple row of links */
html:not(.js) .theme-toggle, html:not(.js) .nav-toggle, html:not(.js) [data-open-consent]{ display:none !important; }
@media (max-width:760px){
  html:not(.js) .nav{ flex-wrap:wrap; }
  html:not(.js) header .nav-menu{ position:static; visibility:visible; opacity:1; transform:none; width:100%; height:auto; padding:10px 0 0; background:none; flex-direction:row; flex-wrap:wrap; gap:0 18px; overflow:visible; }
  html:not(.js) header .nav-menu a:not(.nav-cta){ opacity:1; transform:none; font-size:.78rem; padding:12px 0; border:0; min-height:44px; }
  html:not(.js) header .nav-menu a:not(.nav-cta)::before, html:not(.js) header .nav-menu a:not(.nav-cta)::after, html:not(.js) header .nav-menu::after{ display:none; }
}

/* trusted.html: the invite code from a member's link */
.invite-panel{ border:1px solid var(--accent); background:var(--bg-raised); border-radius:var(--radius); padding:22px; margin:26px 0 10px; }
.invite-panel[hidden]{ display:none; }
[data-store-row][hidden],[data-store-ios][hidden],[data-store-android][hidden]{ display:none; }
[data-store-row]{ margin-bottom:14px; }
.invite-panel ol{ margin:10px 0 14px 1.2em; }
.subpage .invite-code, .invite-code{ font-size:clamp(2rem,9vw,3rem); font-weight:700; letter-spacing:.12em; color:var(--ink); margin:2px 0 12px; font-variant-numeric:tabular-nums; }
.invite-panel .dim{ color:var(--ink-dim); }

/* four steps (Circles): two by two on tablets, four across on wide screens */
.steps.steps-4{ grid-template-columns:repeat(4,1fr); }
@media (max-width:1100px){ .steps.steps-4{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .steps.steps-4{ grid-template-columns:1fr; } }

/* Home: the kinds of Good Company, as cards (a swipe row on phones, like the other home sections) */
.ranges{ padding:72px 0; border-top:1px solid var(--line); }
.ranges h2{ margin-top:6px; }
.ranges .lede{ margin:12px auto 0; max-width:56ch; text-align:center; }
.range-grid{ list-style:none; padding:0; margin:30px 0 0; }
.range-card h3{ margin:0 0 8px; }
.r-who{ display:inline-block; font-size:.78rem; font-weight:600; letter-spacing:.02em; color:var(--accent-text); border:1px solid var(--line); border-radius:999px; padding:3px 10px; white-space:nowrap; }
.range-card p{ margin-top:12px; }

/* Two-column tables fit a phone without sideways scrolling */
.table-wrap.two-col table{ min-width:0; }
.table-wrap.two-col td:first-child{ width:38%; }

/* Header spans the full width: logo flush left, menu and buttons flush right (the menu is wider than the content column). */
header .nav.wrap{ max-width:none; padding-left:clamp(20px,2.6vw,48px); padding-right:clamp(20px,2.6vw,48px); }
header .nav-menu{ margin-left:auto; }
@media (min-width:1481px){ header .brand{ margin-right:28px; } }

/* Good Company X: sport and level cards (in place of tables) */
.subpage .sport-grid, .subpage .level-grid{ list-style:none; padding:0; margin:22px 0 10px; }
.subpage .sport-grid li, .subpage .level-grid li{ margin:0; max-width:none; }
.sport-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.sport-card{ flex-direction:row !important; align-items:center !important; gap:16px; padding:18px 20px !important; }
.sport-card .step-icon{ margin:0 !important; flex-shrink:0; }
.sport-card h3{ font-size:1.12rem !important; margin:0 0 3px !important; }
.sport-card p{ margin:0 !important; font-size:.9rem !important; line-height:1.45; }
.sport-more{ border-style:dashed !important; background:transparent !important; box-shadow:none !important; }
.sport-more p a{ overflow-wrap:anywhere; }
.level-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.level-card .lvl-num{ display:flex; align-items:center; gap:10px; margin:0 0 12px !important; font-size:.74rem !important; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--accent-text); }
.lvl-bars{ display:inline-flex; gap:3px; align-items:flex-end; }
.lvl-bars i{ display:block; width:5px; border-radius:2px; background:var(--line); }
.lvl-bars i:nth-child(1){ height:8px; } .lvl-bars i:nth-child(2){ height:12px; } .lvl-bars i:nth-child(3){ height:16px; }
.lvl-bars i.on{ background:var(--accent-text); }
@media (max-width:980px){ .sport-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:860px){ .level-grid{ grid-template-columns:1fr; } }
@media (max-width:620px){ .sport-grid{ grid-template-columns:1fr; gap:10px; } .sport-card{ padding:14px 16px !important; } }
.subpage .level-card h3{ margin:0 0 8px; } .subpage .level-card p:last-child{ margin-bottom:0; }

/* Phones: the home "Find your Good Company" cards and the X page's sport and level cards swipe sideways,
   like the other card rows on the home page (the next card peeks in at the edge). */
@media (max-width:760px){
  .ranges .range-grid, .subpage .sport-grid, .subpage .level-grid{ display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:12px; margin:24px -20px 0 0; padding:4px 20px 14px 0; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
  .ranges .range-card, .subpage .sport-card, .subpage .level-card{ flex:0 0 80%; max-width:320px; scroll-snap-align:start; margin:0; }
  .subpage .sport-card{ flex-direction:column !important; align-items:flex-start !important; gap:0; padding:22px !important; }
  .subpage .sport-card .step-icon{ margin:0 0 14px !important; }
}

/* ---------- Launch cities: a slim bar on every page, and the home hero ---------- */
.launch-bar{ background:var(--bg-raised); border-bottom:1px solid var(--line); font-size:.86rem; line-height:1.45; }
.launch-bar .wrap{ display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:6px 12px; padding-top:9px; padding-bottom:9px; text-align:center; }
.launch-bar p{ color:var(--ink-dim); }
.launch-bar strong{ color:var(--ink); font-weight:600; }
.launch-bar a{ color:var(--accent-text); font-weight:600; text-underline-offset:3px; white-space:nowrap; }
.lb-dot{ width:8px; height:8px; border-radius:50%; background:var(--forest); box-shadow:0 0 0 4px rgba(82,180,138,.18); flex:none; }
.hero-cities{ position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; gap:10px; margin:28px auto 8px; max-width:640px; text-align:center; }
.hero-cities .hc-label{ font-size:.76rem; letter-spacing:.16em; text-transform:uppercase; color:var(--accent-text); font-weight:700; }
.hero-cities ul{ list-style:none; display:flex; flex-wrap:wrap; justify-content:center; gap:8px; margin:0; padding:0; }
.hero-cities li{ display:inline-flex; align-items:center; gap:7px; padding:7px 14px; border-radius:999px; border:1px solid var(--line); background:var(--card); color:var(--ink); font-weight:600; font-size:.95rem; }
.hero-cities li::before{ content:''; width:7px; height:7px; border-radius:50%; background:var(--forest); }
.hero-cities .hc-more{ color:var(--ink-dim); font-size:.9rem; }
@media (max-width:560px){
  .launch-bar{ font-size:.8rem; } .launch-bar .lb-more, .launch-bar a{ display:none; }
  .launch-bar .wrap{ flex-wrap:nowrap; gap:9px; padding-top:8px; padding-bottom:8px; }
  .hero-cities{ margin-top:20px; gap:8px; } .hero-cities ul{ gap:6px; } .hero-cities li{ padding:6px 11px; font-size:.88rem; gap:6px; }
}

/* Partner page card rows (who it's for, sponsors): a swipe row on phones, like the home page */
@media (max-width:760px){
  .subpage .usp-grid.swipe{ display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:12px; margin-right:-20px; padding:4px 20px 14px 0; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
  .subpage .usp-grid.swipe::-webkit-scrollbar{ display:none; }
  .subpage .usp-grid.swipe .usp-card{ flex:0 0 80%; max-width:320px; scroll-snap-align:start; margin:0; }
}

/* Partner and sponsor sections on the home page, and the example reports */
.work-sec .lede{ max-width:640px; margin:10px auto 0; text-align:center; color:var(--ink-dim); }
.work-sec + .work-sec{ border-top:0; background:var(--bg); }
.btn-row.center{ justify-content:center; margin-top:30px; }
.report-figs{ display:grid; grid-template-columns:1fr 1fr; gap:22px; margin:22px 0 8px; }
.report-figs.one{ grid-template-columns:minmax(0,560px); justify-content:center; }
.report-figs figure{ margin:0; }
.report-figs img{ width:100%; height:auto; display:block; border-radius:18px; border:1px solid var(--line); }
.report-figs figcaption{ font-size:.86rem; color:var(--ink-dim); margin-top:10px; text-align:center; }
@media (max-width:760px){ .report-figs{ grid-template-columns:1fr; } }
html:has(.nav-menu.open) .back-top{ display:none; }

/* The slide-out menu (tablet and laptop widths) holds eleven links: it scrolls on short screens rather than cutting the last ones off. */
@media (min-width:761px) and (max-width:1480px){
  header .nav-menu{ overflow-y:auto; overscroll-behavior:contain; gap:10px; }
}
@media (min-width:761px) and (max-width:1480px) and (max-height:820px){
  header .nav-menu{ gap:0; padding-top:84px; padding-bottom:20px; }
  header .nav-menu a{ font-size:1.05rem; }
}

/* Invite banner (someone arrived through an invite or campaign link) */
.invite-bar{ background:var(--card); border-bottom:1px solid var(--accent-deep); }
.invite-inner{ display:flex; align-items:center; gap:14px; justify-content:space-between; padding-top:14px; padding-bottom:14px; flex-wrap:wrap; }
.invite-inner p{ margin:0; color:var(--ink); font-size:.98rem; line-height:1.5; flex:1 1 280px; }
.invite-inner strong{ color:var(--accent-light); letter-spacing:.06em; font-family:ui-monospace,Menlo,Consolas,monospace; }
.invite-copy{ background:transparent; color:var(--accent-light); border:1px solid var(--accent-deep); border-radius:999px; padding:9px 16px; font:inherit; font-weight:600; cursor:pointer; }
.invite-copy:hover{ border-color:var(--accent); }
