/* Baseline° — shared base styles (tokens, reset, nav, footer).
   Ported from the Claude Design prototypes. All visual values match the
   prototypes exactly. Page-specific styles live in css/<page>.css. */

:root{
  --bg:#000;
  --ink:#f4f4f2;
  --soft:#b9b9b6;
  --muted:#8a8a88;
  --line:#1e1e20;
  --line-2:#26262a;
  --hair:#3a3a3c;
  --panel:#0c0c0e;
  --mono:ui-monospace,monospace;
}

*{margin:0;padding:0;box-sizing:border-box}
html{background:var(--bg);scroll-behavior:smooth}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:'Jost',sans-serif;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--muted);text-decoration:none;transition:color .2s}
a:hover{color:var(--ink)}
h1,h2,h3{font-weight:300;margin:0;letter-spacing:.01em}
p{margin:0}
img{display:block}
button{font-family:inherit;cursor:pointer}
input{font-family:inherit}
.mono{font-family:var(--mono)}
.wrap{max-width:1360px;margin:0 auto;padding:0 52px}
.kick{font-family:var(--mono);font-size:12px;letter-spacing:.3em;color:var(--muted)}
::selection{background:var(--ink);color:#000}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{
  outline:1.5px solid var(--ink);outline-offset:3px;
}

/* Reveal-on-scroll */
.rv{opacity:0;transform:translateY(12px);transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1)}
.rv.in{opacity:1;transform:none}

/* Hero scan line (shared animation) */
@keyframes scanH{0%{left:-5%;opacity:0}12%{opacity:1}88%{opacity:1}100%{left:105%;opacity:0}}

