:root {
  --color-primary: #0A3964;
  --color-background: #FAF8F4;
  --color-text: #1F2A37;
  --color-accent: #8C6239;
  --color-accent-light: #D2A874;
  --color-white: #FFFFFF;
  --color-surface: #F0EBE2;
  --color-rule: #D5D2CB;
  --color-text-quiet: color-mix(in srgb, var(--color-text) 80%, transparent);
  --font-heading: "OxTech Serif", "OxTech Serif Fallback", "OxTech Serif Fallback Android", Georgia, serif;
  --font-body: "OxTech Arrows", "Source Sans 3", "Source Sans 3 Fallback", "Source Sans 3 Fallback Android", Arial, sans-serif;
  --width-site: 75rem;
  --space-section: clamp(3.5rem, 7vw, 7rem);
  --space-gutter: clamp(20px, 4vw, 64px);
  --space-cards: 1.25rem;
  --space-band: 3.5rem;
  --measure-stacked: 49ch;
}
@media (max-width: 60rem) { :root { --space-cards: 1rem; } }
@font-face {
  font-family: "OxTech Serif Fallback";
  font-weight: 600;
  src: local("Times New Roman Bold"), local("TimesNewRomanPS-BoldMT"), local("Liberation Serif Bold"), local("LiberationSerif-Bold");
  size-adjust: 106.5%;
  ascent-override: 97.65%;
  descent-override: 31.92%;
  line-gap-override: 0%;
}
@font-face {
  font-family: "Source Sans 3 Fallback";
  src: local("Arial"), local("Liberation Sans"), local("Helvetica");
  size-adjust: 92.84%;
  ascent-override: 109.87%;
  descent-override: 43.09%;
  line-gap-override: 0%;
}
@font-face {
  font-family: "Source Sans 3 Fallback Android";
  font-weight: 400;
  src: local("Roboto"), local("Roboto-Regular");
  size-adjust: 95.25%;
  ascent-override: 107.09%;
  descent-override: 41.99%;
  line-gap-override: 0%;
}
@font-face {
  font-family: "Source Sans 3 Fallback Android";
  font-weight: 600;
  src: local("Roboto"), local("Roboto-Regular");
  size-adjust: 94.5%;
  ascent-override: 107.94%;
  descent-override: 42.33%;
  line-gap-override: 0%;
}
@font-face {
  font-family: "OxTech Serif Fallback Android";
  font-weight: 600;
  src: local("Noto Serif Bold"), local("NotoSerif-Bold");
  size-adjust: 89%;
  ascent-override: 116.85%;
  descent-override: 38.2%;
  line-gap-override: 0%;
}
@font-face {
  font-family: "OxTech Serif";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/_astro/OxTechSerif-Semibold.BhQ3wsiD.woff2") format("woff2");
}

@font-face {
  font-family: "Source Sans 3";
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url("/_astro/SourceSans3-Latin.BqRLTx4X.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "OxTech Arrows";
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url("/_astro/OxTechSerif-Semibold.BhQ3wsiD.woff2") format("woff2");
  unicode-range: U+2190-2199;
}

* { box-sizing: border-box; }
html { color-scheme: only light; scrollbar-gutter: stable; scroll-padding-top: 6.5rem; scroll-padding-bottom: 4.25rem; -webkit-tap-highlight-color: transparent; }
body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  min-height: 100dvh;
  margin: 0;
  overflow-wrap: anywhere;
  background: var(--color-background);
  color: var(--color-text);
  font: 400 1.125rem/1.6 var(--font-body);
}
img { max-width: 100%; height: auto; }
a { scroll-margin-block: 1rem; color: var(--color-primary); text-underline-offset: 0.2em; }
@media (hover: hover) { a:hover { color: var(--color-accent); } }
a:focus-visible, button:focus-visible { outline: 3px solid var(--color-accent); outline-offset: 5px; }
a[href^="mailto:"] { overflow-wrap: anywhere; }
.reveal:target, .reveal:has(:focus-visible), .reveal.is-linked, .is-linked .reveal { animation: none; }

