@font-face { font-family: "Six Caps"; src: url("fonts/six-caps-400.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Bevan"; src: url("fonts/bevan-400.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Archivo Narrow"; src: url("fonts/archivo-narrow.woff2") format("woff2"); font-weight: 400 600; font-display: swap; }

:root {
  color-scheme: dark;
  --space-3xs: 2px; --space-2xs: 4px; --space-xs: 8px; --space-sm: 12px; --space-md: 16px; --space-lg: 24px; --space-xl: 40px; --space-2xl: 64px; --space-3xl: 96px;
  --text-xs: 0.875rem; --text-sm: 0.9375rem; --text-md: 1.0625rem; --text-lg: 1.25rem; --text-xl: 1.5625rem;
  --text-section: clamp(1.75rem, 2vw + 1rem, 2.75rem); --text-title: clamp(1.25rem, 0.75vw + 1rem, 1.625rem); --text-lead: clamp(1.125rem, 0.35vw + 1rem, 1.375rem);
  --dur-micro: 120ms;
  --color-error: oklch(72% 0.17 27);
  --container: 1440px; --gutter: 64px; --gap-columns: 32px; --section-gap: 144px;
  --color-paper: oklch(17% 0.012 60); --color-paper-2: oklch(21.5% 0.014 60); --color-paper-3: oklch(26% 0.016 60);
  --color-ink: oklch(92% 0.028 88); --color-ink-2: oklch(82% 0.03 86); --color-muted: oklch(73% 0.03 85);
  --color-rule: oklch(42% 0.02 75);
  --color-accent: oklch(63% 0.19 33); --color-accent-ink: oklch(16% 0.01 60); --color-focus: oklch(78% 0.15 70);
  --font-display: "Six Caps", "Impact", sans-serif; --font-display-2: "Bevan", Georgia, serif;
  --font-body: "Archivo Narrow", "Arial Narrow", ui-sans-serif, sans-serif;
  --rule-hair: 1px; --rule-bar: 5px; --rule-frame: 3px;
  --tracking-display: 0.02em;
  --texture-opacity: 0.07;
}
*, *::before, *::after { box-sizing: border-box; }
html, body { overflow-x: clip; }
html { scrollbar-color: var(--color-muted) var(--color-paper); scroll-padding-top: var(--space-2xl); }
body { margin: 0; background: var(--color-paper); color: var(--color-ink); font-family: var(--font-body); font-size: var(--text-md); line-height: 1.55; -webkit-font-smoothing: antialiased; caret-color: var(--color-accent); min-height: 100vh; display: flex; flex-direction: column; }
body > main { flex: 1 0 auto; }
::selection { background: color-mix(in oklab, var(--color-accent) 40%, transparent); }
:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 3px; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
a:hover { color: var(--color-accent); }
h1, h2, h3 { margin: 0; font-weight: 400; font-synthesis: none; overflow-wrap: break-word; min-width: 0; text-wrap: balance; }
h2, h3 { font-family: var(--font-display-2); text-transform: uppercase; line-height: 1.05; }
h2 { font-size: var(--text-section); max-width: 22ch; }
h3 { font-size: var(--text-title); line-height: 1.15; max-width: 30ch; }
p { margin: 0; text-wrap: pretty; }
p, li, dd { max-width: 62ch; }
img { max-width: 100%; height: auto; display: block; }
svg { display: block; }
button, input, select, textarea { font: inherit; color: inherit; }
ul, ol { margin: 0; padding: 0; list-style: none; }
.hp-visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.hp-wrap { width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter); }
.hp-skip { position: absolute; left: var(--space-md); top: -100px; background: var(--color-ink); color: var(--color-paper); padding: var(--space-sm) var(--space-md); z-index: 9; }
.hp-skip:hover { color: var(--color-paper); }
.hp-skip:focus { top: var(--space-md); }

/* head and nav */
.hp-head { border-bottom: var(--rule-hair) solid var(--color-ink); background: var(--color-paper); }
.hp-head__row { display: flex; align-items: center; justify-content: space-between; gap: var(--space-lg); min-height: 72px; }
.hp-mark { display: inline-flex; align-items: center; gap: var(--space-sm); text-decoration: none; font-family: var(--font-display-2); font-size: 1.25rem; text-transform: uppercase; line-height: 1; white-space: nowrap; }
.hp-mark img { width: 36px; height: 36px; }
.hp-mark:hover { color: var(--color-ink); }
.hp-nav { display: flex; flex-wrap: wrap; gap: var(--space-xs) var(--space-lg); justify-content: flex-end; font-size: var(--text-sm); font-weight: 500; }
.hp-nav a { text-decoration: none; padding-block: var(--space-xs); border-bottom: 2px solid transparent; }
.hp-nav a:hover, .hp-nav a[aria-current="page"] { border-bottom-color: var(--color-accent); color: var(--color-ink); }

/* buttons */
.hp-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 var(--space-lg); border: var(--rule-frame) solid var(--color-ink); background: var(--color-ink); color: var(--color-paper); font-weight: 600; font-size: var(--text-sm); text-transform: uppercase; text-decoration: none; cursor: pointer; transition: background-color var(--dur-micro), color var(--dur-micro); }
.hp-btn:hover { background: var(--color-paper); color: var(--color-ink); }
.hp-btn:active { transform: translateY(1px); }
.hp-btn--frame { background: transparent; color: var(--color-ink); box-shadow: inset 0 0 0 3px var(--color-paper), inset 0 0 0 4px var(--color-ink); }
.hp-btn--frame:hover { background: var(--color-ink); color: var(--color-paper); }
.hp-actions { display: flex; flex-wrap: wrap; gap: var(--space-md); }

