/* ft-hidden-guard v1 */
[hidden]{display:none!important;}
:root{
  --space-xs: 8px;
  --space-sm: 16px;
  --space-md: 27px;
  --space-lg: 41px;
  --space-xl: 65px;
  --card-padding-y: 28px;
  --card-padding-x: 24px;
  --card-gap: 18px;
  --card-radius: 18px;
  --card-border-width: 2px;
  --card-min-height: 324px;
  --card-min-col-width: 318px;
  --btn-padding-y: 13px;
  --btn-padding-x: 31px;
  --btn-radius: 12px;
  --btn-gap-from-text: 19px;
  --grid-gap: 22px;
  --lh-heading: 1.28;
  --lh-body: 1.69;
  --ls-heading: 0.020em;

  --navy-edge: #070b16;
  --navy: #0c1424;
  --navy-warm: #131f37;
  --ink: #e9e3d3;
  --ink-dim: #b5ad99;
  --brass: #b08a3e;
  --brass-dim: #6e552a;
  --brass-bright: #d6ad58;
  --serif: 'CustomFont', 'Iowan Old Style', 'Palatino Linotype', 'Palatino', Georgia, ui-serif, serif;
  --sans: 'CustomFont', system-ui, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; min-width: 0; }
img, svg, video { max-width: 100%; height: auto; display: block; }
button, input, select, textarea { font: inherit; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background:
    radial-gradient(ellipse at 50% 30%, var(--navy-warm) 0%, var(--navy) 45%, var(--navy-edge) 100%);
  background-attachment: fixed;
  color: var(--ink);
  font-family: var(--serif);
  font-size: 17px;
  line-height: var(--lh-body);
  -webkit-font-smoothing: antialiased;
}

.wrap{ max-width: 1120px; margin: 0 auto; padding: 0 var(--space-md); }

/* Header */
.site-header{
  border-bottom: 1px solid rgba(176,138,62,0.28);
  padding: var(--space-md) 0;
}
.header__inner{ display:flex; align-items:baseline; justify-content:space-between; gap: var(--space-md); flex-wrap: wrap; }
.wordmark{
  font-family: var(--serif);
  font-size: 24px;
  letter-spacing: var(--ls-heading);
  color: var(--ink);
  text-decoration: none;
  font-weight: 600;
}
.nav{ display:flex; gap: var(--space-md); flex-wrap:wrap; }
.nav a{
  color: var(--ink-dim);
  text-decoration: none;
  font-family: var(--sans);
  font-size: 13px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding-bottom: 4px;
  border-bottom: 1px solid transparent;
  transition: color .25s ease, border-color .25s ease;
}
.nav a:hover, .nav a[aria-current="page"]{ color: var(--brass-bright); border-bottom-color: var(--brass); }

/* Hero */
.hero{
  padding: var(--space-xl) 0 var(--space-lg);
}
.hero--inner{ padding: var(--space-lg) 0 var(--space-md); }
.hero__title{
  font-family: var(--serif);
  font-weight: 600;
  color: var(--ink);
  font-size: clamp(44px, 7vw, 88px);
  line-height: var(--lh-heading);
  letter-spacing: var(--ls-heading);
  margin: var(--space-md) 0 var(--space-md);
  text-wrap: balance;
}
.hero__title--md{ font-size: clamp(36px, 5vw, 60px); }
.hero__sub{
  font-family: var(--serif);
  font-style: italic;
  color: var(--ink-dim);
  font-size: 19px;
  max-width: 60ch;
  margin: var(--space-md) 0;
}
.disclaimer-band{
  font-family: var(--sans);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--brass);
  margin: var(--space-md) 0 0;
  max-width: 80ch;
}

.hairline{
  border: 0;
  height: 1px;
  background: linear-gradient(to right, var(--brass-dim) 0, var(--brass) 30%, var(--brass) 70%, var(--brass-dim) 100%);
  margin: var(--space-sm) 0 var(--space-md);
  max-width: 720px;
}

/* Sections */
.section{ padding: var(--space-xl) 0; }
.section--alt{ background: rgba(255,255,255,0.02); border-top:1px solid rgba(176,138,62,0.18); border-bottom:1px solid rgba(176,138,62,0.18); }
.section__title{
  font-family: var(--serif);
  font-size: clamp(26px, 3vw, 34px);
  font-weight: 600;
  line-height: var(--lh-heading);
  letter-spacing: var(--ls-heading);
  color: var(--ink);
  margin: 0;
}
.section__lead{
  max-width: 62ch;
  color: var(--ink-dim);
  margin: var(--space-md) 0 var(--space-lg);
  font-size: 18px;
}

.two-col{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(var(--card-min-col-width), 1fr));
  gap: var(--space-lg);
}

.plain-list{ list-style: none; padding: 0; margin: var(--space-md) 0; }
.plain-list li{
  padding: var(--space-xs) 0;
  border-bottom: 1px dotted rgba(176,138,62,0.30);
  color: var(--ink-dim);
}
.plain-list li strong{ color: var(--ink); }

