:root{
  --bg:#faf7f2; --surface:#ffffff; --text:#1f1b16; --muted:#6b6259; --line:#e7e0d6;
  --accent:#c0392b; --hero-l:92%; --hero-l2:84%; --hero-ink:#2a1f17;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){
  :root{
    --bg:#15130f; --surface:#1e1b17; --text:#efe9e1; --muted:#a59c91; --line:#332e28;
    --accent:#ff7a6b; --hero-l:22%; --hero-l2:15%; --hero-ink:#f6efe6;
    color-scheme:dark;
  }
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.6 Inter,system-ui,-apple-system,sans-serif}
a{color:inherit}
h1,h2,h3{font-family:"Noto Serif JP",Georgia,serif;line-height:1.2;margin:0}
.wrap{max-width:1040px;margin:0 auto;padding:0 16px 64px}

.site-header{position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--bg) 88%,transparent);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:20px;padding:10px 16px}
.brand{display:flex;align-items:center;gap:10px;font-weight:600;text-decoration:none;white-space:nowrap}
.mark{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--accent);color:#fff;
  font-family:"Noto Serif JP",serif;font-size:15px}
.site-nav{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;min-width:0}
.site-nav::-webkit-scrollbar{display:none}
.site-nav a{padding:6px 10px;border-radius:999px;font-size:14px;text-decoration:none;color:var(--muted);white-space:nowrap}
.site-nav a:hover{background:var(--line);color:var(--text)}
.site-nav a[aria-current]{background:var(--accent);color:#fff}

.hero{background:linear-gradient(135deg,hsl(var(--h) 55% var(--hero-l)),hsl(calc(var(--h) + 30) 45% var(--hero-l2)));
  color:var(--hero-ink);padding:72px 16px 64px;position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;right:-80px;top:-80px;width:320px;height:320px;border-radius:50%;
  background:hsl(var(--h) 70% 55% / .18)}
.hero-inner{max-width:1040px;margin:0 auto;position:relative;z-index:1}
.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-weight:600;margin:0 0 12px;opacity:.75}
.hero h1{font-size:clamp(36px,7vw,64px)}
.kanji{font-weight:500;opacity:.55;font-size:.6em;margin-left:.2em}
.tagline{font-size:clamp(17px,2.4vw,21px);margin:14px 0 0;max-width:640px;opacity:.85}

.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:14px;overflow:hidden;margin:-32px 0 32px;position:relative;z-index:2}
.facts div{background:var(--surface);padding:16px 18px}
.facts dt{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.facts dd{margin:4px 0 0;font-weight:500}
.intro{font-size:18px;max-width:760px;margin:0 0 40px}
h2{font-size:24px;margin:40px 0 16px}

.hl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.hl{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px 20px}
.hl h3{font-size:17px;margin-bottom:6px}
.hl p{margin:0;color:var(--muted);font-size:15px}

.two-col{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:0 40px}
.two-col ul{padding-left:20px;margin:0}
.two-col li{margin-bottom:8px}
.two-col li::marker{color:var(--accent)}

.chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0}
.chip{background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:6px 14px;font-size:15px}

.pager{display:flex;justify-content:space-between;gap:12px;margin-top:56px;padding-top:24px;border-top:1px solid var(--line)}
.pager a{text-decoration:none;font-family:"Noto Serif JP",serif;font-size:20px;display:flex;flex-direction:column}
.pager a span{font-family:Inter,sans-serif;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.pager .next{text-align:right}
.pager a:hover{color:var(--accent)}

.group h2{margin-top:48px}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.card{display:flex;gap:16px;align-items:center;text-decoration:none;background:var(--surface);border:1px solid var(--line);
  border-radius:16px;padding:16px;transition:transform .15s,border-color .15s}
.card:hover{transform:translateY(-2px);border-color:hsl(var(--h) 50% 60%)}
.card-kanji{flex:none;display:grid;place-items:center;width:72px;height:72px;border-radius:12px;
  background:linear-gradient(135deg,hsl(var(--h) 55% var(--hero-l)),hsl(calc(var(--h) + 30) 45% var(--hero-l2)));
  color:var(--hero-ink);font-family:"Noto Serif JP",serif;font-weight:700;font-size:20px;line-height:1.1;text-align:center;padding:4px}
.card-body{display:flex;flex-direction:column;min-width:0}
.card-body strong{font-family:"Noto Serif JP",serif;font-size:19px}
.card-body span{color:var(--muted);font-size:14px}
.card-body em{font-style:normal;font-size:12px;color:var(--accent);margin-top:4px;font-weight:500}

.site-footer{border-top:1px solid var(--line);padding:24px 16px;text-align:center;color:var(--muted);font-size:14px}
.site-footer p{max-width:720px;margin:0 auto}

@media (max-width:640px){
  .site-header{flex-direction:column;align-items:stretch;gap:8px}
  .hero{padding:48px 16px 56px}
}
