/* GENERATED from season2/s2theme.js THEME_CSS — do not edit by hand.
   Linked statically from index.html so the Season 2 palette is applied on the FIRST paint.
   It used to arrive only inside the dynamic season2/s2ui.js import chain, so every cold load
   showed the pre-Season-2 site for a beat and then flipped (Brawl 2026-09-23: "every time I
   boot up the website, it shows the old version, then the new version loads up").
   ensureTheme() still runs and is a no-op once this sheet is present. */

html.s2{
  --s2-sand:#F3C978; --s2-gold:#FFD56E; --s2-ember:#FF8A3D; --s2-rust:#C8562A;
  --s2-dusk:#5B3FA0; --s2-slate:#262B40; --s2-night:#120F1E;
  --s2-ink:#FBF3E4; --s2-dim:rgba(251,243,228,.76); --s2-faint:rgba(251,243,228,.52);
  --s2-line:rgba(255,232,190,.22); --s2-line-strong:rgba(255,213,110,.55);
  --s2-glass:linear-gradient(160deg,rgba(243,201,120,.17) 0%,rgba(91,63,160,.22) 55%,rgba(18,15,30,.80) 100%);
  --s2-glass-deep:linear-gradient(165deg,rgba(255,138,61,.18) 0%,rgba(91,63,160,.26) 50%,rgba(14,11,24,.88) 100%);
  --s2-well:rgba(10,8,18,.38);
  --s2-tile:rgba(255,240,215,.07); --s2-tile-line:rgba(255,236,200,.14);
  --s2-blur:blur(20px) saturate(165%);
  --s2-shadow:0 16px 36px rgba(0,0,0,.36),inset 0 1px 0 rgba(255,244,220,.30),inset 0 -1px 0 rgba(255,244,220,.06);
  --s2-sheen:linear-gradient(135deg,rgba(255,248,232,.20),rgba(255,255,255,0) 36%,rgba(255,255,255,0) 72%,rgba(255,248,232,.07));
  --s2-btn:linear-gradient(180deg,#FFF2CF 0%,#F6C45C 58%,#E0913A 100%);
  --s2-btn-ink:#2A1700;
  --s2-bar:linear-gradient(90deg,#FFE29A,#FFB347 55%,#FF7A3D);
  --s2-sel-bg:rgba(255,213,110,.14);
  --s2-r:22px; --s2-r-sm:14px;
  --s2-font:"PKMN",system-ui,sans-serif;
}

/* ---- shared primitives ---- */
html.s2 .s2g{position:relative;overflow:hidden;isolation:isolate;border-radius:var(--s2-r);padding:16px;color:var(--s2-ink);
  border:1px solid var(--s2-line);background:var(--s2-glass);
  -webkit-backdrop-filter:var(--s2-blur);backdrop-filter:var(--s2-blur);box-shadow:var(--s2-shadow);}
html.s2 .s2g::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:-1;background:var(--s2-sheen);}
html.s2 .s2-eye{font-family:var(--s2-font);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--s2-faint);margin:0;}
html.s2 .s2-fine{font-size:11px;color:var(--s2-faint);margin:0;line-height:1.45;}
html.s2 .s2-btn{appearance:none;font:inherit;font-family:var(--s2-font);font-size:13px;letter-spacing:.03em;cursor:pointer;color:var(--s2-btn-ink);
  display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 16px;border-radius:99px;border:1px solid rgba(255,248,230,.7);
  background:var(--s2-btn);box-shadow:inset 0 1px 0 rgba(255,255,255,.85),0 8px 20px rgba(224,145,58,.32);transition:transform .12s ease,filter .12s ease;}
