:root{
  /* Full Swing Fairways palette from logo */
  --af-forest: #0E2A26;     /* deep green background */
  --af-ink:    #0A1F1C;     /* darker panels */
  --af-gold:   #C99457;     /* tee/gold ring */
  --af-parch:  #E7DFC8;     /* warm cream text */
  --af-muted:  rgba(231,223,200,0.7);
}

/* Tailwind utilities are in play; these CSS vars back custom classes & base */
*,
*::before,
*::after { box-sizing: border-box; }

body{
  margin:0;
  font-family:"Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: var(--af-forest);
  /* soft vignette in gold */
  background-image:
    radial-gradient(900px 600px at 15% 10%, rgba(201,148,87,0.12), transparent 60%),
    radial-gradient(700px 500px at 85% 15%, rgba(201,148,87,0.08), transparent 65%);
  color: var(--af-parch);
  line-height:1.6;
}

::selection{ background: rgba(201,148,87,0.28); color: #1B1B1B; }

a{ color: var(--af-parch); text-decoration:none; transition:opacity .2s ease; }
a:hover{ opacity:.9; }

table{ border-collapse:collapse; width:100%; }
th{ font-weight:600; text-transform:uppercase; letter-spacing:.08em; }

input,select,textarea,button{ font:inherit; }
input::placeholder,textarea::placeholder{ color: var(--af-muted); }
button{ cursor:pointer; }

/* helper classes for the template (Tailwind-style bridges) */
.text-af-parchment{ color: var(--af-parch); }
.text-af-muted{ color: var(--af-muted); }
.text-af-ink{ color: var(--af-ink); }
.text-af-gold{ color: var(--af-gold); }

.bg-af-ink{ background-color: var(--af-ink); }
.bg-af-gold{ background-color: var(--af-gold); }

.border-af-gold\/20{ border-color: color-mix(in oklab, var(--af-gold) 20%, transparent); }
.border-af-gold\/25{ border-color: color-mix(in oklab, var(--af-gold) 25%, transparent); }
.border-af-gold\/30{ border-color: color-mix(in oklab, var(--af-gold) 30%, transparent); }
.border-af-gold\/35{ border-color: color-mix(in oklab, var(--af-gold) 35%, transparent); }
.border-af-gold\/40{ border-color: color-mix(in oklab, var(--af-gold) 40%, transparent); }

.border-af-parchment\/10{ border-color: color-mix(in oklab, var(--af-parch) 10%, transparent); }
.text-af-parchment\/90{ color: color-mix(in oklab, var(--af-parch) 90%, transparent); }

/* aliases used in template */
:root{
  --af-forest-plain: var(--af-forest);
}
.bg-af-ink\/40{ background-color: color-mix(in oklab, var(--af-ink) 40%, transparent); }
.bg-af-ink\/50{ background-color: color-mix(in oklab, var(--af-ink) 50%, transparent); }
.bg-af-ink\/60{ background-color: color-mix(in oklab, var(--af-ink) 60%, transparent); }
.bg-af-ink\/70{ background-color: color-mix(in oklab, var(--af-ink) 70%, transparent); }
.bg-af-ink\/75{ background-color: color-mix(in oklab, var(--af-ink) 75%, transparent); }
.bg-af-ink\/80{ background-color: color-mix(in oklab, var(--af-ink) 80%, transparent); }

.text-af-parchment{ color: var(--af-parch); }
.text-af-parchment\/95{ color: color-mix(in oklab, var(--af-parch) 95%, transparent); }

/* legacy var compatibility for any base.html usage */
:root{
  --pulse-charcoal: var(--af-forest);
  --pulse-ink: var(--af-ink);
  --pulse-amber: var(--af-gold);
  --pulse-text: var(--af-parch);
  --pulse-muted: var(--af-muted);
}

/* responsive font tweak */
@media (max-width: 768px){
  html{ font-size:15px; }
}
