:root {
  color-scheme: light dark;
  --bg: #f4f6fb;
  --text: #15171a;
  --muted: #667085;
  --glass: rgba(255, 255, 255, .72);
  --line: rgba(110, 120, 140, .18);
  --accent: #1677ff;
}
@media (prefers-color-scheme: dark) {
  :root { --bg:#0d1016; --text:#f6f7fb; --muted:#a4acba; --glass:rgba(28,32,42,.72); --line:rgba(255,255,255,.12); }
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Noto Sans JP",sans-serif; background:var(--bg); color:var(--text); line-height:1.8; }
body::before { content:""; position:fixed; inset:0; z-index:-1; background:radial-gradient(circle at 15% 0%,rgba(78,145,255,.18),transparent 32%),radial-gradient(circle at 90% 20%,rgba(134,99,255,.12),transparent 28%); }
header, main, footer { width:min(900px,calc(100% - 32px)); margin:auto; }
header { padding:42px 0 22px; display:flex; align-items:center; justify-content:space-between; gap:18px; }
.brand { font-size:1.35rem; font-weight:750; letter-spacing:.03em; }
nav { display:flex; gap:8px; flex-wrap:wrap; }
nav a, .button { color:var(--text); text-decoration:none; padding:7px 13px; border:1px solid var(--line); background:var(--glass); border-radius:999px; backdrop-filter:blur(18px); }
.hero, article { background:var(--glass); border:1px solid var(--line); border-radius:28px; backdrop-filter:blur(24px); box-shadow:0 20px 55px rgba(30,45,80,.08); }
.hero { padding:clamp(26px,5vw,54px); margin:24px 0; }
article { padding:clamp(22px,5vw,48px); margin:24px 0 54px; }
h1 { font-size:clamp(2rem,6vw,3.5rem); line-height:1.2; margin:.15em 0; }
h2 { font-size:1.28rem; margin-top:2.2em; padding-top:.5em; border-top:1px solid var(--line); }
h3 { font-size:1.05rem; margin-top:1.5em; }
p, li { color:var(--text); }
.muted, footer { color:var(--muted); }
a { color:var(--accent); }
table { width:100%; border-collapse:collapse; display:block; overflow-x:auto; }
th, td { padding:10px 12px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; min-width:150px; }
footer { padding:0 0 50px; font-size:.9rem; }
@media(max-width:620px){ header{align-items:flex-start;flex-direction:column}.hero,article{border-radius:22px} }
