:root{
  --color-black:#0A0A0A;
  --color-bordeaux:#5C1A2B;
  --color-bordeaux-dark:#3E101D;
  --color-gold:#C6A15B;
  --color-gold-light:#D9B97C;
  --color-ivory:#F5F0E8;
  --color-text-on-dark:#F5F0E8;
  --color-text-on-light:#1A1A1A;
  --color-text-secondary-dark:#B8AFA3;
  --color-text-secondary-light:#5A5248;
  --color-error:#B3261E;
  --color-success:#2E6B4F;

  --font-heading:"Cormorant Garamond",Georgia,serif;
  --font-body:"Inter",system-ui,-apple-system,sans-serif;

  --text-display-size:4.5rem;
  --text-display-line-height:1.05;
  --text-display-weight:600;
  --text-display-tracking:-0.02em;

  --text-h1-size:3rem;
  --text-h1-line-height:1.1;
  --text-h1-weight:600;
  --text-h1-tracking:-0.01em;

  --text-h2-size:2.25rem;
  --text-h2-line-height:1.15;
  --text-h2-weight:600;

  --text-h3-size:1.5rem;
  --text-h3-line-height:1.25;
  --text-h3-weight:600;

  --text-h4-size:1.125rem;
  --text-h4-line-height:1.3;
  --text-h4-weight:600;

  --text-body-large-size:1.125rem;
  --text-body-large-line-height:1.6;
  --text-body-large-weight:400;

  --text-body-size:1rem;
  --text-body-line-height:1.65;
  --text-body-weight:400;

  --text-body-small-size:0.875rem;
  --text-body-small-line-height:1.5;
  --text-body-small-weight:400;

  --text-caption-size:0.75rem;
  --text-caption-line-height:1.4;
  --text-caption-weight:500;
  --text-caption-tracking:0.08em;

  --text-button-size:0.875rem;
  --text-button-line-height:1.2;
  --text-button-weight:600;
  --text-button-tracking:0.04em;

  --space-2xs:0.25rem;
  --space-xs:0.5rem;
  --space-sm:0.75rem;
  --space-md:1rem;
  --space-lg:1.5rem;
  --space-xl:2rem;
  --space-2xl:3rem;
  --space-3xl:4rem;
  --space-4xl:6rem;
  --space-5xl:8rem;

  --container-max:1200px;
  --container-padding-mobile:24px;
  --container-padding-tablet:48px;
  --container-padding-desktop:64px;

  --surface-card:var(--color-ivory);
  --surface-modal:var(--color-bordeaux-dark);

  --border-card:1px solid var(--color-bordeaux);
  --border-card-active:1px solid var(--color-gold);
  --border-gold:1px solid var(--color-gold);
  --border-gold-soft:1px solid rgba(198,161,91,0.3);
  --border-bordeaux:1px solid var(--color-bordeaux);

  --shadow-modal:0 8px 24px rgba(0,0,0,0.4);
  --shadow-card-hover:0 2px 12px rgba(0,0,0,0.18);

  --radius-card:4px;
  --radius-control:2px;
  --radius-modal:8px;
  --radius-image:0px;
  --radius-card-image-top:4px;

  --focus-ring:2px solid var(--color-gold);
  --focus-offset:2px;

  --transition-fast:150ms ease-out;
}

*,*::before,*::after{
  box-sizing:border-box;
}

*{
  margin:0;
}

html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  scroll-behavior:smooth;
}

