:root {
  --ds-primary-50: #fff8ec;
  --ds-primary-100: #fdecc8;
  --ds-primary-200: #f8da99;
  --ds-primary-300: #f2c566;
  --ds-primary-400: #eba83a;
  --ds-primary-500: #db8517;
  --ds-primary-600: #b96a12;
  --ds-primary-700: #945214;
  --ds-primary-800: #744014;
  --ds-primary-900: #5a300f;
  --ds-secondary-50: #fff4f2;
  --ds-secondary-100: #feded8;
  --ds-secondary-200: #fcc0b5;
  --ds-secondary-300: #f79d8a;
  --ds-secondary-400: #f17358;
  --ds-secondary-500: #de4c30;
  --ds-secondary-600: #bd3922;
  --ds-secondary-700: #982e1f;
  --ds-secondary-800: #7b291f;
  --ds-secondary-900: #64241d;
  --ds-accent-50: #fefbe9;
  --ds-accent-100: #faf1bd;
  --ds-accent-200: #f2df88;
  --ds-accent-300: #e8c84f;
  --ds-accent-400: #d9a91f;
  --ds-accent-500: #bd870f;
  --ds-accent-600: #9b690e;
  --ds-accent-700: #7b510f;
  --ds-accent-800: #614011;
  --ds-accent-900: #4a300f;
  --ds-neutral-50: #faf7f3;
  --ds-neutral-100: #ede5dd;
  --ds-neutral-200: #dccdbf;
  --ds-neutral-300: #c7b09d;
  --ds-neutral-400: #ac8f79;
  --ds-neutral-500: #8d705c;
  --ds-neutral-600: #6f5747;
  --ds-neutral-700: #564338;
  --ds-neutral-800: #3f3128;
  --ds-neutral-900: #261f19;
  --ds-font-body: "Source Serif 4", "Georgia", serif;
  --ds-font-heading: "Space Grotesk", "Avenir Next", "Segoe UI", sans-serif;
  --ds-font-ui: "Source Sans 3", "Avenir Next", "Segoe UI", sans-serif;
  --ds-font-size-body: 0.9375rem;
  --ds-font-size-xs: 0.75rem;
  --ds-font-size-sm: 0.875rem;
  --ds-font-size-md: 1rem;
  --ds-font-size-lg: 1.125rem;
  --ds-font-size-xl: 1.25rem;
  --ds-font-size-2xl: 1.5rem;
  --ds-font-size-3xl: 1.875rem;
  --ds-font-size-4xl: 2.25rem;
  --ds-line-tight: 1.2;
  --ds-line-snug: 1.35;
  --ds-line-normal: 1.6;
  --ds-line-relaxed: 1.75;
  --ds-weight-regular: 400;
  --ds-weight-medium: 500;
  --ds-weight-semibold: 600;
  --ds-weight-bold: 700;
  --ds-weight-heavy: 800;
  --ds-space-0: 0;
  --ds-space-4: 0.25rem;
  --ds-space-8: 0.5rem;
  --ds-space-12: 0.75rem;
  --ds-space-16: 1rem;
  --ds-space-20: 1.25rem;
  --ds-space-24: 1.5rem;
  --ds-space-32: 2rem;
  --ds-space-40: 2.5rem;
  --ds-space-48: 3rem;
  --ds-space-56: 3.5rem;
  --ds-space-64: 4rem;
  --ds-density: 0.88;
  --ds-radius: 0.875rem;
  --ds-shadow: 0 1rem 2.5rem rgba(15, 23, 42, 0.15);
  --ds-surface-main: #faf7f3;
  --ds-surface-panel: #ede5dd;
  --ds-border-soft: #dccdbf;
  --ds-text-main: #261f19;
  --ds-text-muted: #564338;
  --ds-focus-ring: rgba(189, 135, 15, 0.26);
  --ds-content-max: 72rem;
  --ds-hero-surface: linear-gradient(130deg, rgba(253, 236, 200, 0.66) 0%, rgba(254, 222, 216, 0.56) 55%, rgba(254, 251, 233, 0.7) 100%);
  --ds-page-bg: linear-gradient(145deg, rgba(253, 236, 200, 0.66) 0%, rgba(254, 222, 216, 0.62) 34%, rgba(250, 247, 243, 0.94) 68%, rgba(250, 241, 189, 0.5) 100%);
}
* {
  box-sizing: border-box;
}
html {
  font-size: var(--ds-font-size-body);
}
body {
  margin: 0;
  font-family: var(--ds-font-body);
  color: var(--ds-text-main);
  background: var(--ds-page-bg);
  line-height: var(--ds-line-normal);
}
a {
  color: var(--ds-primary-700);
  text-decoration: none;
}
a:hover {
  text-decoration: underline;
}
a:focus-visible,
button:focus-visible {
  outline: 0.125rem solid var(--ds-primary-500);
  box-shadow: 0 0 0 0.25rem var(--ds-focus-ring);
}
.ds-skip-link {
  position: absolute;
  left: var(--ds-space-16);
  top: calc(-1 * var(--ds-space-64));
  z-index: 100;
  background: var(--ds-accent-500);
  color: var(--ds-neutral-50);
  border-radius: var(--ds-radius);
  padding: var(--ds-space-8) var(--ds-space-16);
  font-family: var(--ds-font-ui);
  font-weight: var(--ds-weight-bold);
}
.ds-skip-link:focus {
  top: var(--ds-space-12);
}
.ds-header {
  position: sticky;
  top: 0;
  z-index: 20;
  backdrop-filter: blur(0.625rem);
  background: rgba(250, 247, 243, 0.92);
  border-bottom: 0.0625rem solid var(--ds-border-soft);
}
.ds-header__inner {
  width: min(var(--ds-content-max), calc(100% - var(--ds-space-24) * 2));
  margin: 0 auto;
  padding: calc(var(--ds-space-12) * var(--ds-density)) 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: calc(var(--ds-space-12) * var(--ds-density));
}
.ds-brand {
  display: inline-flex;
  gap: calc(var(--ds-space-12) * var(--ds-density));
  align-items: center;
}
.ds-brand:hover {
  text-decoration: none;
}
.ds-brand__mark {
  width: calc(var(--ds-space-32) * var(--ds-density));
  height: calc(var(--ds-space-32) * var(--ds-density));
  border-radius: 9999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--ds-neutral-50);
  font-family: var(--ds-font-ui);
  font-size: var(--ds-font-size-xs);
  font-weight: var(--ds-weight-heavy);
  background: linear-gradient(140deg, var(--ds-primary-500), var(--ds-secondary-500));
  box-shadow: var(--ds-shadow);
}
.ds-brand__text {
  display: grid;
}
.ds-brand__title {
  font-family: var(--ds-font-heading);
  font-size: var(--ds-font-size-xl);
  line-height: var(--ds-line-tight);
  font-weight: var(--ds-weight-heavy);
}
.ds-brand__subtitle {
  color: var(--ds-text-muted);
  font-family: var(--ds-font-ui);
  font-size: var(--ds-font-size-xs);
}
.ds-nav {
  display: flex;
  flex-wrap: wrap;
  gap: calc(var(--ds-space-8) * var(--ds-density));
}
.ds-nav a {
  display: inline-flex;
  align-items: center;
  border: 0.0625rem solid var(--ds-primary-200);
  border-radius: 9999px;
  background: rgba(255, 248, 236, 0.9);
  color: var(--ds-primary-800);
  font-family: var(--ds-font-ui);
  font-weight: var(--ds-weight-bold);
  font-size: var(--ds-font-size-sm);
  padding: calc(var(--ds-space-8) * var(--ds-density)) calc(var(--ds-space-12) * var(--ds-density));
}
.ds-nav a[aria-current="page"] {
  background: var(--ds-primary-600);
  border-color: var(--ds-primary-700);
  color: var(--ds-neutral-50);
}
.ds-shell {
  width: min(var(--ds-content-max), calc(100% - var(--ds-space-16) * 2));
  margin: 0 auto;
  padding: calc(var(--ds-space-24) * var(--ds-density)) 0 calc(var(--ds-space-40) * var(--ds-density));
  display: grid;
  gap: calc(var(--ds-space-20) * var(--ds-density));
}
.ds-panel {
  background: var(--ds-surface-panel);
  border: 0.0625rem solid var(--ds-border-soft);
  border-radius: var(--ds-radius);
  box-shadow: var(--ds-shadow);
  padding: calc(var(--ds-space-16) * var(--ds-density));
}
.ds-hero {
  background: var(--ds-hero-surface);
  border: 0.0625rem solid rgba(242, 197, 102, 0.65);
  border-radius: var(--ds-radius);
  box-shadow: var(--ds-shadow);
  padding: calc(var(--ds-space-20) * var(--ds-density));
}
.ds-hero h1 {
  margin: 0;
  font-family: var(--ds-font-heading);
  font-weight: var(--ds-weight-heavy);
  line-height: var(--ds-line-tight);
  font-size: clamp(var(--ds-font-size-2xl), 3.2vw, var(--ds-font-size-4xl));
  max-width: 24ch;
}
.ds-hero p {
  margin: calc(var(--ds-space-12) * var(--ds-density)) 0 0;
  color: var(--ds-text-muted);
  max-width: 65ch;
}
.ds-hero__kicker {
  display: inline-flex;
  align-items: center;
  margin-bottom: calc(var(--ds-space-12) * var(--ds-density));
  border: 0.0625rem solid rgba(189, 135, 15, 0.4);
  border-radius: 9999px;
  background: rgba(254, 251, 233, 0.95);
  color: var(--ds-accent-800);
  font-family: var(--ds-font-ui);
  font-weight: var(--ds-weight-bold);
  font-size: var(--ds-font-size-xs);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: calc(var(--ds-space-4) * var(--ds-density)) calc(var(--ds-space-8) * var(--ds-density));
}
.ds-hero--centered {
  text-align: center;
}
.ds-hero--centered h1,
.ds-hero--centered p {
  margin-inline: auto;
}
.ds-hero--split {
  display: grid;
  gap: calc(var(--ds-space-20) * var(--ds-density));
}
.ds-hero__panel {
  min-height: calc(var(--ds-space-64) * 2 * var(--ds-density));
  border-radius: calc(var(--ds-radius) * 0.9);
  background:
    radial-gradient(circle at 20% 20%, rgba(235, 168, 58, 0.45) 0%, transparent 45%),
    radial-gradient(circle at 80% 75%, rgba(241, 115, 88, 0.55) 0%, transparent 50%),
    linear-gradient(120deg, rgba(250, 247, 243, 0.88) 0%, rgba(250, 241, 189, 0.3) 100%);
}
.ds-content-grid {
  display: grid;
  gap: calc(var(--ds-space-20) * var(--ds-density));
  align-items: start;
}
.ds-main {
  min-width: 0;
}
.ds-article {
  display: grid;
  gap: calc(var(--ds-space-16) * var(--ds-density));
}
.ds-article section {
  padding: calc(var(--ds-space-16) * var(--ds-density));
  border-radius: calc(var(--ds-radius) * 0.86);
  border: 0.0625rem solid rgba(199, 176, 157, 0.75);
  background: rgba(250, 247, 243, 0.84);
}
.ds-article h2 {
  margin: 0 0 calc(var(--ds-space-8) * var(--ds-density));
  font-family: var(--ds-font-heading);
  font-size: var(--ds-font-size-xl);
  line-height: var(--ds-line-snug);
}
.ds-article p {
  margin: 0;
  color: var(--ds-text-main);
  max-width: 86ch;
}
.ds-article p + p {
  margin-top: calc(var(--ds-space-12) * var(--ds-density));
}
.ds-fact-list,
.ds-tips-list,
.ds-checklist ol,
.ds-notes ul {
  margin: 0;
  padding-left: calc(var(--ds-space-16) * var(--ds-density));
  display: grid;
  gap: calc(var(--ds-space-8) * var(--ds-density));
}
.ds-toc {
  border: 0.0625rem dashed rgba(219, 133, 23, 0.5);
  border-radius: calc(var(--ds-radius) * 0.86);
  background: rgba(255, 244, 242, 0.95);
  padding: calc(var(--ds-space-12) * var(--ds-density));
}
.ds-toc h2 {
  margin: 0;
  font-family: var(--ds-font-ui);
  font-size: var(--ds-font-size-md);
}
.ds-toc ul {
  margin: calc(var(--ds-space-8) * var(--ds-density)) 0 0;
  padding-left: calc(var(--ds-space-16) * var(--ds-density));
  display: grid;
  gap: calc(var(--ds-space-8) * var(--ds-density));
}
.ds-toc--sticky {
  position: sticky;
  top: calc(var(--ds-space-56) * var(--ds-density));
}
.ds-cards {
  display: grid;
  gap: calc(var(--ds-space-12) * var(--ds-density));
}
.ds-cards--grid {
  grid-template-columns: 1fr;
}
.ds-card {
  border-radius: calc(var(--ds-radius) * 0.9);
  padding: calc(var(--ds-space-16) * var(--ds-density));
}
.ds-cards--outlined .ds-card {
  border: 0.0625rem solid rgba(242, 197, 102, 0.6);
  background: rgba(250, 247, 243, 0.93);
}
.ds-cards--filled .ds-card {
  border: 0.0625rem solid rgba(248, 218, 153, 0.45);
  background: rgba(255, 248, 236, 0.72);
}
.ds-cards--list .ds-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}
.ds-card h2 {
  margin: 0;
  font-family: var(--ds-font-ui);
  font-size: var(--ds-font-size-lg);
}
.ds-card p {
  margin: calc(var(--ds-space-8) * var(--ds-density)) 0 0;
  color: var(--ds-text-muted);
}
.ds-related {
  border-radius: calc(var(--ds-radius) * 0.86);
  border: 0.0625rem solid rgba(242, 197, 102, 0.55);
  background: rgba(255, 244, 242, 0.9);
  padding: calc(var(--ds-space-12) * var(--ds-density));
}
.ds-related h2 {
  margin: 0;
  font-family: var(--ds-font-ui);
  font-size: var(--ds-font-size-md);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--ds-primary-800);
}
.ds-related ul {
  margin: calc(var(--ds-space-8) * var(--ds-density)) 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: 1fr;
  gap: calc(var(--ds-space-8) * var(--ds-density));
}
.ds-related a {
  display: block;
  border: 0.0625rem solid rgba(242, 197, 102, 0.55);
  border-radius: calc(var(--ds-radius) * 0.72);
  background: rgba(250, 247, 243, 0.94);
  padding: calc(var(--ds-space-8) * var(--ds-density)) calc(var(--ds-space-12) * var(--ds-density));
  color: var(--ds-primary-900);
  font-family: var(--ds-font-ui);
  font-weight: var(--ds-weight-semibold);
}
.ds-related a:hover {
  text-decoration: none;
  transform: translateY(-0.0625rem);
}
.ds-faq {
  margin: 0;
  display: grid;
  gap: calc(var(--ds-space-12) * var(--ds-density));
}
.ds-faq dt {
  font-family: var(--ds-font-heading);
  font-size: var(--ds-font-size-lg);
  margin: 0;
}
.ds-faq dd {
  margin: calc(var(--ds-space-8) * var(--ds-density)) 0 0;
  color: var(--ds-text-muted);
}
.ad-slot {
  display: none;
}
.ad-slot.is-visible {
  display: block;
  min-height: calc(var(--ds-space-64) * var(--ds-density));
  border: 0.0625rem dashed rgba(189, 135, 15, 0.5);
  border-radius: calc(var(--ds-radius) * 0.72);
  background: rgba(254, 251, 233, 0.66);
  padding: calc(var(--ds-space-12) * var(--ds-density));
}
.ds-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 9999px;
  border: 0.0625rem solid var(--ds-primary-700);
  background: var(--ds-primary-600);
  color: var(--ds-neutral-50);
  font-family: var(--ds-font-ui);
  font-weight: var(--ds-weight-bold);
  font-size: var(--ds-font-size-sm);
  padding: calc(var(--ds-space-8) * var(--ds-density)) calc(var(--ds-space-16) * var(--ds-density));
}
.ds-button:hover {
  text-decoration: none;
  background: var(--ds-primary-700);
}
.ds-footer {
  margin-top: calc(var(--ds-space-24) * var(--ds-density));
  border-top: 0.0625rem solid var(--ds-border-soft);
  background: rgba(250, 247, 243, 0.9);
}
.ds-footer__inner {
  width: min(var(--ds-content-max), calc(100% - var(--ds-space-24) * 2));
  margin: 0 auto;
  padding: calc(var(--ds-space-20) * var(--ds-density)) 0;
  display: grid;
  gap: calc(var(--ds-space-12) * var(--ds-density));
  color: var(--ds-text-muted);
  font-family: var(--ds-font-ui);
  font-size: var(--ds-font-size-sm);
}
.ds-footer__meta {
  width: min(var(--ds-content-max), calc(100% - var(--ds-space-24) * 2));
  margin: 0 auto;
  padding: 0 0 calc(var(--ds-space-20) * var(--ds-density));
  display: flex;
  flex-wrap: wrap;
  gap: calc(var(--ds-space-8) * var(--ds-density));
  justify-content: space-between;
  color: var(--ds-text-muted);
  font-family: var(--ds-font-ui);
  font-size: var(--ds-font-size-xs);
}
.ds-footer--columns .ds-footer__inner {
  grid-template-columns: 1fr;
}
.ds-footer--cta .ds-footer__inner {
  grid-template-columns: 1fr;
  align-items: center;
}
.ds-footer h2 {
  margin: 0;
  font-family: var(--ds-font-heading);
  font-size: var(--ds-font-size-lg);
}
.ds-footer p {
  margin: calc(var(--ds-space-8) * var(--ds-density)) 0 0;
}
.ds-author h2 {
  margin: 0;
  font-family: var(--ds-font-heading);
  font-size: var(--ds-font-size-xl);
}
.ds-author p,
.ds-checklist p,
.ds-notes p,
.ds-cta p {
  margin: calc(var(--ds-space-8) * var(--ds-density)) 0 calc(var(--ds-space-12) * var(--ds-density));
  color: var(--ds-text-muted);
}
.ds-aux-grid {
  display: grid;
  gap: calc(var(--ds-space-12) * var(--ds-density));
}
.ds-header--centered .ds-header__inner {
  justify-content: center;
}
.ds-header--centered .ds-nav {
  justify-content: center;
}
.ds-header--bold .ds-brand__title {
  color: var(--ds-primary-700);
}
.ds-header--minimal .ds-nav a {
  border-color: rgba(172, 143, 121, 0.4);
  background: rgba(250, 247, 243, 0.86);
}
.ds-header--compact .ds-header__inner {
  padding: calc(var(--ds-space-8) * var(--ds-density)) 0;
}
.ds-header--editorial .ds-brand__subtitle {
  color: var(--ds-accent-700);
}
@media (min-width: 360px) {
  .ds-shell {
    width: min(var(--ds-content-max), calc(100% - var(--ds-space-20) * 2));
  }
}
@media (min-width: 576px) {
  .ds-nav {
    justify-content: flex-end;
  }
  .ds-related ul {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .ds-footer__inner {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 768px) {
  .ds-hero--split {
    grid-template-columns: minmax(0, 1fr) minmax(12rem, 16rem);
    align-items: center;
  }
  .ds-cards--grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .ds-aux-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .ds-footer--columns .ds-footer__inner {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (min-width: 992px) {
  .ds-content-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .ds-content-grid--with-sticky {
    grid-template-columns: minmax(0, 1fr) minmax(14rem, 20rem);
  }
  .ds-related ul {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .ds-footer--cta .ds-footer__inner {
    grid-template-columns: minmax(0, 1fr) auto;
  }
}
@media (min-width: 1200px) {
  :root {
    --ds-content-max: 76rem;
  }
  .ds-cards--grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (min-width: 1440px) {
  :root {
    --ds-content-max: 80rem;
  }
  .ds-shell {
    gap: calc(var(--ds-space-24) * var(--ds-density));
  }
}
@media (prefers-reduced-motion: reduce) {
  * {
    scroll-behavior: auto;
    transition: none !important;
    animation: none !important;
  }
}
