	/* ── PAGE SHELL ─────────────────────────────────────────────────────
	   The dark background runs continuously from the global nav's bottom
	   border. The previous "massive gap" was the white body background
	   showing through between the nav and the wire ticker — fixed by
	   forcing main+body dark and removing any margin-top on the strip. */
	body { background: #0b0f17 !important; }
	main#top { background: #0b0f17; }
	.fin-home { background:#0b0f17; color:#e8eaed; padding: 0 0 4.5rem; }
	.fin-home a { color:inherit; text-decoration:none; }
	.fin-home h1, .fin-home h2, .fin-home h3 { color:#fafafa; margin:0; }

	.fh-wrap { max-width: 1480px; margin: 0 auto; padding: 0 1.25rem; }

	/* Breadcrumb */
	.fin-home .blog-breadcrumb-nav { margin: 0; padding-top: 0; padding-bottom: .3rem; }
	.fin-home .breadcrumb { background:transparent; padding:0; font-size:.76rem; margin:0; }
	.fin-home .breadcrumb-item a { color:#7d8694; }
	.fin-home .breadcrumb-item a:hover { color:#cbd5e1; }
	.fin-home .breadcrumb-item.active { color:#cbd5e1; }
	.fin-home .breadcrumb-item + .breadcrumb-item::before { color:#475569; }

	/* COLOR PRIMITIVES */
	.fin-chg-up   { color:#22c55e; font-weight:600; }
	.fin-chg-dn   { color:#ef4444; font-weight:600; }
	.fin-chg-flat { color:#9ca3af; }
	.mono { font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; }

	/* ── 1. WIRE TICKER (flush to nav) ────────────────────────────────── */
	.fh-wire { position: sticky; top: 0; z-index: 50; background:#0d1117; border-bottom:1px solid #1c2231; padding:.5rem 0; font-size:.82rem; }
	.fh-wire-inner { display:flex; align-items:center; gap:1rem; }
	.fh-wire-label { display:inline-flex; align-items:center; gap:.4rem; background:#dc2626; color:#fff; padding:.2rem .55rem; border-radius:.2rem; font-size:.64rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; flex-shrink:0; }
	.fh-wire-label::before { content:""; width:.38rem; height:.38rem; background:#fff; border-radius:50%; animation: fh-pulse 1.4s infinite; }
	@keyframes fh-pulse { 0%,100% { opacity:1; } 50% { opacity:.35; } }
	.fh-wire-mask { flex:1; min-width:0; overflow:hidden; position:relative;
		-webkit-mask-image: linear-gradient(to right, transparent 0, #000 32px, #000 calc(100% - 32px), transparent 100%);
		mask-image: linear-gradient(to right, transparent 0, #000 32px, #000 calc(100% - 32px), transparent 100%); }
	.fh-wire-track { display:flex; width:max-content; animation: fh-marquee 110s linear infinite; }
	.fh-wire-track:hover { animation-play-state: paused; }
	.fh-wire-set { display:flex; align-items:center; gap:.85rem; padding-right:.85rem; flex-shrink:0; }
	.fh-wire-set a { color:#e9ecef; font-weight:500; white-space:nowrap; }
	.fh-wire-set a:hover { color:#fbbf24; }
	.fh-wire-sep { color:#475569; font-size:.7rem; flex-shrink:0; }
	.fh-wire-clock { font-size:.72rem; color:#7d8694; font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; flex-shrink:0; padding-left:.85rem; border-left:1px solid #1c2231; }
	.fh-wire-clock .dot { display:inline-block; width:.45rem; height:.45rem; border-radius:50%; vertical-align:.05em; margin-right:.3rem; }
	.fh-wire-clock.is-open .dot { background:#22c55e; box-shadow:0 0 6px rgba(34,197,94,.7); }
	.fh-wire-clock.is-closed .dot { background:#6b7280; }
	@keyframes fh-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
	@media (prefers-reduced-motion: reduce) { .fh-wire-track { animation:none; } }
	@media (max-width: 700px) { .fh-wire-clock { display:none; } }

	/* ── 2. PULSE BAR ─────────────────────────────────────────────────── */
	.fh-pulse { background:#0d1117; border-bottom:1px solid #1c2231; padding:.6rem 0 .9rem; }
	.fh-pulse-row { display:flex; gap:1.5rem; align-items:center; flex-wrap:wrap; }
	.fh-pulse-title { font-size:1.55rem; font-weight:700; color:#fafafa; letter-spacing:-.01em; margin:0; }
	.fh-pulse-title .ac { color:#fbbf24; }
	.fh-pulse-spacer { flex:1; }
	.fh-pulse-stat { display:flex; flex-direction:column; align-items:flex-end; min-width:0; }
	.fh-pulse-stat .lbl { font-size:.6rem; text-transform:uppercase; letter-spacing:.16em; color:#7d8694; font-weight:600; margin-bottom:.15rem; }
	.fh-pulse-stat .val { font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; font-weight:700; font-size:1.05rem; }

	/* ── 3. THREE-COLUMN GRID ─────────────────────────────────────────── */
	.fh-grid { display:grid; grid-template-columns: 320px 1fr 320px; gap:1.5rem; padding-top:1.5rem; align-items:flex-start; }
	@media (max-width: 1300px) { .fh-grid { grid-template-columns: 280px 1fr 280px; gap:1.1rem; } }
	@media (max-width: 1100px) { .fh-grid { grid-template-columns: 1fr; gap:1rem; } }

	/* Shared cards */
	.fh-card { background:#11161f; border:1px solid #1f2937; border-radius:.5rem; overflow:hidden; }
	.fh-card-h { padding:.6rem .85rem; border-bottom:1px solid #1c2231; display:flex; align-items:center; gap:.6rem; }
	.fh-card-h .eyebrow { font-size:.62rem; text-transform:uppercase; letter-spacing:.18em; color:#fbbf24; font-weight:700; }
	.fh-card-h .eyebrow.live::before { content:""; display:inline-block; width:.4rem; height:.4rem; background:#22c55e; border-radius:50%; margin-right:.35rem; vertical-align:.05em; animation: fh-pulse 1.6s infinite; box-shadow:0 0 6px rgba(34,197,94,.6); }
	.fh-card-h .more { margin-left:auto; font-size:.7rem; color:#7d8694; }
	.fh-card-h .more:hover { color:#cbd5e1; }
	.fh-card-rows > * { padding: .55rem .85rem; border-bottom: 1px solid #1c2231; display:block; }
	.fh-card-rows > *:last-child { border-bottom:0; }

	/* ── LEFT RAIL ─────────────────────────────────────────────────────── */
	.fh-rail-l { display:flex; flex-direction:column; gap:1rem; }

	.fh-topstory { display:block; background:#11161f; border:1px solid #1f2937; border-radius:.5rem; overflow:hidden; }
	.fh-topstory .img { width:100%; aspect-ratio: 16/9; background:#0d1117 center/cover no-repeat; }
	.fh-topstory .body { padding: .85rem .95rem; }
	.fh-topstory .tag  { display:inline-block; font-size:.6rem; text-transform:uppercase; letter-spacing:.16em; color:#fbbf24; font-weight:700; margin-bottom:.4rem; }
	.fh-topstory h2    { font-size:1.02rem; line-height:1.3; color:#fafafa; font-weight:700; margin:0 0 .35rem; }
	.fh-topstory:hover h3 { color:#fbbf24; }
	.fh-topstory .dek  { color:#9ca3af; font-size:.8rem; line-height:1.45; }
	.fh-topstory .meta { color:#7d8694; font-size:.68rem; margin-top:.5rem; }

	.fh-commentary { background:linear-gradient(180deg,#141a26,#0e131a); border:1px solid #1f2937; border-left:3px solid #fbbf24; padding:.85rem .95rem; border-radius: .5rem; }
	.fh-commentary .eyebrow { font-size:.6rem; text-transform:uppercase; letter-spacing:.18em; color:#fbbf24; font-weight:700; margin-bottom:.4rem; }
	.fh-commentary p { color:#cbd5e1; font-size:.83rem; line-height:1.55; margin: 0 0 .45rem; }
	.fh-commentary p:last-of-type { margin-bottom:.4rem; }
	.fh-commentary p a { color:#fbbf24; }
	.fh-commentary .by { color:#7d8694; font-size:.66rem; font-style: italic; }
	/* Scheduled-takes stack — three "Today's read" reports per market day.
	   Newest sits on top with the freshest gold accent; older fade to grey
	   border so the eye lands on the latest first. */
	.fh-takes { display:flex; flex-direction:column; gap:.5rem; }
	.fh-take { background:linear-gradient(180deg,#141a26,#0e131a); border:1px solid #1f2937; border-left:3px solid #475569; padding:.7rem .9rem; border-radius: .4rem; }
	.fh-take.is-latest { border-left-color:#fbbf24; }
	.fh-take .fh-take-h { display:flex; align-items:baseline; justify-content:space-between; gap:.5rem; margin-bottom:.35rem; }
	.fh-take .fh-take-label { font-size:.6rem; text-transform:uppercase; letter-spacing:.18em; color:#fbbf24; font-weight:700; }
	.fh-take.is-stale .fh-take-label { color:#7d8694; }
	.fh-take .fh-take-time { font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; font-size:.62rem; color:#7d8694; }
	.fh-take p { color:#cbd5e1; font-size:.8rem; line-height:1.5; margin: 0 0 .35rem; }
	.fh-take p:last-child { margin-bottom: 0; }
	.fh-take p a { color:#fbbf24; }
	.fh-take .fh-take-empty { color:#7d8694; font-size:.78rem; font-style: italic; }

	.fh-mini-com { position:relative; background:#11161f; border:1px solid #1f2937; border-radius:.4rem; padding:.55rem .75rem; overflow:hidden; }
	.fh-mini-com .bg { position:absolute; inset:0; pointer-events:none; }
	.fh-mini-com > *:not(.bg) { position:relative; z-index:1; }
	.fh-mini-com .name { font-size:.6rem; text-transform:uppercase; letter-spacing:.14em; color:#7d8694; font-weight:700; }
	.fh-mini-com .row { display:flex; align-items:baseline; justify-content:space-between; margin-top:.2rem; gap:.4rem; }
	.fh-mini-com .val { font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; font-weight:700; font-size:1.05rem; color:#fafafa; }
	.fh-mini-com .pct { font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; font-weight:700; font-size:.78rem; }
	.fh-mini-com .ca  { display:flex; align-items:baseline; justify-content:space-between; margin-top:.35rem; padding-top:.35rem; border-top:1px dashed #1f2937; gap:.5rem; }
	.fh-mini-com .ca .lbl { font-size:.58rem; text-transform:uppercase; letter-spacing:.13em; color:#fbbf24; font-weight:700; display:inline-flex; align-items:center; gap:.3rem; }
	.fh-mini-com .ca .lbl::before { content:""; width:.35rem; height:.35rem; background:#fbbf24; border-radius:50%; box-shadow:0 0 5px rgba(251,191,36,.6); }
	.fh-mini-com .ca .val { font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; font-weight:700; font-size:.9rem; color:#fbbf24; }

	/* ── CENTER ────────────────────────────────────────────────────────── */
	.fh-center { min-width: 0; } /* prevent overflow from monospace inside grid */

	.fh-hero-quote { position:relative; background:linear-gradient(135deg,#0d1117 0%,#0a0d14 100%); border:1px solid #1c2231; border-radius:.7rem; padding:1.6rem 1.8rem; overflow:hidden; display:flex; gap:1.4rem; flex-wrap:wrap; align-items:center; min-height: 190px; margin-bottom:.5rem; }
	.fh-hero-quote[data-dir="up"]::before { content:""; position:absolute; inset:0; background: radial-gradient(circle at 85% 30%, rgba(34,197,94,.55), transparent 65%); opacity:.65; }
	.fh-hero-quote[data-dir="dn"]::before { content:""; position:absolute; inset:0; background: radial-gradient(circle at 85% 30%, rgba(239,68,68,.55), transparent 65%); opacity:.65; }
	.fh-hero-quote > * { position:relative; z-index:1; }
	.fh-hero-left { flex: 1 1 auto; min-width: 0; }
	.fh-hero-tag  { display:inline-flex; align-items:center; gap:.35rem; font-size:.62rem; text-transform:uppercase; letter-spacing:.18em; color:#fbbf24; font-weight:700; margin-bottom:.5rem; }
	.fh-hero-tag::before { content:"●"; font-size:.55rem; }
	.fh-hero-tick { font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; font-weight:800; font-size: clamp(2.6rem, 5vw, 3.9rem); letter-spacing:.01em; line-height:.95; color:#fafafa; }
	.fh-hero-co   { color:#9ca3af; font-size:.92rem; margin-top:.35rem; max-width:36ch; }
	.fh-hero-row  { display:flex; align-items:baseline; gap:1.1rem; flex-wrap:wrap; margin-top:.7rem; }
	.fh-hero-pct  { font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; font-weight:700; font-size: clamp(1.3rem, 2.2vw, 1.75rem); }
	.fh-hero-price{ font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; font-weight:500; font-size: 1.1rem; color:#cbd5e1; }
	.fh-hero-spark{ flex: 0 1 280px; height: 95px; max-width: 45%; }
	.fh-hero-spark svg { width:100%; height:100%; }
	@media (max-width: 800px) { .fh-hero-spark { max-width:100%; flex-basis:100%; height:80px; } }

	/* Sub-heading rhythm */
	.fh-sec-h { display:flex; align-items:baseline; justify-content:space-between; margin: 1.4rem 0 .75rem; gap:.75rem; flex-wrap:wrap; }
	.fh-sec-h h2 { font-size: .92rem; font-weight:700; color:#fafafa; letter-spacing:.03em; text-transform: uppercase; }
	.fh-sec-h h2 .ac { color:#fbbf24; margin-right:.4rem; }
	.fh-sec-h .more { color:#7d8694; font-size:.76rem; }
	.fh-sec-h .more:hover { color:#cbd5e1; }

	/* Heatmap */
	.fh-heat-sector { margin-bottom: .85rem; }
	.fh-heat-sector:last-child { margin-bottom: 0; }
	.fh-heat-sector-h { display:flex; align-items:baseline; gap:.65rem; margin-bottom:.4rem; padding-left:.1rem; }
	.fh-heat-sector-h .label { font-size:.64rem; text-transform:uppercase; letter-spacing:.14em; color:#cbd5e1; font-weight:700; }
	.fh-heat-sector-h .avg   { font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; font-size:.75rem; font-weight:700; }
	.fh-heat-sector-h .count { font-size:.68rem; color:#475569; margin-left:auto; }
	.fh-heat-grid { display:grid; grid-template-columns: repeat(auto-fill, minmax(108px, 1fr)); gap:.42rem; }
	.fh-heat-tile { position:relative; aspect-ratio: 5 / 3; border-radius:.4rem; overflow:hidden; padding:.5rem .65rem; background:#11161f; border:1px solid #1f2937; display:flex; flex-direction:column; justify-content:space-between; transition: border-color .12s, transform .12s; }
	.fh-heat-tile:hover { border-color:#4b5563; transform: translateY(-1px); }
	.fh-heat-tile .bg { position:absolute; inset:0; pointer-events:none; }
	.fh-heat-tile > *:not(.bg) { position:relative; z-index:1; }
	.fh-heat-tile .tick { font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; font-weight:800; font-size:.92rem; color:#fafafa; }
	.fh-heat-tile .pct  { font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; font-weight:700; font-size:.82rem; }
	.fh-heat-tile .px   { font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; font-weight:500; font-size:.68rem; color:#9ca3af; }
	/* Tile sparkline — sits between the top row (tick + price) and the pct line.
	   Slim 18px lane so it doesn't crowd the numbers; opacity dampens it as a
	   visual hint rather than a chart in its own right. */
	.fh-heat-tile .spark { width:100%; height:18px; display:block; margin: 0 -.65rem; padding: 0 .65rem; opacity:.85; }
	.fh-heat-tile .spark svg { width:100%; height:100%; display:block; }
	.fh-heat-tile:hover .spark { opacity:1; }

	/* Movers */
	.fh-movers-split { display:grid; grid-template-columns: 1fr 1fr; gap:.85rem; }
	@media (max-width: 700px) { .fh-movers-split { grid-template-columns: 1fr; } }
	.fh-movers-col h3 { font-size:.66rem; text-transform:uppercase; letter-spacing:.16em; margin: 0 0 .55rem; font-weight:700; }
	.fh-movers-col h3.up { color:#4ade80; }
	.fh-movers-col h3.dn { color:#f87171; }
	.fh-movers-list { display:flex; flex-direction:column; gap:.28rem; }
	.fh-mover-row { position:relative; display:flex; align-items:center; gap:.6rem; padding:.5rem .7rem; background:#11161f; border:1px solid #1f2937; border-radius:.4rem; transition: border-color .12s, transform .12s; overflow:hidden; }
	.fh-mover-row:hover { border-color:#4b5563; transform: translateY(-1px); }
	.fh-mover-row .bg { position:absolute; inset:0; pointer-events:none; }
	.fh-mover-row > *:not(.bg) { position:relative; z-index:1; }
	.fh-mover-row .rank { color:#7d8694; font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; font-size:.68rem; min-width: 1rem; }
	.fh-mover-row .tick { font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; font-weight:700; font-size:.88rem; color:#fafafa; min-width: 3.2rem; }
	.fh-mover-row .name { color:#9ca3af; font-size:.72rem; flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
	.fh-mover-row .pct  { font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; font-weight:700; font-size:.84rem; }
	.fh-mover-row .price{ font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; font-size:.76rem; color:#cbd5e1; min-width: 3.6rem; text-align:right; }

	/* ── RIGHT RAIL ────────────────────────────────────────────────────── */
	.fh-rail-r { display:flex; flex-direction:column; gap:1rem; }

	.fh-filing-row, .fh-rating-row { display:flex; align-items:flex-start; gap:.55rem; }
	.fh-filing-row .tick, .fh-rating-row .tick { font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; font-weight:700; font-size:.78rem; min-width: 2.8rem; color:#cbd5e1; }
	.fh-filing-row .form { font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; font-weight:600; font-size:.66rem; color:#fbbf24; padding:.05rem .35rem; background:rgba(251,191,36,.1); border-radius:.2rem; align-self:flex-start; }
	.fh-filing-row .meta { flex:1; min-width:0; }
	.fh-filing-row .title { font-size:.78rem; line-height:1.3; color:#e8eaed; display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
	.fh-filing-row .title:hover { color:#fbbf24; }
	.fh-filing-row .date  { font-size:.64rem; color:#7d8694; margin-top:.15rem; }
	.fh-rating-row .body  { flex:1; min-width:0; }
	.fh-rating-row .firm  { font-size:.78rem; color:#e8eaed; }
	.fh-rating-row .grade { font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; font-size:.68rem; color:#9ca3af; margin-top:.1rem; }
	.fh-rating-row .action { font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; font-size:.6rem; padding:.08rem .35rem; border-radius:.2rem; text-transform:uppercase; letter-spacing:.05em; align-self:flex-start; font-weight:700; }
	.fh-rating-row .action.up { background:rgba(34,197,94,.16); color:#4ade80; }
	.fh-rating-row .action.dn { background:rgba(239,68,68,.16); color:#f87171; }
	.fh-rating-row .action.flat { background:rgba(156,163,175,.16); color:#9ca3af; }

	/* Analyst-consensus stacked-bar rows (one per ticker). */
	.fh-rec-row    { display:flex; align-items:center; gap:.55rem; }
	.fh-rec-row .tick { font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; font-weight:700; font-size:.78rem; color:#cbd5e1; min-width: 2.8rem; }
	.fh-rec-row .body { flex:1; min-width:0; }
	.fh-rec-row .meta { display:flex; justify-content:space-between; align-items:baseline; gap:.5rem; font-size:.66rem; color:#7d8694; margin-bottom:.2rem; line-height:1; }
	.fh-rec-row .meta .pct { font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; color:#4ade80; font-weight:700; }
	.fh-rec-row .meta .n   { font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; color:#9ca3af; }
	/* Analyst-consensus card body scrolls vertically once it overflows the
	   max height. Width:auto keeps the rows aligned with the rest of the
	   right-rail. Scrollbar styled to match the dark theme. */
	.fh-rec-scroll, .fh-rows-scroll { max-height: 420px; overflow-y: auto; overflow-x: hidden;
		scrollbar-width: thin; scrollbar-color: #1f2937 transparent; }
	.fh-rec-scroll::-webkit-scrollbar,
	.fh-rows-scroll::-webkit-scrollbar { width: 6px; }
	.fh-rec-scroll::-webkit-scrollbar-thumb,
	.fh-rows-scroll::-webkit-scrollbar-thumb { background:#1f2937; border-radius:3px; }
	.fh-rec-scroll::-webkit-scrollbar-thumb:hover,
	.fh-rows-scroll::-webkit-scrollbar-thumb:hover { background:#374151; }
	.fh-rec-scroll::-webkit-scrollbar-track,
	.fh-rows-scroll::-webkit-scrollbar-track { background: transparent; }
	.fh-rec-bar   { display:flex; height:.5rem; border-radius:.2rem; overflow:hidden; background:#1f2937; }
	.fh-rec-bar > span { display:block; height:100%; }
	.fh-rec-bar .sb { background:#22c55e; }
	.fh-rec-bar .b  { background:#4ade80; }
	.fh-rec-bar .h  { background:#fbbf24; }
	.fh-rec-bar .s  { background:#f87171; }
	.fh-rec-bar .ss { background:#dc2626; }

	.fh-empty { color:#7d8694; font-size:.78rem; padding:.55rem .85rem; }

	.fh-cal-row { display:flex; gap:.7rem; align-items:flex-start; }
	.fh-cal-row .when { font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; font-size:.68rem; color:#fbbf24; font-weight:700; min-width: 2.6rem; }
	.fh-cal-row .ev { flex:1; font-size:.76rem; color:#cbd5e1; line-height:1.35; }
	.fh-cal-row .ev .sub { display:block; font-size:.64rem; color:#7d8694; margin-top:.1rem; }
	/* MACRO badge distinguishes FRED-scheduled releases (FOMC, CPI, jobs)
	   from ticker filings. Blue/teal tint so it reads as "different kind of
	   event" without competing with the gold ticker links. */
	.fh-macro-badge { display:inline-block; font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; font-weight:700; font-size:.62rem; color:#60a5fa; background:rgba(96,165,250,.12); padding:.08rem .35rem; border-radius:.2rem; margin-right:.25rem; letter-spacing:.05em; }

	/* ── 4. COMMODITIES BAND ──────────────────────────────────────────── */
	.fh-commod-band { background:#0d1117; border-top:1px solid #1c2231; border-bottom:1px solid #1c2231; padding: 1.3rem 0 1.5rem; margin-top: 2rem; }
	.fh-commod-h { display:flex; align-items:baseline; justify-content:space-between; margin-bottom:.85rem; gap:.6rem; flex-wrap:wrap; }
	.fh-commod-h h2 { font-size:.95rem; font-weight:700; color:#fafafa; letter-spacing:.03em; text-transform:uppercase; }
	.fh-commod-h h2 .ac { color:#fbbf24; margin-right:.4rem; }
	.fh-commod-h .more { color:#7d8694; font-size:.78rem; }
	.fh-commod-h .more:hover { color:#cbd5e1; }
	.fh-commod-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(168px, 1fr)); gap: .5rem; }
	.fh-commod-card { position:relative; background:#11161f; border:1px solid #1f2937; border-radius:.45rem; padding: .6rem .8rem; overflow:hidden; transition: border-color .12s, transform .12s; }
	.fh-commod-card:hover { border-color:#4b5563; transform: translateY(-1px); }
	.fh-commod-card .bg { position:absolute; inset:0; pointer-events:none; }
	.fh-commod-card > *:not(.bg) { position:relative; z-index:1; }
	.fh-commod-card .name { font-size:.6rem; text-transform:uppercase; letter-spacing:.13em; color:#7d8694; font-weight:700; line-height:1.2; }
	.fh-commod-card .val  { font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; font-weight:800; font-size:1.2rem; color:#fafafa; margin-top:.15rem; line-height:1; }
	.fh-commod-card .meta { display:flex; justify-content:space-between; align-items:baseline; margin-top:.22rem; gap:.4rem; }
	.fh-commod-card .meta .pct { font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; font-weight:700; font-size:.74rem; }
	.fh-commod-card .meta .unit { font-size:.6rem; color:#475569; }

	/* ── 5. NEWS CAROUSEL (horizontal scroll) ─────────────────────────── */
	.fh-news-band { padding: 2rem 0 .5rem; }
	.fh-news-h    { display:flex; align-items:baseline; justify-content:space-between; margin-bottom: 1rem; gap:.6rem; flex-wrap:wrap; }
	.fh-news-h h2 { font-size:.95rem; font-weight:700; color:#fafafa; letter-spacing:.03em; text-transform:uppercase; }
	.fh-news-h h2 .ac { color:#fbbf24; margin-right:.4rem; }
	.fh-news-h .controls { display:flex; gap:.4rem; align-items:center; }
	.fh-news-h .controls .more { color:#7d8694; font-size:.78rem; margin-right:.5rem; }
	.fh-news-h .controls .more:hover { color:#cbd5e1; }
	.fh-news-btn { background:#11161f; border:1px solid #1f2937; color:#cbd5e1; width:2rem; height:2rem; border-radius:.4rem; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; transition: border-color .12s, color .12s, background .12s; }
	.fh-news-btn:hover { border-color:#fbbf24; color:#fbbf24; }
	.fh-news-btn:disabled { opacity:.4; cursor:not-allowed; }
	.fh-news-btn:disabled:hover { border-color:#1f2937; color:#cbd5e1; }

	.fh-news-scroll { position:relative; overflow:hidden; }
	.fh-news-rail   { display:flex; gap:.8rem; overflow-x:auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; padding-bottom:.5rem;
		scrollbar-width: thin; scrollbar-color: #1f2937 transparent; }
	.fh-news-rail::-webkit-scrollbar { height:6px; }
	.fh-news-rail::-webkit-scrollbar-thumb { background:#1f2937; border-radius:3px; }
	.fh-news-rail::-webkit-scrollbar-track { background:transparent; }

	.fh-news-card { flex: 0 0 300px; scroll-snap-align: start; background:#11161f; border:1px solid #1f2937; border-radius:.55rem; overflow:hidden; display:flex; flex-direction:column; transition: border-color .12s, transform .12s; min-height: 320px; }
	.fh-news-card:hover { border-color:#4b5563; transform: translateY(-2px); }
	.fh-news-card .img { width:100%; aspect-ratio: 16/9; background:#0d1117 center/cover no-repeat; position:relative; }
	.fh-news-card .img::after { content:""; position:absolute; inset:0; background: linear-gradient(180deg, transparent 60%, rgba(11,15,23,.55) 100%); pointer-events:none; }
	.fh-news-card .img.no-img { background: linear-gradient(135deg, #0d1117, #161c28); display:flex; align-items:center; justify-content:center; color:#475569; font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; font-size: 2rem; font-weight: 700; }
	.fh-news-card .body { padding: .85rem .95rem 1rem; display:flex; flex-direction:column; gap:.45rem; flex:1; }
	.fh-news-card .tag  { display:inline-block; font-size:.58rem; text-transform:uppercase; letter-spacing:.16em; color:#fbbf24; font-weight:700; }
	.fh-news-card h3    { font-size: .95rem; line-height:1.3; color:#fafafa; font-weight:700; margin:0; }
	.fh-news-card:hover h3 { color:#fbbf24; }
	.fh-news-card .dek  { color:#9ca3af; font-size:.78rem; line-height:1.45; flex:1; }
	.fh-news-card .foot { display:flex; align-items:center; justify-content:space-between; gap:.4rem; padding-top:.35rem; border-top:1px solid #1c2231; margin-top:.2rem; }
	.fh-news-card .foot .date { color:#7d8694; font-size:.68rem; font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; }
	.fh-news-card .foot .chips { display:flex; gap:.25rem; flex-wrap:wrap; }
	.fh-news-card .foot .chip  { font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; font-size:.62rem; padding:.08rem .35rem; border-radius:.2rem; background:rgba(96,165,250,.14); color:#93c5fd; font-weight:600; }
	.fh-news-card .foot .chip.up { background:rgba(34,197,94,.16); color:#4ade80; }
	.fh-news-card .foot .chip.dn { background:rgba(239,68,68,.16); color:#f87171; }

	@media (max-width: 700px) { .fh-news-card { flex-basis: 260px; min-height: 280px; } }

	/* ── 6. BOTTOM PRICE TAPE ─────────────────────────────────────────── */
	/* 30px body padding-bottom keeps the footer's privacy / terms /
	   sitemap links from sitting fully behind the tape's translucent
	   strip. Per design, this is intentionally less than the tape's 36px
	   height — the tape is meant to feel layered over the page edge, not
	   floated above empty whitespace. The shared lib/finance_chrome.php
	   carries the same rule for pages that include it; this homepage
	   defines its own chrome inline so the rule has to be duplicated here. */
	body { padding-bottom: 30px; }
	.fin-tape-wrap { position:fixed; bottom:0; left:0; right:0; height:36px; background:rgba(11,15,23,.96); border-top:1px solid #1c2231; overflow:hidden; backdrop-filter:blur(8px); z-index:10; }
	.fin-tape      { display:inline-flex; gap:2.25rem; padding:.55rem 0; white-space:nowrap; font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; font-size:.82rem; animation: fintape 180s linear infinite; will-change:transform; }
	.fin-tape:hover { animation-play-state:paused; }
	.fin-tape-item  { color:#cbd5e1; }
	.fin-tape-item strong { color:#fafafa; margin-right:.35rem; }
	@keyframes fintape { from { transform: translateX(0); } to { transform: translateX(-50%); } }

	.fh-disclaimer { color:#475569; font-size:.7rem; line-height:1.5; max-width:60ch; margin: 2.5rem auto 0; padding: 0 1rem; text-align:center; }