.skip-link {
  position: absolute;
  z-index: 6;
  top: -10rem;
  left: 1rem;
  padding: 0.75rem 1rem;
  background: var(--color-background);
}
.skip-link:focus { top: 1rem; }
.hero-art { position: absolute; inset: 0; z-index: 0; opacity: 0.18; pointer-events: none; -webkit-mask-image: linear-gradient(#000 60%, transparent 92%); mask-image: linear-gradient(#000 60%, transparent 92%); }
.hero-art img { position: absolute; top: 0; left: 50%; width: 1440px; max-width: none; height: 800px; translate: -50% 0; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
@media print { .hero-art { display: none; } }
main { flex: 1 0 auto; }
[tabindex="-1"]:focus { outline: none; }
.visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }

.container, .site-header__inner, .site-footer__inner, main:not(.wide) {
  width: min(100% - var(--space-gutter) - var(--space-gutter), var(--width-site));
  margin-inline: auto;
}
.site-header {
  position: sticky;
  top: 0;
  z-index: 5;
  border-bottom: 1px solid var(--color-rule);
  background: color-mix(in srgb, var(--color-background) 78%, transparent);
  backdrop-filter: blur(18px) saturate(1.5);
  -webkit-backdrop-filter: blur(18px) saturate(1.5);
}
@supports not (color: color-mix(in srgb, red, red)) { .site-header { background: var(--color-background); } }
.site-header__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem 2rem;
  padding-block: 1.25rem;
}
.site-brand {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  max-width: 100%;
  text-decoration: none;
}
.site-brand img { display: block; width: 59px; height: 48px; flex: none; }
.site-brand__name { min-width: 0; align-self: baseline; padding-top: 0.12em; font: 600 1.7rem/calc(48px - 0.12em) var(--font-heading); }
.site-footer ul {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 2rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.site-nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem;
  margin: 0;
  padding: 0.25rem;
  list-style: none;
  border: 1px solid var(--color-rule);
  border-radius: 999px;
  background: color-mix(in srgb, var(--color-white) 55%, transparent);
}
.site-nav a {
  display: inline-block;
  padding: 0.5rem 1rem;
  border-radius: 999px;
  font-size: 1rem;
  font-weight: 600;
  text-decoration: none;
  transition: background-color 0.2s, color 0.2s;
}
@media (hover: hover) { .site-nav a:hover { background: var(--color-surface); color: var(--color-primary); } }
.site-nav a[aria-current] { background: var(--color-surface); color: var(--color-primary); box-shadow: inset 0 0 0 1px var(--color-accent); }
.site-nav li:last-child a { background: var(--color-primary); color: var(--color-white); }
@media (hover: hover) { .site-nav li:last-child a:hover { background: var(--color-accent); } }
.site-nav li:last-child a[aria-current] { background: var(--color-surface); color: var(--color-primary); }
@media print { .site-nav li:last-child a { background: none; color: var(--color-primary); } }

main:not(.wide) { padding-block: var(--space-section); }
:where(main:not(.wide)) > * { max-width: 65ch; }
h1, h2, h3 {
  color: var(--color-primary);
  font-family: var(--font-heading);
  font-weight: 600;
  line-height: 1.15;
  overflow-wrap: anywhere;
  text-wrap: balance;
}
p, li { text-wrap: pretty; }
.set-line { display: block; }
h1 { margin-block: 0 1.5rem; font-size: clamp(min(2.6rem, 11vw), 4.5vw, 4rem); letter-spacing: -0.035em; }
h2 { margin-block: 0 1.25rem; font-size: clamp(2rem, 3.5vw, 3rem); letter-spacing: -0.025em; }
h3 { margin-block: 0 1rem; font-size: 1.5rem; letter-spacing: -0.015em; }
p { margin-block: 0 1.25rem; }
main:not(.wide) > :last-child { margin-bottom: 0; }
.eyebrow { margin-bottom: 1.25rem; color: var(--color-accent); font-size: 0.875rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; }
.lead { max-width: 40ch; font-size: 1.25rem; }
.actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1.5rem; margin-top: 2rem; }
@media (max-width: 40rem) {
  .actions { flex-direction: column; align-items: stretch; }
  .actions .button { display: block; text-align: center; text-wrap: balance; }
  .actions .button span { margin-left: 0.65rem; }
  .actions .text-link { align-self: center; }
}
.button {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  max-width: 100%;
  padding: 0.9rem 1.5rem;
  border-radius: 999px;
  background: var(--color-primary);
  color: var(--color-white);
  font-weight: 600;
  text-decoration: none;
  transition: background-color 0.2s, transform 0.2s, box-shadow 0.2s;
}
@media (hover: hover) { .button:hover { background: var(--color-accent); color: var(--color-white); transform: translateY(-1px); box-shadow: 0 12px 24px -14px rgba(10, 57, 100, 0.5); } }
.button span, .text-link span, .arrow { display: inline-block; transition: transform 0.2s; user-select: none; -webkit-user-select: none; }
@media (hover: hover) { .button:hover span, .text-link:hover span, a:hover > .arrow { transform: translate(2px, -2px); } }
.text-link { display: inline-block; padding-block: 0.5rem; font-weight: 600; text-wrap: balance; }
.text-link span, .arrow { margin-left: 0.65rem; }
@media (hover: hover) { a:hover > .arrow--up { transform: translateY(-2px); } }
@media (hover: hover) { .text-link:hover > .arrow--down { transform: translateY(2px); } }
@media (hover: hover) { .button:hover > .arrow--right { transform: translateX(2px); } }
@media (prefers-reduced-motion: reduce) {
  .button:hover, .button:hover span, .text-link:hover span, a:hover > .arrow, a:hover > .arrow--up, .text-link:hover > .arrow--down, .button:hover > .arrow--right { transform: none; }
}
:where(.points) { margin: 0; padding: 0; list-style: none; }
.points li { position: relative; margin-bottom: 0.6rem; padding-left: 1.5rem; line-height: 1.5; }
.points li:last-child { margin-bottom: 0; }
.points li::before { content: "→"; content: "→" / ""; position: absolute; left: 0; color: var(--color-accent); }
.testimonial { margin: 0; }
.testimonial blockquote { margin: 0; }
.testimonial p:first-child::before, .testimonial p:last-child::after { color: var(--color-accent); font: 600 4rem/0 var(--font-heading); vertical-align: -0.4em; }
.testimonial p:first-child::before { content: "“"; content: "“" / ""; margin-right: 0.06em; }
.testimonial p:last-child::after { content: "”"; content: "”" / ""; margin-left: 0.04em; }
.testimonial p { color: var(--color-primary); }
.testimonial p:last-child { margin-bottom: 0; }
.testimonial figcaption { margin-top: 1.25rem; font-size: 0.9375rem; font-weight: 600; line-height: 1.5; }
.testimonial figcaption::before { content: "— "; content: "— " / ""; color: var(--color-accent); }
:where(.kit-scene) { --kit-scale: 4; }
.kit-scene { --kit-ground-h: calc(var(--kit-ground-rows) * var(--kit-scale) * 1px); position: absolute; inset: 0; overflow: hidden; background: linear-gradient(to bottom, var(--kit-sky) 0 calc(100% - var(--kit-ground-h)), var(--kit-ground) calc(100% - var(--kit-ground-h)) 100%); }
.kit-loop { position: absolute; bottom: 0; left: 50%; translate: -50% 0; width: calc(var(--kit-w) * var(--kit-scale) * 1px); height: calc(var(--kit-h) * var(--kit-scale) * 1px); background-repeat: no-repeat; background-size: calc(var(--kit-frames) * 100%) 100%; image-rendering: pixelated; image-rendering: crisp-edges; animation: kit-loop calc(var(--kit-frames) * 0.7s) steps(var(--kit-frames)) infinite; }
@keyframes kit-loop { to { background-position-x: calc(var(--kit-frames) * var(--kit-w) * var(--kit-scale) * -1px); } }
.kit-loop--still { animation: none; }
@media (prefers-reduced-motion: reduce) { .kit-loop { animation: none; } }
@container (width < 384px) { .kit-scene { --kit-scale: 3; } }
@container (width < 288px) { .kit-scene { --kit-scale: 2; } }
.kit-scene--wide { --kit-scale: 2; }
@container (width >= 360px) { .kit-scene--wide { --kit-scale: 3; } }
@container (width >= 512px) { .kit-scene--wide { --kit-scale: 4; } }
.kit-strip { container-type: inline-size; }
.kit-strip__stage { --ks-scale: 5; position: relative; overflow: hidden; width: calc(var(--ks-w) * var(--ks-scale) * 1px); height: calc(var(--ks-h) * var(--ks-scale) * 1px); border-radius: 1rem; box-shadow: 0 0 0 1px var(--color-rule); background: linear-gradient(to bottom, var(--color-surface) 0 calc(100% - var(--ks-floor) * var(--ks-scale) * 1px), var(--color-rule) 0); }
.kit-strip__frames { position: absolute; inset: 0; background-repeat: no-repeat; background-size: calc(var(--ks-frames) * 100%) 100%; image-rendering: pixelated; image-rendering: crisp-edges; animation: kit-strip calc(var(--ks-frames) * 1s / var(--ks-fps)) steps(var(--ks-frames)) infinite; }
@keyframes kit-strip { to { background-position-x: calc(var(--ks-frames) * var(--ks-w) * var(--ks-scale) * -1px); } }
@media (prefers-reduced-motion: reduce) { .kit-strip__frames { animation: none; background-position-x: calc(var(--ks-still) * var(--ks-w) * var(--ks-scale) * -1px); } }
.kit-strip--bare { container-type: normal; }
.kit-strip--bare .kit-strip__stage { border-radius: 0; box-shadow: none; background: none; }
@container (width < 480px) { .kit-strip__stage { --ks-scale: 4; } }
@container (width < 384px) { .kit-strip__stage { --ks-scale: 3; } }
@container (width < 288px) { .kit-strip__stage { --ks-scale: 2; } }
@supports not (container-type: inline-size) {
  .kit-strip__stage { --ks-scale: 3; }
  @media (max-width: 20.4375rem) { .kit-strip__stage { --ks-scale: 2; } }
}
.card { position: relative; border: 1px solid var(--color-rule); border-radius: 1.25rem; transition: transform 0.3s, box-shadow 0.3s, border-color 0.3s; }
@media (hover: hover) { .card:hover { transform: translateY(-4px); border-color: var(--color-accent); box-shadow: 0 26px 48px -30px rgba(10, 57, 100, 0.4); } }
.card__title, .card__title a { transition: color 0.3s; }
@media (hover: hover) { .card:hover .card__title, .card:hover .card__title a { color: var(--color-accent); } }
@media (prefers-reduced-motion: reduce) { .card { transition: box-shadow 0.3s, border-color 0.3s; } .card:hover { transform: none; } }
.card__title a { text-decoration: none; }
.card__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: 1.25rem; }
@supports selector(:has(a)) { .card__title a:focus-visible { outline: none; } }
.card:has(.card__title a:focus-visible) { outline: 3px solid var(--color-accent); outline-offset: 5px; }
.faq-dock { position: sticky; bottom: 0; z-index: 4; height: 0; }
@media (min-width: 37.5rem) and (max-width: 53rem) {
  main:has(.contact-invitation) + .faq-dock { margin-block: calc(1rem - var(--space-section)) calc(var(--space-section) - 1rem); }
}
.faq-button { position: fixed; right: max(1rem, env(safe-area-inset-right)); bottom: max(1rem, env(safe-area-inset-bottom)); display: none; align-items: center; justify-content: center; width: 3.25rem; height: 3.25rem; padding: 0; border: 0; border-radius: 50%; background: var(--color-primary); color: var(--color-white); box-shadow: 0 0 0 2px var(--color-background), 0 16px 32px -14px rgba(10, 57, 100, 0.6); cursor: pointer; transition: background-color 0.2s; anchor-name: --faq-button; }
@media (min-width: 37.5rem) and (max-width: 53rem) and (min-height: 33.0625rem) { main:has(.contact-invitation) + .faq-dock .faq-button { position: absolute; } }
@supports selector(:popover-open) { .faq-button { display: inline-flex; } }
@media (hover: hover) { .faq-button:hover { background: var(--color-accent); } }
.faq-button:focus-visible { outline-offset: 2px; box-shadow: 0 0 0 2px var(--color-background), 0 0 0 8px var(--color-background), 0 16px 32px -14px rgba(10, 57, 100, 0.6); }
.faq-button svg { width: 1.5rem; height: 1.5rem; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
body:has(.faq:popover-open) .faq-button { position: fixed; }
body:has(.faq:popover-open) .faq-button .faq-button__open, .faq-button .faq-button__shut { display: none; }
body:has(.faq:popover-open) .faq-button svg.faq-button__shut { display: inline; }
body:has(.faq:popover-open) .faq-button span.faq-button__shut { display: block; }
.faq { display: none; }
.faq:popover-open { position: fixed; inset: auto max(1rem, env(safe-area-inset-right)) calc(max(1rem, env(safe-area-inset-bottom)) + 4rem) auto; display: flex; flex-direction: column; width: min(25rem, 100vw - 2rem); height: 100dvh; max-height: min(40rem, 100svh - 6rem); margin: 0; padding: 0; overflow: hidden; border: 1px solid var(--color-rule); border-radius: 1.25rem; background: var(--color-background); color: var(--color-text); box-shadow: 0 40px 80px -40px rgba(10, 57, 100, 0.6); opacity: 1; translate: 0; transition: opacity 0.2s, translate 0.2s; }
@supports (position-area: top) and (position-try-fallbacks: none) {
  .faq:popover-open { position-anchor: --faq-button; position-area: top span-left; inset: auto; margin: 1rem 0 0.75rem; min-height: min(16rem, 100dvh - 2rem); max-height: min(40rem, 100% - 1.75rem, 100svh - 6rem); position-try-fallbacks: --faq-beside, --faq-cover; }
}
@position-try --faq-beside { position-area: left span-top; align-self: end; margin: 1rem 0.75rem 0 1rem; width: min(25rem, 100vw - 2rem); max-height: min(40rem, 100% - 1rem); }
@position-try --faq-cover { position-area: none; inset: auto 1rem 1rem auto; margin: 0; width: min(25rem, 100vw - 2rem); max-height: calc(100% - 2rem); }
@starting-style { .faq:popover-open { opacity: 0; translate: 0 0.75rem; } }
.faq.is-restoring:popover-open { transition: none; }
.faq:popover-open { view-transition-name: faq-panel; }
html:active-view-transition-type(chat)::view-transition-group(faq-panel), html:active-view-transition-type(chat)::view-transition-new(faq-panel) { animation: none; }
html:active-view-transition-type(chat)::view-transition-old(faq-panel) { display: none; }
html:active-view-transition-type(chat)::view-transition-old(root), html:active-view-transition-type(chat)::view-transition-new(root) { animation-duration: 0.3s; }
@media (prefers-reduced-motion: reduce) { .faq:popover-open { transition: none; } }
.faq__head { display: flex; flex: none; align-items: center; gap: 0.75rem; padding: 0.85rem 0.85rem 0.85rem 1.1rem; border-bottom: 1px solid var(--color-rule); background: var(--color-white); }
.faq__head img { flex: none; }
.faq__head :is(p, h2) { margin: 0; }
.faq__title { color: var(--color-primary); font: 600 1.125rem/1.3 var(--font-heading); letter-spacing: 0; text-wrap: wrap; }
.faq__by { color: var(--color-text-quiet); font-size: 0.875rem; line-height: 1.4; }
.faq__close { flex: none; align-self: flex-start; margin-left: auto; width: 2.25rem; height: 2.25rem; border: 1px solid var(--color-rule); border-radius: 50%; background: var(--color-background); color: var(--color-primary); font: 400 1.4rem/1 var(--font-body); cursor: pointer; }
@media (hover: hover) { .faq__close:hover { border-color: var(--color-accent); color: var(--color-accent); } }
.faq__body { display: flex; flex-direction: column; gap: 0.5rem; min-height: 0; padding: 1rem; overflow-y: auto; overscroll-behavior: contain; }
.faq__msg { align-self: flex-start; max-width: 92%; margin: 0; padding: 0.7rem 0.95rem; border-radius: 1rem 1rem 1rem 0.3rem; background: var(--color-white); box-shadow: 0 0 0 1px var(--color-rule); font-size: 1rem; line-height: 1.5; }
.faq__msg p { margin: 0 0 0.5rem; }
.faq__msg p:last-of-type { margin-bottom: 0; }
.faq__item { display: flex; flex-direction: column; gap: 0.5rem; }
.faq__item summary { align-self: flex-end; max-width: 85%; padding: 0.55rem 0.95rem; border: 1px solid var(--color-primary); border-radius: 1rem 1rem 0.3rem 1rem; background: var(--color-white); color: var(--color-primary); font-size: 0.9375rem; font-weight: 600; line-height: 1.4; list-style: none; cursor: pointer; transition: background-color 0.2s, color 0.2s; }
.faq__item summary::-webkit-details-marker { display: none; }
@media (hover: hover) { .faq__item summary:hover { border-color: var(--color-accent); color: var(--color-accent); } }
.faq__item[open] summary { border-color: var(--color-primary); background: var(--color-primary); color: var(--color-white); }
.faq__item summary:focus-visible { outline: 3px solid var(--color-accent); outline-offset: 3px; }
.faq__links { display: flex; flex-wrap: wrap; gap: 0 1.25rem; margin: 0.35rem 0 0; padding: 0; list-style: none; }
.faq__links a { display: inline-block; padding-block: 0.25rem; font-weight: 600; }
.faq__log { display: flex; flex-direction: column; gap: 0.5rem; }
.faq__msg--sent { align-self: flex-end; max-width: 85%; padding: 0.55rem 0.95rem; border-radius: 1rem 1rem 0.3rem 1rem; background: var(--color-primary); box-shadow: none; color: var(--color-white); font-size: 0.9375rem; font-weight: 600; line-height: 1.4; }
.faq__replies { display: flex; flex-direction: column; align-items: flex-end; gap: 0.5rem; }
.faq__replies--more { flex-flow: row wrap; justify-content: flex-end; }
.faq__reply { max-width: 85%; padding: 0.55rem 0.95rem; border: 1px solid var(--color-primary); border-radius: 1rem 1rem 0.3rem 1rem; background: var(--color-white); color: var(--color-primary); font: 600 0.9375rem/1.4 var(--font-body); text-align: start; cursor: pointer; transition: background-color 0.2s, color 0.2s, border-color 0.2s; }
@media (hover: hover) { .faq__reply:hover { border-color: var(--color-accent); color: var(--color-accent); } }
.faq__reply:focus-visible { outline: 3px solid var(--color-accent); outline-offset: 3px; }
.faq__reply.is-asked { border-color: var(--color-rule); background: var(--color-surface); }
.faq__typing { display: flex; gap: 0.3rem; padding-block: 0.95rem; }
.faq__typing span { width: 0.45rem; height: 0.45rem; border-radius: 50%; background: var(--color-text-quiet); animation: faq-typing 1s ease-in-out infinite; }
.faq__typing span:nth-child(2) { animation-delay: 0.15s; }
.faq__typing span:nth-child(3) { animation-delay: 0.3s; }
@keyframes faq-typing { 0%, 60%, 100% { opacity: 0.35; translate: 0 0; } 30% { opacity: 1; translate: 0 -0.2rem; } }
.faq__log .is-new { animation: faq-in 0.25s ease-out; }
@keyframes faq-in { from { opacity: 0; translate: 0 0.4rem; } }
@media (prefers-reduced-motion: reduce) { .faq__log .is-new { animation: none; } }
.faq { container-type: inline-size; }
@container (width < 15rem) {
  .faq__head { flex-wrap: wrap; }
  .faq__head > div { flex-basis: 100%; order: 1; }
  .faq__body { padding-inline: 0.5rem; -webkit-hyphens: auto; hyphens: auto; hyphenate-limit-chars: 12 4 4; -webkit-hyphenate-limit-before: 6; -webkit-hyphenate-limit-after: 6; }
  .faq__msg, .faq__item summary, .faq__reply { max-width: none; padding-inline: 0.6rem; }
}
@media (max-width: 40rem) {
  .faq:popover-open { right: 0.5rem; width: calc(100vw - 1rem); max-height: calc(100svh - 5.5rem); }
  @supports (position-area: top) and (position-try-fallbacks: none) { .faq:popover-open { inset: auto; width: calc(100vw - 2rem); max-height: min(100% - 1.75rem, 100svh - 6rem); } }
}
@keyframes reveal { from { opacity: 0; translate: 0 1.5rem; } }
@supports (animation-timeline: view()) {
  @media screen and (prefers-reduced-motion: no-preference) {
    .reveal { animation: reveal linear both; animation-timeline: view(); animation-range: entry 0% entry 35%; }
  }
}
.split { display: grid; grid-template-columns: 1.2fr 1fr; gap: 2rem 5rem; }
.split > * { min-width: 0; }
@media (max-width: 60rem) { .split { gap: 2rem; } }
@media (max-width: 53rem) { .split { grid-template-columns: 1fr; } }
.contact-invitation { align-items: center; padding-block: var(--space-section); }
.contact-invitation h2 { max-width: 26ch; }
.contact-invitation p { max-width: 48ch; }
.contact-invitation p:last-child { margin-bottom: 0; }
.contact-invitation__action a { display: inline-block; padding-block: 0.5rem; color: var(--color-primary); font: 600 clamp(1.4rem, 2.2vw, 2rem)/1.4 var(--font-heading); text-decoration-thickness: 1px; }
@media (hover: hover) { .contact-invitation__action a:hover { color: var(--color-accent); } }
.bear-scene { position: relative; justify-self: center; display: grid; justify-content: center; justify-items: center; width: 100%; max-width: 30rem; }
.bear-scene__canvas { display: none; grid-area: 1 / 1; border-radius: 1rem; box-shadow: 0 0 0 1px var(--color-rule); image-rendering: pixelated; image-rendering: crisp-edges; user-select: none; -webkit-user-select: none; }
.bear-scene.is-ready .bear-scene__canvas { display: block; }
.bear-scene__advance { display: none; }
.bear-scene.is-ready .bear-scene__advance { position: relative; display: block; grid-area: 1 / 1; width: 100%; height: 100%; margin: 0; padding: 0; border: 0; border-radius: 1rem; background: transparent; cursor: pointer; user-select: none; -webkit-user-select: none; }
.bear-scene__advance:focus-visible { outline: 3px solid var(--color-accent); outline-offset: 3px; }
.bear-scene:not(.is-ready) { width: max(160px, round(down, 100%, 160px)); aspect-ratio: 2 / 1; overflow: hidden; border-radius: 1rem; box-shadow: 0 0 0 1px var(--color-rule); background: linear-gradient(to bottom, var(--color-surface) 0 90%, var(--color-rule) 90% 100%); }
.bear-scene__still { position: absolute; left: 50%; bottom: 10%; width: 20%; height: auto; translate: -50% 0; image-rendering: pixelated; image-rendering: crisp-edges; }
.bear-scene.is-ready .bear-scene__still { display: none; }
@media (max-width: 53rem) { .bear-scene { justify-self: start; justify-content: start; justify-items: start; } }
.spotlight, .spotlight__ring { position: fixed; z-index: 3; pointer-events: none; opacity: 0; transition: opacity 0.5s ease-in-out; }
.spotlight { inset: 0; background: color-mix(in srgb, var(--color-background) 45%, transparent); -webkit-backdrop-filter: blur(3px) saturate(0.85); backdrop-filter: blur(3px) saturate(0.85); }
.spotlight__ring { box-shadow: 0 0 0 1px color-mix(in srgb, var(--color-accent) 75%, transparent), 0 0 0 6px color-mix(in srgb, var(--color-accent) 12%, transparent), 0 32px 64px -40px rgba(10, 57, 100, 0.5); }
.spotlight.is-on, .spotlight__ring.is-on { opacity: 1; transition-duration: 0.3s; }
@media (prefers-reduced-motion: reduce) { .spotlight, .spotlight__ring { transition: none; } }
@media print { .spotlight, .spotlight__ring { display: none; } }
.site-footer { --footer-top: 2rem; margin-top: calc(-1 * var(--footer-top)); border-top: 1px solid var(--color-rule); padding-block: var(--footer-top) 1.25rem; }
@supports selector(:popover-open) {
  @media (max-width: 45rem) { .site-footer { padding-bottom: 2.25rem; } }
  @media (width > 45rem) {
    .site-footer { container-type: inline-size; }
    .site-footer__bottom { padding-right: max(0px, 4.75rem - max(var(--space-gutter), (100cqw - var(--width-site)) / 2)); }
  }
  @media (max-width: 16rem) { .site-footer { padding-bottom: 4.75rem; } }
}
@media print { .faq-dock, .faq:popover-open { display: none; } }

.site-footer__top { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 1rem 4rem; }
.site-footer__intro { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.5rem 2rem; }
.site-footer__intro > a:is([href^="mailto:"], [href^="tel:"]) { display: inline-block; padding-block: 0.25rem; }
.site-footer nav a { display: inline-block; padding-block: 0.5rem; font-size: 1rem; }
.site-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 0.5rem 2rem; margin-top: 1.5rem; padding-top: 1rem; border-top: 1px solid var(--color-rule); font-size: 0.875rem; }
.site-footer__bottom a { display: inline-block; padding-block: 0.25rem; }
.site-footer__bottom > a { margin-left: auto; }
.site-footer__bottom p { margin: 0; }
.site-footer__legal { color: var(--color-text-quiet); line-height: 1.7; }
.site-footer__legal > span { display: inline-block; white-space: nowrap; }
.site-footer__legal > span:not(:nth-last-child(-n + 2))::after { content: "·"; content: "·" / ", "; margin-inline: 0.6em 0.35em; color: var(--color-accent); }
.site-footer__legal > .site-footer__office { display: block; white-space: normal; }
.site-footer__office span { display: inline-block; }
@media (max-width: 45rem), (max-height: 28rem) {
  .site-header { position: static; }
  html { scroll-padding-top: 1rem; }
  #main { scroll-margin-top: 20rem; }
}
@media (max-width: 45rem) {
  .site-header__inner { gap: 0.75rem; padding-block: 1rem; }
  .site-header nav { width: 100%; }
  .site-nav { gap: 0.1rem; padding: 0; border: 0; background: none; }
  .site-nav a { padding-inline: 0.55rem; font-size: 0.9375rem; }
  .site-header__inner, .site-nav { justify-content: center; }
  .site-footer__intro { flex-basis: 100%; }
  .site-footer__intro > .site-brand { flex-basis: 100%; justify-content: center; }
  .site-footer__top, .site-footer__intro, .site-footer ul { justify-content: center; }
  .site-footer__bottom { flex-direction: column; align-items: center; text-align: center; }
  .site-footer__bottom > a { margin-left: 0; }
  .site-footer__legal > span { display: block; white-space: normal; }
  .site-footer__legal > span::after { display: none; }
}
@media (max-width: 40rem) {
  .site-footer ul { gap: 0.25rem 0.75rem; }
}
@media (max-width: 22.4375rem) {
  .site-nav { display: grid; grid-template-columns: repeat(2, minmax(0, max-content)); justify-items: center; text-align: center; }
}
@media (max-width: 24.3125rem) {
  .site-footer ul { max-width: 16rem; margin-inline: auto; }
}