body{
  min-height:100vh;
  background-color:var(--color-black);
  color:var(--color-text-on-dark);
  font-family:var(--font-body);
  font-size:var(--text-body-size);
  font-weight:var(--text-body-weight);
  line-height:var(--text-body-line-height);
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

img,picture,video,canvas,svg{
  display:block;
  max-width:100%;
}

img,video{
  height:auto;
}

input,button,textarea,select{
  font:inherit;
  color:inherit;
}

button{
  background:none;
  border:none;
  padding:0;
  cursor:pointer;
}

a{
  color:var(--color-gold);
  text-decoration:none;
  transition:color var(--transition-fast),text-decoration-color var(--transition-fast);
}

a:hover{
  color:var(--color-gold-light);
  text-decoration:underline;
}

h1,h2,h3,h4,h5,h6{
  font-family:var(--font-heading);
  color:inherit;
  overflow-wrap:break-word;
  text-wrap:balance;
}

h1{
  font-size:var(--text-h1-size);
  line-height:var(--text-h1-line-height);
  font-weight:var(--text-h1-weight);
  letter-spacing:var(--text-h1-tracking);
  margin-block-end:var(--space-lg);
}

h2{
  font-size:var(--text-h2-size);
  line-height:var(--text-h2-line-height);
  font-weight:var(--text-h2-weight);
  margin-block-end:var(--space-md);
}

h3{
  font-size:var(--text-h3-size);
  line-height:var(--text-h3-line-height);
  font-weight:var(--text-h3-weight);
  margin-block-end:var(--space-sm);
}

h4{
  font-size:var(--text-h4-size);
  line-height:var(--text-h4-line-height);
  font-weight:var(--text-h4-weight);
  margin-block-end:var(--space-xs);
}

p{
  margin-block-end:var(--space-md);
  overflow-wrap:break-word;
}

p:last-child{
  margin-block-end:0;
}

ul,ol{
  margin-block-end:var(--space-md);
  padding-inline-start:var(--space-lg);
}

ul:last-child,ol:last-child{
  margin-block-end:0;
}

blockquote{
  margin-block-end:var(--space-md);
  padding-inline-start:var(--space-lg);
  border-inline-start:1px solid var(--color-gold);
  color:var(--color-text-secondary-dark);
}

blockquote:last-child{
  margin-block-end:0;
}

figure{
  margin-block-end:var(--space-md);
}

figure:last-child{
  margin-block-end:0;
}

figcaption{
  font-size:var(--text-caption-size);
  line-height:var(--text-caption-line-height);
  font-weight:var(--text-caption-weight);
  letter-spacing:var(--text-caption-tracking);
  text-transform:uppercase;
  color:var(--color-text-secondary-dark);
  margin-block-start:var(--space-xs);
}

small{
  font-size:var(--text-body-small-size);
  line-height:var(--text-body-small-line-height);
}

strong{
  font-weight:600;
}

hr{
  border:none;
  border-block-start:var(--border-gold-soft);
  margin-block:var(--space-xl);
}

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

::selection{
  background-color:var(--color-gold);
  color:var(--color-black);
}

.container{
  width:100%;
  max-width:var(--container-max);
  margin-inline:auto;
  padding-inline:var(--container-padding-mobile);
}

.surface-card{
  background-color:var(--surface-card);
  color:var(--color-text-on-light);
  border:var(--border-card);
  border-radius:var(--radius-card);
}

.surface-modal{
  background-color:var(--surface-modal);
  color:var(--color-text-on-dark);
  border:var(--border-gold);
  border-radius:var(--radius-modal);
  box-shadow:var(--shadow-modal);
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:12px 24px;
  border-radius:var(--radius-control);
  font-size:var(--text-button-size);
  line-height:var(--text-button-line-height);
  font-weight:var(--text-button-weight);
  letter-spacing:var(--text-button-tracking);
  text-align:center;
  transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast);
}

.btn-primary{
  background-color:var(--color-gold);
  color:var(--color-black);
  border:1px solid var(--color-gold);
}

.btn-primary:hover{
  background-color:var(--color-gold-light);
  border-color:var(--color-gold-light);
  color:var(--color-black);
  text-decoration:none;
}

.btn-secondary{
  background-color:transparent;
  color:var(--color-gold);
  border:var(--border-gold);
}

.btn-secondary:hover{
  background-color:rgba(198,161,91,0.12);
  color:var(--color-gold-light);
  border-color:var(--color-gold-light);
  text-decoration:none;
}

