/* ============================================================
   PieSMP v3 layer — loads after main.css.
   Brand contract (from the original site): diamond cyan, Chakra
   Petch caps, black hard-offset shadows.
   Differentiator: every surface is cut like a gem — chamfered
   corners instead of rounded ones, with a hard black drop that
   collapses when pressed. Realm colours carry meaning (heart red,
   grass green, arena gold), never decoration.
   ============================================================ */
:root{
  /* locked tokens */
  --c-ink:#0A1117;        /* text on light, shadows */
  --c-night:#0F1C26;      /* dark ground */
  --c-slab:#16293A;       /* dark surface */
  --c-stone:#D6DEE4;      /* light ground: polished stone */
  --c-diamond:#2EE6F0;    /* brand: the PieSMP diamond */
  --c-heart:#FF4D5E;      /* Lifesteal */
  --c-grass:#5CD66E;      /* Skyblock */
  --c-arena:#F5C451;      /* Practice */
  --font-display:"Big Shoulders Display","Arial Narrow",ui-sans-serif,sans-serif;
  --font-text:"Onest",ui-sans-serif,system-ui,sans-serif;
  --cut:14px;             /* facet size */
  --drop:drop-shadow(5px 5px 0 var(--c-ink));
  --drop-lg:drop-shadow(8px 8px 0 var(--c-ink));

  /* map onto main.css so the rest of the app follows */
  --bg:var(--c-night);--bg-alt:#122230;--panel:var(--c-slab);--panel-2:#1C3348;--panel-3:#223D55;
  --border:#2A4660;--border-light:#3A5C7A;
  --text:#EEF5F9;--muted:#A9BDCC;--dim:#8AA2B5;
  --primary:var(--c-diamond);--on-primary:var(--c-ink);
}
body{background:var(--c-night)}

/* gem facet: two opposite corners cut */
.facet{clip-path:polygon(var(--cut) 0,100% 0,100% calc(100% - var(--cut)),calc(100% - var(--cut)) 100%,0 100%,0 var(--cut))}

/* cut-corner layer: clip lives on ::after so the parent drop-shadow still paints */
.v3-btn,.v3-ip,.v3-pill,.v3-switch,.v3-realm,.v3-realm-view,.v3-card,.v3-rank,.v3-steps li,.v3-stop-card{position:relative;isolation:isolate}
.v3-btn::after,.v3-ip::after,.v3-pill::after,.v3-switch::after,.v3-realm::after,.v3-realm-view::after,.v3-card::after,.v3-rank::after,.v3-steps li::after,.v3-stop-card::after{content:"";position:absolute;inset:0;z-index:-1;background:var(--bgc,var(--c-slab));
  clip-path:polygon(var(--k) 0,100% 0,100% calc(100% - var(--k)),calc(100% - var(--k)) 100%,0 100%,0 var(--k))}
/* ---------- buttons ---------- */
.v3-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-height:52px;padding:0 24px;
  font:800 16px/1 var(--font-display);letter-spacing:.01em;
  color:var(--text);--bgc:var(--c-slab);filter:var(--drop);
  
  transition:transform .1s ease,filter .1s ease;--k:10px}
.v3-btn:hover{transform:translate(-2px,-2px);filter:drop-shadow(7px 7px 0 var(--c-ink))}
.v3-btn:active{transform:translate(4px,4px);filter:drop-shadow(1px 1px 0 var(--c-ink))}
.v3-btn-primary{--bgc:var(--c-diamond);color:var(--c-ink)}
.v3-link{color:var(--c-diamond);font-weight:700;font-size:15px;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:2px}
.v3-eyebrow{font:700 15px/1.2 var(--font-text);color:var(--c-diamond);display:flex;align-items:center;gap:8px}

/* ---------- HERO ---------- */
.v3-tour{position:relative;isolation:isolate;margin-top:calc(-1 * (var(--nav-h) + 4px + var(--space-6)))}
.v3-hero{position:relative;min-height:100svh;display:flex;align-items:stretch}
.v3-stage{position:sticky;top:0;height:100svh;margin-bottom:-100svh;z-index:-1;overflow:hidden}
.v3-stop{min-height:100svh;display:flex;align-items:center}
.v3-stop-card{--bgc:var(--c,var(--c-diamond));--k:22px;max-width:440px;padding:30px 28px 28px;color:var(--c-ink);filter:var(--drop-lg);
  opacity:.25;transform:translateX(-24px);transition:opacity .5s ease,transform .6s cubic-bezier(.2,.8,.2,1)}
