:root{--red:#b71c1c;--red-light:#ffebee;--navy:#1a237e;--navy-light:#e8eaf6;--gold:#f9a825;--gold-light:#fffde7;--gray:#666;--gray-light:#f5f5f5;--bg:#f7f7f5;--white:#fff;--text:#1a1a1a;--text-muted:#666;--border:#e0e0e0}*{box-sizing:border-box}body{color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0;font-family:Hiragino Kaku Gothic ProN,Hiragino Sans,Noto Sans JP,system-ui,sans-serif;line-height:1.7}a{color:var(--navy)}.container{max-width:880px;margin:0 auto;padding:0 16px}.site-header{background:var(--navy);color:var(--white)}.site-header .container{justify-content:space-between;align-items:center;padding-top:14px;padding-bottom:14px;display:flex}.site-header a{color:var(--white);text-decoration:none}.site-brand{letter-spacing:.04em;font-size:20px;font-weight:700}.site-tagline{color:var(--navy-light);margin-top:2px;font-size:12px}.site-nav{gap:18px;font-size:14px;display:flex}.site-footer{border-top:1px solid var(--border);background:var(--white);color:var(--text-muted);margin-top:48px;font-size:13px}.site-footer .container{padding-top:24px;padding-bottom:32px}.site-footer nav{flex-wrap:wrap;gap:16px;margin-bottom:10px;display:flex}.page-title{color:var(--navy);border-left:5px solid var(--red);margin:28px 0 16px;padding-left:12px;font-size:22px;font-weight:700}.hero{background:var(--white);border:1px solid var(--border);border-radius:10px;margin-top:24px;padding:24px}.hero h1{color:var(--navy);margin:0 0 8px;font-size:24px}.hero p{color:var(--text-muted);margin:0}.card-grid{grid-template-columns:1fr;gap:16px;display:grid}@media (width>=640px){.card-grid{grid-template-columns:1fr 1fr}}.article-card{background:var(--white);border:1px solid var(--border);color:inherit;border-radius:10px;flex-direction:column;padding:16px;text-decoration:none;transition:box-shadow .15s;display:flex}.article-card:hover{box-shadow:0 4px 14px #1a237e1f}.article-card .meta{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;display:flex}.article-card .title{color:var(--navy);margin:6px 0;font-size:16px;font-weight:700}.article-card .headline{color:var(--text);margin:0 0 12px;font-size:14px}.article-card .foot{justify-content:space-between;align-items:center;margin-top:auto;display:flex}.badge{letter-spacing:.02em;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-block}.badge-paid{background:var(--red-light);color:var(--red)}.badge-free{background:var(--navy-light);color:var(--navy)}.badge-type{background:var(--gold-light);color:#8a6d00}.price{color:var(--red);font-weight:700}.filters{flex-wrap:wrap;gap:8px;margin:16px 0;display:flex}.filter-btn{border:1px solid var(--border);background:var(--white);color:var(--text);cursor:pointer;border-radius:999px;padding:6px 14px;font-size:13px}.filter-btn.is-active{background:var(--navy);color:var(--white);border-color:var(--navy)}.detail{background:var(--white);border:1px solid var(--border);border-radius:10px;margin-top:24px;padding:24px}.detail .meta{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:10px;font-size:13px;display:flex}.detail h1{color:var(--navy);margin:10px 0;font-size:22px}.detail .excerpt{background:var(--gold-light);border-radius:8px;margin:16px 0;padding:14px 16px}.buy-box{border:1px dashed var(--red);background:var(--red-light);text-align:center;border-radius:10px;margin-top:20px;padding:20px}.buy-box .price-lg{color:var(--red);font-size:26px;font-weight:700}.buy-box .access-note{color:var(--text-muted);margin:6px 0 14px;font-size:13px}.btn{cursor:pointer;border:none;border-radius:8px;padding:12px 28px;font-size:15px;font-weight:700;text-decoration:none;display:inline-block}.btn-buy{background:var(--red);color:var(--white)}.btn-buy:disabled{opacity:.5;cursor:not-allowed}.btn-read{background:var(--navy);color:var(--white)}.placeholder-note{color:var(--text-muted);margin-top:10px;font-size:12px}.prose h2{color:var(--navy);border-left:4px solid var(--gold);padding-left:10px;font-size:18px}.prose{background:var(--white);border:1px solid var(--border);border-radius:10px;margin-top:24px;padding:24px}.prose dt{color:var(--navy);margin-top:12px;font-weight:700}