/* Cards */
.cards{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(var(--card-min-col-width), 1fr));
  gap: var(--grid-gap);
}
.card{
  background: rgba(7,11,22,0.55);
  border: var(--card-border-width) solid var(--brass-dim);
  border-radius: var(--card-radius);
  padding: var(--card-padding-y) var(--card-padding-x);
  display:flex; flex-direction: column; gap: var(--card-gap);
  min-height: var(--card-min-height);
  transition: transform .35s ease, border-color .35s ease;
  position: relative;
}
.card::before{
  content:"";
  position:absolute; inset: 6px;
  border: 1px solid rgba(176,138,62,0.35);
  border-radius: calc(var(--card-radius) - 6px);
  pointer-events:none;
}
.card:hover{ transform: translateY(-2px); border-color: var(--brass); }
.card__title{
  font-family: var(--serif);
  font-size: 26px;
  font-weight: 600;
  letter-spacing: var(--ls-heading);
  margin: 0;
  color: var(--ink);
}
.card__meta{
  font-family: var(--sans);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--brass);
  margin: 0;
}
.card__blurb{ color: var(--ink-dim); margin: 0; }

/* Buttons */
.btn{
  display:inline-block;
  font-family: var(--sans);
  font-size: 13px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: var(--btn-padding-y) var(--btn-padding-x);
  border-radius: var(--btn-radius);
  border: 1px solid var(--brass);
  text-decoration: none;
  cursor: pointer;
  margin-top: var(--btn-gap-from-text);
  transition: background-color .25s ease, color .25s ease, border-color .25s ease;
  align-self: flex-start;
}
.btn--primary{ background: var(--brass); color: var(--navy-edge); }
.btn--primary:hover{ background: var(--brass-bright); border-color: var(--brass-bright); }
.btn--ghost{ background: transparent; color: var(--ink); border-color: rgba(233,227,211,0.45); }
.btn--ghost:hover{ border-color: var(--brass); color: var(--brass-bright); }

/* Prose */
.prose{ max-width: 70ch; }
.prose p{ margin: var(--space-md) 0; color: var(--ink-dim); }
.prose strong{ color: var(--ink); }
.prose a{ color: var(--brass-bright); }
.prose .section__title{ margin-top: var(--space-lg); }

/* Footer */
.site-footer{
  border-top: 1px solid rgba(176,138,62,0.28);
  padding: var(--space-xl) 0 var(--space-lg);
  margin-top: var(--space-xl);
  background: rgba(7,11,22,0.45);
}
.footer__grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: var(--space-lg);
}
.footer__brand{ font-family: var(--serif); font-size: 20px; color: var(--ink); margin: 0 0 var(--space-xs); letter-spacing: var(--ls-heading); }
.footer__tag{ color: var(--ink-dim); font-style: italic; margin: 0 0 var(--space-sm); }
.footer__addr{ font-family: var(--sans); font-size: 12px; letter-spacing: 0.08em; color: var(--ink-dim); }
.footer__h{ font-family: var(--sans); font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--brass); margin: 0 0 var(--space-sm); }
.footer__list{ list-style: none; padding: 0; margin: 0; }
.footer__list li{ margin: 0 0 var(--space-xs); }
.footer__list a{ color: var(--ink); text-decoration: none; border-bottom: 1px dotted transparent; }
.footer__list a:hover{ color: var(--brass-bright); border-bottom-color: var(--brass); }
.footer__legal{
  margin-top: var(--space-lg);
  padding-top: var(--space-md);
  border-top: 1px solid rgba(176,138,62,0.18);
  font-size: 12px;
  color: var(--ink-dim);
  display:flex; justify-content:space-between; gap: var(--space-md); flex-wrap:wrap;
}
.footer__legal p{ margin: 0; }

/* Age gate */
.age-gate{
  position: fixed; inset: 0;
  background: rgba(7,11,22,0.92);
  z-index: 1000;
  align-items: center; justify-content: center;
  padding: var(--space-md);
}
.age-gate:not([hidden]){ display: flex; }
.age-gate__panel{
  background: var(--navy);
  border: 1px solid var(--brass);
  border-radius: var(--card-radius);
  padding: var(--space-lg);
  max-width: 480px;
  width: 100%;
  color: var(--ink);
}
.age-gate__panel h2{ font-family: var(--serif); font-size: 28px; margin: 0 0 var(--space-md); letter-spacing: var(--ls-heading); }
.age-gate__panel p{ color: var(--ink-dim); margin: 0 0 var(--space-md); }
.age-gate__actions{ display:flex; gap: var(--space-sm); flex-wrap:wrap; }

/* Cookie banner */
.cookie-banner{
  position: fixed; left: 0; right: 0; bottom: 0;
  background: var(--navy);
  border-top: 1px solid var(--brass);
  z-index: 900;
  padding: var(--space-md) 0;
}
.cookie-banner:not([hidden]){ display: block; }
.cookie-banner__inner{ display:flex; align-items:center; justify-content:space-between; gap: var(--space-md); flex-wrap:wrap; }
.cookie-banner__inner p{ margin: 0; color: var(--ink-dim); max-width: 60ch; font-size: 14px; }
.cookie-banner__inner a{ color: var(--brass-bright); }
.cookie-banner__actions{ display:flex; gap: var(--space-sm); }
.cookie-banner .btn{ margin-top: 0; }

/* Under-18 page */
.u18{ background: var(--navy-edge); color: var(--ink); }
.u18__main{ min-height: 100vh; display:flex; align-items:center; padding: var(--space-xl) 0; }
.u18 .prose, .u18 p{ color: var(--ink-dim); }
.u18 a{ color: var(--brass-bright); }

@media (max-width: 640px){
  .footer__legal{ flex-direction: column; }
  .header__inner{ gap: var(--space-sm); }
  .nav{ gap: var(--space-sm); }
}