/* fitted display lines */
.hp-fit { display: block; font-family: var(--font-display); font-weight: 400; text-transform: uppercase; letter-spacing: var(--tracking-display); line-height: 0.88; white-space: nowrap; }
.hp-hero { padding-block: var(--space-xl) var(--space-2xl); }
.hp-hero__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--gap-columns); align-items: center; }
.hp-hero__title { container-type: inline-size; }
.hp-hero__title h1 { margin: 0; font-size: 3rem; line-height: 0.88; }
.hp-hero__l1 { font-size: 36.5cqi; }
.hp-hero__l2 { font-size: 45.5cqi; color: var(--color-ink); }
.hp-hero__text { margin-top: var(--space-lg); display: grid; gap: var(--space-lg); }
.hp-hero__text .hp-lead { max-width: 34ch; }
.hp-lead { font-size: var(--text-lead); line-height: 1.4; }

/* page head */
.hp-pagehead { min-height: clamp(340px, 52svh, 520px); display: flex; align-items: flex-end; padding-block: var(--space-2xl) var(--space-xl); border-bottom: var(--rule-bar) solid var(--color-ink); }
.hp-pagehead .hp-wrap { width: 100%; }
.hp-pagehead__grid { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: var(--gap-columns); align-items: end; }
.hp-pagehead__title { container-type: inline-size; }
.hp-pagehead h1 { margin: 0; font-size: min(11rem, calc(var(--fit) * 1cqi)); font-family: var(--font-display); text-transform: uppercase; letter-spacing: var(--tracking-display); line-height: 1.02; white-space: nowrap; }

/* sections */
.hp-section { padding-block: var(--section-gap) 0; }
.hp-section:last-of-type { padding-bottom: var(--section-gap); }
.hp-bar { border-top: var(--rule-bar) solid var(--color-ink); padding-top: var(--space-lg); }
.hp-sechead { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: var(--gap-columns); }
.hp-split { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--gap-columns); align-items: start; }
.hp-split--flip { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
.hp-split--flip > :first-child { order: 2; }
.hp-stack { display: grid; gap: var(--space-lg); align-content: start; }
.hp-prose { display: grid; gap: var(--space-md); }
.hp-prose h3 { margin-top: var(--space-md); }
.hp-small { font-size: var(--text-sm); color: var(--color-muted); }
.hp-link { font-weight: 600; }

/* particulars: rows */
.hp-rows { margin: 0; border-top: var(--rule-bar) solid var(--color-ink); }
.hp-rows > div { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); gap: var(--gap-columns); padding-block: var(--space-md); border-bottom: var(--rule-hair) solid var(--color-rule); }
.hp-rows dt { font-family: var(--font-display-2); text-transform: uppercase; font-size: var(--text-md); line-height: 1.2; }
.hp-rows dd { margin: 0; font-weight: 600; font-size: var(--text-lg); line-height: 1.35; max-width: 56ch; }
.hp-rows dd span { display: block; font-weight: 400; font-size: var(--text-sm); color: var(--color-muted); }

/* photographs, printed in ink */
.hp-photo { margin: 0; }
.hp-photo__frame { border: var(--rule-frame) solid var(--color-ink); box-shadow: inset 0 0 0 3px var(--color-paper), inset 0 0 0 4px var(--color-ink); padding: var(--space-xs); background: var(--color-paper); }
.hp-photo img { width: 100%; filter: grayscale(1) sepia(0.25) contrast(1.12) brightness(0.96); object-fit: cover; }
.hp-photo--wide img { aspect-ratio: 16 / 10; }
.hp-photo--tall img { aspect-ratio: 4 / 5; }
.hp-photo--sq img { aspect-ratio: 1; }
.hp-photo figcaption { margin-top: var(--space-xs); font-size: var(--text-sm); color: var(--color-muted); max-width: 52ch; }
.hp-photo--small { max-width: 480px; }

