*{margin:0;padding:0;box-sizing:border-box}
:root{--bg:#fafafa;--bg2:#f0f0f2;--bg3:#e8e8ec;--surface:#ffffff;--surface2:#f5f5f7;--border:#e0e0e6;--border2:#d0d0d8;--text:#1a1a2e;--text2:#4a4a5a;--text3:#8a8a9a;--accent:#c0392b;--accent2:#e74c3c;--gold:#8b6914;--gold2:#a07d1c;--blue:#2563eb;--radius:6px;--max-w:1320px;--header-h:64px}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 20px)}
body{font-family:'IBM Plex Sans JP','Hiragino Kaku Gothic ProN',sans-serif;background:var(--bg);color:var(--text);line-height:1.85;font-size:14px;-webkit-font-smoothing:antialiased}
::selection{background:var(--accent);color:#fff}
::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg2)}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px}
a{color:var(--blue);text-decoration:none;transition:color .2s}a:hover{color:var(--accent2)}
header{position:sticky;top:0;z-index:200;height:var(--header-h);background:rgba(255,255,255,.92);backdrop-filter:blur(20px) saturate(1.4);border-bottom:1px solid var(--border)}
.hi{max-width:var(--max-w);margin:0 auto;padding:0 28px;height:100%;display:flex;align-items:center;justify-content:space-between;gap:20px}
.logo{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--text);flex-shrink:0}.logo:hover{color:var(--text)}
.lm{width:36px;height:36px;background:var(--accent);border-radius:4px;display:grid;place-items:center;font-family:'Zen Old Mincho',serif;font-weight:900;font-size:18px;color:#fff;position:relative;overflow:hidden}
.lm::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.2),transparent)}
.lt h1,.lt .sn{font-family:'Zen Old Mincho',serif;font-size:17px;font-weight:700;letter-spacing:2px;line-height:1.1;margin:0}
.lt small{font-family:'Cormorant Garamond',serif;font-size:10px;font-weight:300;letter-spacing:4px;color:var(--text3);text-transform:uppercase}
.hc{font-family:'Cormorant Garamond',serif;font-size:32px;font-weight:300;color:var(--accent);line-height:1;letter-spacing:2px}
.hc span{font-size:10px;color:var(--text3);letter-spacing:3px;display:block;margin-top:2px;font-family:'IBM Plex Sans JP',sans-serif}
.sb{position:sticky;top:var(--header-h);z-index:190;background:rgba(250,250,250,.92);backdrop-filter:blur(16px);border-bottom:1px solid var(--border);padding:12px 0}
.si{max-width:var(--max-w);margin:0 auto;padding:0 28px;display:flex;gap:12px;align-items:center}
.sx{flex:1;position:relative}.sx svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--text3);pointer-events:none}
.sx input{width:100%;padding:10px 16px 10px 42px;font-size:14px;font-family:inherit;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);outline:none;transition:all .25s}
.sx input::placeholder{color:var(--text3)}.sx input:focus{border-color:var(--gold);background:var(--surface2)}
.bc{max-width:var(--max-w);margin:0 auto;padding:14px 28px 0;font-size:12px;color:var(--text3)}.bc a{color:var(--text3)}.bc a:hover{color:var(--gold2)}.bc i{margin:0 6px;opacity:.4;font-style:normal}
.mw{max-width:var(--max-w);margin:0 auto;padding:20px 28px 80px;display:grid;grid-template-columns:1fr 280px;gap:28px}
.ct{min-width:0}.sd{display:flex;flex-direction:column;gap:20px}
.sc{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:0 1px 4px rgba(0,0,0,.04)}
.sc h4{font-family:'Zen Old Mincho',serif;font-size:13px;font-weight:700;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border);letter-spacing:1px}
.sl{display:block;padding:5px 0;font-size:13px;color:var(--text2);border-bottom:1px solid var(--border);transition:color .2s}.sl:last-child{border:none}.sl:hover{color:var(--accent)}.sl.active{color:var(--accent)}
.ab{background:var(--bg2);border:1px dashed var(--border);border-radius:var(--radius);display:grid;place-items:center;color:var(--text3);font-size:11px;letter-spacing:2px}
.ab.lb{height:90px;max-width:var(--max-w);margin:0 auto}.ab.rect{height:250px}.ab.tall{height:600px;position:sticky;top:calc(var(--header-h) + 70px)}
.at{max-width:var(--max-w);margin:0 auto;padding:14px 28px 0}
footer{border-top:1px solid var(--border);padding:40px 28px;text-align:center;color:var(--text3);font-size:12px}footer p+p{margin-top:6px}
.btt{position:fixed;bottom:24px;right:24px;width:40px;height:40px;background:var(--surface);border:1px solid var(--border);border-radius:50%;display:grid;place-items:center;cursor:pointer;opacity:0;transform:translateY(10px);transition:all .3s;z-index:100;color:var(--text2);box-shadow:0 2px 8px rgba(0,0,0,.08)}
.btt.show{opacity:1;transform:translateY(0)}.btt:hover{background:var(--accent);border-color:var(--accent);color:#fff}.btt svg{width:16px;height:16px}
.th{padding:32px 0 24px}
.th h1{font-family:'Zen Old Mincho',serif;font-size:28px;font-weight:900;letter-spacing:1px;line-height:1.4;margin-bottom:4px}
.th .rd{font-size:13px;color:var(--text3);margin-bottom:10px}
.th .cb{display:inline-block;font-size:11px;color:var(--accent);border:1px solid var(--accent);border-radius:100px;padding:2px 12px;margin-bottom:16px}
.tb{font-size:15px;line-height:2.1;color:var(--text);margin-bottom:28px}.tb p{margin-bottom:16px}.tb p:last-child{margin-bottom:0}
.tb a{border-bottom:1px dotted var(--blue);color:var(--blue)}.tb a:hover{border-bottom-style:solid}
.rs{margin-top:24px;padding-top:20px;border-top:1px solid var(--border)}.rs h3{font-family:'Zen Old Mincho',serif;font-size:14px;margin-bottom:12px;color:var(--text2)}
.rt{display:flex;flex-wrap:wrap;gap:6px}.rt a{font-size:12px;color:var(--blue);background:rgba(37,99,235,.06);padding:4px 12px;border-radius:4px;transition:background .2s;border:none}.rt a:hover{background:rgba(37,99,235,.12)}
.sc2{margin-top:28px;padding-top:20px;border-top:1px solid var(--border)}.sc2 h3{font-family:'Zen Old Mincho',serif;font-size:14px;margin-bottom:12px;color:var(--text2)}
.sg{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
.sg a{display:block;padding:8px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);font-size:13px;color:var(--text2);transition:all .2s}.sg a:hover{border-color:var(--border2);color:var(--text);background:var(--surface2);box-shadow:0 1px 4px rgba(0,0,0,.06)}
.pn{display:flex;gap:12px;margin-top:32px;padding-top:20px;border-top:1px solid var(--border)}
.pn a{flex:1;display:block;padding:12px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);font-size:13px;color:var(--text2);transition:all .2s;text-decoration:none;box-shadow:0 1px 4px rgba(0,0,0,.04)}
.pn a:hover{border-color:var(--border2);background:var(--surface2);color:var(--text);box-shadow:0 2px 8px rgba(0,0,0,.08)}.pn a small{display:block;font-size:11px;color:var(--text3);margin-bottom:2px}.pn a.nx{text-align:right}
.ph{padding:28px 0 20px}.ph h1{font-family:'Zen Old Mincho',serif;font-size:24px;font-weight:900;letter-spacing:1px;margin-bottom:6px}.ph p{font-size:14px;color:var(--text2)}
.cg{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-bottom:32px}
.cc{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;transition:all .2s;box-shadow:0 1px 4px rgba(0,0,0,.04)}.cc:hover{border-color:var(--border2);background:var(--surface2);box-shadow:0 2px 8px rgba(0,0,0,.08)}
.cc h3{font-family:'Zen Old Mincho',serif;font-size:15px;font-weight:700;margin-bottom:4px}.cc h3 a{color:var(--text);text-decoration:none}.cc h3 a:hover{color:var(--gold2)}
.cc .cn{font-size:12px;color:var(--text3)}
.tl{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.tl:last-child{border:none}
.tl a{font-family:'Zen Old Mincho',serif;font-size:15px;font-weight:700;color:var(--text);min-width:120px;flex-shrink:0}.tl a:hover{color:var(--gold2)}
.tl p{font-size:13px;color:var(--text3);line-height:1.7;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.h2s{font-family:'Zen Old Mincho',serif;font-size:16px;font-weight:700;margin:28px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--border);letter-spacing:1px}
@media(max-width:1024px){.mw{grid-template-columns:1fr}.sd{display:none}}
@media(max-width:768px){:root{--header-h:56px}.hi{padding:0 16px}.lt h1,.lt .sn{font-size:14px}.hc{font-size:26px}.si,.bc,.at{padding-left:16px;padding-right:16px}.mw{padding:16px 16px 60px}.th h1{font-size:22px}.ph h1{font-size:20px}.pn{flex-direction:column}}
@media(max-width:480px){.lm{width:30px;height:30px;font-size:15px}.lt h1,.lt .sn{font-size:13px;letter-spacing:1px}.lt small{display:none}.hc{font-size:22px}.hc span{font-size:9px}}
@media print{header,.sb,.sd,.ab,.at,.btt,footer,.bc,.pn{display:none!important}.mw{display:block!important;padding:0!important}body{background:#fff!important;color:#000!important}}
