:root{
  --color-obsidian:#061B1A;
  --color-charcoal:#0B2A28;
  --color-midnight-slate:#123B37;
  --color-crisp-white:#F1FBF7;
  --color-muted-silver:#A8C3BC;
  --color-champagne-gold:#6FD6C4;
  --color-amber-glow:#A2F0DD;
  --color-deep-gold:#29796E;
  --color-error-wine:#B3564F;
  --color-success-moss:#6F8F6A;
  --font-heading:"Cormorant Garamond",serif;
  --font-body:"Inter",sans-serif;
  --text-display:clamp(2.5rem,1.8rem + 3vw,4rem);
  --text-h1:clamp(2rem,1.55rem + 2vw,3rem);
  --text-h2:clamp(1.75rem,1.45rem + 1.4vw,2.25rem);
  --text-h3:clamp(1.5rem,1.32rem + 0.8vw,1.75rem);
  --text-h4:1.375rem;
  --text-body-large:1.125rem;
  --text-body:1rem;
  --text-small:0.875rem;
  --text-caption:0.75rem;
  --leading-display:1.05;
  --leading-h1:1.1;
  --leading-h2:1.15;
  --leading-h3:1.2;
  --leading-h4:1.3;
  --leading-body-large:1.6;
  --leading-body:1.6;
  --leading-small:1.5;
  --leading-caption:1.4;
  --tracking-display:-0.02em;
  --tracking-h1:-0.01em;
  --tracking-caption:0.08em;
  --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:75rem;
  --container-pad-mobile:1.5rem;
  --container-pad-tablet:2.5rem;
  --container-pad-desktop:4rem;
  --radius-ui:0.25rem;
  --radius-card:0.5rem;
  --radius-modal:0.75rem;
  --border-deep-gold:1px solid var(--color-deep-gold);
  --border-midnight:1px solid var(--color-midnight-slate);
  --border-champagne:1px solid var(--color-champagne-gold);
  --shadow-float:0 8px 24px rgba(0,22,20,0.5);
  --transition-fast:180ms ease-out;
  --transition-base:220ms ease-out;
  --focus-ring:2px solid var(--color-champagne-gold);
  --focus-offset:2px;
}

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

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

body{
  margin:0;
  background-color:var(--color-obsidian);
  color:var(--color-crisp-white);
  font-family:var(--font-body);
  font-size:var(--text-body);
  line-height:var(--leading-body);
  min-height:100vh;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,h4,h5,h6{
  margin:0 0 var(--space-md);
  font-family:var(--font-heading);
  font-weight:500;
  color:var(--color-crisp-white);
  line-height:var(--leading-h2);
}

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

h2{
  font-size:var(--text-h2);
  margin-block-end:var(--space-lg);
}

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

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

h5,h6{
  font-size:var(--text-body);
  line-height:var(--leading-body);
  margin-block-end:var(--space-sm);
}

p{
  margin:0 0 var(--space-md);
}

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

ul,ol{
  margin:0 0 var(--space-md);
  padding-inline-start:1.5rem;
}

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

blockquote{
  margin:0 0 var(--space-lg);
  padding-inline-start:var(--space-lg);
  border-inline-start:2px solid var(--color-champagne-gold);
  font-family:var(--font-heading);
  font-style:italic;
  font-size:var(--text-body-large);
  line-height:var(--leading-body-large);
  color:var(--color-crisp-white);
}

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

figure{
  margin:0 0 var(--space-lg);
}

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

figcaption{
  margin-block-start:var(--space-xs);
  font-size:var(--text-small);
  line-height:var(--leading-small);
  color:var(--color-muted-silver);
}

a{
  color:var(--color-crisp-white);
  text-decoration:underline;
  text-decoration-color:var(--color-deep-gold);
  text-underline-offset:0.2em;
  transition:color var(--transition-fast),text-decoration-color var(--transition-fast);
}

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

a:focus-visible{
  outline:var(--focus-ring);
  outline-offset:var(--focus-offset);
  border-radius:var(--radius-ui);
}

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

img{
  border:0;
}

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

button{
  margin:0;
  padding:0;
  background:none;
  border:0;
  cursor:pointer;
  text-align:inherit;
}

button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:var(--focus-ring);
  outline-offset:var(--focus-offset);
}

