/* FNHL redesign — loaded last by Header.php, overrides STHSMain.css site-wide.
   Menu section below applies everywhere; homepage-scoped rules are further down,
   scoped under #FNHLHome so they never leak onto stock STHS pages. */

@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700&family=Barlow:wght@400;500;600&family=JetBrains+Mono:wght@500;700&display=swap');

:root{
	--fnhl-bg:#E7EEF6; --fnhl-bg-2:#F2F7FC; --fnhl-card:#FFFFFF; --fnhl-card-2:#EEF4FA;
	--fnhl-line:#D6E1EC; --fnhl-line-2:#BCCDDE;
	--fnhl-ink:#132539; --fnhl-ink-2:#4C5F76; --fnhl-ink-3:#8091A4;
	--fnhl-ice:#1583C7; --fnhl-red:#D8232A; --fnhl-amber:#B4780C;
	--fnhl-radius:10px;
	--fnhl-shadow:0 1px 2px rgba(16,35,61,.05);
}

/* Site-wide: suppress the stock "rotate to landscape" overlay. Menu.php
   toggles it on via inline style (JS, core file, can't be edited) on mobile
   portrait — !important beats that inline style since STHSMain.css's own
   rule for it has no !important. */
#STHSPortraitOverlay { display:none !important; }

/* ==========================================================================
   Task A — Menu (site-wide, logged-out and logged-in alike for look & feel;
   the item pruning itself is handled logged-out-only in STHSMenuEnd.php)
   ========================================================================== */

/* Remove the stock STHS header photo + Pro/Farm/League shield images */
#cssmenu li.MenuImage { display:none; }

/* Re-point the STHS menu theme variables at the FNHL palette regardless of
   which stock theme (0-2) is selected, so the nav always reads light/ice. */
#cssmenu, #cssmenuLogin {
	--main-menu-background-color: var(--fnhl-bg-2);
	--main-menu-text-color: var(--fnhl-ink-2);
	--main-menu-background-color-hover: #E3EDF6;
	--main-menu-text-color-hover: var(--fnhl-ice);
	--main-submenu-background-color: #ffffff;
	--main-submenu-text-color: var(--fnhl-ink-2);
	--main-submenu-background-color-hover: #E3EDF6;
	--main-submenu-text-color-hover: var(--fnhl-ice);
}

