/* ============================================================
   EVERYONE PLAYS CIC / PLYMOUTH KICKABOUTS - shared brand CSS
   Cream / charcoal / vermilion · CVD-safe
   Bricolage Grotesque (display) · Figtree (body)
   ============================================================ */
:root{
  --bg: #F5F3EE;
  --bg-2: #EBE7DD;
  --ink: #0A0A08;
  --ink-2: #26241F;
  --muted: #6A6559;
  --line: #D9D3C2;
  --card: #FFFFFF;
  --accent: oklch(58% 0.17 30);       /* vermilion, CVD safe */
  --accent-soft: oklch(92% 0.05 30);
  --ok: oklch(52% 0.12 150);
  --warn: oklch(70% 0.15 75);
  --radius: 6px;
}
html.dark{
  --bg:#0A0A08;--bg-2:#15140F;--ink:#F5F3EE;--ink-2:#CFC9B8;
  --muted:#8F897A;--line:#2A2720;--card:#15140F;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);
  font-family:"Figtree",system-ui,sans-serif;font-size:17px;line-height:1.5;
  -webkit-font-smoothing:antialiased;}
img{display:block;max-width:100%}
a{color:inherit}
.wrap{max-width:1280px;margin:0 auto;padding:0 28px}
.mono{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:11px;
  letter-spacing:0.1em;text-transform:uppercase;color:var(--muted)}
.display{font-family:"Bricolage Grotesque",sans-serif;font-weight:800;
  letter-spacing:-0.035em;line-height:0.92;font-variation-settings:"opsz" 96}

/* NAV */
nav.top{position:sticky;top:0;z-index:40;
  background:color-mix(in srgb, var(--bg) 88%, transparent);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
nav.top .wrap{display:flex;align-items:center;justify-content:space-between;height:84px}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none}
.brand .badge{height:64px;width:64px;display:grid;place-items:center}
.brand .badge img{width:100%;height:100%;object-fit:contain}
html.dark .brand .badge img{filter:invert(1)}
.brand .bn{font-family:"Bricolage Grotesque";font-weight:800;font-size:15px;
  letter-spacing:-0.01em;line-height:1;text-transform:uppercase}
.brand .bn em{font-style:normal;color:var(--muted);font-weight:500;font-size:11px;
  display:block;margin-top:4px;letter-spacing:0.08em;text-transform:uppercase}
.navlinks{display:flex;align-items:center;gap:24px}
.navlinks a{text-decoration:none;font-weight:600;font-size:13.5px;color:var(--ink-2);
  text-transform:uppercase;letter-spacing:0.05em}
.navlinks a:hover{color:var(--accent)}
.navlinks .cta{background:var(--ink);color:var(--bg);padding:11px 20px;border-radius:4px;font-weight:700}
.navlinks .cta:hover{background:var(--accent);color:#fff}
@media (max-width:760px){.navlinks a:not(.cta){display:none}}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:13px 22px;border-radius:var(--radius);border:1px solid transparent;
  font-family:inherit;font-weight:700;font-size:15px;cursor:pointer;
  text-decoration:none;text-align:center;transition:all .15s ease;line-height:1}
.btn-primary{background:var(--accent);color:#fff}
.btn-primary:hover{filter:brightness(1.05)}
.btn-primary:disabled{background:var(--muted);cursor:not-allowed;filter:none}
.btn-ink{background:var(--ink);color:var(--bg)}
.btn-ink:hover{background:var(--accent);color:#fff}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn-ghost:hover{border-color:var(--ink)}
.btn-sm{padding:8px 14px;font-size:13px;border-radius:4px}
.btn-block{width:100%}

/* FORM CONTROLS */
label{display:block;font-weight:600;font-size:14px;margin-bottom:6px;color:var(--ink-2)}
label .req{color:var(--accent);margin-left:2px}
label .hint{display:block;font-weight:400;font-size:13px;color:var(--muted);margin-top:2px}
input[type=text],input[type=email],input[type=tel],input[type=date],
input[type=number],input[type=password],input[type=url],input[type=datetime-local],
select,textarea{
  width:100%;padding:12px 14px;font:inherit;font-size:15px;
  background:var(--card);color:var(--ink);border:1px solid var(--line);
  border-radius:var(--radius);transition:border-color .15s ease}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 20%, transparent)}
