/* トップ（The World, Right Now）。site.css のトークン（--bg/--fg/--hair/--mono…）の上に重ねる。
   色は「分野」を表すときだけ使う（--v は分野の色）。飾りの光彩・グラデーションは使わない。 */
.home{--v:#ecebe6}
.home .top{mix-blend-mode:normal;background:linear-gradient(var(--bg) 40%,rgba(8,9,11,0))}
.home .top nav{gap:22px;flex-wrap:nowrap;overflow:hidden}
.home .top nav a{font-family:var(--mono);font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--fg-2);white-space:nowrap}
.home .top nav a:hover{color:var(--fg)}
.search-btn{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--hair);border-radius:999px;background:none;padding:7px 14px;cursor:pointer;color:var(--fg-2);font-family:var(--mono);font-size:11px;letter-spacing:.04em;text-transform:uppercase;margin-left:auto}
.search-btn:hover{color:var(--fg);border-color:var(--fg-2)}
.search-btn kbd{font-family:var(--mono);border:1px solid var(--hair);border-radius:4px;padding:0 5px;font-size:10px}
@media (max-width:900px){.home .top nav{display:flex;position:absolute;left:0;right:0;top:var(--top-h);padding:0 16px 8px;overflow-x:auto;scrollbar-width:none;background:linear-gradient(var(--bg) 70%,transparent)}.home .top nav::-webkit-scrollbar{display:none}}