.FNHLBrandBar { background:var(--fnhl-bg-2); border-bottom:1px solid var(--fnhl-line); }
.FNHLBrandBarInner {
	max-width:1180px; margin:0 auto; padding:14px 20px;
	display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px;
}
.FNHLBrand { display:inline-flex; align-items:center; gap:14px; }
.FNHLBrandLogoLink { display:block; text-decoration:none; }
.FNHLBrandLogo { height:80px; width:auto; display:block; }
.FNHLBrandTagline {
	font-family:'Barlow Condensed', sans-serif; font-weight:600; font-size:13px; letter-spacing:1.8px;
	text-transform:uppercase; color:var(--fnhl-ink-3); white-space:nowrap;
}
.FNHLBrandLoginSlot { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.FNHLBrandGMActions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.FNHLBrandGMActions a {
	font-family:'Barlow Condensed', sans-serif; font-weight:600; letter-spacing:.6px; text-transform:uppercase;
	font-size:12px; color:var(--fnhl-ice); border:1px solid var(--fnhl-ice); border-radius:8px;
	padding:7px 12px; background:transparent; transition:.15s; white-space:nowrap;
}
.FNHLBrandGMActions a:hover { background:var(--fnhl-ice); color:#fff; }
.FNHLBrandLoginSlot .STHSPHP_Login {
	/* Stock hides this block entirely below max-width:1600px (and again in
	   its own mobile/retina range) — it was originally positioned relative
	   to the header image stock also hides there. Now that it lives in our
	   brand bar instead, it must stay visible at every width, or logged-out
	   visitors on anything but a very wide screen have no way to log in. */
	display:block !important;
	position:static !important; width:auto !important; margin:0 !important; text-align:right;
	font-family:'Barlow Condensed', sans-serif !important; font-size:14px !important;
}
.FNHLBrandLoginSlot .STHSPHPLoginButton, .FNHLBrandLoginSlot a.STHSPHPLoginButton,
.FNHLBrandLoginSlot .STHSPHPLogoutButton, .FNHLBrandLoginSlot a.STHSPHPLogoutButton {
	font-family:'Barlow Condensed', sans-serif; font-weight:600; letter-spacing:1px; text-transform:uppercase;
	font-size:13px; background:var(--fnhl-ice); border:1px solid var(--fnhl-ice); color:#fff;
	border-radius:8px; padding:8px 16px;
}
.FNHLBrandLoginSlot .STHSPHPLoginButton:hover, .FNHLBrandLoginSlot .STHSPHPLogoutButton:hover { filter:brightness(1.08); }

/* Logged-in only: the team quick-links dropdown (#cssmenuLogin, stock's own
   separate menu widget) uses Montserrat and its own sizing — nothing to do
   with our #cssmenu override — and the team-name link has an inline
   font-size:20px. Both need !important since we're overriding an id
   selector and an inline style respectively. Scoped to .FNHLBrandLoginSlot
   so it only affects this moved instance, not team-color links elsewhere
   on stock pages that reuse the same classes. */
.FNHLBrandLoginSlot #cssmenuLogin { font-family:'Barlow Condensed', sans-serif !important; }
.FNHLBrandLoginSlot #cssmenuLogin > ul > li { font-size:13px; }
.FNHLBrandLoginSlot #cssmenuLogin ul ul li a {
	font-family:'Barlow', sans-serif !important; font-weight:400 !important; font-size:13px !important;
	text-transform:none !important;
}
.FNHLBrandLoginSlot [class*="STHSPHPTeamHeader_TeamNameColor_"] {
	font-family:'Barlow Condensed', sans-serif !important; font-size:14px !important; font-weight:600 !important;
	letter-spacing:1px !important; text-transform:uppercase !important;
}

/* Team icon strip (.STHSPHPMenuDiv, site-wide, already real STHS crests).
   Stock hides icons individually at max-width:1200px (STHSMain.css) while
   the container itself stays visible until its own .STHSPHPMenuDivMobile
   dropdown fallback appears — leaving a dead empty bar in between. Fix:
   let icons wrap onto up to 2 rows instead of disappearing at 1200px.

   Below that, two things need a single shared handoff point instead of
   stock's own breakpoint: stock's dropdown-trigger media query also fires
   early (up to 1024px wide) on retina/high-DPI screens, which is what
   caused icons and the dropdown to show at the same time around ~750px.
   32 teams need ~16 per row to fit 2 rows; at the ~24px icon size used
   below 1200px that's roughly 480px of icons, so 680px gives a safe
   margin — icons never actually reach a 3rd row before they're hidden.
   A max-height safety net (2 rows' worth, generous for either icon size)
   backs this up in case real-world sizing runs a bit differently. */
.STHSPHPMenuDiv {
	background:var(--fnhl-bg); border-bottom:1px solid var(--fnhl-line);
	margin:0; padding:8px 20px; display:flex; flex-wrap:wrap; justify-content:center; gap:4px;
	max-height:80px; overflow:hidden;
}
.STHSPHPMenuDivTeamImage { width:28px; height:28px; padding:0 4px; border-radius:6px; opacity:.92; transition:.15s; }
.STHSPHPMenuDivTeamImage:hover { opacity:1; transform:translateY(-2px); }
@media screen and (max-width: 1200px) {
	.STHSPHPMenuDivTeamImage { display:inline-block; width:24px; height:24px; }
}
@media screen and (max-width: 680px) {
	.STHSPHPMenuDiv { display:none; }
}
@media screen and (min-width: 681px) {
	.STHSPHPMenuDivMobile { display:none !important; }
}

/* Main nav */
#cssmenu { font-family:'Barlow Condensed', sans-serif; background:var(--fnhl-bg-2); border-top:1px solid var(--fnhl-line); position:relative; }
#cssmenu > ul { margin:0 auto !important; text-align:center; font-size:0; padding:4px 0; max-width:1180px; }
#cssmenu > ul > li { float:none; display:inline-block; }
#cssmenu > ul > li > a {
	font-weight:600; font-size:14px; letter-spacing:1.1px; text-transform:uppercase;
	padding:14px 16px; border-radius:7px;
}
#cssmenu ul ul li a { font-family:'Barlow', sans-serif; font-weight:400; letter-spacing:.2px; }
/* Thin separator between a top-level item and its opened submenu — applies
   to the submenu <ul> itself, so it's a no-op while hidden (desktop flyout,
   closed accordion panel) and only shows once the panel is actually open. */
