/* Estland 2 portal v9 — full visual rebuild, performance-first */
.portal-v9 {
  --v9-bg: #040811;
  --v9-bg-2: #07101d;
  --v9-surface: #0a1525;
  --v9-surface-2: #0e1c30;
  --v9-surface-3: #13243b;
  --v9-line: rgba(151, 181, 220, .16);
  --v9-line-strong: rgba(255, 199, 96, .34);
  --v9-text: #f5f7fb;
  --v9-soft: #c6d0df;
  --v9-muted: #8594aa;
  --v9-gold: #f4bb55;
  --v9-gold-2: #ffd98b;
  --v9-blue: #79adf4;
  --v9-green: #6fe2a5;
  --v9-red: #ff8d91;
  --v9-radius-xl: 34px;
  --v9-radius-lg: 26px;
  --v9-radius-md: 18px;
  --v9-radius-sm: 13px;
  --shell: 1340px;
  color: var(--v9-text);
  background:
    radial-gradient(circle at 12% 4%, rgba(43, 90, 153, .17), transparent 34rem),
    radial-gradient(circle at 88% 13%, rgba(244, 187, 85, .09), transparent 30rem),
    linear-gradient(180deg, #040811 0%, #07111e 52%, #040811 100%);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.portal-v9::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .13;
  background-image:
    linear-gradient(rgba(132, 166, 210, .16) 1px, transparent 1px),
    linear-gradient(90deg, rgba(132, 166, 210, .16) 1px, transparent 1px);
  background-size: 72px 72px;
  mask-image: linear-gradient(to bottom, #000, transparent 72%);
}

.portal-v9 .ambient-stage { display: none !important; }
.portal-v9 main, .portal-v9 .site-header, .portal-v9 .site-language-bar, .portal-v9 .site-footer, .portal-v9 .portal-mobile-dock { position: relative; z-index: 2; }
.portal-v9 .shell { width: min(var(--shell), calc(100% - 48px)); }
.portal-v9 * { text-rendering: optimizeLegibility; }

/* Utility language rail */
.portal-v9 .site-language-bar {
  height: 30px;
  border-bottom: 1px solid rgba(255,255,255,.055);
  background: #02050a;
}
.portal-v9 .site-language-inner { height: 30px; display: flex; align-items: center; justify-content: flex-end; gap: 10px; }
.portal-v9 .site-language-inner > span { color: #6f7d91; font-size: .65rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.portal-v9 .site-language-options { display: inline-flex; gap: 2px; }
.portal-v9 .site-language-options button {
  min-width: 34px; height: 24px; padding: 0 8px; border: 0; border-radius: 8px;
  color: #8f9db1; background: transparent; font-size: .68rem; font-weight: 850; cursor: pointer;
}
.portal-v9 .site-language-options button:hover { color: #fff; background: #101b2a; }
.portal-v9 .site-language-options button.is-active { color: #1b1305; background: var(--v9-gold-2); }

/* Header */
.portal-v9 .site-header { position: sticky; top: 0; z-index: 50; border-bottom: 1px solid rgba(255,255,255,.065); background: #06101c; }
.portal-v9 .portal-header-inner { min-height: 74px; padding: 0; display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 28px; align-items: center; background: transparent; border: 0; border-radius: 0; box-shadow: none; }
.portal-v9 .portal-brand { display: inline-flex; align-items: center; gap: 11px; min-width: 0; }
.portal-v9 .portal-brand-mark { width: 42px; height: 42px; border: 1px solid rgba(255,255,255,.12); border-radius: 14px; padding: 8px; display: grid; place-items: center; background: linear-gradient(145deg,#17283d,#0a1422); box-shadow: inset 0 1px 0 rgba(255,255,255,.07); }
.portal-v9 .portal-brand-mark img { width:100%;height:100%;object-fit:contain; }
.portal-v9 .portal-brand > span:last-child { display:grid; gap:1px; }
.portal-v9 .portal-brand strong { font-size: .98rem; line-height: 1.1; letter-spacing: -.02em; }
.portal-v9 .portal-brand em { color: var(--v9-muted); font-size: .7rem; font-style: normal; }
.portal-v9 .portal-primary-nav { justify-self: center; display: flex; align-items: center; gap: 4px; padding: 4px; border: 1px solid rgba(255,255,255,.065); border-radius: 15px; background: #0a1523; }
.portal-v9 .portal-primary-nav a { min-height: 38px; padding: 0 16px; border-radius: 11px; display:flex;align-items:center; color: #9cabbf; font-size: .79rem; font-weight: 800; transition: color .18s ease, background-color .18s ease; }
.portal-v9 .portal-primary-nav a:hover { color:#fff; background:#121f30; }
.portal-v9 .portal-primary-nav a.is-active { color:#1a1204; background: linear-gradient(180deg,#ffda8b,#eeb34a); box-shadow: 0 7px 18px rgba(235,173,60,.18); }
.portal-v9 .portal-header-actions { display:flex;align-items:center;gap:8px; }
.portal-v9 .portal-more-button, .portal-v9 .portal-mobile-menu-button { min-height: 40px; border:1px solid rgba(255,255,255,.09); border-radius:12px; color:#c7d0dd; background:#0d1928; font-size:.76rem;font-weight:800;cursor:pointer; }
.portal-v9 .portal-more-button { padding:0 14px;display:flex;align-items:center;gap:6px; }
.portal-v9 .portal-more-button svg { width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2; }
.portal-v9 .portal-play-button { min-height: 42px; padding: 0 18px; border-radius: 13px; display:flex;align-items:center;gap:8px; color:#1b1203; background: linear-gradient(180deg,#ffda88,#ebb044); font-size:.79rem;font-weight:900; box-shadow: 0 10px 26px rgba(230,163,44,.22); }
.portal-v9 .portal-play-button:hover { transform: translateY(-1px); }
.portal-v9 .portal-play-button svg { width:16px;height:16px;fill:currentColor; }
.portal-v9 .portal-mobile-menu-button { display:none;width:42px;padding:0;place-items:center; }
.portal-v9 .portal-mobile-menu-button svg { width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:2; }
.portal-v9 .portal-more-menu { position:absolute; top: calc(100% + 10px); right:max(24px,calc((100vw - var(--shell))/2)); width:min(480px,calc(100vw - 40px)); padding:14px; border:1px solid var(--v9-line); border-radius:20px; background:#091524; box-shadow:0 24px 60px rgba(0,0,0,.42); }
.portal-v9 .portal-more-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px; }
.portal-v9 .portal-more-grid a { min-width:0;padding:14px;border-radius:14px;display:grid;gap:8px;color:var(--v9-soft);background:#0d1a2a;border:1px solid transparent; }
.portal-v9 .portal-more-grid a:hover,.portal-v9 .portal-more-grid a.is-active { color:#fff;border-color:var(--v9-line-strong);background:#122239; }
.portal-v9 .portal-menu-icon svg { width:19px;height:19px;fill:none;stroke:var(--v9-gold);stroke-width:1.8; }
.portal-v9 .portal-more-community { margin-top:10px;padding:11px 4px 0;border-top:1px solid rgba(255,255,255,.07);display:flex;gap:16px;flex-wrap:wrap; }
.portal-v9 .portal-more-community a { color:var(--v9-muted);font-size:.73rem;font-weight:750; }

/* Home hero — entirely new layout */
.portal-v9.page-home main { padding-top: 24px; }
.portal-v9 .v9-hero-shell { position:relative; }
.portal-v9 .hero-command-card.v9-hero {
  position:relative; isolation:isolate; min-height: 650px; padding:0; overflow:hidden;
  display:grid; grid-template-columns:minmax(0,.84fr) minmax(470px,1.16fr); grid-template-rows:1fr auto;
  border:1px solid rgba(132,170,221,.22); border-radius:38px;
  background:
    radial-gradient(circle at 76% 22%,rgba(69,126,203,.22),transparent 26rem),
    linear-gradient(130deg,#101f34 0%,#0a1728 47%,#07111e 100%);
  box-shadow:0 34px 90px rgba(0,0,0,.38),inset 0 1px 0 rgba(255,255,255,.05);
}
.portal-v9 .hero-command-card.v9-hero::before { content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px);background-size:64px 64px;mask-image:linear-gradient(90deg,#000,transparent 82%); }
.portal-v9 .hero-copy-wrap { position:relative;z-index:2;padding:clamp(46px,5vw,78px) 0 42px clamp(34px,5vw,78px);display:flex;flex-direction:column;justify-content:center;align-items:flex-start; }
.portal-v9 .hero-overline-row { display:flex;align-items:center;gap:10px;flex-wrap:wrap; }
.portal-v9 .eyebrow-live,.portal-v9 .micro-pill,.portal-v9 .kicker,.portal-v9 .content-tag,.portal-v9 .status-pill { display:inline-flex;align-items:center;min-height:26px;padding:0 10px;border-radius:999px;font-size:.64rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase; }
.portal-v9 .eyebrow-live { color:#adf3ca;background:rgba(64,197,128,.11);border:1px solid rgba(91,224,155,.25); }
.portal-v9 .eyebrow-live::before { content:"";width:6px;height:6px;margin-right:7px;border-radius:50%;background:var(--v9-green); }
.portal-v9 .micro-pill,.portal-v9 .kicker { color:var(--v9-gold-2);background:rgba(244,187,85,.08);border:1px solid rgba(244,187,85,.22); }
.portal-v9 .hero-command-card h1 { max-width: 13ch; margin:20px 0 18px; color:#fff; font-size:clamp(2.8rem,4.05vw,4.2rem); line-height:.96; letter-spacing:-.066em; text-wrap:balance; }
.portal-v9 .hero-description { max-width:48ch;margin:0;color:var(--v9-soft);font-size:1.02rem;line-height:1.65; }
.portal-v9 .hero-actions { margin-top:28px;display:flex;gap:10px;flex-wrap:wrap; }
.portal-v9 .button { border:1px solid transparent;cursor:pointer;text-decoration:none; }
.portal-v9 .button-primary { color:#171004;background:linear-gradient(180deg,#ffdc91,#efb54c);box-shadow:0 14px 34px rgba(237,170,50,.18); }
.portal-v9 .button-glass,.portal-v9 .button-subtle { color:#d5ddea;background:#111f31;border-color:rgba(255,255,255,.1);box-shadow:none; }
.portal-v9 .button:hover { transform:translateY(-1px); }
.portal-v9 .button-xl { min-height:52px;padding:0 20px;border-radius:15px;font-size:.83rem;font-weight:900;display:inline-flex;align-items:center;gap:10px; }
.portal-v9 .hero-trust-grid { margin-top:24px;display:flex;gap:8px;flex-wrap:wrap; }
.portal-v9 .hero-trust-grid article { padding:8px 11px;border:1px solid rgba(255,255,255,.075);border-radius:11px;background:rgba(255,255,255,.028); }
.portal-v9 .hero-trust-grid strong { color:#aab8ca;font-size:.68rem;font-weight:780; }
.portal-v9 .hero-visual-stage { position:relative;min-width:0;display:grid;place-items:center;padding:34px 36px 86px 0;overflow:hidden; }
.portal-v9 .hero-visual-stage > img { width:min(100%,730px);height:auto;filter:none;transform:translateX(2%); }
.portal-v9 .visual-orbit,.portal-v9 .visual-core,.portal-v9 .floating-chip { display:none!important; }
.portal-v9 .v9-hero-brand { position:absolute;right:9%;bottom:120px;width:145px;padding:14px 16px;border-radius:20px;border:1px solid rgba(255,255,255,.11);background:#081423;box-shadow:0 18px 40px rgba(0,0,0,.28); }
.portal-v9 .v9-hero-brand img { width:100%;height:auto; }

.portal-v9 .v9-statbar { grid-column:1/-1;position:relative;z-index:3;margin:0 18px 18px;padding:14px;display:grid;grid-template-columns:minmax(0,1fr) minmax(310px,.58fr);gap:12px;border:1px solid rgba(255,255,255,.09);border-radius:24px;background:#07111e; }
.portal-v9 .v9-statbar-head { display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px; }
.portal-v9 .v9-statbar-head .kicker { min-height:22px;padding:0;color:#8ea1ba;background:none;border:0; }
.portal-v9 .status-pill { color:#92a3ba;background:#0d1a2a;border:1px solid rgba(255,255,255,.08);white-space:nowrap; }
.portal-v9 .premium-stat-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px; }
.portal-v9 .roblox-stat { min-width:0;padding:13px 14px;border-radius:16px;border:1px solid rgba(255,255,255,.075);background:#0c1929; }
.portal-v9 .roblox-stat span,.portal-v9 .roblox-stat small { display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.portal-v9 .roblox-stat span { color:#7e8fa6;font-size:.58rem;font-weight:850;letter-spacing:.09em;text-transform:uppercase; }
.portal-v9 .roblox-stat strong { display:block;margin-top:7px;color:#f8fafc;font-size:1.28rem;line-height:1;font-weight:900; }
.portal-v9 .roblox-stat-live strong { color:#7ce9ae; }
.portal-v9 .roblox-stat small { margin-top:6px;color:#607188;font-size:.58rem; }
.portal-v9 .richest-home-spotlight { margin:0!important;min-height:100%;padding:14px 15px!important;grid-template-columns:42px minmax(0,1fr) auto!important;border-radius:17px!important;background:linear-gradient(125deg,rgba(244,187,85,.12),#0b1929 58%,#0a1524)!important; }
.portal-v9 .richest-home-crown { width:40px!important;height:40px!important;border-radius:13px!important; }
.portal-v9 .richest-home-arrow { display:none!important; }
.portal-v9 .richest-ribbon-name { font-size:.86rem!important; }
.portal-v9 .richest-ribbon-wealth { font-size:.92rem!important; }
.portal-v9 .v9-stat-main { min-width:0; }
.portal-v9 .v9-richest-wrap { min-width:0; }

/* Home editorial content */
.portal-v9 .v9-after-hero { padding-top:28px; }
.portal-v9 .v9-community-strip { display:grid;grid-template-columns:1.1fr .9fr;gap:12px; }
.portal-v9 .social-command-card,.portal-v9 .v9-link-panel { padding:20px;border:1px solid var(--v9-line);border-radius:24px;background:linear-gradient(145deg,#0e1d30,#091523); }
.portal-v9 .premium-card-head { display:flex;align-items:center;justify-content:space-between;gap:16px; }
.portal-v9 .premium-card-head h2 { margin:8px 0 0;font-size:1.25rem;letter-spacing:-.035em; }
.portal-v9 .compact-link-grid { margin-top:15px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px; }
.portal-v9 .compact-link-card { min-width:0;padding:14px;border-radius:15px;border:1px solid rgba(255,255,255,.075);background:#0b1727; }
.portal-v9 .compact-link-card:hover { border-color:var(--v9-line-strong);background:#102039; }
.portal-v9 .compact-link-card span { color:var(--v9-gold);font-size:.6rem;font-weight:850;letter-spacing:.09em;text-transform:uppercase; }
.portal-v9 .compact-link-card strong { display:block;margin-top:8px;font-size:.84rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.portal-v9 .compact-link-card em { display:block;margin-top:5px;color:var(--v9-muted);font-size:.7rem;font-style:normal; }
.portal-v9 .v9-link-panel { display:flex;align-items:center;justify-content:space-between;gap:16px; }
.portal-v9 .v9-link-panel h2 { margin:8px 0 0;font-size:1.25rem; }
.portal-v9 .signal-links { display:flex;gap:8px;flex-wrap:wrap; }
.portal-v9 .signal-links a { min-height:38px;padding:0 13px;border-radius:12px;display:inline-flex;align-items:center;color:#b7c4d5;background:#0b1727;border:1px solid rgba(255,255,255,.08);font-size:.72rem;font-weight:800; }
.portal-v9 .signal-links a:hover { color:#fff;border-color:var(--v9-line-strong); }
.portal-v9 .signal-board-section { padding-top:70px;padding-bottom:80px; }
.portal-v9 .premium-intro { display:flex;align-items:end;justify-content:space-between;margin-bottom:20px; }
.portal-v9 .premium-intro h2 { margin:10px 0 0;font-size:clamp(2rem,3vw,3rem);letter-spacing:-.05em; }
.portal-v9 .signal-board-grid { display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);grid-template-areas:"updates roadmap" "updates codes";gap:14px;align-items:stretch; }
.portal-v9 .signal-board-grid .portal-panel:nth-child(1){grid-area:updates;}
.portal-v9 .signal-board-grid .portal-panel:nth-child(2){grid-area:roadmap;}
.portal-v9 .signal-board-grid .portal-panel:nth-child(3){grid-area:codes;}
.portal-v9 .portal-panel { padding:24px;border-radius:26px;border:1px solid var(--v9-line);background:linear-gradient(145deg,#0e1d30,#081421);box-shadow:none; }
.portal-v9 .portal-panel-head { display:flex;align-items:end;justify-content:space-between;gap:14px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.07); }
.portal-v9 .portal-panel-head h3 { margin:9px 0 0;font-size:1.45rem;letter-spacing:-.04em; }
.portal-v9 .text-link { color:var(--v9-gold-2);font-size:.72rem;font-weight:850;white-space:nowrap; }
.portal-v9 .signal-stack { display:grid;gap:9px;margin-top:14px; }
.portal-v9 .home-post,.portal-v9 .signal-card { padding:15px;border:1px solid rgba(255,255,255,.075);border-radius:16px;background:#0a1726; }
.portal-v9 .home-post:hover,.portal-v9 .signal-card:hover { border-color:rgba(244,187,85,.26);background:#0e1c2e; }
.portal-v9 .home-post strong,.portal-v9 .signal-card strong { display:block;margin-top:10px;color:#f5f7fb;font-size:.92rem;line-height:1.35; }
.portal-v9 .home-post p,.portal-v9 .signal-card p { margin:7px 0 0;color:var(--v9-soft);font-size:.78rem;line-height:1.55; }

/* Shared inner page mastheads */
.portal-v9 .content-page { padding-top:28px;padding-bottom:80px; }
.portal-v9 .surface-card { border:1px solid var(--v9-line);background:linear-gradient(145deg,#0e1b2d,#081421);box-shadow:none; }
.portal-v9 .surface-card::before { display:none!important; }
.portal-v9 .page-hero,.portal-v9 .rules-hero { min-height:0;padding:30px;border-radius:28px;position:relative;overflow:hidden;background:linear-gradient(125deg,#12243d,#0a1727 63%,#08131f); }
.portal-v9 .page-hero::after,.portal-v9 .rules-hero::after { content:"";position:absolute;width:300px;height:300px;right:-100px;top:-170px;border:70px solid rgba(244,187,85,.055);border-radius:50%; }
.portal-v9 .page-hero-split { display:grid;grid-template-columns:minmax(0,.75fr) minmax(420px,1.25fr);gap:36px;align-items:end; }
.portal-v9 .page-hero h1,.portal-v9 .rules-hero h1 { max-width:20ch;margin:10px 0 8px;color:#fff;font-size:clamp(2.1rem,3.2vw,3.35rem);line-height:1;letter-spacing:-.055em; }
.portal-v9 .page-hero p,.portal-v9 .rules-hero-copy>p { max-width:58ch;margin:0;color:var(--v9-soft);font-size:.88rem;line-height:1.62; }
.portal-v9 .page-hero-tools { position:relative;z-index:2;display:grid;gap:11px; }
.portal-v9 .search-field,.portal-v9 .field,.portal-v9 .studio-field { display:grid;gap:7px; }
.portal-v9 .search-field>span,.portal-v9 .field>span { color:#93a2b7;font-size:.65rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase; }
.portal-v9 input,.portal-v9 textarea,.portal-v9 select { width:100%;border:1px solid rgba(255,255,255,.1);border-radius:13px;color:#f4f7fb;background:#081421;outline:none; }
.portal-v9 input,.portal-v9 select { min-height:46px;padding:0 14px; }
.portal-v9 textarea { padding:14px;resize:vertical; }
.portal-v9 input:focus,.portal-v9 textarea:focus,.portal-v9 select:focus { border-color:rgba(244,187,85,.55);box-shadow:0 0 0 3px rgba(244,187,85,.08); }
.portal-v9 .filter-row { min-width:0;display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none; }
.portal-v9 .filter-row::-webkit-scrollbar { display:none; }
.portal-v9 .filter-button { flex:0 0 auto;min-height:36px;padding:0 12px;border:1px solid rgba(255,255,255,.085);border-radius:11px;color:#9aabc0;background:#0b1726;font-size:.7rem;font-weight:800;cursor:pointer; }
.portal-v9 .filter-button:hover { color:#fff;border-color:rgba(255,255,255,.16); }
.portal-v9 .filter-button.is-active { color:#1a1204;border-color:transparent;background:var(--v9-gold-2); }

.portal-v9 .content-grid-with-rail { margin-top:14px;display:grid;grid-template-columns:260px minmax(0,1fr);gap:14px;align-items:start; }
.portal-v9 .content-rail { position:sticky;top:118px;display:grid;gap:12px; }
.portal-v9 .stat-rail-card,.portal-v9 .rail-cta-card { padding:20px;border-radius:22px; }
.portal-v9 .stat-rail-card h2,.portal-v9 .rail-cta-card h2 { margin:9px 0 0;font-size:1.15rem;letter-spacing:-.035em; }
.portal-v9 .rail-cta-card p { color:var(--v9-soft);font-size:.78rem; }
.portal-v9 .rail-metrics { margin-top:14px;display:grid;gap:7px; }
.portal-v9 .rail-metrics article { padding:11px 12px;border-radius:13px;border:1px solid rgba(255,255,255,.07);background:#0a1726;display:flex;align-items:center;justify-content:space-between;gap:10px; }
.portal-v9 .rail-metrics span { color:var(--v9-muted);font-size:.68rem;font-weight:750; }
.portal-v9 .rail-metrics strong { font-size:1.05rem; }
.portal-v9 .full-width { width:100%; }
.portal-v9 .button-subtle { min-height:42px;padding:0 14px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:.73rem;font-weight:850; }
.portal-v9 .content-feed { min-width:0; }
.portal-v9 .feed-heading { display:flex;align-items:end;justify-content:space-between;gap:14px;margin:10px 0 13px; }
.portal-v9 .feed-heading h2 { margin:8px 0 0;font-size:1.55rem;letter-spacing:-.04em; }
.portal-v9 .updates-list,.portal-v9 .pinned-grid,.portal-v9 .roadmap-grid,.portal-v9 .promo-codes-grid,.portal-v9 .known-issues-list { display:grid;gap:10px; }
.portal-v9 .updates-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
.portal-v9 .update-card,.portal-v9 .pinned-card,.portal-v9 .roadmap-card,.portal-v9 .promo-code-card,.portal-v9 .known-issue-card { border:1px solid var(--v9-line)!important;border-radius:20px!important;background:linear-gradient(145deg,#0d1b2e,#081421)!important;box-shadow:none!important; }
.portal-v9 .update-card:hover,.portal-v9 .pinned-card:hover,.portal-v9 .roadmap-card:hover,.portal-v9 .promo-code-card:hover,.portal-v9 .known-issue-card:hover { transform:translateY(-2px)!important;border-color:rgba(244,187,85,.27)!important; }

/* Shop */
.portal-v9 .shop-items-grid,.portal-v9 .shop-featured-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px; }
.portal-v9 .shop-item-card,.portal-v9 .featured-shop-card { min-width:0;overflow:hidden;display:flex;flex-direction:column;border:1px solid var(--v9-line)!important;border-radius:22px!important;background:#0a1726!important;box-shadow:none!important; }
.portal-v9 .shop-item-card:hover,.portal-v9 .featured-shop-card:hover { transform:translateY(-2px)!important;border-color:rgba(244,187,85,.3)!important; }
.portal-v9 .shop-item-image { aspect-ratio:16/9;max-height:170px;background:linear-gradient(145deg,#163253,#0c1b2e);overflow:hidden; }
.portal-v9 .shop-item-image img { width:100%;height:100%;object-fit:cover; }
.portal-v9 .shop-item-body { min-width:0;flex:1;padding:16px;display:flex;flex-direction:column; }
.portal-v9 .shop-item-tags { min-width:0;max-width:100%;display:flex;align-items:center;gap:5px;overflow:hidden; }
.portal-v9 .shop-item-tags>* { flex:0 1 auto;max-width:31%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.portal-v9 .shop-item-tags>.shop-tags-more { flex:0 0 auto;max-width:none; }
.portal-v9 .shop-item-body h3 { margin:11px 0 5px;font-size:1rem;line-height:1.3;letter-spacing:-.025em;overflow-wrap:anywhere; }
.portal-v9 .shop-subtitle,.portal-v9 .shop-item-body>p { display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;color:var(--v9-soft);font-size:.75rem;line-height:1.5; }
.portal-v9 .shop-subtitle { -webkit-line-clamp:1; }
.portal-v9 .shop-item-body>p { margin:8px 0 0;-webkit-line-clamp:2;min-height:2.25rem; }
.portal-v9 .shop-item-meta-row { margin-top:auto;padding-top:14px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px; }
.portal-v9 .shop-price { color:var(--v9-gold-2);font-size:1.08rem;font-weight:900; }
.portal-v9 .shop-buy-button { min-height:40px;padding:0 13px;border-radius:12px;white-space:nowrap; }

/* Codes / roadmaps / leaderboards / reports */
.portal-v9 .codes-layout { margin-top:14px;display:grid;grid-template-columns:1.15fr .85fr;gap:14px;align-items:start; }
.portal-v9 .codes-panel { padding:22px;border-radius:24px; }
.portal-v9 .hero-mini-metrics { display:flex;gap:8px;flex-wrap:wrap; }
.portal-v9 .hero-mini-metrics article { min-width:120px;padding:12px 14px;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:#0b1828; }
.portal-v9 .hero-mini-metrics span { display:block;color:var(--v9-muted);font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em; }
.portal-v9 .hero-mini-metrics strong { display:block;margin-top:6px;font-size:1.25rem; }
.portal-v9 .roadmap-metrics-card { margin-top:12px;padding:12px;border-radius:20px; }
.portal-v9 .roadmap-metrics { display:grid;grid-template-columns:repeat(3,minmax(0,1fr)); }
.portal-v9 .roadmap-grid { margin-top:14px;grid-template-columns:repeat(3,minmax(0,1fr)); }
.portal-v9 .leaderboard-hub-layout { margin-top:14px;display:grid;grid-template-columns:240px minmax(0,1fr) 260px;gap:14px;align-items:start; }
.portal-v9 .leaderboard-selector-card,.portal-v9 .leaderboard-board-card,.portal-v9 .leaderboard-stats-card { padding:20px;border-radius:24px; }
.portal-v9 .leaderboard-selector-card,.portal-v9 .leaderboard-stats-card { position:sticky;top:118px; }
.portal-v9 .leaderboard-board-head { display:flex;align-items:start;justify-content:space-between;gap:14px;padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.07); }
.portal-v9 .leaderboard-board-head h2 { margin:8px 0 5px;font-size:1.45rem;letter-spacing:-.04em; }
.portal-v9 .leaderboard-board-head p { margin:0;color:var(--v9-muted);font-size:.74rem; }
.portal-v9 .leaderboard-top-list { margin-top:12px;display:grid;gap:7px; }
.portal-v9 .leaderboard-row { border:1px solid rgba(255,255,255,.07)!important;border-radius:15px!important;background:#0a1726!important;box-shadow:none!important; }
.portal-v9 .leaderboard-stat-grid { margin-top:13px;display:grid;gap:7px; }
.portal-v9 .leaderboard-stat-grid article { padding:12px;border:1px solid rgba(255,255,255,.075);border-radius:13px;background:#0a1726; }
.portal-v9 .leaderboard-stat-grid span { display:block;color:var(--v9-muted);font-size:.62rem;font-weight:800;text-transform:uppercase; }
.portal-v9 .leaderboard-stat-grid strong { display:block;margin-top:7px;font-size:1.15rem; }
.portal-v9 .helper-copy { color:var(--v9-muted);font-size:.7rem;line-height:1.5; }
.portal-v9 .reports-layout { margin-top:14px;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:14px;align-items:start; }
.portal-v9 .report-form-card,.portal-v9 .known-issues-card { padding:22px;border-radius:24px; }
.portal-v9 .known-issues-card { position:sticky;top:118px; }
.portal-v9 .form-grid { display:grid;gap:10px; }
.portal-v9 .form-grid.two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.portal-v9 .form-grid.three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.portal-v9 .report-form { display:grid;gap:13px; }
.portal-v9 .button-large { min-height:48px;padding:0 18px;border-radius:14px;font-size:.8rem;font-weight:900; }

/* Rules */
.portal-v9 .rules-hero { padding:34px; }
.portal-v9 .rules-alert { max-width:820px;margin-top:20px;padding:15px 16px;border:1px solid rgba(255,141,145,.22);border-radius:16px;background:rgba(255,104,112,.06);display:flex;gap:12px; }
.portal-v9 .rules-alert-icon { width:32px;height:32px;flex:0 0 auto;display:grid;place-items:center;border-radius:10px;color:#25080b;background:#ff8c93;font-weight:900; }
.portal-v9 .rules-alert strong { font-size:.82rem; }
.portal-v9 .rules-alert p { margin:4px 0 0;color:#d9b9bd;font-size:.75rem;line-height:1.5; }
.portal-v9 .rules-layout { margin-top:14px;display:grid;grid-template-columns:260px minmax(0,1fr);gap:14px;align-items:start; }
.portal-v9 .rules-toc-card { position:sticky;top:118px;padding:20px;border-radius:22px; }
.portal-v9 .rules-toc-card h2 { margin:9px 0 5px;font-size:1.2rem; }
.portal-v9 .rules-toc-card>p { color:var(--v9-muted);font-size:.72rem; }
.portal-v9 .rules-toc-list { margin-top:13px;display:grid;gap:6px; }
.portal-v9 .rules-toc-link { min-height:48px;padding:8px 10px;border:1px solid transparent;border-radius:13px;display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:8px;color:#afbbcb; }
.portal-v9 .rules-toc-link:hover { color:#fff;background:#0d1b2d;border-color:rgba(244,187,85,.22); }
.portal-v9 .rules-list { display:grid;gap:10px; }
.portal-v9 .rule-card { display:grid;grid-template-columns:78px minmax(0,1fr);overflow:hidden;border-radius:22px!important; }
.portal-v9 .rule-number-rail { padding:24px 12px;display:flex;flex-direction:column;align-items:center;gap:7px;border-right:1px solid rgba(255,255,255,.07);background:#0d1a2a; }
.portal-v9 .rule-number-rail span { color:var(--v9-muted);font-size:.55rem;font-weight:850;text-transform:uppercase;letter-spacing:.1em; }
.portal-v9 .rule-number-rail strong { color:var(--v9-gold-2);font-size:1.6rem; }
.portal-v9 .rule-card-content { padding:24px; }
.portal-v9 .rule-heading-row { display:flex;align-items:center;gap:13px; }
.portal-v9 .rule-icon { width:46px;height:46px;flex:0 0 auto;display:grid;place-items:center;border:1px solid rgba(244,187,85,.2);border-radius:14px;color:var(--v9-gold);background:rgba(244,187,85,.07); }
.portal-v9 .rule-icon svg { width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8; }
.portal-v9 .rule-heading-row h2 { margin:6px 0 0;font-size:1.35rem;letter-spacing:-.04em; }
.portal-v9 .rule-intro { margin:16px 0 0;color:var(--v9-soft);font-size:.82rem;line-height:1.6; }
.portal-v9 .rule-points { list-style:none;margin:16px 0 0;padding:0;display:grid;gap:7px; }
.portal-v9 .rule-points li { padding:11px 12px;border:1px solid rgba(255,255,255,.07);border-radius:13px;background:#0a1726;display:grid;grid-template-columns:24px minmax(0,1fr);gap:9px; }
.portal-v9 .rule-points li>span { width:24px;height:24px;display:grid;place-items:center;border-radius:8px;color:#082014;background:#75df9f;font-size:.7rem;font-weight:900; }
.portal-v9 .rule-points p { margin:2px 0 0;color:var(--v9-soft);font-size:.77rem;line-height:1.5; }
.portal-v9 .rule-callout,.portal-v9 .rule-card blockquote { margin:14px 0 0;padding:13px 14px;border-radius:14px; }
.portal-v9 .rules-report-cta { margin-top:14px;padding:24px;border-radius:24px;display:flex;align-items:center;justify-content:space-between;gap:20px; }
.portal-v9 .rules-report-cta h2 { margin:8px 0 5px;font-size:1.45rem; }
.portal-v9 .rules-report-cta p { margin:0;color:var(--v9-soft);font-size:.8rem; }

/* Footer */
.portal-v9 .portal-footer { padding:38px 0 110px;border-top:1px solid rgba(255,255,255,.065);background:#03070d; }
.portal-v9 .portal-footer-grid { display:grid;grid-template-columns:1.4fr .8fr .8fr;gap:40px; }
.portal-v9 .portal-footer-brand p { color:#6f7f95;font-size:.7rem; }
.portal-v9 .portal-footer nav { display:grid;align-content:start;gap:8px; }
.portal-v9 .portal-footer nav strong { color:#f1f5fa;font-size:.72rem; }
.portal-v9 .portal-footer nav a { color:#8292a8;font-size:.72rem; }
.portal-v9 .portal-footer nav a:hover { color:var(--v9-gold-2); }

/* Drawer and mobile dock */
.portal-v9 .portal-mobile-dock { display:none; }
.portal-v9 .portal-drawer-backdrop { position:fixed;inset:0;z-index:80;border:0;background:rgba(1,4,9,.78);opacity:0;pointer-events:none;transition:opacity .2s ease; }
.portal-v9 .portal-drawer-backdrop.is-open { opacity:1;pointer-events:auto; }
.portal-v9 .portal-mobile-drawer { position:fixed;z-index:90;top:0;right:0;bottom:0;width:min(370px,92vw);padding:18px;display:flex;flex-direction:column;overflow-y:auto;background:#07111e;border-left:1px solid var(--v9-line);transform:translateX(105%);transition:transform .22s ease; }
.portal-v9 .portal-mobile-drawer.is-open { transform:translateX(0); }
.portal-v9 .portal-drawer-head { display:flex;align-items:center;justify-content:space-between; }
.portal-v9 .portal-drawer-brand { display:flex;align-items:center;gap:10px; }
.portal-v9 .portal-drawer-brand img { width:38px;height:38px;padding:7px;border-radius:12px;background:#102038; }
.portal-v9 .portal-drawer-close { width:40px;height:40px;border:1px solid rgba(255,255,255,.1);border-radius:12px;display:grid;place-items:center;color:#fff;background:#0d1a2a; }
.portal-v9 .portal-drawer-close svg { width:20px;height:20px;stroke:currentColor;fill:none; }
.portal-v9 .portal-drawer-links { margin-top:18px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px; }
.portal-v9 .portal-drawer-links a { min-height:78px;padding:13px;border:1px solid rgba(255,255,255,.08);border-radius:16px;display:grid;align-content:center;gap:8px;color:#aebacd;background:#0a1726; }
.portal-v9 .portal-drawer-links a.is-active { color:#fff;border-color:var(--v9-line-strong);background:#12233a; }
.portal-v9 .portal-drawer-links svg { width:20px;height:20px;fill:none;stroke:var(--v9-gold);stroke-width:1.8; }
.portal-v9 .portal-drawer-links strong { font-size:.77rem; }
.portal-v9 .portal-drawer-community { margin-top:16px;padding-top:16px;border-top:1px solid rgba(255,255,255,.07);display:grid;gap:8px; }
.portal-v9 .portal-drawer-community span { color:#77879d;font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.09em; }
.portal-v9 .portal-drawer-community a { color:#b2bfd0;font-size:.75rem; }
.portal-v9 .portal-drawer-play { min-height:48px;margin-top:auto;border-radius:14px;display:flex;align-items:center;justify-content:center;gap:8px;color:#1a1204;background:var(--v9-gold-2);font-size:.8rem;font-weight:900; }
.portal-v9 .portal-drawer-play svg { width:17px;height:17px;fill:currentColor; }

/* Performance: no expensive filters or constant animations */
.portal-v9 *, .portal-v9 *::before, .portal-v9 *::after { -webkit-backdrop-filter:none!important;backdrop-filter:none!important; }
.portal-v9 .v5-reveal,.portal-v9 .v5-reveal.is-visible { opacity:1!important;transform:none!important;transition:none!important; }
.portal-v9 .ambient-aura,.portal-v9 .visual-orbit,.portal-v9 .floating-chip { animation:none!important; }
.portal-v9 .signal-board-section,.portal-v9 .content-grid-with-rail,.portal-v9 .rules-layout,.portal-v9 .portal-footer { content-visibility:auto;contain-intrinsic-size:650px; }

@media (max-width: 1120px) {
  .portal-v9 .hero-command-card.v9-hero { grid-template-columns:minmax(0,.92fr) minmax(400px,1.08fr); }
  .portal-v9 .hero-command-card h1 { font-size:clamp(2.7rem,5vw,4rem); }
  .portal-v9 .v9-statbar { grid-template-columns:1fr; }
  .portal-v9 .leaderboard-hub-layout { grid-template-columns:220px minmax(0,1fr); }
  .portal-v9 .leaderboard-stats-card { grid-column:1/-1;position:relative;top:auto; }
  .portal-v9 .leaderboard-stat-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}

@media (max-width: 940px) {
  .portal-v9 .shell { width:min(100% - 28px,var(--shell)); }
  .portal-v9 .portal-header-inner { min-height:66px;grid-template-columns:auto 1fr auto;gap:12px; }
  .portal-v9 .portal-primary-nav,.portal-v9 .portal-more-button,.portal-v9 .portal-play-button { display:none; }
  .portal-v9 .portal-mobile-menu-button { display:grid;justify-self:end; }
  .portal-v9 .hero-command-card.v9-hero { min-height:0;grid-template-columns:1fr;grid-template-rows:auto auto auto; }
  .portal-v9 .hero-copy-wrap { padding:46px 34px 20px; }
  .portal-v9 .hero-visual-stage { min-height:400px;padding:0 24px 32px; }
  .portal-v9 .hero-visual-stage>img { width:min(100%,680px);transform:none; }
  .portal-v9 .v9-statbar { grid-column:1;grid-row:3;margin:0 14px 14px; }
  .portal-v9 .page-hero-split { grid-template-columns:1fr;gap:24px; }
  .portal-v9 .content-grid-with-rail,.portal-v9 .rules-layout { grid-template-columns:1fr; }
  .portal-v9 .content-rail,.portal-v9 .rules-toc-card,.portal-v9 .known-issues-card { position:relative;top:auto; }
  .portal-v9 .content-rail { grid-template-columns:1fr 1fr; }
  .portal-v9 .shop-items-grid,.portal-v9 .shop-featured-grid,.portal-v9 .roadmap-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .portal-v9 .updates-list { grid-template-columns:1fr; }
  .portal-v9 .reports-layout { grid-template-columns:1fr; }
  .portal-v9 .signal-board-grid { grid-template-columns:1fr 1fr;grid-template-areas:"updates updates" "roadmap codes"; }
  .portal-v9 .v9-community-strip { grid-template-columns:1fr; }
  .portal-v9 .leaderboard-hub-layout { grid-template-columns:1fr; }
  .portal-v9 .leaderboard-selector-card,.portal-v9 .leaderboard-stats-card { position:relative;top:auto; }
  .portal-v9 .leaderboard-selector-groups { display:flex;overflow-x:auto;gap:7px; }
  .portal-v9 .portal-footer-grid { grid-template-columns:1fr 1fr; }
  .portal-v9 .portal-footer-brand { grid-column:1/-1; }
}

@media (max-width: 720px) {
  .portal-v9 { padding-bottom:84px; }
  .portal-v9::before { background-size:56px 56px;opacity:.08; }
  .portal-v9 .site-language-inner { justify-content:center; }
  .portal-v9 .site-language-inner>span { display:none; }
  .portal-v9 .portal-brand em { display:none; }
  .portal-v9 .portal-brand-mark { width:38px;height:38px;border-radius:12px; }
  .portal-v9.page-home main { padding-top:14px; }
  .portal-v9 .hero-command-card.v9-hero { border-radius:27px; }
  .portal-v9 .hero-copy-wrap { grid-row:1!important; order:0!important; padding:34px 22px 16px; }
  .portal-v9 .hero-visual-stage { grid-row:2!important; order:0!important; }
  .portal-v9 .v9-statbar { grid-row:3!important; order:0!important; }
  .portal-v9 .hero-command-card h1 { max-width:14ch;margin:16px 0 13px;font-size:clamp(1.95rem,9vw,2.35rem);line-height:.98; }
  .portal-v9 .hero-description { font-size:.88rem; }
  .portal-v9 .hero-actions { width:100%;margin-top:22px;display:grid;grid-template-columns:1fr; }
  .portal-v9 .button-xl { width:100%;justify-content:center; }
  .portal-v9 .hero-trust-grid { display:none; }
  .portal-v9 .hero-visual-stage { min-height:210px;padding:0 10px 8px; }
  .portal-v9 .hero-visual-stage>img { width:100%!important;max-width:340px!important; }
  .portal-v9 .v9-hero-brand { display:none; }
  .portal-v9 .v9-statbar { padding:10px;border-radius:20px; }
  .portal-v9 .premium-stat-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .portal-v9 .roblox-stat { padding:11px;border-radius:13px; }
  .portal-v9 .v9-richest-wrap { min-width:0; }
  .portal-v9 .richest-home-spotlight { grid-template-columns:36px minmax(0,1fr) auto!important; }
  .portal-v9 .v9-after-hero { padding-top:14px; }
  .portal-v9 .v9-link-panel { align-items:flex-start;flex-direction:column; }
  .portal-v9 .signal-board-section { padding-top:48px;padding-bottom:48px; }
  .portal-v9 .signal-board-grid { grid-template-columns:1fr;grid-template-areas:"updates" "roadmap" "codes"; }
  .portal-v9 .portal-panel { padding:18px;border-radius:21px; }
  .portal-v9 .page-hero,.portal-v9 .rules-hero { padding:22px;border-radius:22px; }
  .portal-v9 .page-hero h1,.portal-v9 .rules-hero h1 { font-size:clamp(1.85rem,9vw,2.55rem); }
  .portal-v9 .content-page { padding-top:14px;padding-bottom:46px; }
  .portal-v9 .content-rail { grid-template-columns:1fr; }
  .portal-v9 .shop-items-grid,.portal-v9 .shop-featured-grid,.portal-v9 .roadmap-grid,.portal-v9 .codes-layout { grid-template-columns:1fr; }
  .portal-v9 .shop-item-image { max-height:none; }
  .portal-v9 .roadmap-metrics { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .portal-v9 .roadmap-metrics article { min-width:0;padding:10px; }
  .portal-v9 .roadmap-metrics span { font-size:.53rem; }
  .portal-v9 .roadmap-metrics strong { font-size:1rem; }
  .portal-v9 .form-grid.two,.portal-v9 .form-grid.three { grid-template-columns:1fr; }
  .portal-v9 .rules-layout { gap:10px; }
  .portal-v9 .rules-toc-list { display:flex;overflow-x:auto;gap:6px; }
  .portal-v9 .rules-toc-link { flex:0 0 210px; }
  .portal-v9 .rule-card { grid-template-columns:1fr; }
  .portal-v9 .rule-number-rail { padding:10px 16px;flex-direction:row;border-right:0;border-bottom:1px solid rgba(255,255,255,.07); }
  .portal-v9 .rule-card-content { padding:18px; }
  .portal-v9 .rule-heading-row h2 { font-size:1.15rem; }
  .portal-v9 .rules-report-cta { align-items:stretch;flex-direction:column; }
  .portal-v9 .portal-footer { padding-bottom:110px; }
  .portal-v9 .portal-footer-grid { grid-template-columns:1fr;gap:24px; }
  .portal-v9 .portal-footer-brand { grid-column:auto; }
  .portal-v9 .portal-mobile-dock { position:fixed!important;z-index:65!important;left:10px!important;right:10px!important;bottom:10px!important;width:auto!important;min-height:66px!important;padding:6px!important;display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:4px!important;border:1px solid rgba(255,255,255,.1)!important;border-radius:21px!important;background:#091421!important;box-shadow:0 18px 50px rgba(0,0,0,.48)!important;transform:none!important; }
  .portal-v9 .portal-dock-item { min-width:0!important;min-height:52px!important;padding:5px 2px!important;border:0!important;border-radius:15px!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:4px!important;color:#8999ae!important;background:transparent!important;font-size:.58rem!important;font-weight:800!important;cursor:pointer!important; }
  .portal-v9 .portal-dock-item svg { width:19px!important;height:19px!important;fill:none!important;stroke:currentColor!important;stroke-width:1.9!important; }
  .portal-v9 .portal-dock-item.is-active { color:var(--v9-gold-2)!important;background:#122039!important; }
  .portal-v9 .portal-dock-play { color:#1a1204!important;background:linear-gradient(180deg,#ffda8a,#ecb143)!important;box-shadow:0 8px 20px rgba(234,171,58,.2)!important; }
  .portal-v9 .portal-dock-menu { color:#d4dce8!important;background:#0e1b2b!important;border:1px solid rgba(255,255,255,.075)!important; }
}

@media (max-width: 380px) {
  .portal-v9 .shell { width:calc(100% - 20px); }
  .portal-v9 .hero-copy-wrap { padding:28px 17px 12px; }
  .portal-v9 .hero-command-card h1 { font-size:1.95rem; }
  .portal-v9 .hero-overline-row { gap:6px; }
  .portal-v9 .micro-pill { display:none; }
  .portal-v9 .v9-statbar { margin:0 8px 8px; }
  .portal-v9 .richest-home-spotlight { grid-template-columns:34px minmax(0,1fr)!important; }
  .portal-v9 .richest-home-wealth { grid-column:2;justify-items:start!important;text-align:left!important; }
  .portal-v9 .compact-link-grid { grid-template-columns:1fr; }
  .portal-v9 .portal-panel-head { align-items:start;flex-direction:column; }
  .portal-v9 .portal-dock-item { font-size:.54rem!important; }
}

.portal-v9 .portal-more-menu{animation:none!important;}

/* Final stability and mobile density pass */
.portal-v9 *,
.portal-v9 *::before,
.portal-v9 *::after {
  animation: none !important;
}

.portal-v9 .filter-row {
  flex-wrap: nowrap !important;
}

@media (max-width: 940px) {
  .portal-v9 .portal-header-actions {
    grid-column: 3;
    justify-self: end;
    width: auto;
  }
}

@media (max-width: 720px) {
  .portal-v9 .shop-sidebar .stat-rail-card {
    padding: 16px;
  }

  .portal-v9 .shop-sidebar .rail-metrics {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
  }

  .portal-v9 .shop-sidebar .rail-metrics article {
    min-width: 0;
    min-height: 72px;
    padding: 10px 6px;
    display: grid;
    align-content: center;
    justify-items: center;
    gap: 7px;
    text-align: center;
  }

  .portal-v9 .shop-sidebar .rail-metrics span {
    font-size: .52rem;
    line-height: 1.25;
  }

  .portal-v9 .shop-sidebar .rail-metrics strong {
    font-size: 1rem;
  }

  .portal-v9 .shop-sidebar .rail-cta-card {
    padding: 16px;
  }
}

/* Richest-player spotlight — self-contained v9 styling */
.portal-v9 .richest-home-spotlight {
  display: grid !important;
  align-items: center !important;
  gap: 11px !important;
  overflow: hidden !important;
  border: 1px solid rgba(244, 187, 85, .18) !important;
  color: var(--v9-text) !important;
}
.portal-v9 .richest-home-crown {
  flex: 0 0 auto !important;
  display: grid !important;
  place-items: center !important;
  color: #1d1404 !important;
  background: linear-gradient(180deg, #ffdc91, #eeb34b) !important;
  box-shadow: none !important;
}
.portal-v9 .richest-home-crown svg {
  width: 21px !important;
  height: 21px !important;
  display: block !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 1.8 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}
.portal-v9 .richest-home-identity,
.portal-v9 .richest-home-wealth {
  min-width: 0 !important;
  display: grid !important;
  gap: 4px !important;
}
.portal-v9 .richest-ribbon-label,
.portal-v9 .richest-ribbon-copy {
  color: #7f90a7 !important;
  font-size: .55rem !important;
  line-height: 1.2 !important;
  font-weight: 850 !important;
  letter-spacing: .09em !important;
  text-transform: uppercase !important;
}
.portal-v9 .richest-ribbon-name {
  min-width: 0 !important;
  overflow: hidden !important;
  color: #fff !important;
  font-weight: 850 !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}
.portal-v9 .richest-home-wealth {
  justify-items: end !important;
  text-align: right !important;
}
.portal-v9 .richest-ribbon-wealth {
  color: var(--v9-gold-2) !important;
  line-height: 1.1 !important;
  white-space: nowrap !important;
}


/* --------------------------------------------------------------------------
   Public-ready v10: compact hero, real game banner and complete mobile audit
   -------------------------------------------------------------------------- */

/* The opening card is intentionally narrower than the editorial sections. */
.portal-v9 .v9-hero-shell {
  width: min(1180px, calc(100% - 48px));
}

.portal-v9 .hero-command-card.v9-hero {
  min-height: 0;
  grid-template-columns: minmax(360px, .78fr) minmax(0, 1.22fr);
  grid-template-rows: auto auto;
  border-radius: 32px;
}

.portal-v9 .hero-copy-wrap {
  min-width: 0;
  padding: 50px 26px 40px 50px;
}

.portal-v9 .hero-command-card h1 {
  max-width: 14ch;
  margin: 17px 0 14px;
  font-size: clamp(2.25rem, 3.25vw, 3.35rem);
  line-height: .99;
  letter-spacing: -.057em;
}

.portal-v9 .hero-description {
  max-width: 40ch;
  font-size: .94rem;
  line-height: 1.58;
}

.portal-v9 .hero-actions {
  margin-top: 23px;
}

.portal-v9 .hero-trust-grid {
  margin-top: 19px;
}

.portal-v9 .hero-visual-stage {
  min-width: 0;
  padding: 28px 28px 28px 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
}

.portal-v9 .hero-banner-link {
  position: relative;
  width: 100%;
  min-width: 0;
  display: block;
  overflow: hidden;
  border: 1px solid rgba(171, 200, 238, .2);
  border-radius: 22px;
  background: #060d17;
  box-shadow: 0 25px 56px rgba(0, 0, 0, .34);
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.portal-v9 .hero-banner-link::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg, transparent 62%, rgba(2, 6, 12, .48));
}

.portal-v9 .hero-banner-link:hover,
.portal-v9 .hero-banner-link:focus-visible {
  transform: translateY(-2px);
  border-color: rgba(255, 216, 139, .48);
  box-shadow: 0 29px 64px rgba(0, 0, 0, .42);
}

.portal-v9 .hero-banner-link:focus-visible {
  outline: 3px solid rgba(255, 216, 139, .38);
  outline-offset: 3px;
}

.portal-v9 .hero-banner-link picture,
.portal-v9 .hero-banner-link img {
  width: 100%;
  height: auto;
  display: block;
}

.portal-v9 .hero-banner-link img {
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.portal-v9 .hero-banner-hint {
  position: absolute;
  z-index: 2;
  left: 16px;
  bottom: 14px;
  min-height: 34px;
  padding: 0 12px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 11px;
  color: #f6f8fc;
  background: rgba(3, 9, 17, .76);
  font-size: .68rem;
  font-weight: 850;
  letter-spacing: .01em;
}

.portal-v9 .v9-statbar {
  margin: 0 14px 14px;
  padding: 12px;
  border-radius: 20px;
}

/* Desktop shop cards are kept deliberate and not oversized. */
.portal-v9 .shop-items-grid,
.portal-v9 .shop-featured-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.portal-v9 .shop-item-card,
.portal-v9 .featured-shop-card {
  border-radius: 18px !important;
}

.portal-v9 .shop-item-image {
  max-height: 148px;
}

.portal-v9 .shop-item-body {
  padding: 14px;
}

.portal-v9 .shop-item-body h3 {
  margin: 9px 0 4px;
  font-size: .94rem;
}

.portal-v9 .shop-item-meta-row {
  padding-top: 11px;
}

/* Tablet: the banner stays prominent without creating a giant opening card. */
@media (max-width: 1120px) {
  .portal-v9 .hero-command-card.v9-hero {
    grid-template-columns: minmax(330px, .85fr) minmax(0, 1.15fr);
  }

  .portal-v9 .hero-copy-wrap {
    padding: 44px 20px 36px 42px;
  }

  .portal-v9 .hero-command-card h1 {
    font-size: clamp(2.15rem, 4vw, 3rem);
  }
}

@media (max-width: 940px) {
  .portal-v9 .v9-hero-shell {
    width: min(100% - 28px, 760px);
  }

  .portal-v9 .hero-command-card.v9-hero {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto;
  }

  .portal-v9 .hero-copy-wrap {
    padding: 38px 34px 22px;
  }

  .portal-v9 .hero-visual-stage {
    min-height: 0;
    padding: 0 24px 24px;
  }

  .portal-v9 .hero-banner-link {
    max-width: 690px;
  }

  .portal-v9 .v9-statbar {
    margin: 0 12px 12px;
  }
}

/* Complete phone density pass: cards stay readable, but never feel like tablets. */
@media (max-width: 720px) {
  .portal-v9 .shell,
  .portal-v9 .v9-hero-shell {
    width: calc(100% - 20px);
  }

  .portal-v9 .hero-command-card.v9-hero {
    border-radius: 22px;
  }

  .portal-v9 .hero-copy-wrap {
    padding: 25px 17px 15px;
  }

  .portal-v9 .hero-command-card h1 {
    max-width: 16ch;
    margin: 13px 0 10px;
    font-size: clamp(1.72rem, 8vw, 2.08rem);
    line-height: 1.01;
    letter-spacing: -.049em;
  }

  .portal-v9 .hero-description {
    font-size: .8rem;
    line-height: 1.5;
  }

  .portal-v9 .hero-actions {
    margin-top: 17px;
    gap: 7px;
  }

  .portal-v9 .button-xl {
    min-height: 45px;
    padding: 0 15px;
    border-radius: 12px;
    font-size: .74rem;
  }

  .portal-v9 .hero-visual-stage {
    min-height: 0;
    padding: 0 10px 10px;
  }

  .portal-v9 .hero-banner-link {
    max-width: none;
    border-radius: 15px;
    box-shadow: 0 16px 34px rgba(0, 0, 0, .31);
  }

  .portal-v9 .hero-banner-hint {
    left: 9px;
    bottom: 8px;
    min-height: 29px;
    padding: 0 9px;
    border-radius: 9px;
    font-size: .59rem;
  }

  .portal-v9 .v9-statbar {
    margin: 0 7px 7px;
    padding: 8px;
    gap: 8px;
    border-radius: 16px;
  }

  .portal-v9 .v9-statbar-head {
    margin-bottom: 7px;
  }

  .portal-v9 .premium-stat-grid {
    gap: 5px;
  }

  .portal-v9 .roblox-stat {
    min-height: 67px;
    padding: 9px;
    border-radius: 11px;
  }

  .portal-v9 .roblox-stat span {
    font-size: .5rem;
  }

  .portal-v9 .roblox-stat strong {
    margin-top: 5px;
    font-size: 1.08rem;
  }

  .portal-v9 .roblox-stat small {
    margin-top: 4px;
    font-size: .5rem;
  }

  .portal-v9 .richest-home-spotlight {
    min-height: 68px !important;
    padding: 10px !important;
    gap: 8px !important;
    border-radius: 13px !important;
  }

  .portal-v9 .social-command-card,
  .portal-v9 .v9-link-panel,
  .portal-v9 .portal-panel,
  .portal-v9 .page-hero,
  .portal-v9 .rules-hero,
  .portal-v9 .stat-rail-card,
  .portal-v9 .rail-cta-card,
  .portal-v9 .codes-panel,
  .portal-v9 .roadmap-metrics-card,
  .portal-v9 .leaderboard-selector-card,
  .portal-v9 .leaderboard-board-card,
  .portal-v9 .leaderboard-stats-card,
  .portal-v9 .report-form-card,
  .portal-v9 .known-issues-card,
  .portal-v9 .rules-toc-card,
  .portal-v9 .rules-report-cta {
    border-radius: 17px;
  }

  .portal-v9 .social-command-card,
  .portal-v9 .v9-link-panel,
  .portal-v9 .portal-panel,
  .portal-v9 .page-hero,
  .portal-v9 .rules-hero,
  .portal-v9 .codes-panel,
  .portal-v9 .report-form-card,
  .portal-v9 .known-issues-card,
  .portal-v9 .rules-toc-card,
  .portal-v9 .rules-report-cta,
  .portal-v9 .leaderboard-selector-card,
  .portal-v9 .leaderboard-board-card,
  .portal-v9 .leaderboard-stats-card {
    padding: 16px;
  }

  .portal-v9 .page-hero h1,
  .portal-v9 .rules-hero h1 {
    margin-top: 8px;
    font-size: clamp(1.65rem, 8vw, 2.15rem);
  }

  .portal-v9 .page-hero p,
  .portal-v9 .rules-hero-copy > p {
    font-size: .76rem;
    line-height: 1.5;
  }

  .portal-v9 .page-hero-split {
    gap: 17px;
  }

  .portal-v9 .content-grid-with-rail,
  .portal-v9 .codes-layout,
  .portal-v9 .reports-layout,
  .portal-v9 .leaderboard-hub-layout,
  .portal-v9 .rules-layout {
    gap: 9px;
  }

  .portal-v9 .feed-heading {
    margin: 7px 0 9px;
  }

  .portal-v9 .feed-heading h2,
  .portal-v9 .portal-panel-head h3 {
    font-size: 1.15rem;
  }

  .portal-v9 .updates-list,
  .portal-v9 .pinned-grid,
  .portal-v9 .roadmap-grid,
  .portal-v9 .promo-codes-grid,
  .portal-v9 .known-issues-list,
  .portal-v9 .signal-stack {
    gap: 7px;
  }

  .portal-v9 .update-card,
  .portal-v9 .pinned-card,
  .portal-v9 .roadmap-card,
  .portal-v9 .promo-code-card,
  .portal-v9 .known-issue-card,
  .portal-v9 .home-post,
  .portal-v9 .signal-card,
  .portal-v9 .leaderboard-row {
    border-radius: 14px !important;
  }

  .portal-v9 .update-card,
  .portal-v9 .pinned-card,
  .portal-v9 .roadmap-card,
  .portal-v9 .promo-code-card,
  .portal-v9 .known-issue-card {
    padding: 14px !important;
  }

  .portal-v9 .update-card h3,
  .portal-v9 .pinned-card h3,
  .portal-v9 .roadmap-card h3,
  .portal-v9 .promo-code-card h3,
  .portal-v9 .known-issue-card h3 {
    margin-top: 10px;
    font-size: .96rem;
    line-height: 1.3;
  }

  .portal-v9 .update-card p,
  .portal-v9 .pinned-card p,
  .portal-v9 .roadmap-card p,
  .portal-v9 .promo-code-card p,
  .portal-v9 .known-issue-card p {
    margin-top: 6px;
    font-size: .7rem;
    line-height: 1.48;
  }

  /* Mobile shop cards become compact horizontal cards instead of giant posters. */
  .portal-v9 .shop-items-grid,
  .portal-v9 .shop-featured-grid {
    grid-template-columns: 1fr;
    gap: 7px;
  }

  .portal-v9 .shop-item-card,
  .portal-v9 .featured-shop-card {
    min-height: 138px;
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr);
    grid-template-rows: 1fr;
    border-radius: 15px !important;
  }

  .portal-v9 .shop-item-image,
  .portal-v9 .shop-featured-grid .shop-item-image {
    width: 112px;
    height: 100%;
    min-height: 138px;
    max-height: none;
    aspect-ratio: auto;
    border-right: 1px solid rgba(255, 255, 255, .07);
  }

  .portal-v9 .shop-item-image img {
    height: 100%;
    object-fit: cover;
  }

  .portal-v9 .shop-item-body {
    min-width: 0;
    padding: 10px 10px 9px;
  }

  .portal-v9 .shop-item-tags {
    gap: 4px;
  }

  .portal-v9 .shop-item-tags > * {
    max-width: 47%;
    min-height: 20px;
    padding-inline: 7px;
    font-size: .5rem;
  }

  .portal-v9 .shop-item-tags > :nth-child(n + 3) {
    display: none;
  }

  .portal-v9 .shop-item-body h3 {
    margin: 7px 0 3px;
    font-size: .86rem;
    line-height: 1.22;
  }

  .portal-v9 .shop-subtitle {
    font-size: .63rem;
    line-height: 1.35;
  }

  .portal-v9 .shop-item-body > p {
    display: none;
  }

  .portal-v9 .shop-item-meta-row {
    padding-top: 8px;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 6px;
    align-items: center;
  }

  .portal-v9 .shop-price {
    font-size: .86rem;
  }

  .portal-v9 .shop-sales-pill {
    margin-top: 3px;
    font-size: .5rem;
    line-height: 1.2;
  }

  .portal-v9 .shop-buy-button {
    min-height: 34px;
    padding: 0 9px;
    border-radius: 9px;
    font-size: .61rem;
  }

  .portal-v9 .rule-card {
    border-radius: 16px !important;
  }

  .portal-v9 .rule-card-content {
    padding: 15px;
  }

  .portal-v9 .rule-heading-row {
    gap: 10px;
  }

  .portal-v9 .rule-icon {
    width: 39px;
    height: 39px;
    border-radius: 11px;
  }

  .portal-v9 .rule-points {
    margin-top: 12px;
    gap: 6px;
  }

  .portal-v9 .rule-points li {
    padding: 9px;
    border-radius: 11px;
  }

  .portal-v9 .rule-points p {
    font-size: .7rem;
    line-height: 1.45;
  }

  .portal-v9 .leaderboard-row {
    min-height: 58px;
    padding: 9px 10px !important;
  }

  .portal-v9 .portal-mobile-dock {
    left: 8px !important;
    right: 8px !important;
    bottom: max(8px, env(safe-area-inset-bottom)) !important;
    min-height: 62px !important;
    padding: 5px !important;
    border-radius: 18px !important;
    background: rgba(7, 17, 30, .96) !important;
  }

  .portal-v9 .portal-dock-item {
    min-height: 50px !important;
    border-radius: 13px !important;
    font-size: .55rem !important;
  }

  .portal-v9 .portal-dock-menu {
    color: #aebdd0 !important;
    background: transparent !important;
    border: 0 !important;
  }

  .portal-v9 .portal-dock-menu:hover,
  .portal-v9 .portal-dock-menu:focus-visible {
    color: #fff !important;
    background: #122039 !important;
  }
}

@media (max-width: 380px) {
  .portal-v9 .hero-copy-wrap {
    padding: 23px 15px 13px;
  }

  .portal-v9 .hero-command-card h1 {
    font-size: 1.68rem;
  }

  .portal-v9 .hero-banner-hint {
    display: none;
  }

  .portal-v9 .shop-item-card,
  .portal-v9 .featured-shop-card {
    min-height: 128px;
    grid-template-columns: 96px minmax(0, 1fr);
  }

  .portal-v9 .shop-item-image,
  .portal-v9 .shop-featured-grid .shop-item-image {
    width: 96px;
    min-height: 128px;
  }

  .portal-v9 .shop-item-body {
    padding: 9px;
  }

  .portal-v9 .shop-buy-button {
    padding: 0 8px;
    font-size: .57rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .portal-v9 .hero-banner-link {
    transition: none;
  }
}

/* v10 phone hero final compaction */
@media (max-width: 720px) {
  .portal-v9 .hero-actions {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  .portal-v9 .button-xl {
    min-width: 0;
    padding-inline: 10px;
    font-size: .67rem;
    text-align: center;
  }

  .portal-v9 .premium-stat-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .portal-v9 .roblox-stat {
    min-height: 58px;
    padding: 8px 6px;
  }

  .portal-v9 .roblox-stat span {
    min-height: 1.15rem;
    display: flex;
    align-items: flex-end;
    white-space: normal;
    line-height: 1.12;
  }

  .portal-v9 .roblox-stat strong {
    font-size: .98rem;
  }

  .portal-v9 .roblox-stat small {
    display: none;
  }

  .portal-v9 .richest-home-spotlight {
    min-height: 60px !important;
  }
}

@media (max-width: 380px) {
  .portal-v9 .button-xl {
    font-size: .61rem;
  }

  .portal-v9 .roblox-stat {
    padding-inline: 5px;
  }

  .portal-v9 .roblox-stat span {
    font-size: .45rem;
  }
}

/* v10 mobile card audit — keep every content type dense and scannable */
@media (max-width: 720px) {
  .portal-v9 .codes-panel {
    min-height: 0;
  }

  .portal-v9 .promo-code-card {
    gap: 9px;
  }

  .portal-v9 .promo-code-card-top,
  .portal-v9 .promo-code-token-row,
  .portal-v9 .update-card-top,
  .portal-v9 .update-card-footer,
  .portal-v9 .roadmap-card-top {
    flex-direction: row !important;
    align-items: center !important;
  }

  .portal-v9 .promo-code-card-top,
  .portal-v9 .update-card-top,
  .portal-v9 .update-card-footer,
  .portal-v9 .roadmap-card-top {
    justify-content: space-between;
    gap: 7px;
  }

  .portal-v9 .promo-code-token-row {
    width: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 7px;
  }

  .portal-v9 .promo-code-token,
  .portal-v9 .copy-code-button {
    width: auto;
    min-height: 37px;
    border-radius: 10px;
  }

  .portal-v9 .promo-code-token {
    min-width: 0;
    padding: 0 10px;
    overflow: hidden;
    font-size: .82rem;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .portal-v9 .copy-code-button {
    padding: 0 11px;
    font-size: .65rem;
  }

  .portal-v9 .promo-code-card h3 {
    margin: 1px 0 0;
  }

  .portal-v9 .promo-code-card p,
  .portal-v9 .update-card p,
  .portal-v9 .pinned-card p,
  .portal-v9 .roadmap-card p,
  .portal-v9 .known-issue-card p {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  .portal-v9 .promo-code-expiry-detail {
    font-size: .62rem;
  }

  .portal-v9 .update-card,
  .portal-v9 .pinned-card,
  .portal-v9 .roadmap-card {
    min-height: 0 !important;
  }

  .portal-v9 .update-card-date,
  .portal-v9 .roadmap-priority {
    flex: 0 0 auto;
    font-size: .55rem;
  }

  .portal-v9 .read-more-button {
    min-height: 34px;
    padding: 0 11px;
    font-size: .65rem;
  }

  .portal-v9 .leaderboard-row {
    grid-template-columns: 44px minmax(0, 1fr) auto !important;
    gap: 8px !important;
    align-items: center;
  }

  .portal-v9 .leaderboard-rank-pill {
    min-height: 38px;
    padding-inline: 6px;
    border-radius: 11px;
    font-size: .85rem;
  }

  .portal-v9 .leaderboard-player-main {
    gap: 2px;
  }

  .portal-v9 .leaderboard-player-main a {
    font-size: .84rem;
  }

  .portal-v9 .leaderboard-player-main span {
    font-size: .5rem;
  }

  .portal-v9 .leaderboard-row strong {
    grid-column: 3 !important;
    font-size: .82rem;
    text-align: right !important;
    white-space: nowrap;
  }
}

@media (max-width: 380px) {
  .portal-v9 .promo-code-token {
    font-size: .75rem;
  }

  .portal-v9 .copy-code-button {
    padding-inline: 9px;
    font-size: .6rem;
  }

  .portal-v9 .leaderboard-row {
    grid-template-columns: 40px minmax(0, 1fr) auto !important;
    gap: 6px !important;
  }

  .portal-v9 .leaderboard-row strong {
    font-size: .74rem;
  }
}
