


*,
::before,
::after {
  box-sizing: border-box;
  border-width: 0;
  border-style: solid;
  border-color: currentColor;
}

html {
  line-height: 1.5;
  -webkit-text-size-adjust: 100%;
  -moz-tab-size: 4;
  tab-size: 4;
  scroll-behavior: smooth;
}

body {
  margin: 0;
  line-height: inherit;
}

hr {
  height: 0;
  color: inherit;
  border-top-width: 0.0625rem;
}

abbr[title] {
  text-decoration: underline dotted;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
  margin: 0;
}

a {
  color: inherit;
  text-decoration: inherit;
}

b,
strong {
  font-weight: bolder;
}

code,
kbd,
samp,
pre {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 1em;
}

small {
  font-size: 80%;
}

table {
  text-indent: 0;
  border-color: inherit;
  border-collapse: collapse;
}

button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  font-size: 100%;
  font-weight: inherit;
  line-height: inherit;
  color: inherit;
  margin: 0;
  padding: 0;
}

button,
select {
  text-transform: none;
}

button,
[type='button'],
[type='submit'] {
  -webkit-appearance: button;
  background-color: transparent;
  background-image: none;
}

:-moz-focusring {
  outline: auto;
}

progress {
  vertical-align: baseline;
}

summary {
  display: list-item;
}

blockquote,
dl,
dd,
figure,
p,
pre,
fieldset,
legend {
  margin: 0;
}

fieldset,
legend {
  padding: 0;
}

ol,
ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

textarea {
  resize: vertical;
}

input::placeholder,
textarea::placeholder {
  opacity: 1;
  color: var(--tone-faint);
}

button,
[role='button'] {
  cursor: pointer;
}

:disabled {
  cursor: default;
}

img,
svg,
video,
canvas,
iframe,
embed,
object {
  display: block;
  vertical-align: middle;
}

img,
video {
  max-width: 100%;
  height: auto;
}


:root {
  
  --ink-deep: #0d1b26;
  --ink-mid: #132735;
  --ink-soft: #1d3a4c;
  --frost-0: #ffffff;
  --frost-1: #f3f9fb;
  --frost-2: #e2eef4;
  --accent: #12b0c9;
  --accent-bright: #3fd0e6;
  --accent-deep: #0b7f93;
  --mint: #8ef0da;
  --signal: #f0a04b;

  
  --tone-strong: #132029;
  --tone-body: #3c515c;
  --tone-faint: #7a8f9a;
  --tone-invert: #f2fbfd;
  --tone-invert-soft: #9fb6c2;

  
  --hairline: 0.0625rem solid rgba(19, 39, 53, 0.12);
  --hairline-invert: 0.0625rem solid rgba(255, 255, 255, 0.1);

  
  --step-1: 0.5rem;
  --step-2: 1rem;
  --step-3: 1.5rem;
  --step-4: 2rem;
  --step-5: 2.5rem;
  --step-6: 3rem;
  --step-8: 4rem;
  --step-10: 5rem;

  
  --fluid-font-sm: clamp(0.8125rem, 0.9vw, 0.9375rem);
  --fluid-font-md: clamp(1rem, 1.4vw, 1.125rem);
  --fluid-font-lg: clamp(1.375rem, 2.6vw, 2.125rem);
  --fluid-font-xl: clamp(2.25rem, 5.4vw, 4rem);
  --fluid-space-sm: clamp(0.75rem, 1.6vw, 1.25rem);
  --fluid-space-md: clamp(1.5rem, 3.2vw, 2.5rem);
  --fluid-space-lg: clamp(2.5rem, 6vw, 5rem);
  --fluid-width: clamp(20rem, 92vw, 74rem);
  --fluid-width-tight: clamp(18rem, 88vw, 46rem);

  
  --curve: 1rem;
  --curve-sm: 0.625rem;
  --curve-lg: 1.5rem;
  --lift: 0 0.125rem 0.75rem rgba(13, 27, 38, 0.08);
  --lift-high: 0 1rem 2.5rem rgba(13, 27, 38, 0.16);
  --glide: 0.3s cubic-bezier(0.22, 0.61, 0.36, 1);
}


body {
  font-family: 'Inter', 'Segoe UI', system-ui, sans-serif;
  font-weight: 400;
  font-size: var(--fluid-font-md);
  line-height: 1.7;
  color: var(--tone-body);
  background: var(--frost-1);
  -webkit-font-smoothing: antialiased;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: 'Work Sans', 'Inter', system-ui, sans-serif;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--tone-strong);
  text-wrap: balance;
}

h1 {
  font-size: var(--fluid-font-xl);
  line-height: 1.08;
}

h2 {
  font-size: var(--fluid-font-lg);
  line-height: 1.2;
}

h3 {
  font-size: clamp(1.125rem, 1.8vw, 1.375rem);
  line-height: 1.3;
}

h4 {
  font-size: 1.0625rem;
  line-height: 1.4;
}

p {
  font-size: var(--fluid-font-md);
  line-height: 1.7;
}

p + p {
  margin-top: var(--step-2);
}

a {
  color: var(--accent-deep);
  transition: color var(--glide);
}

a:hover {
  color: var(--accent);
}

strong {
  color: var(--tone-strong);
  font-weight: 600;
}

small {
  font-size: var(--fluid-font-sm);
  color: var(--tone-faint);
}

address {
  font-style: normal;
}

figcaption {
  font-size: var(--fluid-font-sm);
  color: var(--tone-faint);
  padding-top: var(--step-1);
}

label {
  display: block;
  font-size: var(--fluid-font-sm);
  font-weight: 600;
  color: var(--tone-strong);
  letter-spacing: 0.02em;
  margin-bottom: var(--step-1);
}

input,
select,
textarea {
  width: 100%;
  padding: 0.8125rem 1rem;
  background: var(--frost-0);
  border: var(--hairline);
  border-radius: var(--curve-sm);
  color: var(--tone-strong);
  font-size: 1rem;
  transition: border-color var(--glide), box-shadow var(--glide);
}

input:focus,
select:focus,
textarea:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 0.1875rem rgba(18, 176, 201, 0.18);
}

:focus-visible {
  outline: 0.1875rem solid var(--accent-bright);
  outline-offset: 0.125rem;
}

table {
  width: 100%;
  font-size: var(--fluid-font-sm);
}

th,
td {
  text-align: left;
  padding: 0.75rem 0.5rem;
  border-bottom: var(--hairline);
}

th {
  color: var(--tone-strong);
  font-weight: 600;
}