#cssmenu ul ul { border-top:1px solid var(--fnhl-line); }
/* rink-line accent under the whole menu bar */
#cssmenu::before {
	content:""; position:absolute; left:0; right:0; bottom:0; height:3px;
	background:linear-gradient(90deg, var(--fnhl-ice) 0 33%, var(--fnhl-red) 33% 67%, var(--fnhl-ice) 67% 100%);
}

@media screen and (max-width: 890px) {
	.FNHLBrandBarInner { justify-content:center; }
}

/* ==========================================================================
   Task B — Homepage widgets. Everything scoped under #FNHLHome so it can
   never leak onto stock STHS pages (which keep their normal STHS look).
   ========================================================================== */

#FNHLHome { background:var(--fnhl-bg); padding:22px 0 40px; font-family:'Barlow', sans-serif; font-size:15px; line-height:1.55; color:var(--fnhl-ink); }
#FNHLHome a { color:inherit; text-decoration:none; }
#FNHLHome .wrap { max-width:1180px; margin:0 auto; padding:0 20px; }
#FNHLHome .grid { display:grid; grid-template-columns:1fr 2fr 1fr; gap:18px; align-items:start; }
@media (max-width:960px) { #FNHLHome .grid { grid-template-columns:1fr; } }
#FNHLHome .col { display:flex; flex-direction:column; gap:16px; min-width:0; }

#FNHLHome .eyebrow {
	display:flex; align-items:center; gap:9px; font-family:'Barlow Condensed', sans-serif; font-weight:600;
	font-size:13px; letter-spacing:2px; text-transform:uppercase; color:var(--fnhl-ink-3); margin:2px 0 -2px;
}
#FNHLHome .eyebrow::before { content:""; width:22px; height:3px; background:var(--fnhl-ice); border-radius:2px; }

#FNHLHome .card {
	background:var(--fnhl-card); border:1px solid var(--fnhl-line); border-radius:var(--fnhl-radius);
	padding:14px 16px; box-shadow:var(--fnhl-shadow); transition:border-color .15s, box-shadow .15s;
}
#FNHLHome .card:hover { border-color:var(--fnhl-line-2); box-shadow:0 2px 8px rgba(16,35,61,.07); }
#FNHLHome .card h3 {
	margin:0 0 10px; font-family:'Barlow Condensed', sans-serif; font-weight:600; font-size:16px; letter-spacing:.6px;
	text-transform:uppercase; color:var(--fnhl-ink); display:flex; align-items:center; gap:8px;
}
#FNHLHome .card h3 .dot { width:7px; height:7px; border-radius:50%; background:var(--fnhl-red); }
#FNHLHome .cardlink { margin-top:10px; text-align:right; font-size:12.5px; }
#FNHLHome .cardlink a { color:var(--fnhl-ice); }
#FNHLHome .cardlink a:hover { text-decoration:underline; }

#FNHLHome .row { padding:9px 0; border-bottom:1px solid var(--fnhl-line); }
#FNHLHome .row:last-child { border-bottom:0; padding-bottom:0; }
#FNHLHome .row:first-of-type { padding-top:0; }
#FNHLHome .rmain { font-weight:500; font-size:14px; }
#FNHLHome .rsub { font-size:12.5px; color:var(--fnhl-ink-3); margin-top:1px; }

