:root {
  --color-bg: #f7f3ec;
  --color-surface: #fffdf8;
  --color-text: #1f1f1f;
  --color-muted: #76716a;
  --color-line: #ded8cf;
  --color-accent: #8b7a63;
  --font-heading: Georgia, "Times New Roman", "Noto Serif CJK SC", "Songti SC", serif;
  --font-body: system-ui, -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans", "Noto Sans CJK", sans-serif;
  --space-page: clamp(20px, 5vw, 72px);
  --content-max: 1180px;
}
* { box-sizing: border-box; }
html { width: 100%; max-width: 100%; background: var(--color-bg); color: var(--color-text); overflow-x: hidden; }
body { position: relative; width: 100%; max-width: 100%; margin: 0; min-height: 100vh; background: var(--color-bg); color: var(--color-text); font-family: var(--font-body); overflow-x: hidden; }
a { color: inherit; text-decoration: none; }
a:focus-visible, button:focus-visible { outline: 1px solid var(--color-accent); outline-offset: 4px; }
picture { display: block; width: 100%; height: 100%; }
img { display: block; width: 100%; height: 100%; object-fit: cover; }
h1, h2, h3 { font-family: var(--font-heading); font-weight: 400; letter-spacing: 0; }
p { line-height: 1.85; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
::selection { background: #e8ded0; }
.ratio-9x16, .ratio-4x5, .ratio-3x4 { position: relative; overflow: hidden; background: var(--color-surface); }
.ratio-9x16 { aspect-ratio: 9 / 16; }
.ratio-4x5 { aspect-ratio: 4 / 5; }
.ratio-3x4 { aspect-ratio: 3 / 4; }
.eyebrow { margin: 0 0 18px; color: var(--color-muted); font-size: 12px; letter-spacing: .16em; text-transform: uppercase; }
.inline-link { display: inline-block; border-bottom: 1px solid currentColor; color: var(--color-accent); transition: color 180ms ease, border-color 180ms ease; cursor: pointer; }
.inline-link:hover { color: var(--color-text); }
.nowrap { white-space: nowrap; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
