/* Haven Atomic Kit: licensed faces, palette and proportions. */
@font-face { font-family: 'GT America'; font-weight: 400; font-style: normal; font-display: swap; src: url("/assets/GT-America-Regular-1292131b.woff2") format('woff2'); }
@font-face { font-family: 'GT America'; font-weight: 700; font-style: normal; font-display: swap; src: url("/assets/GT-America-Bold-939e9b40.woff2") format('woff2'); }
@font-face { font-family: 'GT America'; font-weight: 400; font-style: italic; font-display: swap; src: url("/assets/GT-America-Regular-Italic-78ce2791.woff2") format('woff2'); }
@font-face { font-family: 'GT America'; font-weight: 700; font-style: italic; font-display: swap; src: url("/assets/GT-America-Bold-Italic-0fa7aa42.woff2") format('woff2'); }
@font-face { font-family: 'GT America Mono'; font-weight: 700; font-style: normal; font-display: swap; src: url("/assets/GT-America-Mono-Bold-bdae39cb.woff2") format('woff2'); }
@font-face { font-family: 'Akzidenz-Grotesk Pro Extended'; font-weight: 500; font-style: normal; font-display: swap; src: url("/assets/Akzidenz-Grotesk-Medium-Extended-f69a1947.woff2") format('woff2'); }
:root {
  --text-h1: 28px;
  --text-h2: 22px;
  --text-h3: 18px;
  --text-eyebrow: 12px;
  --page-gutter: 32px;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--color-off-white); color: var(--color-carbon); font-family: var(--font-body); font-weight: var(--weight-body); font-size: 16px; line-height: var(--leading-body); }