.btn-tertiary{
  background-color:transparent;
  color:var(--color-gold);
  border:1px solid transparent;
  padding-inline:8px;
}

.btn-tertiary:hover{
  color:var(--color-gold-light);
  text-decoration:underline;
}

.link-standalone{
  color:var(--color-gold);
  text-decoration:none;
  transition:color var(--transition-fast);
}

.link-standalone:hover{
  color:var(--color-gold-light);
  text-decoration:underline;
}

.field{
  width:100%;
  min-height:48px;
  padding:12px 16px;
  background-color:var(--color-ivory);
  color:var(--color-text-on-light);
  border:1px solid var(--color-bordeaux);
  border-radius:var(--radius-control);
  font-size:var(--text-body-size);
  line-height:var(--text-body-line-height);
  transition:border-color var(--transition-fast),box-shadow var(--transition-fast);
}

.field::placeholder{
  color:var(--color-text-secondary-light);
}

.field:focus{
  outline:none;
  border-color:var(--color-gold);
  box-shadow:0 0 0 2px var(--color-gold);
}

.field-error{
  border-color:var(--color-error);
}

.field-error:focus{
  border-color:var(--color-error);
  box-shadow:0 0 0 2px var(--color-error);
}

.form-label{
  display:block;
  margin-block-end:var(--space-xs);
  font-size:var(--text-body-small-size);
  line-height:var(--text-body-small-line-height);
  font-weight:500;
  color:var(--color-text-on-light);
}

.form-hint{
  display:block;
  margin-block-start:var(--space-xs);
  font-size:var(--text-body-small-size);
  line-height:var(--text-body-small-line-height);
  color:var(--color-text-secondary-light);
}

.form-error-text{
  display:block;
  margin-block-start:var(--space-xs);
  font-size:var(--text-body-small-size);
  line-height:var(--text-body-small-line-height);
  color:var(--color-error);
}

.form-success-text{
  display:block;
  margin-block-start:var(--space-xs);
  font-size:var(--text-body-small-size);
  line-height:var(--text-body-small-line-height);
  color:var(--color-success);
}

.caption{
  font-size:var(--text-caption-size);
  line-height:var(--text-caption-line-height);
  font-weight:var(--text-caption-weight);
  letter-spacing:var(--text-caption-tracking);
  text-transform:uppercase;
}

.caption-dark{
  color:var(--color-text-secondary-dark);
}

.caption-light{
  color:var(--color-text-secondary-light);
}

.visually-hidden{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

.skip-link{
  position:absolute;
  inset-block-start:var(--space-md);
  inset-inline-start:var(--space-md);
  z-index:1000;
  padding:12px 24px;
  background-color:var(--color-gold);
  color:var(--color-black);
  border-radius:var(--radius-control);
  font-weight:600;
  transform:translateY(-150%);
  transition:transform var(--transition-fast);
}

.skip-link:focus{
  transform:translateY(0);
  outline:var(--focus-ring);
  outline-offset:var(--focus-offset);
}

@media (min-width:768px){
  .container{
    padding-inline:var(--container-padding-tablet);
  }

  h1{
    font-size:var(--text-h1-size);
  }

  h2{
    font-size:var(--text-h2-size);
  }

  h3{
    font-size:var(--text-h3-size);
  }
}

@media (min-width:1024px){
  .container{
    padding-inline:var(--container-padding-desktop);
  }

  .display{
    font-size:var(--text-display-size);
    line-height:var(--text-display-line-height);
    font-weight:var(--text-display-weight);
    letter-spacing:var(--text-display-tracking);
  }
}

@media (max-width:767px){
  h1{
    font-size:2.25rem;
    line-height:1.15;
  }

  h2{
    font-size:1.75rem;
    line-height:1.2;
  }

  h3{
    font-size:1.375rem;
    line-height:1.3;
  }

  .btn{
    width:100%;
  }
}

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