input,select,textarea{
  width:100%;
  background-color:var(--color-midnight-slate);
  border:var(--border-deep-gold);
  border-radius:var(--radius-ui);
  padding:var(--space-sm) var(--space-md);
  color:var(--color-crisp-white);
  transition:border-color var(--transition-fast),background-color var(--transition-fast);
}

input::placeholder,textarea::placeholder{
  color:var(--color-muted-silver);
}

input:hover,select:hover,textarea:hover{
  border-color:var(--color-champagne-gold);
}

input:focus,select:focus,textarea:focus{
  border-color:var(--color-champagne-gold);
  background-color:var(--color-charcoal);
}

textarea{
  min-height:8rem;
  resize:vertical;
}

label{
  display:block;
  margin-block-end:var(--space-xs);
  font-size:var(--text-small);
  line-height:var(--leading-small);
  color:var(--color-crisp-white);
}

table{
  width:100%;
  border-collapse:collapse;
  margin-block-end:var(--space-lg);
}

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

th,td{
  padding:var(--space-sm);
  border-block-end:var(--border-midnight);
  text-align:start;
  vertical-align:top;
}

th{
  font-weight:600;
  color:var(--color-crisp-white);
}

hr{
  border:0;
  border-block-start:1px solid rgba(18,59,55,0.55);
  margin:var(--space-2xl) 0;
}

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

.surface{
  background-color:var(--color-charcoal);
  border:var(--border-deep-gold);
  border-radius:var(--radius-card);
}

.surface-interactive{
  transition:border-color var(--transition-base),background-color var(--transition-base);
}

.surface-interactive:hover{
  border-color:var(--color-champagne-gold);
  background-color:var(--color-midnight-slate);
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:2.75rem;
  padding:var(--space-sm) var(--space-lg);
  border-radius:var(--radius-ui);
  font-size:var(--text-body);
  line-height:1.2;
  font-weight:500;
  text-decoration:none;
  transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast);
  border:1px solid transparent;
}

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

.btn-primary{
  background-color:var(--color-champagne-gold);
  color:var(--color-obsidian);
  border-color:var(--color-champagne-gold);
}

.btn-primary:hover{
  background-color:var(--color-amber-glow);
  border-color:var(--color-amber-glow);
  color:var(--color-obsidian);
}

.btn-primary:active{
  background-color:var(--color-deep-gold);
  border-color:var(--color-deep-gold);
}

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

.btn-outline:hover{
  background-color:rgba(111,214,196,0.12);
  border-color:var(--color-amber-glow);
  color:var(--color-amber-glow);
}

.btn-outline:active{
  background-color:rgba(111,214,196,0.22);
  border-color:var(--color-deep-gold);
  color:var(--color-deep-gold);
}

.btn-ghost{
  background-color:transparent;
  color:var(--color-crisp-white);
  border-color:transparent;
}

.btn-ghost:hover{
  background-color:var(--color-midnight-slate);
  color:var(--color-champagne-gold);
}

.btn-ghost:active{
  background-color:var(--color-charcoal);
  color:var(--color-amber-glow);
}

.btn-sm{
  min-height:2.25rem;
  padding:var(--space-xs) var(--space-md);
  font-size:var(--text-small);
}

.btn-lg{
  min-height:3.25rem;
  padding:var(--space-md) var(--space-xl);
  font-size:var(--text-body-large);
}

.tag{
  display:inline-flex;
  align-items:center;
  min-height:1.75rem;
  padding:0 var(--space-sm);
  border:var(--border-deep-gold);
  border-radius:var(--radius-ui);
  font-size:var(--text-caption);
  line-height:1;
  letter-spacing:var(--tracking-caption);
  text-transform:uppercase;
  color:var(--color-champagne-gold);
  text-decoration:none;
  transition:border-color var(--transition-fast),color var(--transition-fast);
}

a.tag:hover{
  border-color:var(--color-champagne-gold);
  color:var(--color-amber-glow);
}

.eyebrow{
  display:block;
  margin-block-end:var(--space-sm);
  font-size:var(--text-caption);
  line-height:var(--leading-caption);
  letter-spacing:var(--tracking-caption);
  text-transform:uppercase;
  color:var(--color-champagne-gold);
}