#FNHLHome .featured { background:var(--fnhl-card-2); border:1px solid var(--fnhl-line-2); }
#FNHLHome .pill {
	display:inline-flex; align-items:center; gap:6px; font-family:'Barlow Condensed', sans-serif; font-weight:600;
	font-size:11px; letter-spacing:1.5px; text-transform:uppercase; color:var(--fnhl-amber); margin-bottom:8px;
}
#FNHLHome .pill::before { content:""; width:6px; height:6px; background:var(--fnhl-amber); border-radius:50%; }
#FNHLHome .featured h2 { margin:0 0 8px; font-family:'Barlow Condensed', sans-serif; font-weight:700; font-size:26px; line-height:1.05; letter-spacing:.3px; color:var(--fnhl-ink); }
#FNHLHome .featured p { margin:0; color:var(--fnhl-ink-2); font-size:14.5px; }
#FNHLHome .byline { margin-top:12px; font-size:12px; color:var(--fnhl-ink-3); font-family:'JetBrains Mono'; }

#FNHLHome .feed-item { display:flex; gap:12px; padding:13px 0; border-bottom:1px solid var(--fnhl-line); }
#FNHLHome .feed-item:last-child { border-bottom:0; }
#FNHLHome .fic { flex:0 0 auto; width:36px; height:36px; border-radius:8px; display:flex; align-items:center; justify-content:center; font-family:'Barlow Condensed', sans-serif; font-weight:700; font-size:16px; }
#FNHLHome .fic.sign { background:#E1F3E9; color:#1B8A54; }
#FNHLHome .ftitle { font-family:'Barlow Condensed', sans-serif; font-weight:600; font-size:16.5px; letter-spacing:.3px; color:var(--fnhl-ink); }
#FNHLHome .fmeta { font-size:11.5px; color:var(--fnhl-ink-3); margin-top:3px; font-family:'JetBrains Mono'; letter-spacing:.3px; }
#FNHLHome .fbody { font-size:13.5px; color:var(--fnhl-ink-2); margin-top:3px; }

#FNHLHome .nhlstrip .nrow { display:flex; justify-content:space-between; align-items:baseline; gap:10px; padding:8px 0; border-bottom:1px solid var(--fnhl-line); }
#FNHLHome .nhlstrip .nrow:last-child { border-bottom:0; }
#FNHLHome .nhlstrip .src { font-family:'JetBrains Mono'; font-size:11px; color:var(--fnhl-ice); flex:0 0 auto; }

#FNHLHome table { width:100%; border-collapse:collapse; font-size:13.5px; }
#FNHLHome th {
	font-family:'Barlow Condensed', sans-serif; font-weight:600; font-size:11px; letter-spacing:1px; text-transform:uppercase;
	color:var(--fnhl-ink-3); text-align:right; padding:0 0 7px; border-bottom:1px solid var(--fnhl-line);
}
#FNHLHome th:first-child, #FNHLHome td:first-child { text-align:left; }
#FNHLHome td { padding:7px 0; border-bottom:1px solid var(--fnhl-line); font-family:'JetBrains Mono'; font-weight:500; color:var(--fnhl-ink-2); }
#FNHLHome tr:last-child td { border-bottom:0; }
#FNHLHome td.name { font-family:'Barlow', sans-serif; font-weight:500; color:var(--fnhl-ink); letter-spacing:.2px; }
#FNHLHome td.pts { color:var(--fnhl-amber); font-weight:700; }
#FNHLHome td.rk { color:var(--fnhl-ink-3); width:20px; }
#FNHLHome .up { color:#1B8A54; } #FNHLHome .down { color:#C62834; } #FNHLHome .flat { color:var(--fnhl-ink-3); }

#FNHLHome .standings-conf-title {
	font-family:'Barlow Condensed', sans-serif; font-weight:700; font-size:13px; letter-spacing:.5px;
	color:var(--fnhl-ink); margin:14px 0 4px;
}
#FNHLHome .standings-conf-title:first-child { margin-top:0; }
#FNHLHome tr.divider td {
	padding:10px 0 4px; border-bottom:none; font-family:'Barlow Condensed', sans-serif; font-weight:600;
	font-size:10.5px; letter-spacing:1px; text-transform:uppercase; color:var(--fnhl-ink-3); text-align:left;
}
#FNHLHome tr.divider:first-child td { padding-top:0; }

