:root{
  --color-navy-900:#0B1220;
  --color-navy-700:#151F33;
  --color-navy-500:#2A3A57;
  --color-coral-500:#FF5A4E;
  --color-coral-300:#FF8A7A;
  --color-white:#FFFFFF;
  --color-gray-100:#F2F4F7;
  --color-gray-300:#D7DCE3;
  --color-gray-600:#5B6678;
  --color-success-500:#2FBF8F;
  --font-heading:"Space Grotesk",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --font-body:"Inter",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --text-display:clamp(2.75rem,6vw,5rem);
  --text-h1:clamp(2.25rem,4.5vw,3.5rem);
  --text-h2:clamp(1.75rem,3vw,2.5rem);
  --text-h3:1.375rem;
  --text-h4:1.125rem;
  --text-body-lg:1.125rem;
  --text-body:1rem;
  --text-body-sm:0.875rem;
  --text-label:0.75rem;
  --text-button:0.9375rem;
  --leading-display:0.98;
  --leading-h1:1.05;
  --leading-h2:1.12;
  --leading-h3:1.25;
  --leading-h4:1.3;
  --leading-body-lg:1.65;
  --leading-body:1.65;
  --leading-body-sm:1.55;
  --leading-label:1.2;
  --leading-button:1;
  --tracking-display:-0.03em;
  --tracking-h1:-0.02em;
  --tracking-h2:-0.015em;
  --tracking-h3:-0.01em;
  --tracking-h4:0;
  --tracking-label:0.08em;
  --tracking-button:0.01em;
  --space-2xs:4px;
  --space-xs:8px;
  --space-sm:12px;
  --space-md:16px;
  --space-lg:24px;
  --space-xl:32px;
  --space-2xl:48px;
  --space-3xl:64px;
  --space-4xl:96px;
  --space-5xl:128px;
  --container-primary:1200px;
  --container-wide:1440px;
  --container-narrow:760px;
  --container-padding-mobile:24px;
  --container-padding-tablet:32px;
  --container-padding-desktop:40px;
  --section-rhythm-mobile:64px;
  --section-rhythm-tablet:96px;
  --section-rhythm-desktop:128px;
  --radius-0:0px;
  --radius-sm:4px;
  --radius-md:8px;
  --radius-lg:12px;
  --radius-xl:16px;
  --radius-full:9999px;
  --border-dark:1px solid var(--color-navy-500);
  --border-light:1px solid var(--color-gray-300);
  --shadow-light-card:0 1px 2px rgba(11,18,32,0.08);
  --shadow-floating:0 8px 24px rgba(0,0,0,0.24);
  --focus-ring:2px solid var(--color-coral-500);
  --focus-ring-offset:2px;
  --transition-fast:150ms ease;
  --transition-reveal:200ms ease;
}

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

*{
  margin:0;
}

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

body{
  min-height:100vh;
  font-family:var(--font-body);
  font-size:var(--text-body);
  line-height:var(--leading-body);
  font-weight:400;
  color:var(--color-white);
  background-color:var(--color-navy-900);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}

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

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

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

a{
  color:var(--color-coral-500);
  text-decoration:none;
  text-decoration-thickness:1px;
  text-underline-offset:3px;
  transition:color var(--transition-fast);
}

a:hover{
  color:var(--color-coral-300);
  text-decoration:none;
}

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

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);
  line-height:var(--leading-h2);
  letter-spacing:var(--tracking-h2);
  margin-block-end:var(--space-lg);
}

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

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

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

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

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:2px solid var(--color-coral-500);
  color:var(--color-gray-100);
}

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-body-sm);
  line-height:var(--leading-body-sm);
  color:var(--color-gray-600);
  margin-block-start:var(--space-xs);
}

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

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

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

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

label{
  display:block;
  font-size:var(--text-label);
  line-height:var(--leading-label);
  font-weight:600;
  letter-spacing:var(--tracking-label);
  text-transform:uppercase;
  color:var(--color-gray-100);
  margin-block-end:var(--space-xs);
}

input,textarea,select{
  width:100%;
  font-family:var(--font-body);
  font-size:var(--text-body);
  line-height:var(--leading-body);
  color:var(--color-white);
  background-color:var(--color-navy-700);
  border:var(--border-dark);
  border-radius:var(--radius-md);
  padding:var(--space-sm) var(--space-md);
  transition:border-color var(--transition-fast);
}

input::placeholder,textarea::placeholder{
  color:var(--color-gray-600);
}

input:focus,textarea:focus,select:focus{
  outline:var(--focus-ring);
  outline-offset:var(--focus-ring-offset);
  border-color:var(--color-coral-500);
}

select{
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23FF5A4E' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right var(--space-md) center;
  padding-inline-end:var(--space-2xl);
}

textarea{
  min-height:120px;
  resize:vertical;
}

fieldset{
  border:var(--border-dark);
  border-radius:var(--radius-md);
  padding:var(--space-lg);
  margin-block-end:var(--space-md);
}

legend{
  font-family:var(--font-heading);
  font-weight:600;
  padding-inline:var(--space-sm);
  color:var(--color-white);
}

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

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

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

.section{
  padding-block:var(--section-rhythm-mobile);
}

.surface-dark{
  background-color:var(--color-navy-900);
  color:var(--color-white);
}

.surface-elevated{
  background-color:var(--color-navy-700);
  color:var(--color-white);
}

.surface-light{
  background-color:var(--color-white);
  color:var(--color-navy-900);
}

