/* hoken.2109.app — foundation v0.1 | 2026-10-11
   This layer contains only project-wide design tokens, reset, and accessibility.
   No page-specific selector belongs here. */
:root {
  color-scheme: light;
  font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', 'Meiryo', system-ui, sans-serif;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  --ui-paper: #f8f7f2;
  --ui-surface: #fffefb;
  --ui-surface-soft: #f2f1e9;
  --ui-ink: #283530;
  --ui-ink-mid: #4b5952;
  --ui-muted: #6c7970;
  --ui-edge: #d9dfd5;
  --ui-edge-strong: #bfcbbf;
  --ui-accent: #405c4d;
  --ui-accent-hover: #314a3e;
  --ui-accent-tint: #e3ece2;
  --ui-sage: #e4ede0;
  --ui-sage-deep: #cadccf;
  --ui-blush: #f3e4dc;
  --ui-butter: #f2e9d7;
  --ui-powder: #e5e9e9;
  --ui-success: #326a53;
  --ui-success-bg: #e9f4eb;
  --ui-warning: #866336;
  --ui-warning-bg: #fbf1da;
  --ui-danger: #a44c4b;
  --ui-danger-bg: #fbebea;
  --ui-info: #466679;
  --ui-info-bg: #e9f0f2;
  --ui-focus: #8b9d83;
  --ui-radius-xs: 8px;
  --ui-radius-sm: 12px;
  --ui-radius-md: 18px;
  --ui-radius-lg: 26px;
  --ui-radius-pill: 999px;
  --ui-gap-1: 4px;
  --ui-gap-2: 8px;
  --ui-gap-3: 12px;
  --ui-gap-4: 16px;
  --ui-gap-5: 20px;
  --ui-gap-6: 24px;
  --ui-gap-8: 32px;
  --ui-gap-10: 40px;
  --ui-gap-12: 48px;
  --ui-shadow-card: 0 10px 45px rgba(30, 50, 35, .035), 0 2px 9px rgba(30, 50, 35, .025);
  --ui-shadow-lift: 0 18px 55px rgba(30, 50, 35, .085);
  --ui-transition: 160ms ease;
  --ui-content-wide: 1260px;
}
*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; font-size:16px; }
body { margin:0; min-width:320px; background:var(--ui-paper); color:var(--ui-ink); font-size:15px; line-height:1.65; }
button,input,select,textarea { font:inherit; }
button { cursor:pointer; }
button:disabled { cursor:not-allowed; }
a { color:inherit; text-decoration:none; }
svg { display:block; }
img { max-width:100%; height:auto; display:block; }
::selection { background:var(--ui-sage-deep); color:var(--ui-ink); }
:focus-visible { outline:3px solid var(--ui-focus); outline-offset:3px; }
.sr-only { position:absolute!important; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.ui-skip { position:absolute; left:12px; top:-80px; z-index:90; background:var(--ui-ink); color:white; padding:8px 16px; border-radius:var(--ui-radius-xs); }
.ui-skip:focus { top:12px; }
.ui-wrap { width:min(100% - 72px, var(--ui-content-wide)); margin-inline:auto; }
.ui-mono { font-variant-numeric:tabular-nums; letter-spacing:.01em; }
.ui-muted { color:var(--ui-muted); }
.ui-eyebrow { font-size:11px; font-weight:750; letter-spacing:.15em; color:var(--ui-ink-mid); }
.ui-heading { font-size:clamp(21px, 3vw, 29px); letter-spacing:-.03em; line-height:1.45; font-weight:700; margin:0; }
.ui-section-title { font-size:18px; letter-spacing:-.02em; margin:0; font-weight:750; }
.ui-lead { font-size:16px; color:var(--ui-ink-mid); line-height:1.85; }
.ui-stack { display:flex; flex-direction:column; gap:var(--ui-gap-4); }
.ui-row { display:flex; gap:var(--ui-gap-3); align-items:center; }
.ui-inline-between { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.ui-visually-disabled { opacity:.55; pointer-events:none; }
@media (max-width:679px) {
  .ui-wrap { width:min(100% - 32px,var(--ui-content-wide)); }
  body { font-size:14px; }
  .ui-lead { font-size:14px; }
}
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { scroll-behavior:auto!important; animation-duration:.001ms!important; transition-duration:.001ms!important; }
}
