/* Shared palette and typography for the approved unified redesign. */
:root {
  --paper: #fbf7f0;
  --sage: #ebf0e7;
  --cream: #f4ece0;
  --peach: #f8e9dc;
  --card: #fffdf9;
  --text: #40382f;
  --ink: #3b3029;
  --muted: #6b5f53;
  --lake: #3d6874;
  --green: #4b6b58;
  --shu: #a94f37;
  --wood: #7a5a40;
  --focus: #b8661a;
  --font-sans: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "BIZ UDPGothic", Meiryo, "Yu Gothic", YuGothic, "Noto Sans JP", "Noto Sans CJK JP", sans-serif;
  --font-serif: "Hiragino Mincho ProN", "Yu Mincho", YuMincho, "BIZ UDPMincho", "Noto Serif JP", "Noto Serif CJK JP", serif;
}
:lang(en) {
  --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", "BIZ UDPGothic", Meiryo, "Yu Gothic", YuGothic, "Noto Sans JP", "Noto Sans CJK JP", sans-serif;
  --font-serif: Georgia, "Times New Roman", "Hiragino Mincho ProN", "Yu Mincho", YuMincho, "BIZ UDPMincho", "Noto Serif JP", "Noto Serif CJK JP", serif;
}
:lang(zh-Hant) {
  --font-sans: "PingFang TC", "Microsoft JhengHei", "Noto Sans TC", "Noto Sans CJK TC", sans-serif;
  --font-serif: "Songti TC", "Noto Serif TC", "Noto Serif CJK TC", "PingFang TC", "Microsoft JhengHei", sans-serif;
}
:lang(zh-Hans) {
  --font-sans: "PingFang SC", "Microsoft YaHei", "Noto Sans SC", "Noto Sans CJK SC", sans-serif;
  --font-serif: "Songti SC", "Noto Serif SC", "Noto Serif CJK SC", "PingFang SC", "Microsoft YaHei", sans-serif;
}
:lang(ko) {
  --font-sans: "Apple SD Gothic Neo", "Malgun Gothic", "Noto Sans KR", "Noto Sans CJK KR", sans-serif;
  --font-serif: var(--font-sans);
}
:root { --serif:var(--font-serif); --sans:var(--font-sans); --line:#e6dccd; --badge-bg:#f1e7d8; --green-deep:#3d5a49; --radius-lg:22px; --radius:16px; --radius-sm:10px; --shadow:0 10px 28px rgb(92 70 48 / .08); --gutter:max(20px, 5vw); --site-header-offset:0px; }
/* Earth and ink tones drawn from the storybook reference. */
:root { --paper:#faf4e9; --cream:#f1e7d5; --sage:#eae9d8; --peach:#f3e5d4; --card:#fffaf0; --text:#34251e; --ink:#2e1c15; --muted:#68584c; --shu:#842c21; --green:#626a3d; --green-deep:#4c5836; --line:#ded1bc; --shadow:0 6px 18px rgb(69 46 24 / .07); }
*, *::before, *::after { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body { margin:0; background:var(--paper); color:var(--text); font-family:var(--font-sans); font-size:17px; line-height:2; letter-spacing:.02em; }
:lang(en) { letter-spacing:0; }
body:lang(en) { line-height:1.75; }
body:lang(zh-Hant), body:lang(zh-Hans) { line-height:1.9; }
body:lang(ko) { line-height:1.85; word-break:keep-all; overflow-wrap:anywhere; }
a { color:var(--green-deep); text-underline-offset:.2em; }
a:focus-visible, button:focus-visible, select:focus-visible, [tabindex]:focus-visible { outline:3px solid var(--focus); outline-offset:3px; }
img, video, iframe { max-width:100%; }
/* A constrained aspect ratio must crop, never stretch the source photograph. */
img { display:block; height:auto; object-fit:cover; }
figure { margin:0; }
button, select { font:inherit; }
button, select, a { touch-action:manipulation; }
h1,h2,h3 { color:var(--ink); font-family:var(--font-serif); font-weight:600; letter-spacing:.04em; line-height:1.6; word-break:auto-phrase; overflow-wrap:anywhere; }
h1 { font-size:clamp(30px,3vw,42px); line-height:1.55; }
h2 { font-size:clamp(26px,2.5vw,36px); }
h3 { font-size:clamp(20px,1.7vw,24px); }
p { margin:0 0 1em; }
figcaption, small, time { color:var(--muted); font-size:15px; line-height:1.7; }
[id] { scroll-margin-top:calc(var(--site-header-offset) + 16px); }
@media(max-width:700px) { body { font-size:16px; } h1 { font-size:clamp(26px,7vw,32px); } h2 { font-size:clamp(24px,6vw,26px); } figcaption,small,time { font-size:14px; } }
@media(prefers-reduced-motion:reduce) { *, *::before, *::after { scroll-behavior:auto !important; transition-duration:0s !important; animation-duration:0s !important; } }