/* ---------- Hero: Universal Power Map ---------- */
.w-hero{position:relative;padding-top:calc(var(--top-h) + 12px);display:grid;grid-template-rows:auto 1fr auto;overflow:hidden}
.w-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px 40px;align-items:end;position:relative;z-index:2}
.w-head>div{min-width:0}
.w-head h1{font-family:var(--latin);font-weight:300;font-size:clamp(46px,8.4vw,148px);line-height:.88;letter-spacing:-.05em}
.w-head h1 span{display:block;color:var(--fg-3)}
.w-head .sub{font-size:13px;color:var(--fg-2);margin-top:14px}
.w-meta{display:grid;grid-template-columns:auto auto;gap:3px 16px;color:var(--fg-2);align-self:end}
.w-meta dd{color:var(--fg);text-align:right;font-family:var(--latin);font-variant-numeric:tabular-nums}
.map-wrap{position:relative;margin-top:8px;min-height:0;height:max(540px,calc(100svh - var(--top-h) - 300px))}
#umap{width:100%;height:100%;display:block;touch-action:pan-y;cursor:grab}
#umap:active{cursor:grabbing}
#umap .vc{fill:none;stroke:var(--hair);stroke-width:1;cursor:zoom-in;transition:stroke .3s}
#umap .vc:hover{stroke:rgba(255,255,255,.35)}
#umap .ec{stroke:var(--bg);stroke-width:.6;cursor:pointer}
#umap .ec:hover,#umap .ec.hl{stroke:var(--fg);stroke-width:1.4}
#umap .ring{fill:none;stroke-width:1.5;pointer-events:none;transform-box:fill-box;transform-origin:center;animation:ring 2.8s var(--ease) infinite}
@keyframes ring{0%{opacity:.9;transform:scale(1)}70%{opacity:0;transform:scale(1.55)}100%{opacity:0;transform:scale(1.55)}}
@media (prefers-reduced-motion:reduce){#umap .ring{animation:none;opacity:.8}}
.ring-key{display:inline-block;width:10px;height:10px;border-radius:50%;border:1.5px solid var(--fg-2);margin-right:6px;vertical-align:-1px}
#umap .vl{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;fill:var(--fg);pointer-events:none}
#umap .vl tspan{fill:var(--fg-3)}
#umap .el{font-family:var(--sans);font-weight:500;fill:#08090b;pointer-events:none;text-anchor:middle;dominant-baseline:central}
#umap .el.lite{fill:var(--fg)}
.map-ui{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;padding:14px 0 22px;position:relative;z-index:2;border-top:1px solid var(--hair)}
.seg2{display:inline-flex;border:1px solid var(--hair);border-radius:999px;padding:3px}
.seg2 button{border:0;background:none;border-radius:999px;padding:6px 14px;font-size:12px;color:var(--fg-2);cursor:pointer;transition:background .3s,color .3s}
.seg2 button[aria-pressed="true"]{background:var(--fg);color:var(--bg)}
.replay{display:inline-flex;align-items:center;gap:12px}
.replay[hidden]{display:none}
.replay .pillbtn::before{display:none}
.replay button{background:none;color:var(--fg);cursor:pointer}
.replay input{accent-color:#ecebe6;width:min(280px,46vw)}
.replay .d{color:var(--fg);font-size:11px;min-width:90px}
.map-legend{display:flex;flex-wrap:wrap;gap:6px 16px;max-width:62%}
@media (max-width:760px){.map-legend{max-width:none}}
.map-legend button{display:inline-flex;align-items:center;gap:7px;border:0;background:none;font-size:12px;color:var(--fg-2);cursor:pointer;padding:2px 0}
.map-legend button:hover{color:var(--fg)}
.map-legend i{width:8px;height:8px;border-radius:50%;background:var(--v)}
.map-note{font-family:var(--mono);font-size:10.5px;color:var(--fg-3);letter-spacing:.03em}
.map-back{position:absolute;left:0;top:12px;z-index:3}
.map-back[hidden]{display:none}
.tipx{position:fixed;z-index:60;pointer-events:none;min-width:200px;max-width:280px;padding:12px 14px;background:rgba(14,15,18,.96);border:1px solid var(--hair);border-radius:6px;font-size:12px;line-height:1.5;opacity:0;transform:translateY(4px);transition:opacity .15s,transform .15s}
.tipx.on{opacity:1;transform:none}
.tipx b{display:block;font-size:14px;font-weight:500;margin-bottom:2px}
.tipx .k{font-family:var(--mono);font-size:10px;color:var(--fg-3);text-transform:uppercase;letter-spacing:.04em}
.tipx dl{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;margin-top:8px}
.tipx dt{color:var(--fg-3)}.tipx dd{text-align:right;font-family:var(--latin);font-variant-numeric:tabular-nums}
@media (max-width:900px){.w-hero{padding-top:calc(var(--top-h) + 52px)}}
@media (max-width:760px){
  .w-head{grid-template-columns:1fr}
  .w-meta{grid-template-columns:auto 1fr}.w-meta dd{text-align:left}
  .map-wrap{height:128vw;min-height:460px}
}

/* ---------- 共通 ---------- */
/* site.css は .rk/.nm/.val に grid-area を持つ（テーマのランキング用）。トップの行では位置で並べる */
.home li>:where(.rk,.nm,.val,.bar,.pct,.spk-box){grid-area:auto}  /* :where で詳細度を下げ、スマホ用の列指定が勝つようにする */
.w-sec{padding-top:clamp(88px,9vw,150px)}
.w-note{font-family:var(--mono);font-size:10.5px;letter-spacing:.03em;color:var(--fg-3);margin-top:-10px;margin-bottom:22px;text-transform:none}
.vtag{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:var(--fg-3);white-space:nowrap}
.vtag::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--v)}
.spk{display:block;width:100%;height:100%;overflow:visible}
.spk .ln{fill:none;stroke:var(--v);stroke-width:1.5;stroke-linejoin:round}
.spk .ar{fill:var(--v);opacity:.12}
.spk .w7{fill:rgba(255,255,255,.07)}
.cmp-add{border:1px solid var(--hair);background:none;border-radius:999px;width:26px;height:26px;display:inline-grid;place-items:center;cursor:pointer;color:var(--fg-2);font-size:15px;line-height:1;flex:none}
.cmp-add{position:relative}.cmp-add::after{content:"";position:absolute;inset:-9px}
.cmp-add:hover{color:var(--fg);border-color:var(--fg-2)}
.cmp-add[aria-pressed="true"]{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.chips2{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:22px}
.chips2 button{border:1px solid var(--hair);background:none;border-radius:999px;padding:5px 12px;font-size:12px;color:var(--fg-2);cursor:pointer;display:inline-flex;gap:7px;align-items:center}
.chips2 button i{width:6px;height:6px;border-radius:50%;background:var(--v)}
.chips2 button[aria-pressed="true"]{border-color:var(--fg);color:var(--fg)}

/* ---------- Today in Trends ---------- */
.today{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,4vw,64px)}
.lead{border-top:1px solid var(--fg);padding-top:18px;position:sticky;top:calc(var(--top-h) + 12px);align-self:start}
.lead .k{font-family:var(--mono);font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--fg-2)}
.lead h3{font-size:clamp(28px,3.4vw,48px);font-weight:500;line-height:1.15;margin:18px 0 6px;letter-spacing:-.01em}
.lead h3 a{text-decoration:none}
.lead .n{font-family:var(--latin);font-weight:300;font-size:clamp(72px,9vw,150px);line-height:.9;letter-spacing:-.05em;margin:22px 0 6px;font-variant-numeric:tabular-nums}
.lead .n small{display:block;font-size:13px;letter-spacing:0;color:var(--fg-2);margin:10px 0 0;font-family:var(--sans)}
.lead .spk-box{height:110px;margin-top:20px}
.lead p{font-size:13px;color:var(--fg-2)}
.tlist{border-top:1px solid var(--hair)}
.tlist li{display:grid;grid-template-columns:32px minmax(0,1fr) 120px 92px 26px;gap:14px;align-items:center;padding:11px 0;border-bottom:1px solid var(--hair-2)}
.tlist li{cursor:pointer;transition:background .25s}.tlist li:hover,.tlist li.on{background:linear-gradient(90deg,rgba(255,255,255,.05),transparent)}
.tlist li.on .rk{color:var(--fg)}
.tlist .rk{font-size:12px;color:var(--fg-3)}
.tlist .nm{font-size:15px;font-weight:500;text-decoration:none;display:flex;flex-direction:column;min-width:0}
.tlist .nm span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tlist .spk-box{height:30px}
.tlist .val{text-align:right;font-size:15px}
.tlist .val small{display:block;font-size:10.5px;color:var(--fg-3)}
.up{color:var(--fg)}.down{color:var(--fg-3)}  /* 上げ下げは色でなく ▲▼ で示す（緑・赤は分野の色と重なるため） */
@media (max-width:900px){.lead{position:relative;top:auto}.today{grid-template-columns:1fr}.tlist li{grid-template-columns:26px minmax(0,1fr) 84px 26px;gap:6px 10px}.tlist .nm{grid-column:2/5}.tlist .nm span{white-space:normal}.tlist .spk-box{grid-column:2/3}}

