:root { --bg:#F7F5F2; --surface:#FFFFFF; --line:#E8E2DA; --muted:#6B6560; --ink:#2B2B2F; --rose:#B58396; --rose-deep:#96697B; --rose-soft:#F3E6EB; }
* { box-sizing:border-box; }
html { color-scheme: light; }
body { margin:0; background:var(--bg); color:var(--ink); font-family:"Noto Sans JP",-apple-system,"Hiragino Sans",system-ui,sans-serif; line-height:1.85; font-size:16px; }
.wrap { max-width:720px; margin:0 auto; padding:40px 20px 72px; }
header.brand { display:flex; align-items:center; gap:14px; margin-bottom:28px; }
header.brand img { width:56px; height:56px; border-radius:14px; }
header.brand .name { font-family:"Playfair Display",Georgia,serif; font-size:1.5rem; line-height:1.2; }
header.brand .tag { font-family:"Playfair Display",Georgia,serif; color:var(--muted); font-size:.9rem; }
nav.lang { font-size:.85rem; color:var(--muted); margin-bottom:24px; }
nav.lang a { color:var(--rose-deep); }
h1 { font-family:"Playfair Display",Georgia,serif; font-weight:500; font-size:1.7rem; line-height:1.3; margin:0 0 6px; }
h2 { font-size:1.1rem; margin:36px 0 8px; padding-top:18px; border-top:1px solid var(--line); }
h3 { font-size:1rem; margin:22px 0 4px; }
.meta { color:var(--muted); font-size:.85rem; margin-bottom:24px; }
.box { border:1px solid var(--line); background:var(--surface); border-radius:14px; padding:16px 18px; margin:16px 0; }
.box.rose { background:var(--rose-soft); border-color:transparent; }
ul { padding-left:1.2em; }
li { margin:4px 0; }
a { color:var(--rose-deep); }
strong { font-weight:700; }
details { border:1px solid var(--line); background:var(--surface); border-radius:14px; padding:12px 18px; margin:10px 0; }
summary { cursor:pointer; font-weight:500; }
details p { margin:8px 0 4px; color:var(--muted); }
footer { margin-top:48px; color:var(--muted); font-size:.8rem; border-top:1px solid var(--line); padding-top:18px; }
.en { margin-top:64px; }