#FNHLHome .gmbox { background:var(--fnhl-card-2); border:1px dashed var(--fnhl-line-2); box-shadow:none; }
#FNHLHome .gmbox-link { display:block; cursor:pointer; transition:border-color .15s, background .15s; }
#FNHLHome .gmbox-link:hover { border-color:var(--fnhl-ice); background:var(--fnhl-card); }
#FNHLHome .gmbox p { margin:0 0 12px; font-size:13.5px; color:var(--fnhl-ink-2); }
#FNHLHome .gmbox .cta {
	display:block; text-align:center; font-family:'Barlow Condensed', sans-serif; font-weight:600; letter-spacing:1px;
	text-transform:uppercase; font-size:13px; padding:10px; border-radius:8px; background:var(--fnhl-ice); color:#fff; transition:.15s;
}
#FNHLHome .gmbox-link:hover .cta { filter:brightness(1.08); }

/* ---- B. Game results strip (full width, above the 3-column grid) ---- */
#FNHLHome .results-strip { position:relative; max-width:1180px; margin:0 auto 18px; padding:0 20px; }
#FNHLHome .results-scroll {
	display:flex; gap:10px; overflow-x:auto; scroll-snap-type:x proximity; padding:2px 2px 6px;
	scrollbar-width:thin;
}
#FNHLHome .results-scroll::-webkit-scrollbar { height:6px; }
#FNHLHome .results-scroll::-webkit-scrollbar-thumb { background:var(--fnhl-line-2); border-radius:3px; }
#FNHLHome .result-card-link { display:block; flex:0 0 auto; scroll-snap-align:start; }
#FNHLHome .result-card {
	flex:0 0 auto; width:210px; background:var(--fnhl-card); border:1px solid var(--fnhl-line); border-radius:var(--fnhl-radius);
	box-shadow:var(--fnhl-shadow); padding:10px 12px; transition:border-color .15s, box-shadow .15s;
}
#FNHLHome .result-card-link .result-card:hover { border-color:var(--fnhl-line-2); box-shadow:0 2px 8px rgba(16,35,61,.07); }
#FNHLHome .result-card-title {
	font-family:'Barlow Condensed', sans-serif; font-weight:600; font-size:10.5px; letter-spacing:1px; text-transform:uppercase;
	color:var(--fnhl-ink-3); margin-bottom:6px;
}
#FNHLHome .result-row { display:flex; align-items:center; gap:7px; padding:3px 0; font-size:13.5px; color:var(--fnhl-ink-2); }
#FNHLHome .result-row.win { color:var(--fnhl-ink); font-weight:600; }
#FNHLHome .result-logo { width:20px; height:20px; flex:0 0 auto; }
#FNHLHome .result-name { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#FNHLHome .result-score { font-family:'JetBrains Mono'; font-weight:700; }
#FNHLHome .result-row.win .result-score { color:var(--fnhl-amber); }
#FNHLHome .results-arrow {
	position:absolute; top:50%; transform:translateY(-50%); width:30px; height:30px; border-radius:50%;
	border:1px solid var(--fnhl-line-2); background:var(--fnhl-card); color:var(--fnhl-ink-2); font-size:18px; line-height:1;
	cursor:pointer; box-shadow:var(--fnhl-shadow);
}
#FNHLHome .results-arrow:hover { color:var(--fnhl-ice); border-color:var(--fnhl-ice); }
#FNHLHome .results-arrow-prev { left:6px; }
#FNHLHome .results-arrow-next { right:6px; }

