:root { --bg:#fffaf8; --text:#26211f; --sub:#76696a; --line:#ecdcd8; --accent:#c2416b; --gate:#26211fee; }
@media (prefers-color-scheme: dark) { :root { --bg:#1d1a1b; --text:#ece4e2; --sub:#a8999b; --line:#3d3537; --accent:#f07ea3; --gate:#000000ee; } }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--text); font-family:"Hiragino Sans","Noto Sans JP","Yu Gothic UI",sans-serif; line-height:1.9; font-size:17px; }
main, .site-header, .site-footer { max-width:720px; margin:0 auto; padding:0 16px; }
.site-header { padding-top:24px; padding-bottom:16px; border-bottom:1px solid var(--line); display:flex; align-items:center; gap:10px; }
.site-header a { color:var(--text); text-decoration:none; font-weight:700; font-size:1.2rem; }
.r18 { font-size:.75rem; font-weight:700; color:#fff; background:var(--accent); border-radius:4px; padding:0 6px; }
a { color:var(--accent); }
h1 { font-size:1.5rem; line-height:1.5; margin:32px 0 8px; }
h2 { font-size:1.2rem; margin:40px 0 12px; padding-bottom:4px; border-bottom:2px solid var(--line); }
.date { color:var(--sub); font-size:.9rem; }
table { border-collapse:collapse; width:100%; display:block; overflow-x:auto; }
th, td { border:1px solid var(--line); padding:6px 10px; }
.list { list-style:none; padding:0; }
.list li { padding:20px 0; border-bottom:1px solid var(--line); }
.list a { font-weight:700; text-decoration:none; }
.list p { margin:4px 0 0; color:var(--sub); font-size:.95rem; }
.site-footer { margin-top:64px; padding-top:16px; padding-bottom:32px; border-top:1px solid var(--line); color:var(--sub); font-size:.85rem; }
.site-footer p { margin:4px 0; }
.gate { display:none; }
.gate-on .gate { display:flex; position:fixed; inset:0; z-index:10; background:var(--gate); align-items:center; justify-content:center; padding:16px; }
.gate-on body { overflow:hidden; }
.gate-on main, .gate-on .site-header, .gate-on .site-footer { visibility:hidden; }
.gate-box { background:var(--bg); border-radius:12px; padding:24px; max-width:420px; width:100%; text-align:center; }
.gate-title { font-weight:700; font-size:1.2rem; margin-top:0; }
.gate-buttons { display:flex; flex-direction:column; gap:10px; margin-top:16px; }
.gate-buttons button, .gate-buttons a { font:inherit; padding:12px; border-radius:8px; text-decoration:none; cursor:pointer; }
#gate-yes { background:var(--accent); color:#fff; border:0; font-weight:700; }
#gate-no { border:1px solid var(--line); color:var(--text); }