html.s2 .s2-btn:hover:not(:disabled){filter:brightness(1.06);} html.s2 .s2-btn:active:not(:disabled){transform:scale(.97);}
html.s2 .s2-btn:focus-visible{outline:2px solid #fff;outline-offset:3px;}
html.s2 .s2-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:99px;font-size:10.5px;font-weight:700;letter-spacing:.03em;white-space:nowrap;
  background:var(--s2-sel-bg);border:1px solid var(--s2-line-strong);color:#FFE7A8;}

/* ---- re-skin: Cosmetics ---- */
html.s2 .cz{--cz-ink:var(--s2-ink);--cz-dim:var(--s2-dim);--cz-faint:var(--s2-faint);--cz-ice:var(--s2-gold);--cz-violet:var(--s2-ember);}
html.s2 .cz-glass{background:var(--s2-glass);border-color:var(--s2-line);box-shadow:var(--s2-shadow);-webkit-backdrop-filter:var(--s2-blur);backdrop-filter:var(--s2-blur);}
html.s2 .cz-glass::before{background:var(--s2-sheen);}
html.s2 .cz-bal{border-color:var(--s2-line-strong);background:var(--s2-well);}
html.s2 .cz-track{background:var(--s2-well);} html.s2 .cz-track i{background:var(--s2-bar);box-shadow:0 0 12px rgba(255,160,70,.45);}
html.s2 .cz-btn{background:var(--s2-btn);color:var(--s2-btn-ink);border-color:rgba(255,248,230,.7);box-shadow:inset 0 1px 0 rgba(255,255,255,.85),0 10px 24px rgba(224,145,58,.32);}
html.s2 .cz-btn:disabled{background:rgba(255,240,215,.08);color:var(--s2-faint);border-color:var(--s2-tile-line);box-shadow:none;}
html.s2 .cz-orb,html.s2 .cz-cap{background:radial-gradient(circle at 34% 28%,rgba(255,250,235,.62),rgba(255,213,110,.30) 34%,rgba(91,63,160,.42) 70%,rgba(18,15,30,.7));
  box-shadow:inset 0 2px 0 rgba(255,255,255,.6),inset 0 -18px 28px rgba(30,16,50,.5),0 0 38px rgba(255,190,90,.30),0 20px 40px rgba(0,0,0,.42);}
html.s2 .cz-art{background:radial-gradient(circle at 50% 45%,rgba(255,213,110,.28),rgba(91,63,160,.14) 55%,rgba(0,0,0,.22));}
html.s2 .cz-chip.own{background:var(--s2-sel-bg);border-color:var(--s2-line-strong);color:#FFE7A8;}
html.s2 .cz-kick{background:var(--s2-sel-bg);border-color:var(--s2-line-strong);color:#FFE7A8;}

/* ---- re-skin: Home advert ---- */
html.s2 .s2ad-card{background:var(--s2-glass-deep);border-color:var(--s2-line);box-shadow:var(--s2-shadow);}
html.s2 .s2ad-card::before{background:var(--s2-sheen);}
html.s2 .s2ad-go,html.s2 .s2ad-pill.sf{background:var(--s2-btn);color:var(--s2-btn-ink);}
html.s2 .s2ad-eye{color:var(--s2-sand);}
html.s2 .s2ad-c{background:var(--s2-tile);border-color:var(--s2-tile-line);}
html.s2 .s2ad-c.perma{background:rgba(91,63,160,.22);border-color:rgba(160,130,240,.38);}
html.s2 .s2ad-c.item{background:var(--s2-sel-bg);border-color:rgba(255,213,110,.34);}
html.s2 .s2ad-cards span b{color:var(--s2-gold);}

/* ---- re-skin: Super Fan explainer ---- */
html.s2 .s2sf-status{background:var(--s2-sel-bg);border-color:var(--s2-line-strong);}
html.s2 .s2sf-dot{background:var(--s2-gold);box-shadow:0 0 10px rgba(255,213,110,.8);}
html.s2 .s2sf li::before{background:var(--s2-btn);color:var(--s2-btn-ink);}
html.s2 .s2sf li b{color:var(--s2-gold);}

/* ---- re-skin: black market ---- */
html.s2 .s2bm{background:linear-gradient(160deg,rgba(91,63,160,.34),rgba(14,11,24,.86));border-color:var(--s2-line);box-shadow:var(--s2-shadow);}
html.s2 .s2bm.open{background:linear-gradient(160deg,rgba(255,138,61,.26),rgba(91,63,160,.22) 55%,rgba(14,11,24,.86));border-color:var(--s2-line-strong);}
html.s2 .s2bm-card{background:var(--s2-tile);border-color:var(--s2-tile-line);}
html.s2 .s2bm-card em{background:var(--s2-btn);color:var(--s2-btn-ink);}

/* ---- re-skin: ranked ladder rows (gated rungs) ---- */
html.s2 .s2rl-claimed{color:var(--s2-gold);}

/* ---- re-skin: Daily Tournament ---- */
html.s2 .tn-open{background:radial-gradient(120% 60% at 20% 0%,rgba(255,138,61,.20),rgba(0,0,0,0) 60%),radial-gradient(90% 60% at 100% 30%,rgba(91,63,160,.30),rgba(0,0,0,0) 60%),rgba(8,6,14,.72);}
html.s2 .tn-top{background:linear-gradient(180deg,rgba(18,14,28,.94),rgba(18,14,28,.72));border-bottom-color:var(--s2-line);}
html.s2 .tn-bub,html.s2 .tn-card{background:var(--s2-glass);border-color:var(--s2-line);box-shadow:var(--s2-shadow);-webkit-backdrop-filter:var(--s2-blur);backdrop-filter:var(--s2-blur);}
html.s2 .tn-card::before{background:var(--s2-sheen);}
html.s2 .tn-h,html.s2 .tn-h3{color:var(--s2-ink);}
html.s2 .tn-eye{color:var(--s2-faint);}
html.s2 .tn-go{background:var(--s2-btn);color:var(--s2-btn-ink);}
html.s2 .tn-cr{background:var(--s2-well);border-color:var(--s2-line-strong);color:#FFEFC2;}
html.s2 .tn-btn{background:var(--s2-btn);color:var(--s2-btn-ink);border-color:rgba(255,248,230,.7);box-shadow:inset 0 1px 0 rgba(255,255,255,.85),0 8px 20px rgba(224,145,58,.3);}
html.s2 .tn-btn.ghost{background:rgba(255,240,215,.10);color:var(--s2-ink);border-color:var(--s2-line);box-shadow:none;}
html.s2 .tn-chip{background:rgba(255,240,215,.08);border-color:var(--s2-line);color:var(--s2-dim);}
html.s2 .tn-chip.gold{background:var(--s2-sel-bg);border-color:var(--s2-line-strong);color:#FFE7A8;}
html.s2 .tn-mon,html.s2 .tn-pk,html.s2 .tn-bm,html.s2 .tn-res li,html.s2 .tn-pz>div,html.s2 .tn-pzt div,html.s2 .tn-lb li{background:var(--s2-tile);border-color:var(--s2-tile-line);}
html.s2 .tn-mon.on,html.s2 .tn-pk.on{border-color:var(--s2-gold);background:var(--s2-sel-bg);box-shadow:0 0 0 1px var(--s2-gold) inset,0 8px 20px rgba(255,190,90,.22);}
html.s2 .tn-mon.mine,html.s2 .tn-res li.mine{border-color:var(--s2-ember);background:rgba(255,138,61,.14);box-shadow:0 0 0 1px rgba(255,138,61,.7) inset;}
html.s2 .tn-pct{background:var(--s2-well);} html.s2 .tn-pct i{background:var(--s2-bar);}
html.s2 .tn-step button{background:rgba(255,240,215,.10);border-color:var(--s2-line);}
html.s2 .tn-pay div{background:var(--s2-well);border-color:var(--s2-tile-line);}
html.s2 .tn-pay .w span{color:var(--s2-gold);}
html.s2 .tn-mybet{background:rgba(255,138,61,.12);border-color:rgba(255,138,61,.42);}
html.s2 .tn-res li.p1,html.s2 .tn-pz>div.top,html.s2 .tn-pzt div.g{background:linear-gradient(90deg,rgba(255,213,110,.24),rgba(255,240,215,.05));border-color:var(--s2-line-strong);}
html.s2 .tn-res li.p1 .pl{color:var(--s2-gold);}
html.s2 .tn-out{background:var(--s2-well);border-color:var(--s2-tile-line);}
html.s2 .tn-bm.today{border-color:var(--s2-line-strong);background:var(--s2-sel-bg);}
html.s2 .tn-lb li.me{background:rgba(255,138,61,.14);box-shadow:0 0 0 1px rgba(255,138,61,.5) inset;}
html.s2 .tn-lb li .pz{color:var(--s2-gold);}
html.s2 .tn-veil{background:rgba(14,10,22,.38);}
html.s2 .tn-lock{background:rgba(12,9,20,.58);}
html.s2 .tn-toast{background:rgba(24,18,34,.94);border-color:var(--s2-line-strong);}
html.s2 .tn-x{background:rgba(255,240,215,.10);border-color:var(--s2-line);}

/* ---- Brawl Pass: GOLD Liquid Glass ------------------------------------------------
   Brawl 2026-09-14: "make the brawl pass like liquid glass but gold and shiny instead of
   that purplish color… super premium, like people actually want to buy it".
   Only the pass goes gold: the pass page (.s2p, including its Super Fan block) and the
   Home pass advert (.s2ad). The tokens are re-declared on those two roots, so Cosmetics,
   Tournament, Ranked and Black Market keep the shared Sandstorm set above. Every rule is
   one class deeper than s2ui.js PASS_CSS / CSS (html.s2 .s2p .x), so it wins whichever
   sheet loads first. Same Liquid Glass recipe (translucent base, blur, inset rim light,
   specular sheen); the material is champagne-to-deep-gold with a slow shimmer sweep. */
/* .s2ps is the PERMASHOP (Brawl 2026-09-15: "I want the perma shop to have a
   golden Liquid Glass behind it"). It takes the pass's gold tokens verbatim —
   one approved gold, not a second hand-mixed one — so the event reads as the
   premium thing on a page that is otherwise sandstorm violet. */
html.s2 .s2p,html.s2 .s2ad,html.s2 .s2ps{
  --s2-ink:#FFF8E7; --s2-dim:rgba(255,245,222,.82); --s2-faint:rgba(255,236,196,.62);
  --s2-line:rgba(255,212,120,.38); --s2-line-strong:rgba(255,220,130,.78);
  --s2-glass:linear-gradient(158deg,rgba(255,233,168,.30) 0%,rgba(230,172,66,.20) 28%,rgba(122,80,20,.50) 62%,rgba(33,21,5,.90) 100%);
  --s2-glass-deep:linear-gradient(162deg,rgba(255,226,146,.36) 0%,rgba(216,152,50,.26) 38%,rgba(74,47,10,.80) 76%,rgba(26,17,4,.94) 100%);
  --s2-well:rgba(30,19,4,.50);
  --s2-tile:linear-gradient(172deg,rgba(255,232,170,.15),rgba(255,200,100,.05) 70%);
  --s2-tile-line:rgba(255,216,140,.28);
  --s2-shadow:0 18px 42px rgba(0,0,0,.45),0 0 36px rgba(255,184,64,.16),inset 0 1px 0 rgba(255,250,226,.70),inset 0 0 0 1px rgba(255,212,110,.12),inset 0 -1px 0 rgba(255,214,140,.18);
  --s2-sheen:linear-gradient(126deg,rgba(255,252,238,.36) 0%,rgba(255,240,196,.10) 20%,rgba(255,255,255,0) 38%,rgba(255,255,255,0) 68%,rgba(255,224,150,.16) 100%);
  --s2-btn:linear-gradient(180deg,#FFF8E0 0%,#FFE28E 32%,#F3B63E 68%,#CB8820 100%);
  --s2-btn-ink:#2A1900;
  --s2-bar:linear-gradient(90deg,#FFF2C6 0%,#FFD86E 38%,#F3AF36 74%,#D88C1F 100%);
  --s2-sel-bg:rgba(255,210,100,.20);
  --s2-foil:linear-gradient(135deg,#FFF7DA 0%,#FFDA7A 20%,#E6A534 46%,#FFEBA8 60%,#C7871F 100%);
  --s2-goldtext:linear-gradient(180deg,#FFFCEE 0%,#FFE7A6 40%,#F6BE4C 76%,#DC952C 100%);
}
@keyframes s2gSweep{0%{transform:translateX(-180%) skewX(-16deg)}55%,100%{transform:translateX(420%) skewX(-16deg)}}
@keyframes s2gGlint{0%{transform:translateX(-110%)}60%,100%{transform:translateX(110%)}}
/* shimmer: a slow band of light across the hero, the advert and the milestone tiles */
html.s2 .s2p .s2p-hero::after,html.s2 .s2ad .s2ad-card::after,html.s2 .s2p .s2p-node.big .s2p-tile::after{
  content:"";position:absolute;top:-12%;bottom:-12%;left:0;width:34%;z-index:3;pointer-events:none;
  background:linear-gradient(100deg,rgba(255,244,210,0) 0%,rgba(255,244,210,.10) 36%,rgba(255,255,246,.24) 50%,rgba(255,244,210,.10) 64%,rgba(255,244,210,0) 100%);
  transform:translateX(-180%) skewX(-16deg);animation:s2gSweep 6.5s cubic-bezier(.4,0,.2,1) 1.2s infinite;}
html.s2 .s2p .s2p-node.big .s2p-tile::after{width:60%;animation-duration:8s;}

/* Permashop: the gold slab itself, the shimmer sweep across it, and its tiles.
   The slab is positioned+clipped so the sweep rides inside its rounded edge. */
html.s2 .s2ps{position:relative;overflow:hidden;isolation:isolate;border-radius:22px;padding:14px;margin-top:18px;
  border:1px solid var(--s2-line);background:var(--s2-glass-deep);box-shadow:var(--s2-shadow);
  -webkit-backdrop-filter:var(--s2-blur);backdrop-filter:var(--s2-blur);}
html.s2 .s2ps::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:0;background:var(--s2-sheen);}
html.s2 .s2ps::after{content:"";position:absolute;top:-12%;bottom:-12%;left:0;width:34%;z-index:1;pointer-events:none;
  background:linear-gradient(100deg,rgba(255,244,210,0) 0%,rgba(255,244,210,.10) 36%,rgba(255,255,246,.24) 50%,rgba(255,244,210,.10) 64%,rgba(255,244,210,0) 100%);
  transform:translateX(-180%) skewX(-16deg);animation:s2gSweep 6.5s cubic-bezier(.4,0,.2,1) 1.2s infinite;}
html.s2 .s2ps > *{position:relative;z-index:2;}
/* NO BACKTICKS IN THIS FILE: every rule here lives inside the THEME_CSS
   template literal, so one stray backtick ends the string and the whole module
   fails to import (which silently drops Season 2 off the site entirely).
   index.html's own .eyebrow sets color:var(--faint) and outranks a bare
   one-class rule, which left this heading a dim maroon on the gold. */
html.s2 .s2ps p.eyebrow{color:#FFEDC0;}
/* the little dash before every eyebrow is a red-to-cyan gradient in the base
   sheet — on gold it reads as a maroon smudge, which is what looked "off" */
html.s2 .s2ps p.eyebrow::before{background:linear-gradient(90deg,#FFE7A6,#F3B63E);}
html.s2 .s2ps .sub{color:var(--s2-dim);}
html.s2 .s2ps .sub b{color:var(--s2-gold);}
/* The tiles sit ON the gold slab, so they need to read as DARK wells punched
   into it — the first pass used the pass's translucent champagne tile, which on
   this deep-gold ground turned to mud and swallowed the sprites. */
/* !important is REQUIRED, not lazy: index.html forces
   ".glass, .card, .panel, .view > section, ... { background:rgba(16,22,44,.30) !important }"
   so no selector weight can beat it — the same reason .panel.rl2-panel and
   .panel.tm-detail in that file carry !important too. Without it these tiles
   keep the blue-grey glass and sit on the gold looking like mud. */
html.s2 .s2ps .panel{background:linear-gradient(172deg,rgba(28,18,4,.62),rgba(16,10,2,.78)) !important;
  border:1px solid rgba(255,216,140,.30);
  box-shadow:inset 0 1px 0 rgba(255,250,226,.22),0 6px 16px rgba(0,0,0,.34);}
html.s2 .s2ps .panel img{filter:drop-shadow(0 3px 5px rgba(0,0,0,.55));}
html.s2 .s2ps .panel b{color:#FFF8E7;}
html.s2 .s2ps .panel .sub{color:var(--s2-faint);}
html.s2 .s2ps .btn.primary{background:var(--s2-btn);color:var(--s2-btn-ink);border-color:rgba(255,248,230,.85);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8),0 4px 14px rgba(230,160,50,.34);}
html.s2 .s2ps .btn.quiet{background:rgba(36,23,5,.52);color:var(--s2-dim);border-color:var(--s2-line);}
@media (prefers-reduced-motion:reduce){html.s2 .s2ps::after{animation:none;}}
html.s2 .s2p .s2p-node.big:nth-child(2n) .s2p-tile::after{animation-delay:-4s;}

/* pass page: glass, hero, level medallion, progress */
html.s2 .s2p .s2g{border-color:var(--s2-line);}
html.s2 .s2p .s2g::before{background:var(--s2-sheen);}
html.s2 .s2p .s2p-art::after{background:linear-gradient(180deg,rgba(40,25,4,.06) 0%,rgba(40,25,4,0) 34%,rgba(36,23,5,.60) 72%,rgba(30,19,4,.95) 100%),radial-gradient(80% 60% at 50% 28%,rgba(255,200,90,.10),rgba(30,19,4,.22));}
html.s2 .s2p .s2p-body{border-top:1px solid rgba(255,222,140,.30);}
html.s2 .s2p .s2p-pill{background:rgba(36,23,5,.52);border-color:var(--s2-line);}
html.s2 .s2p .s2p-pill.gold,html.s2 .s2ad .s2ad-pill.sf{background:var(--s2-foil);color:#2A1900;border-color:rgba(255,248,226,.9);box-shadow:inset 0 1px 0 rgba(255,255,255,.8),0 4px 14px rgba(230,160,50,.38);}
html.s2 .s2p .s2p-title,html.s2 .s2ad .s2ad-title{color:#FFE7A6;}
@supports ((-webkit-background-clip:text) or (background-clip:text)){
  html.s2 .s2p .s2p-title,html.s2 .s2ad .s2ad-title{background:var(--s2-goldtext);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;
    text-shadow:none;filter:drop-shadow(0 2px 2px rgba(0,0,0,.7)) drop-shadow(0 0 14px rgba(0,0,0,.45));}
}
html.s2 .s2p .s2p-big{background:radial-gradient(circle at 32% 22%,#FFFCEB 0%,#FFE394 24%,#EDB141 56%,#B4731C 88%,#8E5712 100%);border:1px solid rgba(255,246,214,.92);
  box-shadow:inset 0 2px 0 rgba(255,255,255,.85),inset 0 -8px 14px rgba(110,62,8,.45),0 0 28px rgba(255,190,80,.42),0 10px 20px rgba(0,0,0,.38);}
html.s2 .s2p .s2p-big b{color:#3B2200;text-shadow:0 1px 0 rgba(255,246,210,.7);}
html.s2 .s2p .s2p-big span{color:rgba(59,34,0,.78);}
html.s2 .s2p .s2p-bar{background:var(--s2-well);box-shadow:inset 0 1px 2px rgba(0,0,0,.55),inset 0 0 0 1px rgba(255,220,140,.16);}
html.s2 .s2p .s2p-bar i{position:relative;overflow:hidden;background:var(--s2-bar);box-shadow:0 0 16px rgba(255,190,70,.6),inset 0 1px 0 rgba(255,255,240,.75);}
html.s2 .s2p .s2p-bar i::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(255,255,245,0) 30%,rgba(255,255,245,.7) 50%,rgba(255,255,245,0) 70%);
  transform:translateX(-110%);animation:s2gGlint 3.4s ease-in-out infinite;}

/* pass page: reward track */
html.s2 .s2p .s2-chip,html.s2 .s2p .s2p-tabs button.cur{background:var(--s2-foil);color:#2A1900;border-color:rgba(255,246,214,.9);box-shadow:inset 0 1px 0 rgba(255,255,255,.75);}
html.s2 .s2p .s2p-scroll{scrollbar-color:rgba(255,213,110,.5) transparent;}
html.s2 .s2p .s2p-node::before,html.s2 .s2p .s2p-node::after{background:rgba(255,220,150,.16);}
html.s2 .s2p .s2p-node.reached::before,html.s2 .s2p .s2p-node.reached::after{background:var(--s2-bar);box-shadow:0 0 10px rgba(255,190,80,.5);}
html.s2 .s2p .s2p-dot{background:linear-gradient(180deg,rgba(54,35,8,.97),rgba(28,18,4,.97));border-color:rgba(255,222,150,.30);}
html.s2 .s2p .s2p-node.reached .s2p-dot{border-color:#FFD76E;color:#FFE39A;box-shadow:0 0 10px rgba(255,200,90,.35);}
html.s2 .s2p .s2p-node.claimed .s2p-dot,html.s2 .s2p .s2p-node.claimable .s2p-dot{background:var(--s2-foil);color:#2A1900;border-color:#FFF2CF;}
html.s2 .s2p .s2p-node.claimed .s2p-tile{opacity:.72;}
html.s2 .s2p .s2p-tile{background:var(--s2-tile);border-color:var(--s2-tile-line);box-shadow:inset 0 1px 0 rgba(255,248,220,.22);}
html.s2 .s2p .s2p-node.big .s2p-tile{overflow:hidden;isolation:isolate;border-color:rgba(255,216,124,.70);
  background:linear-gradient(172deg,rgba(255,230,156,.34) 0%,rgba(222,160,56,.18) 44%,rgba(40,26,6,.58) 100%);
  box-shadow:inset 0 1px 0 rgba(255,250,228,.62),inset 0 0 0 1px rgba(255,214,120,.14),0 0 24px rgba(255,184,64,.16),0 12px 26px rgba(0,0,0,.36);}
html.s2 .s2p .s2p-node.claimable .s2p-tile{border-color:#FFD76E;box-shadow:inset 0 1px 0 rgba(255,250,228,.7),inset 0 0 0 1px rgba(255,215,110,.55),0 0 30px rgba(255,186,70,.34);}
html.s2 .s2p .s2p-kind{color:rgba(255,222,150,.86);}
html.s2 .s2p .s2p-card{background:linear-gradient(160deg,rgba(255,236,172,.62),rgba(200,134,34,.50) 60%,rgba(90,56,10,.62));border-color:rgba(255,242,200,.82);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 6px 14px rgba(0,0,0,.38),0 0 12px rgba(255,196,80,.22);}
html.s2 .s2p .s2p-card i{background:rgba(38,24,4,.72);color:#FFE7A6;}
html.s2 .s2p .s2p-card.anim{box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 0 20px rgba(255,196,80,.6);}
html.s2 .s2p .s2p-card.anim i{background:var(--s2-foil);color:#2A1900;}
html.s2 .s2p .s2p-perma::before{background:radial-gradient(circle,rgba(255,214,110,.55),rgba(255,180,60,0) 70%);}
html.s2 .s2p .s2p-got{color:#FFE08A;}
html.s2 .s2p .s2p-c.hi{background:linear-gradient(172deg,rgba(255,226,150,.26),rgba(214,150,50,.10));border-color:rgba(255,216,124,.55);}

/* pass page: Super Fan block (locked state reads as a premium invitation, not an error) */
html.s2 .s2p .s2sf h3{color:var(--s2-ink);}
html.s2 .s2p .s2sf li{color:var(--s2-dim);}
html.s2 .s2p .s2sf li b{color:#FFE08A;}
html.s2 .s2p .s2sf li::before{background:var(--s2-foil);color:#2A1900;box-shadow:inset 0 1px 0 rgba(255,255,255,.7);}
html.s2 .s2p .s2sf-status{background:linear-gradient(135deg,rgba(255,230,160,.26),rgba(214,150,50,.12) 60%,rgba(40,26,6,.30));border:1px solid var(--s2-line-strong);
  box-shadow:inset 0 1px 0 rgba(255,250,228,.55),0 0 24px rgba(255,186,70,.18);}
html.s2 .s2p .s2sf-status b{color:#FFF3CF;}
html.s2 .s2p .s2sf-status span{color:var(--s2-dim);}
html.s2 .s2p .s2sf-dot{background:var(--s2-foil);box-shadow:0 0 12px rgba(255,210,100,.95);}
html.s2 .s2p .s2sf-status.on .s2sf-dot{background:#7CF0A8;box-shadow:0 0 10px rgba(124,240,168,.9);}

/* Home pass advert */
html.s2 .s2ad{color:var(--s2-ink);}
html.s2 .s2ad .s2ad-card{background:var(--s2-glass-deep);border-color:var(--s2-line-strong);box-shadow:var(--s2-shadow);}
html.s2 .s2ad .s2ad-card::before{background:var(--s2-sheen);}
html.s2 .s2ad .s2ad-hero::after{background:linear-gradient(180deg,rgba(36,23,5,0) 30%,rgba(36,23,5,.55) 62%,rgba(30,19,4,.94) 100%);}
html.s2 .s2ad .s2ad-pill.when{background:rgba(36,23,5,.52);border-color:var(--s2-line);color:var(--s2-ink);}
html.s2 .s2ad .s2ad-go{background:var(--s2-btn);color:var(--s2-btn-ink);box-shadow:inset 0 1px 0 rgba(255,255,255,.85),0 6px 16px rgba(230,160,50,.38);}
html.s2 .s2ad .s2ad-eye{color:#FFD98A;}
html.s2 .s2ad .s2ad-c{background:var(--s2-tile);border-color:var(--s2-tile-line);}
html.s2 .s2ad .s2ad-c small{color:var(--s2-faint);}
html.s2 .s2ad .s2ad-c.perma,html.s2 .s2ad .s2ad-c.item{background:linear-gradient(172deg,rgba(255,226,150,.26),rgba(214,150,50,.10));border-color:rgba(255,216,124,.55);}
html.s2 .s2ad .s2ad-av img{background:radial-gradient(circle at 35% 30%,rgba(90,60,14,.95),rgba(30,19,4,.95));border-color:rgba(255,216,124,.65);}
html.s2 .s2ad .s2ad-cards span{color:var(--s2-dim);}
html.s2 .s2ad .s2ad-cards span b{color:#FFE08A;}

@media (prefers-reduced-motion:reduce){
  html.s2 .s2p .s2p-hero::after,html.s2 .s2ad .s2ad-card::after,html.s2 .s2p .s2p-node.big .s2p-tile::after,html.s2 .s2p .s2p-bar i::after{animation:none;opacity:0;}
}
