@font-face{
  font-family:'Cormorant';
  font-style:normal;
  font-weight:300 600;
  font-display:swap;
  src:url('/assets/fonts/cormorant-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Cormorant';
  font-style:italic;
  font-weight:300 500;
  font-display:swap;
  src:url('/assets/fonts/cormorant-italic-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Manrope';
  font-style:normal;
  font-weight:300 600;
  font-display:swap;
  src:url('/assets/fonts/manrope-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Geist Mono';
  font-style:normal;
  font-weight:400 500;
  font-display:swap;
  src:url('/assets/fonts/geist-mono-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

:root{
  --ivory:#FBF8FA;
  --paper:#FFFFFF;
  --pearl:#EFF8F7;
  --powder:#F5E6F0;
  --blush:#E9C5D2;
  --rose:#DFA7B9;
  --mauve:#B97892;
  --rose-gold:#CDB8D8;
  --champagne-rose:#E0AFC0;
  --wine:#78384F;
  --wine-soft:#98576B;
  --aubergine:#342631;
  --plum:#241820;
  --nav-deep:rgba(86,74,82,.78);
  --nav-deep-strong:rgba(86,74,82,.94);
  --teal-deep:#1F3D3C;
  --teal:#2D5F5C;
  --teal-soft:#4F827E;
  --teal-mist:#B9D9D4;
  --ink:#251720;
  --ink-soft:#6B5159;
  --line:rgba(37,23,32,.14);
  --line-soft:rgba(37,23,32,.07);

  --cream:var(--ivory);
  --bone:var(--pearl);
  --sand:var(--powder);
  --mist:var(--blush);
  --clay:var(--wine);
  --champagne:var(--champagne-rose);
  --sage:var(--wine-soft);
  --sage-deep:var(--wine);
  --moss:var(--aubergine);

  --serif:'Cormorant', Georgia, 'Times New Roman', ui-serif, serif;
  --sans:'Manrope', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --mono:'Geist Mono', 'SF Mono', Menlo, Consolas, ui-monospace, monospace;

  --shadow:0 30px 80px -40px rgba(37,23,32,.28), 0 8px 24px -16px rgba(37,23,32,.14);
  --shadow-soft:0 24px 60px -30px rgba(107,45,64,.18);
  --shadow-card:0 24px 70px rgba(37,23,32,.08);
  --radius-tight:3px;
  --radius-card:22px;
  --focus-ring:2px solid rgba(107,45,64,.24);
  --surface-card:rgba(255,253,249,.86);
  --surface-fresh:linear-gradient(135deg, #ffffff 0%, #f8fbfb 58%, #fff8fb 100%);
  --surface-rose:linear-gradient(135deg, #ffffff 0%, #fff6fa 100%);
  --surface-teal:linear-gradient(135deg, #ffffff 0%, #f7fbfb 100%);
  --surface-lilac:linear-gradient(135deg, #ffffff 0%, #fbf8fa 100%);
  --surface-deep:linear-gradient(135deg, #342631 0%, #4b3040 100%);
  --grain:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240' viewBox='0 0 240 240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.14  0 0 0 0 0.09  0 0 0 0 0.12  0 0 0 0.10 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}

:focus-visible{
  outline:var(--focus-ring);
  outline-offset:3px;
}

.btn,
.btn-primary{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.7rem;
  border:0;
  border-radius:var(--radius-tight);
  background:var(--wine);
  color:var(--ivory);
  padding:.92rem 1.25rem;
  font-family:var(--mono);
  font-size:.72rem;
  font-weight:500;
  letter-spacing:.15em;
  line-height:1;
  text-transform:uppercase;
  text-decoration:none;
  cursor:pointer;
  transition:background .22s ease, color .22s ease, border-color .22s ease, box-shadow .22s ease, transform .22s ease;
}
.btn:hover,
.btn-primary:hover{
  background:var(--wine-soft);
}
.cta-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.7rem;
  padding:.7rem 1.6rem;
  background:var(--wine);
  color:var(--ivory);
  font-family:var(--mono);
  font-size:.72rem;
  font-weight:500;
  letter-spacing:.18em;
  line-height:1;
  text-transform:uppercase;
  text-decoration:none;
  border-radius:var(--radius-tight);
  transition:background .22s ease, color .22s ease, box-shadow .22s ease, transform .22s ease;
}
.cta-btn:hover{
  background:var(--wine-soft);
}
a.cta-btn,
a.cta-btn:hover{
  color:var(--ivory);
  text-decoration:none;
}
.btn.secondary,
.btn-ghost{
  background:transparent;
  color:var(--wine);
  border:1px solid var(--wine);
}
.btn.secondary:hover,
.btn-ghost:hover{
  background:var(--wine);
  color:var(--ivory);
}
.btn:disabled,
.btn-primary:disabled{
  opacity:.45;
  cursor:not-allowed;
}
.btn[hidden],
.message[hidden]{
  display:none;
}

.form-card,
.panel,
.preview-card,
.faq-item,
.spoke-card,
.hub-cta,
.article-cta,
.post-card,
.related-card,
.credentials,
.about-cta,
.result-box{
  background:var(--surface-card);
  border:1px solid var(--line-soft);
  box-shadow:var(--shadow-card);
}
.article-cta,
.post-card,
.related-card,
.credentials,
.about-cta,
.result-box{
  border-radius:var(--radius-tight);
}
.post-card,
.related-card{
  transition:transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s cubic-bezier(.2,.7,.2,1);
}
.post-card:hover,
.related-card:hover{
  transform:translateY(-4px);
  box-shadow:var(--shadow);
}
.spoke-card{
  border-radius:var(--radius-tight);
  transition:transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s ease;
}
.spoke-card:hover{
  transform:translateY(-3px);
  box-shadow:var(--shadow);
}
.spoke-card.upcoming{
  background:rgba(255,253,249,.54);
  box-shadow:none;
}
.hub-cta{
  border-radius:var(--radius-tight);
}

input,
select,
textarea{
  font:inherit;
}
input:focus,
select:focus,
textarea:focus{
  outline:var(--focus-ring);
  outline-offset:2px;
}
.form-card input,
.form-card select,
.email-box input,
.email-box select{
  width:100%;
  border:1px solid var(--line);
  background:var(--paper);
  padding:.78rem .85rem;
  color:var(--ink);
  border-radius:0;
}

@media(prefers-reduced-motion: reduce){
  *,
  *::before,
  *::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    scroll-behavior:auto !important;
    transition-duration:.01ms !important;
  }
}
