@font-face { font-family: "Zen Maru Title"; src: url("../../fonts/zen-maru-title.woff2") format("woff2"); font-style: normal; font-weight: 700; font-display: swap; unicode-range: U+4ee3, U+533a, U+56de, U+5730, U+5b50, U+677e, U+677f, U+89a7, U+96fb; }
* { box-sizing: border-box; }
html { font-size: 16px; }
html[data-font-scale="115"] { font-size: 18.4px; }
html[data-font-scale="130"] { font-size: 20.8px; }
body { margin: 0; font-family: var(--font-family); font-size: var(--fs-body); line-height: 1.7; color: var(--color-text); background: var(--color-page-bg); }
button, input, select, textarea { font: inherit; }
button, a, input { -webkit-tap-highlight-color: transparent; }
button, a { touch-action: manipulation; }
a { color: var(--color-brand-800); text-decoration: none; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; }
img, svg { max-width: 100%; }
h1, h2, h3, p { margin: 0; overflow-wrap: anywhere; }
h1, h2, h3 { font-weight: 700; line-height: 1.5; }
button, a, label, span { overflow-wrap: anywhere; }
:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 3px; }
[hidden] { display: none !important; }
.page-title { font-size: var(--fs-page-title); }
.page-title:focus, .header__title[tabindex="-1"]:focus { outline: none; }
.section-title { font-size: var(--fs-section-title); }
.caption { font-size: var(--fs-caption); color: var(--color-text-muted); }
.stack { display: grid; gap: var(--space-2); min-width: 0; }
.row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-1); min-width: 0; }
.readable { max-width: 40em; }
.page-content { padding: var(--space-2); max-width: 1200px; margin-inline: auto; min-width: 0; }
.app-layout { min-width: 0; }
.app-main { min-width: 0; }
.with-navigation .app-main { padding-bottom: calc(160px + env(safe-area-inset-bottom)); }
@media (min-width: 768px) {
  .page-content { padding: var(--space-3); }
  .with-navigation .app-main { padding-bottom: 0; }
}
@media (min-width: 1024px) {
  .with-navigation { display: grid; grid-template-columns: var(--sidebar-width) minmax(0, 1fr); }
  .page-content { padding: var(--space-4); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
