
:root{--bg:#f3f6f6;--surface:#fff;--ink:#12262c;--muted:#5a7078;--line:#d3e0e3;--deep1:#07202d;--deep2:#0d4457;--accent:#0e8f86;--accent-ink:#fff;--warm:#c9731f;--hero-ink:#eaf7fa;
--sans:"Noto Sans JP",system-ui,sans-serif;--serif:"Noto Serif JP","Noto Sans JP",serif}
@media (prefers-color-scheme:dark){:root{--bg:#07131a;--surface:#0e2230;--ink:#e3f2f6;--muted:#8fb0ba;--line:#1d3a47;--deep1:#04101a;--deep2:#0b3a4c;--accent:#3ad0c0;--accent-ink:#04101a;--warm:#ffb35c;color-scheme:dark}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.9;padding:0 16px 56px}
.w{max-width:760px;margin:0 auto;min-width:0}img{max-width:100%}
header.site{display:flex;justify-content:space-between;align-items:center;padding:14px 0;gap:12px;flex-wrap:wrap}
header.site a{color:var(--ink);text-decoration:none;font-family:var(--serif);font-weight:900;letter-spacing:.08em}
.hero{border-radius:14px;color:var(--hero-ink);padding:42px 22px 30px;background:radial-gradient(1.5px 1.5px at 10% 20%,#fff 99%,transparent),radial-gradient(1px 1px at 33% 12%,#fff 99%,transparent),radial-gradient(1.5px 1.5px at 70% 28%,#fff 99%,transparent),radial-gradient(1px 1px at 88% 14%,#fff 99%,transparent),linear-gradient(175deg,var(--deep1),var(--deep2))}
.hero h1{font-family:var(--serif);font-weight:900;font-size:clamp(26px,6vw,40px);line-height:1.35;margin:0 0 10px;letter-spacing:.05em}
.hero p{margin:0;opacity:.9;max-width:34em}
h2.sec{font-family:var(--serif);font-size:21px;margin:38px 0 12px}
.prof{display:grid;grid-template-columns:auto 1fr;gap:16px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:18px}
.av{width:60px;height:60px;border-radius:50%;background:linear-gradient(160deg,var(--deep2),var(--accent));display:grid;place-items:center;color:#fff;font-family:var(--serif);font-weight:900;font-size:24px}
.prof p{margin:0;font-size:15px}
.tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.tag{font-size:12px;border:1px solid var(--accent);color:var(--accent);padding:0 10px;border-radius:99px}
.stock{display:flex;flex-wrap:wrap;gap:8px}.stock span{max-width:100%;overflow-wrap:anywhere;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:2px 12px;font-size:14px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:16px}
a.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px;text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:6px}
a.card img{width:100%;height:auto;aspect-ratio:1200/630;object-fit:cover;border-radius:8px;display:block}.hero-img{width:100%;height:auto;aspect-ratio:1200/630;object-fit:cover;border-radius:12px;display:block;margin:6px 0 14px}a.card small{color:var(--accent);font-weight:700}a.card b{line-height:1.5}
article h1{font-family:var(--serif);font-size:clamp(24px,5vw,32px);line-height:1.5;margin:22px 0 8px}
article h2{font-size:20px;margin:38px 0 10px;padding-left:12px;border-left:5px solid var(--accent);line-height:1.5}
article p{margin:0 0 16px}
article ul{margin:0 0 16px;padding-left:22px}
.meta{color:var(--muted);font-size:13px}
.sum{background:var(--surface);border:2px solid var(--accent);border-radius:10px;padding:14px 18px;margin:18px 0}
.sum h2{margin:0 0 6px;border:0;padding:0;font-size:17px}
.sum ul{margin:0}
.faq h3{font-size:16px;margin:20px 0 6px}
figure{margin:20px 0}figure img{width:100%;height:auto;border-radius:10px}figcaption{font-size:13px;color:var(--muted);margin-top:6px}
footer{margin-top:52px;color:var(--muted);font-size:13px;border-top:1px solid var(--line);padding-top:14px}