/* ---------- The Pulse ---------- */
.pulse{position:relative;padding-top:96px}
.pulse-chart{width:100%;height:240px;display:block;overflow:visible}
.pulse-chart .ln{fill:none;stroke:var(--fg);stroke-width:1.6;vector-effect:non-scaling-stroke}
.pulse-chart .pk-l{stroke-width:1;stroke-dasharray:2 3;vector-effect:non-scaling-stroke}
.pulse-chart .lab{fill:var(--fg-3);font-family:var(--mono);font-size:11px}
.pulse-marks{position:absolute;left:0;right:0;top:0;height:96px}
.pulse-marks li{position:absolute;top:0;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;text-align:center;white-space:nowrap;font-size:12px;max-width:180px}
.pulse-marks time{font-family:var(--mono);font-size:10px;color:var(--fg-3)}
.pulse-marks a{text-decoration:none;font-weight:500;border-bottom:1px solid var(--v)}
.pulse-marks small{font-family:var(--latin);font-size:11px;color:var(--fg-2)}
@media (max-width:760px){.pulse{padding-top:0}.pulse-marks{position:static;height:auto;display:grid;grid-template-columns:1fr 1fr;gap:8px 16px;margin-top:12px}.pulse-marks li{position:static;transform:none;align-items:flex-start;text-align:left;left:auto!important;top:auto!important;white-space:normal;min-width:0;max-width:none}.pulse-marks a{overflow-wrap:anywhere}}

