:root {
  --ink: #202124;
  --ink-soft: #5f6368;
  --surface: #ffffff;
  --surface-soft: #f8f9fa;
  --surface-warm: #f6f3eb;
  --line: rgba(60, 64, 67, 0.14);
  --line-strong: rgba(60, 64, 67, 0.24);
  --brand: #0959c9;
  --brand-modern: #1a73e8;
  --brand-dark: #063a8d;
  --focus: #4d91ff;
  --success: #52a078;
  --success-strong: #188038;
  --success-soft: #edf7f1;
  --danger: #d93025;
  --danger-legacy: #f23939;
  --danger-soft: #fce8e6;
  --warning: #9a6700;
  --warning-soft: #fff8e1;
  --info-soft: #e8f0fe;
  --shadow-sm: 0 1px 2px rgba(60, 64, 67, 0.08), 0 2px 8px rgba(60, 64, 67, 0.08);
  --shadow-md: 0 8px 24px rgba(60, 64, 67, 0.10);
  --radius-sm: 7px;
  --radius-md: 14px;
  --radius-lg: 18px;
  --radius-xl: 20px;
  --content: 1100px;
  font-family: Roboto, system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  color: var(--ink);
  background: var(--surface-soft);
  font-synthesis: none;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { min-height: 100vh; margin: 0; background: var(--surface-soft); }
button, input, select, textarea { font: inherit; }
button, a, input, select { -webkit-tap-highlight-color: transparent; }
button { color: inherit; }
img, audio, canvas { max-width: 100%; }
a { color: var(--brand); }
h1, h2, h3, p { margin-top: 0; }
h1 { font-size: clamp(1.8rem, 4vw, 2.35rem); line-height: 1.14; letter-spacing: -0.025em; }
h2 { line-height: 1.25; letter-spacing: -0.012em; }
p { line-height: 1.55; }

:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
[hidden] { display: none !important; }
[disabled] { cursor: not-allowed; opacity: 0.58; }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 1000; top: 12px; left: 12px; padding: 12px 16px; border-radius: var(--radius-sm); color: #fff; background: var(--ink); transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
}