textarea{min-height:100px;resize:vertical}
.checkbox-row{display:flex;align-items:flex-start;gap:10px;margin:10px 0;
  padding:12px;background:var(--bg-2);border-radius:var(--radius)}
.checkbox-row input[type=checkbox]{flex:none;margin-top:3px;width:18px;height:18px;accent-color:var(--accent)}
.checkbox-row label{margin:0;font-weight:500;font-size:14px}
.field-group{margin-bottom:18px}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:560px){.field-row{grid-template-columns:1fr}}
fieldset{border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin:0 0 18px}
legend{padding:0 8px;font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:0.06em;color:var(--accent)}

/* CARDS & LAYOUT */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px}
.section{padding:56px 0}
.section h1,.section h2{font-family:"Bricolage Grotesque";font-weight:800;
  letter-spacing:-0.03em;line-height:1;margin:0 0 8px}
.section h1{font-size:clamp(38px,6vw,76px)}
.section h2{font-size:clamp(28px,4vw,44px)}
.section .lede{font-size:18px;color:var(--ink-2);max-width:56ch;margin:0 0 28px}
.eyebrow{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:0.14em;
  text-transform:uppercase;color:var(--accent);margin:0 0 14px;display:inline-block;
  padding:5px 9px;background:var(--accent-soft);border-radius:3px}

/* BADGES / PILLS */
.pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;
  font-size:12px;font-weight:700;letter-spacing:0.04em;text-transform:uppercase}
.pill-ok{background:color-mix(in srgb, var(--ok) 16%, transparent);color:var(--ok)}
.pill-accent{background:var(--accent-soft);color:var(--accent)}
.pill-warn{background:color-mix(in srgb, var(--warn) 18%, transparent);color:oklch(48% 0.14 75)}
.pill-muted{background:var(--bg-2);color:var(--muted)}
.pill-ink{background:var(--ink);color:var(--bg)}

/* Founding member badge */
.founder-badge{display:inline-flex;align-items:center;gap:6px;
  background:var(--ink);color:var(--bg);padding:4px 10px;border-radius:3px;
  font-size:11px;font-weight:800;letter-spacing:0.08em;text-transform:uppercase;
  font-family:"Bricolage Grotesque"}
.founder-badge::before{content:"★";color:var(--accent)}

/* TOAST */
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(120%);
  background:var(--ink);color:var(--bg);padding:14px 22px;border-radius:var(--radius);
  font-weight:600;z-index:200;transition:transform .25s ease;box-shadow:0 8px 30px rgba(0,0,0,0.2)}
.toast.show{transform:translateX(-50%) translateY(0)}
.toast.err{background:var(--accent)}

/* FOOTER */
footer.site{background:var(--ink);color:var(--bg);padding:48px 0 28px;margin-top:80px}
footer.site a{color:var(--bg);text-decoration:none;opacity:.8}
footer.site a:hover{opacity:1;color:var(--accent)}
footer.site .foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px;margin-bottom:32px}
@media(max-width:760px){footer.site .foot-grid{grid-template-columns:1fr;gap:24px}}
footer.site h4{font-family:"Bricolage Grotesque";font-size:14px;
  text-transform:uppercase;letter-spacing:0.08em;margin:0 0 12px;color:var(--accent)}
footer.site ul{list-style:none;padding:0;margin:0;font-size:14px}
footer.site ul li{margin-bottom:8px}
footer.site .cr{border-top:1px solid #2a2720;padding-top:18px;font-size:12px;
  color:#8F897A;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}

/* UTIL */
.grid{display:grid;gap:20px}
.g2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.stack>*+*{margin-top:14px}
.muted{color:var(--muted)}
.small{font-size:13px}
.big{font-size:20px}
.hide{display:none!important}
.spinner{display:inline-block;width:16px;height:16px;border:2px solid currentColor;
  border-right-color:transparent;border-radius:50%;animation:spin 0.7s linear infinite;vertical-align:-3px}
@keyframes spin{to{transform:rotate(360deg)}}

/* ============================================================
   Accessibility
   ============================================================ */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

@media (prefers-contrast: more) {
  :root {
    --line: #000000;
    --muted: #333333;
    --bg-2: #ffffff;
  }
}

:focus-visible {
  outline: 3px solid var(--accent);
  outline-offset: 3px;
  border-radius: 2px;
}