.display{
  font-family:var(--font-heading);
  font-size:var(--text-display);
  line-height:var(--leading-display);
  letter-spacing:var(--tracking-display);
  font-weight:500;
  color:var(--color-crisp-white);
  margin-block-end:var(--space-lg);
}

.lead{
  font-size:var(--text-body-large);
  line-height:var(--leading-body-large);
  color:var(--color-crisp-white);
  margin-block-end:var(--space-lg);
}

.muted{
  color:var(--color-muted-silver);
}

.gold{
  color:var(--color-champagne-gold);
}

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

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

.stack{
  display:flex;
  flex-direction:column;
  gap:var(--space-md);
}

.stack-xs{
  display:flex;
  flex-direction:column;
  gap:var(--space-xs);
}

.stack-sm{
  display:flex;
  flex-direction:column;
  gap:var(--space-sm);
}

.stack-lg{
  display:flex;
  flex-direction:column;
  gap:var(--space-lg);
}

.stack-xl{
  display:flex;
  flex-direction:column;
  gap:var(--space-xl);
}

.cluster{
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-sm);
  align-items:center;
}

.cluster > *{
  min-width:0;
}

.cluster-lg{
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-lg);
  align-items:center;
}

.cluster-lg > *{
  min-width:0;
}

.split{
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-lg);
  align-items:center;
  justify-content:space-between;
}

.split > *{
  min-width:0;
  flex:1 1 20rem;
}

.media-cover{
  width:100%;
  height:100%;
  object-fit:cover;
}

.media-contain{
  width:100%;
  height:100%;
  object-fit:contain;
}

.ratio-4-5{
  aspect-ratio:4 / 5;
}

.ratio-16-9{
  aspect-ratio:16 / 9;
}

.ratio-1-1{
  aspect-ratio:1 / 1;
}

.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;
  transform:translateY(-200%);
  transition:transform var(--transition-base);
  background-color:var(--color-champagne-gold);
  color:var(--color-obsidian);
  padding:var(--space-sm) var(--space-md);
  border-radius:var(--radius-ui);
  text-decoration:none;
  font-weight:500;
}

.skip-link:focus{
  transform:translateY(0);
}

.content-list{
  margin:0 0 var(--space-md);
  padding-inline-start:1.5rem;
}

.content-list:last-child{
  margin-block-end:0;
}

.content-list li{
  margin-block-end:var(--space-xs);
}

.content-list li:last-child{
  margin-block-end:0;
}

.flow > * + *{
  margin-block-start:var(--space-md);
}

.flow-lg > * + *{
  margin-block-start:var(--space-lg);
}

.card{
  background-color:var(--color-charcoal);
  border:var(--border-deep-gold);
  border-radius:var(--radius-card);
  padding:var(--space-lg);
  transition:border-color var(--transition-base),background-color var(--transition-base);
}

.card:hover{
  border-color:var(--color-champagne-gold);
  background-color:var(--color-midnight-slate);
}

.card > :last-child{
  margin-block-end:0;
}

.panel{
  background-color:var(--color-charcoal);
  border:var(--border-midnight);
  border-radius:var(--radius-card);
  padding:var(--space-lg);
}

.panel > :last-child{
  margin-block-end:0;
}

.modal-surface{
  background-color:var(--color-charcoal);
  border:var(--border-deep-gold);
  border-radius:var(--radius-modal);
  box-shadow:var(--shadow-float);
  padding:var(--space-xl);
}

.modal-surface > :last-child{
  margin-block-end:0;
}

.separator{
  border:0;
  border-block-start:1px solid rgba(18,59,55,0.55);
  margin:var(--space-2xl) 0;
}

.separator-gold{
  border:0;
  border-block-start:1px solid var(--color-deep-gold);
  margin:var(--space-2xl) 0;
}

@media (min-width:40rem){
  .container{
    padding-inline:var(--container-pad-tablet);
  }
}

@media (min-width:64rem){
  .container{
    padding-inline:var(--container-pad-desktop);
  }
}

@media (prefers-reduced-motion:reduce){
  html{
    scroll-behavior:auto;
  }

  *,*::before,*::after{
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
  }
}
