/* easter.ne.jp — mobile-first, no JS, system fonts */
:root{
  --fg:#1d2321;--muted:#5b6662;--bg:#fff;--soft:#f5f7f6;--line:#dfe5e2;
  --brand:#1f5f4a;--link:#0b5cad;--pr:#7a4b00;--prbg:#fff6e0;
  --ok:#1b7a3d;--ended:#b3261e;--est:#c15a00;--low:#9a6a00;--info:#3d5a99;--unk:#6b6b6b;
  --w:44rem;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;color:var(--fg);background:var(--bg);
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP","Noto Sans CJK JP","Yu Gothic UI","Yu Gothic",Meiryo,sans-serif;
  font-size:1rem;line-height:1.85;letter-spacing:.02em;
  line-break:strict;word-break:normal;overflow-wrap:anywhere;font-kerning:auto}
h1,h2,h3{line-height:1.45;letter-spacing:.01em;font-feature-settings:"palt" 1;margin:1.8em 0 .6em}
h1{font-size:1.45rem;margin-top:.6em}
h2{font-size:1.2rem;padding:.2em 0 .2em .6em;border-left:4px solid var(--brand)}
h3{font-size:1.05rem}
p,ul,ol,dl,table{margin:0 0 1em}
a{color:var(--link);text-underline-offset:.15em}
a:visited{color:#5a3d99}
.wrap{max-width:var(--w);margin:0 auto;padding:0 1rem}
.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;background:#fff;padding:.5rem;z-index:9}

.site-header{border-bottom:1px solid var(--line);background:var(--bg)}
.site-header .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem 1rem;padding-top:.6rem;padding-bottom:.4rem}
.logo{font-weight:700;font-size:1.15rem;color:var(--brand);text-decoration:none}
.gnav ul{display:flex;gap:.2rem .9rem;list-style:none;margin:0;padding:0;overflow-x:auto;white-space:nowrap;font-size:.9rem}
.gnav a{color:var(--fg);text-decoration:none}.gnav a:hover{text-decoration:underline}