/* ---- C. 3 stars of the day tiles ---- */
#FNHLHome .stars-row { display:flex; gap:10px; margin-bottom:2px; }
#FNHLHome .star-tile {
	flex:1; min-width:0; display:flex; align-items:center; gap:7px; background:var(--fnhl-card); border:1px solid var(--fnhl-line);
	border-radius:var(--fnhl-radius); padding:8px 10px; box-shadow:var(--fnhl-shadow);
}
#FNHLHome .star-icon { width:16px; height:16px; flex:0 0 auto; }
#FNHLHome .star-mug { width:26px; height:26px; flex:0 0 auto; border-radius:50%; object-fit:cover; background:var(--fnhl-bg); }
#FNHLHome .star-info { min-width:0; }
#FNHLHome .star-player { font-size:12.5px; font-weight:600; color:var(--fnhl-ink); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#FNHLHome .star-team { font-size:10.5px; color:var(--fnhl-ink-3); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
@media (max-width:600px) { #FNHLHome .stars-row { flex-direction:column; } }

/* One-time entrance, staggered across all three tiles on page load (1st,
   then 2nd, then 3rd), each a little more subdued than the last. No loop,
   and fully disabled under prefers-reduced-motion (the tiles are already in
   their final visible state either way, this is just a settle-in flourish). */
@media (prefers-reduced-motion: no-preference) {
	#FNHLHome .star-tile-first, #FNHLHome .star-tile-second, #FNHLHome .star-tile-third {
		animation-name: fnhl-star-entrance; animation-timing-function: cubic-bezier(.22,1,.36,1);
		animation-iteration-count: 1; animation-fill-mode: both;
	}
	#FNHLHome .star-tile-first { animation-duration:.7s; animation-delay:0s; --fnhl-star-scale:1.04; --fnhl-star-glow:16px; --fnhl-star-glow-o:.4; }
	#FNHLHome .star-tile-second { animation-duration:.6s; animation-delay:.18s; --fnhl-star-scale:1.025; --fnhl-star-glow:10px; --fnhl-star-glow-o:.25; }
	#FNHLHome .star-tile-third { animation-duration:.55s; animation-delay:.34s; --fnhl-star-scale:1.015; --fnhl-star-glow:6px; --fnhl-star-glow-o:.15; }
	@keyframes fnhl-star-entrance {
		0% { transform:scale(.94); box-shadow:0 0 0 rgba(180,120,12,0); }
		55% { transform:scale(var(--fnhl-star-scale, 1.02)); box-shadow:0 0 var(--fnhl-star-glow, 8px) rgba(180,120,12,var(--fnhl-star-glow-o, .2)); }
		100% { transform:scale(1); box-shadow:var(--fnhl-shadow); }
	}
}

/* ---- D. Leaders tabs (CSS-only, radio+label, no JS) ---- */
#FNHLHome .tab-radio { display:none; }
#FNHLHome .tab-labels { display:flex; gap:4px; margin-bottom:10px; flex-wrap:wrap; }
#FNHLHome .tab-labels label {
	font-family:'Barlow Condensed', sans-serif; font-weight:600; font-size:12px; letter-spacing:.6px; text-transform:uppercase;
	color:var(--fnhl-ink-3); padding:5px 10px; border-radius:7px; cursor:pointer; transition:.15s;
}
#FNHLHome .tab-labels label:hover { color:var(--fnhl-ice); }
#FNHLHome .tab-panel { display:none; }
#FNHLHome #fnhl-tab-points:checked ~ .tab-labels label[for="fnhl-tab-points"],
#FNHLHome #fnhl-tab-goals:checked ~ .tab-labels label[for="fnhl-tab-goals"],
#FNHLHome #fnhl-tab-assists:checked ~ .tab-labels label[for="fnhl-tab-assists"],
#FNHLHome #fnhl-tab-goalies:checked ~ .tab-labels label[for="fnhl-tab-goalies"] {
	background:var(--fnhl-card-2); color:var(--fnhl-ice);
}
#FNHLHome #fnhl-tab-points:checked ~ .panel-points,
#FNHLHome #fnhl-tab-goals:checked ~ .panel-goals,
#FNHLHome #fnhl-tab-assists:checked ~ .panel-assists,
#FNHLHome #fnhl-tab-goalies:checked ~ .panel-goalies { display:block; }

/* ---- Leaders flip card: front = top-3 points w/ mugshots, back = the tabs
   card above. Both faces share one grid cell (grid-area) so the container's
   height is the max of the two, instead of guessing a fixed height for the
   absolutely-positioned classic flip-card technique. Hover ADDS .is-flipped
   (JS, doesn't auto-revert on mouse-out) rather than a CSS :hover rule. ---- */
#FNHLHome .flip-card { cursor:pointer; }
#FNHLHome .flip-card:focus-visible { outline:2px solid var(--fnhl-ice); outline-offset:3px; border-radius:var(--fnhl-radius); }
#FNHLHome .flip-inner {
	display:grid; grid-template-areas:"stack"; position:relative;
	transition:transform .6s cubic-bezier(.22,1,.36,1); transform-style:preserve-3d;
}
#FNHLHome .flip-front, #FNHLHome .flip-back { grid-area:stack; backface-visibility:hidden; margin:0; display:flex; flex-direction:column; }
#FNHLHome .flip-back { transform:rotateY(180deg); }