a { color: inherit; text-underline-offset: 4px; }
h1, h2, h3, p { margin-top: 0; }
h1, h2 { font-family: var(--font-display); font-weight: var(--weight-display); line-height: var(--leading-display); text-transform: uppercase; overflow-wrap: anywhere; }
h1 { font-size: var(--text-h1); letter-spacing: var(--tracking-h1); margin-bottom: var(--space-2x); }
h2 { font-size: var(--text-h2); letter-spacing: var(--tracking-h2); margin-bottom: var(--space-x); }
h3 { font-size: var(--text-h3); font-weight: var(--weight-body-bold); }
p { margin-bottom: var(--space-x); }
main { max-width: 1360px; margin: auto; padding: var(--space-2x) var(--page-gutter) var(--space-6x); }
.masthead { min-height: 88px; border-bottom: var(--rule-weight) solid var(--rule-color); padding: var(--space-x) var(--page-gutter); display: flex; align-items: center; justify-content: space-between; gap: var(--space-2x); }
.brand { display: inline-flex; align-items: center; gap: var(--space-x); text-decoration: none; flex-shrink: 0; }
.brand-mark { display: block; width: 36px; height: 36px; flex-shrink: 0; }
.brand-name { font-family: var(--font-display); font-weight: var(--weight-display); text-transform: uppercase; font-size: 20px; line-height: var(--leading-display); }
.brand-label, .eyebrow, nav, .button, input[type=submit], .quiet { font-family: var(--font-mono); font-weight: var(--weight-mono); font-size: var(--text-eyebrow); line-height: var(--leading-eyebrow); text-transform: uppercase; }
.brand-label, .eyebrow { letter-spacing: var(--tracking-eyebrow); }
.brand-label { margin-left: var(--space-x); }
nav { display: flex; flex-wrap: wrap; gap: var(--space-2x); align-items: center; }
nav a { text-decoration: none; padding: var(--space-half-x) 0; }
nav a:hover { text-decoration: underline; }
footer { border-top: var(--rule-weight) solid var(--rule-color); padding: var(--space-2x) var(--page-gutter); color: var(--color-neutral-80); font-size: 12px; }
.eyebrow { margin-bottom: var(--space-x); }
.muted { color: var(--color-neutral-80); }
.heading { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: var(--space-2x); gap: var(--space-2x); }
.heading p:last-child { margin-bottom: 0; }
.button, input[type=submit] { display: inline-flex; justify-content: center; align-items: center; min-height: 48px; padding: var(--space-x) var(--space-2x); border: var(--rule-weight) solid var(--color-carbon); background: var(--color-orange); color: var(--color-carbon); border-radius: 0; text-decoration: none; cursor: pointer; white-space: normal; text-align: center; }
.button:hover, input[type=submit]:hover { background: var(--color-carbon); color: var(--color-off-white); }
input[type=submit] { margin-top: var(--space-2x); }
.grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-2x); margin-bottom: var(--space-2x); }
.package-card { text-decoration: none; border: var(--rule-weight) solid var(--rule-color); }
.package-card:hover { border-color: var(--color-carbon); }
.card-art { height: 192px; background: var(--color-neutral-10); display: flex; align-items: center; justify-content: center; overflow: hidden; border-bottom: var(--rule-weight) solid var(--rule-color); }
.card-art span { font-family: var(--font-display); font-weight: var(--weight-display); font-size: 64px; color: var(--color-neutral-70); }
.card-body { padding: var(--space-2x); }
.card-body p:last-child { margin-bottom: 0; }
.panel { padding: var(--space-2x); border: var(--rule-weight) solid var(--rule-color); margin-bottom: var(--space-2x); }
.columns { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: var(--space-2x); }
.columns > *, .grid > *, .media-grid > * { min-width: 0; }
.narrow { max-width: 800px; margin: auto; }
.login { max-width: 480px; margin: var(--space-6x) auto; }
label { display: block; font-size: 14px; font-weight: var(--weight-body-bold); margin: var(--space-2x) 0 var(--space-half-x); }
input:not([type=submit]):not([type=checkbox]), textarea, select { width: 100%; min-width: 0; padding: var(--space-x); border: var(--rule-weight) solid var(--rule-color); background: var(--color-off-white); color: var(--color-carbon); font: inherit; border-radius: 0; }
input[type=file] { font-size: 14px; }
input[type=file]::file-selector-button { font-family: var(--font-mono); font-weight: var(--weight-mono); text-transform: uppercase; padding: var(--space-half-x); background: var(--color-off-white); color: var(--color-carbon); border: var(--rule-weight) solid var(--color-carbon); margin-right: var(--space-x); border-radius: 0; }
textarea { resize: vertical; }
input:focus-visible, textarea:focus-visible, select:focus-visible, a:focus-visible, button:focus-visible, summary:focus-visible { outline: 2px solid var(--color-carbon); outline-offset: 3px; }
.quiet { border: 0; background: transparent; color: var(--color-carbon); cursor: pointer; padding: var(--space-half-x) 0; text-decoration: none; }
.quiet:hover { text-decoration: underline; }
.notice { padding: var(--space-x); background: var(--color-neutral-10); border: var(--rule-weight) solid var(--rule-color); margin-bottom: var(--space-2x); }
.notice--alert { color: var(--color-error-100); border-color: var(--color-error-100); }
.media-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-2x); margin-top: var(--space-2x); }
.media-grid img { width: 100%; height: 192px; object-fit: cover; }
.media-grid a { display: block; overflow-wrap: anywhere; }
.code { font-family: var(--font-mono); font-size: 14px; }
.presentation-hero { padding: var(--space-6x) 0; max-width: 1100px; }
.presentation-hero h1 { font-size: 64px; }
.lead { font-size: var(--text-p2); color: var(--color-neutral-80); max-width: 800px; }
.presentation-media { margin-bottom: var(--space-2x); }
.presentation-media img, .presentation-media video { width: 100%; display: block; }
.design-story { max-width: 780px; margin: var(--space-6x) 0; font-size: var(--text-p3); }
.inline-form { max-width: 650px; }
li { padding: var(--space-half-x) 0; }
.workflow-step { border-top: var(--rule-weight) solid var(--rule-color); padding: var(--space-x) 0; }
.workflow-step summary { cursor: pointer; font-weight: var(--weight-body-bold); }
@media (max-width: 1000px) { .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .columns { grid-template-columns: 1fr; } }
@media (max-width: 760px) {
  :root { --text-h1: 24px; --text-h2: 20px; --page-gutter: 16px; }
  main { padding-top: var(--space-2x); }
  .masthead { flex-wrap: wrap; gap: var(--space-x); }
  nav { gap: var(--space-x); width: 100%; }
  .brand-label { font-size: 10px; margin-left: 0; }
  .heading { flex-direction: column; }
  .grid, .media-grid { grid-template-columns: 1fr; }
  .panel, .card-body { padding: var(--space-x); }
  .login { margin: var(--space-2x) auto var(--space-6x); }
  .presentation-hero { padding: var(--space-2x) 0 var(--space-6x); }
  .presentation-hero h1 { font-size: 32px; }
  .lead { font-size: var(--text-p3); }
}
@media print { .masthead, footer, button { display: none; } .presentation-media { break-inside: avoid; } main { padding: 0; } }

.agent-docs pre { white-space: pre-wrap; overflow-wrap: anywhere; font-family: "GT America", sans-serif; line-height: 1.6; }
pre { overflow-wrap: anywhere; white-space: pre-wrap; }

.permissions { border: var(--rule-weight) solid var(--rule-color); padding: var(--space-2x); margin-top: var(--space-2x); }
.permissions label { display: flex; align-items: center; gap: var(--space-x); margin: var(--space-x) 0; }
input[type=checkbox] { width: 18px; height: 18px; accent-color: var(--color-carbon); flex: none; }

.output-preview { width: 100%; min-height: 600px; border: 1px solid var(--color-border, #ccc); background: white; }