.banner{padding:.6rem 1rem;font-size:.88rem;line-height:1.6}
.banner-sample{background:#fdecea;color:#7d1a12;border-bottom:2px solid #b3261e}
.banner-draft{background:#eef2fb;color:#23366b;border-bottom:2px solid #3d5a99}
.pr-banner{margin:.8rem 0 0;padding:.35rem .7rem;background:var(--prbg);color:var(--pr);border:1px solid #f0d79a;border-radius:4px;font-size:.85rem}
.pr-tag{color:var(--pr);font-size:.8rem;white-space:nowrap}

.breadcrumb ol{list-style:none;margin:.6rem 0 0;padding:0;font-size:.8rem;color:var(--muted);display:flex;flex-wrap:wrap}
.breadcrumb li+li::before{content:"›";margin:0 .4em;color:#aab}
.breadcrumb a{color:var(--muted)}

.statusbox{background:var(--soft);border:1px solid var(--line);border-radius:8px;padding:.8rem 1rem;margin:0 0 .8rem}
.statusbox p{margin:.2rem 0}
.label{font-size:.8rem;color:var(--muted)}
.badge{display:inline-block;padding:.05em .6em;border-radius:999px;color:#fff;font-weight:700;font-size:.9rem;line-height:1.7;white-space:nowrap}
.b-ok{background:var(--ok)}.b-ended{background:var(--ended)}.b-ended-est{background:var(--est)}
.b-low{background:var(--low)}.b-renew,.b-limited,.b-resale{background:var(--info)}.b-unknown{background:var(--unk)}
.checked{font-weight:700}
.byline{display:flex;flex-wrap:wrap;gap:.1rem 1rem;font-size:.82rem;color:var(--muted);margin-bottom:1.2rem}
.tbc{color:#b3261e;font-size:.8em}
.tag-sample{display:inline-block;background:#b3261e;color:#fff;font-size:.7rem;padding:0 .4em;border-radius:3px;vertical-align:middle}
.src-kind{font-size:.75rem;color:var(--ok);border:1px solid var(--ok);border-radius:3px;padding:0 .3em}

.tbl{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 0 1em}
table{border-collapse:collapse;width:100%;font-size:.9rem;line-height:1.6}
th,td{border:1px solid var(--line);padding:.45rem .55rem;text-align:left;vertical-align:top}
th{background:var(--soft);font-weight:700;white-space:nowrap}
tr.forecast td{background:#fffbea}.yosou{font-size:.75rem;color:var(--pr)}

.btn{display:inline-block;padding:.55rem 1rem;border-radius:6px;background:var(--brand);color:#fff!important;text-decoration:none;font-weight:700}
.aff-row{margin:.6rem 0 1.2rem}
.rel-label{display:inline-block;background:var(--soft);border:1px solid var(--line);padding:0 .5em;border-radius:3px;font-size:.85rem}
.avail{background:var(--soft);padding:.3rem .6rem;border-radius:4px}

.faq dt{font-weight:700;margin-top:1rem}.faq dt::before{content:"Q. ";color:var(--brand)}
.faq dd{margin:.2rem 0 0;padding-left:1.6em}.faq dd::before{content:"A. ";margin-left:-1.6em;color:var(--muted)}

.links{border:1px solid var(--line);border-radius:8px;padding:.2rem 1rem .4rem;margin:2rem 0}
.links-h{border:0;padding:0;font-size:1rem;margin:.8rem 0 .4rem}
.links ul{margin:0;padding-left:1.1em}.links li{margin:.2rem 0}
.links .k-up::marker{content:"↑ "}.links .k-calendar::marker{content:"📅 "}
.changelog{font-size:.88rem;color:var(--muted)}.changelog h2{font-size:1rem}
.authorbox{border-top:1px solid var(--line);margin-top:2rem;padding-top:1rem;font-size:.9rem}
.ab-name{font-weight:700;margin:0}.small{font-size:.82rem}
.notice{background:#eef2fb;border-left:4px solid var(--info);padding:.5rem .8rem;font-size:.9rem}
.meta{font-size:.85rem;color:var(--muted)}

.hero{padding:1.2rem 0 .4rem}.hero h1{font-size:1.6rem;margin:.2rem 0}
.hero p{color:var(--muted);margin:0}
.hubgrid ul{list-style:none;padding:0;margin:1rem 0;display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.hubgrid a{display:block;padding:.9rem;border:1px solid var(--line);border-radius:8px;text-decoration:none;color:var(--fg);background:var(--soft)}
.latest{padding-left:1.1em}

.site-footer{margin-top:3rem;border-top:1px solid var(--line);background:var(--soft);font-size:.85rem;padding:1rem 0 2rem}
.site-footer ul{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.3rem 1rem}
.site-footer a{color:var(--fg)}
.note,.copy{color:var(--muted)}

@media (min-width:48em){
  body{font-size:1.0625rem}
  h1{font-size:1.75rem}
  .hubgrid ul{grid-template-columns:repeat(3,1fr)}
}
@media (prefers-color-scheme:dark){
  :root{--fg:#e7ecea;--muted:#a5b0ac;--bg:#141816;--soft:#1d2320;--line:#323b37;--link:#7db7ff;--prbg:#2e2512;--pr:#f3c64b}
  a:visited{color:#c3a6ff}
}
@media print{.site-header nav,.links,.site-footer nav{display:none}}

/* magazine layer */
.lead-story{border:1px solid var(--line);border-left:6px solid var(--brand);border-radius:8px;padding:.6rem 1rem .4rem;margin:1rem 0;background:var(--soft)}
.kicker{margin:0;font-size:.78rem;font-weight:700;color:var(--brand);letter-spacing:.08em}
.lead-h{border:0;padding:0;margin:.2rem 0 .3rem;font-size:1.15rem}
.lead-meta{font-size:.82rem;color:var(--muted);margin:0 0 .3rem}
.lead-sum{font-size:.9rem;margin:0 0 .4rem}
.secgrid{display:grid;grid-template-columns:1fr;gap:.6rem}
@media (min-width:36rem){.secgrid{grid-template-columns:1fr 1fr}}
.sec{border:1px solid var(--line);border-radius:8px;padding:.5rem .9rem}
.sec h3{margin:.2rem 0}.sec-sub{font-size:.8rem;color:var(--muted);margin:0 0 .3rem}
.sec-lead{font-size:.9rem;margin:0 0 .3rem}.muted{color:var(--muted)}
.upd{list-style:none;padding:0}.upd li{border-bottom:1px dashed var(--line);padding:.35rem 0}
.upd time{font-weight:700;color:var(--brand);margin-right:.4em}
.cal{list-style:none;padding:0;display:flex;gap:.5rem;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 0 .4rem}
.cal li{flex:0 0 13rem;border:1px solid var(--line);border-radius:8px;padding:.5rem .7rem;font-size:.85rem;line-height:1.55;display:flex;flex-direction:column;gap:.15rem}
.cal-date{font-weight:700;font-size:1rem}
.cal-state{display:inline-block;width:max-content;font-size:.72rem;padding:0 .5em;border-radius:999px;color:#fff;background:var(--unk)}
.cal-now .cal-state{background:var(--ok)}.cal-next .cal-state{background:var(--info)}.cal-end .cal-state{background:var(--ended)}
.cal-end{opacity:.8}.cal-src{color:var(--muted);font-size:.75rem}