.surface-gray{
  background-color:var(--color-gray-100);
  color:var(--color-navy-900);
}

.surface-light h1,
.surface-light h2,
.surface-light h3,
.surface-light h4,
.surface-light h5,
.surface-light h6,
.surface-gray h1,
.surface-gray h2,
.surface-gray h3,
.surface-gray h4,
.surface-gray h5,
.surface-gray h6{
  color:var(--color-navy-900);
}

.surface-light p,
.surface-gray p{
  color:var(--color-gray-600);
}

.surface-light a,
.surface-gray a{
  color:var(--color-coral-500);
}

.surface-light a:hover,
.surface-gray a:hover{
  color:var(--color-coral-300);
}

.surface-light label,
.surface-gray label{
  color:var(--color-gray-600);
}

.surface-light input,
.surface-light textarea,
.surface-light select,
.surface-gray input,
.surface-gray textarea,
.surface-gray select{
  background-color:var(--color-white);
  color:var(--color-navy-900);
  border:var(--border-light);
}

.surface-light input::placeholder,
.surface-light textarea::placeholder,
.surface-gray input::placeholder,
.surface-gray textarea::placeholder{
  color:var(--color-gray-600);
}

.surface-light hr,
.surface-gray hr{
  border-block-start:var(--border-light);
}

.surface-light th,
.surface-light td,
.surface-gray th,
.surface-gray td{
  border-block-end:var(--border-light);
}

.surface-light th,
.surface-gray th{
  color:var(--color-navy-900);
}

.card{
  background-color:var(--color-navy-700);
  border:var(--border-dark);
  border-radius:var(--radius-lg);
  padding:var(--space-lg);
  transition:border-color var(--transition-fast);
}

.card:hover{
  border-color:var(--color-coral-500);
}

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

.card-light{
  background-color:var(--color-white);
  border:var(--border-light);
  border-radius:var(--radius-lg);
  padding:var(--space-lg);
  color:var(--color-navy-900);
  box-shadow:var(--shadow-light-card);
  transition:border-color var(--transition-fast);
}

.card-light:hover{
  border-color:var(--color-coral-500);
}

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

.card-light h1,
.card-light h2,
.card-light h3,
.card-light h4,
.card-light h5,
.card-light h6{
  color:var(--color-navy-900);
}

.card-light p{
  color:var(--color-gray-600);
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:var(--space-sm) var(--space-md);
  font-family:var(--font-body);
  font-size:var(--text-button);
  line-height:var(--leading-button);
  font-weight:600;
  letter-spacing:var(--tracking-button);
  border-radius:var(--radius-md);
  transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast);
  white-space:nowrap;
}

.btn-primary{
  background-color:var(--color-coral-500);
  color:var(--color-navy-900);
  border:1px solid var(--color-coral-500);
}

.btn-primary:hover{
  background-color:var(--color-coral-300);
  border-color:var(--color-coral-300);
  color:var(--color-navy-900);
}

.btn-secondary{
  background-color:transparent;
  color:var(--color-white);
  border:1px solid var(--color-navy-500);
}

.btn-secondary:hover{
  border-color:var(--color-coral-300);
  color:var(--color-coral-300);
}

.btn-light{
  background-color:var(--color-white);
  color:var(--color-coral-500);
  border:1px solid var(--color-white);
}

.btn-light:hover{
  background-color:var(--color-gray-100);
  border-color:var(--color-gray-100);
  color:var(--color-coral-500);
}

.tag{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:var(--space-2xs) var(--space-sm);
  font-size:var(--text-label);
  line-height:var(--leading-label);
  font-weight:600;
  letter-spacing:var(--tracking-label);
  text-transform:uppercase;
  border-radius:var(--radius-sm);
  white-space:nowrap;
}

.tag-coral{
  background-color:var(--color-coral-500);
  color:var(--color-navy-900);
}

.tag-outline{
  background-color:transparent;
  color:var(--color-white);
  border:1px solid var(--color-navy-500);
}

.tag-outline-light{
  background-color:transparent;
  color:var(--color-navy-900);
  border:1px solid var(--color-gray-300);
}

.eyebrow{
  display:block;
  font-size:var(--text-label);
  line-height:var(--leading-label);
  font-weight:600;
  letter-spacing:var(--tracking-label);
  text-transform:uppercase;
  color:var(--color-coral-500);
  margin-block-end:var(--space-sm);
}

.media-frame{
  border-radius:var(--radius-lg);
  border:var(--border-dark);
  overflow:hidden;
  background-color:var(--color-navy-700);
}

.media-frame img,
.media-frame video{
  width:100%;
  height:100%;
  object-fit:cover;
}

.media-frame-light{
  border:var(--border-light);
  background-color:var(--color-gray-100);
}

.sr-only{
  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;
  top:var(--space-sm);
  left:var(--space-sm);
  z-index:10000;
  background-color:var(--color-coral-500);
  color:var(--color-navy-900);
  padding:var(--space-sm) var(--space-md);
  border-radius:var(--radius-md);
  font-weight:600;
  transform:translateY(-200%);
  transition:transform var(--transition-fast);
}

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

@media (min-width:768px){
  .container,
  .container-wide,
  .section{
    padding-block:var(--section-rhythm-tablet);
  }
}

@media (min-width:1024px){
  .container,
  .container-wide,
  .section{
    padding-block:var(--section-rhythm-desktop);
  }
}

@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;
  }
}