/* Self-hosted fonts (latin subset). Licenses: SIL OFL 1.1 — see /assets/fonts/LICENSES.txt */
@font-face { font-family: 'Newsreader'; font-style: normal; font-weight: 200 800; font-display: swap; src: url(/assets/fonts/newsreader-latin-opsz-normal.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Newsreader'; font-style: italic; font-weight: 200 800; font-display: swap; src: url(/assets/fonts/newsreader-latin-opsz-italic.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 100 900; font-display: swap; src: url(/assets/fonts/inter-latin-wght-normal.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 400; font-display: swap; src: url(/assets/fonts/ibm-plex-mono-latin-400-normal.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 500; font-display: swap; src: url(/assets/fonts/ibm-plex-mono-latin-500-normal.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; color-scheme: light; }
@media (max-width: 400px) { .nav-sub { display: none; } }
.skip { position: absolute; left: 12px; top: -60px; z-index: 10; background: #16150F; color: #F6F2EA; padding: 10px 16px; font-size: 14px; text-decoration: none; border-radius: 2px; }
.skip:focus { top: 12px; color: #F6F2EA; outline: 2px solid #E3D3A6; outline-offset: 2px; }
body { margin: 0; -webkit-font-smoothing: antialiased; }
:root { --ink: #84293C; --ink-lt: #C98B95; }
::selection { background: rgba(132, 41, 60, 0.18); }
@supports (background: color-mix(in srgb, red, blue)) {
  ::selection { background: color-mix(in srgb, var(--ink) 18%, transparent); }
}
a { color: #27445C; transition: color .18s ease, opacity .18s ease; }
a:hover { color: #16150F; }
a:focus-visible, summary:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }
.dk a:focus-visible, .dk summary:focus-visible { outline-color: #E3D3A6; }

/* links and buttons */
.nl { color: #5C584F; text-decoration: none; }
.nl:hover { color: #16150F; text-decoration: underline; text-decoration-color: var(--ink); text-decoration-thickness: 1px; text-underline-offset: 7px; }
.dl { color: #C9C2B3; text-decoration: none; }
.dl:hover { color: #F6F2EA; }
.ul { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; text-decoration-color: #B9C3CC; }
.ul:hover { text-decoration-color: var(--ink); }
.btn:hover { opacity: .94; box-shadow: inset 0 -2px 0 var(--ink); }
.btn:active { opacity: .78; }

/* motion system: one reveal, one rule draw, one set of micro-interactions */
.js .rv { opacity: 0; transform: translateY(10px); transition: opacity .6s cubic-bezier(.22,.61,.36,1), transform .6s cubic-bezier(.22,.61,.36,1); }
.js .rv.in { opacity: 1; transform: none; }
.js .rl { transform: scaleX(0); transform-origin: left; transition: transform .8s cubic-bezier(.22,.61,.36,1); }
.js .rl.in { transform: scaleX(1); }
.js .d1 { transition-delay: .06s; }
.js .d2 { transition-delay: .12s; }
.js .d3 { transition-delay: .18s; }
.js .d4 { transition-delay: .24s; }
.js .d5 { transition-delay: .30s; }
.js .d6 { transition-delay: .36s; }
.js .d7 { transition-delay: .42s; }
.js .rt { transform: scaleY(0); transform-origin: top; transition: transform 1.5s cubic-bezier(.45,.05,.35,1) .6s; }
.js .rt.in { transform: scaleY(1); }
.js .e0 { transition-delay: .25s; }
.js .e1 { transition-delay: .45s; }
.js .e2 { transition-delay: .6s; }
.js .e3 { transition-delay: .78s; }
.js .e4 { transition-delay: .9s; }
.js .e5 { transition-delay: 1.02s; }
.js .e6 { transition-delay: 1.14s; }
.js .e7 { transition-delay: 1.4s; }
.js .e8 { transition-delay: 1.85s; }
.js .e9 { transition-delay: 2.15s; }

/* FAQ */
details > summary { list-style: none; cursor: pointer; transition: color .18s ease; }
details > summary::-webkit-details-marker { display: none; }
details > summary:hover { color: #27445C; }
.fq-plus { color: #6E695E; transition: transform .22s cubic-bezier(.22,.61,.36,1), color .18s ease; }
details[open] .fq-plus { transform: rotate(45deg); }
details > summary:hover .fq-plus, details[open] .fq-plus { color: var(--ink); }
details[open] > summary { color: var(--ink); }
@media (hover: none) {
  .fq-plus { color: var(--ink); }
}
@keyframes fqa { from { opacity: 0; } to { opacity: 1; } }
details[open] .fqa { animation: fqa .35s ease both; }
@supports selector(::details-content) {
  :root { interpolate-size: allow-keywords; }
  details::details-content { block-size: 0; overflow: clip; transition: block-size .32s cubic-bezier(.22,.61,.36,1), content-visibility .32s allow-discrete; }
  details[open]::details-content { block-size: auto; }
}

/* layout */
.m-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(24px, 3vw, 40px); }
.fn-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fn-c1 { padding-right: clamp(24px, 4vw, 52px); }
.fn-c2 { padding-left: clamp(24px, 4vw, 52px); border-left: 1px solid #DCD6C9; }
.rc-row { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.5fr); gap: 6px clamp(24px, 4vw, 56px); padding: 22px 0; border-top: 1px solid #DCD6C9; }
.pr-grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); }
.pr-side { border-left: 1px solid #DCD6C9; }

@media (max-width: 960px) {
  .m-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 820px) {
  .pr-grid { grid-template-columns: minmax(0, 1fr); }
  .pr-side { border-left: 0; border-top: 1px solid #DCD6C9; }
}
@media (max-width: 760px) {
  .fn-grid { grid-template-columns: minmax(0, 1fr); }
  .fn-c1 { padding-right: 0; padding-bottom: 28px; }
  .fn-c2 { padding-left: 0; padding-top: 28px; border-left: 0; border-top: 1px solid #DCD6C9; }
}
@media (max-width: 720px) {
  .rc-row { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
  .nl { display: none; }
  .fs-card { padding: 16px 18px 16px !important; }
  .fs-hr { margin: 10px 0 18px !important; }
  .fs-sub { display: none; }
  .fs-frags { display: flex; flex-wrap: wrap; gap: 0 16px; font-size: 12px !important; line-height: 1.7 !important; }
  .fs-st { margin-top: 18px !important; }
  .fs-p { font-size: 19px !important; }
  .fs-o { font-size: 21px !important; }
  .fs-ft { margin: 16px 0 10px !important; }
}
@media (max-width: 560px) {
  .m-grid { grid-template-columns: minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
  .js .rv, .js .rv.in { opacity: 1; transform: none; transition: none; }
  .js .rl, .js .rl.in { transform: scaleX(1); transition: none; }
  .js .rt, .js .rt.in { transform: scaleY(1); transition: none; }
  details[open] .fqa { animation: none; }
  .fq-plus { transition: none; }
  details::details-content { transition: none !important; }
}
