@font-face { font-family: 'Site Mincho'; src: url('/fonts/shippori-mincho-400-normal.woff2') format('woff2'); font-display: swap; }
@font-face { font-family: 'Site Mono'; src: url('/fonts/jetbrains-mono-400-normal.woff2') format('woff2'); font-display: swap; }
html { scroll-padding-top: 72px; }
:root { --site-bar-height: 56px; --site-ground: oklch(14% .018 310); --site-ink: oklch(93% .025 75); --site-secondary: oklch(78% .026 70); --site-line: oklch(36% .025 310); --site-hover: oklch(26% .025 310); --site-accent: oklch(83% .07 210); }
@media(prefers-color-scheme:light) { :root:not([data-theme="dark"]) { --site-ground: oklch(97% .01 90); --site-ink: oklch(25% .025 310); --site-secondary: oklch(43% .025 310); --site-line: oklch(80% .025 90); --site-hover: oklch(91% .02 90); --site-accent: oklch(40% .07 210); } }
:root[data-theme="light"] { --site-ground: oklch(97% .01 90); --site-ink: oklch(25% .025 310); --site-secondary: oklch(43% .025 310); --site-line: oklch(80% .025 90); --site-hover: oklch(91% .02 90); --site-accent: oklch(40% .07 210); }
.kg-header,.kg-footer {
  --kg-ground: var(--page,var(--ride-ground,var(--site-ground)));
  --kg-ink: var(--text,var(--ride-ink,var(--site-ink)));
  --kg-secondary: var(--secondary,var(--ride-secondary,var(--site-secondary)));
  --kg-line: var(--rule,var(--ride-line,var(--site-line)));
  --kg-accent: var(--accent,var(--ride-cyan,var(--site-accent)));
  --kg-hover: var(--wash,var(--site-hover));
  --kg-shadow: oklch(8% .01 310 / .25);
  box-sizing: border-box; color: var(--kg-ink); background: var(--kg-ground);
}
.kg-header *, .kg-footer * { box-sizing: border-box; }
body[data-site-page]:not([data-site-page="home"]) { padding-top: var(--site-bar-height); }
.kg-header {
  position: fixed; inset: 0 0 auto; z-index: 100; width: 100%; max-width: none;
  height: var(--site-bar-height); min-height: 0; margin: 0;
  padding: 0 clamp(12px,2vw,32px); display: flex; align-items: center;
  gap: clamp(12px,2vw,28px); border: 0; border-bottom: 1px solid var(--kg-line);
  border-radius: 0; box-shadow: none; backdrop-filter: none;
}
.kg-header .scene-brand { flex: 0 0 auto; color: var(--kg-ink); text-decoration: none; padding: 0; }
.kg-header .scene-brand span { font: 23px 'Site Mincho',serif; letter-spacing: .13em; }
.kg-header .scene-nav { display: flex; flex: 1 1 auto; min-width: 0; align-items: center; justify-content: center; }
.kg-header .scene-nav-list { display: flex; gap: 0; align-items: center; justify-content: center; }
.kg-header .nav-open-state,.kg-header .nav-toggle { display: none; }
.kg-header .scene-nav a {
  display: block; padding: 10px 9px; border: 1px solid transparent; border-radius: 4px;
  color: var(--kg-ink); font: 12px 'Site Mono',monospace; text-decoration: none; white-space: nowrap;
}
.kg-header a:hover,.kg-header a[aria-current] { color: var(--kg-accent); }
.kg-header .scene-nav a:hover,.kg-header .scene-nav a[aria-current] { border-color: var(--kg-line); background: var(--kg-hover); }
.kg-header :is(a,button,summary,input):focus-visible { outline: 2px solid var(--kg-accent); outline-offset: 2px; }
.kg-header .kg-actions { flex: 0 0 auto; display: flex; align-items: center; gap: 10px; margin-left: auto; }
.kg-header :is(.theme-toggle,.language-link) { min-height: 32px; padding: 6px 10px; background: transparent; color: var(--kg-ink); border: 1px solid var(--kg-line); border-radius: 5px; font: 11px 'Site Mono',monospace; cursor: pointer; }
.kg-header .language-link { display: inline-flex; align-items: center; text-decoration: none; white-space: nowrap; }
.kg-header [hidden] { display: none !important; }
.kg-local-menu { position: relative; font: 12px 'Site Mono',monospace; }
.kg-local-menu summary { cursor: pointer; padding: 10px 0; max-width: 190px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kg-local-links { position: absolute; top: calc(100% + 9px); right: 0; min-width: 210px; max-width: calc(100vw - 28px); padding: 12px; background: var(--kg-ground); border: 1px solid var(--kg-line); box-shadow: 0 12px 32px var(--kg-shadow); }
.kg-local-links a { display: block; color: var(--kg-ink); font: 12px/1.5 'Site Mono',monospace; padding: 10px; text-decoration: none; }
.kg-local-links svg { width: 18px; height: 18px; }
.kg-footer { display: block; position: relative; z-index: 1; width: 100%; max-width: none; margin: 40px 0 0; padding: 36px clamp(20px,4vw,60px); text-align: center; border-top: 1px solid var(--kg-line); font: 12px/1.8 'Site Mono',monospace; }
.kg-footer .footer-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px 16px; margin: 0 auto; max-width: 1140px; font: inherit; }
.kg-footer .footer-logo { font: 21px 'Site Mincho',serif; color: var(--kg-ink); }
.kg-footer .footer-sep { color: var(--kg-accent); font-size: 10px; }
.kg-footer a { color: var(--kg-secondary); text-decoration: none; }
.kg-footer a:hover { color: var(--kg-accent); }
.kg-footer .footer-craft { margin: 20px 0 0; font: 12px/1.7 Georgia,serif; color: var(--kg-secondary); }
.kg-footnote { margin: 22px auto; max-width: 960px; font: 12px/1.8 system-ui,sans-serif; color: var(--kg-secondary); }
.kg-footnote .wrap { width: auto; padding: 0; }
body[data-site-page="home"] .kg-header { z-index: 32; }
body[data-site-page="home"] .kg-footer { margin-top: 0; }
body[data-site-page="spectra"] .chrome { top: var(--site-bar-height); }
html:has(body[data-site-page="nosepoke"]),body[data-site-page="nosepoke"] { overflow: auto; height: auto; }
body[data-site-page="nosepoke"] #game { position: relative; inset: auto; height: calc(100svh - var(--site-bar-height)); }
body[data-site-page="nosepoke"] .kg-footer { margin-top: 0; }
@media(max-width:1050px) {
  .kg-header .scene-nav { justify-content: flex-start; }
  .kg-header .scene-brand span { font-size: 20px; }
  .kg-header .scene-nav-list { position: absolute; top: var(--site-bar-height); left: 0; right: 0; display: none; flex-direction: column; align-items: stretch; background: var(--kg-ground); border-bottom: 1px solid var(--kg-line); max-height: 70svh; overflow: auto; }
  .kg-header .nav-open-state { display: block; position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0; clip-path: inset(50%); overflow: hidden; }
  .kg-header .nav-toggle { display: flex; align-items: center; gap: 10px; min-width: 0; height: 44px; color: var(--kg-accent); font: 12px 'Site Mono',monospace; cursor: pointer; }
  .kg-header .nav-current { color: var(--kg-ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 30vw; }
  .kg-header .nav-chevron { width: 7px; height: 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-2px) rotate(45deg); }
  .kg-header .nav-open-state:checked ~ .scene-nav-list { display: flex; }
  .kg-header .nav-open-state:checked + .nav-toggle .nav-chevron { transform: translateY(1px) rotate(-135deg); }
  .kg-header .nav-open-state:focus-visible + .nav-toggle { outline: 2px solid var(--kg-accent); outline-offset: 2px; }
  .kg-header .scene-nav-list a { border: 0; border-top: 1px solid var(--kg-line); border-radius: 0; padding: 13px 16px; text-align: center; }
}
@media(max-width:600px) {
  .kg-header { gap: 14px; }
  .kg-local-menu summary { max-width: 94px; font-size: 10px; }
  .kg-footer .footer-inner { gap: 10px 14px; font-size: 11px; }
  .kg-footer .footer-sep { display: none; }
}
@media print { .kg-header,.kg-footer { display: none; } body[data-site-page] { padding-top: 0 !important; } }

[data-site-palette="product"] :is(.kg-header,.kg-footer) { --kg-ground: var(--ink); --kg-ink: var(--paper); --kg-secondary: var(--paper-dim); --kg-hover: var(--ink-2); }