/* ---------- Deep Dive ---------- */
.deep{border-top:1px solid var(--fg);padding-top:20px}
.dd-head{display:flex;flex-direction:column;gap:6px}
.dd-head h3{font-size:clamp(36px,5.4vw,84px);font-weight:500;line-height:1.05;letter-spacing:-.02em;margin:6px 0 14px}
.dd-head h3 a{text-decoration:none}
.dd-stats{display:flex;gap:12px 40px;flex-wrap:wrap;border-top:1px solid var(--hair);padding-top:14px}
.dd-stats dt{font-family:var(--mono);font-size:10px;color:var(--fg-3);letter-spacing:.04em}
.dd-stats dd{font-family:var(--latin);font-size:26px;font-variant-numeric:tabular-nums}
.dd-stats dd small{font-size:11px;color:var(--fg-3);margin-left:6px;font-family:var(--mono)}
.dd-chart{width:100%;height:260px;margin-top:26px;overflow:visible}
.dd-chart .ln{fill:none;stroke:var(--v);stroke-width:2;vector-effect:non-scaling-stroke}
.dd-chart .w7{fill:rgba(255,255,255,.06)}
.dd-chart .med{stroke:var(--fg-3);stroke-dasharray:2 5;vector-effect:non-scaling-stroke}
.dd-chart .pk{fill:var(--bg);stroke:var(--fg);stroke-width:2;vector-effect:non-scaling-stroke}
.dd-chart .lab{fill:var(--fg-2);font-family:var(--mono);font-size:11px}
.deep h4{color:var(--fg-3);margin:28px 0 8px}
.dd-rel{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:0 32px;border-top:1px solid var(--hair)}
.dd-rel li{padding:12px 0;border-bottom:1px solid var(--hair-2)}
.dd-rel a{font-weight:500;font-size:15px;margin-right:8px}
.dd-rel p{font-size:12px;color:var(--fg-2);margin-top:4px;line-height:1.6}
@media (max-width:760px){.dd-stats{gap:12px 22px}.dd-stats dd{font-size:20px}.dd-chart{height:180px}}

/* ---------- Rising / Foresight ---------- */
.rise2{border-top:1px solid var(--hair)}
.rise2 li{display:grid;grid-template-columns:32px minmax(0,1fr) minmax(120px,240px) 110px 26px;gap:16px;align-items:center;padding:12px 0;border-bottom:1px solid var(--hair-2)}
.rise2 .pct{font-family:var(--latin);font-size:22px;font-weight:400;text-align:right;font-variant-numeric:tabular-nums}
.rise2 .pct small{display:block;font-size:10.5px;color:var(--fg-3);font-family:var(--mono);letter-spacing:.02em}
.rise2 .spk-box{height:38px}
@media (max-width:760px){.rise2 li{grid-template-columns:24px minmax(0,1fr) 92px 26px}.rise2 .nm{grid-column:2/5}.rise2 .spk-box{grid-column:2/3;height:30px}}
.fore{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));border-top:1px solid var(--hair)}
.fore li{padding:18px 18px 20px 0;min-width:0;border-bottom:1px solid var(--hair-2);border-right:1px solid var(--hair-2);margin-right:18px;display:flex;flex-direction:column;gap:8px}
.fore b{font-size:17px;font-weight:500;min-height:2.6em}
.fore b a{text-decoration:none}
.fore .why{font-size:12px;color:var(--fg-2)}
.fore .conf{font-family:var(--mono);font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:var(--fg-3)}
.fore .conf em{font-style:normal;color:var(--fg);border:1px solid var(--hair);border-radius:999px;padding:1px 8px;margin-left:6px}
.fore .spk-box{height:44px;margin-top:4px}

/* ---------- Foresight の散布図 ---------- */
.fore-map{width:100%;height:auto;display:block;margin-bottom:28px;overflow:visible}
.fore-map .q{fill:rgba(255,255,255,.04)}
.fore-map .ref{stroke:var(--fg-3);stroke-dasharray:3 5}
.fore-map .zero{stroke:var(--hair)}
.fore-map .lab{fill:var(--fg-2);font-family:var(--mono);font-size:11px}
.fore-map .tk{fill:var(--fg-3);font-family:var(--mono);font-size:10px}
.fore-map .pt{opacity:.45;cursor:pointer;stroke:var(--bg);stroke-width:1}
.fore-map .pt.em{opacity:1;stroke:var(--fg);stroke-width:1.5}
.fore-map .pt:hover{opacity:1}
.fore-map .nm2{fill:var(--fg);font-size:12px;font-weight:500;pointer-events:none;paint-order:stroke;stroke:var(--bg);stroke-width:3px}

