/* Economy (/economy) — "The Treasury": overview ledger + Meso Index chart, an in-page rooms nav,
   then nine rooms (#movers #speeds #dollar #flows #economist #gini #world #forecast #method).
   Shared tokens/components come from world.css; everything here is page-only. */
html{scroll-padding-top:76px}
.map-body{padding-top:40px}

/* ---------- hero: the headline number lives ON the Treasury map ---------- */
.scene.eco-scene{height:500px}
.eco-hero{left:52%;right:auto;bottom:auto;top:96px;max-width:46%;gap:8px}
.eco-hero::before{content:"";position:absolute;z-index:-1;inset:-40px -60px -30px -50px;background:radial-gradient(closest-side,rgba(42,22,6,.42),rgba(42,22,6,.18) 60%,transparent);pointer-events:none}
.eh{margin:0;display:flex;flex-direction:column;align-items:flex-start;gap:0;font:800 42px/1 var(--f-game);color:#fff;-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;text-shadow:0 4px 0 var(--ink)}
.mapname .eh{font-size:42px;line-height:1}
.eh-pre{display:block;margin-left:4px}
.eh-row{display:flex;align-items:baseline;gap:16px;min-height:calc(clamp(112px,10.8vw,156px) * .94)}
/* the number: a game damage / meso number — gold fill, thick dark rim, stacked extrusion */
.eh-num{display:grid;font:800 clamp(112px,10.8vw,156px)/.92 var(--f-game);letter-spacing:-.02em;transform-origin:35% 75%;-webkit-text-stroke:0;text-shadow:none;font-variant-numeric:tabular-nums}
.eh-num>span{grid-area:1/1;white-space:nowrap}
.eh-d{color:#3a1d06;-webkit-text-stroke:14px #3a1d06;text-shadow:0 5px 0 #3a1d06,0 10px 0 #2a1404,0 14px 0 #2a1404,0 22px 26px rgba(0,0,0,.45)}
.eh-f{background:linear-gradient(180deg,#fffbe2 6%,#ffe476 30%,#f9bd22 54%,#e28c0b 74%,#ffd45c 96%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;-webkit-text-stroke:1.5px rgba(255,250,220,.55)}
.eh-post{font:800 46px/1 var(--f-game)}
.mapname .eh-sub{margin:6px 0 0;font:700 17px/1.35 var(--f-ui);color:#fff;background:rgba(28,22,40,.78);padding:7px 12px;border-radius:8px;max-width:100%}
.eh-sub b{font:800 19px var(--f-game);color:var(--gold-ink);white-space:nowrap}
.eh-sub .coin{width:.85em;height:.85em}
/* choreography (economy-page.js drives it; css holds the states). Without JS everything shows after 3s. */
.eco-hero .eh-num,.eco-hero .eh-sub{opacity:0;animation:ehsafe 0s 3s forwards}
.eco-hero .eh-post{opacity:0;animation:ehsafe 0s 3s forwards}
@keyframes ehsafe{to{opacity:1}}
.eco-hero.counting .eh-num{opacity:1;animation:ehin 260ms var(--ease-out) both}
@keyframes ehin{from{opacity:0;transform:scale(.6) translateY(18px)}}
.eco-hero.landed .eh-num{opacity:1;animation:ehland 520ms var(--ease-pop) both}
@keyframes ehland{0%{transform:scale(1)}30%{transform:scale(1.14) rotate(-2deg)}100%{transform:scale(1) rotate(0)}}
.eco-hero.landed .eh-post{opacity:1;animation:ehpost var(--dur-med) 120ms var(--ease-out) both}
@keyframes ehpost{from{opacity:0;transform:translateX(-14px)}}
.eco-hero.landed .eh-sub{opacity:1;animation:ehsub var(--dur-slow) 260ms var(--ease-out) both}
@keyframes ehsub{from{opacity:0;transform:translateY(10px)}}
.eco-hero.done .eh-num,.eco-hero.done .eh-post,.eco-hero.done .eh-sub{opacity:1;animation:none}
/* coins spilling out of the vault + sparkles (transform/opacity only, removed when done) */
.coinfx{position:absolute;inset:0;z-index:7;pointer-events:none;overflow:hidden}
.cf{position:absolute;left:0;top:0;width:var(--s,18px);height:var(--s,18px);margin:calc(var(--s,18px)/-2) 0 0 calc(var(--s,18px)/-2);border-radius:50%;background:radial-gradient(circle at 34% 30%,#fff 0 8%,#fff3b0 16%,#ffd84a 42%,#e7a114 70%,#9a6208);border:2px solid #4a2a04;box-shadow:inset 0 -2px 0 rgba(90,50,4,.5),0 0 0 1.5px rgba(255,248,215,.85),0 3px 6px rgba(40,20,0,.45);will-change:transform,opacity}
.spk{position:absolute;z-index:3;width:var(--s,22px);height:var(--s,22px);margin:calc(var(--s,22px)/-2) 0 0 calc(var(--s,22px)/-2);background:#fffbe6;clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%);opacity:0;pointer-events:none;animation:none;will-change:transform,opacity}

/* ---------- overview: ledger (left) + Meso Index chart (right), same top, same height ---------- */
.ov{display:grid;grid-template-columns:minmax(0,360px) minmax(0,1fr);gap:24px;align-items:stretch;margin-bottom:28px}
.ledger{display:flex;flex-direction:column;padding:16px 18px 18px;border-radius:12px;border-width:2px;border-color:var(--ink);box-shadow:inset 0 0 0 1.5px rgba(143,163,220,.45),0 6px 0 rgba(20,16,30,.35),0 18px 30px rgba(20,16,30,.25)}
.lg-h{margin:0 0 6px;font:800 13px var(--f-game);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-ink)}
.lg-note{margin:auto 0 0;padding-top:14px;border-top:1px dashed rgba(143,163,220,.35);font-size:13px;line-height:1.5}
.ledger .lg-note b{color:#fff}
.stat{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:58px;padding:8px 6px;border-top:1px dashed rgba(143,163,220,.3);text-decoration:none;color:var(--tip-ink);border-radius:4px;transition:background-color var(--dur-fast) var(--ease-out)}
.stat:first-of-type{border-top:0}
.ledger .stat{flex:1 1 auto}
.stat:hover{background:rgba(143,163,220,.12)}
.stat span{font:700 15px var(--f-ui);min-width:0}
.stat small{display:block;font:400 12.5px var(--f-ui);color:var(--tip-dim)}
.stat b{font:800 25px/1 var(--f-game);color:#fff;white-space:nowrap;text-align:right}
.stat b small{display:block;font:700 11.5px var(--f-ui);color:var(--tip-dim);margin-top:3px}
.stat b.up{color:var(--up-l)} .stat b.dn{color:var(--down-l)}
.ov-chart .ch-head{padding-bottom:6px}
.ov-chart h3{margin:0;font:800 22px/1.15 var(--f-game)}
.ov-chart .ch-head p{margin:2px 0 0;max-width:70ch;min-height:2.9em}
.ov-chart .tabs{margin-top:4px}

/* charts (custom SVG, cream window look) */
.chart{position:relative;width:100%}
.ec{display:block;width:100%;height:auto;overflow:visible;touch-action:pan-y}
.ec text{font:700 11.5px var(--f-ui);fill:var(--ink-3)}
.ec .base-l{fill:#a06a10}
.ec .evt-l{font-size:11px;fill:var(--ink-2)}
.legend{display:flex;flex-wrap:wrap;gap:4px 14px;font:700 12.5px var(--f-ui);color:var(--ink-2);margin:0 0 6px;min-height:18px}
.legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:5px;vertical-align:-1px;border:1px solid rgba(0,0,0,.35)}
.ctip{position:absolute;z-index:5;pointer-events:none;min-width:150px;padding:8px 10px}
.ctip h4{margin:0 0 4px;font-size:14px}
.ctip .r{display:flex;justify-content:space-between;gap:14px;font-size:13px;line-height:1.5}
.ctip .r span{color:var(--tip-dim)}
.ctip .r b{font:800 14px var(--f-game);color:#fff}
.ctip .dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px}

/* ---------- rooms nav ---------- */
.rooms-nav{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:6px;margin:0 0 10px;padding:10px 12px;overflow-x:auto;scrollbar-width:none;
  background:linear-gradient(#2c1c0f,#2a1a0d);border-bottom:2px solid rgba(0,0,0,.4);box-shadow:0 8px 14px -8px rgba(0,0,0,.5);border-radius:0 0 12px 12px}
.rooms-nav::-webkit-scrollbar{display:none}
.rn-lbl{font:800 12px var(--f-game);letter-spacing:.14em;text-transform:uppercase;color:#bfa77f;margin-right:4px;flex:none}
.rooms-nav a{flex:none;display:inline-flex;align-items:center;gap:6px;font:800 14.5px var(--f-game);text-decoration:none;color:var(--ink);background:linear-gradient(#f6dfae,#d9b072);border:2px solid #2a180a;border-radius:8px;padding:4px 10px 2px 5px;box-shadow:inset 0 -3px 0 rgba(0,0,0,.12),0 3px 0 #1a0f06;white-space:nowrap}
.rooms-nav a i{font-style:normal;display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff3b0,#f2b81c 55%,#b8800c);border:1.5px solid #7a520a;font:800 11.5px/1 var(--f-game);padding-top:1px}
.rooms-nav a:hover{background:linear-gradient(#fff2cf,#f0c98a)}
.rooms-nav a[aria-current]{background:linear-gradient(#8fb3ee,#5f82bf);color:#fff;text-shadow:0 1px 0 var(--bar-ink)}

/* ---------- rooms (chapters) ---------- */
.room{position:relative;padding:58px 0 18px}
.room::before{content:"";position:absolute;left:0;right:0;top:4px;height:26px;background:url(../img/world/ground.webp) center top/100% 72px no-repeat;opacity:.6;filter:saturate(.85);-webkit-mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.room-h{margin-bottom:22px;display:grid;justify-items:start;gap:6px}
.room-n{font:800 12.5px var(--f-game);letter-spacing:.12em;text-transform:uppercase;color:#2a180a;background:linear-gradient(#f6cf5a,#c48a12);border:1.5px solid #2a180a;border-radius:5px;padding:3px 9px 1px}
.room-h .sec-h,.room-h .sec-lede{margin:0}
.room h3{margin:0 0 6px;font:800 21px/1.15 var(--f-game)}
.room h3 small{font:700 13px var(--f-ui);color:var(--ink-3);margin-left:6px}
.ec-h4{margin:14px 0 6px;font:800 15px var(--f-game)}
.ec-h4 small{font:700 12px var(--f-ui);color:var(--ink-3)}
.bar-sm{font:700 12px var(--f-ui);opacity:.85;margin-left:-2px}
.fine b{color:var(--ink)}

/* ---------- 1 movers ---------- */
.mv-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;align-items:start}
.sky-tools{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:12px 14px 6px}
.sky-q{flex:1;min-width:180px}
.sky-cats{margin-top:6px}
.sky-cats button i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;border:1px solid rgba(0,0,0,.4)}
.stage{position:relative;height:440px;margin:0;background:linear-gradient(#bfdcf5 0%,#e7eedb 60%,#efe0b8 100%);overflow:hidden;border-bottom:2px solid var(--ink)}
.stage .axis span{position:absolute;left:8px;font:800 11.5px var(--f-game);color:rgba(36,32,46,.55);transform:translateY(-50%)}
.stage .axis i{position:absolute;left:0;right:0;border-top:1px dashed rgba(36,32,46,.16)}
.groundline{position:absolute;left:0;right:0;border-top:2.5px solid var(--gold);box-shadow:0 0 0 1px rgba(122,82,10,.3);z-index:1}
.groundline{z-index:3;pointer-events:none}
.lanes span{position:absolute;bottom:0;height:100%;border-left:1px dashed rgba(36,32,46,.12);font:800 11px var(--f-game);letter-spacing:.06em;text-transform:uppercase;color:rgba(36,32,46,.45);display:flex;align-items:flex-end;justify-content:center;padding-bottom:4px;white-space:nowrap;overflow:hidden}
.lanes span:first-child{border-left:0}
.groundline span{position:absolute;right:8px;top:-22px;font:800 12px var(--f-game);color:#7a520a;background:rgba(255,248,220,.85);padding:1px 7px;border-radius:4px}
.field-items{position:absolute;inset:0;z-index:2}
.it{position:absolute;left:0;top:0;width:var(--s,28px);height:var(--s,28px);margin:calc(var(--s,28px)/-2) 0 0 calc(var(--s,28px)/-2);padding:0;border:0;background:none;cursor:pointer;transition:transform .7s cubic-bezier(.3,.9,.3,1),opacity .3s}
.it img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 2px 1px rgba(0,0,0,.35))}
.it:hover,.it:focus-visible{z-index:5}
.it:hover img,.it:focus-visible img{filter:drop-shadow(0 0 4px #fff) drop-shadow(0 0 2px var(--maple))}
.it.dim{opacity:.18}
.it.hit{z-index:4}
.it.hit img{filter:drop-shadow(0 0 3px #fff) drop-shadow(0 0 6px var(--maple))}
.stage.fast .it{transition-duration:.22s}
.sky-tag{position:absolute;z-index:8;pointer-events:none;width:max-content;max-width:240px}
.sky-tag b{font:800 15px var(--f-game);color:var(--gold-ink);display:block}
.sky-tag span{display:block;font-size:13px}
.timeline{display:flex;align-items:center;gap:12px;padding:10px 14px 12px}
.timeline input{flex:1;accent-color:var(--maple);min-width:0}
.tl-day{display:grid;text-align:right;min-width:86px}
.tl-day b{font:800 16px var(--f-game)}.tl-day small{font-size:12px;color:var(--ink-3)}
.timeline.off{opacity:.45}
#stories li>a .pr{font-size:16px}
.mv-side .kv{margin-bottom:12px}
.roomswin{margin-top:24px}
.rooms-scene{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:18px;align-items:center;padding:14px 16px 4px;background:linear-gradient(#cfe6f7,#f3ecd4 80%)}
.rooms-map{display:grid;gap:10px;padding:6px 0}
.shelf{position:relative;display:flex;justify-content:space-around;align-items:flex-end;gap:4px;padding:0 4%;min-height:84px}
.shelf::after{content:"";position:absolute;left:0;right:0;bottom:-16px;height:26px;background:url(../img/world/ledge-l.webp) center top/100% 46px no-repeat;z-index:0}
.shelf:nth-child(odd){margin-right:9%}.shelf:nth-child(even){margin-left:9%}
.door{position:relative;z-index:1;width:var(--s);height:calc(var(--s)*1.18);flex:none;border:2px solid #2a180a;border-radius:calc(var(--s)/2) calc(var(--s)/2) 4px 4px;cursor:pointer;padding:0;
  background:linear-gradient(rgba(255,214,90,var(--heat)),rgba(232,100,28,calc(var(--heat)*.9))),linear-gradient(#a8784a,#6b4527);box-shadow:inset 0 0 0 3px rgba(255,255,255,.25),0 0 calc(var(--heat)*22px) rgba(255,190,60,calc(var(--heat)*.9));
  font:800 13px var(--f-game);color:#fff;text-shadow:0 1px 0 #000;display:grid;place-items:center;transition:transform .15s}
.door:hover,.door:focus-visible,.door[aria-pressed=true]{transform:translateY(-4px)}
.door[aria-pressed=true]{outline:3px solid #fff;outline-offset:2px}
.door small{position:absolute;bottom:calc(100% + 2px);left:50%;transform:translateX(-50%);font:800 10.5px var(--f-ui);color:var(--ink);background:rgba(255,253,245,.85);padding:0 4px;border-radius:3px;white-space:nowrap;text-shadow:none;max-width:110px;overflow:hidden;text-overflow:ellipsis;opacity:0;transition:opacity .3s}
.door.sold small{opacity:1}
.door.ping::after{content:"";position:absolute;inset:-6px;border-radius:inherit;border:3px solid #ffe14a;animation:ping2 1.2s ease-out 2}
@keyframes ping2{from{opacity:1;transform:scale(.9)}to{opacity:0;transform:scale(1.4)}}
.room-card{align-self:stretch;display:flex;flex-direction:column;justify-content:center;gap:4px}
.room-card small{color:var(--tip-dim);font-size:12px;text-transform:uppercase;letter-spacing:.1em;font-weight:700}
.room-card strong{font:800 30px/1 var(--f-game);color:var(--gold-ink)}
.room-card .kv{margin-top:6px}
.rooms-note{margin:0;padding:8px 16px 12px}

/* ---------- 2 speeds ---------- */
.sp-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1.25fr) minmax(0,.9fr);gap:24px;align-items:stretch}
.basket{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.basket span{position:relative;width:48px;height:48px;display:grid;place-items:center;background:#fff;border:1.5px solid var(--win-line);border-radius:7px}
.basket img{width:32px;height:32px}
.basket em{position:absolute;right:-5px;bottom:-7px;font:800 11px var(--f-game);font-style:normal;background:var(--ink);color:#fff;border-radius:8px;padding:1px 5px 0}
.verdict{margin:12px 0 0;font:800 18px var(--f-game);color:var(--down)}
.cbar{display:grid;grid-template-columns:86px minmax(0,1fr) 62px;gap:10px;align-items:center;padding:5px 0;font-size:14px}
.cbar>span{font-weight:700}
.cbar .tr{position:relative;height:16px;background:rgba(200,183,143,.25);border-radius:4px}
.cbar .tr .z{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--ink)}
.cbar .tr .f{position:absolute;top:2px;bottom:2px;border-radius:3px;border:1.5px solid rgba(0,0,0,.35)}
.cbar .f.pos{background:linear-gradient(#ff9a7f,var(--up))}.cbar .f.neg{background:linear-gradient(#8fdc8a,var(--down))}
.cbar b{text-align:right;font:800 15px var(--f-game)}
.typ{font:800 64px/1 var(--f-game);color:var(--down-l);margin:6px 0 10px}

/* ---------- 3 dollar ---------- */
.usd-grid{display:grid;grid-template-columns:360px minmax(0,1fr);gap:24px;align-items:stretch}
.usd-big{display:flex;align-items:center;gap:8px;font:800 58px/1 var(--f-game);color:#fff;margin:8px 0}
.usd-big .coin{width:38px;height:38px}
.usd-then{margin:0;color:var(--tip-dim)} .usd-then b{color:#fff}
.usd-x{margin:6px 0 0;color:var(--tip-dim)} .usd-x b{font:800 26px var(--f-game);color:var(--gold-ink)}
.usd-hero .fine{font-size:13.5px}.usd-hero .fine b{color:#fff}
.usd-items{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}
.usd-items span{width:34px;height:34px;display:grid;place-items:center;background:rgba(143,163,220,.12);border:1px solid rgba(143,163,220,.35);border-radius:6px}
.usd-items img{width:26px;height:26px}

/* ---------- 4 flows ---------- */
.fl-grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:24px;align-items:start}
.sinks{list-style:none;margin:0;padding:8px 12px 12px;counter-reset:s}
.sinks li{display:grid;grid-template-columns:20px 30px minmax(0,1fr) 54px;gap:8px;align-items:center;padding:5px 2px;font-size:13.5px}
.sinks li+li{border-top:1px solid rgba(200,183,143,.4)}
.sinks .rk{font:800 13px var(--f-game);color:var(--ink-3);text-align:center}
.sinks img{width:28px;height:28px;object-fit:contain}
.sinks a{text-decoration:none;font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}
.sinks a:hover{text-decoration:underline}
.sinks .bar{grid-column:3;height:6px;border-radius:3px;background:rgba(200,183,143,.3);overflow:hidden;margin-top:3px}
.sinks .bar i{display:block;height:100%;border-radius:3px}
.sinks b{grid-column:4;grid-row:1/span 2;text-align:right;font:800 15px var(--f-game)}
.sinks .rk,.sinks img{grid-row:1/span 2}

/* ---------- 5 economist ---------- */
.tape{overflow:hidden;margin:24px 0 0;border-block:2px solid #1a0f06;background:#1b1630;padding:8px 0;-webkit-mask:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.tape-track{display:flex;gap:26px;width:max-content;animation:tape 140s linear infinite;animation-play-state:paused}
.tape.on .tape-track{animation-play-state:running}
.tape:hover .tape-track{animation-play-state:paused}
@keyframes tape{to{transform:translateX(-50%)}}
.tk{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;color:#e9e4ff;white-space:nowrap}
.tk img{width:22px;height:22px}
.tk b{font-weight:700}.tk em{font:800 14px var(--f-game);font-style:normal;color:#fff}
.tk u{text-decoration:none;font:800 13px var(--f-ui)}
.tk.up u{color:var(--up-l)}.tk.dn u{color:var(--down-l)}
.ec-wrap{position:relative}
.ec-npc{position:absolute;right:16px;top:-128px;width:120px;height:auto;z-index:2;pointer-events:none;filter:drop-shadow(0 8px 6px rgba(0,0,0,.35))}
.ec-panel{padding:18px 20px 20px;min-height:360px}
.ec-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;align-items:start}
.ec-link{display:grid;justify-items:start;gap:4px;min-height:0}
.ec-note{color:var(--ink-2);font-size:14px;margin:12px 0 0;max-width:70ch}
.ec-note b{color:var(--ink)}
.ec-big{font-size:16px;margin:4px 0 12px}.ec-big b{font:800 30px var(--f-game);color:var(--maple)}
.gauge-wrap{position:relative;max-width:290px}
.fg-gauge{width:100%;height:auto;display:block}
.fg-gauge .g-lbl,.day-ring .g-lbl,.lorenz .g-lbl{font:800 12px var(--f-game);fill:var(--ink-3)}
.fg-gauge .needle{transition:transform 1.2s cubic-bezier(.3,1.4,.5,1)}
.gauge-read{text-align:center;margin-top:2px}
.gauge-read b{display:block;font:800 46px/1 var(--f-game);-webkit-text-stroke:1.5px var(--ink);paint-order:stroke fill}
.gauge-read span{font:700 14px var(--f-ui);color:var(--ink-2)}
.fg-parts>div{display:grid;grid-template-columns:110px minmax(0,1fr) 34px;gap:10px;align-items:center;font-size:14px;padding:4px 0}
.fg-parts i{height:12px;background:rgba(200,183,143,.3);border-radius:6px;overflow:hidden;border:1px solid rgba(0,0,0,.2)}
.fg-parts i b{display:block;height:100%}
.fg-parts em{font:800 15px var(--f-game);font-style:normal;text-align:right}
.fg-strip{display:flex;gap:3px;flex-wrap:wrap}
.fg-strip button{width:18px;height:26px;border:1.5px solid var(--ink);border-radius:4px;background:var(--c);cursor:pointer;padding:0}
.fg-strip button[aria-pressed=true]{transform:translateY(-4px);box-shadow:0 4px 0 var(--ink)}
.wage-lv{margin:4px 0;color:var(--ink-2)}
.wage-pay{display:flex;align-items:baseline;gap:6px;margin:0}
.wage-pay b{font:800 46px/1 var(--f-game)}.wage-pay em{font-style:normal;color:var(--ink-3)}
.wage-usd{margin:2px 0 10px;color:var(--ink-2)}
.slider{display:grid;gap:4px;font:700 13px var(--f-ui);color:var(--ink-3)}
.slider input,.calc-top input{accent-color:var(--maple);width:100%}
.wage-min{margin-top:12px}
.wm-bar{position:relative;height:14px;border-radius:7px;background:rgba(200,183,143,.3);border:1.5px solid var(--ink);overflow:hidden}
.wm-bar i{position:absolute;inset:0;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(#8fdc8a,var(--down));transition:transform var(--dur-med) var(--ease-out)}
.wm-line{position:absolute;left:80%;top:-2px;bottom:-2px;width:3px;background:var(--up)}
.wage-min small{font-size:12px;color:var(--ink-3)}
.grind,.mini{list-style:none;margin:0;padding:0}
.grind li{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:2px 10px;align-items:center;padding:5px 4px;font-size:14px}
.grind li:nth-child(odd){background:rgba(200,183,143,.16);border-radius:5px}
.grind img,.grind .coin{width:24px;height:24px;grid-row:1/span 2}
.grind span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.grind b{font:800 15px var(--f-game);text-align:right}
.grind small{grid-column:2/4;font-size:12px;color:var(--ink-3)}
.grind small.up{color:var(--up)}.grind small.dn{color:var(--down)}
.forge-pick{display:flex;gap:10px;align-items:center;margin-bottom:10px}
.forge-pick .sel{flex:1;min-width:0}
.fr{display:grid;grid-template-columns:44px minmax(0,1fr) 100px;gap:12px;align-items:center;padding:7px 0;border-top:1px solid rgba(200,183,143,.45)}
.fr-head{display:grid;grid-template-columns:44px minmax(0,1fr) 100px;gap:12px;font:800 11.5px var(--f-game);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.fr .pl{font:800 20px var(--f-game);color:var(--maple)}
.fr .bars{display:grid;gap:3px}
.fr .bars i{display:block;height:18px;width:var(--w);min-width:44px;border-radius:4px;border:1.5px solid rgba(0,0,0,.35);font:800 12px/16px var(--f-game);font-style:normal;color:#fff;text-shadow:0 1px 0 rgba(0,0,0,.6);padding:0 6px;white-space:nowrap}
.fr .bars i.buy{background:linear-gradient(#8fb3ee,#3a5590)}.fr .bars i.fg{background:linear-gradient(#ffb15c,#d9541a)}
.fr .bars small{font-size:11.5px;color:var(--ink-3)}
.fr .vd{text-align:right;font:800 17px var(--f-game)}
.fr .vd.buy{color:var(--bar-2)}.fr .vd.fg{color:var(--maple)}
.fr .vd small{display:block;font:700 11.5px var(--f-ui);color:var(--ink-3)}
.fr-foot{display:block;margin-top:6px;color:var(--ink-3);font-size:12.5px}
.sw{display:inline-block;width:10px;height:10px;border-radius:2px;vertical-align:-1px}
.sw.buy{background:#5f82bf}.sw.fg{background:#e8641c}
.tm-search{position:relative;margin:8px 0 12px}
.tm-sug{position:absolute;z-index:20;left:0;right:0;top:calc(100% + 4px);list-style:none;margin:0;padding:4px;background:var(--win);border:2px solid var(--ink);border-radius:10px;box-shadow:0 10px 20px rgba(0,0,0,.25);max-height:320px;overflow:auto}
.tm-sug li{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:8px;align-items:center;min-height:40px;padding:4px 8px;border-radius:6px;cursor:pointer;font-size:14px}
.tm-sug li img{width:24px;height:24px}
.tm-sug li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tm-sug li small{font-weight:700}
.tm-sug li.on,.tm-sug li:hover{background:#ffe9b8}
.tm-sug li.none{display:block;color:var(--ink-3);cursor:default}
.tm-res{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:10px;align-items:center}
.tm-res b{font-weight:700}.tm-res small{display:block;font-size:12.5px;color:var(--ink-3)}
.tm-res strong{font:800 32px var(--f-game)}
.tm-spark{width:100%;height:70px;display:block;margin-top:8px}
.tm-spark .a.up{fill:rgba(214,64,47,.14)}.tm-spark .a.dn{fill:rgba(46,138,74,.14)}
.tm-spark .l{fill:none;stroke-width:2.5;vector-effect:non-scaling-stroke}
.tm-spark .l.up{stroke:var(--up)}.tm-spark .l.dn{stroke:var(--down)}
.tm-top{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.mini li{display:grid;grid-template-columns:26px minmax(0,1fr) auto;gap:8px;align-items:center;padding:4px;font-size:13.5px;border-radius:5px}
.mini li button{all:unset;cursor:pointer;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}
.mini li button:hover{text-decoration:underline}
.mini li button:focus-visible{outline:2px solid var(--gold)}
.mini img{width:24px;height:24px}
.mini b{font:800 14px var(--f-game)}
.alm-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:6px 0 4px}
.alm-kpis div{background:rgba(200,183,143,.2);border:1.5px solid var(--win-line);border-radius:8px;padding:10px 12px}
.alm-kpis b{display:block;font:800 30px/1 var(--f-game)}
.alm-kpis small{font-size:12.5px;color:var(--ink-3)}
.alm-curve{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;align-items:end;height:170px}
.alm-curve div{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;gap:3px;text-align:center}
.alm-curve i{width:70%;height:var(--h);min-height:6px;border-radius:5px 5px 0 0;background:linear-gradient(#cbb98f,#9a845a);border:1.5px solid rgba(0,0,0,.3)}
.alm-curve .best i{background:linear-gradient(#8fdc8a,var(--down))}
.alm-curve b{font:800 13px var(--f-game)}.alm-curve small{font-size:11.5px;color:var(--ink-3)}
.clock-wrap{display:grid;grid-template-columns:180px minmax(0,1fr);gap:14px;align-items:center}
.day-ring{width:180px;height:180px}
.ring-read small{display:block;color:var(--ink-3);font-size:12.5px}
.ring-read b{display:block;font:800 24px var(--f-game)}
.ring-read em{display:block;font-style:normal;margin-top:6px;font-weight:700;color:var(--down)}
.cls-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:8px}
.cl{position:relative;display:grid;gap:4px;align-content:start;padding:12px;border:1.5px solid var(--win-line);border-radius:10px;background:rgba(255,255,255,.55)}
.cl.cheap{border-color:var(--down);box-shadow:0 0 0 2px rgba(46,138,74,.25)}
.cl-ic svg{width:30px;height:30px;fill:none;stroke:var(--ink);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.cl>b{font:800 18px var(--f-game)}
.cl strong{font:800 26px/1 var(--f-game)}
.cl strong small{font:700 12px var(--f-ui);color:var(--ink-3)}
.cl-sp{width:100%;height:36px}
.cl-sp path{fill:none;stroke:var(--up);stroke-width:2;vector-effect:non-scaling-stroke}
.cl>small{font-size:12px;color:var(--ink-3)}
.cl em{position:absolute;top:10px;right:10px;font:800 11px var(--f-game);font-style:normal;color:#fff;background:var(--down);border-radius:5px;padding:2px 6px 0}
.scale-wrap{display:grid;place-items:center}
.tot-scale{width:100%;max-width:360px;height:auto}
.tot-scale .post{stroke:#5e4128;stroke-width:5;stroke-linecap:round;fill:none}
.tot-scale .str{stroke:#8a6a48;stroke-width:1.5;fill:none}
.tot-scale .dish{fill:#f2b81c;stroke:#7a520a;stroke-width:2}
.tot-scale .pl{font:800 11px var(--f-game);fill:#5e4128}
.tot-scale .beam{transition:transform 1.4s cubic-bezier(.3,1.5,.5,1)}
.tot-scale.tilted .beam{transform:rotate(var(--t))}
.tot-scale .pan{transition:transform 1.4s cubic-bezier(.3,1.5,.5,1)}

/* ---------- 6 gini ---------- */
.gi-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:24px;align-items:stretch}
.gini-top{display:flex;align-items:center;gap:14px}
.gini-top b{font:800 58px/1 var(--f-game);color:var(--maple)}
.gini-top span{font-weight:700}.gini-top small{font-weight:400;color:var(--ink-3)}
.lorenz{width:100%;max-width:360px;height:auto;display:block;margin:10px auto}
.lorenz .eq{stroke:var(--ink-3);stroke-dasharray:4 4;fill:none}
.lorenz .gap{fill:rgba(232,100,28,.18)}
.lorenz .lc{stroke:var(--maple);stroke-width:3;fill:none}
.gs-bar{position:relative;height:12px;margin:34px 6px 34px;border-radius:6px;background:linear-gradient(90deg,#8fdc8a,#f6cf5a,#ff8a5b);border:1.5px solid var(--ink)}
.gs-bar span{position:absolute;top:50%;transform:translate(-50%,-50%)}
.gs-bar span i{display:block;width:4px;height:22px;background:var(--ink);border-radius:2px}
.gs-bar .ref small{position:absolute;top:24px;left:50%;transform:translateX(-50%);font-size:11px;white-space:nowrap;color:var(--ink-3)}
.gs-bar .ref:nth-child(even) small{top:auto;bottom:24px}
.gs-bar .me i{width:16px;height:16px;border-radius:50%;background:var(--maple);border:2px solid var(--ink)}
.gs-bar .me b{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);font:800 14px var(--f-game);color:var(--maple)}
.pyr-h{font:800 22px/1.2 var(--f-game)}
.pyr-h span,.pyr-h em{font-style:normal;color:var(--maple)}
.pyr-legend{display:grid;grid-template-columns:1fr 64px 1fr;font:700 12.5px var(--f-ui);color:var(--ink-3);margin:10px 0 4px}
.pyr-legend span:nth-child(1){text-align:right}.pyr-legend span:nth-child(2){text-align:center}
.pyr-legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin:0 5px;vertical-align:-1px}
.pyr-legend .pl,.pyr .pl{background:linear-gradient(90deg,#8fb3ee,#3a5590)}
.pyr-legend .ms,.pyr .ms{background:linear-gradient(90deg,#f6cf5a,#c48a12)}
.pyr{display:grid;gap:4px}
.pyr-row{display:grid;grid-template-columns:1fr 64px 1fr;align-items:center}
.pyr-row .side{display:flex;align-items:center;gap:6px}
.pyr-row .side.l{justify-content:flex-end}
.pyr-row .bar{display:block;height:20px;width:calc(var(--k)*100% - 46px);min-width:3px;border-radius:4px;border:1px solid rgba(0,0,0,.3)}
.pyr-row .num{font:800 12.5px var(--f-game);width:40px;flex:none}
.pyr-row .side.l .num{text-align:right}
.pyr-row .lv{text-align:center;font:800 12.5px var(--f-game);color:var(--ink-2)}
.pyr-row.rich .lv{color:var(--maple)}

/* ---------- 7 world ---------- */
.vault{position:relative;display:grid;gap:12px;padding:22px 26px;margin-bottom:24px;border-radius:14px;border:2px solid #2a180a;
  background:radial-gradient(120% 140% at 15% 0%,#5a3d1d,#24170d 70%);box-shadow:inset 0 0 0 2px rgba(242,184,28,.35),0 10px 24px rgba(0,0,0,.35);color:#f6e7c9;overflow:hidden}
.v-top{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center}
.v-live{display:inline-flex;align-items:center;gap:7px;font:800 13px var(--f-game);letter-spacing:.12em;text-transform:uppercase;color:#bfffbc}
.v-live i{width:9px;height:9px;border-radius:50%;background:#7dff7a;box-shadow:0 0 8px #7dff7a}
.v-usd{font:800 18px var(--f-game);color:var(--gold-ink)}
.v-num{display:flex;align-items:center;gap:12px;font:800 clamp(34px,6.4vw,84px)/1 var(--f-game);color:#fff;letter-spacing:.01em;font-variant-numeric:tabular-nums;text-shadow:0 4px 0 #000;min-width:0}
.v-num .coin{width:.7em;height:.7em;flex:none}
.odo{white-space:nowrap;min-width:0;overflow:hidden;text-overflow:clip}
.v-range{max-width:640px}
.v-range-bar{position:relative;height:10px;border-radius:5px;background:rgba(255,255,255,.1)}
.v-range-bar i{position:absolute;top:0;bottom:0;border-radius:5px;background:linear-gradient(90deg,rgba(242,184,28,.25),rgba(242,184,28,.7),rgba(242,184,28,.25))}
.v-range-bar b{position:absolute;top:-4px;width:3px;height:18px;background:#fff;border-radius:2px}
.v-range-lbl{display:flex;justify-content:space-between;font-size:12.5px;color:#cdb795;margin-top:4px}
.v-range-lbl b{color:#fff}
.v-sub{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:4px 0 0}
.v-sub div{border-top:1px dashed rgba(242,184,28,.35);padding-top:8px}
.v-sub dt{font-size:12.5px;color:#cdb795}.v-sub dd{margin:0;font:800 22px var(--f-game);color:#fff}
.w-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:stretch}
.calc-top{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:center;margin-bottom:12px}
.calc-lvl{display:grid;text-align:center;background:var(--tip);color:#fff;border-radius:8px;padding:6px 12px;border:1.5px solid var(--tip-line)}
.calc-lvl small{font-size:11px;color:var(--tip-dim);text-transform:uppercase;letter-spacing:.1em}
.calc-lvl b{font:800 30px/1 var(--f-game);color:var(--gold-ink)}
.calc-buys{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.calc-buys li{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:10px;align-items:center;padding:4px 6px;border-radius:6px;background:rgba(200,183,143,.16);font-size:14px}
.calc-buys img{width:28px;height:28px}
.calc-buys b{font:800 17px var(--f-game)}
.mob-scroll{max-height:380px;overflow:auto;margin:10px 0;border:1.5px solid var(--win-line);border-radius:8px;background:#fffdf5}
.mob-scroll .gtable td{padding:6px 10px}
.mob-scroll .gtable thead th{position:sticky;top:0;background:var(--win-2);z-index:1}
.est{color:var(--ink-3)}
.w-mobs .pad>.fine{margin:0 0 8px}
.tag{font:800 12px var(--f-game);background:var(--bar-2);color:#fff;border-radius:4px;padding:1px 6px 0}
.credit{margin:16px 0 0;color:#cdb795}.credit a{color:#f1dfc2}

/* ---------- 8 forecast ---------- */
.ft-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:8px 0}
.ft-tiles div{background:rgba(200,183,143,.2);border:1.5px solid var(--win-line);border-radius:8px;padding:10px 12px}
.ft-tiles small{display:block;font-size:12.5px;color:var(--ink-3)}
.ft-tiles b{display:block;font:800 30px/1.1 var(--f-game)}
.ft-tiles b.ok{color:var(--down)}.ft-tiles b.bad{color:var(--up)}
.ft-tiles em{font-style:normal;font-size:12.5px;color:var(--ink-3)}
.ft-head{margin:0 0 6px;font-weight:700}
.ft-wait p{margin:0 0 8px}
.ft-bar{height:16px;border-radius:8px;border:1.5px solid var(--ink);background:rgba(200,183,143,.3);overflow:hidden}
.ft-bar i{display:block;height:100%;background:linear-gradient(#a98ee0,#6a4fae)}
.ft-dates{display:flex;justify-content:space-between;font-size:12.5px;color:var(--ink-3);margin-top:4px}
.ft-bt{margin-top:16px}
.ft-tag{display:inline-block;font:800 11.5px var(--f-game);letter-spacing:.1em;text-transform:uppercase;background:var(--ink);color:#fff;border-radius:4px;padding:2px 7px 0;margin-bottom:6px}
.ft-more{margin-top:12px}
.ft-more summary,.m-d summary{cursor:pointer;font:800 16px var(--f-game);padding:6px 0}
.ft-calls{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.ft-calls h4{margin:6px 0;font:800 14px var(--f-game)}
.ft-calls ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.ft-calls li{display:grid;gap:1px;font-size:13.5px;padding:5px 8px;border-radius:6px;border-left:4px solid}
.ft-calls li.hit{border-color:var(--down);background:rgba(46,138,74,.08)}.ft-calls li.miss{border-color:var(--up);background:rgba(214,64,47,.07)}
.ft-calls .ft-n{font-weight:700}.ft-calls .ft-v{color:var(--ink-3)}
.ft-note{margin:12px 0 0;font-size:12.5px;color:var(--ink-3)}

/* ---------- 9 method ---------- */
.method{padding-bottom:8px}
.m-d{padding:4px 20px;border-top:1px solid rgba(200,183,143,.5)}
.m-d:first-of-type{border-top:0}
.m-d p{margin:0 0 12px;color:var(--ink-2);max-width:80ch}
.m-d summary::marker{color:var(--maple)}

/* ---------- mobile ---------- */
@media (max-width:1100px){
  .sp-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .sp-typ{grid-column:1/-1}
  .cls-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ec-npc{display:none}
}
@media (max-width:980px){
  .ov,.mv-grid,.usd-grid,.fl-grid,.gi-grid,.w-grid{grid-template-columns:minmax(0,1fr)}
  .ec-two{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:820px){
  html{scroll-padding-top:104px}
  .map-body{padding-top:16px}
  .ov{gap:18px;margin-bottom:22px}
  .scene.eco-scene{height:330px}
  .eco-scene .sky{background-size:auto 430px;background-position:20% 35%}
  .eco-hero{left:16px;right:16px;top:16px;max-width:none;gap:6px}
  .eco-hero::before{inset:-20px -30px -10px -30px}
  .mapname .eh{font-size:28px}
  .eh-pre{margin-left:2px}
  .eh-row{gap:10px;min-height:96px}
  .eh-num{font-size:104px}
  .eh-d{-webkit-text-stroke:10px #3a1d06;text-shadow:0 4px 0 #3a1d06,0 7px 0 #2a1404,0 10px 0 #2a1404,0 16px 18px rgba(0,0,0,.45)}
  .eh-post{font-size:30px}
  .mapname .eh-sub{font-size:14px;padding:6px 10px}
  .eh-sub b{font-size:16px}
  .ledger{padding:12px 14px 14px}
  .stat{min-height:54px}
  .stat b{font-size:21px}
  .ov-chart h3{font-size:18px}
  .rooms-nav{top:46px;margin:0 -10px 6px;padding:8px 10px;border-radius:0}
  .rooms-nav a{font-size:13.5px}
  .rn-lbl{display:none}
  .room{padding-top:44px}
  .room-h{margin-bottom:14px}
  .sp-grid{grid-template-columns:minmax(0,1fr)}
  .stage{height:360px}
  .rooms-scene{grid-template-columns:minmax(0,1fr);padding:10px 8px 4px}
  .shelf{padding:0;gap:2px;min-height:62px}
  .shelf:nth-child(odd),.shelf:nth-child(even){margin:0}
  .door small{display:none}
  .usd-big{font-size:46px}
  .ec-panel{padding:14px 14px 16px;min-height:0}
  .alm-kpis{grid-template-columns:minmax(0,1fr)}
  .alm-kpis b{font-size:24px}
  .clock-wrap{grid-template-columns:140px minmax(0,1fr)}
  .day-ring{width:140px;height:140px}
  .tm-top{grid-template-columns:minmax(0,1fr)}
  .cls-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
  .cl{padding:10px}
  .cl strong{font-size:21px}
  .fr{grid-template-columns:36px minmax(0,1fr) 74px;gap:8px}
  .fr-head{grid-template-columns:36px minmax(0,1fr) 74px;gap:8px}
  .vault{padding:16px}
  .v-sub{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .v-sub dd{font-size:18px}
  .ft-tiles{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .ft-tiles b{font-size:24px}
  .ft-calls{grid-template-columns:minmax(0,1fr)}
  .m-d{padding:4px 14px}
  .gini-top b{font-size:46px}
  .pyr-row,.pyr-legend{grid-template-columns:1fr 50px 1fr}
  .pyr-row .bar{width:calc(var(--k)*100% - 40px)}
  .pyr-row .num{width:34px;font-size:11.5px}
}

/* grid children never force overflow */
.ov>*,.mv-grid>*,.sp-grid>*,.usd-grid>*,.fl-grid>*,.gi-grid>*,.w-grid>*,.ec-two>*,.tm-top>*,.cls-grid>*,.alm-kpis>*,.ft-tiles>*,.v-sub>*,.rooms-scene>*{min-width:0}
/* reserve the Meso Index chart's box until it draws */
#ch-main:not(:has(svg[viewBox])){min-height:320px}
@media (max-width:820px){#ch-main:not(:has(svg[viewBox])){min-height:240px}}
.rooms-nav a{transition:transform var(--dur-fast) var(--ease-out)}
.rooms-nav a:hover{transform:translateY(-1px)}
.rooms-nav a:active{transform:translateY(2px);transition-duration:60ms}
@media (prefers-reduced-motion:reduce){.eco-hero .eh-num,.eco-hero .eh-post,.eco-hero .eh-sub{opacity:1}}
/* phone: the narrow Price Sky lanes (Potions, Materials) clipped into each other */
@media (max-width:820px){.lanes span{font-size:9px;letter-spacing:0;text-overflow:ellipsis;padding:0 2px 4px}}
/* Busiest-room card: top-5 list fills the card (was mostly empty) */
.room-card{justify-content:flex-start}
.room-card hr{border:0;border-top:1px dashed rgba(143,163,220,.4);margin:10px 0 4px;width:100%}
.rc-top{list-style:none;margin:2px 0 4px;padding:0;display:grid;gap:5px;font-size:13px}
.rc-top li{position:relative;display:flex;justify-content:space-between;gap:8px;padding:3px 6px;border-radius:5px;overflow:hidden;color:var(--tip-dim)}
.rc-top li i{position:absolute;left:0;top:0;bottom:0;background:rgba(242,184,28,.16);z-index:0}
.rc-top li span,.rc-top li b{position:relative;z-index:1}
.rc-top li b{font:800 13.5px var(--f-game);color:#fff}
.rc-top li.on{color:#fff;outline:1px solid rgba(255,211,107,.6)}
.room-card .fine{margin:4px 0 0}
/* Fear & Greed: last-7-days bars + key fill the space under the gauge */
.fg-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;align-items:end;height:96px;max-width:360px}
.fg-week>div{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:3px}
.fg-week b{font:800 13px var(--f-game)}
.fg-week i{display:block;width:100%;max-width:26px;background:var(--c);border:1.5px solid var(--ink);border-radius:4px 4px 0 0}
.fg-week small{font:700 10.5px var(--f-ui);color:var(--ink-3);white-space:nowrap}
.fg-key{margin-top:10px;font-size:12px;max-width:290px;text-align:center}
.fg-key span{white-space:nowrap}
.sinks a{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.2}