.v3-stop.is-on .v3-stop-card{opacity:1;transform:none}
.v3-stop-card h2{font:900 clamp(38px,3.8vw,58px)/.92 var(--font-display);text-transform:uppercase;margin:6px 0 8px}
.v3-stop-card .v3-realm-big{padding-top:18px}
.v3-stop-facts{display:grid;gap:8px;margin:20px 0 24px;padding-top:16px;border-top:2px solid rgba(10,17,23,.25)}
.v3-stop-facts div{display:flex;justify-content:space-between;gap:16px;font:600 14px var(--font-text)}
.v3-stop-facts dt{opacity:.7}.v3-stop-facts dd{font-weight:800;text-align:right;margin:0}
.v3-stop-card .v3-btn-primary{--bgc:var(--c-ink);color:#fff}
@media (max-width:760px){.v3-stop{align-items:flex-end;padding-bottom:28px}.v3-stop-card{max-width:none;padding:22px 20px}.v3-stop-facts{display:none}}
@media (prefers-reduced-motion:reduce){.v3-stop-card{transition:none;transform:none}}
.v3-sky{position:absolute;inset:0;background:
  radial-gradient(900px 520px at 70% 42%,rgba(46,230,240,.28),transparent 62%),
  radial-gradient(800px 420px at 15% 105%,rgba(245,196,81,.16),transparent 60%),
  linear-gradient(180deg,#0B2233 0%,#13405A 52%,#0F1C26 100%)}
.scene-canvas{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity 1.2s ease}
.v3-stage.ready .scene-canvas{opacity:1}
.v3-stage::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(90deg,rgba(10,17,23,.86) 0%,rgba(10,17,23,.45) 36%,rgba(10,17,23,0) 60%),linear-gradient(0deg,var(--c-night) 0%,transparent 20%)}
.v3-hero-inner{position:relative;display:flex;flex-direction:column;justify-content:center;gap:40px;padding-top:170px;padding-bottom:64px;width:100%}
.v3-hero-copy{max-width:780px}
.v3-pill{display:inline-flex;align-items:center;gap:10px;padding:8px 16px;--bgc:var(--c-ink);color:var(--text);font:600 14px var(--font-text);
  ;--k:8px}
.v3-dot{width:10px;height:10px;background:#6b7785;display:inline-block;transform:rotate(45deg)}
.v3-dot.on{background:var(--c-grass);animation:v3pulse 1.6s steps(2) infinite}
@keyframes v3pulse{50%{opacity:.4}}
/* avoid-ai-design-ignore: SD5 — "One legend." in diamond cyan is the original PieSMP slogan treatment */
.v3-title{margin:22px 0 18px;font:900 clamp(48px,6.6vw,104px)/.92 var(--font-display);letter-spacing:.01em;text-transform:uppercase;
  color:#fff;text-shadow:5px 5px 0 var(--c-ink)}
.v3-title span{color:var(--c-diamond)}
.v3-title .r{display:inline-block}
.v3-title .r-ls{color:var(--c-heart)}.v3-title .r-ea{color:var(--c-grass)}.v3-title .r-pr{color:var(--c-arena)}
.v3-sub{font-size:clamp(16px,1.4vw,19px);line-height:1.6;color:#DCE8F0;max-width:480px}
.v3-sub b{font-weight:700}
.v3-sub .ls{color:var(--c-heart)}.v3-sub .ea{color:var(--c-grass)}.v3-sub .pr{color:var(--c-arena)}
.v3-hero-cta{display:flex;flex-wrap:wrap;gap:16px;margin-top:30px}
.v3-ip{--bgc:linear-gradient(90deg,#fff calc(100% - 92px),var(--c-diamond) 0);display:inline-flex;align-items:stretch;min-height:58px;filter:var(--drop);transition:transform .1s,filter .1s;
  ;--k:12px}
.v3-ip:hover{transform:translate(-2px,-2px);filter:drop-shadow(7px 7px 0 var(--c-ink))}
.v3-ip:active{transform:translate(4px,4px);filter:drop-shadow(1px 1px 0 var(--c-ink))}
.v3-ip-v{display:grid;place-items:center;padding:0 18px;color:var(--c-ink);font:700 19px var(--font-mono)}
.v3-ip-c{display:grid;place-items:center;width:92px;color:var(--c-ink);font:900 16px var(--font-display)}
.v3-ip-k{display:none}
.v3-switch{display:flex;flex-wrap:wrap;gap:6px;align-self:flex-start;padding:6px;--bgc:var(--c-ink);
  ;--k:12px}
.v3-switch button{padding:11px 18px;font:800 15px var(--font-display);color:#9fb3c3;transition:background .15s,color .15s;
  clip-path:polygon(7px 0,100% 0,100% calc(100% - 7px),calc(100% - 7px) 100%,0 100%,0 7px)}
.v3-switch button:hover{color:#fff}
.v3-switch button[aria-pressed=true]{background:#fff;color:var(--c-ink)}
.v3-switch .v3-ls[aria-pressed=true]{background:var(--c-heart)}
.v3-switch .v3-ea[aria-pressed=true]{background:var(--c-grass)}
.v3-switch .v3-pr[aria-pressed=true]{background:var(--c-arena)}

/* ---------- SECTIONS ---------- */
.v3-section{padding:clamp(72px,9vw,128px) 0}
.v3-head{margin-bottom:44px}
.v3-head h2,.v3-join h2{font:900 clamp(44px,6vw,84px)/.92 var(--font-display);text-transform:uppercase;letter-spacing:.01em;margin-top:10px}
.v3-head-row{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap}
.v3-head-row p{max-width:420px}

/* realms: three compact cards side by side */
.v3-realms{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.v3-realm{--c:var(--c-diamond);--bgc:var(--c);--k:22px;display:flex;flex-direction:column;padding:30px 28px 28px;color:var(--c-ink);filter:var(--drop-lg);min-height:380px}
.v3-ls{--c:var(--c-heart)}.v3-ea{--c:var(--c-grass)}.v3-pr{--c:var(--c-arena)}
.v3-realm .v3-eyebrow{color:var(--c-ink);opacity:.75}
.v3-realm h3{font:900 clamp(34px,3.2vw,48px)/.92 var(--font-display);text-transform:uppercase;margin:6px 0 6px}
.v3-realm-line{font:800 20px var(--font-display)}
.v3-realm-big{margin-top:auto;padding-top:28px;font:900 clamp(56px,5.5vw,84px)/.9 var(--font-display);}
.v3-realm-big small{display:block;font:700 14px var(--font-text);margin-top:6px}
.v3-realm-cta{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:22px}
.v3-realm .v3-btn-primary{--bgc:var(--c-ink);color:#fff}
.v3-realm-view{--bgc:transparent;background:none!important;padding:10px 4px;color:var(--c-ink);font:700 14px var(--font-text);text-decoration:underline;text-underline-offset:3px;filter:none}
.v3-realm-view::after{display:none}
.v3-realm-view:hover{opacity:.7}

/* realm page */
.v3-rhero{position:relative;background:var(--c);color:var(--c-ink);padding:clamp(150px,18vh,190px) 0 70px;margin-top:calc(-1 * (var(--nav-h) + 4px + var(--space-6)))}
.v3-rhero h1{font:900 clamp(64px,10vw,150px)/.88 var(--font-display);text-transform:uppercase;letter-spacing:.01em;margin:8px 0 10px}
.v3-rhero .v3-eyebrow{color:var(--c-ink);opacity:.75}
.v3-rhero .v3-realm-line{font-size:26px}
.v3-rhero-blurb{max-width:620px;font-size:18px;line-height:1.6;margin-top:14px}
.v3-back{display:inline-block;margin-bottom:28px;font:700 15px var(--font-text);text-decoration:underline;text-underline-offset:4px}
.v3-h2{font:900 clamp(40px,5vw,72px)/.92 var(--font-display);text-transform:uppercase;margin:10px 0 22px}
.v3-lobby{display:grid;grid-template-columns:1.3fr 1fr;gap:44px;align-items:center}
.v3-lobby-shot{aspect-ratio:16/9;display:grid;place-items:center;background:#1B2A36;box-shadow:inset 0 0 0 3px var(--c-ink),8px 8px 0 var(--c-ink)}
.v3-lobby-shot span{padding:8px 14px;background:rgba(10,17,23,.8);font:600 14px var(--font-text);color:var(--muted)}
.v3-route{padding-left:1.2em;display:grid;gap:12px;font-size:18px}
.v3-route li::marker{color:var(--c-diamond);font-weight:800}
.v3-rfacts{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin:0}
.v3-rfacts div{--bgc:#fff;--k:var(--cut);position:relative;isolation:isolate;padding:22px;filter:var(--drop)}
.v3-rfacts div::after{content:"";position:absolute;inset:0;z-index:-1;background:var(--bgc);clip-path:polygon(var(--k) 0,100% 0,100% calc(100% - var(--k)),calc(100% - var(--k)) 100%,0 100%,0 var(--k))}
.v3-rfacts dt{font:600 14px var(--font-text);color:#3E5262}
.v3-rfacts dd{font:900 26px/1.15 var(--font-display);margin:6px 0 0}
.v3-kits-lg{margin:0;max-width:900px}
.v3-kits-lg .v3-hotbar button{width:68px;height:68px}
.v3-kits-lg .v3-hotbar button img{width:40px;height:40px}
.v3-map-wide{aspect-ratio:16/8}
.v3-cta-band{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap}
.v3-cta-band h2{font:900 clamp(40px,5vw,72px)/.92 var(--font-display);text-transform:uppercase;margin-top:10px}
.v3-rules{display:grid;grid-template-columns:.8fr 1.2fr;gap:40px}
.v3-rules-body{display:grid;gap:18px;justify-items:start;font-size:18px;max-width:560px}

/* live */
.v3-live-grid{display:grid;grid-template-columns:minmax(260px,.8fr) 1.4fr;grid-template-rows:auto auto;gap:26px}
.v3-card{--bgc:var(--c-slab);filter:var(--drop-lg);padding:28px;min-width:0;
  ;--k:var(--cut)}
.v3-card-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:18px}
.v3-card-head h2{font:900 28px var(--font-display);text-transform:uppercase}
.v3-count{display:flex;flex-direction:column;gap:8px;justify-content:center;--bgc:var(--c-diamond);color:var(--c-ink)}
.v3-count .v3-eyebrow{color:var(--c-ink)}
.v3-count .muted{color:var(--c-ink);opacity:.75}
.v3-big{font:700 clamp(72px,9vw,128px)/1 var(--font-mono);color:var(--c-ink)}
.v3-count .v3-btn{align-self:flex-start;margin-top:12px;--bgc:var(--c-ink);color:#fff}
.v3-board{grid-row:span 2;grid-column:2}
.v3-map{grid-column:1}
.v3-map-frame{aspect-ratio:4/3;overflow:hidden;background:#0B141D;box-shadow:inset 0 0 0 2px var(--c-ink)}
.v3-map-frame iframe{width:100%;height:100%;border:0}
.podium-head{width:32px;height:32px;image-rendering:pixelated;margin:6px auto;box-shadow:0 0 0 2px var(--c-ink)}

/* light "polished stone" band: ranks + join */
.v3-light{background:var(--c-stone);color:var(--c-ink)}
.v3-light .v3-eyebrow{color:#0B6F78}
.v3-light .muted{color:#3E5262}
.v3-ranks{display:grid;grid-template-columns:repeat(5,1fr);gap:20px}
.v3-rank{display:flex;flex-direction:column;align-items:center;gap:12px;padding:18px 14px 20px;--bgc:var(--c-ink);color:#fff;filter:var(--drop);
  font:900 20px var(--font-display);text-transform:uppercase;transition:transform .1s,filter .1s;
  ;--k:var(--cut)}
.v3-rank img{width:100%;max-width:150px;aspect-ratio:1;object-fit:contain}
.v3-rank:hover{transform:translate(-3px,-3px);filter:drop-shadow(8px 8px 0 #0B6F78)}
.v3-rank-all{justify-content:center;--bgc:var(--c-diamond);color:var(--c-ink)}
.v3-join-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:40px;align-items:start}
.v3-steps{list-style:none;counter-reset:s;display:grid;gap:16px;padding:0}
.v3-steps li{counter-increment:s;display:grid;grid-template-columns:60px 1fr;grid-template-rows:auto auto;column-gap:18px;padding:20px;--bgc:#fff;color:var(--c-ink);filter:var(--drop);
  ;--k:var(--cut)}
.v3-steps li::before{content:counter(s);grid-row:span 2;display:grid;place-items:center;width:60px;height:60px;background:var(--c-ink);color:var(--c-diamond);font:900 28px var(--font-display);
  clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px)}
.v3-steps b{font:800 21px var(--font-display)}
.v3-steps span{color:#3E5262}
.v3-inline-ip{color:#0B6F78;font-weight:700;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:2px}

:focus-visible{outline:3px solid var(--c-arena)!important;outline-offset:3px}


/* ---------- carried over from the Diamond Ore build ---------- */
/* strata: a thin band of real block texture between sections, so
   scrolling reads as digging down: grass, stone, deepslate, ore, bedrock */
.v3-strata{height:32px;background-size:32px 32px;image-rendering:pixelated;box-shadow:inset 0 3px 0 rgba(0,0,0,.35),inset 0 -3px 0 rgba(0,0,0,.35)}
.v3-strata-grass{background-image:var(--tx-grass)}
.v3-strata-deep{background-image:var(--tx-stone),var(--tx-deep);background-size:32px 32px;background-position:0 0,0 16px;background-repeat:repeat-x,repeat-x;height:48px}
.v3-strata-ore{background-image:var(--tx-ore)}
.v3-strata-bedrock{background-image:var(--tx-bedrock)}
/* faint block texture behind dark sections */
.v3-tex{position:relative;isolation:isolate}
.v3-tex::before{content:"";position:absolute;inset:0;z-index:-1;background-size:64px 64px;image-rendering:pixelated;opacity:.07}
.v3-tex-stone::before{background-image:var(--tx-stone)}
.v3-tex-deep::before{background-image:var(--tx-deep);opacity:.12}
.v3-tex-deep{background:#0B151D}

/* depth gauge: Y level of the section in view */
.v3-depth{position:fixed;right:18px;top:50%;transform:translateY(-50%);z-index:40;display:flex;flex-direction:column;align-items:flex-end;gap:6px;pointer-events:none}
.v3-depth-y{padding:6px 10px;background:var(--c-ink);color:#fff;font:800 16px var(--font-display);clip-path:polygon(6px 0,100% 0,100% calc(100% - 6px),calc(100% - 6px) 100%,0 100%,0 6px)}
.v3-depth-y b{color:var(--c-diamond);font-variant-numeric:tabular-nums}
.v3-depth-l{padding:3px 8px;background:rgba(10,17,23,.8);color:var(--muted);font:600 12px var(--font-text)}
.v3-depth-bar{width:6px;height:120px;background:rgba(10,17,23,.8);box-shadow:inset 0 0 0 1px #2A4660;position:relative;margin-right:4px}
.v3-depth-bar i{position:absolute;left:0;right:0;top:0;height:0;background:linear-gradient(var(--c-grass),#8A8A8A 35%,#4D4D50 65%,var(--c-diamond));transition:height .5s ease}

/* Practice kit hotbar + vanilla-style tooltip (modern type, MC structure) */
.v3-kits{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:start;margin:22px 0 4px}
.v3-hotbar{display:flex;padding:3px;background:var(--c-ink);box-shadow:4px 4px 0 rgba(10,17,23,.35)}
.v3-hotbar button{position:relative;width:56px;height:56px;display:grid;place-items:center;border:3px solid #8B8B8B;background:rgba(139,139,139,.28);margin-left:-3px}
.v3-hotbar button:first-child{margin-left:0}
.v3-hotbar button img{width:32px;height:32px;image-rendering:pixelated}
.v3-hotbar button span{position:absolute;right:3px;bottom:0;font:800 12px var(--font-display);color:#fff;text-shadow:1px 1px 0 #000}
.v3-hotbar button[aria-selected=true]{border-color:#fff;z-index:1;box-shadow:0 0 0 2px var(--c-ink)}
.v3-hotbar button:hover{background:rgba(255,255,255,.18)}
.v3-tip{padding:12px 14px;background:#120A1C;color:#fff;box-shadow:inset 0 0 0 2px #120A1C,inset 0 0 0 4px #3C1A7A;min-height:100%}
.v3-tip-name{font:800 18px var(--font-display)}
.v3-tip-lore{color:#C9A9F5;font-size:14px;margin:4px 0 6px}
.v3-tip ul{list-style:none;padding:0;margin:0;font-size:14px;color:#6BF07F}

@media (max-width:1100px){.v3-depth{display:none}.v3-kits{grid-template-columns:1fr}}
@media (max-width:520px){.v3-hotbar button{width:40px;height:40px;border-width:2px;margin-left:-2px}.v3-hotbar button img{width:22px;height:22px}}

@media (max-width:980px){
  .v3-stage::after{background:linear-gradient(0deg,rgba(10,17,23,.95) 0%,rgba(10,17,23,.6) 45%,rgba(10,17,23,.1) 75%)}
  .v3-hero-inner{justify-content:flex-end;padding-top:46vh}
  .v3-realms{grid-template-columns:1fr}
  .v3-realm{min-height:0}
  .v3-lobby,.v3-rules{grid-template-columns:1fr}
  .v3-live-grid{grid-template-columns:1fr}
  .v3-board,.v3-map{grid-column:auto;grid-row:auto}
  .v3-ranks{grid-template-columns:repeat(2,1fr)}
  .v3-join-grid{grid-template-columns:1fr}
}
@media (max-width:520px){
  .v3-ip-v{font-size:16px;padding:0 12px}
  .v3-switch{width:100%}
  .v3-switch button{flex:1;padding:10px 6px;font-size:13px}
}
@media (prefers-reduced-motion:reduce){.v3-dot.on{animation:none}.scene-canvas{transition:none}.v3-btn,.v3-ip,.v3-rank{transition:none}}

/* ============================================================
   App-wide components (store, tickets, auth, dashboard, admin)
   pulled into the same gem-cut system. Markup is untouched.
   ============================================================ */
.btn,.neo-card,.neo-card-sm,.empty-state,.auth-card,.store-rank-card{position:relative;isolation:isolate;border:0!important;border-radius:0!important;box-shadow:none!important;background:transparent!important;--k:var(--cut);--bgc:var(--c-slab);filter:var(--drop)}
.neo-card,.auth-card,.store-rank-card,.empty-state{filter:var(--drop-lg)}
.btn::after,.neo-card::after,.neo-card-sm::after,.empty-state::after,.auth-card::after,.store-rank-card::after{content:"";position:absolute;inset:0;z-index:-1;background:var(--bgc);box-shadow:inset 0 0 0 2px var(--c-ink);
  clip-path:polygon(var(--k) 0,100% 0,100% calc(100% - var(--k)),calc(100% - var(--k)) 100%,0 100%,0 var(--k))}
.neo-card-sm{--k:10px}
.btn{--k:10px;--bgc:#1C3348;color:var(--text);font-family:var(--font-display);font-weight:800;letter-spacing:.01em;text-transform:none;transition:transform .1s,filter .1s}
.btn:hover{transform:translate(-2px,-2px);filter:drop-shadow(7px 7px 0 var(--c-ink))}
.btn:active{transform:translate(4px,4px);filter:drop-shadow(1px 1px 0 var(--c-ink))}
.btn:disabled,.btn[aria-disabled="true"]{transform:none;filter:none;opacity:.5}
.btn-primary{--bgc:var(--c-diamond);color:var(--c-ink)!important}
.btn-danger{--bgc:var(--c-heart);color:var(--c-ink)!important}
.btn-ghost{--bgc:transparent;filter:none}
.btn-ghost::after{box-shadow:inset 0 0 0 2px #2A4660}

.kicker{font:700 15px/1.2 var(--font-text);letter-spacing:0;text-transform:none;color:var(--c-diamond)}
.section-head{text-align:left;max-width:none;margin:0 0 40px;padding-top:24px}
.section-title,.page-title,.store-hero h1{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.01em;line-height:.92}
.section-title{font-size:clamp(48px,7vw,104px)}
.section-title .accent,.store-hero h1 .accent{color:var(--c-diamond)}
.section-sub{color:var(--muted);font-size:18px;max-width:520px;margin-top:12px}
.page-title{font-size:clamp(36px,5vw,64px)}
.store-hero{text-align:left}
.store-hero::before{display:none}
.store-hero > p,.store-hero .container > p{margin-inline:0}

.form-label{text-transform:none;letter-spacing:0;font-size:14px;color:var(--text)}
.input{border:2px solid var(--c-ink)!important;border-radius:0!important;background:#0B151D!important;box-shadow:inset 0 0 0 1px #2A4660!important}
.input:focus{box-shadow:inset 0 0 0 2px var(--c-diamond)!important}
.input[aria-invalid="true"]{box-shadow:inset 0 0 0 2px var(--c-heart)!important}
.badge{border-radius:0!important;text-transform:none;letter-spacing:0;font-size:12px;clip-path:polygon(5px 0,100% 0,100% calc(100% - 5px),calc(100% - 5px) 100%,0 100%,0 5px)}
.alert{border-radius:0!important;border:2px solid var(--c-ink)!important;box-shadow:5px 5px 0 var(--c-ink)}
.alert-error{background:rgba(255,77,94,.16)!important;color:#FFD1D6!important}
.map-container{border:0!important;border-radius:0!important;box-shadow:inset 0 0 0 3px var(--c-ink),8px 8px 0 var(--c-ink)!important}
.footer{border-top:0;background:#0A1117;position:relative;isolation:isolate}
/* bedrock footer: stats page only (the dig-down page) */
.footer.v3-bedrock{background:transparent;box-shadow:inset 0 3px 0 rgba(0,0,0,.5)}
.footer.v3-bedrock::before{content:"";position:absolute;inset:0;z-index:-1;background-image:var(--tx-bedrock);background-size:64px 64px;image-rendering:pixelated;opacity:.55;pointer-events:none}
.footer.v3-bedrock p,.footer.v3-bedrock a,.footer.v3-bedrock li,.footer.v3-bedrock span{text-shadow:0 2px 0 rgba(0,0,0,.85)}
.footer h2{text-transform:none;letter-spacing:0;font-size:14px;color:var(--text)}
.podium{border-radius:0}
.lb-table th{text-transform:none;letter-spacing:0;font-family:var(--font-text);font-size:13px}
.store-rank-card{overflow:visible}
.store-rank-card > *{position:relative}

/* page heads on inner pages get a thin strata line under them */
.v3-pagehead{padding-block:56px 0}
.v3-pagehead h1{font:900 clamp(28px,7.6vw,120px)/.9 var(--font-display);text-transform:uppercase;letter-spacing:.01em;margin:10px 0 12px}
.v3-pagehead p.v3-lead{color:var(--muted);font-size:18px;max-width:540px}
.v3-pagehead + .v3-strata{margin-top:40px}
.v3-modes{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
@media (max-width:980px){.v3-modes{grid-template-columns:1fr}}

/* ---- Page heroes: the homepage diorama behind every page head ---- */
[data-scene]{position:relative;isolation:isolate}
[data-scene] > .v3-stage{position:absolute;inset:0;height:auto;margin:0;z-index:-1}
.v3-phero{display:flex;align-items:flex-end;min-height:clamp(460px,64svh,740px);padding:160px 0 64px;margin-top:calc(-1 * (var(--nav-h) + 4px + var(--space-6)))}
.v3-phero .v3-pagehead{padding-block:0}
.v3-phero .v3-pagehead p.v3-lead{color:#C9D6E0}
.v3-phero + .v3-strata{margin-top:0}
.v3-phero .v3-stage::after{background:linear-gradient(90deg,rgba(10,17,23,.88) 0%,rgba(10,17,23,.5) 40%,rgba(10,17,23,0) 65%),linear-gradient(0deg,var(--c-night) 0%,transparent 30%)}

/* realm pages: their island, tinted in the realm colour */
.v3-rhero{background:none;color:#fff;min-height:clamp(560px,82svh,900px);display:flex;align-items:flex-end;padding-bottom:72px}
.v3-rhero h1,.v3-rhero .v3-eyebrow{color:var(--c);opacity:1}
.v3-rhero .v3-back{color:#fff}
.v3-rhero-blurb{color:#C9D6E0}
.v3-rhero .v3-stage::after{background:linear-gradient(90deg,rgba(10,17,23,.9) 0%,rgba(10,17,23,.55) 42%,rgba(10,17,23,0) 68%),linear-gradient(0deg,var(--c-night) 0%,transparent 30%)}
.v3-rhero .v3-stage::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(0deg,var(--c) 0,var(--c) 6px,transparent 6px)}

/* store sign-in + login/register: card floats over the diorama */
.v3-scene-full{min-height:max(640px,88svh);display:flex;align-items:center;justify-content:center;padding:150px 0 70px;margin-top:calc(-1 * (var(--nav-h) + 4px + var(--space-6)))}
.v3-scene-auth{min-height:100svh;display:flex;align-items:center;justify-content:center;padding:var(--space-10) var(--space-5)}
.v3-scene-full .v3-stage::after,.v3-scene-auth .v3-stage::after{background:rgba(10,17,23,.45)}
.store-login-card{position:relative;isolation:isolate;filter:var(--drop-lg)}
@media (max-width:760px){.v3-phero{min-height:440px;padding-top:240px}.v3-rhero{padding-top:300px}}

/* ---- Stats page: dig down through the layers ---- */
.v3-layer{position:relative;isolation:isolate;padding:72px 0}
.v3-layer::before{content:"";position:absolute;inset:0;z-index:-1;background-size:64px 64px;image-rendering:pixelated}
.v3-layer::after{content:"";position:absolute;inset:0;z-index:-1;background:rgba(10,17,23,.55)}
.v3-layer-dirt::before{background-image:var(--tx-dirt)}
.v3-layer-stone::before{background-image:var(--tx-stone)}
.v3-layer-deep::before{background-image:var(--tx-deep)}
.v3-layer-deep::after{background:rgba(10,17,23,.35)}
.v3-layer .v3-board,.v3-layer .v3-map{grid-column:auto;grid-row:auto}
.v3-layer .v3-count{max-width:560px}
.v3-layer .v3-map-frame{height:min(70svh,620px)}

/* ---- Leaderboard: podium reads 2-1-3 with the leader raised ---- */
.podium{align-items:end;gap:0;background:none;border:0;margin-bottom:var(--space-5)}
.podium-item{border:2px solid var(--ink-line,#1c3348);padding:var(--space-5) var(--space-3)}
.podium-item:nth-child(1){order:2;padding-block:var(--space-8) var(--space-6);background:var(--panel-3);border-color:var(--c-diamond,#22D3EE)}
.podium-item:nth-child(2){order:1}
.podium-item:nth-child(3){order:3}
.podium-item:nth-child(1) .podium-head{width:56px;height:56px}
.podium-item:nth-child(1) .podium-name{font:900 var(--fs-lg) var(--font-display);text-transform:uppercase}
.podium-item:nth-child(1) .podium-score{color:var(--c-diamond,#22D3EE)}
.lb-table th:first-child,.lb-table td:first-child{width:64px;padding-left:var(--space-3);text-align:left}
.lb-table th{padding:var(--space-3) var(--space-2);text-align:left}
.lb-table th:last-child{text-align:right}
.lb-row{transition:background-color .15s}
.lb-row:hover{background:var(--panel-2)}
.player-name{font-weight:600;font-size:var(--fs-md)}
@media(max-width:560px){
  .podium{grid-template-columns:1fr}
  .podium-item:nth-child(n){order:0}
  .podium-item:nth-child(1){order:-1}
}

/* Map frame: height-driven aspect-ratio must never widen its grid cell on phones */
.v3-map-frame{width:100%;max-width:100%;min-width:0}
.v3-layer .v3-map-frame{aspect-ratio:auto}

/* Hero lead sits over bright 3D islands: lift it with a soft ink halo */
.v3-sub{text-shadow:0 1px 2px rgba(7,13,19,.85),0 0 18px rgba(7,13,19,.7)}

/* ============================================================
   Polish pass 2026-11-06 (review at 1440 / 390)
   ============================================================ */
/* Sticky 3D stage has margin-bottom:-100svh, so it overhung the tour by a
   full screen and painted over the light "How to join" band. Clip it to
   the tour (overflow:clip keeps position:sticky working). */
.v3-tour{overflow:clip}
/* Island cards: eyebrow inherited diamond cyan, ~1:1 on coral/green/gold */
.v3-stop-card .v3-eyebrow{color:var(--c-ink);opacity:.8}
/* Teal eyebrow on polished stone was 4.3:1; nudge darker to clear AA */
.v3-light .v3-eyebrow{color:#08606A}
/* main.css still carried the old "Moss & Mortar" emerald ramp: active nav
   tint, link hover, scores, step numbers and hover edges read green next to
   the diamond cyan. Re-point the ramp at the brand; success stays grass. */
:root{
  --emerald:var(--c-diamond);--emerald-deep:#0B6F78;
  --emerald-tint:rgba(46,230,240,.10);--emerald-edge:rgba(46,230,240,.38);
  --glow:rgba(46,230,240,.35);--bleed:rgba(46,230,240,.12);
  --cyan:var(--c-diamond);--cyan-dim:rgba(46,230,240,.10);--cyan-mid:rgba(46,230,240,.25);
  --success:var(--c-grass);--green:var(--c-grass);--focus:var(--c-arena);
}
a:hover{color:#8EF3F8}
.copy-ip-text:hover,.mode-cta a:hover{color:#8EF3F8}
/* the global a:hover (0,1,1) outranked button colours, so link-buttons
   changed text colour on hover (green before, would be cyan-on-cyan now) */
.v3-btn:hover{color:var(--text)}
.v3-btn-primary:hover{color:var(--c-ink)}
.v3-realm .v3-btn-primary:hover,.v3-stop-card .v3-btn-primary:hover,.v3-count .v3-btn:hover{color:#fff}
.btn:hover{color:var(--text)}
.v3-rank:hover{color:#fff}.v3-rank-all:hover{color:var(--c-ink)}
.v3-realm-view:hover,.v3-rhero .v3-back:hover{color:inherit}
/* inline copy-IP buttons fell back to UA button chrome (grey fill, outset
   border), and the light-band teal was ~2:1 on the dark realm pages */
.v3-inline-ip{background:none;border:0;padding:0;font-family:var(--font-mono);font-size:inherit;line-height:inherit;cursor:pointer}
.v3-route .v3-inline-ip{color:var(--c-diamond)}
.v3-light .v3-inline-ip{color:#08606A}
/* Practice realm page: the large 68px hotbar (7 slots = 470px) beat the
   520px phone rule on specificity and pushed the page 96px wide */
@media (max-width:520px){
  .v3-kits-lg .v3-hotbar button{width:46px;height:46px}
  .v3-kits-lg .v3-hotbar button img{width:26px;height:26px}
}
/* No button reset anywhere: realm switch, hotbar-less copy buttons and
   v3-btn <button>s rendered UA grey fill + 2px outset border. Element-level
   only, so every class rule still wins. */
button{background:transparent;border:0;cursor:pointer}
/* Inner-page h1 bottomed out at 28px on phones, smaller than the 34px
   card titles under it; give the page title the top spot again */
@media (max-width:760px){.v3-pagehead h1{font-size:clamp(28px,10vw,56px)}}
/* Stats card heads: 28px title + link squeezed into two broken columns on phones */
.v3-card-head{flex-wrap:wrap;row-gap:6px}
.v3-card-head .v3-link{white-space:nowrap}

/* Tour finale: camera returns to the centre island + logo before "How to join" appears */
.v3-finale{align-items:flex-end;justify-content:center;padding-bottom:14svh}
.v3-finale-hint{font:700 15px var(--font-text);letter-spacing:.14em;text-transform:uppercase;color:#DCE8F0;text-shadow:0 1px 3px rgba(7,13,19,.9)}

/* How to join: sits on the tour's sticky 3D stage (centre island + logo) instead of a flat light slab */
.v3-join-dark{position:relative;color:#fff;
  background:linear-gradient(180deg,rgba(7,13,19,0) 0,rgba(7,13,19,.72) 26%,rgba(7,13,19,.88) 100%)}
.v3-join-dark .v3-eyebrow{color:var(--c-diamond)}
.v3-join-dark h2{color:#fff;text-shadow:3px 3px 0 rgba(7,13,19,.9)}
.v3-join-dark .v3-inline-ip{color:#0B6F78}

/* Join section is now just the IP, centred under the logo */
.v3-join-dark{min-height:70svh;display:flex;align-items:flex-end;padding-block:0 17svh;background:linear-gradient(180deg,rgba(7,13,19,0) 0,rgba(7,13,19,.55) 100%)}
.v3-join-ip{display:flex;flex-direction:column;align-items:center;gap:14px}
.v3-social{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}
.v3-finale{padding-bottom:1.5svh}
.v3-social .v3-btn{min-height:40px;padding-block:8px}
/* compact footer so the logo, IP and socials all clear it */
@media(min-width:721px){
  .footer-grid{grid-template-columns:minmax(0,1.3fr) minmax(0,1.7fr) minmax(0,1fr)}
  .footer-grid nav:first-of-type .footer-col{flex-direction:row;flex-wrap:wrap;gap:0 22px}
  .footer-col a,.footer-col button{min-height:34px}
}
/* v3-ip-xl removed: the big finale bar inherited scale(1.35) but .v3-ip:hover/:active replaced
   (not composed with) that transform, so the bar visibly snapped to the small size while you
   pressed it. The standard .v3-ip size is now the only size, for a consistent feel. */

/* Translucent footer: the 3D stage shows through (home overlaps the tour's last screen) */
.footer{background:rgba(10,17,23,.58);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid rgba(255,255,255,.08)}
main:has(.v3-tour) ~ .footer{margin-top:calc(-1 * var(--foot-h,380px))}
.v3-foot-spacer{height:var(--foot-h,380px)}
.footer-credit a{color:var(--c-diamond);font-weight:700;text-decoration:none}
.footer-credit a:hover{text-decoration:underline;text-underline-offset:3px}
.footer-bottom{justify-content:space-between}
.footer{position:relative;z-index:3}

/* ============================================================
   Stats: a continuous dig from grass to bedrock (2026-11-06 pass 2)
   Layers overlap by one block row and meet on a stepped, block-cut
   edge instead of a straight seam. Y signs mark the depth.
   ============================================================ */
.v3-dig{--step:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='256' height='32'%3E%3Cpath d='M0 16h32V0h32v16h32v16h32V16h32V0h32v16h32V0h32v32H0z'/%3E%3C/svg%3E");position:relative}
.v3-dig .v3-layer{padding:110px 0 120px;margin-top:-32px;background:none;
  -webkit-mask:var(--step) 0 0/256px 32px repeat-x,linear-gradient(#000 0 0) 0 32px/100% calc(100% - 32px) no-repeat;
          mask:var(--step) 0 0/256px 32px repeat-x,linear-gradient(#000 0 0) 0 32px/100% calc(100% - 32px) no-repeat}
.v3-dig .v3-layer:first-child{margin-top:0;padding-top:140px}
.v3-dig .v3-layer::after{background:radial-gradient(120% 90% at 50% 50%,rgba(10,17,23,.18),rgba(10,17,23,.62))}
.v3-dig .v3-layer-dirt::before{background:var(--tx-grass) 0 0/64px 64px repeat-x,var(--tx-dirt) 0 64px/64px 64px}
.v3-dig .v3-layer-dirt{padding-bottom:90px}
.v3-dig .v3-layer-stone{padding-bottom:260px;min-height:900px}
.v3-dig .v3-layer-deep{padding-bottom:260px;min-height:900px}
.v3-dig .v3-layer-dirt::after{background:radial-gradient(120% 90% at 30% 35%,rgba(10,17,23,0),rgba(10,17,23,.3))}
.v3-dig .v3-layer-stone::after{background:radial-gradient(120% 90% at 50% 50%,rgba(10,17,23,.05),rgba(10,17,23,.4))}
.v3-dig .v3-layer-deep::after{background:radial-gradient(120% 90% at 50% 50%,rgba(10,17,23,.1),rgba(10,17,23,.55))}
.v3-layer-ore{position:relative;isolation:isolate;height:200px;margin-top:-32px;background:var(--tx-ore) 0 0/64px 64px;image-rendering:pixelated;
  -webkit-mask:var(--step) 0 0/256px 32px repeat-x,linear-gradient(#000 0 0) 0 32px/100% calc(100% - 32px) no-repeat;
          mask:var(--step) 0 0/256px 32px repeat-x,linear-gradient(#000 0 0) 0 32px/100% calc(100% - 32px) no-repeat}
.v3-layer-ore::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(10,17,23,.7));z-index:-1}
.v3-layer-ore .container{padding-top:70px}
/* depth sign: a cut-corner tag hanging in the left of each layer */
.v3-ysign{display:inline-flex;align-items:baseline;gap:10px;margin:0 0 22px;padding:8px 14px;background:var(--c-ink);color:#C9D6E0;
  font:600 14px var(--font-text);box-shadow:4px 4px 0 rgba(0,0,0,.45);
  clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px)}
.v3-ysign b{font:800 16px var(--font-mono);color:var(--c-diamond);font-variant-numeric:tabular-nums}
.v3-layer-ore .v3-ysign b{color:#A1FBE8}
/* the bedrock footer is the bottom of the dig: stepped top, legible copy */
.footer.v3-bedrock{margin-top:-32px;-webkit-backdrop-filter:none;backdrop-filter:none;border-top:0;box-shadow:none;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='256' height='32'%3E%3Cpath d='M0 0h64v16h64V0h32v16h64V0h32v32H0z'/%3E%3C/svg%3E") 0 0/256px 32px repeat-x,linear-gradient(#000 0 0) 0 32px/100% calc(100% - 32px) no-repeat;
  padding-top:32px}
.footer.v3-bedrock::before{opacity:1;background:linear-gradient(180deg,rgba(7,13,19,.55),rgba(7,13,19,.82)),var(--tx-bedrock) 0 0/64px 64px}
@media (max-width:760px){.v3-dig .v3-layer{padding:84px 0 96px}.v3-layer-ore{height:150px}.v3-layer-ore .container{padding-top:52px}}

/* ============================================================
   Inner pages pass 2: no pale bands. Former .v3-light sections are
   dark panels lit from above by the page tint (--c): realm colour on
   realm pages, diamond everywhere else.
   ============================================================ */
main{--c:var(--c-diamond)}
.v3-light{position:relative;isolation:isolate;color:var(--text);
  background:radial-gradient(900px 260px at 18% 0,color-mix(in srgb,var(--c) 16%,transparent),transparent 70%),#0C1821;
  box-shadow:inset 0 1px 0 color-mix(in srgb,var(--c) 40%,transparent)}
.v3-light .v3-eyebrow{color:var(--c)}
.v3-light .muted{color:var(--muted)}
.v3-light .v3-inline-ip,.v3-light a.v3-inline-ip{color:var(--c)}
.v3-rfacts div{--bgc:var(--c-slab);color:var(--text);box-shadow:inset 3px 0 0 var(--c)}
.v3-rfacts div::after{box-shadow:inset 0 3px 0 var(--c)}
.v3-rfacts dt{color:var(--muted)}
.v3-rfacts dd{color:#fff}
.v3-steps li{--bgc:var(--c-slab);color:var(--text)}
.v3-steps span{color:var(--muted)}
.v3-rank:hover{filter:drop-shadow(8px 8px 0 color-mix(in srgb,var(--c) 55%,#000))}
/* realm pages: tint carries through eyebrows, links, buttons and strata accents */
.v3-realmpage .v3-eyebrow,.v3-realmpage .v3-route li::marker,.v3-realmpage .v3-route .v3-inline-ip{color:var(--c)}
.v3-realmpage .v3-btn-primary{--bgc:var(--c)}
.v3-realmpage .v3-tex-deep{background:radial-gradient(900px 300px at 85% 0,color-mix(in srgb,var(--c) 10%,transparent),transparent 70%),#0B151D}
.v3-realmpage .v3-lobby-shot{box-shadow:inset 0 0 0 3px var(--c-ink),inset 0 4px 0 var(--c),8px 8px 0 var(--c-ink)}
/* store sign-in band no longer jumps to grey under the floating card */
.store-hero.v3-scene-full + .v3-light{margin-top:0}

/* ============================================================
   Empty + offline states (pass 3)
   ============================================================ */
/* unclaimed podium: three hollow steps, 2-1-3, question-mark heads */
.v3-idle{display:grid;justify-items:center;text-align:center;gap:10px;padding:44px 16px 40px}
.v3-idle-podium{display:flex;align-items:flex-end;gap:6px;margin-bottom:14px}
.v3-idle-step{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;width:88px;padding-bottom:10px;
  background:repeating-linear-gradient(135deg,rgba(255,255,255,.035) 0 8px,transparent 8px 16px),#132636;
  box-shadow:inset 0 0 0 2px #2A4660,inset 0 3px 0 var(--c,var(--c-diamond)),5px 5px 0 var(--c-ink)}
.v3-idle-1{height:116px}.v3-idle-2{height:84px}.v3-idle-3{height:64px}
.v3-idle-step b{font:900 24px var(--font-display);color:#5C7890}
.v3-idle-1 b{color:var(--c,var(--c-diamond))}
.v3-idle-head{position:absolute;top:-46px;width:36px;height:36px;display:grid;place-items:center;background:#0B151D;color:#5C7890;
  font:800 18px var(--font-display);box-shadow:inset 0 0 0 2px #2A4660;animation:v3bob 2.4s ease-in-out infinite}
.v3-idle-1 .v3-idle-head{animation-delay:-.8s;color:var(--c,var(--c-diamond));box-shadow:inset 0 0 0 2px var(--c,var(--c-diamond))}
.v3-idle-3 .v3-idle-head{animation-delay:-1.6s}
@keyframes v3bob{50%{transform:translateY(-5px)}}
.v3-idle-title{font:900 clamp(24px,2.4vw,32px)/1 var(--font-display);text-transform:uppercase;color:#fff;margin:0}
.v3-idle-msg{color:var(--muted);max-width:420px;line-height:1.55;margin:0 0 10px}
@media (prefers-reduced-motion:reduce){.v3-idle-head{animation:none}}

/* (removed 2026-11-07: .v3-mapbox/.v3-mapdown grid-line placeholder and the
   .v3-lobby-shot/.v3-lobby-isle island silhouette with its infinite v3isle bob.
   No page renders that markup any more; the live map and lobby now come from
   the 3D page scenes.) */

/* Earth/realm hero title must not sit over the island on narrow screens */
@media (max-width:980px){.v3-rhero .v3-stage::after{background:linear-gradient(0deg,rgba(10,17,23,.96) 0%,rgba(10,17,23,.75) 45%,rgba(10,17,23,.15) 80%)}
  .v3-rhero h1{text-shadow:4px 4px 0 var(--c-ink)}}

/* ============================================================
   Glow-up run 2: realm pages descend into their own material
   ============================================================ */
.v3-ls{--tx-realm:var(--tx-nether)}
.v3-ea{--tx-realm:var(--tx-grass)}
.v3-pr{--tx-realm:var(--tx-sand)}
.v3-strata-realm{background-image:var(--tx-realm,var(--tx-stone));height:40px;background-size:40px 40px}
.v3-ea .v3-strata-realm{background-size:40px 40px}
.v3-realmpage .v3-tex::before{background-image:var(--tx-realm);opacity:.06}
.v3-realmpage .v3-tex-deep::before{opacity:.09}

/* Getting in: three numbered blocks in a row */
.v3-path{list-style:none;counter-reset:p;display:grid;grid-template-columns:repeat(3,1fr);gap:22px;padding:0;margin:0}
.v3-path li{counter-increment:p;position:relative;isolation:isolate;display:grid;gap:10px;padding:26px 24px 28px;--k:var(--cut);filter:var(--drop)}
.v3-path li::after{content:"";position:absolute;inset:0;z-index:-1;background:var(--c-slab);box-shadow:inset 0 4px 0 var(--c);
  clip-path:polygon(var(--k) 0,100% 0,100% calc(100% - var(--k)),calc(100% - var(--k)) 100%,0 100%,0 var(--k))}
.v3-path li::before{content:counter(p,decimal-leading-zero);font:900 54px/1 var(--font-display);color:var(--c)}
.v3-path b{font:900 24px var(--font-display);text-transform:uppercase;color:#fff}
.v3-path span{color:var(--muted);line-height:1.55}
.v3-path .v3-inline-ip{color:var(--c);font-family:var(--font-mono)}

/* How it works: tall cards in the realm colour, Modes-card weight */
.v3-realmpage .v3-rfacts{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:24px}
.v3-realmpage .v3-rfacts div{--bgc:var(--c);color:var(--c-ink);min-height:200px;display:flex;flex-direction:column;justify-content:space-between;padding:26px;box-shadow:none;filter:var(--drop-lg)}
.v3-realmpage .v3-rfacts div::after{box-shadow:none}
.v3-realmpage .v3-rfacts dt{color:var(--c-ink);opacity:.72;font:700 15px var(--font-text)}
.v3-realmpage .v3-rfacts dd{color:var(--c-ink);font:900 clamp(30px,2.8vw,42px)/1 var(--font-display);text-transform:uppercase}
.v3-realmpage .v3-rfacts div.is-long dd{font-size:clamp(20px,1.6vw,24px);line-height:1.25;text-transform:none}

/* Lifesteal board: copy left, live card right */
.v3-board-split{display:grid;grid-template-columns:.8fr 1.2fr;gap:44px;align-items:start}
@media (max-width:980px){.v3-board-split,.v3-path{grid-template-columns:1fr}}
.v3-realmpage .v3-rfacts dd{overflow-wrap:break-word}

/* glow-up run 2: quick fixes */
.v3-idle-step b,.v3-idle-head{color:#8AA2B5}
a.v3-inline-ip{font-family:var(--font-text);font-weight:700}
.v3-count.is-off .v3-big{color:rgba(10,17,23,.55)}
.v3-count.is-off .v3-big::after{content:"PAUSED";display:inline-block;margin-left:.3em;vertical-align:.9em;padding:4px 10px;background:var(--c-ink);color:var(--c-diamond);font:800 14px/1 var(--font-display);letter-spacing:.06em}
.v3-depth{display:none}
.footer h2{margin-top:0}
.btn-ghost,.v3-btn:not(.v3-btn-primary){--bgc:#1F3A52}
.footer{margin-top:0}
.v3-sub{max-width:38ch}
/* footer: more see-through, tighter alignment */
.footer{background:rgba(10,17,23,.3);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);padding-block:var(--space-10) var(--space-6)}
.footer-grid{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr);align-items:start;gap:var(--space-8);margin-bottom:var(--space-6)}
.footer-brand{margin-bottom:var(--space-4)}
.footer-tagline{color:var(--muted);max-width:26ch;line-height:1.5}
.footer h2{line-height:36px;margin-bottom:var(--space-4)}
.footer-col a,.footer-col button{min-height:40px}
.footer-grid p,.footer-grid a,.footer-grid button,.footer-grid h2,.footer-bottom{text-shadow:0 1px 8px rgba(0,0,0,.7)}
@media (max-width:720px){.footer-grid{grid-template-columns:1fr 1fr;gap:var(--space-6)}.footer-grid>div:first-child{grid-column:1/-1}}
@media (max-width:760px){
  .v3-path li{grid-template-columns:auto 1fr;column-gap:16px;row-gap:4px;padding:20px}
  .v3-path li::before{grid-row:span 2;font-size:40px;align-self:start}
  .v3-realmpage .v3-rfacts div{min-height:128px}
}

/* P1: auth screens get a way back to the site */
.v3-scene-auth{position:relative}
.v3-auth-back{position:absolute;top:24px;left:max(20px,4vw);z-index:2;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;
  background:rgba(10,17,23,.72);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;font:700 15px var(--font-text);
  clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px)}
.v3-auth-back:hover{color:var(--c-diamond)}
@media (max-width:520px){.v3-scene-auth{padding-top:88px}}

/* P1: realm pages, one-line route in the hero (replaces the repeated "Getting in" section) */
.v3-hroute{list-style:none;counter-reset:h;display:flex;flex-wrap:wrap;gap:8px 20px;padding:0;margin:26px 0 0;color:#C9D6E0;font:600 15px var(--font-text)}
.v3-hroute li{counter-increment:h;display:flex;align-items:center;gap:8px}
.v3-hroute li::before{content:counter(h);display:grid;place-items:center;width:24px;height:24px;background:var(--c);color:var(--c-ink);font:900 13px var(--font-display);
  clip-path:polygon(5px 0,100% 0,100% calc(100% - 5px),calc(100% - 5px) 100%,0 100%,0 5px)}

/* P1: each realm draws its own rule */
.v3-meter{margin:0 0 30px;padding:28px;display:grid;grid-template-columns:auto 1fr;gap:20px 40px;align-items:center;position:relative;isolation:isolate;filter:var(--drop-lg);--k:var(--cut)}
.v3-meter::after{content:"";position:absolute;inset:0;z-index:-1;background:var(--c-slab);box-shadow:inset 4px 0 0 var(--c);clip-path:polygon(var(--k) 0,100% 0,100% calc(100% - var(--k)),calc(100% - var(--k)) 100%,0 100%,0 var(--k))}
.v3-meter figcaption{font-size:17px;line-height:1.6;color:#C9D6E0;max-width:520px}
.v3-meter figcaption b{color:var(--c)}
/* Lifesteal: a 20-heart bar, 10 full */
.v3-hearts{display:grid;grid-template-columns:repeat(10,26px);gap:6px}
.v3-heart{width:26px;height:24px;background:#2A3A4A;
  clip-path:polygon(0 25%,12.5% 25%,12.5% 0,37.5% 0,37.5% 12.5%,62.5% 12.5%,62.5% 0,87.5% 0,87.5% 25%,100% 25%,100% 62.5%,87.5% 62.5%,87.5% 75%,75% 75%,75% 87.5%,62.5% 87.5%,62.5% 100%,37.5% 100%,37.5% 87.5%,25% 87.5%,25% 75%,12.5% 75%,12.5% 62.5%,0 62.5%)}
.v3-heart.on{background:var(--c-heart);box-shadow:inset 6px 6px 0 rgba(255,255,255,.35)}
/* Skyblock: island grows into empire */
.v3-grow{display:flex;align-items:flex-end;gap:18px}
.v3-grow span{display:grid;justify-items:center;gap:8px}
.v3-grow i{display:block;background:var(--tx-grass) 0 0/16px 16px;image-rendering:pixelated;box-shadow:4px 4px 0 var(--c-ink)}
.v3-grow .t i{width:48px;height:48px}.v3-grow .n i{width:112px;height:112px}
.v3-grow b{font:800 14px var(--font-display);text-transform:uppercase;color:#fff}
.v3-grow .arrow{align-self:center;width:34px;height:4px;background:var(--c);position:relative;margin-bottom:24px}
.v3-grow .arrow::after{content:"";position:absolute;right:-4px;top:-6px;border:8px solid transparent;border-left-color:var(--c);border-right:0}
/* Practice: bot difficulty ramp */
.v3-ladder{display:flex;align-items:flex-end;gap:8px;height:120px}
.v3-ladder span{position:relative;width:34px;height:var(--h);background:var(--c);box-shadow:4px 4px 0 var(--c-ink)}
.v3-ladder span:nth-child(1){background:color-mix(in srgb,var(--c) 40%,#16293A)}.v3-ladder span:nth-child(2){background:color-mix(in srgb,var(--c) 55%,#16293A)}.v3-ladder span:nth-child(3){background:color-mix(in srgb,var(--c) 70%,#16293A)}.v3-ladder span:nth-child(4){background:color-mix(in srgb,var(--c) 85%,#16293A)}
.v3-ladder b{position:absolute;top:-22px;left:50%;transform:translateX(-50%);font:800 12px var(--font-display);text-transform:uppercase;color:#fff;white-space:nowrap}
/* fact-card labels: darker and heavier (critique P3) */
.v3-realmpage .v3-rfacts dt{opacity:.85;font-weight:800}
@media (max-width:760px){.v3-meter{grid-template-columns:1fr;padding:22px}.v3-hearts{grid-template-columns:repeat(10,minmax(0,22px));gap:4px}.v3-heart{width:auto;aspect-ratio:13/12;height:auto}}
.v3-rhero h1{text-shadow:5px 5px 0 var(--c-ink)}

/* P2: Stats while offline — one clear "asleep" card at the top, the
   lower layers shrink to one-line notes so the dig still reads */
.v3-asleep{display:none}
.v3-dig.is-off .v3-board,.v3-dig.is-off .v3-map{display:none}
.v3-dig.is-off .v3-asleep{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;max-width:720px;margin:0;padding:18px 22px;
  background:rgba(10,17,23,.86);color:#C9D6E0;line-height:1.5;box-shadow:5px 5px 0 rgba(0,0,0,.45);
  clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px)}
.v3-asleep b{font:900 18px var(--font-display);text-transform:uppercase;color:#fff}
.v3-dig.is-off .v3-layer-stone,.v3-dig.is-off .v3-layer-deep{padding-block:90px 100px}


/* P3: fact-card labels as solid ink (opacity mixed to 4.2:1 on gold) */
.v3-realmpage .v3-rfacts dt{opacity:1;color:#1A2530}

/* Stats-API board tabs */
.v3-bt{display:grid;gap:10px;margin-bottom:var(--space-4,16px)}
.v3-bt-row{display:flex;flex-wrap:wrap;gap:6px}
.v3-bt-row button{font:600 13px var(--font-text);color:var(--dim);background:var(--panel-2);border:1px solid rgba(255,255,255,.08);padding:8px 14px;min-height:40px;cursor:pointer;clip-path:polygon(6px 0,100% 0,100% calc(100% - 6px),calc(100% - 6px) 100%,0 100%,0 6px)}
.v3-bt-row button:hover{color:#fff}
.v3-bt-row button[aria-selected=true],.v3-bt-row button[aria-pressed=true]{color:var(--c-ink,#0A1117);background:var(--c-diamond,#22D3EE);border-color:transparent}
.v3-bt-row:first-child button{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase}
.v3-bt-stats button{font-size:12px;padding:6px 10px;min-height:36px}
.v3-bt-row button:focus-visible{outline:2px solid #fff;outline-offset:2px}

.v3-soon{display:inline-block;padding:2px 8px;margin-left:2px;background:var(--c-diamond);color:#0A1117;font:800 11px/1.4 var(--font-text);letter-spacing:.08em;text-transform:uppercase;border-radius:3px;vertical-align:1px}
.v3-stage.mc-sky .v3-sky{background:linear-gradient(180deg,#5f9bf0 0%,#8fbdf8 48%,#cfe5fb 100%)}
.v3-stage.mc-sky::after{background:linear-gradient(90deg,rgba(10,17,23,.88) 0%,rgba(10,17,23,.62) 38%,rgba(10,17,23,.12) 62%,rgba(10,17,23,0) 75%),linear-gradient(0deg,var(--c-night) 0%,transparent 20%)}
.v3-stage.mc-sky::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(38,50,68,.9),rgba(60,74,92,.6));opacity:var(--rain,0)}

.v3-cmd-btn[aria-pressed=true]{--bgc:#2a4d6e}
.v3-chat{margin-top:14px;min-height:30px;max-width:340px;padding:5px 10px;font:600 14px/1.5 var(--font-mono);color:#fff;background:rgba(0,0,0,.55);text-shadow:1px 1px 0 #3f3f3f;opacity:0;transition:opacity .2s}
.v3-chat.show{opacity:1}
.v3-chat-ok{color:#55ff55}
.v3-hero-copy .v3-chat{display:block}

/* hero alignment: chat line floats (no reserved gap), CTA row matches heights, tighter rhythm */
.v3-hero-copy{position:relative}
.v3-hero-copy .v3-chat{position:absolute;left:0;top:100%;margin-top:10px;min-height:0;white-space:nowrap}
.v3-hero-cta{align-items:stretch;gap:14px}
.v3-hero-cta>.v3-ip,.v3-hero-cta>.v3-btn{display:inline-flex;align-items:center;justify-content:center}
.v3-hero-cta>.v3-btn{padding-inline:26px}
.v3-hero-inner{gap:34px}

/* hero CTA: IP on top, Discord logo + Make it rain underneath */
.v3-hero-cta{flex-direction:column;align-items:flex-start;gap:14px}
.v3-cta-row{display:flex;gap:14px;align-items:stretch}
.v3-cta-row .v3-btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px}
.v3-btn-icon{width:56px;padding:0!important;color:#fff}
.v3-btn-icon:hover{color:#8EA1FF}

/* critique fixes: fit the hero to short viewports, chat shares the button row instead of overlapping the tabs */
.v3-hero-copy .v3-chat{position:static;margin:0;align-self:center;max-width:none}
.v3-cta-row{align-items:center}
.v3-cta-row .v3-btn{align-self:stretch}
@media (min-width:981px){.v3-hero-inner{padding-top:calc(var(--nav-h) + 28px + clamp(28px,6vh,72px));padding-bottom:clamp(28px,6vh,72px);gap:clamp(20px,3.6vh,34px)}}
.v3-hero-inner{gap:clamp(20px,3.6vh,34px)}
.v3-title{font-size:clamp(44px,min(6.6vw,10.5vh),104px);margin:clamp(12px,2.2vh,22px) 0 clamp(10px,1.8vh,18px)}
.v3-hero-cta{margin-top:clamp(18px,3vh,30px)}
@media (max-width:980px){.v3-hero-copy .v3-chat{display:none}}

/* phone + tablet: the sky is bright, so the copy sits on a bottom-up scrim; tabs never wrap */
@media (max-width:980px){
  .v3-stage.mc-sky::after{background:linear-gradient(0deg,rgba(10,17,23,.96) 0%,rgba(10,17,23,.86) 40%,rgba(10,17,23,.55) 62%,rgba(10,17,23,0) 84%)}
  .v3-switch{max-width:100%}
  .v3-switch button{white-space:nowrap}
}
@media (max-width:560px){
  .v3-switch button{padding-inline:11px;font-size:13px}
  .v3-sub{font-size:16px}
  .v3-hero-cta{width:100%}
  .v3-ip{max-width:100%}
}

/* transparent header on the home tour: the sky shows through, a soft scrim keeps links legible */
body:has(.v3-tour) .nav,main:has(.v3-tour)~.nav,.nav:has(~ main .v3-tour){background:linear-gradient(180deg,rgba(7,13,19,.62) 0%,rgba(7,13,19,0) 100%);border-bottom:0;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}
body:has(.v3-tour) .nav a,body:has(.v3-tour) .nav-status{text-shadow:0 1px 2px rgba(7,9,12,.6),0 0 4px rgba(7,9,12,.35)}

/* ============================================================
   Audit fixes 2026-11-07
   ============================================================ */
/* Nav: the bar is transparent over page art, so content scrolling up
   (realm route list, store tabs, cards) read as sitting on top of the
   links. Once the page scrolls (components.js toggles html.nav-scrolled)
   the bar gets a solid backing. Home tour keeps its own scrim (locked). */
.nav{transition:background-color .2s ease,box-shadow .2s ease}
html.nav-scrolled body:not(:has(.v3-tour)) .nav{background:rgba(10,17,23,.97);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 1px 0 rgba(255,255,255,.07),0 6px 18px rgba(0,0,0,.35)}
/* phones: hamburger sits at the far right instead of between logo and buttons */
@media (max-width:900px){.nav-actions{margin-left:auto}.nav-toggle{order:3}}

/* Focus: one ring in the diamond cyan everywhere. Elements that clip
   themselves (cut-corner tabs, chips, the auth back link) would clip an
   outline away, so they draw the ring inside instead. */
:root{--focus:var(--c-diamond)}
:focus-visible{outline:3px solid var(--c-diamond)!important;outline-offset:3px}
.v3-switch button:focus-visible,.v3-bt-row button:focus-visible,.v3-auth-back:focus-visible,.shop-tab:focus-visible{outline:none!important;
  box-shadow:inset 0 0 0 3px var(--c-diamond),inset 0 0 0 5px var(--c-ink)}
.v3-switch button[aria-pressed=true]:focus-visible,.v3-bt-row button[aria-selected=true]:focus-visible,.v3-bt-row button[aria-pressed=true]:focus-visible,.shop-tab[aria-pressed="true"]:focus-visible{box-shadow:inset 0 0 0 3px var(--c-ink),inset 0 0 0 5px #fff}
.input:focus-visible,.shop-ign input:focus-visible{outline-offset:0}

/* Contrast: the global a:hover tint (#8EF3F8) landed on the cyan skip link (1.2:1) */
.skip-link:hover{color:var(--on-primary)}
/* page heads over the bright sky scene: deeper scrim on the copy side + an ink halo */
.v3-phero .v3-stage.mc-sky::after{background:linear-gradient(90deg,rgba(10,17,23,.92) 0%,rgba(10,17,23,.78) 34%,rgba(10,17,23,.3) 60%,rgba(10,17,23,0) 78%),linear-gradient(0deg,var(--c-night) 0%,transparent 30%)}
.v3-phero .v3-pagehead :is(h1,p),.v3-rhero .container > :is(.v3-eyebrow,.v3-realm-line,.v3-rhero-blurb,.v3-hroute,.v3-back){text-shadow:0 1px 2px rgba(7,13,19,.9),0 0 14px rgba(7,13,19,.75)}
.v3-phero .v3-pagehead p.v3-lead{color:#DCE8F0}
@media (max-width:980px){.v3-phero .v3-stage.mc-sky::after{background:linear-gradient(0deg,rgba(10,17,23,.97) 0%,rgba(10,17,23,.86) 45%,rgba(10,17,23,.5) 70%,rgba(10,17,23,.1) 90%)}}
.nav-status{color:#C9D6E0}

/* Tap targets: >=44px on touch. Desktop mouse layout stays tight. */
.footer-credit a{display:inline-block;padding-block:14px;margin-block:-14px}
.v3-link,.v3-scene-auth p a,.v3-back{padding-block:12px;margin-block:-12px}
.v3-back{padding-block:13px;margin-block:-13px 15px}
@media (pointer:coarse),(max-width:760px){
  .nav-brand{min-height:44px;min-width:44px}
  .footer-brand{min-height:44px;display:inline-flex;align-items:center}
  .footer-col a,.footer-col button{min-height:44px}
  .v3-bt-row button,.v3-bt-stats button{min-height:44px}
  .v3-social .v3-btn{min-height:48px}
  .v3-hotbar button{min-width:44px;min-height:44px}
}

/* Store: same gem-cut language and page-head scale as the rest of the site */
/* (shop.css loads after this file, so these carry a main prefix to win) */
main .shop-hero{padding-top:calc(var(--nav-h) + clamp(56px,9vw,112px))}
main .shop-kicker{font:700 15px/1.2 var(--font-text);letter-spacing:0;text-transform:none;color:var(--c-diamond)}
main .shop-hero h1{font:900 clamp(36px,6.4vw,96px)/.92 var(--font-display);text-transform:uppercase;letter-spacing:.01em;max-width:16ch;margin-top:10px}
main :is(.shop-region,.shop-tab,.shop-card,.shop-banner,.shop-empty){clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px)}
main .shop-tab[aria-pressed="true"]{color:var(--c-ink)}
main .shop-card{background:var(--c-slab);border:0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)}
main .shop-ign input{border-radius:0}

/* Offline state: the nav pill reads as a status, not an error flash */
.nav-dot:not(.online){background:#6b7785}

/* tap target: hero realm switch, touch widths */
@media (max-width:760px),(pointer:coarse){.v3-switch button{min-height:44px}}

/* ===== critique pass 2026-11-07: legibility, mobile rhythm, contrast ===== */
/* stop cards never sit at 25% — only slide in */
.v3-stop-card{opacity:1}
.v3-stop{padding-top:calc(var(--nav-h) + 24px);scroll-margin-top:var(--nav-h)}
@media (max-width:760px){.v3-stop-card{transform:none;transition:none}}
/* explicit ink instead of opacity on tinted panels (4.5:1+) */
.v3-stop-facts dt{opacity:1;color:rgba(10,17,23,.82)}
.v3-stop-card .v3-eyebrow{opacity:1;color:rgba(10,17,23,.86)}
/* eyebrows over bright sky get a solid ink chip */
.v3-phero .v3-eyebrow,.v3-rhero .v3-eyebrow,.st-hero .v3-eyebrow{display:inline-block;background:var(--c-ink);padding:4px 10px;box-shadow:3px 3px 0 rgba(0,0,0,.35);text-shadow:none}
/* inner headers: content starts above the fold on phones */
@media (max-width:760px){
  .v3-phero{min-height:0;padding:calc(var(--nav-h) + 120px) 0 32px}
  .v3-rhero{padding-top:calc(var(--nav-h) + 160px)}
  .st-hero{min-height:0;padding:calc(var(--nav-h) + 96px) 0 24px}
  .st-stage{height:300px}
}
/* realm hero: big word can't run into the island */
.v3-rhero h1{max-width:9ch;font-size:clamp(56px,8vw,120px)}
/* mobile nav: one CTA, logo keeps its size */
@media (max-width:480px){
  .nav-actions .btn-secondary{display:none}
  .nav-brand img,.nav-brand svg{min-width:32px;min-height:32px}
}

/* ===== critique pass 2: one header scale, board hierarchy, dig depth ===== */
.v3-pagehead h1,.st-hero h1{font-size:clamp(44px,7vw,112px);line-height:.9}
.v3-pagehead p.v3-lead,.st-hero .v3-lead,.v3-rhero-blurb{max-width:46ch}
.v3-pagehead h1{margin:12px 0 16px}
/* realm tabs stay filled; stat metrics become a quieter underline row */
.v3-bt-stats{gap:4px 16px}
.v3-bt-stats button{background:none;border:0;clip-path:none;padding:6px 2px;min-height:36px;font:600 13px var(--font-text);color:var(--dim);border-bottom:2px solid transparent}
.v3-bt-stats button[aria-pressed=true],.v3-bt-stats button[aria-selected=true]{background:none;color:var(--c-diamond);border-bottom-color:currentColor}
.v3-bt-stats button:hover{color:#fff}
/* dig: first stat reads as content */
.v3-dig .v3-count{min-height:160px;padding:32px}
@media (max-width:760px){.v3-dig .v3-count{padding:24px}}

/* ===== glow-up run 3 (2026-11-07) ===== */
/* design: realm pages breathe less; content carries the section, not padding */
.v3-realmpage .v3-section{padding:clamp(56px,7vw,96px) 0}
/* design: fact cards were 200px slabs with the value pinned to the floor */
.v3-realmpage .v3-rfacts div{min-height:0;justify-content:flex-start;gap:10px;padding:22px 24px 26px}
@media (max-width:760px){.v3-realmpage .v3-rfacts{gap:14px}.v3-realmpage .v3-rfacts div{min-height:0;padding:18px 20px 22px}}
/* de-ai: meter lost its side-tab stripe; framed like every other panel */
.v3-meter::after{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--c) 45%,transparent)}
/* design: offline stats no longer leaves ~600px of bare stone */
.v3-dig.is-off .v3-layer-stone{min-height:0}
/* motion: coloured realm panels answer the pointer the same way buttons do */
.v3-realmpage .v3-rfacts div,.v3-modes .v3-realm{transition:transform .18s cubic-bezier(.2,.8,.2,1),filter .18s ease}
@media (hover:hover){.v3-realmpage .v3-rfacts div:hover,.v3-modes .v3-realm:hover{transform:translate(-2px,-2px)}}
@media (prefers-reduced-motion:reduce){.v3-realmpage .v3-rfacts div,.v3-modes .v3-realm{transition:none}.v3-realmpage .v3-rfacts div:hover,.v3-modes .v3-realm:hover{transform:none}}

/* personality (texture): "ore fleck", a 5-pixel ore cluster pressed into the
   bottom-right corner of every coloured realm panel and dark card. */
.v3-rfacts div,.v3-realm,.v3-card,.v3-meter{--fleck:rgba(10,17,23,.28)}
.v3-card,.v3-meter{--fleck:color-mix(in srgb,var(--c,var(--c-diamond)) 55%,transparent)}
.v3-rfacts div::before,.v3-realm::before,.v3-card::before,.v3-meter::before{content:"";position:absolute;right:calc(var(--k,14px) + 12px);bottom:14px;width:5px;height:5px;background:var(--fleck);pointer-events:none;z-index:0;
  box-shadow:6px 0 0 var(--fleck),0 -6px 0 var(--fleck),-6px 6px 0 var(--fleck),12px -12px 0 var(--fleck)}
/* stats: dirt is ~4 blocks deep, like the real thing (64px blocks incl. the grass row) */
.v3-dig .v3-layer-dirt{padding:72px 0 64px;min-height:0}
.v3-dig .v3-layer-dirt .v3-ysign{margin:0}
.v3-dig .v3-layer-stone .v3-count{margin-bottom:40px}
@media (max-width:760px){.v3-dig .v3-layer-dirt{padding:56px 0 48px}}

/* ============================================================
   Island materials (2026-11-07)
   Each realm is painted with the blocks its island is built from,
   not a flat swatch: Lifesteal = deepslate + red nether brick lit by
   redstone; Skyblock = grass block over dirt; Practice = cut
   sandstone arena with gold. Type: Unbounded (display) + Onest.
   ============================================================ */
:root{
  --font-display:"Big Shoulders Display","Arial Narrow",ui-sans-serif,sans-serif;
  --font-text:"Onest",ui-sans-serif,system-ui,sans-serif;
  --c-heart:#FF3B3B;--c-grass:#86D94E;--c-arena:#F6B73C;
  --mat-top:url(/images/mc/stone.png);--mat-body:url(/images/mc/deepslate.png);
  --mat-tint:rgba(12,18,24,.84);--mat-ink:#EEF5F9;--c2:var(--c-diamond);
}
body{font-family:var(--font-text)}
h1,h2,h3,.v3-title,.v3-stop-card h2,.v3-realm h3,.v3-pagehead h1,.v3-h2{letter-spacing:-.015em}
.v3-pagehead h1{font-size:clamp(34px,6.4vw,104px);font-weight:800}

.v3-ls,.v3-card:has(.v3-ls){--c:#FF3B3B;--mat-top:url(/images/mc/red_nether_bricks.png);--mat-body:url(/images/mc/deepslate.png);--mat-tint:rgba(22,9,11,.80);--mat-ink:#FCEDEA;--glow:rgba(255,59,59,.55)}
.v3-ea,.v3-card:has(.v3-ea){--c:#86D94E;--mat-top:url(/images/mc/grass_block_side.png);--mat-body:url(/images/mc/dirt.png);--mat-tint:rgba(14,22,10,.82);--mat-ink:#F0F8E8;--glow:rgba(134,217,78,.5)}
.v3-pr,.v3-card:has(.v3-pr){--c:#F6B73C;--mat-top:url(/images/mc/cut_sandstone.png);--mat-body:url(/images/mc/sandstone.png);--mat-tint:rgba(34,24,8,.82);--mat-ink:#FFF4DC;--glow:rgba(246,183,60,.5)}

/* material slab: block band on top, tinted block body below */
.v3-stop-card,.v3-realm,.v3-lbcard,.v3-layer .v3-board{color:var(--mat-ink);padding-top:62px}
.v3-stop-card::after,.v3-realm::after,.v3-lbcard::after,.v3-layer .v3-board::after{
  background:var(--mat-top) 0 0/36px 36px repeat-x,linear-gradient(var(--mat-tint),var(--mat-tint)),var(--mat-body) 0 0/48px 48px;
  image-rendering:pixelated}
.v3-stop-card .v3-eyebrow,.v3-realm .v3-eyebrow{color:var(--mat-ink);opacity:.78}
.v3-stop-card h2,.v3-realm h3{color:#fff;font-weight:800}
.v3-stop-card .v3-realm-line,.v3-realm .v3-realm-line{color:var(--c);font-family:var(--font-text);font-weight:700}
.v3-stop-card .v3-realm-big,.v3-realm .v3-realm-big{color:var(--c);text-shadow:0 0 28px var(--glow),3px 3px 0 #000;font-weight:800}
.v3-stop-card .v3-realm-big small,.v3-realm .v3-realm-big small{color:var(--mat-ink);text-shadow:none;opacity:.8}
.v3-stop-facts{border-top:2px solid color-mix(in srgb,var(--c) 45%,transparent)}
.v3-stop-card .v3-btn-primary,.v3-realm .v3-btn-primary{--bgc:var(--c);color:#120b05}
.v3-realm .v3-btn-primary:hover,.v3-stop-card .v3-btn-primary:hover{color:#120b05}
.v3-realm-view{color:var(--mat-ink)}

/* ---- Board: realm tiles + stat chips ---- */
.v3-bt{display:grid;gap:14px;margin-bottom:26px}
.v3-bt-row{display:flex;flex-wrap:wrap;gap:8px}
.v3-bt-row[role=tablist] button{display:inline-flex;align-items:center;gap:10px;padding:10px 18px 10px 10px;background:rgba(0,0,0,.45);color:var(--mat-ink);
  font:700 15px var(--font-display);border:2px solid rgba(255,255,255,.12);transition:border-color .15s,background .15s}
.v3-bt-row[role=tablist] button i{width:28px;height:28px;background:url(/images/mc/red_nether_bricks.png) 0 0/28px;image-rendering:pixelated;box-shadow:inset 0 0 0 2px rgba(0,0,0,.4)}
.v3-bt-row[role=tablist] .v3-bt-practice i{background-image:url(/images/mc/cut_sandstone.png)}
.v3-bt-row[role=tablist] button[aria-selected=true]{border-color:var(--c);background:color-mix(in srgb,var(--c) 18%,rgba(0,0,0,.5));box-shadow:0 0 22px -6px var(--glow)}
.v3-bt-stats button{padding:7px 14px;font:600 14px var(--font-text);color:var(--mat-ink);background:rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.14);transition:background .15s,color .15s}
.v3-bt-stats button:hover{border-color:var(--c)}
.v3-bt-stats button[aria-pressed=true]{background:var(--c);color:#120b05;border-color:var(--c);font-weight:800}

/* ---- Podium: three blocks of the realm's own material ---- */
.podium{display:grid;grid-template-columns:repeat(3,1fr);align-items:end;gap:10px;background:none;border:0;overflow:visible;margin:8px 0 28px}
.podium-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:0;background:none;border:0;min-width:0;text-align:center}
.podium-item:nth-child(1){order:2;padding:0;background:none}
.podium-head{width:48px;height:48px;margin:0 0 6px;box-shadow:0 0 0 3px #000,4px 4px 0 3px rgba(0,0,0,.5)}
.podium-1 .podium-head{width:72px;height:72px;box-shadow:0 0 0 3px var(--c),0 0 30px 2px var(--glow)}
.podium-name{max-width:100%;font:700 15px var(--font-text);color:#fff}
.podium-item:nth-child(1) .podium-name{font:800 18px var(--font-display);text-transform:none}
.podium-score{font:700 15px var(--font-mono);color:var(--c)}
.podium-score small{margin-left:4px;font-size:12px;color:var(--mat-ink);opacity:.7}
.podium-item:nth-child(1) .podium-score{color:var(--c);font-size:20px}
.podium-block{position:relative;width:100%;margin-top:10px;height:78px;display:grid;place-items:center;
  background:var(--mat-top) 0 0/40px 40px repeat-x,linear-gradient(rgba(0,0,0,.35),rgba(0,0,0,.6)),var(--mat-body) 0 0/40px 40px;
  image-rendering:pixelated;box-shadow:inset 0 0 0 3px rgba(0,0,0,.45),6px 6px 0 #000}
.podium-2 .podium-block{height:112px}
.podium-1 .podium-block{height:152px;box-shadow:inset 0 0 0 3px var(--c),6px 6px 0 #000,0 -10px 40px -10px var(--glow)}
.podium-block .podium-rank{width:auto;height:auto;margin:0;border:0;border-radius:0;background:none;box-shadow:none;
  font:800 clamp(34px,4vw,52px)/1 var(--font-display);color:#fff;text-shadow:3px 3px 0 #000}
.podium-1 .podium-rank{color:var(--c);text-shadow:3px 3px 0 #000,0 0 24px var(--glow)}

/* ---- Rows ---- */
.lb-table{border-top:2px solid color-mix(in srgb,var(--c) 40%,transparent)}
.lb-table th{color:var(--mat-ink);opacity:.65}
.lb-row td{border-bottom:1px solid rgba(255,255,255,.08);color:var(--mat-ink)}
.lb-row:hover{background:color-mix(in srgb,var(--c) 10%,transparent)}
.rank-num{border-radius:0;border:0;background:rgba(0,0,0,.45);color:var(--mat-ink);font-family:var(--font-display);
  clip-path:polygon(6px 0,100% 0,100% calc(100% - 6px),calc(100% - 6px) 100%,0 100%,0 6px)}
.player-name{display:inline-flex;align-items:center;gap:12px;color:#fff}
.lb-head{width:24px;height:24px;image-rendering:pixelated;box-shadow:0 0 0 2px #000}
.player-score{color:var(--c)}
@media(max-width:560px){
  .podium{gap:6px}
  .podium-item.podium-1{order:2}.podium-item.podium-2{order:1}.podium-item.podium-3{order:3}
  .podium-head{width:36px;height:36px}.podium-1 .podium-head{width:52px;height:52px}
  .podium-name,.podium-item:nth-child(1) .podium-name{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .podium-score,.podium-item:nth-child(1) .podium-score{font-size:13px}
  .podium-block{height:56px}.podium-2 .podium-block{height:80px}.podium-1 .podium-block{height:108px}
}

/* ---- Stats: the live count is a diamond-ore block ---- */
.v3-count{color:#EAFDFF}
.v3-count::after{background:linear-gradient(rgba(5,18,24,.72),rgba(5,18,24,.86)),url(/images/mc/deepslate_diamond_ore.png) 0 0/64px 64px!important;image-rendering:pixelated;
  box-shadow:inset 0 0 0 3px var(--c-diamond)}
.v3-count .v3-eyebrow,.v3-count .muted{color:#BFF6FA;opacity:1}
.v3-count .v3-big{color:var(--c-diamond);font-family:var(--font-display);font-weight:800;text-shadow:0 0 40px rgba(46,230,240,.55),4px 4px 0 #000}
.v3-count .v3-btn{--bgc:var(--c-diamond);color:var(--c-ink)}
.v3-count .v3-btn:hover{color:var(--c-ink)}
.v3-count.is-off .v3-big{color:#5d7480;text-shadow:4px 4px 0 #000}
.v3-layer .v3-board .v3-card-head h2,.v3-lbcard h2{color:#fff;font-weight:800}
.v3-board .v3-link{color:var(--c)}

/* ============================================================
   Island cards, pass 2 (2026-11-07): Minecraft GUI panel.
   Headlines in Monocraft (OFL, /fonts) with the game's offset
   shadow; calmer block body; bevelled inner edge; labels readable.
   ============================================================ */
@font-face{font-family:"Monocraft";src:url(/fonts/monocraft-bold.woff2) format("woff2");font-weight:700;font-display:swap}
:root{--font-mc:"Monocraft",var(--font-display)}

.v3-stop-card,.v3-realm,.v3-lbcard,.v3-layer .v3-board{padding:58px 30px 30px}
.v3-stop-card{max-width:460px}
/* body: block texture larger and quieter, a soft light from the top, then a 2px GUI bevel */
.v3-stop-card::after,.v3-realm::after,.v3-lbcard::after,.v3-layer .v3-board::after{
  background:
    var(--mat-top) 0 0/32px 32px repeat-x,
    linear-gradient(180deg,rgba(0,0,0,.55) 32px,rgba(0,0,0,0) 44px),
    linear-gradient(180deg,color-mix(in srgb,var(--c) 10%,transparent),transparent 45%),
    linear-gradient(var(--mat-tint),var(--mat-tint)),
    var(--mat-body) 0 0/64px 64px;
  box-shadow:inset 3px 3px 0 rgba(255,255,255,.07),inset -3px -3px 0 rgba(0,0,0,.45)}
.v3-ls,.v3-card:has(.v3-ls){--mat-tint:rgba(18,8,10,.86)}
.v3-ea,.v3-card:has(.v3-ea){--mat-tint:rgba(12,18,9,.86)}
.v3-pr,.v3-card:has(.v3-pr){--mat-tint:rgba(30,21,8,.86)}

.v3-stop-card .v3-eyebrow,.v3-realm .v3-eyebrow{font:600 13px var(--font-text);letter-spacing:.04em;text-transform:uppercase;opacity:.7}
.v3-stop-card h2,.v3-realm h3{font:700 clamp(30px,2.9vw,44px)/1 var(--font-mc);letter-spacing:0;text-transform:uppercase;
  color:#fff;text-shadow:4px 4px 0 color-mix(in srgb,var(--c) 45%,#1a0a0a);margin:10px 0 12px}
.v3-stop-card .v3-realm-line,.v3-realm .v3-realm-line{font:600 17px var(--font-text);color:color-mix(in srgb,var(--c) 70%,#fff)}
.v3-stop-card .v3-realm-big,.v3-realm .v3-realm-big{display:flex;align-items:baseline;gap:14px;padding-top:20px;
  font:700 clamp(56px,5vw,76px)/1 var(--font-mc);color:var(--c);text-shadow:5px 5px 0 rgba(0,0,0,.6),0 0 30px var(--glow)}
.v3-stop-card .v3-realm-big small,.v3-realm .v3-realm-big small{display:inline;margin:0;font:600 15px var(--font-text);color:var(--mat-ink);opacity:.75;text-shadow:none}

.v3-stop-facts{gap:0;margin:22px 0 26px;padding:0;border:0;background:rgba(0,0,0,.32);box-shadow:inset 2px 2px 0 rgba(0,0,0,.4),inset -2px -2px 0 rgba(255,255,255,.05)}
.v3-stop-facts div{padding:10px 14px;font:500 14px var(--font-text)}
.v3-stop-facts div + div{border-top:1px solid rgba(255,255,255,.07)}
.v3-stop-facts dt{color:var(--mat-ink);opacity:.62}
.v3-stop-facts dd{color:#fff;font-weight:700}
.v3-stop-card .v3-btn-primary,.v3-realm .v3-btn-primary{font:700 16px var(--font-text);min-height:50px;padding:0 26px;
  box-shadow:inset 0 -4px 0 rgba(0,0,0,.28),inset 0 3px 0 rgba(255,255,255,.3)}
@media (max-width:760px){.v3-stop-card,.v3-realm{padding:52px 20px 22px}}

/* the same headline voice on the boards */
.v3-layer .v3-board .v3-card-head h2,.v3-lbcard h2{font:700 26px var(--font-mc);text-shadow:3px 3px 0 rgba(0,0,0,.6)}
.podium-block .podium-rank{font-family:var(--font-mc);font-weight:700}

/* ============================================================
   Three fonts total (2026-11-07): Unbounded (display), Onest (text),
   Monocraft (self-hosted; replaces JetBrains Mono). Monocraft carries
   everything that reads as game UI: IPs, counts, scores, Y levels,
   chat, tooltips, hotbar numbers, rank names, card headlines.
   ============================================================ */
@font-face{font-family:"Monocraft";src:url(/fonts/monocraft.woff2) format("woff2");font-weight:400 600;font-display:swap}
:root{--font-mono:"Monocraft",ui-monospace,monospace;--font-mc:"Monocraft",ui-monospace,monospace}
.v3-ip-v{font-size:17px;letter-spacing:0}
.v3-ysign b,.v3-depth-y,.v3-hotbar button span,.v3-tip-name,.v3-rank,.v3-chat{font-family:var(--font-mc);font-weight:700;letter-spacing:0}
.v3-tip-name{text-shadow:2px 2px 0 #3f3f3f}
.v3-hotbar button span{text-shadow:2px 2px 0 #3f3f3f}
.v3-rank{font-size:18px;text-shadow:2px 2px 0 rgba(0,0,0,.6)}
.v3-chat{font-weight:400;text-shadow:2px 2px 0 #3f3f3f}
.v3-big,.v3-count .v3-big{font-family:var(--font-mc);font-weight:700;letter-spacing:0}
.podium-score,.player-score,.rank-num,.podium-block .podium-rank{font-family:var(--font-mc)}
@media (max-width:520px){.v3-ip-v{font-size:14px;padding:0 10px}}

/* Faceted S mark (2026-11-07): the mark stands on its own, no tile behind it */
.nav-mark,.footer-mark{background:none;border:0;box-shadow:none;border-radius:0}
.nav-mark img{width:36px;height:36px;display:block}
.footer-mark img{width:32px;height:32px;display:block}
.nav-mark img,.footer-mark img{object-fit:contain}

/* golem mascot: store + store login heroes */
.v3-golem{display:block;width:clamp(110px,14vw,170px);height:auto;margin:0 auto 14px;filter:drop-shadow(6px 6px 0 rgba(0,0,0,.45));animation:v3-golem-bob 4s ease-in-out infinite}
@keyframes v3-golem-bob{50%{transform:translateY(-6px)}}
@media (prefers-reduced-motion:reduce){.v3-golem{animation:none}}

/* golem speech bubble (scene.js pokeGolem) */
.golem-bubble{position:fixed;left:0;top:0;z-index:60;pointer-events:none;max-width:260px;padding:10px 14px;
  font:400 14px/1.35 var(--font-mc);color:#fff;background:#0E1330;border:3px solid #2EF2E2;
  box-shadow:4px 4px 0 rgba(0,0,0,.5);opacity:0;transition:opacity .25s;text-align:center}
.golem-bubble.on{opacity:1}
.golem-bubble::after{content:"";position:absolute;left:50%;bottom:-11px;width:14px;height:14px;margin-left:-7px;
  background:#0E1330;border-right:3px solid #2EF2E2;border-bottom:3px solid #2EF2E2;transform:rotate(45deg)}

/* ---- Player lookup (#/player) + search boxes on Leaderboard / Live stats ---- */
.pl-link{color:inherit;text-decoration:none}
.pl-link:hover{color:var(--c-diamond);text-decoration:underline;text-underline-offset:4px}
.pl-link:focus-visible{outline:2px solid var(--c-diamond);outline-offset:3px}
.pl-search{margin:0 0 18px}
.pl-search label{display:block;font:600 11px var(--font-text);letter-spacing:.08em;text-transform:uppercase;color:var(--dim);margin-bottom:6px}
.pl-search-row{display:flex;gap:8px;align-items:stretch}
.pl-search-row input{flex:1;min-width:0;min-height:48px;padding:0 14px;background:#0F1C26;border:1px solid var(--border-light);color:var(--text);font:600 15px var(--font-display);border-radius:0}
.pl-search-row input::placeholder{color:var(--dim);font-weight:500}
.pl-search-row input:focus-visible{outline:2px solid var(--c-diamond);outline-offset:1px}
.pl-search-row .v3-btn{min-height:48px;padding:0 20px;white-space:nowrap}
.pl-search-err{min-height:0;margin-top:6px;font-size:13px;color:#FF8A94}
.pl-search-err:empty{display:none}
.pl-search-board{max-width:560px}
.pl-wrap .v3-card{min-width:0}
.pl-card{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}
.pl-card-search{align-items:stretch;text-align:left}
.pl-card-search .pl-search{margin:0}
.pl-card h2{font:900 clamp(22px,3.4vw,30px)/1.1 var(--font-display);text-transform:uppercase;overflow-wrap:anywhere}
.pl-note{font-size:13px;color:var(--muted);line-height:1.5;max-width:46ch}
.pl-note em{font-style:normal;color:var(--c-diamond);font-size:12px}
.pl-name{font:800 24px var(--font-display);overflow-wrap:anywhere}
.pl-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:6px}
.pl-loading{padding-block:48px}
.pl-spin{width:30px;height:30px;border:3px solid rgba(255,255,255,.15);border-top-color:var(--c-diamond);border-radius:50%;animation:plSpin .8s linear infinite}
@keyframes plSpin{to{transform:rotate(360deg)}}
.pl-stage{position:relative;width:100%;height:280px;display:grid;place-items:center;background:radial-gradient(60% 60% at 50% 70%,rgba(46,230,240,.18),transparent 70%),#0A1117}
.pl-stage-lg{height:clamp(300px,36vw,380px)}
.pl-skin2d{height:260px;width:auto;image-rendering:pixelated;filter:drop-shadow(6px 6px 0 rgba(0,0,0,.5))}
.pl-stage-lg .pl-skin2d{height:min(100%,320px)}
.pl-stage.is-3d .pl-skin2d{display:none}
.pl-skin-miss,.pl-bedrock{display:grid;gap:12px;justify-items:center;padding:16px;color:var(--muted);font-size:14px}
.pl-tile-initial{display:grid;place-items:center;width:96px;height:96px;background:var(--c-slab);color:var(--c-diamond);font:900 44px var(--font-display);box-shadow:3px 3px 0 var(--c-ink)}
.pl-confirm .pl-stage{max-width:420px}
.pl-never{flex-direction:row;align-items:center;gap:28px;text-align:left}
.pl-never .pl-stage{flex:0 0 240px;width:240px}
.pl-never-txt{display:flex;flex-direction:column;gap:10px;align-items:flex-start;min-width:0}
.pl-never .pl-actions{justify-content:flex-start}
.pl-miss .pl-search{width:100%;max-width:460px;text-align:left}
.pl-layout{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:24px;align-items:start}
.pl-side{position:sticky;top:calc(var(--nav-h) + 16px)}
.pl-side .pl-search{width:100%;text-align:left;margin:6px 0 0}
.pl-main{align-items:stretch;text-align:left;gap:6px}
.pl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.pl-grid-hero{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.pl-stat{position:relative;display:flex;flex-direction:column;gap:2px;padding:12px 14px;background:rgba(255,255,255,.05);box-shadow:inset 0 0 0 1px rgba(255,255,255,.07);min-width:0}
.pl-k{font:600 11px var(--font-text);letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}
.pl-v{font:900 22px/1.15 var(--font-display);overflow-wrap:anywhere}
.pl-stat.is-big .pl-v{font-size:clamp(26px,3.4vw,34px)}
.pl-stat small{font-size:12px;color:var(--muted);line-height:1.35}
.pl-rank{position:absolute;top:10px;right:10px;font:800 12px var(--font-text);color:var(--c-ink);background:var(--c-diamond);padding:2px 7px}
.v3-ls .pl-stat.is-big:first-child .pl-v{color:var(--c-heart)}
.v3-pr .pl-rank{background:var(--c-arena)}
.pl-h{font:800 13px var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:18px 0 8px}
.pl-modes{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.pl-mode{padding:14px;background:rgba(255,255,255,.05);box-shadow:inset 0 0 0 1px rgba(255,255,255,.07);border-top:3px solid var(--c-arena);min-width:0}
.pl-mode header{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.pl-mode h4{font:900 16px var(--font-display);text-transform:uppercase}
.pl-mode-elo{font-size:12px;color:var(--muted)}
.pl-mode-elo b{font:900 18px var(--font-display);color:var(--c-arena)}
.pl-mode-elo em{font-style:normal;font-weight:800;margin-left:6px;color:var(--text)}
.pl-mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}
.pl-mode-grid b{display:block;font:800 17px var(--font-display)}
.pl-mode-kd{margin-top:10px;font-size:12px;color:var(--dim)}
.pl-updated{margin-top:18px;font-size:12px;color:var(--dim)}
@media (max-width:820px){
  .pl-layout{grid-template-columns:minmax(0,1fr)}
  .pl-side{position:static}
  .pl-never{flex-direction:column;text-align:center}
  .pl-never-txt{align-items:center}.pl-never .pl-actions{justify-content:center}
  .pl-never .pl-stage{flex:none;width:100%}
}
@media (max-width:520px){
  .pl-search-row{flex-direction:column}
  .pl-search-row .v3-btn{width:100%}
  .pl-grid,.pl-grid-hero{grid-template-columns:1fr 1fr}
  .pl-modes{grid-template-columns:minmax(0,1fr)}
}
@media (prefers-reduced-motion:reduce){.pl-spin{animation-duration:2.4s}}

/* ============================================================
   SCROLL STORY (2026-11-08): hero = islands only; each world and the
   legend arrive on scroll. JS sets --o (presence) and --d (distance) per screen.
   Display face here is Big Shoulders Display (condensed, quarried); no offset-shadow slabs.
   ============================================================ */
.v3-tour{--font-story:"Big Shoulders Display","Arial Narrow",ui-sans-serif,sans-serif}
.v3-hero{align-items:flex-end;justify-content:center}
.v3-cue{display:flex;flex-direction:column;align-items:center;gap:10px;padding-bottom:max(22px,3.5svh);opacity:var(--o,1);pointer-events:none;
  font:700 12px/1 var(--font-text);letter-spacing:.34em;text-transform:uppercase;color:#E8F2F8;text-shadow:0 1px 8px rgba(7,13,19,.7)}
.v3-cue span{padding-left:.34em}
.v3-cue i{display:block;width:1px;height:46px;background:linear-gradient(#fff,rgba(255,255,255,0));transform-origin:top;animation:v3cue 2.2s cubic-bezier(.6,0,.2,1) infinite}
@keyframes v3cue{0%{transform:scaleY(0)}55%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}

.v3-beat{position:relative;display:flex;align-items:center;min-height:100svh;padding-block:calc(var(--nav-h) + 24px) 40px}
.v3-beat-copy{position:relative;max-width:min(560px,92vw);opacity:var(--o,0);transform:translate3d(0,calc(var(--d,0) * -90px),0);will-change:transform,opacity}
.v3-stop:not(.is-on) .v3-beat-copy{pointer-events:none}
.v3-beat-num{position:absolute;left:-.04em;top:50%;transform:translate3d(0,calc(-50% + var(--d,0) * -160px),0);opacity:calc(var(--o,0) * .9);
  font:700 clamp(200px,34vw,520px)/.8 var(--font-story);letter-spacing:-.02em;color:transparent;-webkit-text-stroke:2px color-mix(in srgb,var(--c) 55%,transparent);user-select:none;pointer-events:none}
.v3-beat-eyebrow{font:700 13px/1.3 var(--font-text);letter-spacing:.22em;text-transform:uppercase;color:#fff;margin-bottom:6px;text-shadow:0 1px 10px rgba(7,13,19,.75)}
.v3-beat-eyebrow .v3-soon{color:var(--c)}
.v3-stop h2,.v3-beat-copy h2{font:900 clamp(84px,13.5vw,230px)/.8 var(--font-story);letter-spacing:-.01em;text-transform:uppercase;color:var(--c);margin:0 0 18px;
  text-shadow:0 4px 40px rgba(7,13,19,.55);clip-path:inset(-10% calc((1 - var(--o,0)) * 100%) -10% 0)}
.v3-pr .v3-beat-copy h2{font-size:clamp(64px,10vw,170px)}
.v3-beat-line{font:600 clamp(20px,2vw,28px)/1.25 var(--font-text);color:#fff;text-shadow:0 1px 14px rgba(7,13,19,.8)}
.v3-beat-stat{display:flex;align-items:baseline;gap:14px;margin:22px 0 28px;color:#E8F2F8;text-shadow:0 1px 10px rgba(7,13,19,.8)}
.v3-beat-stat b{font:400 clamp(30px,3vw,44px)/1 "Monocraft",monospace;color:var(--c)}
.v3-beat-stat span{font:600 15px var(--font-text);letter-spacing:.04em}
.v3-beat-cta{display:inline-flex;align-items:center;gap:8px;padding:15px 26px;font:800 17px/1 var(--font-text);color:#0A1117;background:var(--c);
  clip-path:polygon(0 8px,8px 8px,8px 0,calc(100% - 8px) 0,calc(100% - 8px) 8px,100% 8px,100% calc(100% - 8px),calc(100% - 8px) calc(100% - 8px),calc(100% - 8px) 100%,8px 100%,8px calc(100% - 8px),0 calc(100% - 8px));
  transition:transform .15s,filter .15s}
.v3-beat-cta:hover{filter:brightness(1.12);transform:translateX(4px)}
.v3-beat-cta:focus-visible{outline:3px solid #fff;outline-offset:3px}

/* finale: the legend */
.v3-finale{flex-direction:column;align-items:stretch;justify-content:space-between;padding:calc(var(--nav-h) + 6svh) 0 2svh}
.v3-legend{text-align:center;opacity:var(--o,0);transform:translate3d(0,calc(var(--d,0) * -70px),0)}
.v3-legend-kick{font:700 clamp(14px,1.4vw,18px) var(--font-text);letter-spacing:.5em;padding-left:.5em;text-transform:uppercase;color:#E8F2F8;text-shadow:0 1px 10px rgba(7,13,19,.8)}
.v3-legend-title{font:900 clamp(92px,17vw,300px)/.8 var(--font-story);letter-spacing:-.01em;text-transform:uppercase;color:var(--c-diamond);margin:10px 0 0;
  text-shadow:0 6px 60px rgba(7,13,19,.55);clip-path:inset(-10% calc((1 - var(--o,0)) * 50%) -10% calc((1 - var(--o,0)) * 50%))}
.v3-finale .v3-join-ip{opacity:var(--o,0);display:flex;flex-direction:column;align-items:center;gap:14px}
.v3-finale .v3-social{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.v3-finale .v3-chat{position:static;min-height:0}

/* chapter rail */
.v3-rail{position:fixed;right:max(14px,2vw);top:50%;transform:translateY(-50%);z-index:30;display:flex;flex-direction:column;gap:2px}
.v3-rail button{position:relative;display:flex;align-items:center;justify-content:flex-end;gap:12px;height:34px;padding:0 4px;color:#fff;--c:#fff}
.v3-rail button::after{content:"";width:10px;height:10px;background:rgba(255,255,255,.35);transition:transform .2s,background .2s;flex:none}
.v3-rail button[aria-pressed=true]::after{background:var(--c);transform:scale(1.6)}
.v3-rail button span{font:700 12px var(--font-text);letter-spacing:.14em;text-transform:uppercase;opacity:0;transform:translateX(6px);transition:opacity .2s,transform .2s;
  text-shadow:0 1px 8px rgba(7,13,19,.85);pointer-events:none}
.v3-rail button:hover span,.v3-rail button:focus-visible span,.v3-rail button[aria-pressed=true] span{opacity:1;transform:none}
.v3-rail .v3-ls{--c:var(--c-heart)}.v3-rail .v3-ea{--c:var(--c-grass)}.v3-rail .v3-pr{--c:var(--c-arena)}
.v3-rail button:last-child{--c:var(--c-diamond)}

/* readability scrim: left for the worlds, bottom+top for the legend */
.v3-stage.mc-sky::after{background:linear-gradient(90deg,rgba(10,17,23,.78) 0%,rgba(10,17,23,.45) 34%,rgba(10,17,23,0) 62%),linear-gradient(0deg,rgba(10,17,23,.55) 0%,transparent 22%)}

@media (max-width:760px){
  .v3-beat{align-items:flex-end;padding-bottom:calc(var(--foot-h,0px) * 0 + 36px)}
  .v3-beat-num{top:30%;font-size:62vw}
  .v3-stage.mc-sky::after{background:linear-gradient(0deg,rgba(10,17,23,.92) 0%,rgba(10,17,23,.7) 38%,rgba(10,17,23,0) 70%)}
  .v3-rail{display:none}
  .v3-beat-stat{margin:14px 0 20px}
}
@media (prefers-reduced-motion:reduce){
  .v3-cue i{animation:none}
  .v3-beat-copy,.v3-legend,.v3-beat-num{transform:none!important}
  .v3-stop h2,.v3-beat-copy h2,.v3-legend-title{clip-path:none}
}
.v3-cue{margin-bottom:calc(-1 * (var(--nav-h) + 4px + var(--space-6)))}
.v3-legend-kick{color:#fff;font-size:clamp(15px,1.5vw,20px);text-shadow:0 1px 3px rgba(7,13,19,.9),0 0 22px rgba(7,13,19,.8)}
.v3-finale{padding-top:calc(var(--nav-h) + 10svh)}
@media (max-width:760px){
  .v3-legend-title{font-size:min(26vw,150px);white-space:nowrap}
  .v3-stop h2,.v3-beat-copy h2{font-size:min(30vw,150px)}
  .v3-pr .v3-beat-copy h2{font-size:min(23vw,120px)}
}

/* ---- story cards: the Minecraft GUI panel from pass 2, refined to sit under the giant title ---- */
.v3-beat-copy{max-width:min(480px,92vw)}
.v3-stop h2,.v3-beat-copy h2{font-size:clamp(72px,min(13.5vw,19vh),230px);margin-bottom:20px}
.v3-pr .v3-beat-copy h2{font-size:clamp(56px,min(10vw,14.5vh),170px)}
.v3-beat-copy .v3-stop-card{max-width:none;padding:50px 26px 24px;opacity:1;transform:none;transition:none}
.v3-beat-copy .v3-stop-card .v3-eyebrow{position:absolute;left:26px;right:20px;top:9px;color:#fff;opacity:.85;font:700 12px/1.2 var(--font-text);letter-spacing:.14em}
.v3-beat-copy .v3-realm-big{padding-top:12px;font-size:clamp(44px,4vw,60px)}
.v3-beat-copy .v3-stop-facts{margin:16px 0 20px}
.v3-beat-copy .v3-btn-primary{--bgc:var(--c);color:var(--c-ink);width:100%}
@media (max-width:760px){
  .v3-beat-copy .v3-stop-card{padding:46px 18px 18px}
  .v3-beat-copy .v3-stop-card .v3-eyebrow{left:18px;top:8px;font-size:11px}
  .v3-beat-copy .v3-stop-facts{display:none}
  .v3-beat-copy .v3-realm-big{font-size:40px;padding-top:8px}
  .v3-beat-copy .v3-btn-primary{margin-top:14px}
  .v3-stop h2,.v3-beat-copy h2{font-size:min(26vw,15vh,150px);margin-bottom:12px}
  .v3-pr .v3-beat-copy h2{font-size:min(20vw,12vh,120px)}
}

/* ---- composition fix (critique 2026-11-08): title left, island centre, card right; no clipped type ---- */
@media (min-width:761px){
  .v3-beat{justify-content:space-between;align-items:center;gap:32px}
  .v3-beat-copy{display:contents}
  .v3-beat-copy>h2{flex:none;margin:0;white-space:nowrap;font-size:clamp(64px,min(8.8vw,17vh),200px);
    opacity:var(--o,0);transform:translate3d(calc(var(--d,0) * -70px),0,0);clip-path:inset(-12% calc((1 - var(--o,0)) * 100%) -12% 0)}
  .v3-pr .v3-beat-copy>h2{font-size:clamp(52px,min(6.6vw,13vh),150px)}
  .v3-beat-copy>.v3-stop-card{flex:none;width:min(410px,30vw);min-width:340px;opacity:var(--o,0);transform:translate3d(calc(var(--d,0) * 70px),0,0);will-change:transform,opacity}
  .v3-stop:not(.is-on) .v3-beat-copy>.v3-stop-card{pointer-events:none}
  .v3-beat-num{left:0;font-size:clamp(180px,26vw,420px)}
  .v3-rail{right:max(10px,1vw)}
  .v3-stage.mc-sky::after{background:linear-gradient(90deg,rgba(10,17,23,.6) 0%,rgba(10,17,23,.15) 32%,rgba(10,17,23,0) 50%,rgba(10,17,23,.15) 70%,rgba(10,17,23,.55) 100%),linear-gradient(0deg,rgba(10,17,23,.5) 0%,transparent 22%)}
}
@media (prefers-reduced-motion:reduce){.v3-beat-copy>h2,.v3-beat-copy>.v3-stop-card{transform:none!important;clip-path:none}}
@media (min-width:761px){
  .v3-beat-copy>h2{font-size:clamp(64px,min(10.4vw,19vh),230px)}
  .v3-pr .v3-beat-copy>h2{font-size:clamp(52px,min(7.4vw,14vh),170px)}
}

/* ---- pass 4: eyebrow back above the title, no top strip, saturated Minecraft-material cards, no clipped-shadow slab ---- */
/* the dark rectangle behind the titles was the text-shadow being cut off by the reveal clip: give the clip room */
.v3-stop h2,.v3-beat-copy h2{clip-path:inset(-90px calc((1 - var(--o,0)) * 100% - 90px) -90px -90px)}
.v3-legend-title{clip-path:inset(-90px calc((1 - var(--o,0)) * 50% - 90px) -90px calc((1 - var(--o,0)) * 50% - 90px))}
@media (min-width:761px){
  .v3-beat{padding-right:44px}
  .v3-beat-copy>.v3-beat-head{flex:none;opacity:var(--o,0);transform:translate3d(calc(var(--d,0) * -70px),0,0)}
  .v3-beat-copy>.v3-beat-head h2{font-size:clamp(64px,min(10.4vw,19vh),230px);margin:0;white-space:nowrap}
  .v3-pr .v3-beat-copy>.v3-beat-head h2{font-size:clamp(52px,min(7.4vw,14vh),170px)}
  .v3-beat-head .v3-beat-eyebrow{margin:0 0 14px 4px}
}
.v3-beat-head{position:relative}
.v3-beat-head h2{opacity:1}
.v3-rail button[aria-pressed=true] span{opacity:0;transform:translateX(6px)}
.v3-rail button:hover span,.v3-rail button:focus-visible span{opacity:1;transform:none}

.v3-beat-copy .v3-stop-card{padding:26px 26px 24px;--beat-tint:rgba(70,6,12,.34);--beat-body:url(/images/mc/red_nether_bricks.png)}
.v3-ea .v3-beat-copy .v3-stop-card{--beat-tint:rgba(24,16,4,.30);--beat-body:url(/images/mc/dirt.png)}
.v3-pr .v3-beat-copy .v3-stop-card{--beat-tint:rgba(70,44,4,.22);--beat-body:url(/images/mc/sandstone.png)}
.v3-beat-copy .v3-stop-card::after{
  background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(0,0,0,.28)),linear-gradient(var(--beat-tint),var(--beat-tint)),var(--beat-body) 0 0/56px 56px;
  image-rendering:pixelated;box-shadow:inset 3px 3px 0 rgba(255,255,255,.16),inset -3px -3px 0 rgba(0,0,0,.5)}
.v3-beat-copy .v3-stop-card{color:#fff;text-shadow:2px 2px 0 rgba(0,0,0,.55)}
.v3-beat-copy .v3-realm-line{color:#fff;font-weight:800;font-size:20px}
.v3-beat-copy .v3-realm-big{color:var(--c);text-shadow:4px 4px 0 rgba(0,0,0,.6)}
.v3-beat-copy .v3-realm-big small{color:#fff;opacity:.92;text-shadow:2px 2px 0 rgba(0,0,0,.55)}
.v3-beat-copy .v3-stop-facts{background:none;box-shadow:none;margin:14px 0 20px;border-top:2px solid rgba(0,0,0,.4)}
.v3-beat-copy .v3-stop-facts div{padding:9px 0;border-top:0;border-bottom:2px solid rgba(0,0,0,.32)}
.v3-beat-copy .v3-stop-facts div:last-child{border-bottom:0}
.v3-beat-copy .v3-stop-facts dt{color:#fff;opacity:.85}
.v3-beat-copy .v3-btn-primary{text-shadow:none;--bgc:var(--c);color:#1a0a0a}
@media (max-width:760px){.v3-beat-copy .v3-stop-card{padding:18px}.v3-beat-head h2{margin-bottom:12px}}

/* Lunar-style potion effect tag (scene.js: golem under Invisibility until "One legend.") */
.fx-tag{position:fixed;right:14px;top:84px;z-index:40;display:flex;align-items:center;gap:8px;padding:5px 10px 5px 6px;pointer-events:none;
  font:400 11px/1 "Monocraft",monospace;color:#e9edf8;background:rgba(10,14,28,.42);border:1px solid rgba(255,255,255,.1);border-radius:4px;
  backdrop-filter:blur(4px);opacity:0;transform:translateX(10px);transition:opacity .5s,transform .5s}
.fx-tag.on{opacity:.82;transform:none}
.fx-tag .fx-ico{width:22px;height:22px;image-rendering:pixelated}
.fx-tag .fx-time{color:#9fb0d8;margin-left:2px}
.fx-tag.low .fx-time{color:#ff8d6a;animation:fx-blink 1s steps(2) infinite}
@keyframes fx-blink{50%{opacity:.3}}
@media (max-width:720px){.fx-tag{top:72px;right:10px;font-size:10px}}

/* pass 5 (critique): one left column. eyebrow > title > card, card left-aligned to the title; island clear on the right */
@media (min-width:761px){
  .v3-beat{justify-content:flex-start}
  .v3-beat-copy{display:flex;flex-direction:column;align-items:flex-start;gap:clamp(14px,2.4vh,26px)}
  .v3-beat-copy>.v3-beat-head{margin:0}
  .v3-beat-copy>.v3-stop-card{width:min(430px,34vw);min-width:340px;margin:0;transform:translate3d(calc(var(--d,0) * -70px),0,0);padding:22px 24px 22px}
  .v3-beat-copy>.v3-stop-card .v3-realm-line{font-size:19px}
  .v3-beat-copy>.v3-stop-card .v3-realm-big{padding-top:6px;font-size:clamp(30px,2.4vw,38px)}  /* quieter than the title: one entry point, one action */
  .v3-beat-copy>.v3-stop-card .v3-stop-facts{margin:12px 0 16px}
  .v3-beat-copy>.v3-stop-card .v3-stop-facts div{padding:7px 0}
  .v3-beat-copy .v3-btn-primary{width:100%;min-height:48px}
}
/* numeral now lives inside the title block so it always sits behind LIFESTEAL, never under the card */
.v3-beat-head .v3-beat-num{left:-.03em;top:50%;z-index:-1}
@media (max-width:760px){.v3-beat-head .v3-beat-num{top:30%;font-size:60vw}}

/* Realm switcher: lives above the board card as a large two-way segmented control */
.v3-realmbar{display:grid;grid-template-columns:1fr 1fr;gap:0;max-width:560px;margin:0 0 18px;padding:5px;background:rgba(7,13,19,.78);border:1px solid rgba(255,255,255,.12)}
.v3-realmbar.v3-bt-row[role=tablist] button{display:flex;align-items:center;justify-content:center;gap:12px;min-height:60px;padding:0 18px;background:transparent;border:0;color:#B9C6D2;font:800 clamp(15px,1.6vw,19px) var(--font-display);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;clip-path:none;transition:background .15s,color .15s}
.v3-realmbar.v3-bt-row[role=tablist] button i{width:28px;height:28px;background:url(/images/mc/red_nether_bricks.png) 0 0/28px;image-rendering:pixelated;box-shadow:inset 0 0 0 2px rgba(0,0,0,.4)}
.v3-realmbar.v3-bt-row[role=tablist] button.v3-bt-practice i{background-image:url(/images/mc/cut_sandstone.png)}
.v3-realmbar.v3-bt-row[role=tablist] button:hover{color:#fff;background:rgba(255,255,255,.06)}
.v3-realmbar.v3-bt-row[role=tablist] button[aria-selected=true]{background:var(--c,var(--c-diamond,#22D3EE));color:#0A1117}
.v3-realmbar.v3-ls{--c:#ff6a4d}.v3-realmbar.v3-pr{--c:#e8c46a}
.v3-realmbar.v3-bt-row[role=tablist] button:focus-visible{outline:2px solid #fff;outline-offset:-4px}
.v3-realmbar.v3-bt-row[role=tablist]{display:grid;gap:0}
@media(max-width:520px){.v3-realmbar.v3-bt-row[role=tablist] button{min-height:52px;gap:8px}.v3-realmbar.v3-bt-row[role=tablist] button i{width:22px;height:22px;background-size:22px}}

/* Condensed display face (Big Shoulders) runs small: scale up the UI roles that use it */
.nav-link{font-size:15px;letter-spacing:.06em}
.v3-btn{font-size:19px;letter-spacing:.04em}
.v3-eyebrow{font-size:15px}

/* Minecraft font for nav, status, auth buttons and form fields */
input,select,textarea,input::placeholder,textarea::placeholder{font-family:var(--font-mc)!important;font-size:14px;letter-spacing:0}
.nav-link{white-space:nowrap}
.nav-status{white-space:nowrap}

/* Wordmark and eyebrow labels in Monocraft */
.nav-brand span:not(.nav-mark),.footer-brand span{font-family:var(--font-mc)!important;font-weight:700;text-transform:none!important;letter-spacing:0!important}
.v3-eyebrow,.v3-beat-eyebrow,.eyebrow,.v3-legend-kick{font-family:var(--font-mc)!important;font-weight:700;letter-spacing:.06em!important;font-size:12px}

/* World cards: sit lower, with air between the huge title and the card */
.v3-beat-copy{margin-top:clamp(28px,7vh,80px)}
.v3-stop-card{margin-top:clamp(20px,4vh,44px)}
@media (max-width:760px){.v3-beat-copy{margin-top:0}.v3-stop-card{margin-top:12px}}

/* Nav links, status and auth buttons: Onest bold caps (the store's look); only the wordmark is Monocraft */
.nav-link{font-family:var(--font-text)!important;font-size:15px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.nav-status,.nav-actions .btn{font-family:var(--font-text)!important;font-weight:700}
.nav-brand span:not(.nav-mark),.footer-brand span{font-size:22px;text-shadow:0 2px 0 rgba(7,13,19,.55)}
.nav-brand .accent,.footer-brand .accent{color:var(--c-diamond,#22D3EE)}
.mc-word{font-family:var(--font-mc)!important;font-weight:700}

.v3-rules:has(.v3-rules-groups){grid-template-columns:1fr}
.v3-rules-body:has(.v3-rules-groups){max-width:900px;width:100%}
.v3-rules-lead{margin:0}
.v3-rules-groups{display:grid;gap:16px;width:100%}
.v3-rule-group{border:2px solid var(--rc);border-radius:10px;padding:14px 18px;background:rgba(0,0,0,.06)}
.v3-rule-group summary{cursor:pointer;display:flex;justify-content:space-between;gap:12px;font-weight:800;font-size:20px;color:var(--rc);filter:brightness(.8)}
.v3-rule-group summary small{font-weight:500;opacity:.7;font-size:14px}
.v3-rule-intro{font-size:16px;margin:10px 0}
.v3-rule-group ol{margin:0;padding-left:22px;display:grid;gap:10px;font-size:16px}
.v3-rule-group li strong{display:block}
.v3-rule-group li span{opacity:.75;font-size:15px}
.v3-rule-warn{margin:12px 0 0;font-weight:700;color:#d33}

/* Pre-launch: nav stays legible over the bright sky headers (realm pages). */
.nav-link:not([aria-current="page"]){color:#e9f1f7;text-shadow:0 1px 2px rgba(7,9,12,.85),0 0 8px rgba(7,9,12,.55)}
.nav-status{color:#e9f1f7}
@media(min-width:861px){.nav-link[aria-current="page"]{background:rgba(7,9,12,.6)}}
/* Pre-launch: 44px tap targets for board stat/mode chips on touch screens. */
@media(max-width:860px){[data-stat],[data-mode]{min-height:44px}}

/* Player lookup: tinted from the page's realm colour (--c) instead of fixed navy + cyan. */
.pl-search-row input{background:color-mix(in srgb,var(--c,var(--c-diamond)) 9%,#0c0e11);border:1px solid color-mix(in srgb,var(--c,var(--c-diamond)) 55%,transparent)}
.pl-search-row input:focus-visible{outline-color:var(--c,var(--c-diamond))}
.pl-search label{color:color-mix(in srgb,var(--c,var(--c-diamond)) 55%,#d7dde3)}
.pl-search-row .v3-btn{--bgc:var(--c,var(--c-diamond));color:#0c0e11}
/* Stats: lookup stays visible even while the board is paused. */
.v3-lookup{max-width:560px;margin:0 0 22px;padding:14px 16px 0;background:rgba(8,10,13,.72);border:1px solid rgba(255,255,255,.08)}
.v3-lookup .pl-search{margin:0 0 14px;max-width:none}
@media(max-width:860px){.v3-bt-stats button,.v3-bt-stats [data-stat]{min-height:44px}}

/* Leaderboard type, matched to the hero: Big Shoulders caps for labels/figures, Onest for names. */
.pl-search label{font:700 14px/1 var(--font-display);letter-spacing:.08em}
.v3-bt-stats button{font:800 15px/1 var(--font-display);letter-spacing:.05em;text-transform:uppercase}
.v3-bt-stats button[aria-pressed=true]{font-weight:800}
.lb-table th{font:700 14px/1 var(--font-display);letter-spacing:.08em;text-transform:uppercase;opacity:.8}
.player-name{font:600 17px/1.2 var(--font-text)}
.player-score{font:800 24px/1 var(--font-display);letter-spacing:.02em;font-variant-numeric:tabular-nums}
.rank-num{font-weight:900}

/* Practice: full kit list under the featured hotbar. */
.v3-kitlist{list-style:none;margin:28px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.v3-kitlist li{padding:7px 12px;font:800 14px/1 var(--font-display);letter-spacing:.05em;text-transform:uppercase;color:var(--mat-ink,#fff);background:rgba(0,0,0,.4);border:1px solid color-mix(in srgb,var(--c,#F6B73C) 45%,transparent)}

/* ---- Practice kit hotbar: vanilla hotbar sprite (182x22) + vanilla item textures ---- */
.mc-kits{--s:4;display:grid;grid-template-columns:auto minmax(0,1fr);gap:22px;align-items:start;margin:22px 0 4px}
.mc-hotbar-wrap{display:flex;align-items:center;gap:10px;flex-wrap:wrap;max-width:calc(182px*var(--s) + 140px)}
.mc-hotbar{position:relative;width:calc(182px*var(--s));height:calc(22px*var(--s));flex:none;background:url(/images/mc/items/gui_hud_hotbar.png) 0 0/100% 100%;image-rendering:pixelated;filter:drop-shadow(4px 4px 0 rgba(0,0,0,.35))}
.mc-slot{position:absolute;top:calc(1px*var(--s));left:calc((1px + 20px*var(--i))*var(--s));width:calc(20px*var(--s));height:calc(20px*var(--s));padding:0;border:0;background:none;cursor:pointer;display:block}
.mc-slot img{position:absolute;left:calc(2px*var(--s));top:calc(2px*var(--s));width:calc(16px*var(--s));height:calc(16px*var(--s));image-rendering:pixelated}
.mc-slot span{position:absolute;right:calc(1px*var(--s));bottom:0;font:400 11px/1 var(--font-mc);color:#fff;text-shadow:2px 2px 0 #3f3f3f}
.mc-slot[aria-selected=true]::after{content:"";position:absolute;left:calc(-2px*var(--s));top:calc(-2px*var(--s));width:calc(24px*var(--s));height:calc(24px*var(--s));background:url(/images/mc/items/gui_hud_hotbar_selection.png) 0 0/calc(24px*var(--s)) calc(23px*var(--s)) no-repeat;image-rendering:pixelated;pointer-events:none}
.mc-slot:hover:not([aria-selected=true]){background:rgba(255,255,255,.2)}
.mc-slot:focus-visible{outline:2px solid #fff;outline-offset:-2px}
.mc-empty{pointer-events:none}
.mc-page{width:44px;height:44px;font:800 26px/1 var(--font-display);color:#fff;background:rgba(0,0,0,.5);border:2px solid rgba(255,255,255,.35);cursor:pointer}
.mc-page:disabled{opacity:.3;cursor:default}
.mc-pagenum{font:400 12px var(--font-mc);color:var(--mat-ink,#fff);opacity:.8}
/* vanilla tooltip */
.mc-tip{padding:8px 10px;background:rgba(16,0,16,.94);border:2px solid;border-image:linear-gradient(180deg,#5000ff,#28007f) 1;font-family:var(--font-mc);font-size:14px;line-height:1.5;color:#fff;max-width:360px}
.mc-tip-name{color:#ffff55;margin-bottom:2px;text-shadow:2px 2px 0 #3f3f00}
.mc-tip ul{list-style:none;margin:0;padding:0}
.mc-tip li{text-shadow:2px 2px 0 #3f3f3f}
.mc-g{color:#aaa}.mc-w{color:#fff}.mc-b{color:#5555ff;text-shadow:2px 2px 0 #151540!important}.mc-r{color:#ff5555}
@media(max-width:1250px){.mc-kits{grid-template-columns:1fr}}
@media(max-width:820px){.mc-kits{--s:2}.mc-slot span{font-size:9px}.mc-hotbar-wrap{max-width:none}}

/* Armor stand showing the kit's armour (vanilla item textures on a wood stand) */
.mc-kits{display:block}
.mc-detail{display:flex;gap:28px;align-items:flex-start;flex-wrap:wrap;margin-top:22px}
.mc-stand{position:relative;width:200px;height:320px;flex:none;image-rendering:pixelated}
.mc-stand i,.mc-stand img{position:absolute;image-rendering:pixelated}
.mc-st-pole,.mc-st-arms,.mc-st-hips{background:url(/images/mc/items/block_oak_planks.png) 0 0/32px;box-shadow:inset 0 0 0 3px rgba(0,0,0,.35)}
.mc-st-base{left:44px;bottom:0;width:112px;height:14px;background:url(/images/mc/items/block_smooth_stone.png) 0 0/32px;box-shadow:inset 0 0 0 3px rgba(0,0,0,.35)}
.mc-st-pole{left:92px;top:8px;width:16px;bottom:14px}
.mc-st-arms{left:30px;top:74px;width:140px;height:12px}
.mc-st-hips{left:64px;top:176px;width:72px;height:10px}
.mc-st-h{left:68px;top:2px;width:64px;height:64px;filter:drop-shadow(3px 3px 0 rgba(0,0,0,.4))}
.mc-st-c{left:52px;top:68px;width:96px;height:96px;filter:drop-shadow(3px 3px 0 rgba(0,0,0,.4))}
.mc-st-l{left:56px;top:150px;width:88px;height:88px;filter:drop-shadow(3px 3px 0 rgba(0,0,0,.4))}
.mc-st-b{left:68px;top:226px;width:64px;height:64px;filter:drop-shadow(3px 3px 0 rgba(0,0,0,.4))}
.mc-st-none{position:absolute;left:0;right:0;top:130px;text-align:center;font:400 12px var(--font-mc);color:#fff;text-shadow:2px 2px 0 #3f3f3f;background:rgba(0,0,0,.45);padding:4px}
@media(max-width:820px){.mc-stand{width:150px;height:240px;transform:none;zoom:.75}}
.mc-stand3d{width:240px;height:360px;flex:none}
.mc-stand3d[hidden]{display:none}
@media(max-width:820px){.mc-stand3d{width:200px;height:300px}}

/* golem on the "no such player" card */
.pl-miss::before{content:"";display:block;width:112px;height:96px;margin:0 0 14px;background:url(/images/piesmp-golem.svg) center/contain no-repeat}

/* ============================================================
   Survival + economy run (2026-11-11)
   The site now has two halves instead of three game modes:
   the survival world (green) and the economy on top of it
   (gold). Everything below belongs to that pair only.
   ============================================================ */

/* realm tabs on the boards: survival = grass, economy = sandstone */
.v3-bt-row[role=tablist] .v3-bt-survival i{background-image:url(/images/mc/grass_block_side.png)}
.v3-bt-row[role=tablist] .v3-bt-economy i{background-image:url(/images/mc/cut_sandstone.png)}
.v3-realmbar.v3-ea{--c:#86D94E}
.v3-realmbar.v3-pr{--c:#F6B73C}
.v3-bt-survival i,.v3-bt-economy i{image-rendering:pixelated}

/* "five ways to earn / five places to spend" cards */
.v3-econ-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px}
.v3-econ-card{position:relative;isolation:isolate;padding:26px 24px 24px;background:rgba(255,255,255,.035);
  border:1px solid rgba(255,255,255,.09);clip-path:polygon(14px 0,100% 0,100% calc(100% - 14px),calc(100% - 14px) 100%,0 100%,0 14px);
  transition:border-color .18s ease,background .18s ease,transform .18s ease}
.v3-econ-card:hover{border-color:rgba(255,255,255,.22);background:rgba(255,255,255,.06);transform:translateY(-2px)}
.v3-econ-n{display:block;font:800 13px var(--font-mc,monospace);letter-spacing:.14em;color:var(--c-diamond,#22D3EE);opacity:.85;margin-bottom:10px}
.v3-econ-card h3{font:800 clamp(19px,1.6vw,23px)/1.15 var(--font-display);text-transform:uppercase;letter-spacing:.01em;margin:0 0 8px;color:#fff}
.v3-econ-card p{margin:0;color:var(--dim);font-size:15px;line-height:1.55}

/* survival meter: a claimed patch of ground */
.v3-meter .v3-claim{display:grid;grid-template-columns:repeat(3,44px);grid-auto-rows:44px;gap:6px;justify-content:center;
  position:relative;padding:18px;filter:drop-shadow(0 18px 30px rgba(0,0,0,.45))}
.v3-claim-block{background:url(/images/mc/grass_block_side.png) 0 0/44px 44px;image-rendering:pixelated;
  box-shadow:inset 0 0 0 2px rgba(0,0,0,.25)}
.v3-claim-block.b1{grid-area:1/1}.v3-claim-block.b2{grid-area:1/2}.v3-claim-block.b3{grid-area:1/3}
.v3-claim-block.b4{grid-area:2/1;background-image:url(/images/mc/dirt.png)}
.v3-claim-block.b5{grid-area:2/2;background-image:url(/images/mc/dirt.png)}
.v3-claim-block.b6{grid-area:2/3;background-image:url(/images/mc/dirt.png)}
.v3-claim-lock{grid-area:1/1/3/4;display:grid;place-items:center;align-content:center;gap:6px;
  background:rgba(10,17,23,.55);box-shadow:inset 0 0 0 3px #86D94E;border-radius:2px}
.v3-claim-lock i{width:22px;height:18px;border:3px solid #86D94E;border-bottom:0;border-radius:8px 8px 0 0;display:block;position:relative}
.v3-claim-lock i::after{content:"";position:absolute;left:-6px;top:12px;width:28px;height:20px;background:#86D94E;border-radius:3px}
.v3-claim-lock b{font:800 12px var(--font-mc,monospace);letter-spacing:.16em;text-transform:uppercase;color:#EAFBE0}

/* economy meter: earn -> spend flow */
.v3-meter .v3-flow{display:flex;align-items:stretch;justify-content:center;gap:0;flex-wrap:wrap;
  filter:drop-shadow(0 18px 30px rgba(0,0,0,.45))}
.v3-flow-in,.v3-flow-out{display:grid;justify-items:center;gap:4px;padding:20px 26px;min-width:180px;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1)}
.v3-flow-in{border-right:0}
.v3-flow-out{border-left:0}
.v3-flow-in i,.v3-flow-out i{font-size:26px;line-height:1;font-style:normal}
.v3-flow-in b,.v3-flow-out b{font:800 16px var(--font-display);text-transform:uppercase;letter-spacing:.08em;color:#fff}
.v3-flow-in small,.v3-flow-out small{font-size:12px;color:var(--dim);text-align:center;line-height:1.4}
.v3-flow-arrow{align-self:center;width:44px;height:44px;display:grid;place-items:center;background:var(--c,#F6B73C);
  clip-path:polygon(0 0,55% 0,100% 50%,55% 100%,0 100%,40% 50%)}
@media (max-width:560px){
  .v3-flow-in,.v3-flow-out{min-width:0;flex:1 1 100%;border:1px solid rgba(255,255,255,.1)}
  .v3-flow-arrow{width:100%;height:26px;clip-path:polygon(50% 100%,0 0,100% 0)}
}

/* two halves, not three: the grid follows the count instead of leaving a hole */
.v3-modes{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
@media (max-width:980px){.v3-modes{grid-template-columns:1fr}}