/* ---------- Lifecycle ---------- */
.lc-strip{display:flex;gap:3px;margin-bottom:22px}
.lc-strip>div{min-width:0;display:flex;flex-direction:column;gap:6px}
.lc-strip .segs{display:flex;height:10px;gap:1px}
.lc-strip .segs i{min-width:1px}
.lc-strip b{font-family:var(--mono);font-size:10px;font-weight:400;letter-spacing:.04em;text-transform:uppercase;color:var(--fg-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lc-strip small{font-family:var(--latin);font-size:13px;color:var(--fg)}
.lc-col.empty{opacity:.4}
.lc-dots{display:flex;flex-wrap:wrap;gap:3px;margin:0 0 14px;max-height:120px;overflow:hidden}
.lc-dots i{width:6px;height:6px;border-radius:50%;opacity:.9}
.lc-col li.lc-more{color:var(--fg-3);font-size:11.5px;padding-left:13px}
.lc-board{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--hair)}
.lc-col{border-right:1px solid var(--hair-2);padding:14px 12px 18px 0;min-width:0}
.lc-col:last-child{border-right:0}
.lc-col h3{font-family:var(--latin);font-weight:400;font-size:18px;letter-spacing:-.01em;display:flex;justify-content:space-between;gap:6px}
.lc-col h3 small{font-family:var(--mono);font-size:10px;color:var(--fg-3);letter-spacing:.04em}
.lc-col .ja{font-size:12px;color:var(--fg-2)}
.lc-col .rule{font-size:10.5px;color:var(--fg-3);line-height:1.5;margin:8px 0 12px;min-height:4.5em}
.lc-col li{display:flex;align-items:center;gap:7px;font-size:12.5px;padding:3px 0;min-width:0}
.lc-col li i{flex:none;width:6px;height:6px;border-radius:50%;background:var(--v)}
.lc-col li a{text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lc-col li a:hover{text-decoration:underline}
@media (max-width:1100px){.lc-board{grid-template-columns:repeat(4,minmax(0,1fr))}.lc-col{border-bottom:1px solid var(--hair-2)}}
@media (max-width:640px){.lc-board{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---------- Trend Universe ---------- */
.uni{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);min-height:min(78vh,760px)}
#uni{width:100%;height:min(78vh,760px);min-height:520px;display:block;touch-action:pan-y}
#uni .lk{stroke:rgba(236,235,230,.18);stroke-width:1}
#uni .lk.one{stroke:rgba(236,235,230,.08)}
#uni .lk.corr{stroke-dasharray:3 4;stroke:rgba(236,235,230,.28)}
#uni .lk.on{stroke:var(--fg);stroke-width:1.6;stroke-opacity:1}
#uni .nd{cursor:pointer;stroke:var(--bg);stroke-width:1}
#uni .nd.dim,#uni .nl.dim{opacity:.32}
#uni .lk.dim{stroke-opacity:.05}
#uni .nd.sel{stroke:var(--fg);stroke-width:2}
#uni .uvl{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;opacity:.75;pointer-events:none}
#uni .nl{font-size:11px;fill:var(--fg-2);pointer-events:none;font-family:var(--sans)}
#uni .nl.big{fill:var(--fg);font-size:12.5px;font-weight:500}
.uni-side{border-left:1px solid var(--hair);padding:20px;overflow:auto;max-height:min(78vh,760px)}
.uni-side h3{font-size:22px;font-weight:500;line-height:1.25;margin:10px 0 4px}
.uni-side .hint{font-size:13px;color:var(--fg-2)}
.uni-side ol{margin-top:14px;border-top:1px solid var(--hair)}
.uni-side li{padding:10px 0;border-bottom:1px solid var(--hair-2);font-size:13px}
.uni-side li button{border:0;background:none;cursor:pointer;font-size:14px;font-weight:500;text-align:left;padding:0;color:var(--fg)}
.uni-side li button:hover{text-decoration:underline}
.uni-side li p{font-size:11.5px;color:var(--fg-3);margin-top:3px;line-height:1.5}
.ev{font-family:var(--mono);font-size:9.5px;letter-spacing:.05em;text-transform:uppercase;border:1px solid var(--hair);border-radius:999px;padding:1px 7px;margin-left:6px;color:var(--fg-2);vertical-align:2px}
.ev.corr{border-style:dashed}
.uni-ui{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;justify-content:space-between;margin-bottom:16px}
.uni-key{display:flex;gap:18px;font-size:12px;color:var(--fg-2);align-items:center}
.uni-key svg{vertical-align:middle;margin-right:6px}
@media (max-width:900px){.uni{grid-template-columns:1fr}#uni{height:110vw;min-height:420px}.uni-side{border-left:0;border-top:1px solid var(--hair);max-height:none}}

/* ---------- Explore ---------- */
.fields{border-top:1px solid var(--hair)}
.fields li a{display:grid;grid-template-columns:64px minmax(0,1.2fr) minmax(0,1fr) 170px 32px;gap:8px 28px;align-items:center;padding:clamp(20px,2.6vw,34px) 0;border-bottom:1px solid var(--hair);text-decoration:none;position:relative}
.fields .no{font-family:var(--mono);font-size:11px;color:var(--fg-3)}
.fields b{font-family:var(--latin);font-weight:300;font-size:clamp(34px,4.6vw,72px);line-height:1;letter-spacing:-.035em;display:flex;align-items:baseline;gap:16px;flex-wrap:wrap}
.fields b small{font-family:var(--sans);font-size:15px;font-weight:500;letter-spacing:0;color:var(--fg-2)}
.fields .comp{display:flex;height:10px;gap:2px}
.fields .comp i{flex:0 1 var(--w);min-width:0;background:var(--c);opacity:.9}
.fields .top3{font-size:12.5px;color:var(--fg-2);margin-top:8px;grid-column:3}
.fields em{font-style:normal;white-space:nowrap;text-align:right;font-family:var(--latin);font-size:15px;font-variant-numeric:tabular-nums;color:var(--fg-2)}
.fields .arr{font-size:22px;color:var(--fg-3);transition:transform .4s var(--ease),color .3s}
.fields a:hover .arr{transform:translateX(6px);color:var(--fg)}
.fields a::after{content:"";position:absolute;left:0;bottom:-1px;height:1px;width:0;background:var(--v);transition:width .6s var(--ease)}
.fields a:hover::after{width:100%}
@media (max-width:760px){.fields li a{grid-template-columns:32px minmax(0,1fr) 20px;gap:6px 12px}.fields b{font-size:clamp(26px,8vw,40px);overflow-wrap:anywhere}
  .fields li a>div,.fields em{grid-column:2/3}.fields em{text-align:left;font-size:13px}.fields .arr{grid-column:3;grid-row:1;font-size:16px;justify-self:end}.fields .top3{grid-column:auto}}

/* ---------- Hero ticker ---------- */
.ticker{display:flex;align-items:center;gap:14px;margin-top:22px;max-width:760px;min-width:0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);padding:9px 0}
.tk-l{color:var(--fg-3);flex:none}
.tk-run{overflow:hidden;flex:1;min-width:0;mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.tk-track{display:flex;gap:28px;width:max-content;animation:tk 48s linear infinite}
.tk-run:hover .tk-track{animation-play-state:paused}
.tk-track a{text-decoration:none;font-size:13px;white-space:nowrap;display:inline-flex;align-items:center;gap:7px;color:var(--fg-2)}
.tk-track a:hover{color:var(--fg)}
.tk-track a i{width:6px;height:6px;border-radius:50%;background:var(--v)}
.tk-track b{font-family:var(--latin);font-weight:400;color:var(--fg)}
@keyframes tk{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.tk-track{animation:none}}
.sig{align-self:flex-start;width:max-content;font-family:var(--mono);font-size:9.5px;letter-spacing:.05em;border:1px solid var(--fg-2);border-radius:999px;padding:0 6px;margin-left:8px;vertical-align:2px;color:var(--fg)}
.spk .bl{stroke:var(--fg-3);stroke-dasharray:3 4;vector-effect:non-scaling-stroke}
.spk-box[data-uid]{cursor:crosshair}
.comp-l{display:block;margin-top:6px;font-size:11px;color:var(--fg-3);font-family:var(--mono);letter-spacing:.02em}

/* ---------- Search ---------- */
.srch{position:fixed;inset:0;z-index:80;background:rgba(8,9,11,.86);backdrop-filter:blur(8px);display:none;padding:calc(var(--top-h) + 4vh) max(16px,4vw) 24px}
.srch.on{display:block}
.srch-box{max-width:880px;margin:0 auto}
.srch input{width:100%;font:inherit;font-family:var(--latin);font-weight:300;font-size:clamp(28px,4vw,52px);letter-spacing:-.02em;background:none;border:0;border-bottom:1px solid var(--fg-2);color:var(--fg);padding:8px 0 14px;outline:none}
.srch input::placeholder{color:var(--fg-3)}
.srch .chips2{margin:16px 0 8px}
.srch ol{max-height:60vh;overflow:auto}
.srch li a,.srch li .row{display:grid;grid-template-columns:minmax(0,1fr) auto 26px;gap:16px;align-items:center;padding:12px 0;border-bottom:1px solid var(--hair-2);text-decoration:none}
.srch li a b{font-size:17px;font-weight:500}
.srch li a span{display:block;font-size:11px;color:var(--fg-3);font-family:var(--mono);letter-spacing:.03em}
.srch li.act a{background:linear-gradient(90deg,rgba(255,255,255,.06),transparent)}
.srch .close{position:absolute;right:max(16px,4vw);top:calc(var(--top-h) - 40px)}
.srch .empty{color:var(--fg-3);padding:20px 0;font-size:13px}

/* ---------- Compare ---------- */
.tray{position:fixed;left:50%;bottom:max(16px,env(safe-area-inset-bottom,0px));transform:translate(-50%,140%);z-index:70;display:flex;gap:10px;align-items:center;background:rgba(14,15,18,.96);border:1px solid var(--hair);border-radius:999px;padding:8px 8px 8px 18px;transition:transform .5s var(--ease);max-width:calc(100vw - 32px)}
.tray.on{transform:translate(-50%,0)}
.tray:not(.on){visibility:hidden;transition:transform .5s var(--ease),visibility 0s .5s}
.tray .names{font-size:12.5px;color:var(--fg-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:46vw}
.tray button{border:0;border-radius:999px;padding:8px 16px;cursor:pointer;font-size:12.5px;white-space:nowrap;flex:none}
.tray .open{background:var(--fg);color:var(--bg);font-weight:500}
.tray .clr{background:none;color:var(--fg-3)}
.cmp{position:fixed;inset:0;z-index:90;background:var(--bg);overflow:auto;display:none;padding:calc(var(--top-h)) 0 80px}
.cmp.on{display:block}
.cmp h2{font-family:var(--latin);font-weight:300;font-size:clamp(40px,6vw,96px);letter-spacing:-.045em;line-height:.95;margin:24px 0 8px}
.cmp-scroll{overflow-x:auto}
.cmp-grid{display:grid;grid-template-columns:200px repeat(var(--n),minmax(140px,1fr));border-top:1px solid var(--hair);margin-top:24px}
.cmp-grid>div{padding:12px 14px 12px 0;border-bottom:1px solid var(--hair-2);font-variant-numeric:tabular-nums;min-width:0}
.cmp-grid .h{font-size:17px;font-weight:500}
.cmp-grid .lab{font-size:12px;color:var(--fg-3)}
.cmp-grid .num{font-family:var(--latin);font-size:20px}
.cmp-chart{min-height:300px;margin-top:28px;border-top:1px solid var(--hair);padding-top:14px}
#cmp-chart{margin-top:30px}
.cmp-chart svg{width:100%;height:260px;overflow:visible}
.cmp-chart .ax{stroke:var(--hair);}
.cmp-chart text{fill:var(--fg-3);font-family:var(--mono);font-size:10px}
.cmp-chart .ln{fill:none;stroke-width:1.8}
.cmp .x{position:fixed;right:max(16px,4vw);top:14px;z-index:2}
@media (max-width:760px){.cmp-grid{grid-template-columns:96px repeat(var(--n),minmax(130px,1fr))}.cmp-grid>.lab,.cmp-grid>div:first-child{position:sticky;left:0;background:var(--bg);z-index:1}.cmp-grid .num{font-size:15px}.cmp-grid .h{font-size:13px}}

/* 動き: 画面に入った要素を下から出す（reduced-motion では止める） */
.rv{opacity:0;transform:translateY(18px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}}
.home :focus-visible{outline:2px solid var(--fg);outline-offset:3px}
