/* AI週刊ダイジェスト（ai/ 配下専用）。body.ai に限定し、セキュリティ側のページには読み込まない。
   ファミコンRPGのメニュー窓（青いウィンドウ＋白いドット枠）× 青×コーラルの配色。
   フォントは M PLUS 1（SIL OFL 1.1、fonts/OFL.txt）。build.py が使う文字だけの可変WOFF2（太さ400〜800）を fonts/ に作る。 */
body.ai{
  /* ページ側（クリーム）*/
  --bg:#FAF7F2;--surf:#F1ECE4;--ink:#20191E;--ink2:#5C5458;--rule:#DDD5CB;
  --topl:#2C5A89;--frame:#fff;--link:#2C5A89;--cta:#BB512F;--ctat:#fff;--deep:#2B2330;--deept:#fff;--focus:#2C5A89;
  /* 窓（どちらのモードでも暗い）*/
  --w1:#1C4C80;--w2:#0C2642;--wl:#8AAED5;--wt:#fff;--wt2:#C9D8EA;--wc:#F7B49A;--wf:#FFD34D;
  --sans:"M PLUS 1","Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic UI",Meiryo,system-ui,sans-serif;--px:var(--sans);--pxh:var(--sans);
  --cut:polygon(0 6px,3px 6px,3px 3px,6px 3px,6px 0,calc(100% - 6px) 0,calc(100% - 6px) 3px,calc(100% - 3px) 3px,calc(100% - 3px) 6px,100% 6px,100% calc(100% - 6px),calc(100% - 3px) calc(100% - 6px),calc(100% - 3px) calc(100% - 3px),calc(100% - 6px) calc(100% - 3px),calc(100% - 6px) 100%,6px 100%,6px calc(100% - 3px),3px calc(100% - 3px),3px calc(100% - 6px),0 calc(100% - 6px));
  margin:0;display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;background:var(--bg);color:var(--ink);font-family:var(--sans);
  font-size:16px;line-height:1.8;line-break:strict;word-break:auto-phrase;overflow-wrap:break-word;
  -webkit-text-size-adjust:100%;text-rendering:optimizeLegibility;font-synthesis:none;
}
@media (prefers-color-scheme:dark){
  body.ai{--bg:#1B1622;--surf:#241E2C;--ink:#F2EDE7;--ink2:#B3A9AD;--rule:#38313A;--topl:#2B2330;--frame:#C9D6E8;--link:#A3C2E4;--cta:#EE8E66;--ctat:#15131A;--deep:#2B2330;--focus:#A3C2E4}
}
html:has(body.ai){background:#FAF7F2}
@media (prefers-color-scheme:dark){html:has(body.ai){background:#1B1622}}
body.ai *{box-sizing:border-box}
body.ai a{color:inherit}
body.ai :focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:2px}
.ai .ai-skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:var(--bg);padding:6px 12px;border-radius:6px;z-index:10}
.ai .ai-skip:focus{left:8px}
.ai .ai-topline{height:4px;background:var(--topl)}

/* page chrome */
.ai .ai-bar{width:100%;max-width:960px;margin:0 auto;padding:0 16px;min-height:56px;display:flex;align-items:center;justify-content:space-between;gap:16px;font-family:var(--px);font-size:14px;font-weight:500;color:var(--ink2)}
.ai .ai-bar a{padding:12px 0;color:var(--link);text-decoration:underline;text-underline-offset:.25em;text-decoration-thickness:1px}
.ai .ai-bar a:hover{text-decoration-thickness:2px}
.ai .ai-main{flex:1 0 auto;width:100%;max-width:960px;margin:0 auto;padding:8px 16px 0}

/* ---- the window ---- */
.ai .ai-win{background:#0A1F36;clip-path:var(--cut);padding:2px;filter:none}
.ai .ai-frame{background:var(--frame);clip-path:var(--cut);padding:3px}
.ai .ai-layout{background:linear-gradient(180deg,var(--w1),var(--w2));clip-path:var(--cut);box-shadow:inset 0 0 0 2px var(--wl);padding:28px 20px 12px;color:var(--wt);font-family:var(--px)}
.ai .ai-layout a{color:inherit}

.ai .ai-mast{padding:0 0 4px}
.ai .ai-kicker{margin:0;font-family:var(--px);font-size:13px;font-weight:500;line-height:24px;letter-spacing:.06em;color:var(--wt2)}
.ai .ai-sep{opacity:.6}
.ai .ai-tagline{margin:14px 0 10px;font-family:var(--px);font-weight:700;font-size:32px;line-height:1.3;letter-spacing:-.01em}
.ai .ai-nw{display:inline-block;white-space:nowrap}
.ai .ai-sub{margin:0;font-family:var(--px);font-size:14px;line-height:24px;color:var(--wt2);font-variant-numeric:tabular-nums}
.ai .ai-em{font-style:normal;font-weight:800;white-space:nowrap;background:linear-gradient(to top,#E77751 .125em,transparent .125em)}

/* week strip (desktop) */
.ai .ai-week{display:none}
.ai .ai-week ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(7,1fr)}
.ai .ai-week li{display:flex;flex-direction:column;align-items:center;min-height:48px}
.ai .ai-wd{font-family:var(--px);font-size:13px;line-height:1.5;color:var(--wt2)}
.ai .ai-dn{font-family:var(--px);font-size:15px;font-weight:700;line-height:1.5}
.ai .ai-dots{display:flex;justify-content:center;margin-top:6px;min-height:28px}
.ai .ai-dot{display:grid;place-items:center;width:28px;height:28px;margin:2px 0;font-family:var(--px);font-size:14px;font-weight:700;line-height:1;color:var(--wt);box-shadow:inset 0 0 0 2px var(--wl);text-decoration:none;transition:background-color .12s,color .12s}
.ai .ai-dot:hover,.ai .ai-dot:focus-visible{background:var(--wt);color:var(--w2)}
.ai .ai-layout:has(.ai-dot[href="#item-1"]:is(:hover,:focus-visible)) .ai-item:nth-child(1) .ai-hl,
.ai .ai-layout:has(.ai-dot[href="#item-2"]:is(:hover,:focus-visible)) .ai-item:nth-child(2) .ai-hl,
.ai .ai-layout:has(.ai-dot[href="#item-3"]:is(:hover,:focus-visible)) .ai-item:nth-child(3) .ai-hl,
.ai .ai-layout:has(.ai-dot[href="#item-4"]:is(:hover,:focus-visible)) .ai-item:nth-child(4) .ai-hl,
.ai .ai-layout:has(.ai-dot[href="#item-5"]:is(:hover,:focus-visible)) .ai-item:nth-child(5) .ai-hl,
.ai .ai-layout:has(.ai-dot[href="#item-6"]:is(:hover,:focus-visible)) .ai-item:nth-child(6) .ai-hl,
.ai .ai-layout:has(.ai-dot[href="#item-7"]:is(:hover,:focus-visible)) .ai-item:nth-child(7) .ai-hl,
.ai .ai-layout:has(.ai-dot[href="#item-8"]:is(:hover,:focus-visible)) .ai-item:nth-child(8) .ai-hl,
.ai .ai-layout:has(.ai-dot[href="#item-9"]:is(:hover,:focus-visible)) .ai-item:nth-child(9) .ai-hl,
.ai .ai-layout:has(.ai-dot[href="#item-10"]:is(:hover,:focus-visible)) .ai-item:nth-child(10) .ai-hl{color:var(--wc)}

/* list */
.ai .ai-list{padding-top:12px}
.ai .ai-listbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px dotted rgba(201,216,234,.45)}
.ai .ai-h2{margin:0;font-family:var(--px);font-size:14px;font-weight:500;color:var(--wt2)}
.ai .ai-toggle{font:inherit;font-family:var(--px);font-size:14px;font-weight:500;color:var(--wt);background:none;border:0;padding:8px 0 8px 12px;cursor:pointer;text-decoration:underline;text-underline-offset:.25em;text-decoration-thickness:1px}
.ai .ai-toggle:hover{text-decoration-thickness:2px}
.ai .ai-items{list-style:none;margin:0;padding:0}
.ai .ai-item{border-top:1px dotted rgba(201,216,234,.45)}
.ai .ai-item summary,.ai a.ai-hero,.ai .ai-back-list a{list-style:none;display:grid;grid-template-columns:28px minmax(0,1fr);column-gap:0;align-items:start;padding:20px 0;cursor:pointer;-webkit-tap-highlight-color:transparent;text-decoration:none}
.ai .ai-item summary::-webkit-details-marker{display:none}
.ai .ai-item summary:focus-visible,.ai a.ai-hero:focus-visible,.ai .ai-back-list a:focus-visible,.ai .ai-toggle:focus-visible{outline:3px solid var(--wf);outline-offset:-3px;border-radius:0}
.ai .ai-mk,.ai .ai-meta,.ai .ai-hl,.ai .ai-take,.ai .ai-hero-t,.ai .ai-back-t{min-width:0}
.ai .ai-meta{grid-column:2;grid-row:1;display:block;font-family:var(--px);font-size:13px;font-weight:500;line-height:24px;color:var(--wt2);font-variant-numeric:tabular-nums}
.ai .ai-no{color:var(--wc)}
.ai .ai-hl,.ai .ai-hero-t,.ai .ai-back-t{grid-column:2;grid-row:2;display:block;margin:0;font-family:var(--pxh);font-weight:700;font-size:18px;line-height:1.5;letter-spacing:0;color:var(--wt);word-break:auto-phrase;text-wrap:pretty;transition:color .12s}
.ai .ai-take{grid-column:2;grid-row:3;display:block;margin-top:6px;font-family:var(--sans);font-size:14px;line-height:1.7;color:var(--wt2);word-break:auto-phrase;text-wrap:wrap}
/* cursor: pixel ▶ (closed) / ▼ (open) */
.ai .ai-mk{grid-column:1;grid-row:2;width:12px;height:14px;margin-top:6px;background:var(--wl);opacity:.85;clip-path:polygon(0 0,3px 0,3px 2px,6px 2px,6px 4px,9px 4px,9px 6px,12px 6px,12px 8px,9px 8px,9px 10px,6px 10px,6px 12px,3px 12px,3px 14px,0 14px);transform-origin:50% 50%}
.ai .ai-item details[open] .ai-mk{background:var(--wt);transform:rotate(90deg);opacity:1}
.ai .ai-item summary:hover .ai-mk,.ai a.ai-hero:hover .ai-mk,.ai .ai-back-list a:hover .ai-mk,.ai .ai-item summary:focus-visible .ai-mk{background:var(--wt);opacity:1}
.ai .ai-hero .ai-mk,.ai .ai-back-list .ai-mk{opacity:1}
.ai .ai-item summary:hover .ai-hl,.ai a.ai-hero:hover .ai-hero-t,.ai .ai-back-list a:hover .ai-back-t{color:var(--wc)}

.ai .ai-body{margin:0 0 24px 6px;padding:2px 0 0 14px;border-left:2px solid var(--wc)}
.ai .ai-body{max-width:40em}
.ai .ai-pts{list-style:none;margin:0;padding:0;max-width:36em;font-family:var(--sans)}
.ai .ai-pts li{position:relative;padding-left:16px;margin:0 0 10px;font-size:15px;line-height:1.8;color:var(--wt)}
.ai .ai-pts li::before{content:"";position:absolute;left:0;top:.85em;width:5px;height:5px;background:var(--wl)}
.ai .ai-srcs{margin-top:14px;padding-top:10px;border-top:1px dotted rgba(201,216,234,.45)}
.ai .ai-srcs-t{margin:0 0 2px;font-family:var(--px);font-size:13px;font-weight:700;line-height:24px;color:var(--wt2)}
.ai .ai-srcs ul{list-style:none;margin:0;padding:0}
.ai .ai-srcs a{display:inline-flex;flex-wrap:wrap;gap:0 8px;align-items:baseline;min-height:40px;padding:8px 0;font-family:var(--px);font-size:14px;line-height:1.5;text-decoration:none}
.ai .ai-kind{color:var(--wt2)}
.ai .ai-pub{color:var(--wc);text-decoration:underline;text-underline-offset:.25em;text-decoration-thickness:1px}
.ai .ai-srcs a:hover .ai-pub{text-decoration-thickness:2px;color:var(--wt)}

/* index */
.ai .ai-layout-index .ai-list{padding-top:20px}
.ai .ai-hero .ai-meta,.ai .ai-back-list .ai-meta{grid-row:1}
.ai .ai-back-list{list-style:none;margin:0;padding:0}
.ai .ai-back-list li{border-top:1px dotted rgba(201,216,234,.45)}
.ai .ai-hero{border-top:1px dotted rgba(201,216,234,.45)}

/* below the window */
.ai .ai-pager{display:grid;grid-template-columns:1fr;margin-top:32px;border-top:1px solid var(--rule)}
.ai .ai-pg{display:block;padding:20px 0;border-bottom:1px solid var(--rule);text-decoration:none}
.ai .ai-pg-l{display:block;font-family:var(--px);font-size:13px;color:var(--ink2)}
.ai .ai-pg-t{display:block;margin-top:2px;font-family:var(--px);font-size:16px;font-weight:700;line-height:1.6;color:var(--link);text-decoration:underline;text-underline-offset:.25em;text-decoration-thickness:1px;text-wrap:balance}
.ai .ai-pg-m{display:block;margin-top:2px;font-family:var(--px);font-size:13px;color:var(--ink2)}
.ai a.ai-pg:hover .ai-pg-t{text-decoration-thickness:2px}
.ai .ai-note{margin:20px 0 0;max-width:36em;font-size:13px;line-height:1.8;color:var(--ink2)}
.ai .ai-cta{margin:0;padding:24px 0 20px 28px;border-top:1px dotted rgba(201,216,234,.45)}
.ai .ai-pill{display:inline-block;border-radius:50px;padding:10px 24px;font-family:var(--px);font-size:15px;font-weight:700;line-height:1.5;text-decoration:none;background:var(--cta);color:var(--ctat);border:1px solid var(--cta);transition:transform .15s}
.ai .ai-layout .ai-pill{background:#BB512F;border-color:#BB512F;color:#fff}
.ai .ai-dots:empty::before{content:"·";color:var(--wt2);opacity:.5;line-height:28px}
.ai .ai-pill:hover{transform:scale(.97)}
.ai .ai-pill:active{transform:scale(.95)}
.ai .ai-foot{margin:40px 0 0;background:var(--deep);color:var(--deept)}
.ai .ai-foot-in{max-width:960px;margin:0 auto;padding:24px 16px 28px}
.ai .ai-foot a{display:inline-block;padding:8px 0;font-family:var(--px);font-size:14px;font-weight:500;color:var(--deept);text-decoration:underline;text-underline-offset:.25em;text-decoration-thickness:1px}
.ai .ai-foot a:hover{text-decoration-thickness:2px}
.ai .ai-foot :focus-visible{outline-color:#fff}

/* mobile */
@media (max-width:599px){
  .ai .ai-bar{padding:0 12px;gap:8px}
  .ai .ai-bar a{white-space:nowrap}
  .ai .ai-home span{display:none}
  .ai .ai-main{padding-left:12px;padding-right:12px}
  .ai .ai-layout{padding:22px 18px 8px}
  .ai .ai-tagline{margin:10px 0 8px}
}
/* tablet and up */
@media (min-width:600px){
  .ai .ai-bar,.ai .ai-main,.ai .ai-foot-in{padding-left:24px;padding-right:24px}
  .ai .ai-layout{padding:40px 36px 16px}
  .ai .ai-pager{grid-template-columns:1fr 1fr}
  .ai .ai-pager-one .ai-next:only-child{grid-column:2}
  .ai .ai-pager-one .ai-pg:only-child{border-left:0}
  .ai .ai-pg+.ai-pg{border-left:1px solid var(--rule);padding-left:28px;text-align:right}
  .ai .ai-pg:first-child{padding-right:28px}
  .ai .ai-body{margin:0 24px 24px 28px;padding-left:16px}
  .ai .ai-cta{padding-left:28px}
}
@media (min-width:960px){
  .ai .ai-bar,.ai .ai-main,.ai .ai-foot-in{max-width:1040px;padding-left:32px;padding-right:32px}
  .ai .ai-layout{padding:48px 48px 20px}
  .ai .ai-mast{display:grid;grid-template-columns:minmax(0,1fr) 336px;column-gap:40px;align-items:end;padding-bottom:20px}
  .ai .ai-layout-index .ai-mast{display:block}
  .ai .ai-week{display:block;padding-bottom:4px}
  .ai .ai-tagline{font-size:48px;line-height:1.25}
  .ai .ai-hl,.ai .ai-hero-t,.ai .ai-back-t{font-size:20px}
  .ai .ai-take{font-size:15px}
  .ai .ai-pts li{font-size:16px}
  .ai .ai-mk{margin-top:8px}
  .ai .ai-body{margin-left:32px}
  .ai .ai-cta{padding-left:32px}
  .ai .ai-item summary,.ai a.ai-hero,.ai .ai-back-list a{grid-template-columns:32px minmax(0,1fr)}
  .ai .ai-body{margin-left:32px}
}

/* motion (reduced-motion safe; the cursor never blinks) */
@media (prefers-reduced-motion:no-preference){
  @keyframes ai-rise{from{transform:translateY(6px)}to{transform:none}}
  .ai .ai-item,.ai .ai-hero,.ai .ai-back-list li{animation:ai-rise .5s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(.1s + var(--k,0)*40ms)}
  .ai .ai-item:nth-child(2){--k:1}.ai .ai-item:nth-child(3){--k:2}.ai .ai-item:nth-child(4){--k:3}.ai .ai-item:nth-child(5){--k:4}.ai .ai-item:nth-child(6){--k:5}
  .ai .ai-item details[open] .ai-body{animation:ai-rise .3s ease both}
  @supports (interpolate-size:allow-keywords){
    .ai .ai-item details{interpolate-size:allow-keywords}
    .ai .ai-item details::details-content{block-size:0;overflow:clip;transition:block-size .25s ease,content-visibility .25s allow-discrete}
    .ai .ai-item details[open]::details-content{block-size:auto}
  }
}
@media (prefers-reduced-motion:reduce){.ai *{transition:none!important;animation:none!important}}
@media print{.ai .ai-topline,.ai .ai-bar,.ai .ai-week,.ai .ai-toggle,.ai .ai-pager,.ai .ai-foot{display:none}.ai .ai-item details::details-content{content-visibility:visible}.ai .ai-layout{background:#fff;color:#000;box-shadow:none}.ai .ai-layout *{color:#000!important}}

/* ===== ハブ（トップ・週間トップ10・週別ページ）: body.ai.hub ===== 
   窓の中は上のAIページと同じ。トップの速報一覧だけはクリーム地に載せる（毎時増える一覧は明るい地のほうが読みやすい）。 */
.hub{--rk:var(--ink);--rk2:var(--ink2);--rl:var(--link);--rr:var(--rule);--chk:var(--link);--chkt:#fff;--clr:#A32235;--hrb:#2C5A89}
@media (prefers-color-scheme:dark){.hub{--chk:#A3C2E4;--chkt:#15131A;--hrb:#4F76A3}}
.hub .ai-layout{--rk:#fff;--rk2:var(--wt2);--rl:var(--wc);--rr:rgba(201,216,234,.45)}
.hub .hb-bar-l{font-size:13px;font-weight:500;color:var(--ink2);font-variant-numeric:tabular-nums}
.hub .hb-bar-r{display:flex;gap:20px}
.hub .hb-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* danger badge: three pixel blocks (■■■ / ■■□ / ■□□) + the word */
.hub .hb-lv{display:inline-flex;align-items:center;gap:6px;vertical-align:middle;padding:0 8px 0 7px;border-radius:4px;font-family:var(--px);font-size:12px;font-weight:700;line-height:22px;white-space:nowrap;letter-spacing:.02em;box-shadow:inset 0 0 0 1px rgba(0,0,0,.12)}
.hub .hb-g{display:inline-flex;gap:2px}
.hub .hb-g i{width:5px;height:5px;background:currentColor;opacity:.28}
.hub .hb-g i.on{opacity:1}
.hub .hb-lv-c{background:var(--clr);color:#fff;box-shadow:none}
.hub .hb-lv-h{background:#FCE9D9;color:#8A3B12}
.hub .hb-lv-m{background:#FFF2C6;color:#6B4F00}

/* masthead (top page) */
.hub .hb-top{padding-bottom:6px}
.hub .hb-top .ai-mast{padding-bottom:0}
.hub .hb-top .ai-tagline{margin:12px 0 8px}
.hub .hb-menu{margin-top:18px}
.hub a.hb-go{grid-template-columns:28px minmax(0,1fr);padding:15px 0;align-items:center}
.hub .hb-go .ai-mk{grid-row:1;margin-top:0}
.hub .hb-go .ai-hero-t{grid-row:1}
.hub .hb-go:hover .ai-mk{background:var(--wt);opacity:1}

/* speed list (cream) */
.hub .hb-feed{margin-top:32px}
.hub .hb-bar2{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 16px}
.hub .hb-h2{margin:0;font-family:var(--px);font-size:22px;font-weight:700;line-height:1.4}
.hub .hb-n{font-size:13px;font-weight:500;color:var(--ink2);font-variant-numeric:tabular-nums;margin-left:4px}
.hub .hb-filter{display:flex;gap:8px;flex-wrap:wrap}
.hub .hb-filter input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.hub .hb-filter label{display:inline-flex;align-items:center;min-height:40px;padding:0 16px;border-radius:50px;border:1px solid var(--rule);font-family:var(--px);font-size:14px;font-weight:500;cursor:pointer;color:var(--ink);transition:background-color .12s,color .12s}
.hub .hb-filter label .hb-n{margin-left:6px;color:inherit;opacity:.7}
.hub .hb-filter input:checked+label{background:var(--chk);border-color:var(--chk);color:var(--chkt);font-weight:700}
.hub .hb-filter input:focus-visible+label{outline:3px solid var(--focus);outline-offset:2px}
.hub:has(#f-crit:checked) .hb-it:not([data-c]),.hub:has(#f-jp:checked) .hb-it:not([data-jp]){display:none}
.hub:has(#f-crit:checked) .hb-day:not(:has(.hb-it[data-c])),.hub:has(#f-jp:checked) .hb-day:not(:has(.hb-it[data-jp])){display:none}
.hub:has(.hb-filter input:not(#f-all):checked) .hb-dc{display:none}
.hub .hb-fold summary{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;padding:0 0 8px;border-bottom:2px solid var(--hrb);font-family:var(--px);font-size:13px;font-weight:700;letter-spacing:.06em;line-height:24px;color:var(--ink2)}
.hub .hb-day{margin-top:28px}
.hub .hb-dc{font-weight:500;letter-spacing:0;font-variant-numeric:tabular-nums}
.hub .hb-fold summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:20px 1fr auto;gap:0;padding:2px 0 10px}
.hub .hb-fold summary::-webkit-details-marker{display:none}
.hub .hb-fold summary .ai-mk,.hub .hb-acc summary .ai-mk{grid-column:auto;grid-row:auto;margin-top:0;flex:none;background:var(--link);opacity:1}
.hub .hb-fold[open]>summary .ai-mk,.hub .hb-acc[open]>summary .ai-mk{transform:rotate(90deg)}
.hub .hb-list{list-style:none;margin:0;padding:0}
.hub .hb-it+.hb-it{border-top:1px solid var(--rr)}
.hub .hb-it a{display:block;padding:15px 0;text-decoration:none;color:var(--rk);-webkit-tap-highlight-color:transparent}
.hub .hb-meta{display:flex;align-items:center;gap:10px;font-family:var(--px);font-size:13px;font-weight:500;line-height:24px;color:var(--rk2);font-variant-numeric:tabular-nums}
.hub .hb-upd{padding:0 6px;border-radius:3px;font-size:11px;font-weight:700;line-height:18px;color:var(--rl);box-shadow:inset 0 0 0 1px currentColor}
.hub .hb-hl{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;margin-top:4px;font-family:var(--pxh);font-size:15px;font-weight:600;line-height:1.6;word-break:auto-phrase;text-wrap:pretty;transition:color .12s}
.hub .hb-it a:hover .hb-hl,.hub .hb-it a:focus-visible .hb-hl{color:var(--rl);text-decoration:underline;text-underline-offset:.2em;text-decoration-thickness:1px}
.hub .hb-it a:focus-visible{outline-offset:-3px}
.hub .hb-empty{margin:40px 0;color:var(--ink2)}

/* below the list: explanations live in folds */
.hub .hb-more{margin-top:44px;border-top:2px solid var(--hrb)}
.hub .hb-fold:not([open]){margin-top:0}
.hub .hb-fold:not([open]) summary{border-bottom:1px solid var(--rule);padding-top:12px;padding-bottom:12px}
.hub .hb-day+.hb-fold:not([open]){margin-top:14px}
.hub .hb-acc{border-bottom:1px solid var(--rule)}
.hub .hb-acc summary{display:flex;align-items:center;gap:14px;min-height:56px;padding:10px 0;list-style:none;cursor:pointer;font-family:var(--px);font-size:16px;font-weight:700}
.hub .hb-acc summary::-webkit-details-marker{display:none}
.hub .hb-acc-b{padding:0 0 20px 26px;max-width:38em;font-size:14px;line-height:1.85;color:var(--ink2)}
.hub .hb-acc-b p{margin:0 0 10px}
.hub .hb-acc-b a,.hub .hb-weeks a{color:var(--link);text-underline-offset:.25em;text-decoration-thickness:1px}
.hub .hb-acc-b b{color:var(--ink)}
.hub .hb-help{list-style:none;margin:0 0 14px;padding:0}
.hub .hb-help li{display:grid;grid-template-columns:76px minmax(0,1fr);gap:0 12px;align-items:start;margin:0 0 10px}
.hub .hb-help .hb-lv{justify-self:start}
.hub .hb-weeks{list-style:none;margin:0;padding:0}
.hub .hb-weeks li{display:flex;justify-content:space-between;gap:12px;padding:8px 0}
.hub .hb-weeks a{font-size:15px;font-weight:700}

/* weekly top 10 */
.hub .hb-prev{margin:10px 0 0;font-size:13px;line-height:1.7;color:var(--wc)}
.hub .hb-ten{list-style:none;margin:20px 0 0;padding:0;display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:4px}
.hub .hb-sq{display:grid;place-items:center;height:36px;border-radius:3px;font-family:var(--px);font-size:12px;font-weight:700;line-height:1;text-decoration:none;font-variant-numeric:tabular-nums;box-shadow:inset 0 0 0 1px rgba(255,255,255,.55);transition:transform .12s}
.hub .hb-sq:hover,.hub .hb-sq:focus-visible{transform:translateY(-2px)}
.hub .hb-sq-c{background:var(--clr);color:#fff}
.hub .ai-layout a.hb-sq-c{color:#fff}
.hub .ai-layout a.hb-sq-h{background:#FCE9D9;color:#8A3B12;box-shadow:none}
.hub .ai-layout a.hb-sq-m{background:#FFF2C6;color:#6B4F00;box-shadow:none}
.hub .ai-meta .hb-lv{margin-left:4px}
.hub .hb-text p{margin:0 0 12px;max-width:36em;font-size:15px;line-height:1.85;color:var(--wt)}
.hub .hb-text .hb-note{font-size:13px;color:var(--wt2)}
.hub .hb-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px!important}
.hub .hb-chip{padding:0 8px;border-radius:3px;font-family:var(--px);font-size:12px;font-weight:500;line-height:22px;color:var(--wt2);box-shadow:inset 0 0 0 1px rgba(201,216,234,.55)}
.hub .ai-item:has(details:target) .ai-hl{color:var(--wc)}
.hub .ai-layout:has(.hb-sq[href="#rank-1"]:is(:hover,:focus-visible)) .ai-item:has(#rank-1) .ai-hl,
.hub .ai-layout:has(.hb-sq[href="#rank-2"]:is(:hover,:focus-visible)) .ai-item:has(#rank-2) .ai-hl,
.hub .ai-layout:has(.hb-sq[href="#rank-3"]:is(:hover,:focus-visible)) .ai-item:has(#rank-3) .ai-hl,
.hub .ai-layout:has(.hb-sq[href="#rank-4"]:is(:hover,:focus-visible)) .ai-item:has(#rank-4) .ai-hl,
.hub .ai-layout:has(.hb-sq[href="#rank-5"]:is(:hover,:focus-visible)) .ai-item:has(#rank-5) .ai-hl,
.hub .ai-layout:has(.hb-sq[href="#rank-6"]:is(:hover,:focus-visible)) .ai-item:has(#rank-6) .ai-hl,
.hub .ai-layout:has(.hb-sq[href="#rank-7"]:is(:hover,:focus-visible)) .ai-item:has(#rank-7) .ai-hl,
.hub .ai-layout:has(.hb-sq[href="#rank-8"]:is(:hover,:focus-visible)) .ai-item:has(#rank-8) .ai-hl,
.hub .ai-layout:has(.hb-sq[href="#rank-9"]:is(:hover,:focus-visible)) .ai-item:has(#rank-9) .ai-hl,
.hub .ai-layout:has(.hb-sq[href="#rank-10"]:is(:hover,:focus-visible)) .ai-item:has(#rank-10) .ai-hl{color:var(--wc)}
.hub .hb-go2{margin:18px 0 0!important}
.hub .hb-honor{list-style:none;margin:0;padding:0}
.hub .hb-honor li{margin:0 0 12px;font-size:15px;line-height:1.7}
.hub .hb-honor a{color:var(--wt);text-underline-offset:.25em;text-decoration-thickness:1px}
.hub .hb-honor a:hover{color:var(--wc)}
.hub .ai-foot-in a{margin-right:22px}
.hub .ai-pager{margin-top:28px}
@media (min-width:600px){
  .hub .hb-h2{font-size:24px}
  .hub .hb-hl{font-size:17px;font-weight:700;-webkit-line-clamp:2}
  .hub .hb-acc-b{padding-left:30px}
}
@media (min-width:960px){
  .hub .hb-ten{gap:6px}
  .hub .hb-top .ai-mast{display:block}
  .hub .hb-top{padding:40px 48px 10px}
  .hub .hb-hl{max-width:46em}
  .hub .hb-hl{font-size:18px}
}
@media (prefers-reduced-motion:no-preference){
  .hub .hb-day:first-of-type .hb-it,.hub .hb-go{animation:ai-rise .5s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(.1s + var(--k,0)*40ms)}
}
@media print{.hub .hb-filter,.hub .hb-ten{display:none}}
@media (max-width:599px){
  .hub .ai-hl{font-size:17px;line-height:1.5}
  .hub .hb-text p{line-height:1.8}
  .hub .hb-top{padding-top:20px}
  .hub .hb-top .ai-tagline{font-size:28px;line-height:1.25;margin:8px 0 6px}
  .hub a.hb-go{padding:12px 0}
  .hub .hb-menu{margin-top:14px}
  .hub .hb-feed{margin-top:26px}
}
@media (min-width:600px){.hub .hb-sq{height:auto;aspect-ratio:1}}

/* 週間トップ: 展開部（選定理由・概要・対応を同じ形の小見出し付きブロックに）／縦軸をマーカーの中心とタイトル頭にそろえる／全角カッコの余白 */
.hub .ai-body{--mkw:28px;margin-left:5px;padding-left:calc(var(--mkw) - 7px)}
.hub .hb-sec{margin:0 0 18px}
.hub .hb-sec h4{margin:0 0 2px;font-family:var(--px);font-size:13px;font-weight:700;line-height:24px;letter-spacing:.06em;color:var(--wc)}
.hub .hb-text .hb-sec p{margin:0 0 6px}
.hub .hb-text .hb-sec:first-of-type p{font-size:14px;color:var(--wt2)}
.hub .fwo{margin-right:.08em}
.hub .fwc{margin-left:.08em}
@media (min-width:600px){.hub .ai-body{--mkw:28px;margin-right:24px}}
@media (min-width:960px){.hub .ai-body{--mkw:32px}}

/* ===== 個別ページ（issues/*）: 青い窓には危険度・見出し・概要・対策だけ。詳しい内容はクリーム地の ▶/▼ に畳む ===== */
.hub .ai-home span{display:inline}
.hub .is-mast{display:block;padding-bottom:0}
.hub .is-kick{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:13px}
.hub .is-sep{opacity:.5;font-weight:400}
.hub .is-h1{margin:14px 0 12px;font-family:var(--px);font-size:22px;font-weight:700;line-height:1.5;letter-spacing:0;color:var(--wt);word-break:auto-phrase;text-wrap:pretty;overflow-wrap:anywhere;max-width:30em}
.hub .is-meta{font-size:13px;line-height:1.7;color:var(--wt2);overflow-wrap:anywhere}
.hub .is-accs{margin-top:30px;border-top:2px solid var(--hrb)}
.hub .is-acc>summary{padding:8px 0}
.hub .hb-acc-t{margin:0;font-family:var(--px);font-size:16px;font-weight:700;line-height:1.5}
.hub .hb-acc-m{margin-left:auto;font-size:13px;font-weight:500;color:var(--ink2);font-variant-numeric:tabular-nums}
.hub .is-b{padding-left:34px;font-size:15px;color:var(--ink)}
.hub .is-b p{margin:0 0 8px;color:var(--ink)}
.hub .is-b .hb-sec{margin:0 0 22px}
.hub .is-b .hb-sec h4{color:var(--cta)}
.hub .is-b .hb-chip{color:var(--ink2);box-shadow:inset 0 0 0 1px var(--rule)}
.hub .is-score{font-size:22px;font-weight:700;font-variant-numeric:tabular-nums}
.hub .is-cves a{margin-right:14px;white-space:nowrap}
.hub .is-tl{list-style:none;margin:0 0 4px -34px;padding:0}
.hub .is-up{border-top:1px solid var(--rule)}
.hub .is-up:first-child{border-top:0}
.hub .is-up summary{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:start;padding:12px 0;list-style:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
.hub .is-up summary::-webkit-details-marker{display:none}
.hub .is-up summary .ai-mk{grid-column:1;grid-row:1;margin:7px 0 0 4px;background:var(--link);opacity:1}
.hub .is-up details[open]>summary .ai-mk{transform:rotate(90deg)}
.hub .is-up-t{display:block;min-width:0}
.hub .is-first{padding:12px 0 6px 34px}
.hub .is-first .is-up-t{margin:0}
.hub .is-up-d{display:block;font-size:13px;font-weight:500;line-height:24px;color:var(--ink2);font-variant-numeric:tabular-nums}
.hub .is-up-h{display:block;font-size:15px;font-weight:700;line-height:1.7;color:var(--ink);overflow-wrap:anywhere}
.hub .is-up summary:hover .is-up-h{color:var(--link)}
.hub .is-up-b{padding:0 0 12px 34px}
.hub .is-chg{font-size:13px;color:var(--ink2)}
.hub .is-up-b .hb-sec{margin:14px 0 6px}
.hub .is-src{list-style:none;margin:0;padding:0}
.hub .is-src li{margin:0 0 10px;font-size:14px;line-height:1.7;overflow-wrap:anywhere}
.hub .is-src a,.hub .is-x a,.hub .is-cves a,.hub .is-b p a{color:var(--link);text-underline-offset:.25em;text-decoration-thickness:1px}
.hub .is-ext{white-space:nowrap}
.hub .is-x{margin:0 0 8px;font-size:14px}
.hub .is-tags{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:28px 0 0;padding:0}
.hub .is-tags li{padding:0 12px;border-radius:50px;border:1px solid var(--rule);font-size:12px;font-weight:500;line-height:28px;color:var(--ink2)}
.hub .is-win{scroll-margin-top:12px}
.hub .is-up:target>details>summary .is-up-h,.hub details:target>summary .hb-acc-t{color:var(--cta)}
@media (min-width:600px){
  .hub .is-h1{font-size:26px}
  .hub .is-b{padding-left:34px}
}
@media (min-width:960px){
  .hub .is-win .ai-layout{padding:52px 56px 24px}
  .hub .is-h1{font-size:32px;line-height:1.45;margin:18px 0 16px}
  .hub .is-meta{font-size:14px}
    .hub .is-accs{margin-top:40px}
}
@media print{.hub .is-win .ai-layout *{color:#000!important}.hub .is-b{padding-left:0}}

/* 週間: 項目の上下を少し詰める／デスクトップの順位チップを大きく */
.hub .ai-item summary{padding-top:16px;padding-bottom:16px}
@media (min-width:960px){.hub .ai-mast:has(.hb-ten){grid-template-columns:minmax(0,1fr) 440px}}

/* 個別ページ v2: 窓は「危険度・見出し・理由・最新の続報」だけ。概要と対策はクリーム地に開いたまま置く */
.hub .is-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 8px;margin-top:2px}
.hub .is-meta>span{white-space:nowrap}
.hub .is-meta>span:first-child{white-space:normal;overflow-wrap:anywhere}
.hub .is-h1 .is-sub{font-size:.72em;font-weight:500;color:var(--wt2);letter-spacing:.01em}
.hub .is-why{margin:18px 0 0;max-width:34em;font-size:15px;line-height:1.85;color:var(--wt)}
.hub .is-last{margin:18px 0 6px}
.hub .is-last a{display:block;padding:14px 0 0;border-top:1px dotted rgba(201,216,234,.5);text-decoration:none;color:var(--wt)}
.hub .is-last-k{display:block;font-size:12px;font-weight:700;line-height:22px;letter-spacing:.06em;color:var(--wc);font-variant-numeric:tabular-nums}
.hub .is-last-k::after{content:" →"}
.hub .is-last-t{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:14px;font-weight:500;line-height:1.65}
.hub .is-last a:hover .is-last-t,.hub .is-last a:focus-visible .is-last-t{color:var(--wc);text-decoration:underline;text-underline-offset:.2em;text-decoration-thickness:1px}
.hub .is-main{margin-top:36px}
.hub .is-sec{margin:0 0 36px;max-width:38em}
.hub .is-h2{margin:0 0 6px;font-family:var(--px);font-size:13px;font-weight:700;line-height:24px;letter-spacing:.06em;color:var(--cta)}
.hub .is-sum p{margin:0 0 12px;font-size:16px;line-height:1.95;color:var(--ink)}
.hub .is-acts{list-style:none;counter-reset:a;margin:0;padding:0;border-top:2px solid var(--hrb)}
.hub .is-acts li{counter-increment:a;position:relative;margin:0;padding:14px 0 14px 40px;border-bottom:1px solid var(--rule);font-size:15px;line-height:1.85;color:var(--ink);overflow-wrap:anywhere}
.hub .is-acts li::before{content:counter(a,decimal-leading-zero);position:absolute;left:0;top:14px;font-size:14px;font-weight:700;line-height:27.75px;font-variant-numeric:tabular-nums;color:var(--cta)}
.hub .is-go{margin:22px 0 0}
.hub .is-note{font-size:12.5px!important;line-height:1.8!important;color:var(--ink2)!important}
.hub .is-b .hb-sec:has(.is-note){margin-bottom:10px}
.iss .ai-bar,.iss .ai-main,.iss .ai-foot-in{max-width:840px}
@media (min-width:600px){.hub .is-h1{font-size:26px}}
@media (min-width:960px){
  .iss .ai-bar,.iss .ai-main,.iss .ai-foot-in{max-width:840px;padding-left:32px;padding-right:32px}
  .hub .is-win .ai-layout{padding:48px 48px 24px}
  .hub .is-h1{font-size:30px}
  .hub .is-why{font-size:16px}
}
/* 開閉・ジャンプのなめらかな動き */
@media (prefers-reduced-motion:no-preference){
  .hub details{interpolate-size:allow-keywords}
  .hub .hb-acc::details-content,.hub .is-up details::details-content,.hub .hb-fold::details-content{block-size:0;overflow:clip;transition:block-size .2s ease,content-visibility .2s allow-discrete}
  .hub .hb-acc[open]::details-content,.hub .is-up details[open]::details-content,.hub .hb-fold[open]::details-content{block-size:auto}
  @keyframes hb-flash{from{background-color:rgba(247,180,154,.28)}to{background-color:rgba(247,180,154,0)}}
  .hub .ai-item:has(> details:target),.hub .is-up:has(> details:target){animation:hb-flash 1.4s ease-out}
}
@media print{.hub .is-sum p,.hub .is-acts li{color:#000}}
/* 週間: 順位の数字を少し強く／タグは軽く／デスクトップの順位チップはタイトルの下に左寄せ／上の余白を詰める */
.hub .ai-item .ai-no{font-size:15px;font-weight:700}
.hub .hb-chip{box-shadow:none;background:rgba(255,255,255,.1);font-size:11.5px;line-height:22px}
.hub .hb-chips{margin-bottom:18px!important}
.hub .ai-listbar{padding-top:10px;padding-bottom:6px}
@media (min-width:960px){
  .hub .ai-mast:has(.hb-ten){display:block}
  .hub .ai-mast:has(.hb-ten) .hb-ten{max-width:520px;margin-top:22px}
}

/* 第3ラウンドの微調整 */
.hub .is-meta{gap:0 16px}
.hub .is-h1 .is-sub{display:block;margin:6px 0 4px}
.hub .is-acts li:last-child{border-bottom:0}
.hub .is-go{margin-top:14px}
.hub .is-sec{margin-bottom:44px}