@media (prefers-reduced-motion: no-preference) {
	#FNHLHome .flip-card.is-flipped .flip-inner { transform:rotateY(180deg); }
}
/* prefers-reduced-motion:reduce — .flip-inner never rotates, so .flip-back's
   own static rotateY(180deg) + backface-visibility:hidden keeps it turned
   away/invisible and only the front ever renders. No JS branch needed. */

/* Front face: podium-style top-3, fancier than a plain list — gradient
   card background, gold top border, rows spread across the full card
   height (matching the back face's height) instead of clumping at top. */
#FNHLHome .flip-front {
	border-top:3px solid var(--fnhl-amber);
	background:linear-gradient(180deg, var(--fnhl-card-2) 0%, var(--fnhl-card) 55%);
}
#FNHLHome .front-leaders-list { display:flex; flex-direction:column; flex:1; justify-content:space-evenly; gap:10px; margin:6px 0 12px; }
#FNHLHome .front-leader-row {
	display:flex; align-items:center; gap:11px; padding:9px 10px; border-radius:9px;
	background:var(--fnhl-card); border:1px solid var(--fnhl-line); transition:border-color .15s, transform .15s;
}
#FNHLHome .front-leader-row:hover { border-color:var(--fnhl-line-2); transform:translateX(2px); }
#FNHLHome .front-leader-rank {
	width:26px; height:26px; border-radius:50%; background:var(--fnhl-amber); color:#fff; flex:0 0 auto;
	display:flex; align-items:center; justify-content:center; font-family:'Barlow Condensed', sans-serif; font-weight:700; font-size:11.5px;
	box-shadow:0 0 0 3px var(--fnhl-card-2);
}
#FNHLHome .front-leader-row:nth-child(2) .front-leader-rank { background:#B08A4A; }
#FNHLHome .front-leader-row:nth-child(3) .front-leader-rank { background:#8091A4; }
#FNHLHome .front-leader-mug { width:44px; height:44px; border-radius:50%; object-fit:cover; flex:0 0 auto; background:var(--fnhl-bg); border:2px solid var(--fnhl-card-2); }
#FNHLHome .front-leader-info { display:flex; flex-direction:column; gap:2px; min-width:0; flex:1; }
#FNHLHome .front-leader-name { font-size:15px; font-weight:600; color:var(--fnhl-ink); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#FNHLHome .front-leader-stats { font-family:'JetBrains Mono'; font-size:12px; color:var(--fnhl-ink-3); }

/* ---- A. Inline-expandable news body ---- */
#FNHLHome .news-toggle { color:var(--fnhl-ice); font-family:'JetBrains Mono'; font-size:11px; }
#FNHLHome .news-toggle:hover { text-decoration:underline; }
#FNHLHome .news-full-body {
	margin-top:10px; padding-top:10px; border-top:1px solid var(--fnhl-line); font-size:14px; color:var(--fnhl-ink-2);
}
#FNHLHome .news-full-body p { margin:0 0 10px; }
#FNHLHome .news-full-body p:last-child { margin-bottom:0; }
#FNHLHome .news-full-body a { color:var(--fnhl-ice); text-decoration:underline; }
#FNHLHome .news-full-body img { max-width:100%; height:auto; border-radius:6px; margin:6px 0; }
#FNHLHome .news-full-body ul, #FNHLHome .news-full-body ol { margin:0 0 10px; padding-left:20px; }

/* Homepage-only footer (index.php renders this instead of including the
   stock Footer.php, so it stays out of scope for every other STHS page). */
#FNHLFooter { border-top:1px solid var(--fnhl-line); background:var(--fnhl-bg-2); }
#FNHLFooter .wrap {
	max-width:1180px; margin:0 auto; padding:18px 20px; display:flex; flex-wrap:wrap; gap:6px 18px;
	justify-content:space-between; font-size:12px; color:var(--fnhl-ink-3); font-family:'JetBrains Mono';
}
#FNHLFooter b { color:var(--fnhl-ink-2); font-weight:500; }
