/* Shared user-page foundation; the expedition art direction follows below. */
.home-v2 {
  --bg-bedrock: #0c1210;
  --bg-deepslate: #101915;
  --bg-stone: #15201b;
  --bg-smooth-stone: #18231e;
  --bg-diorite: #223329;
  --border-subtle: #29392f;
  --border-default: #354b3d;
  --border-strong: #4a6653;
  --text-primary: #f0f5ef;
  --text-secondary: #b0bfb3;
  --text-tertiary: #91a497;
  --accent-emerald: #a8dd87;
  --accent-emerald-hover: #c1efa3;
  --accent-diamond: #91d3c4;
  --text-inverse: #152013;
  --cyan: #a8dd87;
  --ink-soft: #b0bfb3;
  --ink-faint: #91a497;
  --line: #29392f;
  --shadow-glow: 0 8px 32px #0002;
  color-scheme: dark;
  -webkit-font-smoothing: antialiased;
}
.home-v2::before { background: var(--bg-bedrock); }
.home-v2 [hidden] { display: none !important; }
.home-v2 section[id] { scroll-margin-top: 96px; }
.home-v2 .skip-link { position: fixed; top: -80px; left: 20px; z-index: 10000; padding: 14px 20px; border-radius: 10px; background: var(--accent-emerald); color: #152013; }
.home-v2 .skip-link:focus { top: 12px; }
.home-v2 :is(a, button, input):focus-visible { outline: 2px solid var(--accent-emerald); outline-offset: 5px; }
.home-v2 .nav,
.home-v2 .nav.scrolled { min-height: 76px; padding: 12px max(24px, calc((100vw - 1280px) / 2)); background: #0c1210f5; border-bottom-color: #ffffff0e; }
.home-v2 .brand { display: inline-flex; align-items: center; gap: 5px; font-size: 20px; letter-spacing: -.6px; }
.home-v2 .brand-mark { display: grid; place-items: center; width: 34px; height: 34px; margin-right: 7px; border-radius: 9px; background: var(--accent-emerald); color: #1b3019; font: 900 23px/1 var(--font-code); box-shadow: inset -4px -4px #0002; }
.home-v2 .nav-links { gap: 8px; }
.home-v2 .nav-links a { padding: 10px 17px; border-radius: 8px; font-size: 13px; }
.home-v2 .nav-links a:hover,
.home-v2 .nav-links a.active { color: var(--accent-emerald); background: #a8dd870c; }
.home-v2 .nav-links a::after { display: none; }
.home-v2 .nav-account { min-height: 42px; padding: 5px 13px 5px 5px; border-radius: 10px; background: #1a271f; }
.home-v2 .na-avatar,
.home-v2 .na-avatar.logged { border-radius: 7px; }
.home-v2 .na-label { font-size: 12px; color: var(--text-primary); }
.home-v2 .hero { min-height: 680px; height: 86svh; max-height: 920px; padding: 142px max(28px, calc((100vw - 1200px) / 2)) 108px; }
.home-v2 .hero-media { background-position: 65% center; }
.home-v2 .hero::before { background: linear-gradient(90deg, #0c1210f5 0%, #0c1210b3 40%, #0c12101a 100%); mask-image: none; }
.home-v2 .hero-vignette { background: linear-gradient(0deg, #0c1210, transparent 30%, #0c121025); }
.home-v2 .hero-content { max-width: 780px; width: 60%; }
.home-v2 .hero-kicker { display: inline-flex; align-items: center; gap: 10px; padding: 8px 12px; border: 1px solid #a8dd8733; border-radius: 6px; background: #101d16a8; font-size: 10px; letter-spacing: .13em; }
.home-v2 .hero-kicker i { width: 6px; height: 6px; background: var(--accent-emerald); border-radius: 2px; }
.home-v2 .hero-content h1 { max-width: none; margin-top: 10px; font-family: var(--font-heading); font-size: clamp(40px, 5.2vw, 74px); font-weight: 750; line-height: 1.24; letter-spacing: -.045em; text-shadow: none; }
.home-v2 .hero-content h1 em { color: var(--accent-emerald); font-style: normal; }
.home-v2 .hero-content > p { max-width: 560px; margin: 24px 0 30px; font-size: 15px; line-height: 1.9; color: #becbbf; }
.home-v2 .hero-world-preview { position: absolute; z-index: 2; right: max(40px, calc((100vw - 1200px) / 2)); top: 50%; width: 36%; max-width: 480px; height: 440px; transform: translateY(-43%); border: 1px solid #b7dd9f35; border-radius: 100px 16px 16px 16px; overflow: hidden; background: #203429; box-shadow: 0 24px 80px #0004; }
.home-v2 .hero-world-preview img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.home-v2 .hero-world-preview:hover img { transform: scale(1.04); }
.home-v2 .hero-world-preview::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, #0b170deb, transparent 65%); pointer-events: none; }
.home-v2 .hero-world-tag { position: absolute; z-index: 1; right: 20px; top: 20px; padding: 8px 10px; border: 1px solid #ffffff3a; border-radius: 5px; background: #10201599; color: #eef5e9; font: 10px var(--font-code); letter-spacing: .08em; }
.home-v2 .hero-world-caption { position: absolute; z-index: 1; inset: auto 26px 28px; display: flex; align-items: end; justify-content: space-between; gap: 16px; }
.home-v2 .hero-world-caption small { display: block; margin-bottom: 10px; color: #c1d1be; font-size: 11px; }
.home-v2 .hero-world-caption strong { font-size: 20px; color: #f0f5ef; }
.home-v2 .hero-world-caption b { display: grid; place-items: center; width: 36px; height: 36px; flex-shrink: 0; border: 1px solid #ffffff55; border-radius: 50%; color: #f0f5ef; }
.home-v2 .hero-actions { gap: 12px; }
.home-v2 .hero-action { min-height: 50px; padding: 0 23px; gap: 24px; border-radius: 9px; font-size: 14px; background: #152019b3; }
.home-v2 .hero-action.primary { box-shadow: 0 6px 24px #a8dd8714; }
.home-v2 .hero-shortcuts { display: flex; flex-wrap: wrap; gap: 22px; margin-top: 32px; }
.home-v2 .hero-shortcuts :is(a, button) { display: inline-flex; align-items: center; gap: 8px; min-height: 36px; padding: 0; border: 0; background: none; color: #bac8bd; font: 12px var(--font-body); cursor: pointer; }
.home-v2 .hero-shortcuts :is(a, button):hover { color: var(--accent-emerald); }
.home-v2 .hero-shortcuts span { color: var(--accent-emerald); font-size: 16px; }
.home-v2 .hero-explore { position: absolute; z-index: 3; bottom: 28px; left: 50%; display: grid; justify-items: center; gap: 7px; color: var(--text-secondary); font-size: 10px; letter-spacing: .15em; transform: translateX(-50%); }
.home-v2 .hero-sound { right: 28px; bottom: 28px; border-radius: 24px; min-height: 40px; font-size: 11px; }
.home-v2 :is(.worlds-portal, .hub, .community, .gallery, .streams) { max-width: 1320px; padding: 88px 40px; }
.home-v2 :is(.worlds-portal, .hub, .community)::before { display: none; }
.home-v2 .wp-head { grid-template-columns: minmax(0, 1.5fr) minmax(240px, 1fr); gap: 6px 32px; padding-bottom: 0; margin-bottom: 32px; border: 0; }
.home-v2 .wp-head::after,
.home-v2 .wp-kicker::before,
.home-v2 .wp-kicker::after { display: none; }
.home-v2 .wp-kicker { margin: 0 0 8px; font: 600 11px var(--font-body); letter-spacing: .12em; }
.home-v2 .wp-title { font-size: clamp(25px, 3vw, 38px); line-height: 1.35; letter-spacing: -.035em; }
.home-v2 .wp-title em { display: inline; margin-left: .2em; }
.home-v2 .wp-desc { margin: 0; font-size: 13px; line-height: 1.9; }
.home-v2 .wp-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 220px; gap: 16px; }
.home-v2 .wp-grid .wp-card { grid-column: span 1; grid-row: auto; border-radius: 14px; padding: 24px; border-color: #ffffff1a; }
.home-v2 .wp-grid .wp-card.wp-featured { grid-column: span 2; grid-row: span 2; }
.home-v2 .wp-card::before { filter: saturate(.85) brightness(.76); }
.home-v2 .wp-card::after { background: linear-gradient(180deg, #08100b15 5%, #08100b33 35%, #08100be6 100%); }
.home-v2 .wp-no { top: 20px; left: 20px; padding: 5px 8px; border: 1px solid #ffffff30; border-radius: 5px; background: #0c121066; color: #eef5eb; font-size: 10px; }
.home-v2 .wp-meta { color: #d6e5d8; font-size: 11px; letter-spacing: .08em; }
.home-v2 .wp-name { font-size: 23px; margin: 8px 0 15px; }
.home-v2 .wp-card.wp-featured .wp-name { font-size: 40px; }
.home-v2 .wp-go { width: fit-content; border-radius: 6px; padding: 7px 12px; color: #ecf5e9; font-size: 11px; background: #ffffff0c; border-color: #ffffff30; }
.home-v2 .vice { padding: 72px max(40px, calc((100vw - 1240px) / 2)); background: #101a14; border-block: 1px solid #a8dd8712; }
.home-v2 .vice-bg { background: radial-gradient(ellipse at 50% 0, #a8dd8709, transparent 65%); }
.home-v2 .vice-kicker { font-size: 10px; }
.home-v2 .vice-title { font-size: clamp(28px, 3vw, 38px); margin: 12px 0; }
.home-v2 .vice-desc { font-size: 13px; line-height: 1.8; }
.home-v2 .vice-summary { margin: 32px auto; border: 1px solid var(--border-subtle); border-radius: 12px; background: #17231c; }
.home-v2 .vsum { padding: 24px 32px; }
.home-v2 .vsum-num { font-size: 32px; font-weight: 650; }
.home-v2 .vsum-label { margin-top: 8px; font: 12px var(--font-body); color: var(--text-secondary); }
.home-v2 .srvstat-board { gap: 16px; }
.home-v2 .sstat { padding: 22px; border-radius: 12px; background: #18251d; }
.home-v2 .sstat-name { font-size: 17px; }
.home-v2 .sstat-badge { border-radius: 20px; padding: 5px 8px; font-size: 10px; }
.home-v2 .sstat-ip,
.home-v2 .sstat-players-toggle { border-radius: 7px; }
.home-v2 .sstat-metric span,
.home-v2 .sstat-metric small { font-size: 10px; }
.home-v2 .sstat-detail,
.home-v2 .sstat-copy { min-height: 34px; border-radius: 6px; }
.home-v2 .hub-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: minmax(216px, auto); }
.home-v2 .hub-grid > .feat { grid-column: auto; grid-row: auto; padding: 26px; border-radius: 12px; background: #152019; gap: 16px; }
.home-v2 .hub-grid > .feat-primary { grid-column: auto; grid-row: auto; background: linear-gradient(130deg, #283b24, #18251c); border-color: #a8dd8740; }
.home-v2 .hub-grid > .feat-chat { grid-column: auto; min-height: 216px; flex-direction: column; align-items: flex-start; }
.home-v2 .feat-chat .feat-go { margin: auto 0 0; }
.home-v2 .feat-primary .feat-ic,
.home-v2 .feat-ic { width: 42px; height: 42px; border-radius: 10px; }
.home-v2 .feat-primary .feat-t,
.home-v2 .feat-t,
.home-v2 .feat-lg .feat-t { font-size: 19px; }
.home-v2 .feat-d { font-size: 13px; line-height: 1.8; max-width: none; }
.home-v2 .feat-go { font: 12px var(--font-body); }
.home-v2 .community-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: auto; gap: 16px; }
.home-v2 .community-grid .comm-card,
.home-v2 .community-grid .comm-primary { grid-column: auto; grid-row: auto; min-height: 252px; padding: 24px; border-radius: 12px; gap: 14px; background: #152019; }
.home-v2 .community-grid .comm-no { font: 12px var(--font-code); }
.home-v2 .community-grid .comm-card .comm-t { font-size: 19px; max-width: none; }
.home-v2 .community-grid .comm-card .comm-d,
.home-v2 .community-grid .comm-card:not(.comm-primary) .comm-d { display: block; font-size: 13px; line-height: 1.85; }
.home-v2 .community-grid .comm-card:not(.comm-primary) .comm-t { font-size: 19px; }
.home-v2 .community-grid .comm-go { margin-top: auto; font: 12px var(--font-body); }
.home-v2 .community-grid .community-link { grid-column: span 2; flex-direction: row; align-items: center; justify-content: flex-start; padding: 22px 24px; gap: 20px; min-height: 96px; border-radius: 12px; background: #152019; border: 1px solid var(--border-subtle); }
.home-v2 .community-grid .community-link-go { position: static; margin-left: auto; }
.home-v2 .community-link-copy small { color: var(--text-secondary); font-size: 12px; }
.home-v2 .checkin { margin-top: 24px; padding: 24px; border-radius: 12px; background: linear-gradient(110deg, #2b291a, #1b231a); border-color: #d7a75c33; }
.home-v2 .ci-sub { margin-top: 5px; font-size: 12px; }
.home-v2 .ci-btn { border-radius: 8px; min-height: 44px; background: #e6c17b; font-size: 13px; }
.home-v2 .footer { padding: 48px 24px; }
.home-v2 .footer-logo { font-size: 24px; }
.home-v2 .footer-meta,
.home-v2 .footer-sub { font: 12px/1.9 var(--font-body); }
.home-v2 .to-top,
.home-v2 .toast,
.home-v2 .qq-panel { border-radius: 12px; }
.home-v2 .qq-ball { background: #a8dd87; color: #142211; box-shadow: 0 6px 24px #0004; }
.home-v2 .modal-card { border-radius: 18px; border-color: var(--border-default); background: #141f19; }
.home-v2 .auth-shell .auth-view { background: #141f19; }
.home-v2 .auth-tabs { padding: 5px; border-radius: 9px; background: #0d1611; }
.home-v2 .auth-tab { min-height: 40px; border-radius: 6px; }
.home-v2 .auth-tab.active { background: #273b2c; color: var(--accent-emerald); box-shadow: none; }
.home-v2 .field input { min-height: 48px; border-radius: 8px; background: #101912; border-color: #374b3d; font-size: 16px; }
.home-v2 .field input:focus { border-color: var(--accent-emerald); box-shadow: 0 0 0 3px #a8dd8712; }
.home-v2 .auth-submit,
.home-v2 .pf-checkin { border-radius: 8px; min-height: 46px; background: var(--accent-emerald); color: var(--text-inverse); }
.home-v2 .auth-submit:hover,
.home-v2 .pf-checkin:hover { background: var(--accent-emerald-hover); }
.home-v2 .modal.profile-mode .modal-card { width: min(500px, 100%); background: #111c15; border-radius: 18px 0 0 18px; }
.home-v2 .pf-head { padding: 20px 0 26px; }
.home-v2 .pf-name { overflow-wrap: anywhere; font-size: 25px; }
.home-v2 .pf-stats { gap: 10px; border: 0; }
.home-v2 .pf-stat { min-width: 0; padding: 18px 8px; background: #1b2a20; border: 1px solid var(--border-subtle); border-radius: 10px; }
.home-v2 .pf-stat:last-child { border-right: 1px solid var(--border-subtle); }
.home-v2 .pf-stat b { font-size: 24px; overflow-wrap: anywhere; }
.home-v2 .pf-stat span,
.home-v2 .pf-since,
.home-v2 .pf-identity > span,
.home-v2 .pf-links small { color: var(--text-secondary); font-size: 12px; }
.home-v2 .pf-links { gap: 8px; border: 0; }
.home-v2 .pf-links a { padding: 16px; border: 1px solid var(--border-subtle); border-radius: 9px; background: #17231b; }
.home-v2 .pf-links a:hover { border-color: #a8dd8766; background: #203026; }
.home-v2 .pf-foot { padding-top: 20px; }
.home-v2 .pf-sessions { border-radius: 10px; }
.home-v2 .message-drawer-panel { background: #141f19; border-color: var(--border-subtle); }
@media (max-width: 1050px) {
  .home-v2 .hero-world-preview { width: 34%; height: 370px; right: 28px; }
  .home-v2 .hero-world-caption { inset: auto 18px 24px; }
  .home-v2 .hero-world-caption strong { font-size: 16px; }
  .home-v2 .hero-content > p { max-width: 55%; }
  .home-v2 .nav-links a { padding-inline: 12px; }
  .home-v2 .wp-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 220px; }
  .home-v2 .wp-grid .wp-card.wp-featured { grid-column: 1 / -1; grid-row: auto; min-height: 280px; }
  .home-v2 .wp-grid { grid-template-rows: 280px; }
  .home-v2 .hub-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-v2 .community-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-v2 .community-grid .community-link { grid-column: auto; }
}
@media (max-width: 760px) {
  .home-v2 .hero-world-preview { display: none; }
  .home-v2 .hero-content { width: 100%; }
  .home-v2 .nav,
  .home-v2 .nav.scrolled { min-height: 66px; padding: 10px 18px; }
  .home-v2 .brand { font-size: 17px; }
  .home-v2 .brand-mark { width: 29px; height: 29px; font-size: 20px; }
  .home-v2 .nav.open .nav-links { padding: 12px 18px; background: #101b14; border-bottom: 1px solid var(--border-default); }
  .home-v2 .nav-links a { min-height: 44px; }
  .home-v2 .hero { min-height: 660px; height: auto; padding: 132px 24px 104px; }
  .home-v2 .hero::before { background: linear-gradient(90deg, #0c1210ed, #0c121079); }
  .home-v2 .hero-content h1 { font-size: clamp(34px, 7.8vw, 56px); max-width: none; }
  .home-v2 .hero-content > p { font-size: 14px; max-width: 100%; }
  .home-v2 .hero-action { min-height: 48px; padding-inline: 18px; gap: 14px; font-size: 13px; }
  .home-v2 .hero-shortcuts { gap: 16px; }
  .home-v2 .hero-explore { left: 24px; transform: none; justify-items: start; }
  .home-v2 :is(.worlds-portal, .hub, .community, .gallery, .streams, .vice) { padding: 56px 20px; }
  .home-v2 .wp-head { display: block; margin-bottom: 26px; }
  .home-v2 .wp-desc { margin-top: 14px; font-size: 13px; }
  .home-v2 .wp-title { font-size: 27px; }
  .home-v2 .wp-grid .wp-card { padding: 20px; }
  .home-v2 .wp-name { font-size: 22px; }
  .home-v2 .vsum { padding: 20px 12px; }
  .home-v2 .vsum-num { font-size: 26px; }
  .home-v2 .vsum-label { font-size: 11px; }
  .home-v2 .srvstat-board { grid-template-columns: 1fr; }
  .home-v2 .hub-grid > .feat { padding: 22px; }
  .home-v2 .community-grid .comm-card { padding: 22px; }
  .home-v2 .community-grid .community-link { grid-column: 1 / -1; }
  .home-v2 .modal:not(.profile-mode) .modal-card { border-radius: 18px 18px 0 0; }
  .home-v2 .modal.profile-mode .modal-card { border-radius: 0; padding-bottom: max(24px, env(safe-area-inset-bottom)); }
  .home-v2 .auth-visual { border-radius: 18px 18px 0 0; }
}
@media (max-width: 480px) {
  .home-v2 .hero-kicker { font-size: 9px; letter-spacing: .06em; }
  .home-v2 .hero-shortcuts { gap: 13px; }
  .home-v2 .hero-shortcuts :is(a, button) { font-size: 11px; }
  .home-v2 .wp-grid { grid-template-columns: 1fr; grid-auto-rows: 220px; }
  .home-v2 .wp-grid .wp-card.wp-featured { min-height: 280px; }
  .home-v2 .hub-grid,
  .home-v2 .community-grid { grid-template-columns: 1fr; }
  .home-v2 .hub-grid > .feat-chat { flex-direction: column; align-items: flex-start; }
  .home-v2 .feat-chat .feat-go { margin: auto 0 0; }
  .home-v2 .community-grid .comm-card { min-height: 220px; }
  .home-v2 .checkin { align-items: stretch; gap: 18px; padding: 20px; }
  .home-v2 .ci-btn { width: 100%; }
  .home-v2 .pf-links a { flex-direction: column; gap: 6px; }
  .home-v2 .pf-links small { max-width: none; text-align: left; }
}
@media (prefers-reduced-motion: reduce) {
  .home-v2 *, .home-v2 *::before, .home-v2 *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .home-v2 .hero-enter, .home-v2 .reveal, .home-v2 .stagger > *, .home-v2 .sstat { opacity: 1; transform: none; }
}

/* EXPEDITION: a field guide to five dimensions. */
.home-v2 { --accent-emerald: #c0ef82; --accent-emerald-hover: #d3ffa2; --cyan: #c0ef82; }
.home-v2 .nav { border-bottom: 1px solid #c0ef821a; }
.home-v2 .brand-mark { border-radius: 2px; transform: rotate(-5deg); }
.home-v2 .hero { min-height: 760px; height: 90svh; max-height: 980px; padding-top: 150px; padding-bottom: 124px; background: #0c1210; isolation: isolate; }
.home-v2 .hero::before { z-index: 0; background: radial-gradient(ellipse at 78% 40%, #678b3426, transparent 47%), linear-gradient(90deg, #0c1210ed, #0c12108c), repeating-linear-gradient(0deg, transparent 0 63px, #c0ef8209 63px 64px), repeating-linear-gradient(90deg, transparent 0 63px, #c0ef8209 63px 64px); }
.home-v2 .hero::after { content: ''; position: absolute; z-index: 1; pointer-events: none; left: 0; right: 0; bottom: -1px; height: 38px; background: #c0ef82; clip-path: polygon(0 70%, 8% 70%, 8% 40%, 13% 40%, 13% 70%, 26% 70%, 26% 0, 30% 0, 30% 40%, 38% 40%, 38% 70%, 58% 70%, 58% 40%, 68% 40%, 68% 70%, 79% 70%, 79% 0, 85% 0, 85% 40%, 94% 40%, 94% 70%, 100% 70%, 100% 100%, 0 100%); }
.home-v2 .hero-content { width: 53%; z-index: 3; }
.home-v2 .hero-kicker { border: 0; border-left: 2px solid var(--accent-emerald); border-radius: 0; padding: 5px 12px; background: none; letter-spacing: .16em; }
.home-v2 .hero-content h1 { font-size: clamp(42px, 4.7vw, 70px); line-height: 1.3; font-weight: 850; letter-spacing: -.055em; }
.home-v2 .hero-content h1 em { color: #f0f5ef; }
.home-v2 .hero-content mark { position: relative; display: inline; color: #c0ef82; background: none; white-space: nowrap; }
.home-v2 .hero-content mark::after { content: ''; position: absolute; left: 0; right: 0; bottom: -7px; height: 7px; background: repeating-linear-gradient(90deg, #c0ef8280 0 8px, transparent 8px 12px); transform: rotate(-1deg); }
.home-v2 .hero-content > p { max-width: 95%; margin-top: 32px; }
.home-v2 .hero-action { border-radius: 3px; }
.home-v2 .hero-action.primary { box-shadow: 4px 4px 0 #648443; border: 1px solid #dbffb5; }
.home-v2 .hero-action.primary:hover { transform: translate(2px, 2px); box-shadow: 2px 2px 0 #648443; }
.home-v2 .hero-explore { bottom: 54px; left: max(28px, calc((100vw - 1200px) / 2)); transform: none; display: flex; gap: 14px; align-items: center; }
.home-v2 .hero-explore > span:last-child { display: grid; place-items: center; width: 28px; height: 36px; border: 1px solid #c0ef8240; border-radius: 16px; }
.home-v2 .hero-sound { bottom: 54px; }
.home-v2 .world-portal { --portal-color: #c0ef82; position: absolute; z-index: 2; top: 125px; bottom: 96px; right: max(30px, calc((100vw - 1260px) / 2)); width: 45%; max-width: 590px; perspective: 1100px; }
.home-v2 .world-portal::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse, color-mix(in srgb, var(--portal-color) 14%, transparent), transparent 67%); pointer-events: none; }
.home-v2 .world-portal .hero-world-preview { display: block; top: 8%; left: 15%; right: auto; width: 70%; height: 78%; max-width: none; transform: rotateX(var(--portal-y, 0deg)) rotateY(var(--portal-x, 0deg)) rotate(-5deg); transform-origin: center; border: 7px solid #2d3830; border-radius: 90px 90px 5px 5px; outline: 1px solid color-mix(in srgb, var(--portal-color) 55%, transparent); box-shadow: 12px 14px 0 #060c08, 14px 16px 0 #698a4255, 0 0 65px color-mix(in srgb, var(--portal-color) 12%, transparent); transition: transform .25s ease, outline-color .3s ease; }
.home-v2 .hero-world-preview img { filter: saturate(.8) contrast(1.05); }
.home-v2 .hero-world-tag { right: 14px; top: 76px; padding: 8px 12px; font: 10px var(--font-body); border-radius: 2px; background: #0b170bc9; }
.home-v2 .hero-world-tag b { margin-left: 14px; color: var(--portal-color); font: 10px var(--font-code); }
.home-v2 .hero-world-caption { inset: auto 24px 24px; }
.home-v2 .hero-world-caption small { color: #d4decf; letter-spacing: .18em; }
.home-v2 .hero-world-caption strong { font-size: clamp(26px, 3vw, 40px); letter-spacing: -.05em; }
.home-v2 .hero-world-caption b { background: var(--portal-color); color: #172011; border: 0; border-radius: 2px; }
.home-v2 .portal-orbit { position: absolute; width: 96%; aspect-ratio: 1; top: 4%; left: 2%; border: 1px dashed #c0ef8233; border-radius: 50%; transform: rotate(-14deg); pointer-events: none; }
.home-v2 .portal-orbit::before { content: ''; position: absolute; inset: 24px; border: 1px solid #c0ef8214; border-radius: 50%; }
.home-v2 .portal-orbit span { position: absolute; color: #b7c5aa; font: 11px var(--font-code); }
.home-v2 .portal-orbit span:nth-child(1) { top: -7px; left: 50%; }
.home-v2 .portal-orbit span:nth-child(2) { right: -4px; top: 50%; }
.home-v2 .portal-orbit span:nth-child(3) { bottom: -7px; left: 50%; }
.home-v2 .portal-orbit span:nth-child(4) { left: -4px; top: 50%; }
.home-v2 .portal-coordinate { position: absolute; z-index: 4; right: 2%; top: 0; color: #839778; font: 9px/1.8 var(--font-code); letter-spacing: .13em; }
.home-v2 .portal-coordinate b { color: var(--portal-color); font-weight: 400; }
.home-v2 .portal-cube { position: absolute; z-index: 4; width: 38px; height: 38px; background: var(--portal-color); border: 1px solid #efffd344; box-shadow: inset -12px -10px 0 #0003, 10px 14px 22px #0003; transform: rotate(-18deg) skew(12deg, 6deg); pointer-events: none; }
.home-v2 .cube-one { top: 19%; left: 5%; }
.home-v2 .cube-two { right: 5%; bottom: 20%; width: 52px; height: 52px; background: #c6aeef; transform: rotate(13deg) skew(12deg, 6deg); }
.home-v2 .cube-three { right: 7%; top: 28%; width: 20px; height: 20px; background: #efd68a; }
.home-v2 .portal-selector { position: absolute; z-index: 5; bottom: 0; left: 8%; right: 4%; display: flex; align-items: center; justify-content: center; gap: 8px; }
.home-v2 .portal-selector-label { color: #a8b6a1; font: 10px var(--font-body); margin-right: 10px; }
.home-v2 .portal-selector button { width: 40px; height: 40px; padding: 0; border: 1px solid #425437; border-radius: 2px; background: #152014; color: #becab5; font: 12px var(--font-code); cursor: pointer; transition: background .2s, transform .2s; }
.home-v2 .portal-selector button:hover { transform: translateY(-3px); border-color: var(--portal-color); }
.home-v2 .portal-selector button[aria-pressed="true"] { background: var(--portal-color); color: #172011; border-color: var(--portal-color); box-shadow: 3px 3px 0 #0005; }
.home-v2 .portal-announcement { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.home-v2 .adventure-route { position: relative; z-index: 2; display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: 0; padding: 18px max(30px, calc((100vw - 1240px) / 2)); background: #c0ef82; color: #203015; }
.home-v2 .route-caption { display: flex; align-items: center; gap: 16px; font-size: 12px; font-weight: 700; }
.home-v2 .route-caption i { font-style: normal; font-size: 30px; }
.home-v2 .adventure-route a { display: flex; align-items: center; gap: 16px; min-height: 44px; padding: 8px 24px; border-left: 1px solid #20301533; color: #203015; font-size: 13px; font-weight: 700; }
.home-v2 .adventure-route a b { font: 11px var(--font-code); opacity: .65; }
.home-v2 .adventure-route a i { margin-left: auto; font-style: normal; }
.home-v2 .adventure-route a:hover { background: #ffffff35; }
.home-v2 :is(.worlds-portal, .hub, .community) { content-visibility: visible; contain-intrinsic-size: none; }
.home-v2 .worlds-portal { position: relative; padding-top: 100px; }
.home-v2 .wp-kicker { font: 10px var(--font-code); letter-spacing: .1em; color: #c0ef82; }
.home-v2 .wp-title { font-weight: 800; }
.home-v2 .wp-grid { gap: 20px; }
.home-v2 .wp-grid .wp-card { border-radius: 3px; border-color: #b5c9a933; box-shadow: 5px 5px 0 #ffffff04; }
.home-v2 .wp-grid .wp-card.wp-featured { border-radius: 3px 3px 68px 3px; }
.home-v2 .wp-card:nth-child(3), .home-v2 .wp-card:nth-child(5) { transform: translateY(18px); }
.home-v2 .wp-card:nth-child(3):hover, .home-v2 .wp-card:nth-child(5):hover { transform: translateY(14px); }
.home-v2 .wp-grid .wp-card .wp-no { top: 18px; left: 18px; width: 36px; height: 40px; display: grid; place-items: center; padding: 0; background: #e6e5cf; color: #25341b; border: 0; border-radius: 1px; font-size: 13px; box-shadow: 3px 3px 0 #0003; }
.home-v2 .wp-card:nth-child(2) .wp-no { background: #eed48c; }
.home-v2 .wp-card:nth-child(3) .wp-no { background: #a6dfe8; }
.home-v2 .wp-card:nth-child(4) .wp-no { background: #cfbde8; }
.home-v2 .wp-card:nth-child(5) .wp-no { background: #e4b19a; }
.home-v2 .wp-card .wp-go { border-radius: 2px; }
.home-v2 .vice { position: relative; margin-top: 20px; background: #111b15; border-block: 1px solid #c0ef8229; }
.home-v2 .vice-bg { background: linear-gradient(#111b15d9, #111b15f2), repeating-linear-gradient(90deg, transparent 0 39px, #c0ef8255 39px 40px), repeating-linear-gradient(0deg, transparent 0 39px, #c0ef8255 39px 40px); }
.home-v2 .vice-summary { border-radius: 2px; border-top: 2px solid #c0ef82; }
.home-v2 .sstat { border-radius: 3px; border-top: 2px solid #536c41; }
.home-v2 .hub { background: radial-gradient(ellipse at 0 70%, #c0ef8208, transparent 65%); }
.home-v2 .hub-grid { gap: 12px; padding: 14px; border: 1px solid #526047; background: #1c251a; border-radius: 4px; box-shadow: inset 0 0 0 5px #10180f; }
.home-v2 .hub-grid > .feat { border-radius: 2px; background: #101910; border: 1px solid #36442c; box-shadow: inset 3px 3px 0 #0003; }
.home-v2 .hub-grid > .feat:hover { border-color: #bade97; box-shadow: inset 0 0 0 1px #bade9744; }
.home-v2 .hub-grid > .feat-primary { background: #263420; }
.home-v2 .feat-ic, .home-v2 .feat-primary .feat-ic { width: 48px; height: 48px; border-radius: 1px; border-width: 2px; box-shadow: 3px 3px 0 #0003; }
/* These legacy selectors outrank the atlas typography. Resolve their text
   roles against the theme too, so dark surfaces never retain daylight ink. */
.home-v2 .community { --text-primary: var(--night-ink, #263123); --text-secondary: var(--night-secondary, #56614c); --text-tertiary: var(--night-muted, #65705a); max-width: none; padding-inline: max(40px, calc((100vw - 1240px) / 2)); background: #e6e5d5; color: var(--text-primary); }
.home-v2 .community .wp-title { color: var(--text-primary); }
.home-v2 .community .wp-title em { color: var(--night-green, #657d3c); }
.home-v2 .community .wp-kicker { color: var(--night-muted, #596b3b); }
.home-v2 .community .wp-desc { color: var(--text-secondary); }
.home-v2 .community-grid { gap: 18px; padding-top: 10px; }
.home-v2 .community-grid .comm-card { overflow: visible; border: 1px solid #c5c7b4; border-radius: 2px; background: #f5f3e9; box-shadow: 4px 5px 0 #2b38210c; color: var(--text-primary); }
.home-v2 .community-grid .comm-card::before { display: none; }
.home-v2 .community-grid .comm-card::after { content: ''; position: absolute; width: 54px; height: 16px; top: -8px; bottom: auto; right: auto; left: calc(50% - 27px); border-radius: 0; opacity: 1; background: #c6c7a5b3; border: 1px solid #b5b79155; transform: rotate(-5deg); pointer-events: none; }
.home-v2 .community-grid .comm-card:nth-child(2) { background: #e1e9d2; }
.home-v2 .community-grid .comm-card:nth-child(3) { background: #e7e1ef; }
.home-v2 .community-grid .comm-card:nth-child(4) { background: #efe3be; }
.home-v2 .community-grid .comm-card .comm-t { color: var(--text-primary); }
.home-v2 .community-grid .comm-card .comm-d { color: var(--text-secondary); }
.home-v2 .community-grid .comm-card .comm-no { color: var(--night-muted, #65704c); }
.home-v2 .community-grid .comm-card .comm-go { color: var(--night-green, #425b2b); font-weight: 750; }
.home-v2 .community-grid .community-link { border-radius: 2px; border-color: var(--night-line, #c5c7b4); background: transparent; }
.home-v2 .community .community-link-copy strong { color: var(--text-primary); }
.home-v2 .community .community-link-no, .home-v2 .community .community-link-go { color: var(--night-green, #657d3c); }
.home-v2 .community .checkin { position: relative; background: #26331f; border: 1px solid #374b2c; border-radius: 3px; color: #ecf2e2; }
.home-v2 .community .ci-title { color: #ecf2e2; }
.home-v2 .community .ci-sub { color: #bdcbb0; }
.home-v2 .community .ci-btn { background: #c0ef82; border-radius: 2px; }
.home-v2 .footer { text-align: left; padding: 52px max(30px, calc((100vw - 1240px) / 2)); background: #0b100c; }
.home-v2 .footer-logo { font-size: 32px; }
@media (min-width: 1500px) {
  .home-v2 .world-portal { top: 145px; bottom: 125px; }
}
@media (max-width: 1050px) {
  .home-v2 .hero { min-height: 720px; }
  .home-v2 .hero-content h1 { font-size: clamp(35px, 4.5vw, 48px); }
  .home-v2 .world-portal { right: 15px; width: 46%; top: 145px; bottom: 125px; }
  .home-v2 .world-portal .hero-world-preview { width: 76%; left: 12%; }
  .home-v2 .portal-selector { left: 0; right: 0; gap: 6px; }
  .home-v2 .portal-selector-label { display: none; }
  .home-v2 .adventure-route { grid-template-columns: repeat(3, 1fr); padding: 12px 24px; }
  .home-v2 .route-caption { grid-column: 1 / -1; padding: 0 10px 10px; }
  .home-v2 .adventure-route a { padding: 8px 12px; }
  .home-v2 .wp-card:nth-child(3), .home-v2 .wp-card:nth-child(5) { transform: none; }
}
@media (max-width: 760px) {
  .home-v2 .hero { display: block; height: auto; min-height: 0; max-height: none; padding: 118px 24px 90px; }
  .home-v2 .hero-content { width: 100%; }
  .home-v2 .hero-content h1 { font-size: clamp(33px, 7.5vw, 54px); }
  .home-v2 .hero-content > p { max-width: 100%; font-size: 13px; margin-block: 24px; }
  .home-v2 .hero-kicker { font-size: 9px; }
  .home-v2 .hero-shortcuts { margin-top: 24px; }
  .home-v2 .world-portal { position: relative; top: auto; bottom: auto; right: auto; width: 100%; max-width: 480px; height: 470px; margin: 32px auto 0; }
  .home-v2 .world-portal .hero-world-preview { display: block; left: 16%; top: 7%; width: 68%; height: 76%; border-width: 5px; border-radius: 65px 65px 3px 3px; }
  .home-v2 .portal-selector { bottom: 0; }
  .home-v2 .portal-selector button { min-width: 44px; min-height: 44px; }
  .home-v2 .portal-coordinate { font-size: 8px; }
  .home-v2 .hero-world-tag { top: 55px; right: 10px; font-size: 9px; padding: 6px 8px; }
  .home-v2 .hero-world-tag b { margin-left: 6px; font-size: 9px; }
  .home-v2 .hero-world-caption { inset: auto 16px 20px; }
  .home-v2 .hero-world-caption strong { font-size: 28px; }
  .home-v2 .hero-world-caption small { font-size: 10px; }
  .home-v2 .portal-orbit { top: 12%; }
  .home-v2 .cube-one { width: 26px; height: 26px; }
  .home-v2 .cube-two { width: 34px; height: 34px; right: 4%; bottom: 25%; }
  .home-v2 .hero-explore { bottom: 38px; left: 24px; font-size: 9px; }
  .home-v2 .hero-explore > span:last-child { width: 24px; height: 28px; }
  .home-v2 .hero-sound { bottom: 40px; right: 24px; }
  .home-v2 .adventure-route { padding: 14px 18px; }
  .home-v2 .route-caption { font-size: 11px; }
  .home-v2 .adventure-route a { gap: 8px; padding: 8px; font-size: 11px; }
  .home-v2 .adventure-route a i { display: none; }
  .home-v2 .wp-grid .wp-card.wp-featured { border-radius: 3px 3px 40px 3px; }
  .home-v2 .community { padding-inline: 20px; }
  .home-v2 .community-grid { gap: 24px; }
  .home-v2 .hub-grid { padding: 10px; }
  .home-v2 .footer { padding: 40px 24px; }
}
@media (max-width: 380px) {
  .home-v2 .hero { padding-inline: 18px; }
  .home-v2 .hero-content h1 { font-size: 30px; }
  .home-v2 .world-portal { height: 420px; }
}