/* ---------- Nav ---------- */
.site-nav{
  position:sticky;top:0;z-index:50;
  display:flex;justify-content:space-between;align-items:center;
  padding:18px 40px;
  background:rgba(0,0,0,.72);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.logo{display:flex;align-items:flex-start;color:#fff}
.logo:hover{color:#fff}
.logo-word{font-size:18px;font-weight:500;letter-spacing:.3em}
.logo-ring{width:6px;height:6px;border:1.5px solid #fff;border-radius:50%;margin-top:3px;margin-left:-.1em}
.nav-links{display:flex;align-items:center;gap:18px}
.nav-links a{font-size:11px;letter-spacing:.14em;color:var(--muted)}
.nav-links a.is-active{color:var(--ink)}
.nav-links .nav-cta{color:var(--ink);border:1px solid var(--ink);padding:9px 16px;white-space:nowrap;font-size:11px;letter-spacing:.14em;background:transparent;cursor:pointer}

/* ---------- Mobile menu ---------- */
.nav-menu-btn{display:none;background:transparent;border:none;color:var(--ink);font-size:11px;letter-spacing:.2em;padding:9px 6px;cursor:pointer}
.mm-overlay{
  position:fixed;inset:0;z-index:90;
  display:flex;flex-direction:column;padding:92px 30px 40px;
  background:rgba(0,0,0,.94);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
}
.mm-overlay[hidden]{display:none}
.mm-close{position:absolute;top:16px;right:16px;background:none;border:none;color:var(--muted);font-size:14px;padding:10px;cursor:pointer}
.mm-close:hover{color:var(--ink)}
.mm-kicker{font-size:11px;letter-spacing:.3em;color:var(--muted);margin-bottom:34px}
.mm-links{display:flex;flex-direction:column;gap:22px}
.mm-links a{font-size:30px;font-weight:300;letter-spacing:.04em;color:var(--ink)}
.mm-sub{display:flex;flex-direction:column;gap:16px;margin-top:38px;padding-top:30px;border-top:1px solid var(--line)}
.mm-sub a{font-size:11px;letter-spacing:.2em;color:var(--muted)}
.mm-join{margin-top:auto;width:100%;text-align:center;padding:15px}

/* ---------- JOIN modal ---------- */
.jm-overlay{
  position:fixed;inset:0;z-index:100;
  display:flex;align-items:center;justify-content:center;padding:24px;
  background:rgba(0,0,0,.78);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
}
.jm-overlay[hidden]{display:none}
.jm-panel{position:relative;width:100%;max-width:480px;background:var(--panel);border:1px solid var(--line-2);padding:52px 46px}
.jm-close{position:absolute;top:14px;right:14px;background:none;border:none;color:var(--muted);font-size:13px;padding:10px}
.jm-close:hover{color:var(--ink)}
.jm-kicker{font-size:12px;letter-spacing:.3em;color:var(--muted);margin-bottom:22px}
.jm-h{font-size:34px;font-weight:300;line-height:1.15;margin-bottom:14px}
.jm-sub{font-size:11px;letter-spacing:.16em;color:var(--muted);margin-bottom:34px}
.jm-label{display:block;font-size:11px;letter-spacing:.2em;color:var(--muted);margin-bottom:10px}
.jm-form input{
  width:100%;background:#000;border:1px solid var(--line-2);color:var(--ink);
  padding:15px 18px;font-size:14px;outline:none;font-family:inherit;margin-bottom:22px;
}
.jm-submit{
  display:flex;align-items:center;justify-content:center;gap:12px;width:100%;
  border:1px solid var(--ink);background:var(--ink);color:#000;
  padding:17px;font-size:11px;letter-spacing:.22em;margin-top:6px;
}
.jm-submit:hover{opacity:.82}
.jm-submit[disabled]{opacity:.6;cursor:default}
.jm-msg{font-size:11px;letter-spacing:.14em;color:var(--muted);margin-top:14px;min-height:14px}
.jm-success .jm-ring{width:22px;height:22px;border:4px solid #fff;border-radius:50%;margin-bottom:26px;box-sizing:content-box}
.jm-note{font-size:11px;letter-spacing:.16em;color:var(--muted);margin-top:12px}
@media (max-width:1100px){
  .jm-panel{padding:40px 28px}
  .jm-h{font-size:28px}
}

/* ---------- Footer ---------- */
.site-footer{padding:88px 52px 54px;background:#000;border-top:1px solid var(--line)}
.site-footer .wrap{padding:0}
.footer-top{
  display:grid;grid-template-columns:1.6fr 1fr;gap:72px;
  padding-bottom:60px;border-bottom:1px solid var(--line);align-items:end;
}
.newsletter-label{font-size:12px;letter-spacing:.2em;color:var(--muted);margin-bottom:18px}
.newsletter-form{display:flex;gap:2px;max-width:460px}
.newsletter-form input{
  flex:1;background:var(--panel);border:1px solid var(--line-2);color:var(--ink);
  padding:15px 18px;font-size:14px;outline:none;font-family:inherit;
}
.newsletter-form button{
  display:flex;align-items:center;padding:0 24px;
  border:1px solid var(--ink);color:var(--ink);
  font-size:11px;letter-spacing:.2em;background:none;
}
.newsletter-msg{font-size:11px;letter-spacing:.14em;color:var(--muted);margin-top:14px;height:14px}
.footer-links{display:grid;grid-template-columns:1fr 1fr 1fr;gap:40px}
.footer-col{display:flex;flex-direction:column;gap:13px}
.footer-col-label{font-size:11px;letter-spacing:.2em;color:var(--muted);margin-bottom:4px}
.footer-col a{font-size:15px}
.footer-cities{font-size:14px;color:var(--muted);line-height:1.6}
.footer-cities.is-first{margin-top:4px}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:30px}
.footer-copy{font-size:11px;letter-spacing:.18em;color:var(--muted)}
.footer-spacer{width:120px}

/* ---------- Responsive (shared) ---------- */
@media (max-width:1100px){
  body{min-width:0}
  .site-nav{padding:14px 20px}
  .nav-links{gap:14px}
  .nav-links a:not(.nav-cta){display:none}
  .nav-menu-btn{display:block}
  .wrap{padding:0 24px}
  .site-footer{padding-left:24px;padding-right:24px;padding-top:64px}
  .footer-top{grid-template-columns:1fr}
  .footer-links{grid-template-columns:1fr}
  /* Footer bottom: stack wordmark and copyright instead of colliding */
  .footer-bottom{flex-direction:column;align-items:flex-start;gap:16px}
  .footer-spacer{display:none}
  /* Hero meta rows: stack the stats instead of ragged two-line wraps */
  .hero .hero-meta{flex-direction:column;align-items:flex-start;gap:10px}
  .hero .hero-meta-divider{display:none}
  /* Inner-page heroes: stronger shade so kickers/subs stay legible over bright photo areas */
  .hero .hero-shade{background:linear-gradient(0deg,rgba(0,0,0,.94) 0%,rgba(0,0,0,.5) 60%,rgba(0,0,0,.45) 100%)}
}

@media (prefers-reduced-motion:reduce){
  .rv{opacity:1!important;transform:none!important;transition:none!important}
  *{animation:none!important;transition:none!important}
}
