:root { --bg:#fbf5e2; --card:#fffdf6; --text:#2b2418; --sub:#6b5d45; --border:#eadfc3; --accent:#b5762a; --accent-soft:#f6e7c8; --night:#1d1b2e; }
@media (prefers-color-scheme: dark) { :root { --bg:#0b0a0f; --card:#15141c; --text:#ede3d6; --sub:#a39987; --border:#2a2833; --accent:#ffb347; --accent-soft:#2a1f10; --night:#15141c; } }
* { box-sizing: border-box; }
body { margin:0; background:var(--bg); color:var(--text); font-family:system-ui,-apple-system,"Hiragino Sans","Noto Sans JP",sans-serif; line-height:1.8; word-break:auto-phrase; }
main { max-width:760px; margin:0 auto; padding:24px 16px 40px; }
header { display:flex; gap:16px; align-items:center; margin:16px 0 24px; }
header img { width:72px; height:72px; border-radius:16px; flex:none; }
h1 { font-size:1.4rem; margin:0; line-height:1.4; }
.lead { color:var(--sub); margin:4px 0 0; }
h2 { font-size:1.1rem; margin:0 0 8px; }
h3 { font-size:1rem; margin:16px 0 4px; }
section { background:var(--card); border:1px solid var(--border); border-radius:16px; padding:18px 18px 12px; margin:14px 0; }
.hero { background:var(--accent-soft); border-color:transparent; display:flex; gap:12px; align-items:center; justify-content:center; flex-wrap:wrap; text-align:center; }
.hero img { width:128px; height:128px; border-radius:50%; }
.hero p { flex-basis:100%; margin:4px 0; }
.hero strong { color:var(--accent); font-size:1.15rem; }
ul, ol { padding-left:1.2em; margin:6px 0 10px; }
li { margin:2px 0; }
dt { font-weight:700; margin-top:10px; }
dd { margin:2px 0 8px; color:var(--sub); }
a { color:var(--accent); }
.note { color:var(--sub); font-size:.9rem; }
nav { display:flex; gap:16px; flex-wrap:wrap; margin-bottom:8px; font-size:.95rem; }
table { border-collapse:collapse; width:100%; }
th, td { text-align:left; vertical-align:top; padding:10px 8px; border-bottom:1px solid var(--border); }
th { width:34%; color:var(--sub); font-weight:600; }
.lang { margin-top:40px; }
/* 足元。TENRYU・LUMINA・SAKURA・ぴたトリと同じ組み立て（断り書き → 法的表記 → 組ごとの道 → 作者） */
.sf { max-width:760px; margin:0 auto; padding:28px 16px calc(40px + env(safe-area-inset-bottom, 0px)); border-top:1px solid var(--border); font-size:.85rem; line-height:1.7; color:var(--sub); }
.sf p { margin:0; line-break:strict; }
.sf .flegal { display:flex; flex-wrap:wrap; gap:0 20px; }
.sf .flegal a { display:inline-flex; align-items:center; min-height:44px; color:var(--sub); }
.sf .fnav { display:grid; grid-template-columns:repeat(2, 1fr); gap:16px; margin:20px 0 0; padding-top:18px; border-top:1px solid var(--border); font-size:inherit; }
.sf .fh { margin:0 0 4px; font-size:.72rem; font-weight:700; letter-spacing:.08em; opacity:.8; }
.sf .fnav ul { margin:0; padding:0; list-style:none; }
.sf .fnav li { margin:0; }
.sf .fnav a { display:flex; flex-direction:column; justify-content:center; min-height:44px; padding:4px 0; line-height:1.4; color:var(--text); text-decoration:none; }
.sf .fnav a small { display:block; margin-top:2px; font-size:.72rem; color:var(--sub); }
.sf .fnav a:hover { color:var(--accent); }
.sf .sig { margin-top:20px; font-size:.72rem; letter-spacing:.04em; opacity:.8; }
.sf .sig a { color:inherit; }
.sf .fmark { margin-bottom:8px; font-weight:700; color:var(--text); }
.nw { white-space:nowrap; }
