:root {
  --ink: #1f2926;
  --muted: #6b756f;
  --paper: #f5f3ec;
  --line: #d4d8d0;
  --accent: #c6e4c7;
  --button: #1f2926;
  --button-ink: #f5f3ec;
}

html[data-theme="dark"] {
  --ink: #e8f0eb;
  --muted: #a5b5ad;
  --paper: #17201e;
  --line: #3b4b45;
  --accent: #2f5a42;
  --button: #e8f0eb;
  --button-ink: #17201e;
}

* { box-sizing: border-box; }
html { min-height: 100%; overflow-x: hidden; touch-action: pan-x pan-y pinch-zoom; background: var(--paper); }
body {
  margin: 0;
  min-width: 320px;
  min-height: 100svh;
  color: var(--ink);
  background: var(--paper);
  font-family: Georgia, 'Times New Roman', serif;
}
.page-shell { position: relative; width: min(720px, calc(100% - 40px)); margin: 0 auto; padding: 96px 0 80px; }
button.theme-toggle { position: absolute; top: 28px; right: 0; width: 36px; height: 36px; border: 1px solid var(--line); background: transparent; color: var(--ink); padding: 0; font: 20px/1 Georgia, 'Times New Roman', serif; cursor: pointer; }
header { border-bottom: 1px solid var(--line); padding-bottom: 34px; }
h1 { margin: 0; font-size: clamp(42px, 8vw, 68px); font-weight: 400; letter-spacing: -.04em; line-height: 1; }
header p { margin: 18px 0 0; color: var(--muted); font-size: 18px; line-height: 1.45; }
section { padding-top: 58px; }
h2 { margin: 0 0 18px; font-size: 14px; font-weight: 400; letter-spacing: .08em; text-transform: uppercase; }
.tool-list { border-top: 1px solid var(--line); }
.tool-list a { display: flex; justify-content: space-between; gap: 20px; padding: 22px 12px; border-bottom: 1px solid var(--line); color: var(--ink); font-size: 21px; text-decoration: none; }
.tool-list a:hover { background: var(--accent); }
.tool-list a span:last-child { color: var(--muted); }
@media (max-width: 600px) {
  .page-shell { width: min(100% - 28px, 720px); padding-top: 64px; }
  h1 { font-size: clamp(40px, 14vw, 60px); }
  header p { font-size: 16px; }
  .tool-list a { padding: 18px 8px; font-size: 18px; }
}
@media (orientation: landscape) and (max-height: 520px) {
  .page-shell { padding-top: 40px; padding-bottom: 48px; }
  header { padding-bottom: 24px; }
  section { padding-top: 34px; }
}