/* bill columns */
.hp-bill { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: var(--rule-bar) solid var(--color-ink); }
.hp-bill > * { padding: var(--space-lg) var(--gap-columns) var(--space-xl) 0; display: grid; gap: var(--space-md); align-content: start; }
.hp-bill > * + * { padding-left: var(--gap-columns); padding-right: 0; border-left: var(--rule-bar) solid var(--color-ink); }
.hp-bill--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.hp-bill h3 { border-top: var(--rule-hair) solid var(--color-ink); padding-top: var(--space-sm); }
.hp-bill ul { display: grid; gap: var(--space-xs); }
.hp-bill li { border-top: var(--rule-hair) solid var(--color-rule); padding-top: var(--space-xs); }

/* figure line */
.hp-figure { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: var(--gap-columns); align-items: end; border-top: var(--rule-bar) solid var(--color-ink); padding-top: var(--space-lg); }
.hp-figure__num { container-type: inline-size; }
.hp-figure__num span { font-variant-numeric: tabular-nums; font-size: min(21rem, 98cqi); color: var(--color-accent); }

/* ink band and vermilion band */
.hp-band { margin-top: var(--section-gap); background: var(--color-accent); color: var(--color-accent-ink); padding: var(--space-2xl) var(--space-sm); position: relative; isolation: isolate; }
.hp-band h2 { max-width: 20ch; }
.hp-band .hp-btn { background: var(--color-accent-ink); border-color: var(--color-accent-ink); color: var(--color-ink); }
.hp-band .hp-btn:hover { background: transparent; color: var(--color-accent-ink); }
.hp-band a { color: var(--color-accent-ink); }
.hp-band :focus-visible { outline-color: var(--color-accent-ink); }
.hp-band__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--gap-columns); align-items: end; }
.hp-grain::after { content: ""; position: absolute; inset: 0; pointer-events: none; z-index: -1; opacity: var(--texture-opacity); background-size: 200px 200px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 -4'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E"); }

/* tables */
.hp-table { width: 100%; border-collapse: collapse; border-top: var(--rule-bar) solid var(--color-ink); font-size: var(--text-md); }
.hp-table th, .hp-table td { text-align: left; padding: var(--space-sm) var(--space-md) var(--space-sm) 0; border-bottom: var(--rule-hair) solid var(--color-rule); vertical-align: top; }
.hp-table th { font-weight: 600; color: var(--color-ink); }
.hp-table caption { text-align: left; padding: var(--space-sm) 0; color: var(--color-muted); font-size: var(--text-sm); caption-side: bottom; }

/* lists with rules */
.hp-ruled { display: grid; gap: 0; }
.hp-ruled li { padding-block: var(--space-sm); border-bottom: var(--rule-hair) solid var(--color-rule); max-width: 62ch; }
.hp-ruled li:first-child { border-top: var(--rule-hair) solid var(--color-rule); }
.hp-steps { counter-reset: hp-step; display: grid; gap: 0; }
.hp-steps li { counter-increment: hp-step; display: grid; grid-template-columns: 56px minmax(0, 1fr); padding-block: var(--space-md); border-bottom: var(--rule-hair) solid var(--color-rule); max-width: 70ch; }
.hp-steps li::before { content: counter(hp-step); font-family: var(--font-display); font-size: 3rem; line-height: 0.8; color: var(--color-ink); }
.hp-steps strong { font-weight: 600; }

/* forms */
.hp-form { display: grid; gap: var(--space-lg); max-width: 640px; }
.hp-field { display: grid; gap: var(--space-xs); }
.hp-field label { font-weight: 600; font-size: var(--text-sm); }
.hp-field input[type="text"], .hp-field input[type="email"], .hp-field input[type="tel"], .hp-field textarea { width: 100%; min-height: 48px; padding: var(--space-sm) var(--space-md); background: var(--color-paper); border: var(--rule-hair) solid var(--color-ink); border-radius: 0; color: var(--color-ink); }
.hp-field textarea { min-height: 132px; resize: vertical; }
.hp-field input:focus-visible, .hp-field textarea:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
.hp-field .hp-hint { font-size: var(--text-sm); color: var(--color-muted); }
.hp-field.hp-has-error input, .hp-field.hp-has-error textarea { border-color: var(--color-error); border-width: 2px; }
.hp-error { color: var(--color-error); font-size: var(--text-sm); font-weight: 600; }
.hp-check { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: var(--space-sm); align-items: start; font-size: var(--text-sm); max-width: 60ch; }
.hp-check input { width: 22px; height: 22px; margin: var(--space-3xs) 0 0; accent-color: var(--color-accent); }
.hp-trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.hp-alert { border: var(--rule-frame) solid var(--color-error); padding: var(--space-md) var(--space-lg); max-width: 640px; }
.hp-alert ul { margin-top: var(--space-xs); display: grid; gap: var(--space-2xs); }
.hp-formwrap { background: var(--color-paper-2); border-top: var(--rule-bar) solid var(--color-accent); padding: var(--space-xl) var(--space-xl) var(--space-xl); }
.hp-form-actions { display: grid; gap: var(--space-md); }
.hp-form-status { margin: 0; font-size: var(--text-sm); font-weight: 600; color: var(--color-ink); }
.hp-form-status[hidden] { display: none; }
.hp-field input[type="checkbox"]:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }

/* footer */
.hp-foot { margin-top: calc(var(--section-gap) + var(--space-2xl)); border-top: var(--rule-bar) solid var(--color-ink); padding-block: var(--space-xl) var(--space-xl); background: var(--color-paper-2); }
.hp-foot__grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 3fr) minmax(0, 3fr); gap: var(--gap-columns); }
.hp-foot .hp-mark { margin-bottom: var(--space-md); }
.hp-foot__notice { display: grid; gap: var(--space-sm); font-size: var(--text-sm); color: var(--color-ink-2); }
.hp-foot__notice strong { color: var(--color-ink); font-weight: 600; }
.hp-foot ul { display: grid; gap: var(--space-xs); font-size: var(--text-sm); }
.hp-foot__h { font-family: var(--font-display-2); text-transform: uppercase; font-size: var(--text-md); line-height: 1.2; margin-bottom: var(--space-sm); }
.hp-foot li a { display: inline-block; padding-block: var(--space-2xs); }
.hp-foot__legal { margin-top: var(--space-xl); padding-top: var(--space-md); border-top: var(--rule-hair) solid var(--color-rule); font-size: var(--text-sm); color: var(--color-muted); }

/* utility pages */
.hp-center { padding-block: var(--space-3xl) var(--space-3xl); }
.hp-note { border-left: var(--rule-bar) solid var(--color-accent); padding-left: var(--space-md); max-width: 62ch; }

@media (max-width: 60rem) {
  :root { --gutter: 24px; --section-gap: 80px; }
  .hp-head__row { flex-wrap: wrap; padding-block: var(--space-sm); }
  .hp-nav { justify-content: flex-start; gap: 0 var(--space-lg); }
  .hp-nav a { white-space: nowrap; min-height: 44px; display: inline-flex; align-items: center; }
  .hp-hero__grid, .hp-pagehead__grid, .hp-sechead, .hp-split, .hp-split--flip, .hp-figure, .hp-band__grid, .hp-foot__grid { grid-template-columns: minmax(0, 1fr); }
  .hp-split--flip > :first-child { order: 0; }
  .hp-bill--3 { grid-template-columns: minmax(0, 1fr); }
  .hp-bill--3 > * + * { border-left: 0; padding-left: 0; border-top: var(--rule-bar) solid var(--color-ink); }
  .hp-formwrap { padding: var(--space-lg); }
}
@media (max-width: 40rem) {
  :root { --gutter: 16px; --section-gap: 64px; }
  .hp-bill { grid-template-columns: minmax(0, 1fr); }
  .hp-bill > * + * { border-left: 0; padding-left: 0; border-top: var(--rule-bar) solid var(--color-ink); }
  .hp-rows > div { grid-template-columns: minmax(0, 1fr); gap: var(--space-2xs); }
  .hp-mark { font-size: 1.0625rem; }
  .hp-formwrap { padding: var(--space-md); }
  .hp-hero { padding-top: var(--space-lg); }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; } }

.hp-link { display: inline-flex; align-items: center; min-height: 48px; }
.hp-endnote { border-top: var(--rule-bar) solid var(--color-ink); padding-top: var(--space-lg); font-size: var(--text-lead); line-height: 1.4; max-width: none; }
.hp-pagehead + .hp-section { padding-top: var(--space-2xl); }
.hp-clause h2 { font-size: var(--text-section); max-width: 12ch; }
.hp-clauses { border-top: var(--rule-bar) solid var(--color-ink); }
.hp-clause { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: var(--gap-columns); padding-block: var(--space-xl); min-height: 300px; border-bottom: var(--rule-hair) solid var(--color-rule); align-content: start; }
.hp-clause p { font-size: var(--text-lead); line-height: 1.45; }
@media (max-width: 60rem) { .hp-clause { grid-template-columns: minmax(0, 1fr); min-height: 0; padding-block: var(--space-lg); gap: var(--space-sm); } }

strong { font-weight: 600; }
