:root{--bg:#fbf9f4;--fg:#2b2a27;--muted:#6b675f;--line:#e4dfd3;--accent:#8a3b2a;--accent-soft:#f3e6e0;--good:#2f6b3a;--good-soft:#e5f1e6;--bad:#9b2c2c;--bad-soft:#f7e3e3;--card:#fff;--max:880px;color-scheme:light}*{box-sizing:border-box}html{font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Noto Sans JP,Yu Gothic,sans-serif;line-height:1.75}body{background:var(--bg);color:var(--fg);margin:0}a{color:var(--accent)}main{max-width:var(--max);margin:0 auto;padding:1rem 16px 3rem}.site-header{border-bottom:1px solid var(--line);background:var(--card)}.site-header .inner{max-width:var(--max);flex-wrap:wrap;align-items:center;gap:.5rem 1.2rem;margin:0 auto;padding:.6rem 16px;display:flex}.site-header .brand{color:var(--fg);align-items:center;gap:.5rem;text-decoration:none;display:inline-flex}.site-header .brand img{display:block}.brand-text{flex-direction:column;justify-content:center;gap:.22rem;line-height:1;display:flex}.brand-name{letter-spacing:.08em;font-family:Hiragino Mincho ProN,Yu Mincho,Noto Serif JP,serif;font-size:1.22rem;font-weight:600}.brand-roman{letter-spacing:.2em;color:var(--accent);font-size:.58rem}.site-header nav a{color:var(--muted);font-size:.95rem;text-decoration:none}.site-footer{border-top:1px solid var(--line);color:var(--muted);font-size:.85rem}.site-footer .inner{max-width:var(--max);flex-wrap:wrap;gap:.4rem 1rem;margin:0 auto;padding:1.2rem 16px;display:flex}h1{margin:.6rem 0 .4rem;font-size:1.55rem;line-height:1.4}h2{border-left:4px solid var(--accent);margin:2rem 0 .6rem;padding-left:.6rem;font-size:1.25rem}h3{margin:1.4rem 0 .4rem;font-size:1.05rem}.meta{color:var(--muted);font-size:.85rem}.breadcrumbs{color:var(--muted);font-size:.8rem}.breadcrumbs ol{flex-wrap:wrap;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.breadcrumbs li+li:before{content:"›";margin-right:.3rem}table{border-collapse:collapse;width:100%;font-size:.92rem}.table-wrap{margin:.8rem 0;overflow-x:auto}th,td{border:1px solid var(--line);text-align:left;vertical-align:top;padding:.4rem .5rem}th{background:var(--accent-soft);font-weight:600}.badge{background:var(--accent-soft);color:var(--accent);white-space:nowrap;border-radius:3px;margin:.1rem .15rem .1rem 0;padding:.05rem .4rem;font-size:.72rem;display:inline-block}.badge.good{background:var(--good-soft);color:var(--good)}.badge.bad{background:var(--bad-soft);color:var(--bad)}.badge.strong{background:var(--accent);color:#fff}.card{background:var(--card);border:1px solid var(--line);border-radius:8px;margin:1rem 0;padding:1rem}.grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.8rem;display:grid}.calendar{grid-template-columns:repeat(7,1fr);gap:2px;font-size:.78rem;display:grid}.calendar .head{text-align:center;color:var(--muted);padding:.2rem 0}.calendar .cell{background:var(--card);border:1px solid var(--line);border-radius:4px;min-height:4.6rem;padding:.2rem .25rem}.calendar .cell.empty{background:0 0;border-color:#0000}.calendar .cell.sun .day{color:var(--bad)}.calendar .cell.sat .day{color:#2a5c9b}.calendar .day{font-weight:700}.calendar .sub{color:var(--muted);font-size:.7rem}.calendar .cell.hot{outline:2px solid var(--accent)}.ad-slot{min-height:280px;color:var(--muted);border:1px dashed var(--line);justify-content:center;align-items:center;margin:1.5rem 0;font-size:.75rem;display:flex}.ad-slot.anchor-space{border:0;height:0;min-height:0;margin:0}.author-block,.disclosure{background:var(--card);border:1px solid var(--line);border-radius:8px;margin:1.5rem 0;padding:.8rem 1rem;font-size:.88rem}.pr-notice{color:var(--muted);border:1px solid var(--line);border-radius:4px;margin-bottom:.6rem;padding:.3rem .6rem;font-size:.8rem;display:inline-block}.koyomi-faq>p:first-child,.koyomi-faq h3{font-weight:700}.koyomi-author-note{border-left:3px solid var(--accent);background:var(--accent-soft);margin:1rem 0;padding:.3rem .8rem;font-size:.92rem}.next-read ul{padding-left:1.2rem}.tool{background:var(--card);border:1px solid var(--line);border-radius:8px;margin:1rem 0;padding:1rem}.tool label{margin:.4rem 0;font-size:.9rem;display:block}.tool select,.tool input{margin-right:.3rem;padding:.3rem .4rem;font-size:1rem}.tool button{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:6px;padding:.45rem 1rem;font-size:1rem}.tool .result{margin-top:1rem}.dir-grid{grid-template-columns:repeat(3,1fr);gap:4px;max-width:360px;margin:.8rem auto;display:grid}.dir-grid .d{border:1px solid var(--line);text-align:center;background:var(--card);border-radius:6px;min-height:4.2rem;padding:.35rem;font-size:.8rem}.dir-grid .d.good{background:var(--good-soft);border-color:var(--good)}.dir-grid .d.bad{background:var(--bad-soft);border-color:var(--bad)}.dir-grid .d .n{font-weight:700}.dir-grid .d .s{color:var(--muted);font-size:.75rem}.today-strip{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.5rem;display:grid}.today-strip .t{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:.5rem;font-size:.8rem}.today-strip .t.today{outline:2px solid var(--accent)}.cta{background:var(--accent);color:#fff;border-radius:6px;margin:.3rem .3rem .3rem 0;padding:.5rem 1rem;text-decoration:none;display:inline-block}.cta.secondary{background:var(--card);color:var(--accent);border:1px solid var(--accent)}.small{color:var(--muted);font-size:.85rem}@media (width<=480px){.calendar{font-size:.7rem}.calendar .cell{min-height:4rem}h1{font-size:1.3rem}}.month-nav{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin:.8rem 0;display:flex}.month-nav .cur{font-weight:700}.month-nav .disabled{color:var(--muted);opacity:.5;padding:.5rem}.month-nav a{text-decoration:none}.board-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.8rem;margin:.8rem 0;display:grid}.board-card{border:1px solid var(--line);background:var(--card);border-radius:8px;padding:.6rem}.board-card .bh{margin-bottom:.3rem}.dir-grid.compact{gap:3px;max-width:none;margin:.3rem 0 .4rem}.dir-grid.compact .d{min-height:3.3rem;padding:.18rem;font-size:.7rem}.dir-grid.compact .d .s{font-size:.66rem}.star-buttons{flex-wrap:wrap;gap:.35rem;margin:.5rem 0;display:flex}.star-buttons .cta{cursor:pointer;padding:.4rem .7rem;font-family:inherit;font-size:.9rem}.cta{font-family:inherit}button.cta.secondary{background:var(--card);color:var(--accent);border:1px solid var(--accent)}.contact-mail{text-align:center;font-size:1.15rem}.contact-mail a{word-break:break-all;text-decoration:none}.logo-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;display:grid}.logo-card{border:1px solid var(--line);background:var(--card);border-radius:8px;padding:.8rem}.logo-main{text-align:center;padding:.4rem 0}.logo-sizes{border-top:1px solid var(--line);border-bottom:1px solid var(--line);justify-content:center;align-items:flex-end;gap:.6rem;padding:.4rem 0;display:flex}.logo-header-demo{align-items:center;gap:.4rem;padding:.4rem 0;display:flex}
