@font-face{font-family:"Figtree";src:url(/assets/fonts/Figtree.woff2) format("woff2");font-weight:300 900;font-display:swap}
@font-face{font-family:"Bagel Fat One";src:url(/assets/fonts/BagelFatOne-Regular.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Luckiest Guy";src:url(/assets/fonts/LuckiestGuy-Regular.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Pixelify Sans";src:url(/assets/fonts/PixelifySans.woff2) format("woff2");font-weight:400 700;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url(/assets/fonts/JetBrainsMono.woff2) format("woff2");font-weight:100 800;font-display:swap}

/* Layout: red header band with yellow stripe and pill tabs; one view at a time; a meadow scene hero where capture orbs release Pokémon */
:root{
  --bg:#eef0fb; --surface:#ffffff; --surface-2:#e4e7f8; --ink:#141a46; --muted:#555c86; --line:#d3d8f1;
  --red:#cc0000; --red-hot:#ff0000; --red-deep:#990000; --yellow:#ffde00; --gold:#b3a125; --yellow-soft:#fff6b3; --blue:#3b4cca; --blue-ink:#3b4cca; --band:#3b4cca; --band-deep:#26328f; --navy:#1c2470; --on-red:#ffffff;
  --good:#1f9d55; --warn:#d48b00; --bad:#d9302a;
  --sky-1:#8fb8ff; --sky-2:#e3ecff; --g1:#5cb85a; --g2:#3e9e43; --g3:#2b7f34; --sun:#ffd84a;
  --shadow:0 2px 0 rgba(20,33,61,.1), 0 10px 26px -14px rgba(20,33,61,.35);
  --f-display:"Bagel Fat One","Arial Rounded MT Bold","Trebuchet MS",system-ui,sans-serif;
  --f-body:"Figtree",ui-rounded,"Segoe UI",system-ui,sans-serif;
  --f-mono:"JetBrains Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;
  --r:20px;
  --t-normal:#8d8a68; --t-fighting:#c0352c; --t-flying:#6a5bd6; --t-poison:#9a42a8; --t-ground:#b4862f; --t-rock:#a0903d;
  --t-bug:#86a01c; --t-ghost:#5f4d92; --t-steel:#646a92; --t-fire:#ec6a1f; --t-water:#2f6fd0; --t-grass:#4ea83a;
  --t-electric:#f2c200; --t-psychic:#ea4f80; --t-ice:#62c8c4; --t-dragon:#5a46dc; --t-dark:#5a463b; --t-fairy:#de72bf;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#0c1036; --surface:#161c52; --surface-2:#202866; --ink:#eef1ff; --muted:#b4bce0; --line:#2a3670;
  --red:#e01414; --red-hot:#ff3b3b; --red-deep:#8a0000; --yellow:#ffde00; --gold:#c9b53a; --yellow-soft:#4a420a; --blue:#6f7ef5; --blue-ink:#a3adff; --band:#2e3ba8; --band-deep:#1a2273; --navy:#0b1040; --on-red:#ffffff;
  --good:#46d17f; --warn:#f5b52e; --bad:#ff8076;
  --sky-1:#16205a; --sky-2:#3b4aa0; --g1:#2f6e3a; --g2:#24592e; --g3:#1a4523; --sun:#f3f0d6;
  --shadow:0 2px 0 rgba(0,0,0,.4), 0 12px 30px -14px rgba(0,0,0,.7); color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0c1036; --surface:#161c52; --surface-2:#202866; --ink:#eef1ff; --muted:#b4bce0; --line:#2a3670;
  --red:#e01414; --red-hot:#ff3b3b; --red-deep:#8a0000; --yellow:#ffde00; --gold:#c9b53a; --yellow-soft:#4a420a; --blue:#6f7ef5; --blue-ink:#a3adff; --band:#2e3ba8; --band-deep:#1a2273; --navy:#0b1040; --on-red:#ffffff;
  --good:#46d17f; --warn:#f5b52e; --bad:#ff8076;
  --sky-1:#16205a; --sky-2:#3b4aa0; --g1:#2f6e3a; --g2:#24592e; --g3:#1a4523; --sun:#f3f0d6;
  --shadow:0 2px 0 rgba(0,0,0,.4), 0 12px 30px -14px rgba(0,0,0,.7); color-scheme:dark}

[hidden]{display:none!important}
*{box-sizing:border-box}
html,body{margin:0}
img{max-width:100%}
body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--band)}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--yellow);outline-offset:2px;border-radius:10px}
h1,h2,h3{text-wrap:balance;margin:0}
.wrap{max-width:1200px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.num{font-family:var(--f-mono);font-variant-numeric:tabular-nums}

/* Header */
header.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:9;background:var(--band);color:var(--on-red);border-bottom:6px solid var(--yellow);box-shadow:0 6px 0 rgba(20,33,61,.08)}
.top .wrap{display:flex;align-items:center;gap:12px 16px;padding-block:10px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit;margin-right:auto}
.brand svg{width:38px;height:38px;flex:none;filter:drop-shadow(0 2px 0 rgba(0,0,0,.25));transition:transform .4s}
.brand:hover svg{transform:rotate(30deg) scale(1.08)}
.brand b{font-family:var(--f-display);font-weight:400;font-size:1.6rem;line-height:1;text-shadow:0 3px 0 var(--band-deep)}
.brand small{display:block;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;opacity:.85;font-weight:800}
.tools{display:flex;gap:6px}
.iconbtn{background:rgba(255,255,255,.16);border:0;border-radius:999px;color:var(--on-red);padding:7px 13px;font-size:.8rem;font-weight:800;cursor:pointer}
.iconbtn:hover{background:rgba(255,255,255,.28)}
nav.tabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;width:100%;padding-bottom:2px}
nav.tabs::-webkit-scrollbar{display:none}
.tab{flex:none;border:0;text-decoration:none;display:inline-block;background:rgba(0,0,0,.18);color:var(--on-red);font-weight:800;font-size:.95rem;padding:8px 16px;border-radius:999px;cursor:pointer;transition:background .15s, transform .15s}
.tab:hover{background:rgba(0,0,0,.24)}
.tab[aria-current="page"]{background:var(--yellow);color:#14213d;box-shadow:0 3px 0 var(--band-deep);transform:translateY(-1px)}

main{padding-block:26px 56px;min-height:60vh}
.view{display:flex;flex-direction:column;gap:24px}
.view.enter{animation:viewIn .35s ease-out}
@keyframes viewIn{from{opacity:0;transform:translateY(10px)}}

/* Shared */
.eyebrow{font-size:max(.74rem,12px);font-weight:900;letter-spacing:.16em;text-transform:uppercase;color:var(--blue-ink)}
.hl{color:var(--blue-ink)}
.h2{color:var(--blue-ink)}
.h-display{font-family:var(--f-display);font-weight:400;font-size:clamp(2rem,5vw,3.4rem);line-height:1;letter-spacing:.005em}
.h2{font-family:var(--f-display);font-weight:400;font-size:clamp(1.35rem,3vw,1.85rem);line-height:1.1}
.lede{color:var(--muted);max-width:60ch;margin:8px 0 0;font-size:1.06rem}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:2.5px solid #14213d;background:var(--yellow);color:#14213d;font-weight:900;padding:10px 18px;border-radius:999px;cursor:pointer;box-shadow:0 4px 0 #14213d;transition:transform .12s, box-shadow .12s;text-decoration:none;white-space:nowrap}
.btn:hover{transform:translateY(-2px);box-shadow:0 6px 0 #14213d}
.btn:active{transform:translateY(3px);box-shadow:0 1px 0 #14213d}
.btn.red{background:var(--red);color:#fff}
.btn.ghost{background:var(--surface);color:var(--ink);border-color:var(--ink);box-shadow:0 4px 0 var(--ink)}
.btn.small{padding:6px 13px;font-size:.84rem;box-shadow:0 3px 0 #14213d}
.btn.ghost.small{box-shadow:0 3px 0 var(--ink)}
.btn[disabled]{opacity:.45;cursor:not-allowed;transform:none}
.panel{background:var(--surface);border:2.5px solid color-mix(in srgb,var(--blue) 22%,var(--line));border-radius:var(--r);padding:18px}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.field{display:flex;flex-direction:column;gap:4px;font-size:max(.74rem,12px);font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);min-width:0}
.input,.select{border:2.5px solid var(--line);background:var(--surface);border-radius:14px;padding:10px 12px;font-size:1rem;font-weight:700;color:var(--ink);text-transform:none;letter-spacing:0;min-width:0;width:100%}
.input:focus,.select:focus{border-color:var(--blue);box-shadow:0 0 0 4px color-mix(in srgb,var(--blue) 18%,transparent);outline:none}
.chip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;font-size:max(.7rem,12px);font-weight:900;letter-spacing:.07em;text-transform:uppercase;color:#fff;background:var(--tc,var(--t-normal));white-space:nowrap}
.chip.lt{color:#14213d;text-shadow:none}
.chips{display:flex;gap:5px;flex-wrap:wrap}
.badge{display:inline-flex;align-items:center;gap:4px;font-size:max(.68rem,12px);font-weight:900;letter-spacing:.1em;text-transform:uppercase;padding:3px 9px;border-radius:999px;background:var(--yellow);color:#14213d;border:2px solid #14213d}
.badge.myth{background:#d9ddff}
.badge.gold{background:var(--gold);color:#fff;border-color:#14213d}
.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translate(-50%,160%);background:var(--navy);color:#fff;padding:11px 20px;border-radius:999px;font-weight:800;z-index:70;transition:transform .3s cubic-bezier(.3,1.4,.5,1);max-width:calc(100% - 32px);text-align:center;border:2.5px solid var(--yellow)}
.toast.on{transform:translate(-50%,0)}
.toast{top:calc(env(safe-area-inset-top,0px) + 74px);bottom:auto;transform:translate(-50%,-260%);visibility:hidden;border-radius:16px;font-size:.92rem;line-height:1.35;padding:10px 16px;width:max-content;max-width:min(92vw,560px);box-shadow:0 6px 0 rgba(20,33,61,.18);border:2px solid var(--yellow)}
.toast.on{transform:translate(-50%,0);visibility:visible}

/* Picture: sprite over a type-tinted monogram fallback */
.pic{position:relative;container-type:inline-size;aspect-ratio:1;width:100%;max-width:100%;display:grid;place-items:center}
.pic .mono{position:absolute;inset:12%;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--tc) 50%, #fff), var(--tc) 72%);color:#fff;font-family:var(--f-display);font-size:30cqi;text-shadow:0 2px 0 rgba(0,0,0,.25);box-shadow:inset 0 -6px 0 rgba(0,0,0,.12);transition:opacity .2s}
.pic img{position:relative;z-index:1;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity .25s}
.pic img.ok{opacity:1}
.pic:has(img.ok) .mono{opacity:0}
.pic.px img{image-rendering:pixelated}
.pic.xs{width:36px;flex:none}

/* Capture orb release */
.rel{position:relative;display:grid;place-items:center;width:100%}
.rel>.rel-mon{grid-area:1/1;position:relative;z-index:2;width:100%;animation:emerge .75s .95s cubic-bezier(.3,1.45,.5,1) both}
.rel-orb{position:absolute;left:50%;top:50%;width:36%;translate:-50% -50%;z-index:3;animation:orbDrop .55s cubic-bezier(.25,.9,.4,1.25) both, orbWobble .38s .55s ease-in-out, orbGone .01s 1.5s forwards}
.rel-orb svg{display:block;width:100%;overflow:visible}
.rel-orb .facet{transform-box:fill-box;transform-origin:center;animation:shard .55s .9s cubic-bezier(.2,.7,.3,1) forwards}
.rel-orb .core{transform-box:fill-box;transform-origin:center;animation:core .3s .72s ease-in forwards}
.rel-flash{position:absolute;left:50%;top:50%;width:46%;aspect-ratio:1;border-radius:50%;translate:-50% -50%;background:radial-gradient(circle,#fff 0 28%,var(--yellow) 52%,transparent 70%);opacity:0;z-index:1;pointer-events:none;animation:flash .7s .88s ease-out both}
.rel-spark{position:absolute;inset:0;pointer-events:none;z-index:1}
.rel-spark i{position:absolute;left:50%;top:50%;width:7px;height:26px;margin:-13px 0 0 -3.5px;border-radius:4px;background:var(--yellow);opacity:0;animation:spark .6s .9s ease-out both}
.rel-spark i:nth-child(even){background:#fff;height:16px}
@keyframes orbDrop{0%{transform:translateY(-190%) rotate(-260deg) scale(.55);opacity:0}15%{opacity:1}70%{transform:translateY(10%) rotate(14deg) scale(1.05)}85%{transform:translateY(-6%) rotate(-4deg)}100%{transform:none}}
@keyframes orbWobble{25%{transform:rotate(-16deg)}50%{transform:rotate(12deg)}75%{transform:rotate(-6deg)}}
@keyframes orbGone{to{visibility:hidden}}
@keyframes shard{to{transform:translate(var(--dx),var(--dy)) rotate(var(--rot)) scale(.6);opacity:0}}
@keyframes core{50%{transform:scale(1.5)}100%{transform:scale(.2);opacity:0}}
@keyframes flash{0%{opacity:1;transform:scale(.2)}100%{opacity:0;transform:scale(3.4)}}
@keyframes spark{0%{opacity:1;transform:rotate(var(--a)) translateY(-14px) scaleY(.3)}100%{opacity:0;transform:rotate(var(--a)) translateY(-150px) scaleY(1)}}
@keyframes emerge{0%{opacity:0;transform:scale(.12);filter:brightness(0) invert(1) drop-shadow(0 0 16px #fff)}45%{opacity:1;transform:scale(1.14);filter:brightness(0) invert(1) drop-shadow(0 0 22px #fff)}100%{opacity:1;transform:none;filter:none}}
.now .rel-flash,.now .rel-spark i{animation-delay:0s}

/* Type particles */
.fx{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.fx i{position:absolute;left:var(--x);width:var(--s);height:var(--s);background:var(--pc,var(--tc));opacity:0;animation:var(--an) var(--d) var(--dl) infinite linear}
.fx .ember{bottom:-10%;border-radius:50% 50% 50% 0;transform:rotate(-45deg)}
.fx .bubble{bottom:-10%;background:transparent;border:2px solid var(--pc,var(--tc));border-radius:50%}
.fx .leaf{top:-10%;border-radius:0 80% 0 80%}
.fx .snow{top:-10%;border-radius:50%;background:#fff;box-shadow:0 0 6px var(--pc,var(--tc))}
.fx .ring{bottom:-10%;background:transparent;border:2px solid var(--pc,var(--tc));border-radius:50%}
.fx .wisp{bottom:-10%;border-radius:50%;filter:blur(3px)}
.fx .star{bottom:-10%;clip-path:polygon(50% 0,61% 38%,100% 50%,61% 62%,50% 100%,39% 62%,0 50%,39% 38%)}
.fx .spark{top:var(--y);clip-path:polygon(40% 0,100% 0,55% 45%,85% 45%,20% 100%,40% 55%,10% 55%)}
.fx .dust{top:var(--y);border-radius:50%}
.fx .glint{top:var(--y);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}
@keyframes rise{0%{opacity:0;transform:translate(0,0) rotate(-45deg)}15%{opacity:.85}100%{opacity:0;transform:translate(var(--sw),-520px) rotate(200deg)}}
@keyframes fall{0%{opacity:0;transform:translate(0,0) rotate(0)}15%{opacity:.9}100%{opacity:0;transform:translate(var(--sw),520px) rotate(320deg)}}
@keyframes twinkle{0%,100%{opacity:0;transform:scale(.3)}50%{opacity:.9;transform:scale(1.2) translateX(var(--sw))}}

/* Hero meadow */
.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:28px;align-items:center}
.hero .stats{display:flex;gap:22px;flex-wrap:wrap;margin-top:18px}
.hero .stats div{font-size:.8rem;color:var(--muted);font-weight:800}
.hero .stats b{display:block;font-family:var(--f-display);font-weight:400;font-size:1.75rem;color:var(--ink);line-height:1}
.hero .cta{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
.meadowcard{border:3px solid #14213d;border-radius:28px;overflow:hidden;box-shadow:7px 7px 0 var(--blue);background:var(--surface)}
.meadow{position:relative;aspect-ratio:5/4;max-width:100%;background:linear-gradient(var(--sky-1),var(--sky-2) 78%);overflow:hidden}
.meadow .sunball{position:absolute;top:9%;right:11%;width:15%;aspect-ratio:1;border-radius:50%;background:var(--sun);box-shadow:0 0 0 10px color-mix(in srgb,var(--sun) 30%,transparent),0 0 60px var(--sun)}
.meadow .cloud{position:absolute;height:9%;background:#fff;border-radius:999px;opacity:.9;animation:drift linear infinite}
.meadow .cloud::before,.meadow .cloud::after{content:"";position:absolute;background:#fff;border-radius:50%}
.meadow .cloud::before{width:45%;aspect-ratio:1;left:18%;bottom:30%}
.meadow .cloud::after{width:30%;aspect-ratio:1;left:50%;bottom:40%}
@keyframes drift{from{transform:translateX(-30vw)}to{transform:translateX(110vw)}}
.meadow .layer{position:absolute;left:-4%;width:108%;display:block;transform-origin:50% 100%}
.meadow .l1{bottom:22%;height:30%;color:var(--g1);animation:sway 6s ease-in-out infinite}
.meadow .l2{bottom:9%;height:30%;color:var(--g2);animation:sway 4.5s ease-in-out infinite reverse;z-index:1}
.meadow .ground{position:absolute;inset:auto 0 0;height:12%;background:var(--g3);z-index:3}
.meadow .l3{bottom:6%;height:24%;color:var(--g3);animation:sway 3.6s ease-in-out infinite;z-index:3}
.meadow.rustle .l3,.meadow.rustle .l2{animation:rustle .45s ease-in-out}
@keyframes sway{0%,100%{transform:skewX(0)}50%{transform:skewX(2.5deg)}}
@keyframes rustle{20%{transform:translateX(-10px) skewX(-6deg)}50%{transform:translateX(9px) skewX(6deg)}80%{transform:translateX(-4px)}}
.meadow .spot{position:absolute;left:50%;bottom:11%;width:50%;translate:-50% 0;z-index:2;border:0;background:none;padding:0;cursor:pointer}
.meadow .spot:hover .rel-mon{animation:none}
.meadow .spot:hover .pic{animation:hop .55s}
.meadow .night-stars{position:absolute;inset:0;background-image:radial-gradient(1.5px 1.5px at 20% 15%,#fff,transparent),radial-gradient(1.5px 1.5px at 70% 25%,#fff,transparent),radial-gradient(1px 1px at 40% 35%,#fff,transparent),radial-gradient(1px 1px at 85% 10%,#fff,transparent),radial-gradient(1.5px 1.5px at 10% 40%,#fff,transparent);opacity:var(--stars,0)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .meadow{--stars:.9}}
:root[data-theme="dark"] .meadow{--stars:.9}
.encbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-top:3px solid #14213d;flex-wrap:wrap}
.encbar .tag{font-size:max(.7rem,12px);font-weight:900;letter-spacing:.14em;text-transform:uppercase;color:var(--red-hot)}
.encbar .nm{font-family:var(--f-display);font-size:1.45rem;line-height:1.05}
@keyframes hop{0%,100%{transform:translateY(0)}35%{transform:translateY(-12%)}65%{transform:translateY(0)}82%{transform:translateY(-4%)}}

/* Dex controls & grid */
.controls{display:grid;grid-template-columns:minmax(0,2fr) repeat(3,minmax(0,1fr));gap:10px}
.typebar{display:flex;gap:6px;overflow-x:auto;padding:4px 2px 6px;scrollbar-width:thin}
.typebar .chip{border:0;cursor:pointer;padding:7px 13px;font-size:max(.72rem,12px);opacity:.5;transition:opacity .15s, transform .15s}
.typebar .chip:hover{opacity:.85}
.typebar .chip[aria-pressed="true"]{opacity:1;transform:translateY(-2px);box-shadow:0 3px 0 rgba(0,0,0,.3)}
.typebar .chip.all{--tc:var(--blue);color:#fff}
.count{font-size:.92rem;color:var(--muted);font-weight:700}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:16px}
.card{position:relative;background:var(--surface);border:2.5px solid var(--line);border-radius:var(--r);padding:0 0 14px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:6px;overflow:hidden;transform:perspective(800px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .2s, border-color .15s, box-shadow .15s;animation:cardIn .4s both}
@keyframes cardIn{from{opacity:0;transform:translateY(14px) scale(.96)}}
.card .top{position:relative;background:radial-gradient(circle at 50% 75%, color-mix(in srgb,var(--tc) 45%,var(--surface)) 0 38%, color-mix(in srgb,var(--tc) 22%,var(--surface)) 39% 100%);padding:10px 12px 0;border-bottom:2.5px solid var(--line)}
.card .no{font-family:var(--f-mono);font-size:max(.74rem,12px);font-weight:700;color:var(--ink);opacity:.7}
.card .bst{position:absolute;top:9px;right:12px;font-family:var(--f-mono);font-size:max(.7rem,12px);font-weight:700;color:var(--ink);opacity:.7}
.card .pic{width:76%;margin:0 auto}
.card .body{padding:0 12px;display:flex;flex-direction:column;gap:6px}
.card .nm{font-weight:900;font-size:1.04rem;line-height:1.15}
.card .star{position:absolute;top:8px;left:50%;translate:-50% 0;font-size:.62rem}
.card::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .2s;background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.6),transparent 42%),linear-gradient(115deg,transparent 25%,rgba(255,60,170,.22),rgba(60,200,255,.22),rgba(255,225,0,.22),transparent 75%);background-size:100% 100%,200% 200%;background-position:0 0,var(--mx,50%) var(--my,50%);mix-blend-mode:overlay}
.card:hover{border-color:var(--blue);box-shadow:0 14px 28px -14px rgba(20,33,61,.55)}
.card:hover::after{opacity:1}
.card:hover .pic{animation:hop .55s}
.more{display:flex;justify-content:center;padding-top:8px}
.empty{padding:44px 16px;text-align:center;color:var(--muted)}
.empty b{display:block;font-family:var(--f-display);font-weight:400;font-size:1.45rem;color:var(--ink)}

/* Modal */
dialog.mon{border:0;padding:0;background:transparent;max-width:min(920px,calc(100vw - 24px));width:100%;color:var(--ink)}
dialog.mon::backdrop{background:rgba(13,19,48,.62);backdrop-filter:blur(4px)}
dialog.mon[open] .sheet{animation:sheetIn .35s cubic-bezier(.3,1.3,.5,1)}
@keyframes sheetIn{from{transform:translateY(30px) scale(.96);opacity:0}}
.sheet{background:var(--surface);border:3px solid #14213d;border-radius:28px;box-shadow:8px 8px 0 var(--blue);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);overflow:hidden;max-height:calc(100dvh - 32px)}
.sheet .left{position:relative;background:radial-gradient(circle at 50% 46%, color-mix(in srgb,var(--tc) 55%, var(--surface)) 0 30%, color-mix(in srgb,var(--tc) 25%, var(--surface)) 31% 100%);padding:26px 22px;display:flex;flex-direction:column;gap:12px;align-items:center;justify-content:center;overflow:hidden;border-right:3px solid #14213d}
.sheet .left .rel{width:min(100%,310px)}
.sheet .left .row{position:relative;z-index:2;justify-content:center}
.sheet .right{padding:24px;overflow:auto;display:flex;flex-direction:column;gap:16px;position:relative}
.sheet .no{font-family:var(--f-mono);font-weight:700;color:var(--muted);font-size:.9rem}
.sheet h2{font-family:var(--f-display);font-weight:400;font-size:clamp(1.9rem,4.4vw,2.6rem);line-height:1}
.sheet .genus{font-weight:800;color:var(--muted)}
.shinytag{position:absolute;top:14px;left:14px;z-index:3}
.closex{position:absolute;top:14px;right:14px;width:40px;height:40px;border-radius:50%;border:2.5px solid var(--ink);background:var(--surface);cursor:pointer;font-size:1.05rem;font-weight:900;z-index:4}
.closex:hover{background:var(--yellow);color:#14213d}
.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.facts div{background:var(--surface-2);border-radius:14px;padding:9px 11px;font-size:max(.68rem,12px);font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.facts b{display:block;font-family:var(--f-mono);font-size:1rem;color:var(--ink);letter-spacing:0;text-transform:none}
.stats{display:grid;grid-template-columns:62px 36px minmax(0,1fr);gap:7px 10px;align-items:center;font-size:.85rem}
.stats .lbl{font-weight:900;color:var(--blue-ink)}
.stats .v{font-family:var(--f-mono);font-weight:700;text-align:right}
.bar{height:11px;border-radius:999px;background:var(--surface-2);overflow:hidden}
.bar i{display:block;height:100%;border-radius:999px;background:var(--bc);width:var(--w);animation:grow .8s cubic-bezier(.3,1.2,.5,1) both;animation-delay:var(--bd,0s)}
@keyframes grow{from{width:0}}
.sec{display:flex;flex-direction:column;gap:8px}
.mrow{display:grid;grid-template-columns:72px minmax(0,1fr);gap:8px;align-items:start;font-size:.8rem}
.mrow b{font-family:var(--f-mono);padding-top:2px}
.mrow b.bad{color:var(--bad)} .mrow b.good{color:var(--good)}
.evo{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.evo .stage{display:flex;flex-direction:column;gap:4px}
.evo button{all:unset;cursor:pointer;display:flex;align-items:center;gap:6px;padding:4px 10px 4px 4px;border-radius:999px;border:2px solid var(--line);font-weight:800;font-size:.85rem;background:var(--surface)}
.evo button:hover{border-color:var(--ink)}
.evo button.cur{background:var(--yellow);color:#14213d;border-color:#14213d}
.evo .arr{font-weight:900;color:var(--muted);font-size:1.1rem}
.meter{display:flex;align-items:center;gap:10px;font-size:.85rem;font-weight:800}
.meter .bar{flex:1}
.meter .bar i{background:linear-gradient(90deg,var(--gold),var(--yellow))!important}
.navrow{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:4px}

/* Who's That */
.gamewrap{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:24px;align-items:start}
.gstage{position:relative;aspect-ratio:1;max-width:100%;border:3px solid #14213d;border-radius:30px;overflow:hidden;box-shadow:7px 7px 0 var(--blue);background:var(--blue);display:grid;place-items:center}
.gstage .rays{position:absolute;inset:-45%;background:repeating-conic-gradient(from 0deg,var(--yellow) 0deg 9deg,#ffe066 9deg 18deg);animation:spin 36s linear infinite}
.gstage.lose .rays{background:repeating-conic-gradient(from 0deg,#5d6aa0 0deg 9deg,#7380b8 9deg 18deg)}
.gstage .monwrap{position:relative;z-index:1;width:76%}
.gstage.hidden .pic img{filter:brightness(0) drop-shadow(0 6px 0 rgba(0,0,0,.15))}
.gstage.hidden .pic .mono{filter:brightness(0)}
.gstage .pic img,.gstage .pic .mono{transition:filter .45s}
.gstage.revealed .monwrap .pic{animation:pop .55s cubic-bezier(.3,1.6,.5,1)}
.gstage .q{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);background:var(--red-hot);color:#fff;font-family:var(--f-display);padding:7px 18px;border-radius:999px;font-size:1.15rem;white-space:nowrap;z-index:3;border:2.5px solid #14213d}
@keyframes pop{0%{transform:scale(.6)}100%{transform:none}}
.clues{position:relative;z-index:1;width:84%;display:flex;flex-direction:column;gap:10px;background:var(--surface);border:2.5px solid #14213d;border-radius:20px;padding:16px}
.clue{display:flex;justify-content:space-between;gap:8px;font-weight:800;font-size:.9rem;align-items:center}
.clue span{color:var(--muted);font-size:max(.7rem,12px);letter-spacing:.1em;text-transform:uppercase;font-weight:900}
.shape{display:flex;align-items:flex-end;gap:6px;height:70px}
.shape i{flex:1;background:var(--blue);border-radius:6px 6px 2px 2px;height:var(--h)}
.shape-l{display:flex;gap:6px;font-size:.6rem;font-weight:900;color:var(--muted)}
.shape-l span{flex:1;text-align:center}
@keyframes spin{to{transform:rotate(360deg)}}
.opts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.opt{border:2.5px solid var(--ink);background:var(--surface);border-radius:16px;padding:14px 12px;font-weight:900;font-size:1.02rem;cursor:pointer;box-shadow:0 4px 0 var(--ink);text-align:left;display:flex;gap:10px;align-items:center;transition:transform .1s}
.opt kbd{font-family:var(--f-mono);font-size:max(.72rem,12px);background:var(--surface-2);border-radius:6px;padding:2px 6px;color:var(--muted)}
.opt:hover:not([disabled]){transform:translateY(-2px)}
.opt.right{background:var(--good);color:#fff}
.opt.right kbd,.opt.wrong kbd{background:rgba(255,255,255,.25);color:#fff}
.opt.wrong{background:var(--bad);color:#fff;animation:shake .35s}
.opt[disabled]{cursor:default}
@keyframes shake{25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
.score{display:flex;gap:12px}
.score div{flex:1;background:var(--surface);border:2.5px solid color-mix(in srgb,var(--blue) 35%,var(--line));border-radius:16px;padding:10px 12px;font-size:max(.7rem,12px);font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.score b{display:block;font-family:var(--f-display);font-weight:400;font-size:1.9rem;color:var(--ink);letter-spacing:0;line-height:1.1}
.score b.bump{animation:bump .4s}
@keyframes bump{50%{transform:scale(1.35);color:var(--red)}}
.verdict{min-height:1.6em;font-weight:900;font-size:1.12rem}
.verdict.good{color:var(--good)} .verdict.bad{color:var(--bad)}

/* Autocomplete */
.ac{position:relative}
.ac ul{position:absolute;left:0;right:0;top:calc(100% + 4px);background:var(--surface);border:2.5px solid var(--ink);border-radius:16px;list-style:none;margin:0;padding:6px;z-index:20;box-shadow:var(--shadow);max-height:330px;overflow:auto}
.ac li{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:10px;cursor:pointer;font-weight:800}
.ac li small{margin-left:auto;font-family:var(--f-mono);color:var(--muted)}
.ac li.on{background:var(--yellow-soft)}
.ac li.none{color:var(--muted);cursor:default}

/* Daily */
.dailyhead{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:end}
.legend{display:flex;gap:12px;flex-wrap:wrap;font-size:.8rem;font-weight:800;color:var(--muted)}
.legend i{display:inline-block;width:14px;height:14px;border-radius:4px;vertical-align:-2px;margin-right:4px}
.boardwrap{overflow-x:auto;padding-bottom:6px}
.board{display:grid;grid-template-columns:minmax(150px,1.6fr) repeat(5,minmax(70px,1fr));gap:6px}
@media (max-width:600px){.board{grid-template-columns:48px repeat(5,minmax(0,1fr));gap:4px}.board .cell.name span{display:none}.board .hd:first-child{visibility:hidden}.board .cell{font-size:.72rem;padding:4px 2px}.board .hd{font-size:.62rem}}
.board .hd{font-size:.66rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:0 4px}
.cell{border-radius:12px;padding:10px 6px;font-weight:900;font-size:.85rem;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:58px;background:var(--surface-2);color:var(--ink);animation:flip .5s both}
.cell small{font-family:var(--f-mono);font-size:max(.7rem,12px);font-weight:700}
.cell.y{background:#1a7a36;color:#fff} .cell.p{background:var(--warn);color:#14213d} .cell.n{background:var(--surface-2);color:var(--muted)}
.cell.name{flex-direction:row;justify-content:flex-start;gap:8px;text-align:left;background:var(--surface);border:2.5px solid var(--line);animation:none}
.arrow{font-size:1.15rem;line-height:1}
@keyframes flip{from{transform:rotateX(90deg);opacity:0}to{transform:none;opacity:1}}
.slots{display:flex;gap:6px}
.slots i{width:24px;height:9px;border-radius:999px;background:var(--line)}
.slots i.used{background:var(--blue)}
.result{display:grid;grid-template-columns:170px minmax(0,1fr);gap:20px;align-items:center;border:3px solid #14213d;box-shadow:6px 6px 0 var(--blue);position:relative;overflow:hidden}
.result .relbox{position:relative}
.sharetext{white-space:pre-wrap;font-family:var(--f-mono);font-size:.8rem;background:var(--surface-2);padding:10px;border-radius:10px;margin:0;width:100%;border:0;resize:none;color:var(--ink)}

/* Team */
.teamgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.slot{position:relative;background:var(--surface);border:2.5px solid var(--line);border-radius:var(--r);padding:12px;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;min-height:200px;justify-content:center;overflow:hidden}
.slot.filled{border-color:var(--blue);box-shadow:4px 4px 0 #14213d;background:radial-gradient(circle at 50% 38%, color-mix(in srgb,var(--tc) 28%,var(--surface)) 0 34%, var(--surface) 35%)}
.slot .monbtn{all:unset;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px;width:100%}
.slot .rel,.slot .monbtn>.pic{width:96px}
.slot .nm{font-weight:900}
.slot .rm{position:absolute;top:8px;right:8px;width:30px;height:30px;border-radius:50%;border:2px solid var(--line);background:var(--surface);cursor:pointer;font-weight:900;color:var(--muted);z-index:3}
.slot .rm:hover{border-color:var(--bad);color:var(--bad)}
.slot.empty{border-style:dashed;color:var(--muted);font-weight:800}
.slot.empty svg{width:46px;opacity:.35;filter:grayscale(1)}
.teamlayout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:22px;align-items:start}
.threat{display:grid;grid-template-columns:96px minmax(0,1fr) minmax(0,1fr) 84px;gap:7px 10px;align-items:center;font-size:.82rem}
.threat .h{font-size:max(.64rem,12px);font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.dots{display:flex;gap:3px;flex-wrap:wrap}
.dots i{width:12px;height:12px;border-radius:50%;background:var(--surface-2)}
.dots.w i.on{background:var(--red-hot)} .dots.r i.on{background:var(--blue)}
.pill{font-size:max(.66rem,12px);font-weight:900;letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:3px 8px;text-align:center}
.pill.bad{background:color-mix(in srgb,var(--bad) 18%,transparent);color:var(--bad)}
.pill.warn{background:color-mix(in srgb,var(--warn) 22%,transparent);color:var(--warn)}
.pill.good{background:color-mix(in srgb,var(--good) 18%,transparent);color:var(--good)}
.pill.mid{background:var(--surface-2);color:var(--muted)}
.cover .chip.off{opacity:.22}
.note{font-size:.86rem;color:var(--muted)}
.teamstats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.teamstats div{background:var(--surface-2);border-radius:14px;padding:9px 11px;font-size:max(.66rem,12px);font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.teamstats b{display:block;font-family:var(--f-display);font-weight:400;font-size:1.3rem;color:var(--ink);letter-spacing:0;text-transform:none;line-height:1.15}

/* Quiz */
.quiz{max-width:760px;width:100%;margin:0 auto;display:flex;flex-direction:column;gap:16px}
.progress{height:14px;border-radius:999px;background:var(--surface-2);overflow:hidden;border:2.5px solid #14213d}
.progress i{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--yellow));transition:width .4s}
.qcard{background:var(--surface);border:3px solid #14213d;border-radius:28px;box-shadow:7px 7px 0 var(--blue);padding:26px;display:flex;flex-direction:column;gap:16px;animation:qIn .4s cubic-bezier(.3,1.3,.5,1);position:relative;overflow:hidden}
@keyframes qIn{from{transform:translateX(30px) rotate(1deg);opacity:0}}
.qcard .qn{font-family:var(--f-mono);font-weight:700;color:var(--muted);font-size:.85rem}
.answers{display:grid;gap:10px}
.answer{border:2.5px solid var(--line);background:var(--bg);border-radius:16px;padding:14px 16px;text-align:left;font-weight:800;font-size:1.03rem;cursor:pointer;transition:border-color .12s, transform .12s, background .12s}
.answer:hover{border-color:var(--blue);transform:translateX(6px);background:var(--yellow-soft)}
.qresult{display:grid;grid-template-columns:minmax(0,240px) minmax(0,1fr);gap:24px;align-items:center;position:relative;z-index:1}

footer{background:var(--band-deep);color:#c9d0ee;padding-block:26px 36px;font-size:.84rem;border-top:6px solid var(--yellow)}
footer .wrap{display:flex;flex-direction:column;gap:6px}
footer b{color:#fff}

canvas#fx{position:fixed;inset:0;pointer-events:none;z-index:60;width:100%;height:100%}


/* Wordmark */
.brand svg.wordmark{display:block;height:62px;width:auto;overflow:visible;filter:none}
.wordmark text{font-family:var(--f-display);font-weight:400}
.brand:hover .wordmark{animation:wiggle .5s}
@keyframes wiggle{30%{transform:rotate(-2deg)}60%{transform:rotate(1.5deg)}}

/* Catch scene */
.meadow .wild{position:absolute;left:50%;bottom:12%;width:46%;translate:-50% 0;z-index:2;border:0;background:none;padding:0;cursor:pointer}
.meadow .wild.appear{animation:popUp .6s cubic-bezier(.3,1.5,.5,1) both}
.meadow .wild.idle .pic{animation:breathe 3.2s ease-in-out infinite}
@keyframes popUp{0%{transform:translateY(55%) scale(.85);opacity:0}100%{transform:none;opacity:1}}
@keyframes breathe{0%,100%{transform:translateY(0) scaleY(1)}50%{transform:translateY(-2%) scaleY(1.02)}}
.meadow .ball{position:absolute;left:0;top:0;z-index:8;pointer-events:none;will-change:transform}
.meadow .ball svg{display:block;width:100%;overflow:visible}
.meadow .ball .facet{transform-box:fill-box;transform-origin:center}
/* custom orb artwork */
.orbimgwrap{width:100%;aspect-ratio:1}
.orbimgwrap img,img.orbimg{display:block;width:100%;height:100%;object-fit:contain;-webkit-user-drag:none;user-select:none}
.meadow .ball.burst .orbimgwrap{animation:imgBurst .45s forwards}
.rel-orb .orbimgwrap{animation:imgBurst .4s .86s forwards}
@keyframes imgBurst{to{transform:scale(1.7);opacity:0}}
.bagbtn img.orbimg{width:24px;height:24px}
.bagitem img.orbimg{width:44px;height:44px}
.caughtdot img.orbimg{width:16px;height:16px}
.slot.empty img.orbimg{width:46px;height:46px;opacity:.35;filter:grayscale(1)}
.tc-orb img.orbimg{width:22px;height:22px}
.tc-empty img.orbimg{width:70px;height:70px}
.medal .hex img.orbimg{width:30px;height:30px;position:relative;z-index:1}
.meadow .ball.burst .facet{transform-box:fill-box;transform-origin:center;animation:shard .55s cubic-bezier(.2,.7,.3,1) forwards}
.meadow .ball.burst .core{transform-box:fill-box;transform-origin:center;animation:core .3s ease-in forwards}
.meadow .ball.locked svg{animation:lockGlow 1.6s ease-in-out infinite}
@keyframes lockGlow{0%,100%{filter:drop-shadow(0 0 0 transparent)}50%{filter:drop-shadow(0 0 10px var(--yellow))}}
.meadow .fxdot{position:absolute;z-index:6;pointer-events:none;border-radius:50%}
.meadow .fxflash{background:radial-gradient(circle,#fff 0 25%,var(--yellow) 50%,transparent 70%)}
.meadow .fxstar{background:var(--yellow);clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);border-radius:0}
.meadow .shadow{position:absolute;left:50%;bottom:10%;width:30%;height:5%;translate:-50% 0;border-radius:50%;background:rgba(0,0,0,.18);z-index:2;filter:blur(2px)}
.encmsg{font-weight:800;color:var(--muted);font-size:.9rem}
.caughtdot{position:absolute;top:8px;right:10px;width:16px;height:16px;z-index:2}
.card .caughtdot{top:28px}

/* Trading cards */
.tcg{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px}
.tcgcard{all:unset;cursor:pointer;display:flex;flex-direction:column;gap:4px;font-size:.66rem;font-weight:800;color:var(--muted);text-align:center;transition:transform .15s}
.tcgcard img{width:100%;aspect-ratio:63/88;object-fit:cover;border-radius:6px;background:var(--surface-2);box-shadow:0 4px 10px -4px rgba(0,0,0,.4)}
.tcgcard:hover{transform:translateY(-4px) rotate(-1.5deg)}
.tcgcard:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}
.zoom{position:fixed;inset:0;z-index:80;background:rgba(10,14,48,.82);display:grid;place-items:center;padding:24px;cursor:zoom-out;backdrop-filter:blur(4px)}
.zoom .holo{position:relative;width:min(380px,82vw);aspect-ratio:63/88;border-radius:16px;overflow:hidden;transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .1s;box-shadow:0 30px 60px -20px rgba(0,0,0,.7);animation:zoomIn .35s cubic-bezier(.3,1.4,.5,1)}
.zoom .holo img{width:100%;height:100%;object-fit:cover;display:block}
.zoom .holo::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.45),transparent 40%),linear-gradient(115deg,transparent 20%,rgba(255,60,170,.25),rgba(60,200,255,.25),rgba(255,225,0,.25),transparent 80%);background-size:100% 100%,250% 250%;background-position:0 0,var(--mx,50%) var(--my,50%);mix-blend-mode:color-dodge;opacity:.55;pointer-events:none}
.zoom .cap{position:absolute;bottom:calc(16px + env(safe-area-inset-bottom,0px));left:50%;translate:-50% 0;color:#fff;font-weight:800;text-align:center;max-width:90%}
@keyframes zoomIn{from{transform:scale(.6) rotate(-6deg);opacity:0}}

/* Cry jukebox */
.crygrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(138px,1fr));gap:10px}
.crytile{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr);gap:8px;align-items:center;text-align:left;background:var(--surface);border:2.5px solid color-mix(in srgb,var(--blue) 18%,var(--line));border-radius:16px;padding:8px 10px 8px 6px;cursor:pointer;transition:transform .12s,border-color .12s}
.crytile:hover{transform:translateY(-2px);border-color:var(--blue)}
.crytile .nm{font-weight:900;font-size:.88rem;line-height:1.1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.crytile .no{font-family:var(--f-mono);font-size:max(.68rem,12px);color:var(--muted)}
.crytile .pic{width:44px}
.crytile.playing{background:var(--blue);border-color:var(--blue);color:#fff}
.crytile.playing .no{color:#dfe3ff}
.eq{display:inline-flex;gap:2px;align-items:flex-end;height:12px;margin-left:6px;vertical-align:middle}
.eq i{width:3px;background:currentColor;border-radius:2px;height:30%;animation:eq .6s ease-in-out infinite}
.eq i:nth-child(2){animation-delay:.15s}.eq i:nth-child(3){animation-delay:.3s}
@keyframes eq{50%{height:100%}}
.np{position:fixed;left:50%;bottom:calc(14px + env(safe-area-inset-bottom,0px));translate:-50% 0;z-index:40;width:min(680px,calc(100% - 24px));background:var(--band-deep);color:#fff;border:3px solid var(--yellow);border-radius:22px;padding:10px 14px;display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:12px;align-items:center;box-shadow:0 18px 40px -16px rgba(0,0,0,.6);transition:transform .3s cubic-bezier(.3,1.3,.5,1),opacity .2s}
.np.off{transform:translateY(150%);opacity:0;pointer-events:none}
.np .pic{width:52px}
.np .nm{font-family:var(--f-display);font-size:1.15rem;line-height:1.1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.np .sub{font-size:max(.72rem,12px);opacity:.8;font-weight:700}
.np .prog{height:6px;border-radius:99px;background:rgba(255,255,255,.2);overflow:hidden;margin-top:6px}
.np .prog i{display:block;height:100%;width:0;background:var(--yellow)}
.np .ctl{display:flex;gap:6px;align-items:center}
.np .ctl button{width:38px;height:38px;border-radius:50%;border:0;background:rgba(255,255,255,.15);color:#fff;font-weight:900;cursor:pointer;font-size:.95rem}
.np .ctl button:hover{background:rgba(255,255,255,.3)}
.np .ctl button.main{background:var(--yellow);color:#14213d;width:44px;height:44px}
.np input[type=range]{width:80px;accent-color:var(--yellow)}
.cryplay{position:relative;z-index:2;width:42%;aspect-ratio:1;border-radius:50%;border:4px solid #14213d;background:var(--red-hot);color:#fff;font-family:var(--f-display);font-size:clamp(1rem,3vw,1.4rem);cursor:pointer;box-shadow:0 6px 0 #14213d;display:grid;place-items:center;text-align:center;line-height:1.05;padding:10px}
.cryplay:active{transform:translateY(4px);box-shadow:0 2px 0 #14213d}
.cryplay.pulse{animation:pulse 1s ease-in-out infinite}
@keyframes pulse{50%{box-shadow:0 6px 0 #14213d,0 0 0 18px color-mix(in srgb,var(--yellow) 45%,transparent)}}
.audnote{background:var(--yellow-soft);border:2px solid var(--gold);border-radius:14px;padding:10px 14px;font-weight:700;font-size:.9rem}

.sr-tag{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}


/* v4: scroll + modal */
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

html{overflow-x:clip}
body{overflow-x:visible}
dialog.mon{max-height:calc(100dvh - 24px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.sheet{max-height:none;overflow:clip}
.sheet .right{overflow:visible}
.closex{position:sticky;top:12px;right:auto;align-self:flex-end;margin-bottom:-56px;flex:none}
@media (min-width:861px){.sheet .left{position:sticky;top:0;align-self:start;min-height:min(620px,calc(100dvh - 30px))}}
/* wordmark */
.brand svg.wordmark{height:66px}
.wordmark text{font-family:"Luckiest Guy",var(--f-display)}
/* explore */
.explore{display:inline-flex;align-items:center;gap:8px;margin-top:14px;font-weight:900;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.explore .select{width:auto;padding:6px 10px;font-size:.92rem}
/* encounter bar + bag */
.encbar{flex-direction:column;align-items:stretch}
.encrow{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.bag{display:flex;gap:6px;flex-wrap:wrap}
.bagbtn{display:flex;align-items:center;gap:6px;border:2px solid var(--line);background:var(--surface);border-radius:999px;padding:3px 10px 3px 4px;cursor:pointer;font-size:max(.74rem,12px);font-weight:800;color:var(--muted)}
.bagbtn svg{width:24px;height:24px}
.bagbtn b{color:var(--ink);margin-right:4px}
.bagbtn.on{border-color:var(--blue);background:color-mix(in srgb,var(--blue) 12%,var(--surface));color:var(--ink)}
.bagbtn[disabled]{opacity:.4;cursor:not-allowed}
/* trainer card */
.tcard{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);border:3px solid #14213d;border-radius:26px;overflow:hidden;box-shadow:7px 7px 0 var(--gold);background:linear-gradient(135deg,var(--band) 0%,var(--band-deep) 100%);color:#fff}
.tc-main{padding:20px 22px;display:flex;flex-direction:column;gap:12px;position:relative}
.tc-head{display:flex;align-items:center;gap:8px;font-size:max(.72rem,12px);font-weight:900;letter-spacing:.16em;text-transform:uppercase;color:var(--yellow)}
.tc-head .tc-orb svg{width:22px;height:22px;display:block}
.tc-id{margin-left:auto;color:#dfe3ff;letter-spacing:.06em}
.tc-name input{all:unset;font-family:"Luckiest Guy",var(--f-display);font-size:clamp(1.6rem,4vw,2.3rem);line-height:1.1;color:#fff;width:100%;border-bottom:2px dashed rgba(255,255,255,.35);padding-bottom:2px;cursor:text}
.tc-name input::placeholder{color:rgba(255,255,255,.55)}
.tc-name input:focus{border-bottom-color:var(--yellow)}
.tc-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.tc-stats div{background:rgba(255,255,255,.1);border-radius:12px;padding:8px 10px;font-size:max(.66rem,12px);font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:#cfd5ff}
.tc-stats b{display:block;font-size:1.25rem;color:#fff;letter-spacing:0}
.tc-prog{height:14px;border-radius:99px;background:rgba(255,255,255,.15);overflow:hidden;border:2px solid rgba(0,0,0,.25)}
.tc-prog span{display:block;height:100%;background:linear-gradient(90deg,var(--yellow),#fff07a);border-radius:99px}
.tc-foot{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:.8rem;font-weight:700;color:#cfd5ff}
.tc-side{position:relative;display:grid;place-items:center;padding:18px;background:radial-gradient(circle at 50% 45%,rgba(255,222,0,.35),transparent 65%);border-left:3px dashed rgba(255,255,255,.2)}
.tc-side .pic{width:min(200px,80%)}
.tc-cap{position:absolute;bottom:12px;left:0;right:0;text-align:center;font-size:max(.66rem,12px);font-weight:900;letter-spacing:.14em;text-transform:uppercase;color:var(--yellow)}
.tc-cap b{display:block;font-family:"Luckiest Guy",var(--f-display);font-size:1.2rem;letter-spacing:.02em;color:#fff;text-transform:none}
.tc-empty{display:flex;flex-direction:column;align-items:center;gap:8px;font-weight:800;opacity:.7}
.tc-empty svg{width:70px}
.minegrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:16px}
.bagview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.bagitem{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;background:var(--surface-2);border-radius:16px;padding:12px 8px;font-weight:800;font-size:.85rem}
.bagitem svg{width:44px}
.bagitem b{font-size:1.2rem}
.bagitem small{display:block;color:var(--muted);font-size:max(.7rem,12px)}
.regions{display:flex;flex-direction:column;gap:6px}
.regrow{all:unset;cursor:pointer;display:grid;grid-template-columns:130px minmax(0,1fr) 74px;gap:10px;align-items:center;font-size:.84rem;font-weight:800;padding:3px 6px;border-radius:10px}
.regrow:hover{background:var(--surface-2)}
.regrow:focus-visible{outline:3px solid var(--yellow)}
.regrow .rc{text-align:right;color:var(--muted);font-size:.78rem}
.badges{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:12px}
.medal{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;opacity:.45;filter:grayscale(1)}
.medal.on{opacity:1;filter:none}
.medal .hex{width:62px;aspect-ratio:1/1.1;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);background:var(--mc);display:grid;place-items:center;font-family:var(--f-display);font-size:1.5rem;color:#fff;position:relative}
.medal .hex::after{content:"";position:absolute;inset:5px;clip-path:inherit;border:0;background:linear-gradient(160deg,rgba(255,255,255,.45),transparent 55%)}
.medal .hex svg{width:30px;position:relative;z-index:1}
.medal.on .hex{animation:medalIn .6s cubic-bezier(.3,1.5,.5,1) both}
@keyframes medalIn{from{transform:scale(.4) rotate(-30deg)}}
.medal b{font-size:.82rem;font-weight:900;line-height:1.15}
.medal small{font-size:max(.68rem,12px);color:var(--muted);line-height:1.2}
.colgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px}
.ctile{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;border:2px solid var(--line);background:var(--surface);border-radius:14px;padding:8px 6px;cursor:pointer;text-align:center}
.ctile .pic{width:70%}
.ctile:not(.got) .pic img,.ctile:not(.got) .pic .mono{filter:brightness(0);opacity:.18}
.ctile.got{border-color:color-mix(in srgb,var(--blue) 45%,var(--line));background:radial-gradient(circle at 50% 40%,color-mix(in srgb,var(--yellow) 22%,var(--surface)),var(--surface) 60%)}
.ctile:hover{border-color:var(--blue);transform:translateY(-2px)}
.ctile .cn{font-size:max(.66rem,12px);color:var(--muted)}
.ctile .cnm{font-size:.78rem;font-weight:900;line-height:1.1;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ctile:not(.got) .cnm{color:var(--muted)}
.ctile .sh{position:absolute;top:6px;right:8px;color:var(--gold);font-weight:900}
.savebox{display:flex;flex-direction:column;gap:12px}

/* simplicity pass */
.trainerbtn{background:var(--yellow);color:#14213d;box-shadow:0 2px 0 var(--band-deep)}
.trainerbtn:hover{background:#fff07a}
.trainerbtn .tb-l{opacity:.7;font-weight:800}
.trainerbtn b{letter-spacing:.06em}
.returning{margin:12px 0 0;font-size:.92rem;color:var(--muted);font-weight:600}
.linkbtn{all:unset;cursor:pointer;color:var(--blue-ink);font-weight:800;text-decoration:underline;text-underline-offset:3px}
.linkbtn:focus-visible{outline:3px solid var(--yellow)}
/* text buttons are easy to tap: at least 32px tall (the text stays the same size) */
button.linkbtn{min-height:32px;display:inline-flex;align-items:center}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--red-hot);border:2px solid #fff;margin-left:6px;vertical-align:top;box-shadow:0 0 0 0 rgba(255,0,0,.6);animation:dotPulse 1.8s infinite}
.dot[hidden]{display:none}
@keyframes dotPulse{70%{box-shadow:0 0 0 7px rgba(255,0,0,0)}100%{box-shadow:0 0 0 0 rgba(255,0,0,0)}}
.cdhr{border:0;border-top:2.5px dashed var(--line);margin:6px 0;width:100%}
.cdh3{font-size:1.05rem;font-weight:900;margin:0}
.codeuse .field{min-width:min(100%,200px)}
.codeuse .btn{flex:1 0 auto}
.welcome{align-items:stretch;gap:12px}
.wl-orb{width:70px;margin:0 auto;animation:orbWobble 1.2s ease-in-out 2}
.wl-orb svg{width:100%;display:block}
.steps{list-style:none;counter-reset:s;margin:6px 0;padding:0;display:flex;flex-direction:column;gap:10px}
.steps li{counter-increment:s;display:grid;grid-template-columns:36px 1fr;gap:2px 10px;align-items:center}
.steps li::before{content:counter(s);grid-row:span 2;width:32px;height:32px;border-radius:50%;background:var(--blue);color:#fff;display:grid;place-items:center;font-family:var(--f-display);font-size:1rem}
.steps b{font-weight:900}
.steps span{color:var(--muted);font-size:.9rem;grid-column:2}
.bottomnav{display:none}
dialog.sheetdlg{border:0;padding:0;margin:auto auto 0;width:100%;max-width:560px;background:transparent;color:var(--ink);max-height:85dvh}
dialog.sheetdlg::backdrop{background:rgba(13,19,48,.55);backdrop-filter:blur(3px)}
.sheet2{background:var(--surface);border:3px solid #14213d;border-bottom:0;border-radius:26px 26px 0 0;padding:18px 18px calc(18px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:14px;animation:sheetUp .3s cubic-bezier(.3,1.2,.5,1)}
@keyframes sheetUp{from{transform:translateY(100%)}}
.sheethead{display:flex;justify-content:space-between;align-items:center}
.sheethead .closex{position:static;margin:0}
.playgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.playitem{display:flex;flex-direction:column;gap:2px;padding:14px;border-radius:16px;border:2.5px solid var(--line);background:var(--bg);text-decoration:none;color:var(--ink);position:relative}
.playitem:hover{border-color:var(--blue)}
.playitem b{font-weight:900}
.playitem span{font-size:.8rem;color:var(--muted);font-weight:700}
.playitem .dot{position:absolute;top:10px;right:10px;margin:0}
.settingsrow{justify-content:center}
@media (max-width:860px){
  nav.tabs{display:none}
  #soundBtn,#themeBtn{display:none}
  .top .wrap{flex-wrap:nowrap}
  .trainerbtn{padding:8px 12px;font-size:.78rem}
  .trainerbtn .tb-l{display:inline;opacity:1}.trainerbtn b.num{display:none}
  body{padding-bottom:calc(74px + env(safe-area-inset-bottom,0px))}
  .bottomnav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--band-deep);border-top:4px solid var(--yellow);padding:6px max(8px,env(safe-area-inset-right,0px)) calc(6px + env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-left,0px))}
  .bottomnav a,.bottomnav button{all:unset;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px;color:#cfd5ff;font-size:max(.7rem,12px);font-weight:800;padding:6px 0;border-radius:14px;position:relative}
  .bottomnav svg{width:24px;height:24px}
  .bottomnav [aria-current="page"]{color:#14213d;background:var(--yellow)}
  .bottomnav .dot{position:absolute;top:2px;left:calc(50% + 11px);margin:0;box-shadow:0 0 0 2px var(--band-deep)}
  .bottomnav a:focus-visible,.bottomnav button:focus-visible{outline:3px solid #fff}
  .np{bottom:calc(84px + env(safe-area-inset-bottom,0px))}
  .toast{bottom:auto;top:calc(env(safe-area-inset-top,0px) + 80px)}
}

/* habitats */
.meadow .cloud,.meadow .cloud::before,.meadow .cloud::after{background:var(--cloud,#fff)}
.habdeco,.lakewater,.habfx,.wipe{position:absolute;pointer-events:none}
.habdeco{inset:0;display:none}
.lakewater{left:-2%;right:-2%;bottom:15%;height:17%;display:none;z-index:1;background:linear-gradient(#7cc4ff,#2f6fd0);overflow:hidden}
.lakewater::after{content:"";position:absolute;inset:0 -60px;background:repeating-linear-gradient(90deg,transparent 0 22px,rgba(255,255,255,.55) 22px 40px,transparent 40px 70px);height:3px;top:30%;box-shadow:0 18px 0 rgba(255,255,255,.35);animation:waves 4s linear infinite}
@keyframes waves{to{transform:translateX(70px)}}
.habfx{inset:0;overflow:hidden;z-index:4}
.hp{position:absolute;left:var(--x);border-radius:50%;opacity:0;animation:var(--an) var(--d) var(--dl) linear infinite}
.hp.pollen{--an:hfloat;top:var(--y);width:5px;height:5px;background:#fff;box-shadow:0 0 6px #fff}
.hp.glint{--an:htwinkle;top:calc(60% + var(--y) * .2);width:6px;height:6px;background:#fff;clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%);border-radius:0}
.hp.ember{--an:hrise;bottom:-5%;width:6px;height:6px;background:#ffb347;box-shadow:0 0 8px #ff6a00}
.hp.dust{--an:htwinkle;top:var(--y);width:4px;height:4px;background:#c9c2a8}
.hp.firefly{--an:htwinkle;top:calc(30% + var(--y) * .6);width:6px;height:6px;background:#fff59a;box-shadow:0 0 10px 3px #ffe14d}
.hp.snow{--an:hfall;top:-5%;width:7px;height:7px;background:#fff;box-shadow:0 0 4px rgba(255,255,255,.9)}
.hp.rain{--an:hrain;top:-10%;width:2px;height:22px;border-radius:2px;background:linear-gradient(transparent,rgba(220,235,255,.85))}
.hp.spark{--an:htwinkle;top:var(--y);width:9px;height:9px;background:#ffd6ea;clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%);border-radius:0}
.mist{position:absolute;left:-40%;width:180%;height:14%;top:var(--top);background:radial-gradient(ellipse at center,rgba(220,220,255,.35),transparent 70%);filter:blur(6px);animation:mist var(--d) var(--dl,0s) ease-in-out infinite alternate}
@keyframes mist{to{transform:translateX(18%)}}
@keyframes hfloat{0%,100%{opacity:0;transform:translate(0,0)}30%,70%{opacity:.85}50%{transform:translate(var(--sw),-30px)}}
@keyframes htwinkle{0%,100%{opacity:0;transform:scale(.4)}50%{opacity:1;transform:scale(1.15) translateX(var(--sw))}}
@keyframes hrise{0%{opacity:0;transform:translate(0,0)}15%{opacity:1}100%{opacity:0;transform:translate(var(--sw),-420px)}}
@keyframes hfall{0%{opacity:0;transform:translate(0,0)}10%{opacity:.95}100%{opacity:.4;transform:translate(var(--sw),460px)}}
@keyframes hrain{0%{opacity:0;transform:translate(0,0) rotate(12deg)}10%{opacity:1}100%{opacity:.6;transform:translate(-60px,480px) rotate(12deg)}}
.meadow.hab-lake{--sky-1:#7ab9ff;--sky-2:#dcf0ff}
.meadow.hab-lake .lakewater{display:block}
.meadow.hab-lake .l1{opacity:0}
.meadow.hab-volcano{--sky-1:#ff6a3d;--sky-2:#ffd28a;--sun:#fff0b8;--cloud:#ffc6a1;--g1:#7a4a3a;--g2:#5e3527;--g3:#3d2219}
.meadow.hab-volcano .habdeco{display:block}
.meadow.hab-volcano .habdeco::before{content:"";position:absolute;left:4%;width:60%;bottom:26%;height:48%;background:linear-gradient(#5a2c22,#2b1510);clip-path:polygon(0 100%,38% 10%,46% 18%,54% 8%,62% 14%,100% 100%)}
.meadow.hab-volcano .habdeco::after{content:"";position:absolute;left:22%;width:26%;bottom:62%;height:16%;background:radial-gradient(ellipse at 50% 100%,#ffcc4d,#ff5a1f 45%,transparent 70%);filter:blur(4px);animation:glow 2.4s ease-in-out infinite alternate}
@keyframes glow{to{opacity:.55}}
.meadow.hab-cave{--sky-1:#26222f;--sky-2:#4f4861;--g1:#6b6458;--g2:#57503f;--g3:#3f3a30}
.meadow.hab-cave .sunball,.meadow.hab-cave .cloud,.meadow.hab-cave .night-stars{display:none}
.meadow.hab-cave .habdeco{display:block;background:radial-gradient(ellipse 72% 86% at 50% 82%,transparent 62%,#17141f 63%)}
.meadow.hab-cave .habdeco::before{content:"";position:absolute;left:0;right:0;top:0;height:16%;background:linear-gradient(135deg,#17141f 25%,transparent 25.5%) 0 0/44px 44px,linear-gradient(225deg,#17141f 25%,transparent 25.5%) 0 0/44px 44px}
.meadow.hab-night{--sky-1:#0f0c2a;--sky-2:#3a2b62;--sun:#f5f1d8;--cloud:#4f477e;--g1:#2f4a4a;--g2:#24393a;--g3:#182828;--stars:.95}
.meadow.hab-night .sunball{width:11%;box-shadow:inset -10px -6px 0 rgba(0,0,0,.18),0 0 40px rgba(245,241,216,.6)}
.meadow.hab-snow{--sky-1:#9fc3e8;--sky-2:#f1f7ff;--sun:#fffbe8;--g1:#e6f0fa;--g2:#d1e2f2;--g3:#b8cfe6}
.meadow.hab-snow .habdeco{display:block;background:radial-gradient(ellipse 60% 30% at 20% 100%,#fff 98%,transparent 100%) 0 0/100% 100% no-repeat,radial-gradient(ellipse 55% 26% at 85% 100%,#f4f9ff 98%,transparent 100%)}
.meadow.hab-storm{--sky-1:#353d58;--sky-2:#7e88a6;--cloud:#9aa3bd;--g1:#4f8f4a;--g2:#3c7438;--g3:#2a5a29}
.meadow.hab-storm .sunball{display:none}
.meadow.hab-storm .habdeco{display:block;background:#fff;opacity:0;animation:lightning 6s infinite}
@keyframes lightning{0%,88%,92%,96%,100%{opacity:0}90%,94%{opacity:.75}}
.meadow.hab-sky{--sky-1:#3f9cff;--sky-2:#e8f5ff}
.meadow.hab-sky .habdeco{display:block;background:radial-gradient(ellipse 14% 5% at 18% 40%,#fff 95%,transparent),radial-gradient(ellipse 10% 4% at 70% 52%,#fff 95%,transparent),radial-gradient(ellipse 8% 3% at 40% 20%,rgba(255,255,255,.85) 95%,transparent)}
.meadow.hab-dusk{--sky-1:#4b2e8f;--sky-2:#f4a3c4;--sun:#ffd2e6;--cloud:#f7c5dc;--g1:#5c8f62;--g2:#477650;--g3:#335a3b}
.meadow.hab-dusk .sunball{width:22%;top:30%;right:38%;box-shadow:0 0 70px 20px rgba(255,190,220,.6)}
/* encounter flash */
.wipe{inset:0;z-index:8;opacity:0}
.wipe.go{animation:encFlash .78s linear forwards}
@keyframes encFlash{0%{opacity:1;background:#fff;clip-path:inset(0)}9%{opacity:0}17%{opacity:1;background:#fff}26%{opacity:0;clip-path:inset(0)}32%{opacity:1;background:#141a46;clip-path:inset(0)}100%{opacity:1;background:#141a46;clip-path:inset(50% 0 50% 0)}}
.meadow .wild.appear.late{animation-delay:.55s}
/* dialogue box */
.dlgbox{position:relative;border-top:3px solid #14213d;background:var(--surface);padding:10px 12px;min-height:66px}
.dlgbox::before{content:"";position:absolute;inset:7px;border:2.5px solid var(--blue);border-radius:10px;pointer-events:none}
.dlgbox p{margin:0;padding:6px 34px 6px 12px;font-family:"Pixelify Sans",var(--f-mono);font-weight:500;font-size:1.12rem;line-height:1.35;color:var(--ink);min-height:1.35em}
.dlgbox .caret{position:absolute;right:22px;bottom:14px;font-size:.7rem;color:var(--red-hot);animation:caret 1s steps(1) infinite}
@keyframes caret{50%{opacity:0}}
.meadowcard.big .encbar{border-top:3px dashed var(--line)}



.footcontact a,.madeby a{color:var(--yellow);font-weight:800}
.chip{font-size:max(.7rem,12px)}
.movebtn small.ko{color:#a32307;font-weight:900}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .movebtn small.ko{color:#ffb4ab}}
:root[data-theme="dark"] .movebtn small.ko{color:#ffb4ab}
.bagbtn span{white-space:normal;line-height:1.15}
.areabtn.locked{opacity:.75;cursor:pointer}
.throwmeter{display:inline-flex;gap:3px;vertical-align:middle;margin-left:6px}
.throwmeter i{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.35);border:1.5px solid #fff}
.throwmeter i.f{background:var(--yellow)}
.hint-pulse{animation:hintp 1s ease-in-out infinite}
@keyframes hintp{50%{transform:scale(1.06);box-shadow:0 0 0 5px color-mix(in srgb,var(--yellow) 60%,transparent)}}
.partner.sleepy{filter:saturate(.4) brightness(.95)}
dialog#avDlg{width:min(900px,calc(100vw - 24px))}
/* messages pop up over the header, so they never cover page titles or game buttons */
.toast{top:calc(env(safe-area-inset-top,0px) + 8px)!important;max-width:min(94vw,560px)}


/* second simplicity pass */
.filtbtn{align-self:end;justify-self:start}
.controls:not(.open) .morefilt{display:none}
.controls{grid-template-columns:minmax(0,1fr) auto}
.controls.open{grid-template-columns:minmax(0,2fr) auto repeat(3,minmax(0,1fr))}
@media (max-width:860px){.controls.open{grid-template-columns:minmax(0,1fr) auto}.controls.open .morefilt{grid-column:1/-1}}
.savebox.nocode>*:not(.nocode-msg){display:none!important}
.savebox:not(.nocode) .nocode-msg{display:none}
.nocode-msg{margin:0;font-weight:800}
.regdet summary{cursor:pointer;list-style:none}
.regdet summary::after{content:" ▾";font-size:.8em;color:var(--muted)}
.badgemore{margin-top:12px}
.avmore{margin-top:4px}
details.seo-more{margin-top:18px;border-top:2.5px dashed var(--line);padding-top:12px}
details.seo-more>summary{cursor:pointer;font-weight:900;color:var(--blue-ink);list-style:none}
details.seo-more>summary::after{content:" ▾"}
details.seo-more .seo-copy{border-top:0;margin-top:8px;padding-top:0}
.monmore{display:inline-block}
.monmore>summary{list-style:none;cursor:pointer;font-weight:800;font-size:.85rem;padding:6px 12px;border:2px solid var(--line);border-radius:999px;display:inline-block}
.monmore[open]>summary{margin-bottom:6px}
/* readability floor */
.pill,.board .hd,.tc-edit,.teamth .h,#threat .h,.cryitem .no,.ltile span,.ltile i,.plus,.sr-tag,.tc-stats div,.dexlist .chip{font-size:max(.7rem,11.5px)!important}
.chip{font-size:max(.7rem,11.5px)}
/* big screen play mode */
.fsbtn{position:absolute;top:10px;right:10px;z-index:8;border:2px solid #14213d;background:rgba(255,255,255,.92);color:#14213d;font:inherit;font-weight:900;font-size:.8rem;padding:6px 12px;border-radius:999px;cursor:pointer;box-shadow:0 3px 0 rgba(20,33,61,.25)}
.fsbtn:hover{background:var(--yellow)}

body.playmode,

body.battlefit{overflow:hidden;background:#14213d}
body.playmode header,body.playmode .bottomnav,body.playmode footer,body.playmode .toast-stub,body.playmode #view-catch>div:first-child,body.playmode .catchside,body.playmode .catchtools,body.playmode .np,
body.battlefit header,body.battlefit .bottomnav,body.battlefit footer,body.battlefit .toast-stub,body.battlefit #view-catch>div:first-child,body.battlefit .catchside,body.battlefit .catchtools,body.battlefit .np{display:none!important}
body.playmode .meadowcard.big,
body.battlefit .meadowcard.big{position:fixed;z-index:65;top:0;bottom:0;left:50%;transform:translateX(-50%);width:min(100vw,calc((100dvh - 290px) * 16 / 11));min-width:min(100vw,360px);border-radius:0;border:0;box-shadow:none;display:flex;flex-direction:column;overflow:hidden}
body.playmode .meadowcard.big .meadow,
body.battlefit .meadowcard.big .meadow{flex:none;aspect-ratio:16/11}
body.playmode .meadowcard.big .encbar,
body.battlefit .meadowcard.big .encbar{flex:1;overflow:auto;padding-bottom:calc(14px + env(safe-area-inset-bottom,0px))}
@media (max-width:860px){body.playmode .meadowcard.big,body.battlefit .meadowcard.big{width:100vw}body.playmode .meadowcard.big .meadow,body.battlefit .meadowcard.big .meadow{aspect-ratio:5/4}}
body.playmode main>*:not(#view-catch),body.playmode #view-catch>*:not(.catchlayout),body.playmode .catchmain>*:not(.meadowcard),
body.battlefit main>*:not(#view-catch),body.battlefit #view-catch>*:not(.catchlayout),body.battlefit .catchmain>*:not(.meadowcard){display:none!important}
body.playmode .meadowcard.big .encbar,
body.battlefit .meadowcard.big .encbar{justify-content:flex-start;gap:12px;flex-wrap:nowrap}
body.playmode .meadowcard.big .dlgbox,
body.battlefit .meadowcard.big .dlgbox{flex:none}

/* saving clarity */
.codehow{margin:8px 0;padding-left:22px;display:flex;flex-direction:column;gap:6px;line-height:1.45}
.codehow b{color:var(--blue-ink)}
.codeno{margin:4px 0 0}
.cddet{margin-top:10px}
.cddet>summary{cursor:pointer;font-weight:900;color:var(--blue-ink)}
.cdgrown{margin-top:12px}
.privnote{background:color-mix(in srgb,var(--warn) 18%,var(--surface));border:2px solid var(--warn);border-radius:12px;padding:8px 12px;font-weight:800}
.privbar{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(84px + env(safe-area-inset-bottom,0px));z-index:69;display:flex;align-items:center;gap:10px;background:#14213d;color:#fff;border:2px solid var(--yellow);border-radius:16px;padding:8px 10px 8px 14px;width:max-content;max-width:calc(100vw - 24px);font-weight:800;font-size:.9rem;box-shadow:0 6px 0 rgba(0,0,0,.2)}
.privbar .closex{position:static;width:30px;height:30px}
@media (min-width:861px){.privbar{bottom:24px}}
.installbtn[hidden]{display:none}
.sharecard img{display:block;width:100%;border-radius:16px;border:3px solid #14213d;margin:10px 0}
.tc-acts{gap:8px;margin-top:10px}.tc-acts .tc-btn{margin-top:0}
.meadow.isnight{--sky-1:#0c1246;--sky-2:#3a4688;--stars:1;--sun:#f3f0d6}
.meadow.isnight .sunball{box-shadow:inset -8px -5px 0 rgba(0,0,0,.15),0 0 40px rgba(245,241,216,.55)}
.stchip{margin-left:6px;font-size:max(.6rem,11px);font-weight:900;padding:1px 6px;border-radius:6px;color:#fff;vertical-align:middle}
.stchip.slp{background:#8f5bd6}.stchip.par{background:#d4a400;color:#14213d}
.movebtn.stmove{--tc:#8f5bd6}
.stoneic{width:18px;height:18px;vertical-align:-3px}
.bagitem .stoneic{width:40px;height:40px}
.evohow{margin:6px 0 0}

/* gyms */
.gbadges{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}
.gbadge{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);border:2px solid var(--line)}
.gbadge svg{width:18px;height:18px;fill:var(--line)}
.gbadge.on{background:var(--tc);border-color:#14213d}
.gbadge.on svg{fill:#fff}
.tcg-b .gbadge{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.25)}
.tcg-b .gbadge svg{fill:rgba(255,255,255,.35)}
.tcg-b .gbadge.on{background:var(--tc);border-color:#fff}.tcg-b .gbadge.on svg{fill:#fff}
.gymnext{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px;border-radius:16px;border:2px solid var(--line);background:color-mix(in srgb,var(--tc) 12%,var(--surface))}
.gymnext small{display:block;color:var(--muted);font-weight:700;font-size:.8rem}
.gymnext .warnline{color:var(--warn)}
.gav{width:56px}
.leader{position:absolute;top:10px;left:50%;transform:translateX(-50%);z-index:6;display:flex;flex-direction:column;align-items:center;gap:2px;width:64px}
.leader .avatar{width:56px;filter:drop-shadow(0 3px 0 rgba(0,0,0,.25))}
.leader span{font-weight:900;font-size:max(.72rem,12px);background:#14213d;color:var(--yellow);padding:1px 8px;border-radius:99px}
.leader[hidden]{display:none}

/* trading */
dialog#tradeDlg{width:min(620px,calc(100vw - 24px))}
.tbig{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}
.tpair{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:10px;align-items:center;margin:12px 0}
.tpair.one{grid-template-columns:minmax(0,220px)}
.tarrow{font-size:2rem;font-weight:900;color:var(--blue-ink)}
.tcardt{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px;border:2.5px solid var(--line);border-radius:18px;background:var(--surface-2);text-align:center}
.tcardt .pic{width:110px}
.twho{display:flex;align-items:center;gap:6px;font-size:.85rem}
.twho .avatar{width:30px}
.tcode b{letter-spacing:.12em}
.twait{display:flex;align-items:center;gap:8px}
.spin{width:16px;height:16px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--blue);animation:spin .8s linear infinite;display:inline-block}
@keyframes spin{to{transform:rotate(360deg)}}
button.playitem{font:inherit;text-align:left;cursor:pointer;color:inherit}

/* contrast fixes */
.chip:not(.lt){background:color-mix(in srgb,var(--tc,var(--t-normal)) 70%,#0b0f2e)}
.encbar .tag{color:var(--red)}
:root[data-theme="dark"] .encbar .tag{color:#ff6b6b}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .encbar .tag{color:#ff6b6b}}
.badge.gold{color:#14213d}
.medal{opacity:1;filter:none}.medal:not(.on) .hex{opacity:.4;filter:grayscale(1)}.medal:not(.on) b{color:var(--muted)}
.pill.warn{color:#7a4f00}.pill.bad{color:#a5221d}
.gymnext .warnline{color:#7a4f00}
@media (prefers-color-scheme: light){:root:not([data-theme="dark"]){--good:#16804a}}
:root[data-theme="light"]{--good:#16804a}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .pill.warn,:root:not([data-theme="light"]) .gymnext .warnline{color:#f5b52e}:root:not([data-theme="light"]) .pill.bad{color:#ff8076}}
:root[data-theme="dark"] .pill.warn,:root[data-theme="dark"] .gymnext .warnline{color:#f5b52e}:root[data-theme="dark"] .pill.bad{color:#ff8076}
.gstage .q{background:var(--red)}
.typebar .chip{opacity:1}.typebar .chip[aria-pressed="true"]{box-shadow:0 0 0 3px var(--yellow),0 3px 0 rgba(0,0,0,.3)}

/* showpiece trainer card */
.tc-who{grid-template-columns:140px minmax(0,1fr)}
.tc-since{font-size:.8rem;font-weight:700;color:#cfd5ff;margin-top:4px}
.tc-big{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:center}
.tc-ring{--p:0;width:118px;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--yellow) calc(var(--p)*1%),rgba(255,255,255,.15) 0);position:relative}
.tc-ring>div{width:86px;aspect-ratio:1;border-radius:50%;background:var(--band-deep);display:flex;flex-direction:column;align-items:center;justify-content:center}
.tc-ring b{font-size:1.5rem;color:#fff;line-height:1}.tc-ring small{font-size:max(.66rem,12px);font-weight:800;color:#cfd5ff}
.tc-nums{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.tc-nums div{background:rgba(255,255,255,.1);border-radius:12px;padding:8px 10px;font-size:max(.7rem,12px);font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:#cfd5ff}
.tc-nums b{display:block;font-size:1.35rem;color:#fff;letter-spacing:0}.tc-nums b small{font-size:.8rem;color:#cfd5ff}
.tc-case{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px;background:rgba(0,0,0,.18);border-radius:16px;padding:10px;border:2px solid rgba(255,255,255,.12)}
.tcb{display:flex;flex-direction:column;align-items:center;gap:3px}
.tcb svg{width:100%;max-width:40px;aspect-ratio:1;padding:6px;border-radius:50%;background:rgba(255,255,255,.1);fill:rgba(255,255,255,.3);box-sizing:border-box}
.tcb.on svg{background:color-mix(in srgb,var(--tc) 75%,#0b0f2e);fill:#fff;box-shadow:0 0 0 2px #fff,0 0 14px color-mix(in srgb,var(--tc) 70%,transparent)}
.tcb small{font-size:max(.55rem,10px);font-weight:800;color:#cfd5ff;text-transform:uppercase}
.tc-show{background:var(--yellow)!important;color:#14213d!important}
.tc-cap .lv{font-family:var(--f-mono);font-size:.8em;color:var(--yellow)}
.peds{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-top:10px}
.ped{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:6px;border:0;background:radial-gradient(ellipse at 50% 92%,color-mix(in srgb,var(--tc) 45%,transparent) 0 30%,transparent 60%);cursor:pointer;padding:4px 4px 0;font:inherit;color:inherit;animation:pedIn .5s var(--d,0ms) both cubic-bezier(.3,1.4,.5,1)}
.ped .pic{width:100%;max-width:110px;filter:drop-shadow(0 6px 0 rgba(20,33,61,.15));transition:transform .2s}
.ped:hover .pic{transform:translateY(-4px) scale(1.04)}
.pbase{width:100%;background:linear-gradient(#e9ecfb,#cfd5f2);border:2.5px solid #14213d;border-radius:12px;padding:6px 4px;display:flex;flex-direction:column;align-items:center;color:#14213d}
.pbase b{font-size:.82rem;line-height:1.1;text-align:center}.pbase small{font-size:max(.72rem,12px);font-weight:800;color:#3b4cca}
.ped.shiny .pbase{background:linear-gradient(#fff6b8,#ffde00)}
.pshine{position:absolute;top:2px;right:8px;color:#e6b800;font-size:1.2rem;animation:twinkle 1.6s ease-in-out infinite}
.ped.empty{cursor:default;opacity:.5;background:none;min-height:140px}
@keyframes pedIn{from{opacity:0;transform:translateY(16px)}}
@keyframes twinkle{50%{opacity:.3;transform:scale(.8)}}
.pgrid .ctile .scn{position:absolute;top:4px;left:6px;background:var(--red);color:#fff;font-weight:900;font-size:.75rem;border-radius:99px;width:20px;height:20px;display:grid;place-items:center}
dialog.showdlg{border:0;padding:0;width:min(980px,calc(100vw - 16px));max-height:calc(100dvh - 16px);border-radius:28px;background:radial-gradient(circle at 50% 0%,#5566e0,#1c2470 60%,#0b1036);color:#fff;overflow:auto}
dialog.showdlg::backdrop{background:rgba(5,8,30,.85)}
.show{position:relative;padding:26px 22px 22px;display:flex;flex-direction:column;gap:18px}
.show .closex{position:absolute;top:14px;right:14px}
.showtop{display:grid;grid-template-columns:130px minmax(0,1fr);gap:18px;align-items:center}
.showav{animation:pedIn .6s both cubic-bezier(.3,1.4,.5,1)}
.showname{font-family:"Luckiest Guy",var(--f-display);font-size:clamp(2rem,6vw,3.4rem);margin:2px 0;color:#fff;line-height:1}
.showstats{display:flex;gap:14px;flex-wrap:wrap;font-weight:800;color:#cfd5ff}.showstats b{color:var(--yellow);font-size:1.2rem}
.showcase2{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.showcase2 .pbase{background:rgba(255,255,255,.92)}
.showcase-case{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px;max-width:560px;margin-inline:auto;width:100%}
.showfoot{text-align:center;margin:0;color:#cfd5ff;font-weight:700}.showfoot b{color:#fff}
@media (max-width:760px){.peds{grid-template-columns:repeat(3,minmax(0,1fr))}.tc-who{grid-template-columns:96px minmax(0,1fr)}.tc-big{grid-template-columns:minmax(0,1fr)}.tc-ring{margin-inline:auto}.showtop{grid-template-columns:90px minmax(0,1fr)}.tc-case{gap:3px;padding:8px}}
.show .closex{color:#14213d;background:#fff}
@media (max-width:760px){.tcb small{display:none}}

/* world features */
:root{--mapland:#7cc36a}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--mapland:#2f6e3a}}
:root[data-theme="dark"]{--mapland:#2f6e3a}
.rmap{position:relative;width:100%;aspect-ratio:16/8;margin-top:10px;border-radius:18px;background:linear-gradient(#5aa9ec,#3f7ee0);border:2.5px solid #14213d;overflow:hidden}
.mapbg{position:absolute;inset:0;width:100%;height:100%}
.mnode{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:2px;border:0;background:none;cursor:pointer;padding:0;font:inherit}
.mnode .dot{width:30px;height:30px;border-radius:50%;background:var(--mc);border:3px solid #14213d;display:grid;place-items:center;font-size:.8rem;box-shadow:0 3px 0 rgba(0,0,0,.25);overflow:hidden}
.mnode .dot img{width:34px;height:34px;object-fit:contain}
.mnode.cur .dot{width:40px;height:40px;background:var(--yellow);box-shadow:0 0 0 4px rgba(255,255,255,.7),0 3px 0 rgba(0,0,0,.25);animation:mbob 1.6s ease-in-out infinite}
.mnode.locked .dot{background:#9aa0b8;filter:grayscale(1)}
.mnode .ml{font-size:max(.62rem,11px);font-weight:900;background:rgba(20,33,61,.82);color:#fff;padding:1px 6px;border-radius:8px;white-space:nowrap}
.mnode.locked .ml{opacity:.75}
.mnode .gi{font-style:normal;color:#ffde00}.mnode .gi.won{color:#7dffb0}
.mnode .ri{font-style:normal;background:#ff3b3b;color:#fff;border-radius:50%;padding:0 5px;animation:mbob .8s infinite}
@keyframes mbob{50%{transform:translateY(-3px)}}
@media (max-width:600px){.rmap{aspect-ratio:4/3}.mnode .ml{font-size:10.5px}}
.wxline{margin-top:4px}.roamline{color:var(--red)}
.musbtn{position:absolute;top:10px;left:10px;z-index:8;border:2px solid #14213d;background:rgba(255,255,255,.92);color:#14213d;font:inherit;font-weight:900;font-size:.75rem;padding:5px 10px;border-radius:999px;cursor:pointer}
.musbtn{width:38px;height:38px;padding:0;display:grid;place-items:center;font-size:1.05rem;border-radius:50%}
.meadow.battle .musbtn{left:auto;right:136px}
.meadow .partner.follow{display:block;left:6%;bottom:6%;width:15%;animation:fbob 1.2s ease-in-out infinite}
.meadow.exploring .partner.follow{display:block}
@keyframes fbob{50%{transform:scaleX(-1) translateY(-6%)}0%,100%{transform:scaleX(-1)}}
.swirl{position:absolute;inset:-20%;z-index:20;pointer-events:none;background:conic-gradient(from 0deg,#14213d 0 25%,transparent 0 50%,#14213d 0 75%,transparent 0);animation:swirl .6s ease-in forwards}
@keyframes swirl{0%{opacity:0;transform:rotate(0) scale(.2)}40%{opacity:.85}100%{opacity:0;transform:rotate(540deg) scale(2.2)}}
.league{border:2.5px solid #14213d;border-radius:16px;padding:12px;margin-bottom:14px;background:linear-gradient(135deg,#ffde00,#ffb800);color:#14213d;display:flex;flex-direction:column;gap:8px}
.league .eyebrow{color:#14213d}
.lgsteps{display:flex;gap:6px}.lgs{width:38px;opacity:.45}.lgs.done{opacity:1;filter:grayscale(.6)}.lgs.now{opacity:1;transform:scale(1.15)}
.hofe{padding:10px 0;border-top:2px dashed var(--line)}
.hofteam{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px;margin-top:8px}
.hofteam>div{display:flex;flex-direction:column;align-items:center;text-align:center;font-weight:800}
.hofteam .pic{width:72px}.hofteam small{font-size:.75rem}
.hofpanel{background:linear-gradient(135deg,color-mix(in srgb,#ffde00 22%,var(--surface)),var(--surface))}
.centre{display:grid;grid-template-columns:110px minmax(0,1fr);gap:16px;align-items:center}
.centreav{width:110px}
.egg{display:inline-block;width:40px}.egg svg{width:100%}
.egg.big{width:120px;margin:16px auto;display:block}
.eggbox{text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px}.eggbox .pic{width:160px}
.bic{width:1.3em;height:1.3em;vertical-align:-.28em;margin-right:4px}
.cover{position:absolute;inset:0;z-index:30;pointer-events:none;opacity:0}
.cover.battle{inset:-45%;background:conic-gradient(#14213d 0 25%,#0b1036 0 50%,#14213d 0 75%,#0b1036 0)}
.cover.fade{background:#0b1036}
.meadow .partner{will-change:transform}
.nextbox{margin-top:12px;padding:14px;border-radius:16px;border:2.5px solid var(--line);background:var(--surface-2);display:flex;flex-direction:column;gap:10px}
.nextbox.caught{border-color:var(--good);background:color-mix(in srgb,var(--good) 12%,var(--surface))}
.nextbox.lost{border-color:var(--warn)}
.nextbox p{margin:0;font-weight:700;line-height:1.4}
.nextbtn{font-size:1.05rem;padding:12px 20px;animation:nextIn .4s .25s both cubic-bezier(.3,1.5,.5,1),nextPulse 1.6s 2.2s ease-in-out 3}
@keyframes nextIn{from{opacity:0;transform:translateY(8px) scale(.95)}}
@keyframes nextPulse{50%{transform:scale(1.05);box-shadow:0 0 0 6px color-mix(in srgb,var(--yellow) 60%,transparent)}}
@media (max-width:600px){.nextbox .nextbtn{width:100%}}
@media (prefers-reduced-motion:reduce){.nextbtn{animation:none}}
/* trainer character */
.avatar{display:block;width:100%;height:auto}
.tc-who{display:grid;grid-template-columns:112px minmax(0,1fr);gap:14px;align-items:center}
.tc-av{position:relative;border:0;padding:0;background:none;cursor:pointer;border-radius:50%;box-shadow:0 0 0 4px rgba(255,255,255,.25)}
.tc-av:hover{box-shadow:0 0 0 4px var(--yellow)}
.tc-edit{position:absolute;bottom:-4px;left:50%;transform:translateX(-50%);background:var(--yellow);color:#14213d;font-size:.62rem;font-weight:900;padding:2px 8px;border-radius:99px;border:2px solid #14213d}
.tc-title{margin-top:6px;font-weight:900;color:var(--yellow);font-size:.9rem;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.tc-btn{margin-top:10px;background:#fff;color:#14213d}
.tb-av{display:inline-block;width:26px;height:26px;margin:-4px 2px -4px -6px;vertical-align:middle}
.tb-av .avatar{width:26px;height:26px}
.avcd{max-width:860px}
.avgrid{display:grid;grid-template-columns:minmax(0,240px) minmax(0,1fr);gap:20px;margin-top:10px}
.avleft{display:flex;flex-direction:column;align-items:center;gap:12px;position:sticky;top:0;align-self:start}
.avprev{width:100%;max-width:220px;filter:drop-shadow(0 6px 0 rgba(20,33,61,.15))}
.avopts{display:flex;flex-direction:column;gap:12px;max-height:min(58vh,520px);overflow:auto;padding-right:4px}
.avrow{display:grid;grid-template-columns:110px minmax(0,1fr);gap:10px;align-items:center}
.avrow>span{font-weight:900;font-size:.86rem}
.sws{display:flex;flex-wrap:wrap;gap:8px}
.sw{width:34px;height:34px;border-radius:50%;background:var(--c);border:3px solid var(--line);cursor:pointer;padding:0}
.sw.on{border-color:#14213d;box-shadow:0 0 0 3px var(--yellow)}
.avopts .chips{display:flex;flex-wrap:wrap;gap:6px}
.avchip{border:2px solid var(--line);background:var(--surface);border-radius:999px;padding:7px 12px;font-weight:800;font-size:.84rem;cursor:pointer;color:var(--ink);font-family:inherit}
.avchip.on{background:var(--yellow);border-color:#14213d;color:#14213d}
.avchip:disabled{opacity:.5;cursor:not-allowed}
.avsave{margin-top:14px;position:sticky;bottom:-2px;z-index:2;background:var(--surface);padding:10px 0 4px;border-top:2.5px dashed var(--line)}
@media (max-width:700px){.avgrid{grid-template-columns:minmax(0,1fr)}.avleft{position:static}.avprev{max-width:150px}.avopts{max-height:none;overflow:visible}.avrow{grid-template-columns:minmax(0,1fr)}.tc-who{grid-template-columns:84px minmax(0,1fr)}}
/* trainer page */
.trpartner{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:20px;align-items:center}
.trpartner .tpart{background:radial-gradient(circle at 50% 50%,color-mix(in srgb,var(--tc) 45%,var(--surface)) 0 40%,transparent 41%);display:grid;place-items:center;padding:10px}
.trpartner .tpart .pic{width:min(100%,260px)}
.trpartner h2 .lv,.pmini .lv{font-family:var(--f-mono);font-size:.8em;color:var(--muted);margin-left:4px}
.trbars{display:flex;flex-direction:column;gap:8px;margin:10px 0}
.trbars .lbl{display:flex;justify-content:space-between;font-size:.78rem;font-weight:800;color:var(--muted)}
.meter2{height:12px;border-radius:99px;background:var(--surface-2);border:1.5px solid #14213d;overflow:hidden}
.meter2 i{display:block;height:100%;border-radius:99px}
.trstats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin:8px 0}
.trstats div{background:var(--surface-2);border-radius:10px;padding:6px;text-align:center;font-size:max(.68rem,12px);font-weight:800;color:var(--muted)}
.trstats b{display:block;font-size:1rem;color:var(--ink);font-family:var(--f-mono)}
.trhead{justify-content:space-between;align-items:end;margin-bottom:12px}
.trgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}
.trtile{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;border:2px solid var(--line);background:var(--surface);border-radius:14px;padding:8px 8px 10px;cursor:pointer;text-align:center;color:var(--ink);font:inherit}
.trtile:hover{border-color:var(--blue)}
.trtile.cur{border-color:#14213d;background:color-mix(in srgb,var(--yellow) 30%,var(--surface))}
.trtile .pic{width:76px}
.trtile b{font-size:.84rem;font-weight:900;line-height:1.1}
.trtile .tl{font-family:var(--f-mono);font-size:max(.72rem,12px);color:var(--muted);font-weight:700}
.trtile .mini{width:100%;height:6px;border-radius:99px;background:var(--surface-2);overflow:hidden}
.trtile .mini i{display:block;height:100%}
.trtile .ptag{position:absolute;top:6px;left:6px;font-size:.6rem;font-weight:900;background:#14213d;color:var(--yellow);padding:2px 6px;border-radius:6px}
.xpbar{display:block;height:6px;border-radius:99px;background:var(--surface-2);overflow:hidden;margin-top:6px}
.xpbar i{display:block;height:100%;background:var(--blue)}
.pstat{font-size:.78rem;font-weight:800;color:var(--muted);align-self:center}
@media (max-width:760px){.trpartner{grid-template-columns:minmax(0,1fr)}.trpartner .tpart .pic{width:min(60%,200px)}.trstats{grid-template-columns:repeat(3,minmax(0,1fr))}.trhead{flex-direction:column;align-items:stretch}}
/* explore + battle */
.meadow.exploring .wild,.meadow.exploring .shadow{display:none}
.meadow .partner{position:absolute;left:3%;bottom:2%;width:34%;z-index:4;display:none;transform:scaleX(-1)}
.meadow.battle .partner{display:block}
.meadow .partner.in .pic{animation:slideIn .55s cubic-bezier(.3,1.3,.5,1) .35s both}
@keyframes slideIn{from{transform:translateX(70%);opacity:0}}
.meadow.battle .wild{left:68%;width:34%;bottom:30%}
.meadow.battle .shadow{left:68%;bottom:28%;width:24%}
.tufts{position:absolute;inset:0;z-index:5;pointer-events:none}
.tuft{all:unset;position:absolute;width:14%;aspect-ratio:3/2;translate:-50% -50%;cursor:pointer;pointer-events:auto;--tuft:var(--g1)}
.tuft svg{width:100%;display:block;filter:drop-shadow(0 3px 0 rgba(0,0,0,.22));transition:transform .15s;transform-origin:50% 100%}
.tuft:hover:not([disabled]) svg{transform:translateY(-4px) scale(1.06)}
.tuft.hot{--tuft:var(--g2)}
.tuft.hot svg{animation:tuftRustle .55s ease-in-out infinite}
.tuft.hot::after{content:"!";position:absolute;left:50%;top:-30%;translate:-50% 0;font-family:"Pixelify Sans",var(--f-mono);font-weight:700;color:#fff;background:var(--red-hot);border:2px solid #14213d;border-radius:50%;width:20px;height:20px;display:grid;place-items:center;font-size:.8rem;animation:bump 1s ease-in-out infinite}
@keyframes tuftRustle{25%{transform:rotate(-7deg) translateX(-2px)}75%{transform:rotate(7deg) translateX(2px)}}
.tuft.searching svg{animation:tuftRustle .16s 4}
.tuft.done{cursor:default;opacity:.4}
.tuft.done svg{transform:scaleY(.45)}
.tuft.done::after{display:none}
.tuft:focus-visible{outline:3px solid var(--yellow);border-radius:8px}
.hud{position:absolute;z-index:6;background:var(--surface);border:3px solid #14213d;border-radius:14px;padding:7px 12px 8px;min-width:150px;max-width:48%;box-shadow:0 4px 0 rgba(20,26,70,.35);font-size:.85rem;color:var(--ink)}
.hud b{font-weight:900;font-size:.95rem}
.hud .lv{font-family:"Pixelify Sans",var(--f-mono);font-size:.78rem;color:var(--muted);font-weight:600}
.whud{left:4%;top:6%}
.phud{right:4%;bottom:7%}
.hud .owned svg,.hud .owned img{width:14px;height:14px;vertical-align:-2px;margin-left:5px;display:inline-block}
.hpbar{display:flex;align-items:center;gap:6px;margin-top:5px}
.hpbar span{font-size:.6rem;font-weight:900;background:#14213d;color:var(--yellow);padding:1px 5px;border-radius:5px}
.hpbar i{flex:1;height:9px;border-radius:99px;background:var(--surface-2);overflow:hidden;border:1.5px solid #14213d;display:block}
.hpbar em{display:block;height:100%;transition:width .55s ease,background .3s}
.phud small{display:block;text-align:right;color:var(--muted);font-size:max(.72rem,12px);margin-top:2px}
.meadow .fxhit{border-radius:50%;background:radial-gradient(circle,#fff 0 18%,var(--hc) 45%,transparent 70%)}
.dmgnum{position:absolute;z-index:7;font-family:"Pixelify Sans",var(--f-mono);font-weight:700;font-size:1.35rem;color:#fff;text-shadow:0 2px 0 #14213d,0 0 6px #14213d;pointer-events:none}
.dmgnum.se{color:var(--yellow)}
.areas{display:flex;gap:6px;flex-wrap:wrap}
.areabtn{border:2px solid var(--line);background:var(--surface);border-radius:999px;padding:5px 12px 5px 8px;font-weight:800;font-size:.8rem;cursor:pointer;color:var(--ink);display:inline-flex;align-items:center;gap:6px}
.areabtn::before{content:"";width:12px;height:12px;border-radius:50%;background:var(--ac);border:1.5px solid #14213d}
.areabtn.locked{opacity:.55;cursor:not-allowed;padding-left:12px}.areabtn.locked::before{display:none}
.trackline{margin-top:8px}.linkbtn{background:none;border:0;padding:0;color:var(--blue-ink);font-weight:800;text-decoration:underline;cursor:pointer;font:inherit}
.areabtn[aria-pressed="true"]{border-color:#14213d;background:var(--yellow);color:#14213d}
.areabtn.hab-meadow{--ac:#4ea83a}.areabtn.hab-lake{--ac:#3f7ee0}.areabtn.hab-volcano{--ac:#ec6a1f}.areabtn.hab-cave{--ac:#8a7d5a}.areabtn.hab-night{--ac:#5f4d92}.areabtn.hab-snow{--ac:#9fd6f0}.areabtn.hab-storm{--ac:#f2c200}.areabtn.hab-sky{--ac:#7d6ee0}.areabtn.hab-dusk{--ac:#ea4f80}
.moves{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.movebtn{border:2.5px solid #14213d;border-radius:14px;background:color-mix(in srgb,var(--tc) 22%,var(--surface));padding:8px 10px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:2px;box-shadow:0 3px 0 #14213d;color:var(--ink);font:inherit;transition:transform .1s}
.movebtn b{font-weight:900;font-size:.9rem}
.movebtn small{font-size:max(.7rem,12px);font-weight:800;color:var(--muted)}
.movebtn.se small{color:var(--good)}.movebtn.nve small{color:var(--warn)}.movebtn.ne small{color:var(--bad)}
.movebtn:hover:not([disabled]){transform:translateY(-2px)}
.movebtn[disabled]{opacity:.5;cursor:default}
.encrow.actions{justify-content:flex-start}
.tipline{flex:1;min-width:180px;margin:0}
.pmini{display:grid;grid-template-columns:72px minmax(0,1fr);gap:12px;align-items:center;margin:8px 0}
.pmini .pic{width:72px}
.pmini b{display:block;font-family:var(--f-display);font-weight:400;font-size:1.3rem;line-height:1.1;margin-bottom:4px}
.pmini small{display:block;color:var(--muted);font-weight:700;margin-top:4px}
.pmoves{list-style:none;padding:0;margin:0 0 10px;display:flex;flex-direction:column;gap:6px}
.pmoves li{display:flex;justify-content:space-between;align-items:center}
.pmoves small{color:var(--muted);font-weight:700}
.starters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.startercard{border:2.5px solid var(--line);border-radius:18px;background:radial-gradient(circle at 50% 40%,color-mix(in srgb,var(--tc) 30%,var(--surface)),var(--surface) 70%);padding:10px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--ink);font:inherit;transition:transform .12s}
.startercard:hover{border-color:#14213d;transform:translateY(-3px)}
.startercard .pic{width:90%}
.startercard b{font-weight:900}
dialog#partnerDlg{width:min(760px,calc(100vw - 24px))}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;max-height:55dvh;overflow:auto;padding:2px}
.ctile.cur{border-color:var(--yellow);box-shadow:0 0 0 3px var(--yellow)}
@media (max-width:560px){
  .moves{gap:6px}
  .movebtn{padding:7px 8px}
  .movebtn b{font-size:.8rem}
  .movebtn small{font-size:max(.62rem,12px)}
  .hud{min-width:0;padding:5px 8px 6px;font-size:max(.72rem,12px);border-width:2.5px}
  .hud b{font-size:.8rem}
  .tuft{width:18%}
  .starters{gap:6px}
}

/* pokémon of the day */
.potd{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);border:3px solid #14213d;border-radius:28px;overflow:hidden;box-shadow:7px 7px 0 var(--gold);background:var(--surface)}
.potd-art{position:relative;overflow:hidden;display:grid;place-items:center;padding:28px;background:radial-gradient(circle at 50% 55%,color-mix(in srgb,var(--tc) 55%,var(--surface)) 0 32%,color-mix(in srgb,var(--tc) 22%,var(--surface)) 33% 100%);border-right:3px solid #14213d;min-height:280px}
.potd-art .pic{width:min(100%,280px);position:relative;z-index:1}
.potd-art .pic img.ok{animation:breathe 3.2s ease-in-out infinite}
.potd-tag{position:absolute;top:14px;left:14px;z-index:2}
.potd-info{padding:24px;display:flex;flex-direction:column;gap:10px;justify-content:center}
.potd-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-weight:800;color:var(--muted)}
.potd-facts{margin:4px 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}
.potd-facts li{position:relative;padding-left:22px;line-height:1.5}
.potd-facts li::before{content:"";position:absolute;left:0;top:.45em;width:11px;height:11px;background:var(--tc);clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)}
.potd-bonus{margin:0;font-weight:800;color:var(--blue-ink)}
.potdmini{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:12px;align-items:center}
.potdmini .pic{width:64px}
.potdmini b{display:block;font-family:var(--f-display);font-weight:400;font-size:1.3rem;line-height:1.1}
.potdmini small{color:var(--muted);font-weight:700}
/* catch page */
.catchlayout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:20px;align-items:start}
.catchmain,.catchside{display:flex;flex-direction:column;gap:16px;min-width:0}
.meadowcard.big .meadow{aspect-ratio:16/11}
.catchtools{justify-content:space-between}
.todaystats{display:flex;gap:8px}
.todaystats div{background:var(--surface);border:2px solid var(--line);border-radius:12px;padding:6px 12px;font-size:max(.66rem,12px);font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.todaystats b{display:block;font-size:1.1rem;color:var(--ink);letter-spacing:0}
.recent{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}
.ltiles{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.ltile{display:flex;flex-direction:column;align-items:center;gap:2px;background:var(--surface-2);border:2px solid transparent;border-radius:12px;padding:7px 2px;text-align:center}
.ltile span{font-size:.58rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.ltile b{font-family:var(--f-display);font-weight:400;font-size:1.05rem;color:var(--ink)}
.ltile small{display:none}
.ltile .plus{font-style:normal;font-size:.56rem;font-weight:900;color:var(--blue-ink);text-transform:uppercase;letter-spacing:.06em}
.ltile.done{background:color-mix(in srgb,var(--good) 18%,var(--surface));}
.ltile.done b{color:var(--good)}
.ltile.today{border-color:var(--red-hot);background:var(--yellow-soft);animation:bump 1.2s ease-in-out infinite}
.ltile:last-child b{color:var(--gold)}
.missions{display:flex;flex-direction:column;gap:10px}
.mission{border:2px solid var(--line);border-radius:14px;padding:10px 12px;display:flex;flex-direction:column;gap:7px;background:var(--surface)}
.mission.ready{border-color:var(--good);background:color-mix(in srgb,var(--good) 8%,var(--surface))}
.mission.claimed{opacity:.6}
.mtop{display:flex;justify-content:space-between;gap:10px;font-size:.9rem}
.mtop .num{color:var(--muted);font-size:.8rem;white-space:nowrap}
.mbar{height:8px;border-radius:99px;background:var(--surface-2);overflow:hidden}
.mbar i{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--yellow));border-radius:99px}
.mfoot{display:flex;justify-content:space-between;align-items:center;gap:8px}
.mfoot small{color:var(--muted);font-weight:700;font-size:max(.74rem,12px)}
.earn ul{margin:8px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px;font-size:.88rem;color:var(--muted)}
.earn li b{display:block;color:var(--ink)}
.berrybtn svg{width:22px;height:22px}
.berrybtn.on{border-color:#ff5fa2;background:color-mix(in srgb,#ff5fa2 14%,var(--surface))}
/* trainer code dialog */
dialog.codedlg{border:0;padding:0;background:transparent;width:min(520px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;color:var(--ink)}
dialog.codedlg::backdrop{background:rgba(13,19,48,.62);backdrop-filter:blur(4px)}
.cd{position:relative;background:var(--surface);border:3px solid #14213d;border-radius:26px;box-shadow:7px 7px 0 var(--gold);padding:24px;display:flex;flex-direction:column;gap:12px;animation:sheetIn .35s cubic-bezier(.3,1.3,.5,1)}
.cd p{margin:0;line-height:1.55}
.cd .closex{position:absolute;top:14px;right:14px;margin:0}
.cd .codebox{align-self:flex-start}
.cd #cdImg img{width:100%;border-radius:14px;border:2px solid var(--line);display:block;margin-bottom:8px}
.cdchk{display:flex;gap:8px;align-items:center;font-weight:800;font-size:.9rem;cursor:pointer}
.cdchk input{width:20px;height:20px;accent-color:var(--blue)}

.codewrap{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.codebox{display:flex;flex-direction:column;gap:2px;background:var(--band-deep);color:#fff;border:3px solid var(--yellow);border-radius:16px;padding:10px 18px}
.codebox span{font-size:max(.66rem,12px);font-weight:900;letter-spacing:.14em;text-transform:uppercase;color:var(--yellow)}
.codebox b{font-size:1.6rem;letter-spacing:.12em}
.cloudst{margin:10px 0 0}
.cloudst.saved{color:var(--good)}
.cloudst.error{color:var(--bad)}
.codeuse{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin-top:14px}
.codeuse .input{letter-spacing:.12em;text-transform:uppercase}
.adv summary{cursor:pointer;font-weight:800;color:var(--muted);font-size:.9rem}


@media (max-width:860px){
  .hero,.gamewrap,.teamlayout{grid-template-columns:minmax(0,1fr)}
  .hero .meadowcard{order:-1}
  .catchlayout{grid-template-columns:minmax(0,1fr)}
  .potd{grid-template-columns:minmax(0,1fr)}
  .potd-art{border-right:0;border-bottom:3px solid #14213d;min-height:220px}
  .potd-art .pic{width:min(70%,220px)}
  .meadowcard.big .meadow{aspect-ratio:5/4}
  .tcard,.minegrid{grid-template-columns:minmax(0,1fr)}
  .tc-side{border-left:0;border-top:3px dashed rgba(255,255,255,.2);min-height:200px}
  .sheet{overflow:clip}
  .closex{position:fixed;top:calc(20px + env(safe-area-inset-top,0px));right:calc(20px + env(safe-area-inset-right,0px));margin:0;box-shadow:0 3px 0 #14213d}

  .sheet{grid-template-columns:minmax(0,1fr);overflow:auto}
  .sheet .left{border-right:0;border-bottom:3px solid #14213d}
  .sheet .left .rel{width:min(64%,250px)}
  .sheet .right{overflow:visible}
  .controls{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .controls .field:first-child{grid-column:1/-1}
  .teamgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .result,.qresult{grid-template-columns:minmax(0,1fr);justify-items:center;text-align:center}
  .result .relbox{width:170px}
  .qresult .relbox{width:220px}
  .result .row,.qresult .row{justify-content:center}
}
@media (max-width:440px){
  .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .opts{grid-template-columns:minmax(0,1fr)}
  .threat{grid-template-columns:78px minmax(0,1fr) minmax(0,1fr) 70px}
  .facts,.teamstats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .brand b{font-size:1.35rem}
  .brand svg.wordmark{height:52px}
  .tc-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .regrow{grid-template-columns:96px minmax(0,1fr) 64px}
  .bagview{grid-template-columns:repeat(3,minmax(0,1fr))}
  .colgrid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .np{grid-template-columns:44px minmax(0,1fr) auto;gap:8px}
  .np input[type=range]{display:none}
  .np .pic{width:44px}
  .crygrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hero .stats{gap:14px}
  .hero .stats b{font-size:1.35rem}
  .hero .cta .btn{flex:1}
}
@media (hover:none){.card{transform:none}}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .rel-orb,.rel-flash,.rel-spark,.fx{display:none}
}
.swpanel{margin-top:10px}
.swgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.swcard{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 6px 10px;border:2px solid var(--line);border-radius:16px;background:var(--surface);cursor:pointer;font:inherit;color:var(--ink);text-align:center;transition:transform .15s,border-color .15s}
.swcard img{width:64px;height:64px;object-fit:contain}
.swcard b{font-size:.82rem;line-height:1.15}
.swcard .swlv{font-size:max(.7rem,12px);color:var(--muted);font-weight:700}
.swcard small{font-size:max(.68rem,12px);font-weight:800;color:var(--muted)}
.swcard .swgood{color:var(--good)}
.swcard.strong{border-color:var(--good);box-shadow:0 0 0 3px color-mix(in srgb,var(--good) 22%,transparent)}
.swcard:not(:disabled):hover{transform:translateY(-2px);border-color:var(--ink)}
.swcard:disabled{opacity:.45;cursor:not-allowed;filter:grayscale(1)}
.swhp{display:block;width:80%;height:6px;border-radius:9px;background:color-mix(in srgb,var(--line) 70%,transparent);overflow:hidden;margin:3px 0 1px}
.swhp em{display:block;height:100%;border-radius:9px}
.swdot{color:#f5b301;font-size:.85em}
@media (min-width:760px){.swgrid{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media (prefers-reduced-motion:reduce){.swcard{transition:none}}
.evobox{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;align-items:center;margin:12px 0;padding:10px 12px;border:2px dashed var(--line);border-radius:16px;background:color-mix(in srgb,var(--blue) 5%,var(--surface))}
.evobox.ready{border:2px solid var(--good);background:color-mix(in srgb,var(--good) 10%,var(--surface));animation:nextIn .4s ease-out}
.evopics{display:flex;align-items:center;gap:2px}
.evopics .pic,.evoto{width:48px;flex:none}.evoto .pic{width:48px}
.evoarr{font-weight:900;color:var(--muted)}
.evoto.mystery img{filter:brightness(0);opacity:.55}
.evotxt{display:flex;flex-direction:column;gap:3px;min-width:0}
.evotxt b{font-size:.95rem}
.evobox.ready .evotxt b{color:var(--good)}
.evotxt span{font-size:.85rem;display:flex;gap:6px;align-items:center}
.evotxt small{font-size:.78rem;color:var(--muted);font-weight:700}
.evotxt .stoneic{width:18px;height:18px;flex:none}
.evobar{display:block;height:8px;border-radius:9px;background:color-mix(in srgb,var(--line) 70%,transparent);overflow:hidden;max-width:260px}
.evobar em{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--good));border-radius:9px}
.evoacts{grid-column:1/-1}
.evoacts:empty{display:none}
.evoacts .stoneic,.evoitem .stoneic{width:16px;height:16px;vertical-align:-3px}
.evonone{margin:10px 0}
.evopanel{border:2px solid var(--good)}
.evolist{display:grid;gap:8px;margin-top:8px}
.evoitem{display:grid;grid-template-columns:52px 1fr auto;gap:10px;align-items:center;padding:6px 8px;border:2px solid var(--line);border-radius:14px;background:var(--surface)}
.evoitem .pic{width:52px}
.evoitem b{display:block;font-size:.9rem}
.evoitem small{color:var(--muted);font-weight:700;font-size:.76rem}
.evotag{display:inline-block;margin-top:2px;font-size:max(.66rem,12px);font-weight:900;color:#fff;background:#1f7a45;border-radius:999px;padding:1px 8px}
@media (min-width:760px){.evolist{grid-template-columns:repeat(2,minmax(0,1fr))}#evoPanelC .evolist{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.evobox.ready{animation:none}}
dialog.evodlg{border:0;border-radius:24px;padding:0;width:min(440px,calc(100vw - 32px));background:var(--surface);color:var(--ink)}
dialog.evodlg::backdrop{background:rgba(10,14,40,.82)}
.evocd{text-align:center;padding:22px 20px 20px}
.evocd .h2{min-height:2.6em}
.evostage{position:relative;width:200px;height:200px;margin:8px auto;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,color-mix(in srgb,var(--blue) 18%,transparent),transparent 70%)}
.evostage .pic{width:170px}
.evostage.morph .pic img{filter:brightness(0) invert(1) drop-shadow(0 0 12px #9fd3ff)}
.evostage.morph{background:radial-gradient(circle,#bfe3ff,transparent 70%)}
.evostage.flash::after{content:"";position:absolute;inset:-40px;border-radius:50%;background:radial-gradient(circle,#fff,transparent 70%);animation:evoFlash .35s ease-out}
@keyframes evoFlash{from{opacity:1;transform:scale(.6)}to{opacity:0;transform:scale(1.4)}}
.evob.reveal{animation:pop .55s cubic-bezier(.3,1.6,.5,1)}
.evosub{min-height:1.4em}
@media (prefers-reduced-motion:reduce){.evostage.flash::after,.evob.reveal{animation:none}}
.nextbox.gymwon{border-color:var(--good);background:color-mix(in srgb,var(--good) 12%,var(--surface))}
.wonmsg{margin:0 0 10px;font-size:1rem}
.wonmsg>b{display:block;font-size:1.15rem;color:var(--good);margin-bottom:6px}
.rewards{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:6px 0 10px}
.rwlab{font-size:max(.72rem,12px);font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-right:2px}
.rwi{display:inline-flex;align-items:center;gap:6px;padding:4px 10px 4px 6px;border-radius:999px;background:var(--surface);border:2px solid var(--line);font-weight:800;font-size:.82rem}
.rwi .gbadge{width:22px;height:22px}
.rwi .stoneic{width:18px;height:18px}
.bigline{font-weight:800;margin:6px 0 10px}
.nextcard{display:flex;gap:12px;align-items:center;padding:10px 12px;border-radius:16px;background:var(--surface);border:2px dashed var(--line);margin:4px 0 2px}
.nextcard .gav{width:52px;flex:none}
.nextcard b{display:block}
.nextcard small{display:block;color:var(--muted);font-weight:700;font-size:.8rem}
.nextcard .eyebrow{display:block;margin:0 0 1px}
.dclues{display:flex;gap:16px;align-items:center;margin:4px 0 12px;padding:14px 16px}
.dsil{flex:none;width:120px;height:120px;border-radius:18px;background:radial-gradient(circle,color-mix(in srgb,var(--blue) 14%,var(--surface)),var(--surface));display:grid;place-items:center;overflow:hidden}
.dsil>div{width:104px;transition:filter .6s}
.dsil .pic{width:104px}.dsil .mono{display:none}
.dcl{min-width:0}
.dcl b{font-size:1.05rem}
.dcl ul{list-style:none;margin:6px 0;padding:0;display:grid;gap:4px}
.dcl li{font-weight:700;font-size:.92rem}
.dcl li.lk{color:var(--muted);font-weight:600;font-size:.84rem}
.dcl small{color:var(--muted);font-size:.78rem;display:block}
@media (max-width:520px){.dclues{flex-direction:column;align-items:flex-start}.dsil{align-self:center}}
.moveshint{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:20;border:3px solid var(--ink,#14213d);background:#ffd400;color:#14213d;font:inherit;font-weight:900;font-size:.95rem;padding:8px 16px;border-radius:999px;box-shadow:0 4px 0 #14213d;cursor:pointer;animation:hintBob 1.2s ease-in-out infinite;white-space:nowrap}
.grasshint{position:absolute;left:50%;top:38%;transform:translateX(-50%);z-index:20;background:#fff;color:#14213d;border:3px solid #14213d;font-weight:900;font-size:.95rem;padding:8px 16px;border-radius:999px;box-shadow:0 4px 0 #14213d;pointer-events:none;animation:hintBob 1.2s ease-in-out infinite;white-space:nowrap}
@media (max-width:760px){.moveshint{bottom:96px}}
@keyframes hintBob{0%,100%{translate:0 0}50%{translate:0 -6px}}
@media (prefers-reduced-motion:reduce){.moveshint,.grasshint{animation:none}}

body.battlefit #fsBtn{display:none}
body.battlefit .moveshint{display:none!important}
@media (min-width:761px){body.battlefit .meadowcard.big,body.playmode .meadowcard.big{width:min(100vw,calc((100dvh - 350px) * 16 / 11))}}
.profilebtn{display:inline-flex;align-items:center;gap:8px;padding:4px 12px 4px 4px;border-radius:999px;background:#fff;color:#14213d;text-decoration:none;box-shadow:0 2px 0 var(--band-deep,#14213d);border:2px solid #14213d;min-width:0;max-width:240px}
.profilebtn:hover{background:#fffbe0}
.pf-av{flex:none;width:36px;height:36px;border-radius:50%;overflow:hidden;background:var(--surface-2,#eef)}
.pf-av .avatar{width:36px;height:36px}
.pf-txt{display:flex;flex-direction:column;min-width:0;line-height:1.1}
.pf-nm{font-size:.82rem;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pf-lv{display:flex;gap:5px;align-items:center;font-size:max(.68rem,12px);font-weight:800;color:#4a5170;white-space:nowrap;overflow:hidden}
.pf-ti{overflow:hidden;text-overflow:ellipsis}
.pf-badge{display:inline-block;background:#ffd400;color:#14213d;border:1.5px solid #14213d;border-radius:999px;padding:0 6px;font-weight:900;font-size:max(.66rem,12px);line-height:1.45}
.pf-bar{display:block;height:4px;border-radius:9px;background:#e3e6f3;overflow:hidden;margin-top:3px}
.pf-bar em{display:block;height:100%;background:linear-gradient(90deg,#3b4cca,#2e9e5b);border-radius:9px}
.pf-bar.big{height:8px;margin:4px 0}
.pf-up{animation:pfUp .9s cubic-bezier(.3,1.6,.5,1)}
@keyframes pfUp{0%{transform:scale(1)}40%{transform:scale(1.12);box-shadow:0 0 0 6px #ffd400}100%{transform:scale(1)}}
.tc-lv{margin:6px 0 4px;max-width:280px}
.tc-lv .pf-badge{font-size:.78rem;padding:1px 9px}
.tc-lv small{display:block;font-size:max(.72rem,12px);opacity:.8;font-weight:700}
@media (max-width:760px){.profilebtn{padding:3px 8px 3px 3px;gap:6px;max-width:150px}.pf-av,.pf-av .avatar{width:30px;height:30px}.pf-ti{display:none}.pf-nm{font-size:max(.74rem,12px)}
 .trainerbtn .tb-l{display:none}.trainerbtn .tb-av{display:none}.trainerbtn{font-size:0!important;padding:8px 10px!important}.trainerbtn::before{content:"🔑";font-size:1rem}.trainerbtn .tb-av{display:none}}
@media (prefers-reduced-motion:reduce){.pf-up{animation:none}}
body.playmode .profilebtn,body.battlefit .profilebtn{display:none}
.speech{position:absolute;z-index:9;pointer-events:none;background:#fff;color:#14213d;border:3px solid #14213d;border-radius:16px;padding:5px 12px;font-weight:900;font-size:clamp(.8rem,2.2vw,1.05rem);white-space:nowrap;box-shadow:0 3px 0 rgba(20,26,70,.35);transform:translate(-50%,-100%)}
.speech::after{content:"";position:absolute;left:24px;bottom:-11px;border:8px solid transparent;border-top-color:#14213d;border-bottom:0}
.speech.foe::after{left:auto;right:24px}
.gprep .gphead{display:flex;gap:14px;align-items:center;margin-bottom:10px}
.gprep .gphead .gav{width:64px;flex:none}
.gprules{background:color-mix(in srgb,var(--tc) 12%,var(--surface));border:2px solid color-mix(in srgb,var(--tc) 50%,var(--line));border-radius:16px;padding:10px 14px;margin:6px 0 12px}
.gprules ul{margin:6px 0 0;padding:0;list-style:none;display:grid;gap:4px;font-size:.92rem}
.gpgrid{max-height:min(46vh,420px);overflow:auto;padding:4px}
.gpick{position:relative}
.gpick.cur{outline:3px solid var(--good);outline-offset:-3px}
.gpnum{position:absolute;top:6px;left:6px;width:22px;height:22px;border-radius:50%;background:var(--good);color:#fff;font-weight:900;font-size:.78rem;display:grid;place-items:center;z-index:2}
.gpg{color:var(--good);font-weight:800;font-size:max(.7rem,12px)}
.gpw{color:var(--bad,#c0392b);font-weight:800;font-size:max(.7rem,12px)}
.pic.bspr{display:flex;align-items:flex-end;justify-content:center;container-type:normal}
.pic.bspr img.bsi{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 6px 4px rgba(0,0,0,.25))}
.pic.bspr.art img.bsi{width:100%!important;height:100%;image-rendering:auto;filter:none}
.partner .pic.bspr:not(.art){transform:scaleX(-1)}
.wild .pic.bspr{align-items:center}
.pic.bspr .mono{display:none}
.itemimg{width:28px;height:28px;image-rendering:pixelated;object-fit:contain;vertical-align:middle;flex:none}
.bagbtn .itemimg{width:26px;height:26px}
.bagitem .itemimg{width:34px;height:34px}
.itemimg.stoneic{width:24px;height:24px}
.rwi .itemimg.stoneic,.evotxt .itemimg.stoneic{width:22px;height:22px}
.megabtn{background:linear-gradient(90deg,#ffd400,#ff7ad9,#7a8cff);color:#14213d;border:2.5px solid #14213d;font-weight:900;animation:megaGlow 1.6s ease-in-out infinite}
.megabtn .itemimg{width:22px;height:22px;margin:-4px 2px -4px -4px}
@keyframes megaGlow{50%{box-shadow:0 0 0 4px rgba(255,122,217,.35)}}
.formrow{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:8px;margin-top:6px}
.formcard{display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 6px 10px;border:2px solid var(--line);border-radius:14px;background:var(--surface);font:inherit;color:var(--ink);text-align:center}
button.formcard{cursor:pointer}
.formcard .pic{width:72px}
.formcard b{font-size:.8rem;line-height:1.15}
.formcard small{font-size:max(.7rem,12px);font-weight:800;color:var(--muted)}
.formcard.on{border-color:var(--good);box-shadow:0 0 0 3px color-mix(in srgb,var(--good) 22%,transparent)}
.formcard.on small{color:var(--good)}
.formcard.locked .pic img{filter:brightness(0);opacity:.35}
.formcard .chips .chip{font-size:max(.6rem,12px);padding:1px 6px}
@media (prefers-reduced-motion:reduce){.megabtn{animation:none}}
.formstats{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 10px}.formstats span{background:color-mix(in srgb,var(--blue) 10%,var(--surface));border-radius:999px;padding:4px 12px;font-weight:800;font-size:.85rem}
@media (max-width:430px){.profilebtn{max-width:118px}.tools{gap:6px}.pf-nm{font-size:max(.7rem,12px)}}
/* battle stage: foe far and small on a platform, your Pokémon close in the foreground */
.pic.b3d{display:flex;align-items:flex-end;justify-content:center}
.pic.b3d img.bsi{width:calc(100% * var(--sz,1));height:auto;max-height:100%;object-fit:contain;filter:drop-shadow(0 8px 6px rgba(0,0,0,.28))}
.pic.b3d .mono{display:none}
.plat{position:absolute;display:none;pointer-events:none;border-radius:50%;z-index:1;background:radial-gradient(ellipse at 50% 40%,rgba(255,255,255,.55),rgba(255,255,255,.18) 45%,rgba(0,0,0,.18) 70%,transparent 72%)}
.meadow.battle .plat{display:block}
.plat.foe{right:-1%;bottom:31%;width:44%;height:15%}
.plat.me{left:-12%;bottom:-9%;width:70%;height:22%}
.meadow.battle .shadow{display:none}
.meadow.battle .wild{left:76%;width:30%;bottom:36%}
.meadow.battle .partner{left:-4%;bottom:-6%;width:52%}
.meadow.battle .wild .pic.b3d img.bsi{animation:foeIdle 3.4s ease-in-out infinite}
@keyframes foeIdle{50%{transform:translateY(-3%)}}
.meadow.battle.camin{animation:camIn .9s cubic-bezier(.2,.8,.3,1)}
@keyframes camIn{from{transform:scale(1.18);transform-origin:76% 55%}to{transform:scale(1);transform-origin:76% 55%}}
@media (max-width:760px){.meadow.battle .wild{left:75%;width:34%;bottom:38%}.plat.foe{bottom:34%;width:50%}.meadow.battle .partner{width:56%;bottom:-4%}}
@media (prefers-reduced-motion:reduce){.meadow.battle .wild .pic.b3d img.bsi,.meadow.battle.camin{animation:none}}
body.battlefit .meadowcard.big .encbar,body.playmode .meadowcard.big .encbar{padding-bottom:calc(30px + env(safe-area-inset-bottom,0px))}
body.battlefit #encbar[data-s^="battle"] .encrow:first-child .nm,body.playmode #encbar[data-s^="battle"] .encrow:first-child .nm{display:none}
#encbar[data-s="battle-open"] .bag,#encbar[data-s="battle-open"] .swpanel{animation:nextIn .25s ease-out}
/* wide screens: battle on the left, controls in a panel on the right, so nothing needs scrolling */
@media (min-width:900px){
 body.battlefit .meadowcard.big,body.playmode .meadowcard.big{left:0!important;transform:none!important;width:100vw!important;display:grid!important;grid-template-columns:minmax(0,1fr) minmax(360px,30vw);grid-template-rows:auto 1fr;align-content:start;background:#14213d}
 body.battlefit .meadowcard.big,body.playmode .meadowcard.big{--bw:min(calc(100vw - max(360px,30vw)),calc((100dvh - 100px) * 16 / 11))}
 body.battlefit .meadowcard.big .meadow,body.playmode .meadowcard.big .meadow{grid-column:1;grid-row:1;width:var(--bw);height:calc(var(--bw) * 11 / 16);justify-self:center;aspect-ratio:auto}
 body.battlefit .meadowcard.big .dlgbox,body.playmode .meadowcard.big .dlgbox{grid-column:1;grid-row:2;width:var(--bw);justify-self:center;align-self:start;box-sizing:border-box;margin:8px auto 0}
 body.battlefit .meadowcard.big .encbar,body.playmode .meadowcard.big .encbar{grid-column:2;grid-row:1/span 2;height:100dvh;box-sizing:border-box;overflow:auto;background:var(--surface);border-top:0;border-left:3px solid #14213d;padding:18px 18px calc(24px + env(safe-area-inset-bottom,0px))}
 body.battlefit .meadowcard.big .encbar .moves,body.playmode .meadowcard.big .encbar .moves{grid-template-columns:repeat(2,minmax(0,1fr))}
 body.battlefit .meadowcard.big .encbar .encrow.actions,body.playmode .meadowcard.big .encbar .encrow.actions{flex-wrap:wrap}
}
/* move animations */
.fxp{position:absolute;z-index:7;pointer-events:none;border-radius:50%;background:var(--c)}
.fxp.flame{border-radius:50% 50% 50% 0;background:radial-gradient(circle at 40% 60%,#fff6b0,#ffb020 35%,#ff4d1a 70%);filter:blur(.5px);box-shadow:0 0 12px #ff7a1a}
.fxp.bubble{background:radial-gradient(circle at 35% 30%,#fff 0 18%,color-mix(in srgb,var(--c) 55%,#fff) 40%,var(--c));border:2px solid rgba(255,255,255,.8);opacity:.9}
.fxp.leaf{border-radius:0 80% 0 80%;background:linear-gradient(135deg,#9be15d,var(--c));box-shadow:inset -2px -2px 0 rgba(0,0,0,.15)}
.fxp.shard{border-radius:2px;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);background:linear-gradient(135deg,#fff,#bff1ff 40%,var(--c))}
.fxp.orb{background:radial-gradient(circle,#fff 0 12%,color-mix(in srgb,var(--c) 70%,#fff) 30%,var(--c) 60%,transparent 72%);box-shadow:0 0 18px var(--c)}
.fxp.spark{clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%);background:#fff7a8}
.fxp.wind{border-radius:50%;background:transparent;border:4px solid rgba(255,255,255,.85);border-left-color:transparent;border-bottom-color:transparent}
.fxp.ring{background:transparent;border:5px solid var(--c);box-shadow:0 0 16px var(--c),inset 0 0 12px var(--c)}
.fxp.rock{border-radius:30% 40% 35% 45%;background:linear-gradient(135deg,#d2b48c,#8b6b45);border:2px solid #5b4630}
.fxp.slash{border-radius:4px;height:6px!important;background:linear-gradient(90deg,transparent,#fff,var(--c),transparent);transform-origin:center;rotate:-35deg}
.fxp.impact{clip-path:polygon(50% 0,62% 32%,98% 22%,72% 50%,98% 78%,62% 68%,50% 100%,38% 68%,2% 78%,28% 50%,2% 22%,38% 32%);background:radial-gradient(circle,#fff 0 25%,#ffe066 45%,#ff9f1c 75%)}
.fxp.zzz{background:none;border-radius:0;color:#fff;font-weight:900;font-size:1.4rem;text-shadow:0 2px 0 #3b4cca,0 0 8px #3b4cca;width:auto!important;height:auto!important}
.fxbolt{position:absolute;inset:0;width:100%;height:100%;z-index:7;pointer-events:none;filter:drop-shadow(0 0 8px #ffe600)}
.fxflash{position:absolute;inset:0;z-index:8;background:#fff;pointer-events:none}
.hpbar em{transition:background-color .4s}
.fxcanvas{position:absolute;inset:0;width:100%;height:100%;z-index:7;pointer-events:none}
.swcard b{overflow-wrap:anywhere;hyphens:auto;max-width:100%}
.swcard{min-width:0}
@media (min-width:900px){body.battlefit .meadowcard.big .encbar .swgrid,body.playmode .meadowcard.big .encbar .swgrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:761px) and (max-width:899px){.swgrid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.coachline{display:flex;align-items:center;gap:10px;margin:0 0 8px;padding:8px 12px;border-radius:14px;background:#fff6c2;border:2.5px solid #14213d;color:#14213d;font-weight:700;font-size:.92rem;box-shadow:0 3px 0 #14213d;animation:nextIn .35s ease-out}
.coachline .cstep{flex:none;background:#14213d;color:#fff;border-radius:999px;padding:2px 9px;font-size:max(.7rem,12px);font-weight:900;letter-spacing:.04em;text-transform:uppercase}
.coachline span:nth-child(2){flex:1;min-width:0}
.coachline .linkbtn{flex:none;font-size:1rem;color:#14213d}
.coachline.s2{background:#ffe1dc}
.moves.coachglow .movebtn:not(.stmove){animation:coachGlow 1.4s ease-in-out infinite}
@keyframes coachGlow{50%{box-shadow:0 3px 0 #14213d,0 0 0 4px #ffd400}}
.btn.coachpulse{animation:coachPulse 1.1s ease-in-out infinite}
@keyframes coachPulse{50%{transform:scale(1.06);box-shadow:0 0 0 6px rgba(255,212,0,.6)}}
.htsteps{list-style:none;margin:10px 0;padding:0;display:grid;gap:10px}
.htsteps li{display:flex;gap:12px;align-items:flex-start}
.htsteps .hti{flex:none;width:40px;height:40px;border-radius:12px;background:color-mix(in srgb,var(--blue) 12%,var(--surface));display:grid;place-items:center;font-size:1.3rem}
.htsteps b{display:block}
.htsteps small{color:var(--muted);font-size:.86rem;line-height:1.4}
@media (prefers-reduced-motion:reduce){.coachline,.moves.coachglow .movebtn,.btn.coachpulse{animation:none}}
.chbar{margin:4px 0 14px}
.chcard{border:3px solid #14213d;border-radius:20px;padding:14px 16px;background:linear-gradient(135deg,#fff6c2,#ffe1f0);color:#14213d;box-shadow:0 5px 0 #14213d;display:grid;gap:10px}
.chhead{display:flex;gap:12px;align-items:center}
.chbolt{font-size:2rem;flex:none}
.chhead b{font-size:1.15rem;display:block}
.chhead small{font-weight:700;color:#4a5170}
.chbest{font-weight:700;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.chmedals{display:inline-flex;gap:4px}
.chmedals i{font-style:normal;font-size:1.2rem;filter:grayscale(1);opacity:.35}
.chmedals i.on{filter:none;opacity:1}
.chrun{display:flex;gap:10px;align-items:stretch;flex-wrap:wrap;border:3px solid #14213d;border-radius:18px;padding:10px 12px;background:var(--surface);box-shadow:0 4px 0 #14213d}
.chstat{display:flex;flex-direction:column;min-width:74px}
.chstat span{font-size:max(.68rem,12px);font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.chstat b{font-size:1.5rem;line-height:1.1}
.chstat b.hot{color:#e3350d;animation:pop .4s}
.chtime{flex:1 1 160px;position:relative;align-self:center;height:22px;border-radius:999px;background:color-mix(in srgb,var(--line) 70%,transparent);overflow:hidden;border:2px solid #14213d}
.chtime i{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,#2e9e5b,#7bd389);transition:width .1s linear}
.chtime i.low{background:linear-gradient(90deg,#e3350d,#ff8a65)}
.chtime span{position:relative;display:block;text-align:center;font-weight:900;font-size:.8rem;line-height:18px;color:#14213d}
body.chmode #nextBtn,body.chmode #hintBtn,body.chmode #view-guess .score,body.chmode #view-guess .field{display:none}
.chend .chres{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:8px 0}
.chend .chres div{background:color-mix(in srgb,var(--blue) 8%,var(--surface));border-radius:14px;padding:8px 10px;display:flex;flex-direction:column}
.chend .chres span{font-size:max(.68rem,12px);font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.chend .chres b{font-size:1.1rem}
.chprize{font-weight:800;color:var(--good)}
.chbeat{font-weight:900;font-size:1.05rem}.chbeat.win{color:var(--good)}.chbeat.lose{color:var(--muted)}
.chshare{display:grid;gap:4px;border:2px dashed var(--line);border-radius:14px;padding:10px 12px;margin:8px 0}
.chshare small{color:var(--muted);font-weight:600}
.chcode{font-size:1.2rem;font-weight:900;letter-spacing:.08em;background:color-mix(in srgb,var(--blue) 10%,var(--surface));padding:4px 10px;border-radius:10px}
#chIn{font-size:1.3rem;letter-spacing:.1em;text-transform:uppercase}
/* challenge focus mode: everything on one screen */
body.chmode header,body.chmode .bottomnav,body.chmode footer,body.chmode .profilebtn,body.chmode #view-guess>div:first-child,body.chmode .statsnote,body.chmode .crumbs{display:none!important}
body.chmode main>*:not(#view-guess){display:none!important}
body.chmode{overflow:hidden}
body.chmode #view-guess{position:fixed;inset:0;z-index:60;background:var(--bg);overflow:auto;display:flex;flex-direction:column;gap:12px;padding:max(12px,env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) 16px max(16px,env(safe-area-inset-left,0px));margin:0;max-width:none}
body.chmode #chbar{margin:0;flex:none}
body.chmode .chrun{padding:8px 10px;align-items:center}
body.chmode .gamewrap{flex:1;min-height:0;display:grid;grid-template-columns:auto minmax(260px,1fr);gap:16px;align-items:center;max-width:1200px;margin:0 auto;width:100%}
body.chmode .gstage{width:min(calc(100dvh - 140px),58vw);max-width:100%;justify-self:center}
body.chmode .opts{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px}
body.chmode .opt{font-size:1.15rem;padding:18px 14px;min-height:64px}
body.chmode .verdict{min-height:1.6em;font-size:1.1rem;font-weight:900}
@media (max-width:760px){body.chmode .gamewrap{grid-template-columns:1fr;align-content:start;gap:12px}body.chmode .gstage{width:min(100%,calc(100dvh - 360px));min-width:200px}body.chmode .opt{font-size:1rem;padding:14px 10px;min-height:56px}}
.chquit{margin-left:auto;align-self:center;width:40px;height:40px;border-radius:50%;border:2.5px solid #14213d;background:var(--surface);color:var(--ink);font-size:1.1rem;font-weight:900;cursor:pointer;flex:none}
.chcount{position:relative;z-index:2;font-family:var(--f-display,inherit);font-size:clamp(4rem,18vw,9rem);font-weight:900;color:#14213d;text-shadow:0 6px 0 rgba(255,255,255,.6);animation:countPop .6s cubic-bezier(.3,1.6,.5,1)}
.chcount.go{color:#e3350d}
@keyframes countPop{from{transform:scale(.3);opacity:0}to{transform:scale(1);opacity:1}}
@media (max-width:760px){.chrun .chstat{min-width:60px}.chrun .chstat b{font-size:1.25rem}.chtime{flex-basis:100%;order:5}}
@media (prefers-reduced-motion:reduce){.chcount{animation:none}}
body.chmode #view-guess>*:not(#chbar):not(.gamewrap){display:none!important}
@media (orientation:portrait) and (min-width:761px){body.chmode .gamewrap{grid-template-columns:1fr;align-content:center}body.chmode .gstage{width:min(100%,calc(100dvh - 380px))}}
.lbtabs{display:flex;gap:6px;margin:6px 0 10px}
.lbtabs button{flex:1;border:2.5px solid #14213d;border-radius:999px;background:var(--surface);color:var(--ink);font:inherit;font-weight:900;padding:8px 12px;cursor:pointer}
.lbtabs button.on{background:#ffd400;color:#14213d}
.lblist{list-style:none;margin:8px 0;padding:0;display:grid;gap:6px;max-height:min(52vh,460px);overflow:auto}
.lbrow{display:grid;grid-template-columns:34px 38px minmax(0,1fr) auto;gap:10px;align-items:center;padding:6px 10px;border-radius:14px;background:color-mix(in srgb,var(--blue) 6%,var(--surface));border:2px solid transparent}
.lbrow.me{border-color:#14213d;background:#fff6c2;color:#14213d}
.lbrow:nth-child(1) .lbrank{background:#ffd400;color:#14213d}.lbrow:nth-child(2) .lbrank{background:#d9dde8;color:#14213d}.lbrow:nth-child(3) .lbrank{background:#f0b27a;color:#14213d}
.lbrank{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-weight:900;background:var(--surface)}
.lbav{width:38px;height:38px;border-radius:50%;overflow:hidden}.lbav .avatar{width:38px;height:38px}
.lbname{font-weight:800;min-width:0;overflow-wrap:anywhere}.lbname small{display:block;font-weight:600;color:var(--muted);font-size:max(.74rem,12px)}
.lbrow.me .lbname small{color:#4a5170}
.lbscore{font-weight:900;font-size:1.05rem}
.lbgap{text-align:center;color:var(--muted)}
.lbclub{display:grid;gap:6px;margin:10px 0;padding:10px 12px;border:2px dashed var(--line);border-radius:14px}
.lbshare{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}
.chrank{font-weight:800;min-height:1.4em}
.league.locked{border:2.5px dashed color-mix(in srgb,#ffd400 70%,#14213d);background:linear-gradient(135deg,#fff8d6,#ffeef6);color:#14213d;border-radius:18px;padding:12px 14px;margin-top:12px;display:grid;gap:10px}
.lghead{display:flex;gap:12px;align-items:flex-start}.lgtrophy{font-size:2rem;flex:none}
.lghead b{font-size:1.1rem;display:block}.lghead small{display:block;font-weight:700;color:#4a5170;font-size:.82rem;line-height:1.35}
.lgs.mystery{position:relative}.lgs.mystery .avatar{filter:brightness(0);opacity:.55}.lgs.mystery em{position:absolute;inset:0;display:grid;place-items:center;font-style:normal;font-weight:900;color:#fff;font-size:1rem}
.lgprog{display:grid;gap:4px}.lgbar{height:10px;border-radius:9px;background:rgba(20,33,61,.12);overflow:hidden}.lgbar i{display:block;height:100%;background:linear-gradient(90deg,#ffd400,#ff9f1c);border-radius:9px}
.lgprog span{font-size:.82rem;font-weight:700}
.minilb{display:grid;gap:8px;margin-top:4px;padding-top:10px;border-top:2px dashed rgba(20,33,61,.18)}
.mlhead{display:flex;justify-content:space-between;align-items:center;gap:8px}
.mllist{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.mllist li{display:grid;grid-template-columns:28px 34px minmax(0,1fr) auto;gap:8px;align-items:center;background:rgba(255,255,255,.7);border-radius:12px;padding:4px 10px;color:#14213d}
.mllist li.me{outline:2.5px solid #14213d}
.mllist .lbav,.mllist .lbav .avatar{width:34px;height:34px}
.mlmedal{font-size:1.2rem}.mlname{font-weight:800;min-width:0;overflow-wrap:anywhere}.mlscore{font-weight:900}
.mlme{margin:0;font-weight:700}
.homelb{background:linear-gradient(135deg,#fff6c2,#ffe1f0);color:#14213d;border:3px solid #14213d}
.homelb .minilb{border-top:0;padding-top:0;margin:0}
.homelb .note{color:#4a5170}
.mlgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.mlcol{display:grid;gap:8px;align-content:start;min-width:0}
.mlinvite{background:rgba(255,255,255,.55);border:2px dashed rgba(20,33,61,.25);border-radius:14px;padding:10px 12px}
.mlinvite .btn{justify-self:start}
#chMini .mlgrid{grid-template-columns:1fr}
@media (min-width:900px){#chMini .mlgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.mlgrid{grid-template-columns:1fr}}

/* ---------- trainer page v2 ---------- */
.trtop .h-display{margin-bottom:2px}
.trtabs-wrap{position:sticky;top:calc(var(--hdrh,64px) - 1px);z-index:7;margin:6px -4px 0;padding:8px 4px;background:var(--bg)}
.trtabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;background:var(--surface);border:3px solid #14213d;border-radius:20px;padding:5px;box-shadow:0 4px 0 #14213d}
.trtabs [role=tab]{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:6px 8px;border:0;border-radius:14px;background:transparent;color:var(--ink);font:900 1rem var(--f-body,inherit);cursor:pointer;transition:background .15s}
.trtabs [role=tab]:hover{background:var(--surface-2)}
.trtabs [role=tab][aria-selected=true]{background:var(--yellow);color:#14213d;box-shadow:inset 0 0 0 2.5px #14213d}
.trtabs [role=tab]:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
.trtabs .ti{font-size:1.3rem;line-height:1}
.trtabs .tn{font-size:max(.72rem,12px);background:#14213d;color:#fff;border-radius:99px;padding:1px 7px;min-width:1.6em;text-align:center}
.trtabs .tn:empty{display:none}
.trpane{display:grid;gap:18px;margin-top:10px}
.trpane[hidden]{display:none}
.collx{display:grid;gap:12px}
.cxhead{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.seg{display:inline-flex;border:2.5px solid #14213d;border-radius:99px;overflow:hidden;background:var(--surface)}
.seg button{border:0;background:transparent;font:900 .9rem inherit;color:var(--ink);padding:8px 14px;min-height:42px;cursor:pointer}
.seg button+button{border-left:2.5px solid #14213d}
.seg button[aria-pressed=true]{background:#14213d;color:#fff}
.cxsearch{display:flex;align-items:center;gap:8px;border:3px solid #14213d;border-radius:16px;background:var(--surface);padding:0 12px;min-height:54px}
.cxsearch:focus-within{box-shadow:0 0 0 3px var(--yellow)}
.cxsearch .input{border:0!important;box-shadow:none!important;background:transparent!important;flex:1;min-width:0;font-size:1.1rem;font-weight:800;padding:12px 0;outline:none}
.cxglass{font-size:1.2rem}
.cxchips{display:flex;flex-wrap:wrap;gap:8px}
.cxchip{border:2.5px solid #14213d;border-radius:99px;background:var(--surface);color:var(--ink);font:900 .95rem inherit;padding:8px 14px;min-height:44px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.cxchip b{font-size:.8rem;background:var(--surface-2);border-radius:99px;padding:1px 8px}
.cxchip[aria-pressed=true]{background:#14213d;color:#fff}
.cxchip[aria-pressed=true] b{background:var(--yellow);color:#14213d}
.cxchip:focus-visible,.seg button:focus-visible,.tyt:focus-visible,.rec:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
.cxsel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.cxsel .field{min-width:0}
.cxsel .select{width:100%;min-height:46px}
.cxactive{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-weight:800}
.cxactive:empty{display:none}
.cxgrp{grid-column:1/-1;display:flex;align-items:center;gap:10px;margin:10px 0 0;padding-bottom:6px;border-bottom:2.5px dashed var(--line);font-size:1.05rem;font-weight:900}
.cxgrp:first-child{margin-top:0}
.cxgrp small{font-size:.8rem;background:var(--surface-2);border-radius:99px;padding:1px 9px;color:var(--muted,#5a6185)}
.cxempty{grid-column:1/-1;display:grid;gap:8px;justify-items:center;text-align:center}
#trMons .trtile{position:relative;background:linear-gradient(180deg,color-mix(in srgb,var(--tc) 16%,var(--surface)) 0%,var(--surface) 70%)}
#trMons .shmark{position:absolute;top:6px;right:8px;color:var(--gold,#e0a400);font-weight:900}
#trMons .fvmark{position:absolute;top:5px;left:7px;font-size:.9rem}
#trMons .trtile.cur .fvmark{top:26px}
#trMons.sm{grid-template-columns:repeat(auto-fill,minmax(74px,1fr));gap:8px}
#trMons .trtile.sm{padding:6px 4px 4px;gap:0;min-height:0;border-radius:14px}
#trMons .trtile.sm .pic{width:100%;max-width:64px;margin:0 auto}
#trMons .trtile.sm .tl{position:absolute;bottom:3px;right:5px;font-size:max(.72rem,12px);font-weight:900;background:#14213d;color:#fff;border-radius:99px;padding:0 6px}
#trMons .trtile.sm .sdot{position:absolute;top:2px;left:4px;font-size:.8rem}
#trMons .trtile.sm.cur{box-shadow:0 0 0 3px var(--yellow),0 0 0 5px #14213d}
.dpx{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;align-items:center;margin-bottom:14px}
.dpring{--p:0;width:120px;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--blue) calc(var(--p)*1%),var(--surface-2) 0);border:3px solid #14213d}
.dpring>div{width:86px;aspect-ratio:1;border-radius:50%;background:var(--surface);border:3px solid #14213d;display:flex;flex-direction:column;align-items:center;justify-content:center}
.dpring b{font-size:1.45rem;line-height:1}
.dpring small{font-size:max(.7rem,12px);font-weight:800;opacity:.75}
.dpx .note{margin:4px 0 0}
.dptip{background:var(--surface-2);border-radius:12px;padding:6px 10px;display:inline-block}
.typegrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:8px;margin-top:12px}
.tyt{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 8px;text-align:left;border:2.5px solid #14213d;border-radius:14px;padding:9px 11px;background:color-mix(in srgb,var(--tc) 22%,var(--surface));color:var(--ink);cursor:pointer;min-height:56px;font:inherit}
.tyt b{font-weight:900}
.tyt span{font-weight:900}
.tyt small{opacity:.65;font-weight:800}
.tyt i{grid-column:1/-1;height:8px;border-radius:99px;background:rgba(20,33,61,.12);overflow:hidden;display:block}
.tyt i em{display:block;height:100%;background:var(--tc);border-radius:99px}
.tyt.none{opacity:.6}
.tyt:hover{transform:translateY(-1px)}
.recs{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.rec{display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center;border:2.5px solid #14213d;border-radius:16px;padding:10px 8px;background:linear-gradient(180deg,color-mix(in srgb,var(--tc) 18%,var(--surface)) 0%,var(--surface) 75%);color:var(--ink);cursor:pointer;font:inherit}
.rec .pic{width:84px}
.rec .rlab{font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.05em}
.rec b{font-size:1rem}
.rec .rval{font-size:.85rem;font-weight:800;opacity:.8}
.rec .rbig{flex:1;display:grid;place-items:center;min-height:84px}
.rec .rbig .chip{font-size:1.1rem;padding:6px 14px}
.rec:hover{transform:translateY(-2px)}
#regions{margin-top:4px}
.yours{margin-top:10px;border:2.5px solid #14213d;border-radius:16px;padding:10px 12px;background:var(--surface-2);display:grid;gap:8px}
.yhead{display:flex;justify-content:space-between;align-items:center;gap:8px}
.ygrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.ygrid div{background:var(--surface);border-radius:10px;padding:6px 8px;font-size:max(.72rem,12px);font-weight:900;text-transform:uppercase;letter-spacing:.05em;opacity:.95}
.ygrid b{display:block;font-size:1.05rem;text-transform:none;letter-spacing:0}
.ybars{display:grid;grid-template-columns:auto 1fr;gap:6px 10px;align-items:center;font-size:.78rem;font-weight:900}
.favbtn.on{background:#ffe3ea!important;border-color:#d6336c!important;color:#a3123f!important}
.evoall{margin-top:10px}
@media (max-width:640px){
  .trtabs-wrap{margin:4px -16px 0;padding:6px 10px}
  .trtabs{gap:3px;padding:4px;border-radius:18px}
  .trtabs [role=tab]{flex-direction:column;gap:2px;min-height:56px;padding:5px 2px;font-size:max(.74rem,12px)}
  .trtabs .ti{font-size:1.25rem}
  .trtabs .tn{position:absolute;top:2px;right:2px;font-size:max(.62rem,12px);padding:0 5px}
  .cxsel{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cxsel .field:last-child{grid-column:1/-1}
  .cxchip{font-size:.88rem;padding:7px 12px}
  .dpx{grid-template-columns:96px minmax(0,1fr);gap:12px}
  .dpring{width:96px}.dpring>div{width:68px}.dpring b{font-size:1.15rem}
  .typegrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .recs{grid-template-columns:repeat(2,minmax(0,1fr))}
  #trMons.sm{grid-template-columns:repeat(auto-fill,minmax(66px,1fr));gap:6px}
  #tcard .tc-side{display:none}
  #tcard .tc-big{grid-template-columns:auto minmax(0,1fr);gap:10px}
  #tcard .tc-ring{width:92px;margin:0}
  #tcard .tc-ring>div{width:68px}
  #tcard .tc-ring b{font-size:1.15rem}
  #tcard .tc-nums{gap:6px}
  #tcard .tc-nums div{padding:6px 8px;font-size:max(.62rem,12px)}
  #tcard .tc-nums b{font-size:1.1rem}
  #tcard .tc-main{padding:16px 14px;gap:10px}
  #tcard .tc-lv small{display:none}
}

.tyt{grid-template-columns:1fr;gap:3px}
@media (max-width:640px){
  #trMons:not(.sm){grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  #trMons:not(.sm) .trtile{padding:6px 4px 8px}
  #trMons:not(.sm) .trtile .pic{width:64px}
  #trMons:not(.sm) .trtile b{font-size:.82rem;line-height:1.15;word-break:break-word}
  #trMons .ptag{font-size:.6rem}
  #trCount{display:none}
  .cxhead{flex-wrap:nowrap}
  .seg button{padding:6px 10px;min-height:40px;font-size:.82rem}
  .cxchips{flex-wrap:nowrap;overflow-x:auto;margin:0 -16px;padding:2px 16px 6px;scroll-snap-type:x proximity;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent)}
  .cxchips::-webkit-scrollbar{display:none}
  .cxchip{flex:none;scroll-snap-align:start}
  .cxsel{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  .cxsel .field:last-child{grid-column:auto}
  .cxsel .select{font-size:.85rem;padding-left:8px;padding-right:22px}
  .cxsearch{min-height:50px}
  #tcard .tc-case,#tcard .tc-since,#tcard .tc-id{display:none}
  #tcard .tc-who{grid-template-columns:74px minmax(0,1fr);gap:12px}
  #tcard .tc-acts{margin-top:2px}
  #tcard .tc-acts .btn{padding:6px 12px;min-height:40px;font-size:.85rem}
}

.yhead{flex-wrap:wrap}
@media (max-width:640px){.cxsel .select{font-size:.8rem;padding:8px 18px 8px 7px;background-position:right 5px center;min-height:44px}.cxsel .field{font-size:max(.68rem,12px)}}
.mprog{display:block;width:80%;height:7px;border-radius:99px;background:var(--surface-2);overflow:hidden;margin:4px auto 0}.mprog i{display:block;height:100%;background:var(--blue);border-radius:99px}
.collx.noq .cxsearch,.collx.noq .cxchips,.collx.noq .cxsel,.collx.noq .seg{display:none}

.anydev{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0}
.adcard{border:2.5px solid #14213d;border-radius:18px;padding:12px;background:var(--surface-2);display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}
.adcard .adh{font-size:1.05rem;font-weight:900}
.adcard small{font-size:.85rem;font-weight:700;line-height:1.35;opacity:.85}
.adcard .codebox{margin:0;width:100%}
.qrbox{width:min(200px,100%);aspect-ratio:1;display:grid;place-items:center;background:#fff;border-radius:12px;border:2px solid #14213d;overflow:hidden}
.qrsvg{width:100%;height:100%;display:block}
.incode{display:grid;gap:10px;margin-top:12px}
.incode .btn.big{font-size:1.15rem;min-height:56px;width:100%}
@media (max-width:560px){.anydev{grid-template-columns:1fr}.qrbox{width:170px}}
.adcard .codebox b{font-size:clamp(1.3rem,3.2vw,1.7rem);white-space:nowrap;letter-spacing:.06em}

/* journey + tower */
.travel{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;border:3px solid #14213d;border-radius:18px;padding:12px 14px;margin-bottom:14px;background:linear-gradient(135deg,#fff3b0,#ffe066);color:#14213d;box-shadow:0 4px 0 #14213d}
.travel .tvi{font-size:2rem}
.travel b{display:block;font-size:1.1rem}
.travel small{display:block;font-weight:700;opacity:.85}
.travel.done{grid-template-columns:auto 1fr}
@media (max-width:560px){.travel{grid-template-columns:auto minmax(0,1fr)}.travel .btn{grid-column:1/-1}}
.stamps{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.stamp{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;min-height:96px;padding:12px;border:3px dashed var(--sc);border-radius:16px;background:color-mix(in srgb,var(--sc) 12%,var(--surface));color:var(--ink);cursor:pointer;font:inherit}
.stamp .sn{font-weight:900;font-size:1.1rem}
.stamp .sg{font-size:max(.72rem,12px);font-weight:900;text-transform:uppercase;letter-spacing:.06em;opacity:.7}
.stamp .sb{margin-top:auto;font-weight:900}
.stamp .sc{position:absolute;top:8px;right:10px;font-size:1.4rem}
.stamp .sh{font-size:.75rem;font-weight:900;background:#14213d;color:#fff;border-radius:99px;padding:1px 8px;margin-top:4px}
.stamp.champ{border-style:solid;box-shadow:0 3px 0 var(--sc)}
.stamp.cur{outline:3px solid var(--yellow);outline-offset:2px}
.stamp.locked{opacity:.55;border-color:var(--line);background:var(--surface-2);cursor:default}
.stamp:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
@media (max-width:560px){.stamps{grid-template-columns:repeat(2,minmax(0,1fr))}}
.travelwelcome{text-align:center;display:grid;gap:10px;justify-items:center}
.travelwelcome .h-display{margin:0;color:var(--blue)}
.travelwelcome .lede{margin:0}
.twlist{list-style:none;padding:0;margin:4px 0;display:grid;gap:8px;text-align:left;max-width:440px}
.twlist li{background:var(--surface-2);border-radius:12px;padding:8px 12px;font-weight:700}
.towerpanel .twhead{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:center}
.towerpanel .twi{font-size:2.4rem;width:58px;height:58px;display:grid;place-items:center;border-radius:16px;background:linear-gradient(180deg,#b9c3ff,#6f7fe8);border:3px solid #14213d}
.towerpanel .h2{margin:0}
.towerpanel .note{margin:2px 0 0}
.twstats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0}
.twstats div{background:var(--surface-2);border-radius:12px;padding:8px 10px;font-size:max(.72rem,12px);font-weight:900;text-transform:uppercase;letter-spacing:.05em}
.twstats b{display:block;font-size:1.4rem;letter-spacing:0}
.towerpanel.locked .twi{filter:grayscale(1);opacity:.7}
.gav.tw{font-size:2.6rem;display:grid;place-items:center;background:linear-gradient(180deg,#b9c3ff,#6f7fe8)}
.lbgame{margin-bottom:8px;width:100%;display:grid;grid-template-columns:repeat(3,1fr);border-radius:14px}
.lbgame button{line-height:1.15;padding:6px 6px}
.seg.lbgame button+button{border-left:2.5px solid #14213d}
.lb .lbgame{width:100%}.lb>.h2{margin:0 48px 4px 0}.lbpick{margin:0 0 6px}
.lbgame button{font-size:.85rem}

/* catch page hub */
.hubtitle{margin:0 0 2px}
.catchside{display:flex;flex-direction:column;gap:10px}
.hub{border:3px solid #14213d;border-radius:18px;background:var(--surface);box-shadow:0 4px 0 #14213d;overflow:hidden}
.hub[hidden]{display:none}
.hub>summary{list-style:none;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:10px 12px;min-height:64px;cursor:pointer;user-select:none}
.hub>summary::-webkit-details-marker{display:none}
.hub>summary:focus-visible{outline:3px solid var(--blue);outline-offset:-3px}
.hub>summary:hover{background:var(--surface-2)}
.hub .hi{font-size:1.6rem;width:44px;height:44px;display:grid;place-items:center;border-radius:12px;background:var(--surface-2)}
.hub .ht{min-width:0;display:flex;flex-direction:column}
.hub .ht b{font-size:1.05rem;font-weight:900;line-height:1.2}
.hub .ht small{font-size:.85rem;font-weight:700;opacity:.8;line-height:1.3}
.hub .hpill:empty{display:none}
.hub .hpill{font-size:.8rem;font-weight:900;border-radius:99px;padding:4px 10px;background:var(--surface-2);white-space:nowrap}
.hub .hpill.go{background:var(--red,#e3350d);color:#fff;animation:hubpulse 1.6s ease-in-out infinite}
.hub .hpill.ok{background:#d9f2df;color:#14532d}
.hub .hc{font-size:1.5rem;font-weight:900;transition:transform .2s;opacity:.6}
.hub[open] .hc{transform:rotate(90deg)}
.hub[open]>summary{border-bottom:2.5px dashed var(--line);background:var(--surface-2)}
.hubbody{padding:12px}
.hubbody>.panel{border:0!important;box-shadow:none!important;padding:0!important;margin:0!important;background:transparent!important}
.hubbody .evopanel>.h2,.hubbody .evopanel>.note:first-of-type,#partnerPanel>.h2,.hubbody .twhead{display:none}
.hubbody #evoSlot+.evopanel,.hubbody .evopanel{border:0;box-shadow:none;padding:0;margin:0;background:transparent}
@keyframes hubpulse{50%{transform:scale(1.08)}}
@media (prefers-reduced-motion:reduce){.hub .hpill.go{animation:none}}
/* simpler explore bar */
.exhead{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.exhead .nm{margin:0}
.exchips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.exchip{font-size:.82rem;font-weight:800;background:var(--surface-2);border-radius:99px;padding:3px 10px}
.exchip.hot{background:#fff1b8;color:#7a4b00}
.mapdet{margin-top:10px;border:2.5px solid var(--line);border-radius:16px;overflow:hidden;flex:none}
.encbar>.encrow,.encbar>.exchips{flex:none}
.mapsum{all:unset;box-sizing:border-box;width:100%;cursor:pointer;padding:10px 12px;font-weight:900;display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:48px}
.mapsum:hover{background:var(--surface-2)}
.mapsum:focus-visible{outline:3px solid var(--blue);outline-offset:-3px}
.mapdet.open .mc{transform:rotate(90deg)}
.mapdet .mc{transition:transform .2s;font-size:1.3rem}
.mapdet .rmap{width:auto;margin:0 10px 10px}
.encbar>.mapdet{width:100%;box-sizing:border-box}
@media (max-width:640px){#view-catch>div:first-child .lede{display:none}#view-catch>div:first-child .h-display{font-size:2rem;margin-bottom:4px}}

/* livelier grass */
.tuft .peek{position:absolute;left:50%;bottom:38%;width:62%;translate:-50% 0;z-index:-1;pointer-events:none;animation:peekUp 3.6s var(--pd,0s) ease-in-out infinite}
.tuft .peek img{width:100%;display:block;filter:brightness(0) drop-shadow(0 0 2px rgba(255,255,255,.35));opacity:.92}
.tuft{isolation:isolate}
@keyframes peekUp{0%,55%,100%{transform:translateY(55%);opacity:0}62%{opacity:1}70%,82%{transform:translateY(-6%);opacity:1}76%{transform:translateY(-12%) rotate(-4deg)}90%{transform:translateY(55%);opacity:0}}
.tuft.reveal .peek{animation:peekPop .6s ease-out forwards}
.tuft.reveal .peek img{filter:brightness(0) drop-shadow(0 0 8px #fff)}
@keyframes peekPop{0%{transform:translateY(40%);opacity:1}60%{transform:translateY(-55%) scale(1.25);opacity:1}100%{transform:translateY(-70%) scale(1.4);opacity:0}}
.tuft.k-peek::after{content:"?"!important}
.tuft.k-sparkle{--tuft:#e9c64a}
.tuft.k-sparkle svg{filter:drop-shadow(0 0 8px #fff6a8) drop-shadow(0 3px 0 rgba(0,0,0,.22))}
.tuft.k-sparkle::after{content:"✦"!important;background:#ffd400!important;color:#14213d!important}
.tuft .sparks i{position:absolute;color:#fff7b0;font-style:normal;font-size:.9rem;text-shadow:0 0 6px #fff;animation:sparkT 1.4s ease-in-out infinite;pointer-events:none}
.tuft .sparks i:nth-child(1){left:-6%;top:10%}.tuft .sparks i:nth-child(2){right:-4%;top:-10%;animation-delay:.45s}.tuft .sparks i:nth-child(3){left:44%;top:-28%;animation-delay:.9s}
@keyframes sparkT{0%,100%{opacity:0;transform:scale(.4)}50%{opacity:1;transform:scale(1.2)}}
.tuft.k-berry{--tuft:#2f7d3a}
.tuft .berries{position:absolute;inset:0;pointer-events:none}
.tuft .berries i{position:absolute;width:16%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 35% 35%,#ff9db0,#e0245e 60%,#8f0f37);border:1.5px solid #14213d}
.tuft .berries i:nth-child(1){left:22%;top:38%}.tuft .berries i:nth-child(2){left:48%;top:24%}.tuft .berries i:nth-child(3){left:66%;top:46%}
.tuft .glint{position:absolute;left:58%;top:42%;color:#fff;font-size:1rem;text-shadow:0 0 8px #fff,0 0 2px #ffd400;animation:sparkT 1.8s ease-in-out infinite;pointer-events:none}
.mnode .oi{font-style:normal}
.exchip.chain{background:#e6e9ff;color:#2b3aa8}
.linkchip{border:2px solid #b07a00;cursor:pointer;font:inherit;font-size:.82rem;font-weight:800}
.linkchip:disabled{opacity:.6;cursor:default}
@media (prefers-reduced-motion:reduce){.tuft .peek{animation:none;transform:translateY(10%);opacity:.9}.tuft .sparks i,.tuft .glint{animation:none;opacity:1}}

/* card packs */
.cpgrid{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:20px;align-items:start}
@media (max-width:860px){.cpgrid{grid-template-columns:1fr}}
.packpanel{display:grid;gap:12px;justify-items:stretch}
.pkcount{display:flex;align-items:baseline;gap:10px;font-weight:900;font-size:1.1rem}
.pkbig{font-size:2.6rem;line-height:1;color:var(--blue)}
.packpanel .btn.big{font-size:1.15rem;min-height:56px}
.packpanel .note.ok{margin:0;color:#1d6b35;font-weight:800}
.packpanel .h3{margin:6px 0 0;font-size:1rem}
.boost{all:unset;box-sizing:border-box;position:relative;justify-self:center;display:flex;flex-direction:column;align-items:center;justify-content:space-between;width:min(240px,70vw);aspect-ratio:9/16;cursor:pointer;color:#fff;text-align:center;padding:9% 8% 10%;border-radius:6px;isolation:isolate;
  background:linear-gradient(100deg,rgba(0,0,0,.28) 0%,rgba(255,255,255,.18) 18%,rgba(255,255,255,0) 32%,rgba(0,0,0,0) 70%,rgba(0,0,0,.32) 100%),linear-gradient(170deg,color-mix(in srgb,var(--sc) 70%,#fff) 0%,var(--sc) 40%,color-mix(in srgb,var(--sc) 55%,#000) 100%);
  box-shadow:0 18px 30px rgba(0,0,0,.35),inset 0 0 0 2px rgba(255,255,255,.25);transition:transform .25s;transform:perspective(900px) rotateY(-8deg) rotateX(3deg)}
.boost.mini{width:160px}
.boost:hover:not([disabled]){transform:perspective(900px) rotateY(6deg) rotateX(2deg) translateY(-4px)}
.boost[disabled]{filter:grayscale(.7);opacity:.6;cursor:default}
.boost .bcrimp{position:absolute;left:0;right:0;height:7%;z-index:3;background:repeating-linear-gradient(90deg,rgba(255,255,255,.5) 0 2px,rgba(0,0,0,.18) 2px 5px),linear-gradient(180deg,color-mix(in srgb,var(--sc) 60%,#fff),color-mix(in srgb,var(--sc) 70%,#000))}
.boost .bcrimp.top{top:-1px;-webkit-mask:linear-gradient(#000 0 0) top/100% 75% no-repeat,conic-gradient(from -45deg at 50% 100%,#000 90deg,#0000 0) bottom/10px 25% repeat-x;mask:linear-gradient(#000 0 0) top/100% 75% no-repeat,conic-gradient(from -45deg at 50% 100%,#000 90deg,#0000 0) bottom/10px 25% repeat-x}
.boost .bcrimp.bot{bottom:-1px;-webkit-mask:linear-gradient(#000 0 0) bottom/100% 75% no-repeat,conic-gradient(from 135deg at 50% 0,#000 90deg,#0000 0) top/10px 25% repeat-x;mask:linear-gradient(#000 0 0) bottom/100% 75% no-repeat,conic-gradient(from 135deg at 50% 0,#000 90deg,#0000 0) top/10px 25% repeat-x}
.boost .bholo{position:absolute;inset:0;z-index:0;mix-blend-mode:overlay;opacity:.55;border-radius:inherit;background:linear-gradient(125deg,#ff7ac8,#ffe36e,#7dffcf,#7ab8ff,#d58bff,#ff7ac8);background-size:300% 300%;animation:holo 6s ease-in-out infinite}
.boost .bfoil{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden;border-radius:inherit;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.65) 42%,transparent 54%);background-size:250% 100%;animation:foil2 3s ease-in-out infinite}
@keyframes foil2{0%{background-position:120% 0}60%,100%{background-position:-60% 0}}
@keyframes holo{50%{background-position:100% 100%}}
.boost .blogo{position:relative;z-index:1;width:86%;max-height:20%;object-fit:contain;filter:drop-shadow(0 2px 0 rgba(0,0,0,.45)) drop-shadow(0 0 10px rgba(255,255,255,.35));margin-top:4%}
.boost .bmon{position:relative;z-index:1;width:100%;flex:1;display:grid;place-items:center;margin:4% 0}
.boost .bmon::before{content:"";position:absolute;width:78%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.75),rgba(255,255,255,0) 68%)}
.boost .bmon img{position:relative;width:92%;max-height:100%;object-fit:contain;filter:drop-shadow(0 6px 6px rgba(0,0,0,.35))}
.boost .bfoot{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:2px;background:rgba(10,15,45,.55);border-radius:10px;padding:5px 10px;width:92%;box-sizing:border-box}
.boost .bname{font-family:"Luckiest Guy",var(--f-display);font-size:1.15rem;letter-spacing:.03em;line-height:1.1;text-shadow:0 2px 0 rgba(0,0,0,.4)}
.boost.mini .bname{font-size:.85rem}
.boost .bsub{font-size:.62rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase;opacity:.9}
.boost.mini .bsub{font-size:.5rem}
.boost::before{content:none}
.packdlg{border:0;padding:0;background:transparent;max-width:none;max-height:none;width:100vw;height:100dvh;margin:0}
.packdlg::backdrop{background:radial-gradient(circle at 50% 40%,#2b3aa8,#0b1030 70%)}
.pkwrap{position:relative;width:100%;height:100%;display:grid;place-items:center;overflow:auto;padding:16px;box-sizing:border-box}
.pkwrap>.closex{position:fixed;top:14px;right:14px;z-index:5}
.pkstage{display:flex;flex-direction:column;align-items:center;gap:14px;width:100%;max-width:900px}
.pkhint{color:#fff;font-weight:900;font-size:1.1rem;text-align:center;margin:0;text-shadow:0 2px 0 rgba(0,0,0,.4)}
.pkstage .boost{width:min(260px,62vw)}
.boost.torn{animation:tear .75s ease-in forwards}
@keyframes tear{30%{transform:rotate(-4deg) scale(1.05)}55%{transform:rotate(4deg) scale(1.08)}100%{transform:translateY(-30%) scale(.6);opacity:0}}
.pcard{all:unset;cursor:pointer;position:relative;width:min(300px,72vw);aspect-ratio:63/88;perspective:1200px}
.pcin{position:absolute;inset:0;transform-style:preserve-3d;animation:cflip .6s cubic-bezier(.3,1.3,.5,1) both}
@keyframes cflip{from{transform:rotateY(180deg) translateY(30px) scale(.85)}to{transform:none}}
.pcback,.pcfront{position:absolute;inset:0;border-radius:4.5%/3.3%;backface-visibility:hidden;overflow:hidden;box-shadow:0 14px 34px rgba(0,0,0,.45)}
.pcback{transform:rotateY(180deg);background:radial-gradient(circle at 50% 50%,#ffde00 0 12%,#e3350d 12.5% 30%,#2a5bd7 31% 100%);border:8px solid #2b5fd9}
.pcfront img{width:100%;height:100%;object-fit:cover;display:block}
.shine{position:absolute;inset:0;pointer-events:none;mix-blend-mode:color-dodge;opacity:0}
.t3 .shine,.rev .shine{opacity:.5;background:linear-gradient(115deg,transparent 20%,rgba(255,255,255,.7) 30%,transparent 40%,transparent 60%,rgba(255,255,255,.5) 70%,transparent 80%);background-size:250% 100%;animation:shine 3s linear infinite}
.t4 .shine{opacity:.6;background:linear-gradient(115deg,rgba(255,0,128,.35),rgba(255,230,0,.35),rgba(0,255,170,.35),rgba(0,140,255,.35),rgba(200,0,255,.35));background-size:300% 100%;animation:shine 3s linear infinite}
.t5 .shine{opacity:.75;background:linear-gradient(115deg,rgba(255,0,128,.45),rgba(255,230,0,.45),rgba(0,255,170,.45),rgba(0,140,255,.45),rgba(200,0,255,.45),rgba(255,0,128,.45));background-size:300% 100%;animation:shine 2s linear infinite}
@keyframes shine{from{background-position:0 0}to{background-position:250% 0}}
.pcard.t4 .pcfront,.pcard.t5 .pcfront{box-shadow:0 0 0 3px #ffd400,0 0 40px 8px rgba(255,222,0,.65),0 14px 34px rgba(0,0,0,.45)}
.pcard.t3 .pcfront{box-shadow:0 0 30px 4px rgba(160,200,255,.6),0 14px 34px rgba(0,0,0,.45)}
.pcnew{position:absolute;top:-10px;right:-10px;background:#e3350d;color:#fff;font-weight:900;font-size:.85rem;padding:4px 10px;border-radius:99px;border:2.5px solid #fff;z-index:3;transform:rotate(8deg)}
.pkmeta{display:flex;flex-direction:column;align-items:center;gap:4px;color:#fff;text-align:center}
.pkmeta b{font-size:1.4rem}
.pkmeta .num{opacity:.75;font-weight:800;font-size:.85rem}
.tier{font-size:.8rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em;border-radius:99px;padding:3px 10px;background:#e4e7f8;color:#14213d}
.tier.t2{background:#cfe0ff}.tier.t3{background:#bfe9ff}.tier.t4{background:#ffe066}.tier.t5{background:linear-gradient(90deg,#ff9ac8,#ffe066,#8ff0c8,#9cc8ff);color:#14213d}
.pksum{background:var(--surface);border-radius:22px;padding:18px;border:3px solid #14213d;width:100%;box-sizing:border-box;display:grid;gap:14px}
.pksum .h2{margin:0;text-align:center}
.pkgrid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
@media (max-width:600px){.pkgrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.pkacts{justify-content:center}
.mcard{all:unset;box-sizing:border-box;position:relative;cursor:pointer;aspect-ratio:63/88;border-radius:6px;overflow:hidden;background:var(--surface-2);display:block;box-shadow:0 2px 6px rgba(0,0,0,.18)}
.mcard img{width:100%;height:100%;object-fit:cover;display:block}
.mcard .pcnew{top:4px;right:4px;font-size:.62rem;padding:1px 6px;transform:none;border-width:1.5px}
.mcard .cnt{position:absolute;bottom:4px;right:4px;background:#14213d;color:#fff;font-size:max(.72rem,12px);border-radius:99px;padding:1px 7px}
.mcard.empty{cursor:default;border:2px dashed var(--line);box-shadow:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--muted,#5a6185);font-weight:900}
.mcard.empty small{font-size:.6rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;opacity:.8;text-align:center}
.mcard:focus-visible,.setbtn:focus-visible,.boost:focus-visible,.pcard:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}
.binder{display:grid;gap:12px}
.bprog{height:12px;border-radius:99px;background:var(--surface-2);overflow:hidden;border:2px solid #14213d}
.bprog i{display:block;height:100%;background:linear-gradient(90deg,var(--blue),#8fa0ff)}
.bgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}
@media (max-width:560px){.bgrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.setpick{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.setbtn{all:unset;box-sizing:border-box;cursor:pointer;display:grid;grid-template-columns:52px minmax(0,1fr);gap:8px;align-items:center;padding:8px;border:2.5px solid var(--line);border-radius:14px;background:var(--surface);font-weight:900;font-size:.88rem;line-height:1.2}
.setbtn img{width:52px;height:30px;object-fit:contain}
.setbtn small{display:block;font-weight:800;font-size:max(.72rem,12px);opacity:.75}
.setbtn.on{border-color:#14213d;background:color-mix(in srgb,var(--sc) 18%,var(--surface));box-shadow:0 3px 0 #14213d}
.spare{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;background:var(--surface-2);border-radius:12px;padding:8px 12px;font-weight:800}
.pkmore summary{cursor:pointer;font-weight:900;color:var(--blue)}
.pkmore ul{margin:8px 0 0;padding-left:4px;list-style:none;display:grid;gap:4px;font-weight:700}
.czoom{border:0;background:transparent;padding:0;max-width:none;max-height:none}
.czoom::backdrop{background:rgba(10,14,40,.85)}
.czin{display:flex;flex-direction:column;align-items:center;gap:12px;padding:16px}
.czin img{width:min(420px,86vw);max-height:72dvh;object-fit:contain;border-radius:14px;box-shadow:0 18px 40px rgba(0,0,0,.5)}
.czmeta{display:flex;flex-direction:column;align-items:center;gap:6px;color:#fff;text-align:center}
.czmeta b{font-size:1.3rem}
.czin .closex{align-self:flex-end}
.playitem.pi-cards{background:linear-gradient(135deg,#fff3b0,#ffd6e7);border-color:#14213d}.playitem.pi-cards .ptx b{color:#14213d!important}.playitem.pi-cards .ptx>span{color:#3d4466!important}
@media (prefers-reduced-motion:reduce){.boost .bholo,.boost .bfoil,.shine,.pcin,.boost.torn{animation:none!important}}

.boost .bholo{opacity:.28}
.boost .bmon{margin:0 0 2%}
.boost .bmon::before{width:120%;aspect-ratio:1;border-radius:50%;background:repeating-conic-gradient(from 0deg,rgba(255,255,255,.38) 0 10deg,rgba(255,255,255,0) 10deg 20deg);-webkit-mask:radial-gradient(circle,#000 30%,transparent 70%);mask:radial-gradient(circle,#000 30%,transparent 70%);animation:rays 20s linear infinite}
.boost .bmon::after{content:"";position:absolute;width:62%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.9),rgba(255,255,255,0) 70%);z-index:-1}
@keyframes rays{to{transform:rotate(360deg)}}
.boost .bmon img{width:118%;max-width:118%;filter:drop-shadow(0 0 2px #fff) drop-shadow(0 0 2px #fff) drop-shadow(0 8px 8px rgba(0,0,0,.4))}
.boost .bfoot{background:none;padding:0;gap:4px}
.boost .bname{font-size:clamp(1rem,2.2vw + .6rem,1.6rem);color:#ffd400;-webkit-text-stroke:2px #2a3a9e;paint-order:stroke fill;text-shadow:0 3px 0 #1a2470,0 0 12px rgba(0,0,0,.25)}
.boost.mini .bname{font-size:1rem;-webkit-text-stroke:1.5px #2a3a9e}
.boost .bsub{background:#fff;color:#14213d;border-radius:99px;padding:2px 9px;border:2px solid #14213d;opacity:1}
@media (prefers-reduced-motion:reduce){.boost .bmon::before{animation:none}}
.boost .bsub{white-space:nowrap}

/* pack artwork v4: full-bleed scenes */
.boost{padding:9% 6% 9%;justify-content:flex-start;overflow:hidden;background:#14213d}
.boost .bart{position:absolute;inset:0;z-index:0}
.boost .bscene{position:absolute;inset:0;width:100%;height:100%;display:block}
.boost .bmon{position:absolute;inset:0;z-index:1;pointer-events:none}
.boost .bmon img{position:absolute;max-width:none;filter:drop-shadow(0 0 2px #fff) drop-shadow(0 0 2px #fff) drop-shadow(0 10px 12px rgba(0,0,0,.45))}
.boost .bmon .bmain{width:150%;left:-18%;top:20%;z-index:3}
.boost .bmon .bside{width:95%;z-index:2;opacity:1}
.boost .bmon .bside.l{left:-52%;top:6%;transform:rotate(-6deg)}
.boost .bmon .bside.r{right:-50%;top:12%;transform:rotate(6deg) scaleX(-1)}
.boost .bholo{opacity:.18;z-index:4}
.boost .bfoil{z-index:5}
.boost .blogo{position:relative;z-index:6;margin-top:2%;width:84%;max-height:17%;filter:drop-shadow(0 2px 0 rgba(0,0,0,.6)) drop-shadow(0 0 8px rgba(0,0,0,.4))}
.boost .bburst{z-index:6;right:4%;top:auto;bottom:22%;width:25%}
.boost .bfoot{position:relative;z-index:6;margin-top:auto;background:linear-gradient(180deg,rgba(10,15,45,0),rgba(10,15,45,.75) 35%);width:calc(100% + 14%);margin-left:-7%;margin-right:-7%;margin-bottom:-9%;padding:14% 6% 12%;box-sizing:border-box;border-radius:0;gap:4px}
.boost .bname{font-size:clamp(1rem,2vw + .6rem,1.5rem)}
.boost .bsub{font-size:.5rem;letter-spacing:.1em}
.boost.mini .bsub{font-size:.36rem}
.boost::after{content:"";position:absolute;inset:0;z-index:5;pointer-events:none;border-radius:inherit;box-shadow:inset 0 0 0 2px rgba(255,255,255,.35),inset 8px 0 14px rgba(255,255,255,.18),inset -10px 0 16px rgba(0,0,0,.35)}
.boost .bburst{position:absolute;z-index:6;right:4%;bottom:24%;width:25%;aspect-ratio:1;display:grid;place-content:center;text-align:center;line-height:.9;font-size:.5rem;font-weight:900;text-transform:uppercase;color:#14213d;background:#ffd400;clip-path:polygon(50% 0,61% 13%,78% 7%,80% 24%,96% 30%,88% 45%,100% 58%,85% 66%,88% 84%,71% 84%,62% 100%,50% 89%,38% 100%,29% 84%,12% 84%,15% 66%,0 58%,12% 45%,4% 30%,20% 24%,22% 7%,39% 13%);transform:rotate(12deg)}
.boost .bburst b{display:block;font-family:"Luckiest Guy",var(--f-display);font-size:1.05rem;font-weight:400}
.boost.mini .bburst{font-size:.34rem}.boost.mini .bburst b{font-size:.75rem}
.boost .bfoot{position:absolute;left:0;right:0;bottom:0;margin:0;width:auto;padding:22% 6% 13%;background:linear-gradient(180deg,rgba(10,15,45,0) 0%,rgba(10,15,45,.55) 40%,rgba(10,15,45,.85) 100%)}

/* binders */
.cpgrid{grid-template-columns:minmax(260px,320px) minmax(0,1fr)}
@media (max-width:1000px){.cpgrid{grid-template-columns:1fr}}
.binderwrap{display:grid;gap:14px;min-width:0}
.shelfhead{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.shelfhead .h2{margin:0}
.shelf{display:flex;gap:10px;overflow-x:auto;padding:4px 2px 12px;scroll-snap-type:x proximity;background:linear-gradient(transparent calc(100% - 12px),#8a5a34 calc(100% - 12px),#6b4426);border-radius:0 0 6px 6px}
.bcover{all:unset;box-sizing:border-box;flex:none;scroll-snap-align:start;position:relative;width:118px;min-height:150px;padding:10px 8px 10px 16px;border-radius:6px 10px 10px 6px;cursor:pointer;color:#fff;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;
  background:radial-gradient(circle at 30% 20%,rgba(255,255,255,.18),transparent 55%),repeating-linear-gradient(45deg,rgba(255,255,255,.035) 0 2px,rgba(0,0,0,.035) 2px 4px),linear-gradient(160deg,color-mix(in srgb,var(--bc) 85%,#fff),color-mix(in srgb,var(--bc) 70%,#000));
  box-shadow:inset 0 0 0 2px rgba(0,0,0,.25),0 4px 0 rgba(0,0,0,.25);outline:2px dashed rgba(255,255,255,.35);outline-offset:-6px;transition:transform .15s}
.bcover:hover{transform:translateY(-3px)}
.bcover.on{transform:translateY(-6px);box-shadow:inset 0 0 0 2px rgba(0,0,0,.25),0 0 0 3px var(--yellow),0 6px 0 rgba(0,0,0,.25)}
.bcover .bspine{position:absolute;left:0;top:0;bottom:0;width:10px;border-radius:6px 0 0 6px;background:linear-gradient(90deg,rgba(0,0,0,.35),rgba(255,255,255,.15),rgba(0,0,0,.2))}
.bcover img{width:90%;height:36px;object-fit:contain;filter:drop-shadow(0 2px 0 rgba(0,0,0,.45))}
.bcover .ball{font-size:1.8rem;line-height:36px}
.bcover b{font-size:.82rem;line-height:1.15;text-shadow:0 1px 0 rgba(0,0,0,.4)}
.bcover small{font-size:.72rem;font-weight:900;margin-top:auto}
.bcover .bpr{width:100%;height:6px;border-radius:99px;background:rgba(0,0,0,.3);overflow:hidden}
.bcover .bpr i{display:block;height:100%;background:#ffd400}
.bcover:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}
.binderbook{border-radius:16px;padding:14px;color:#fff;
  background:radial-gradient(circle at 20% 10%,rgba(255,255,255,.15),transparent 50%),repeating-linear-gradient(45deg,rgba(255,255,255,.03) 0 2px,rgba(0,0,0,.04) 2px 4px),linear-gradient(160deg,color-mix(in srgb,var(--bc) 75%,#000),color-mix(in srgb,var(--bc) 45%,#000));
  box-shadow:0 10px 24px rgba(0,0,0,.3),inset 0 0 0 2px rgba(0,0,0,.3);outline:2px dashed rgba(255,255,255,.3);outline-offset:-7px}
.bkhead{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:4px 8px 12px}
.bkhead>div{display:flex;align-items:center;gap:10px}
.bkhead b{font-size:1.15rem;text-shadow:0 2px 0 rgba(0,0,0,.4)}
.bkhead .count{color:#fff;opacity:.9}
.bklogo{height:30px;max-width:110px;object-fit:contain}
.bkopen{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr);gap:0;perspective:1600px}
.bkpage{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;padding:12px;background:linear-gradient(90deg,#f4f1e8,#fbfaf5 15%,#fbfaf5 85%,#ece8dc);border-radius:6px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08),0 2px 0 rgba(0,0,0,.25)}
.bkopen>.bkpage:first-child{border-radius:8px 3px 3px 8px;box-shadow:inset -10px 0 14px -8px rgba(0,0,0,.25),0 2px 0 rgba(0,0,0,.25)}
.bkopen>.bkpage:last-child{border-radius:3px 8px 8px 3px;box-shadow:inset 10px 0 14px -8px rgba(0,0,0,.25),0 2px 0 rgba(0,0,0,.25);transform-origin:left center}
.bkrings{display:flex;flex-direction:column;justify-content:space-around;align-items:center;background:linear-gradient(90deg,rgba(0,0,0,.35),rgba(0,0,0,.15),rgba(0,0,0,.35));margin:6px 0;border-radius:4px}
.bkrings i{width:30px;height:16px;border-radius:99px;border:4px solid #c9ced8;box-shadow:inset 0 1px 0 #fff,0 2px 3px rgba(0,0,0,.4);background:linear-gradient(180deg,#eef1f6,#9aa2b1);-webkit-mask:radial-gradient(ellipse 9px 4px at 50% 50%,transparent 98%,#000);mask:radial-gradient(ellipse 9px 4px at 50% 50%,transparent 98%,#000)}
.bkopen:has(.bkrings.side){grid-template-columns:22px minmax(0,1fr)}
.bkrings.side{margin:6px 0;width:22px}
.bkrings.side i{width:22px;height:12px;border-width:3px}
.pocket{all:unset;box-sizing:border-box;position:relative;aspect-ratio:63/88;border-radius:4px;overflow:hidden;background:rgba(200,205,215,.25);box-shadow:inset 0 0 0 1px rgba(80,90,110,.25)}
.pocket::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(125deg,rgba(255,255,255,.55) 0%,rgba(255,255,255,0) 28%,rgba(255,255,255,0) 70%,rgba(255,255,255,.25) 100%);border:1px solid rgba(255,255,255,.7);border-radius:inherit}
.pocket.got{cursor:pointer}
.pocket .ctab{position:absolute;left:0;right:0;top:0;height:7px;background:var(--cc);box-shadow:0 1px 0 rgba(0,0,0,.35),inset 0 -1px 0 rgba(255,255,255,.3);z-index:2;pointer-events:none}
.pocket.got img{position:absolute;inset:3%;width:94%;height:94%;object-fit:cover;border-radius:3px}
.pocket.got:hover{transform:translateY(-2px)}
.pocket.got:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
.pocket .cnt{position:absolute;bottom:4px;right:4px;z-index:2;background:#14213d;color:#fff;font-size:.68rem;border-radius:99px;padding:1px 6px}
.pocket.miss{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:#9aa0b4;font-weight:900}
.pocket.miss small{font-size:.55rem;text-transform:uppercase;letter-spacing:.04em;text-align:center}
.pocket.blank{background:rgba(200,205,215,.12)}
.pocket .shine{inset:3%;border-radius:3px}
.bknav{display:flex;justify-content:center;align-items:center;gap:14px;margin-top:12px;font-weight:900}
.bknav .btn{min-width:56px;min-height:44px;font-size:1.1rem}
.bkjump{text-align:center;margin-top:6px}
.bkjump .linkbtn{color:#fff;text-decoration:underline}
.bkempty{background:#fbfaf5;color:#14213d;border-radius:8px;padding:30px 16px;text-align:center}
.bkopen.flipn>.bkpage:last-child{animation:pgN .45s ease-out}
.bkopen.flipp>.bkpage:first-child{transform-origin:right center;animation:pgP .45s ease-out}
.bkopen:has(.bkrings.side).flipn>.bkpage{animation:pgN .45s ease-out}
@keyframes pgN{from{transform:rotateY(-70deg);opacity:.4}to{transform:none;opacity:1}}
@keyframes pgP{from{transform:rotateY(70deg);opacity:.4}to{transform:none;opacity:1}}
@media (max-width:560px){.binderbook{padding:10px}.bkpage{gap:5px;padding:8px}.bcover{width:100px;min-height:136px}}
@media (prefers-reduced-motion:reduce){.bkopen>.bkpage{animation:none!important}}
.bkopen{grid-template-columns:minmax(0,1fr) 44px minmax(0,1fr)}.bkrings i{width:56px;height:22px;border-width:5px;position:relative;z-index:2;-webkit-mask:radial-gradient(ellipse 18px 6px at 50% 50%,transparent 98%,#000);mask:radial-gradient(ellipse 18px 6px at 50% 50%,transparent 98%,#000)}.bkrings.side i{width:34px;height:16px;border-width:4px;-webkit-mask:radial-gradient(ellipse 11px 4px at 50% 50%,transparent 98%,#000);mask:radial-gradient(ellipse 11px 4px at 50% 50%,transparent 98%,#000)}
/* harder grass: hot tufts only give a small shake now and then */
.tuft.hot{--tuft:var(--g1)}
.tuft.hot::after{display:none!important;content:none!important}
.tuft.hot svg{animation:tuftNudge 4.2s var(--pd,0s) ease-in-out infinite}
@keyframes tuftNudge{0%,84%,100%{transform:none}87%{transform:rotate(-6deg) translateX(-2px)}90%{transform:rotate(6deg) translateX(2px)}93%{transform:rotate(-4deg)}96%{transform:rotate(3deg)}}
.tuft.k-sparkle{--tuft:var(--g1)}
.tuft.k-sparkle svg{filter:drop-shadow(0 3px 0 rgba(0,0,0,.22))}
.tuft.k-sparkle::after{display:none!important;content:none!important}
.tuft .twinkle{position:absolute;left:55%;top:20%;color:#fff;font-size:.8rem;text-shadow:0 0 6px #fff,0 0 2px #ffd400;pointer-events:none;opacity:0;animation:twk 5.5s var(--pd,0s) ease-in-out infinite}
@keyframes twk{0%,88%,100%{opacity:0;transform:scale(.3)}93%{opacity:1;transform:scale(1.15)}}
@media (prefers-reduced-motion:reduce){.tuft.hot svg{animation:none}.tuft .twinkle{animation:none;opacity:.7}}
/* pack goals + pick a pack */
.cpgrid>*{min-width:0}
.binderwrap,.packpanel{grid-template-columns:minmax(0,1fr)}
.goalswrap{grid-column:1/-1}
.goalswrap .pgoals ul{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.setcur{all:unset;box-sizing:border-box;cursor:pointer;display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 10px;border:2.5px solid #14213d;border-radius:14px;background:color-mix(in srgb,var(--sc) 14%,var(--surface));font-weight:900;box-shadow:0 3px 0 #14213d;min-height:52px}
.setcur img{width:52px;height:30px;object-fit:contain}
.setcur small{display:block;font-size:max(.72rem,12px);font-weight:800;opacity:.7}
.setcur b{font-size:.85rem;color:var(--blue,#2a3eb1);white-space:nowrap}
.setcur:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}
@media (max-width:1000px){.packpanel{grid-template-columns:auto minmax(0,1fr);column-gap:16px;align-items:center}
.packpanel>*{grid-column:1/-1}
.packpanel>.pkcount{grid-column:2;grid-row:1}
.packpanel>.btn.big{grid-column:2;grid-row:2}
.packpanel>.setcur{grid-column:2;grid-row:3}
.packpanel>.boost.mini{grid-column:1;grid-row:1/4;width:118px;justify-self:center}}
@media (max-width:600px){.setcur{grid-template-columns:minmax(0,1fr);gap:2px;padding:8px 12px}.setcur img{display:none}.setcur b{font-size:.8rem}}
@media (max-width:380px){.packpanel>.boost.mini{width:96px}}
.bcover .bmedal{position:absolute;top:-6px;right:-6px;font-size:1.35rem;filter:drop-shadow(0 2px 0 rgba(0,0,0,.35));animation:medpop .5s ease-out}
@keyframes medpop{0%{transform:scale(0)}70%{transform:scale(1.25)}100%{transform:scale(1)}}
.bcover.gold{box-shadow:inset 0 0 0 3px #ffd84d,0 0 14px rgba(255,200,40,.75),0 4px 0 rgba(0,0,0,.25);background-image:linear-gradient(115deg,transparent 30%,rgba(255,240,170,.55) 45%,transparent 60%);background-size:250% 100%;animation:goldsheen 3s linear infinite}
@keyframes goldsheen{to{background-position:-150% 0}}
.bknext{margin:-4px 8px 12px;font-weight:800;font-size:.9rem;color:#fff;opacity:.95}
.bawards{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.baw{display:grid;justify-items:center;gap:6px;padding:10px 8px;border-radius:14px;border:2.5px solid var(--line);background:color-mix(in srgb,var(--sc) 10%,var(--surface));text-decoration:none;color:inherit;font-weight:800}
.baw img{width:100%;height:34px;object-fit:contain}
.baw small{font-size:max(.72rem,12px);text-align:center}
.bawm{display:flex;gap:2px;font-size:1.15rem}.bawm i{font-style:normal;filter:grayscale(1);opacity:.28}.bawm i.on{filter:none;opacity:1}
.baw.done{border-color:#e0b100;box-shadow:0 0 0 2px #ffd84d}
.baw:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}
@media (prefers-reduced-motion:reduce){.bcover.gold,.bcover .bmedal{animation:none}}
.pocket.miss[data-wish]{cursor:pointer}
.pocket.miss[data-wish]:hover{box-shadow:inset 0 0 0 2px #f5c518}
.pocket.wished{background:rgba(255,214,0,.22);box-shadow:inset 0 0 0 2px #f5c518}
.pocket .wstar{position:absolute;top:4px;right:4px;font-size:1rem;line-height:1}
.bkwhint{margin:6px 0 0;text-align:center;font-weight:800;font-size:.85rem;color:#fff;opacity:.9}
.wishwrap{grid-column:1/-1}
.wishrow{display:flex;gap:10px;overflow-x:auto;padding:4px 2px 10px;scroll-snap-type:x proximity}
.wcard{position:relative;flex:none;width:96px;aspect-ratio:63/88;border-radius:6px;overflow:visible;scroll-snap-align:start}
.wcard img{width:100%;height:100%;object-fit:cover;border-radius:6px;filter:grayscale(.55) brightness(1.05);box-shadow:0 2px 6px rgba(0,0,0,.25)}
.wcard .wx{all:unset;box-sizing:border-box;position:absolute;top:-8px;right:-8px;width:30px;height:30px;border-radius:50%;background:#14213d;color:#fff;display:grid;place-items:center;font-weight:900;cursor:pointer;border:2px solid #fff}
.wcard .wx:focus-visible{outline:3px solid var(--yellow)}
.wfound{display:inline-block;background:#ffd400;color:#14213d;font-weight:900;border-radius:99px;padding:2px 10px;margin-top:4px}
.twish{background:#fff6c2;border:2px solid #f5c518;border-radius:12px;padding:8px 12px;font-weight:800;color:#14213d}
.mcard .twant{position:absolute;left:4px;right:4px;bottom:4px;background:#ffd400;color:#14213d;font-size:max(.7rem,12px);font-weight:900;border-radius:99px;text-align:center;padding:2px 0}
.powbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:0 0 16px;padding:12px 16px;border-radius:18px;border:2.5px solid #14213d;background:linear-gradient(120deg,color-mix(in srgb,var(--sc) 22%,#fff8d6),#fff8d6);box-shadow:0 4px 0 #14213d;color:#14213d}
.powlogo{width:90px;height:44px;object-fit:contain;flex:none}
.powtxt{display:grid;gap:2px;flex:1 1 220px;min-width:0}
.powtxt .eyebrow{margin:0}
.powtxt>b{font-size:1.2rem}
.powtxt small{font-weight:700;font-size:.85rem}
.powcard{width:52px;aspect-ratio:63/88;object-fit:cover;border-radius:4px;box-shadow:0 2px 6px rgba(0,0,0,.3);flex:none}
.powact{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.powon{font-weight:900;color:#1d6b35}
@media (max-width:600px){.powbar{gap:10px;padding:10px 12px}.powlogo{width:64px;height:34px}.powact{width:100%}.powact .btn{flex:1}}
.lbpull{display:flex;align-items:center;gap:8px;margin-left:auto;text-align:right}
.lbpull img{width:34px;aspect-ratio:63/88;object-fit:cover;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.3)}
.lbpull span{display:grid;line-height:1.15}.lbpull small{font-size:max(.7rem,12px);opacity:.75}
@media (max-width:600px){.lbgame button{font-size:max(.74rem,12px)!important}.lbrow{grid-template-columns:28px 32px minmax(0,1fr) auto;gap:8px;padding:6px 8px}.lbpull img{width:28px}.lbpull b{font-size:.8rem}.lbname{overflow-wrap:normal;word-break:normal}}
.baw b{font-size:.85rem;text-align:center;line-height:1.15}
.cardpage{display:grid;grid-template-columns:minmax(0,360px) minmax(0,1fr);gap:28px;align-items:start;margin:8px 0 24px}
.cp-img{border-radius:18px;padding:10px;background:var(--surface);box-shadow:0 6px 24px rgba(20,33,61,.18)}
.cp-img img{display:block;width:100%;height:auto;border-radius:12px;aspect-ratio:734/1024;background:var(--surface-2)}
.cp-img.t3,.cp-img.t4,.cp-img.t5{background:linear-gradient(135deg,#ffe066,#9cc8ff,#ff9ac8)}
.cp-info{display:grid;gap:12px;align-content:start}
.cp-info .no{font-weight:800;color:var(--muted);font-size:.9rem}
.cp-info .h-display{margin:0}
.cardtiles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px}
.cardtiles a{display:grid;gap:4px;text-decoration:none;color:inherit;font-size:.85rem}
.cardtiles img{width:100%;height:auto;aspect-ratio:245/342;border-radius:8px;background:var(--surface-2);box-shadow:0 2px 8px rgba(0,0,0,.15)}
.cardtiles small{color:var(--muted);font-weight:700}
.cardlinks{list-style:none;padding:0;margin:8px 0;columns:3 220px;column-gap:18px}
.cardlinks li{break-inside:avoid;padding:2px 0}.cardlinks small{color:var(--muted)}
.pnav{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:16px;font-weight:800}
@media (max-width:760px){.cardpage{grid-template-columns:1fr}.cp-img{max-width:320px;margin:0 auto}}
.bkprint{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:10px}
.bkprint .btn{background:rgba(255,255,255,.92);color:#14213d}
#printArea{display:none}
@media print{
  body.printing>*:not(#printArea){display:none!important}
  body.printing{background:#fff!important;padding:0!important;margin:0}
  body.printing #printArea{display:block!important;color:#14213d;font-family:var(--f-body,sans-serif)}
  #printArea .pr-brand{font-weight:900;font-size:11pt;margin:0 0 4mm}
  #printArea .pr-foot{font-size:9pt;margin-top:4mm;color:#555}
  #printArea img{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .pr-page{page-break-after:always;break-after:page}
  .pr-page:last-child{page-break-after:auto;break-after:auto}
  .pr-grid{display:grid;grid-template-columns:repeat(3,60mm);grid-auto-rows:84mm;gap:3mm;justify-content:center}
  .pr-pk{border:0.3mm dashed #999;border-radius:3mm;overflow:hidden;display:grid;place-items:center;text-align:center}
  .pr-pk img{width:100%;height:100%;object-fit:cover}
  .pr-pk.miss{align-content:center;gap:2mm;padding:3mm;color:#666}.pr-pk.miss b{font-size:20pt}.pr-pk.miss small{font-size:8pt;text-transform:uppercase}
  .pr-list h1{font-size:20pt;margin:0 0 2mm}
  .pr-cl{list-style:none;padding:0;margin:4mm 0;columns:2;column-gap:8mm;font-size:9.5pt}
  .pr-cl li{break-inside:avoid;padding:0.8mm 0;display:flex;gap:2mm;align-items:center}.pr-cl small{color:#777}
  .pr-box{display:inline-grid;place-items:center;width:4mm;height:4mm;border:0.4mm solid #333;border-radius:1mm;font-weight:900;font-size:8pt;flex:none}
  .pr-cl .num{min-width:9mm;font-weight:700}
  .pr-tc{max-width:180mm;margin:0 auto}
  .pr-tc .tcard{-webkit-print-color-adjust:exact;print-color-adjust:exact;box-shadow:none!important}
  .pr-name{font-size:16pt}
  @page{margin:10mm}
}
@media (max-width:600px){.cardtiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}}
.madeby{display:block;margin-top:6px;font-weight:700}
.pi-new{position:relative}.pi-new::after{content:"NEW";position:absolute;top:6px;right:8px;font-size:.62rem;font-weight:900;background:#e3350d;color:#fff;border-radius:99px;padding:1px 6px}
/* card battle */
.cbpick{display:grid;gap:12px}
.cbsteps{display:flex;gap:8px;font-weight:900;font-size:.85rem}.cbsteps span{padding:4px 12px;border-radius:99px;background:var(--surface-2)}.cbsteps .on{background:#14213d;color:#fff}
.cbwins{margin:0;font-weight:800}
.cbsel{display:grid;grid-template-columns:repeat(3,minmax(0,110px));gap:10px;justify-content:center}
.cbslot{all:unset;box-sizing:border-box;aspect-ratio:63/88;border:3px dashed var(--line);border-radius:10px;display:grid;place-items:center;font-weight:900;font-size:1.6rem;color:var(--muted);position:relative;overflow:hidden;cursor:default}
.cbslot.full{border:3px solid #14213d;cursor:pointer}.cbslot img{width:100%;height:100%;object-fit:cover}.cbslot.full span{position:absolute;top:4px;left:4px;background:#14213d;color:#fff;border-radius:99px;width:24px;height:24px;display:grid;place-items:center;font-size:.8rem}
.cbgo{justify-content:center;gap:10px}
.cbgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}
.cbopt{all:unset;box-sizing:border-box;position:relative;cursor:pointer;border-radius:10px;border:3px solid transparent;display:grid;gap:4px}
.cbopt img{width:100%;aspect-ratio:63/88;object-fit:cover;border-radius:7px;box-shadow:0 2px 6px rgba(0,0,0,.2)}
.cbopt.on{border-color:#e3350d;box-shadow:0 0 0 2px #ffd400}
.cbopt:focus-visible,.cbslot.full:focus-visible,.cbsw:focus-visible,.mmc:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}
.cbnum{position:absolute;top:6px;left:6px;background:#e3350d;color:#fff;border-radius:99px;width:28px;height:28px;display:grid;place-items:center;font-size:.9rem;border:2px solid #fff}
.cbst{display:flex;justify-content:space-between;font-size:.8rem;padding:0 2px}
.cbloan{position:absolute;top:6px;right:6px;background:#ffd400;color:#14213d;font-style:normal;font-weight:900;font-size:max(.65rem,12px);padding:2px 6px;border-radius:99px}
.cbfield{max-width:780px;margin:0 auto;display:grid;gap:10px;padding:14px;border-radius:20px;background:linear-gradient(#cfe9ff,#e9f7e2 55%,#bfe3a8);border:2.5px solid #14213d;color:#14213d}
.cbside{display:grid;gap:8px}
.cbwho{display:flex;align-items:center;gap:8px;font-weight:900}.cbwho svg{width:40px;height:40px;border-radius:50%;background:#fff}.cbleft{margin-left:auto;font-size:.8rem;font-weight:800;opacity:.8}
.cbrow{display:flex;gap:12px;align-items:flex-end;justify-content:center}
.cbcard{position:relative;display:grid;gap:3px;text-align:center}
.cbcard.act{width:min(140px,40vw)}.cbcard.bench{width:min(78px,19vw);opacity:.95}
.cbcard img{width:100%;aspect-ratio:63/88;object-fit:cover;border-radius:8px;box-shadow:0 3px 10px rgba(0,0,0,.3);background:#fff}
.cbcard.ko img{filter:grayscale(1) brightness(.7)}.cbcard.ko{opacity:.6}
.cbcard small{font-size:max(.72rem,12px);font-weight:800}
.cbhp{height:8px;border-radius:99px;background:rgba(0,0,0,.2);overflow:hidden}.cbhp i{display:block;height:100%;background:#2fb84f;transition:width .5s}.cbhp i.mid{background:#f5c518}.cbhp i.low{background:#e3350d}
.cbbench{display:flex;flex-direction:row;gap:8px;align-self:flex-end}
.cbsw{all:unset;box-sizing:border-box;cursor:pointer;display:grid;gap:2px;text-align:center}.cbsw>span{font-size:max(.7rem,12px);font-weight:900;background:#14213d;color:#fff;border-radius:99px;padding:2px 6px}
.cbcard.hit{animation:cbshake .45s}
@keyframes cbshake{0%,100%{transform:translateX(0)}20%{transform:translateX(-8px) rotate(-2deg)}40%{transform:translateX(8px) rotate(2deg)}60%{transform:translateX(-5px)}80%{transform:translateX(4px)}}
.cbdmg{position:absolute;left:50%;top:30%;transform:translateX(-50%);font-size:1.8rem;font-weight:900;color:#e3350d;-webkit-text-stroke:2px #fff;animation:cbpop 1.1s ease-out forwards;pointer-events:none}.cbdmg.big{font-size:2.4rem;color:#ff8a00}
@keyframes cbpop{0%{opacity:0;transform:translate(-50%,10px) scale(.6)}20%{opacity:1;transform:translate(-50%,-6px) scale(1.15)}100%{opacity:0;transform:translate(-50%,-40px) scale(1)}}
.cblog{margin:0;text-align:center;font-weight:800;background:#fff;border-radius:12px;padding:8px 12px;min-height:2.6em;box-shadow:0 2px 0 rgba(0,0,0,.15)}
.cbacts{display:grid;gap:6px;justify-items:center}
.cbatk{min-width:min(320px,100%)}.cbatk span{margin-left:6px}
.cbtip{margin:0;font-weight:800;font-size:.88rem;text-align:center}.cbtip.good{color:#1d6b35}.cbtip.bad{color:#b3200b}
.cbend{text-align:center;display:grid;gap:8px;justify-items:center}.cbbig{font-size:3.5rem}
@media (prefers-reduced-motion:reduce){.cbcard.hit{animation:none}}
@media (max-width:600px){.cbgrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.cbst{font-size:max(.7rem,12px)}.cbsel{grid-template-columns:repeat(3,minmax(0,84px))}
.cbfield{padding:10px;gap:6px}.cbcard.act{width:min(118px,32vw)}.cbcard.bench{width:min(62px,17vw)}.cbcard small{font-size:max(.66rem,12px)}.cbbench{flex-direction:row;gap:6px;align-self:flex-end}.cbwho svg{width:32px;height:32px}.cblog{font-size:.9rem;padding:6px 10px}.cbatk{font-size:1rem}}
/* memory match */
.mmwrap{display:grid;gap:12px}
.mmopts{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
.mmbar{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;font-weight:800}.mmbest{color:#b38600}
.mmgrid{display:grid;gap:10px;max-width:720px;width:100%;margin:0 auto}
.mmgrid.c4{grid-template-columns:repeat(4,1fr);max-width:520px}.mmgrid.c5{grid-template-columns:repeat(5,1fr);max-width:620px}.mmgrid.c6{grid-template-columns:repeat(6,1fr)}
@media (max-width:600px){.mmc{aspect-ratio:4/5}.mmgrid{gap:6px}.mmgrid.c5{grid-template-columns:repeat(4,1fr)}.mmgrid.c6{grid-template-columns:repeat(5,1fr)}}
.mmc{all:unset;box-sizing:border-box;cursor:pointer;aspect-ratio:3/4;perspective:600px}
.mmin{display:block;position:relative;width:100%;height:100%;transition:transform .35s;transform-style:preserve-3d}
.mmc.open .mmin{transform:rotateY(180deg)}
.mmback,.mmface{position:absolute;inset:0;border-radius:12px;backface-visibility:hidden;-webkit-backface-visibility:hidden;display:grid;place-items:center}
.mmback{background:radial-gradient(circle at 50% 50%,#fff 0 14%,#14213d 15% 20%,transparent 21%),linear-gradient(#e3350d 0 47%,#14213d 47% 53%,#fff 53%);border:3px solid #14213d;box-shadow:0 3px 0 #14213d}
.mmface{background:#fff;border:3px solid #14213d;transform:rotateY(180deg)}.mmface img{width:86%;height:86%;object-fit:contain}
.mmc.done .mmface{background:#eaffd9;border-color:#2fb84f}.mmc.done{cursor:default}
.mmwin{text-align:center;display:grid;gap:6px;justify-items:center}
@media (prefers-reduced-motion:reduce){.mmin{transition:none}}
.chdiff{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0}
.chdiff button{all:unset;box-sizing:border-box;cursor:pointer;display:grid;gap:2px;padding:8px 10px;border-radius:14px;border:2.5px solid var(--line);background:var(--surface);text-align:center}
.chdiff button b{font-size:.95rem}.chdiff button small{font-size:max(.72rem,12px);font-weight:700;color:var(--muted);line-height:1.2}
.chdiff button.on{border-color:#14213d;background:#fff6c2;color:#14213d;box-shadow:0 3px 0 #14213d}.chdiff button.on small{color:#4a5170}
.chdiff button:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}
.lbdiff{display:grid;grid-template-columns:repeat(3,1fr);width:calc(100% - 48px);margin-bottom:8px;border-radius:14px}
.lbdiff button{font-size:.82rem;padding:6px}
.seg.lbdiff button+button{border-left:2.5px solid #14213d}
.mlhead small{font-weight:800;font-size:.75rem;opacity:.8;margin-left:4px}
.typeans{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;width:100%;grid-column:1/-1}
.typeans .input{flex:1 1 220px;font-size:1.15rem;min-height:52px;text-align:center}
.typeans .btn.red{min-height:52px}
@media (max-width:600px){.chdiff{gap:6px}.chdiff button{padding:6px 6px}.chdiff button small{font-size:max(.66rem,12px)}.typeans .btn.ghost{flex:1 1 100%}}
.giftdlg{display:grid;gap:10px}
.giftsteps{margin:0;padding-left:1.3em;display:grid;gap:4px}
.giftlink{background:var(--surface-2);border:2px dashed #14213d;border-radius:12px;padding:10px;text-align:center;font-weight:800;overflow-wrap:anywhere}
.giftbtns{justify-content:center;gap:10px}
.giftstat{margin:0;font-weight:700;text-align:center}
.pggift .pgt b{font-size:.9rem}
button.pggo{all:unset;cursor:pointer}
.playsec{display:grid;gap:8px}
.playh{margin:0;font-size:.95rem;font-weight:900;color:var(--ink)}
.playitem{flex-direction:row!important;align-items:center;gap:12px!important;padding:10px 12px!important}
.playitem .pic{flex:none;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-size:1.45rem;background:var(--pc);box-shadow:inset 0 -3px 0 rgba(0,0,0,.08)}
.playitem .ptx{display:grid;gap:1px;min-width:0}
.playitem .ptx b{font-size:1rem;line-height:1.2}
.playitem .ptx span{font-size:.78rem;color:var(--muted);font-weight:700;line-height:1.25}
.pi-new::after{top:-7px!important;right:8px!important}
.playgrid.small .playitem .pic{width:38px;height:38px;font-size:1.2rem}
@media (min-width:700px){.playgrid{grid-template-columns:repeat(3,minmax(0,1fr))!important}.playgrid.small{grid-template-columns:repeat(4,minmax(0,1fr))!important}#playDlg{max-width:820px}}
@media (max-width:699px){.playitem{flex-direction:column!important;align-items:center;text-align:center;gap:6px!important;padding:12px 8px!important}.playitem .ptx{justify-items:center}.playgrid.small{grid-template-columns:repeat(2,minmax(0,1fr))}.playgrid.small .playitem{flex-direction:row!important;text-align:left;padding:8px 10px!important}.playgrid.small .playitem .ptx{justify-items:start}.playgrid:not(.small)>:last-child:nth-child(odd){grid-column:1/-1}}
dialog.sheetdlg{overflow:hidden}
dialog.sheetdlg[open]{animation:sheetUp .3s cubic-bezier(.3,1.2,.5,1)}
#playDlg .sheet2{animation:none;max-height:85dvh;overflow-y:auto;overscroll-behavior:contain}
@media (min-width:700px){dialog.sheetdlg{margin:auto}dialog.sheetdlg[open]{animation:sheetPop .22s ease-out}#playDlg .sheet2{border-radius:26px;border-bottom:3px solid #14213d}}
@keyframes sheetPop{from{opacity:0;transform:scale(.94)}}
@media (prefers-reduced-motion:reduce){dialog.sheetdlg[open]{animation:none}}
#playDlg .sheethead{position:sticky;top:-18px;background:var(--surface);z-index:2;padding:8px 0 4px;margin-top:-8px}
.faq details{border-bottom:1px solid var(--line);padding:10px 0}
.faq summary{font-weight:800;cursor:pointer}
.faq details p{margin:8px 0 0}
.today{display:grid;gap:10px}
.tdyhead{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}.tdyhead .h2{margin:0}
.tdygrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.tdy{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;border:2.5px solid var(--line);background:var(--bg);text-decoration:none;color:var(--ink);position:relative;min-width:0}
.tdy:hover{border-color:var(--blue)}.tdy.hot{border-color:#14213d;background:#fff6c2;color:#14213d}
.tdi{font-size:1.6rem;flex:none}.tdt{display:grid;min-width:0}.tdt b{font-size:.95rem}.tdt small{font-size:.78rem;font-weight:700;color:var(--muted);line-height:1.25}.tdy.hot .tdt small{color:#4a5170}
.tdgo{font-style:normal;margin-left:auto;background:#c42b0a;color:#fff;font-weight:900;font-size:.75rem;border-radius:99px;padding:3px 10px;flex:none}
@media (max-width:700px){.tdygrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.tdy{flex-direction:column;align-items:flex-start;gap:4px}.tdgo{position:absolute;top:8px;right:8px}}
.cdetail{display:grid;gap:12px}
.cmove{border-top:1px solid var(--line);padding-top:10px}
.cmhead{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.cmhead b{font-size:1.05rem}
.cmcost{font-size:1.05rem;letter-spacing:1px}.cmdmg{margin-left:auto;font-weight:900;font-size:1.2rem;font-family:var(--f-mono)}
.cmab{background:#c42b0a;color:#fff;font-weight:900;font-size:max(.72rem,12px);border-radius:99px;padding:2px 10px;text-transform:uppercase}
.cmove p{margin:6px 0 0}
.cflavor{margin:4px 0 0;padding:10px 14px;border-left:4px solid var(--yellow);background:var(--surface-2);border-radius:0 10px 10px 0;font-style:italic}
/* raid boss */
.rdhead{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:center;margin-bottom:10px}
.rdboss{width:84px;height:84px;border-radius:18px;background:radial-gradient(circle at 50% 60%,color-mix(in srgb,var(--tc) 55%,#fff),color-mix(in srgb,var(--tc) 85%,#14213d));border:3px solid #14213d;display:grid;place-items:center;overflow:hidden}
.rdboss .pic{width:100%;height:100%;background:none;border:0}
.rdboss.big{width:140px;height:140px;margin:10px auto}
.gav.rd{width:72px;height:72px;border-radius:16px;overflow:hidden;background:radial-gradient(circle,color-mix(in srgb,var(--tc) 50%,#fff),var(--tc));border:3px solid #14213d}
.gav.rd .pic{width:100%;height:100%;background:none;border:0}
.rdboss.two{width:150px;flex:none}.rdboss.big.two{width:240px}.gav.rd.two{width:120px}
.rdpair{display:flex;width:100%;height:100%}.rdpair .pic{width:50%!important;height:100%;background:none;border:0}
.rdbar{height:18px;border-radius:99px;background:#2b2d42;border:3px solid #14213d;overflow:hidden;margin:6px 0}
.rdbar.big{height:24px}
.rdbar i{display:block;height:100%;background:linear-gradient(90deg,#e3350d,#ff7a45 60%,#ffcb05);border-radius:99px;transition:width .6s ease}
.rdnums{margin:2px 0 8px;font-weight:700}
.rdwin{background:#e6f9e8;color:#14532d;border:2px solid #2f9e44;border-radius:12px;padding:8px 12px;font-weight:800}
.rdme{margin:8px 0}
.rdowed{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-top:12px;background:#fff6c2;color:#14213d;border:2px solid #f5c518;border-radius:12px;padding:8px 12px;font-weight:800}
.rdtoph{margin:16px 0 6px}
.rdtop{margin:0;padding:0;list-style:none;counter-reset:rd;display:grid;gap:4px}
.rdtop li{counter-increment:rd;display:flex;gap:8px;align-items:center;background:var(--surface-2);border-radius:10px;padding:6px 10px;font-weight:700}
.rdtop li::before{content:counter(rd);font-weight:900;width:1.6em;height:1.6em;display:grid;place-items:center;border-radius:50%;background:#ffcb05;color:#14213d;font-size:.8rem}
.rdtop li span{flex:1;min-width:0;overflow-wrap:anywhere}
.rdprize{text-align:center}
.rdprize .row{justify-content:center}
.wild.raidboss{filter:drop-shadow(0 0 14px rgba(227,53,13,.75));}
.wild.raidboss{scale:1.4;transform-origin:50% 90%}
/* friend battles */
.vsintro{margin:0 0 10px}
.vsgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (max-width:700px){.vsgrid{grid-template-columns:minmax(0,1fr)}}
.vsbox{background:var(--surface-2);border-radius:14px;padding:12px;display:grid;gap:8px;align-content:start}
.vsbox .h3{margin:0}
.vsteam{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.vsmon{display:grid;justify-items:center;text-align:center;gap:2px;font-weight:700;font-size:.78rem}
.vsmon .pic{width:64px;height:64px}
.vscode{margin:0;text-align:center}
.vscode code{font-family:"JetBrains Mono",monospace;font-weight:800;font-size:1.05rem;letter-spacing:.06em;background:var(--surface);border:2px dashed #14213d;border-radius:10px;padding:6px 10px;display:inline-block;overflow-wrap:anywhere}
.vscode.big code{font-size:1.25rem}
.vsform{display:flex;gap:8px;flex-wrap:wrap}
.vsform .input{flex:1 1 160px;min-width:0;font-family:"JetBrains Mono",monospace;text-transform:uppercase;letter-spacing:.05em}
.vsform .input[aria-invalid=true]{border-color:#c92a2a}
.vsprev{text-align:center}.vsprev .row{justify-content:center}
/* battle callouts */
.callout{position:absolute;left:50%;top:40%;z-index:30;transform:translate(-50%,-50%) rotate(-4deg);pointer-events:none;white-space:nowrap;font-family:"Bagel Fat One","Luckiest Guy",system-ui,sans-serif;font-size:clamp(1.5rem,6.5vw,2.8rem);line-height:1;color:#ffcb05;-webkit-text-stroke:2px #14213d;paint-order:stroke fill;text-shadow:0 4px 0 #14213d,0 0 18px rgba(255,203,5,.6)}
.callout.crit{color:#fff;text-shadow:0 4px 0 #14213d,0 0 18px rgba(227,53,13,.9);-webkit-text-stroke:2px #b3261e}
.callout.nve{color:#cfe7ff;font-size:clamp(1.1rem,4.5vw,1.9rem)}
.callout.ne{color:#e6e6e6;font-size:clamp(1.1rem,4.5vw,1.9rem)}
.cbfield{position:relative}
.movebtn.se small{color:#0d6334}.movebtn.nve small{color:#7a4a00}.movebtn.ne small{color:#a32019}
:root[data-theme="dark"] .movebtn.se small{color:#7ee2a5}:root[data-theme="dark"] .movebtn.nve small{color:#ffd27a}:root[data-theme="dark"] .movebtn.ne small{color:#ff9d94}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .movebtn.se small{color:#7ee2a5}:root:not([data-theme="light"]) .movebtn.nve small{color:#ffd27a}:root:not([data-theme="light"]) .movebtn.ne small{color:#ff9d94}}
:root[data-theme="dark"] .setcur b{color:#aab4ff}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .setcur b{color:#aab4ff}}
.skiplink{position:absolute;left:12px;top:-60px;z-index:1000;background:#ffcb05;color:#14213d;font-weight:900;padding:10px 16px;border-radius:12px;border:3px solid #14213d;text-decoration:none}
.skiplink:focus{top:10px}
.skiplink:not(:focus){clip-path:inset(50%);width:1px;height:1px;overflow:hidden;padding:0;border:0}
main:focus,#encbar:focus,#cbApp:focus,#mmApp:focus{outline:none}
/* one focus ring that shows up on every background: navy, yellow, navy */
:focus-visible{outline:3px solid #ffcb05!important;outline-offset:2px!important;box-shadow:0 0 0 2px #14213d,0 0 0 7px #14213d!important}
.hub>summary:focus-visible,.mapsum:focus-visible,.tuft:focus-visible,.bottomnav :focus-visible{outline-offset:-5px!important;box-shadow:inset 0 0 0 2px #14213d,inset 0 0 0 8px #14213d!important}
.tuft:focus-visible{border-radius:10px;background:rgba(255,203,5,.25)}
.np.off{visibility:hidden;transition:transform .3s,opacity .2s,visibility 0s .3s}
@media (max-width:699px){.playgrid:not(.small) .playitem .ptx>*{text-align:center}}
.hubgroup{margin:14px 2px 2px;font-size:.78rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.hubtitle+.hubgroup{margin-top:4px}
.ptag{z-index:3;white-space:nowrap}
@media (max-width:480px){.cxsel{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}.cxsel .field:last-child{grid-column:1/-1!important}.cxsel .select{font-size:.9rem!important}.cxsel .field{font-size:max(.72rem,12px)}}
@media (min-width:700px) and (max-height:920px){.cbcard.act{width:min(140px,15vh)}.cbcard.bench{width:min(78px,9vh)}}
@media (max-width:600px){.cp-img{max-width:min(240px,62vw)}}
.mvbanner{position:absolute;left:50%;top:28%;z-index:12;pointer-events:none;white-space:nowrap;max-width:92%;overflow:hidden;text-overflow:ellipsis;transform:translateX(-50%) skewX(-10deg);background:var(--bc,#e3350d);color:#fff;font-family:"Bagel Fat One","Luckiest Guy",system-ui,sans-serif;font-size:clamp(1.05rem,4.2vw,1.7rem);line-height:1.1;padding:7px 22px;border:3px solid #14213d;border-radius:12px;box-shadow:0 5px 0 #14213d;text-shadow:0 2px 0 rgba(20,33,61,.55),0 0 2px rgba(20,33,61,.8)}
.mvbanner.foe{top:22%}
.fxtint{position:absolute;inset:0;z-index:6;pointer-events:none;mix-blend-mode:screen}
.dmgnum{font-size:1.9rem!important}
.pprecs{display:grid;gap:8px;margin:8px 0 10px}
.pprecs .h3{margin:0;font-size:1rem}
.pprec{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:10px;align-items:center;background:#fff6c2;color:#14213d;border:2px solid #f5c518;border-radius:14px;padding:8px 10px}
.pprec b{display:block;font-size:.92rem}.pprec small{display:block;font-size:.78rem;font-weight:700;color:#3d4466}
.pprpic .pic{width:52px;height:52px}
.pphelp{margin:4px 0 8px;font-size:.8rem}
.ppbar{gap:8px;align-items:center;margin-bottom:8px}.ppbar .input{flex:1 1 160px;min-width:0}
.seg button[aria-pressed=true]{background:#14213d;color:#fff}
.pppick{position:absolute;top:4px;left:4px;z-index:3;font-size:max(.6rem,12px);font-weight:900;background:#c42b0a;color:#fff;padding:2px 6px;border-radius:6px}
.ppwhy{display:block;font-size:max(.66rem,12px);font-weight:800;color:var(--muted)}.ppwhy.good{color:#0d6334}
:root[data-theme="dark"] .ppwhy.good{color:#7ee2a5}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .ppwhy.good{color:#7ee2a5}}
#partnerDlg .ctile{position:relative}
.pptip{background:var(--surface-2);border-radius:12px;padding:8px 10px;font-size:.85rem;margin:8px 0}
.rdhud{display:block;font-size:max(.66rem,12px);font-weight:800;margin-top:2px;opacity:.85}
.fbform{display:grid;gap:8px}
.fbform .h2{margin:0}
.fbrate{border:0;padding:0;margin:4px 0}
.fbrate legend{font-weight:800;margin-bottom:6px;padding:0}
.fbrates{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.fbr{position:relative;display:grid;justify-items:center;gap:2px;padding:8px 4px;border:2.5px solid var(--line,#c9cfe8);border-radius:14px;background:var(--surface);cursor:pointer;text-align:center}
.fbr input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.fbr span{font-size:1.7rem;line-height:1}
.fbr b{font-size:max(.74rem,12px)}
.fbr:has(input:checked){border-color:#14213d;background:#fff6c2;color:#14213d;box-shadow:0 3px 0 #14213d}
.fbr:has(input:focus-visible){outline:3px solid #ffcb05;outline-offset:2px;box-shadow:0 0 0 2px #14213d,0 0 0 7px #14213d}
.fbform .field{font-weight:800;font-size:.95rem;margin-top:4px;text-transform:none;letter-spacing:0;color:var(--ink)}
.fbform textarea{width:100%;min-height:96px;resize:vertical;font:inherit}
.fbform textarea[aria-invalid=true]{border-color:#c92a2a}
.fbsafe{margin:0;font-size:.8rem}
.fberr{margin:0;color:var(--bad);font-weight:800;font-size:.88rem}
.fberr:empty{display:none}
.fbthanks{text-align:center}.fbthanks .row{justify-content:center}
/* card battle upgrades */
.cbmoves .cbatk{min-width:0;font-size:inherit}.cbmoves .btn span{margin:0}
.cbmoves{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:min(560px,100%)}
.cbmoves .btn{display:grid;gap:2px;justify-items:center;text-align:center;padding:10px 6px;min-height:64px;line-height:1.15;white-space:normal}
.cbmoves .btn b{font-size:.95rem}.cbmoves .btn span{font-size:max(.74rem,12px);font-weight:800;opacity:1}
.cbpow{background:#ffcb05;color:#14213d}
.cbpow:not([disabled]){animation:powglow 1.6s ease-in-out infinite}
@keyframes powglow{50%{box-shadow:0 3px 0 #14213d,0 0 18px #ffcb05}}
@media (prefers-reduced-motion:reduce){.cbpow:not([disabled]){animation:none}}
.cbmoves .btn[disabled]{opacity:.55}
.cbmyen{display:flex;gap:8px;align-items:center;font-weight:900;font-size:.85rem}
.enpips{display:inline-flex;gap:2px}.enpips i{font-style:normal;font-size:.95rem;filter:grayscale(1);opacity:.35}.enpips i.on{filter:none;opacity:1}
.cbwho .enpips{margin-left:4px}
.cbturn{display:inline-block;font-size:max(.72rem,12px);font-weight:900;text-transform:uppercase;letter-spacing:.05em;background:#1a7a36;color:#fff;border-radius:99px;padding:2px 8px;margin-right:4px;vertical-align:middle}
.cbturn.foe{background:#b3261e}
.cbcard .cbshield{position:absolute;top:-8px;right:-8px;font-size:1.4rem;z-index:3;filter:drop-shadow(0 2px 2px rgba(0,0,0,.35))}
.cbcard.guard img{box-shadow:0 0 0 3px #7fd3ff,0 0 16px #7fd3ff}
.cbburst{position:absolute;left:50%;top:40%;width:0;height:0;z-index:6;pointer-events:none}
.cbburst::before{content:"";position:absolute;left:-60px;top:-60px;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,#fff 0 15%,var(--c) 40%,transparent 70%);animation:cbpop2 .5s ease-out forwards}
.cbburst i{position:absolute;left:0;top:0;font-style:normal;font-size:1.3rem}
@keyframes cbpop2{from{transform:scale(.2);opacity:1}to{transform:scale(1.5);opacity:0}}
.cbcard.kojust img{animation:kofall .7s ease-in forwards}
@keyframes kofall{0%{transform:none;filter:none}30%{transform:rotate(-6deg) scale(1.05);filter:brightness(2)}100%{transform:rotate(8deg) translateY(14px);filter:grayscale(1) brightness(.7)}}
@media (prefers-reduced-motion:reduce){.cbcard.kojust img{animation:none}}
.mvbanner.cbban{top:44%}.mvbanner.cbban.foe{top:30%}
@media (max-width:480px){.cbmoves{gap:6px}.cbmoves .btn{padding:8px 4px;min-height:60px}.cbmoves .btn b{font-size:.82rem}.cbmoves .btn span{font-size:max(.66rem,12px)}}
#trMons .trtile.sm .tl{position:static;display:block;width:max-content;margin:3px auto 0;z-index:2;line-height:1.5}
#trMons .trtile.sm .pic{max-width:58px}
/* almost there goals */
.tdgoals{margin-top:12px}.tdgoals .h3{margin:0 0 6px;font-size:1rem}
.tdgoals ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.tdgoals a{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 10px;border-radius:12px;background:var(--surface-2);color:var(--ink);text-decoration:none;border:2px solid transparent}
.tdgoals a:hover{border-color:#14213d}
.tgi{font-size:1.4rem;text-align:center}.tgt b{display:block;font-size:.86rem;line-height:1.25}
.tgbar{display:block;height:8px;border-radius:99px;background:rgba(20,33,61,.15);overflow:hidden;margin-top:4px}.tgbar i{display:block;height:100%;background:linear-gradient(90deg,#2fb84f,#ffcb05)}
.tdgoals small{font-weight:800;font-size:.75rem}
/* trophy room */
.trolist{list-style:none;margin:10px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px}
.tro{display:grid;grid-template-columns:44px minmax(0,1fr);gap:10px;padding:10px;border-radius:14px;background:var(--surface-2);border:2.5px solid transparent}
.tro.t1{border-color:#c98b4b}.tro.t2{border-color:#9aa6b8}.tro.t3{border-color:#e0b100;background:linear-gradient(135deg,var(--surface-2),rgba(255,203,5,.22))}
.troi{font-size:1.9rem;display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--surface)}
.trob b{display:block}.trob small{display:block;font-size:.76rem;font-weight:700;color:var(--muted)}
.trot{display:flex;gap:2px;margin:3px 0}.trot i{font-style:normal;filter:grayscale(1);opacity:.3}.trot i.on{filter:none;opacity:1}
.trpb{display:block;height:7px;border-radius:99px;background:rgba(20,33,61,.15);overflow:hidden;margin:3px 0 2px}.trpb i{display:block;height:100%;background:#3b4cca}
.trdone{color:inherit!important}
.cbmode{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin:6px 0 10px}.cbmode .note{flex:1 1 200px;margin:0}
.cntb{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:99px;background:#c42b0a;color:#fff;font-size:max(.72rem,12px);font-weight:900;line-height:1;border:2px solid #fff;margin-left:6px;vertical-align:top;font-family:var(--f-mono,inherit)}
.cntb[hidden]{display:none}
.cntb span{color:#fff!important;font-size:inherit!important;font-weight:900!important}
.playitem.haspk{border-color:#c42b0a!important;box-shadow:0 4px 0 #c42b0a!important}
.playitem.pi-cards.haspk .ptx>span{color:#a32307!important;font-weight:900}
@media (prefers-reduced-motion:no-preference){.playitem.haspk .cntb{animation:pkpop 1.8s ease-in-out infinite}}
@keyframes pkpop{0%,100%{transform:scale(1)}50%{transform:scale(1.15)}}
.bottomnav .cntb{position:absolute;top:-3px;left:calc(50% + 13px);margin:0;min-width:19px;height:19px;padding:0 5px;font-size:max(.7rem,12px);border:0;box-shadow:0 0 0 2.5px var(--band-deep),0 2px 6px rgba(0,0,0,.35)}
@media (prefers-reduced-motion:no-preference){.bottomnav .cntb:not([hidden]){animation:pkpop 1.8s ease-in-out 3}}
.playitem{position:relative}
.playitem .cntb{position:absolute;top:8px;right:8px;margin:0;z-index:2;min-width:24px;height:24px;font-size:.8rem}
/* ---------- player Gyms ---------- */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.hub.hublink{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:10px 12px;min-height:64px;color:inherit;text-decoration:none}
.hub.hublink:hover{background:var(--surface-2)}.hub.hublink:focus-visible{outline-offset:-3px!important}
.hub .hpill.new{background:#c42b0a;color:#fff}
#pgApp{display:flex;flex-direction:column;gap:14px;max-width:880px}
.pgcard{background:var(--surface);border:3px solid #14213d;border-radius:20px;box-shadow:0 4px 0 #14213d;padding:14px;display:flex;flex-direction:column;gap:10px;min-width:0}
.pgcard .h2,.pgcard .h3{margin:0}
.pgh{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}
.pgbadge{flex:none;display:block;overflow:visible}
.pghero{background:linear-gradient(160deg,#3b4cca 0%,#2a3a9e 60%,#14213d 100%);color:#fff;border-bottom:6px solid #ffcb05}
.pgherotop{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.pghero .eyebrow{color:#ffde6b}
.pgrank{font-size:.8rem;font-weight:900;background:#ffcb05;color:#14213d;border-radius:99px;padding:3px 10px}
.pgid{display:flex;align-items:center;gap:14px;min-width:0}
.pgidt{display:flex;flex-direction:column;gap:3px;min-width:0}
.pgname{margin:0;font-family:var(--f-display);font-weight:400;font-size:clamp(1.5rem,5vw,2.1rem);line-height:1.05;overflow-wrap:anywhere}
.pghero .pgname{color:#ffcb05}
.pgname.sm{font-size:1.35rem}
.pgsub{font-weight:800;font-size:.95rem;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.pgline{font-style:italic;font-weight:700;font-size:.92rem;quotes:"\201C" "\201D"}
.pghero .pgline{color:#dfe3ff}
.pghero .pgbadge{filter:drop-shadow(0 0 10px rgba(255,203,5,.55))}
@media (prefers-reduced-motion:no-preference){.pghero .pgbadge{animation:pgshine 2.6s ease-in-out infinite}}
@keyframes pgshine{0%,100%{filter:drop-shadow(0 0 2px rgba(255,203,5,.3))}50%{filter:drop-shadow(0 0 12px rgba(255,203,5,.9))}}
.pgstats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0}
.pgstats div{background:rgba(255,255,255,.13);border-radius:12px;padding:8px 10px;display:flex;flex-direction:column-reverse}
.pgstats dt{font-size:.78rem;font-weight:800;color:#dfe3ff}
.pgstats dd{margin:0;font-family:var(--f-mono);font-weight:800;font-size:1.3rem}
.pgteam{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.pgmon{background:var(--surface-2);border-radius:14px;padding:8px 4px;display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center;min-width:0}
.pgmon .pic{width:64px;height:64px}.pgteam.big .pgmon .pic{width:84px;height:84px}
.pgmon b{font-size:.88rem;overflow-wrap:anywhere}.pgmon small{font-weight:800;color:var(--muted);font-size:.78rem}
.pgaway{background:#fff6c2;border-color:#b38a00;color:#14213d}
.pgaway .note{color:#3d4466}
.pgsum{margin:0;font-weight:800;font-size:1rem;line-height:1.4}
.pgev{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.pgev li{display:flex;align-items:center;gap:10px;background:#fff;border-radius:12px;padding:8px 10px}
.pgdot{width:12px;height:12px;border-radius:50%;flex:none;background:#1a7a36}.pgdot.l{background:#c42b0a}
.pgevt{flex:1;font-size:.9rem;font-weight:600;line-height:1.35;min-width:0}
.pgwhen{font-size:.75rem;font-weight:800;color:#3d4466;white-space:nowrap}
.pgaway .linkbtn{color:#14213d;align-self:flex-start}
.pgbtns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.pgbtns .btn{justify-content:center}
.pgnew{align-items:flex-start}
.pgnewart{display:flex;align-items:flex-end;gap:6px}
.pgsteps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-weight:700}
.pgsteps li{display:flex;gap:10px;align-items:flex-start}
.pgsteps b{flex:none;width:28px;height:28px;border-radius:50%;background:#ffcb05;color:#14213d;display:grid;place-items:center;font-weight:900}
.pgsubh{margin-top:4px!important}
.pgtabs{display:flex;gap:6px;flex-wrap:wrap}
.pgtab{font:inherit;font-weight:900;font-size:.88rem;border:2.5px solid #14213d;border-radius:99px;padding:8px 14px;min-height:44px;background:var(--surface);color:var(--ink);cursor:pointer}
.pgtab[aria-pressed="true"]{background:#14213d;color:#fff}
.pglist{display:flex;flex-direction:column;gap:8px}
.pgrow{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;border:2.5px solid var(--line);border-left:8px solid var(--gc);border-radius:16px;padding:10px;background:var(--surface)}
.pgrow.pggotd{border:3px solid #14213d;border-left:10px solid var(--gc);background:linear-gradient(120deg,#fff6c2,var(--surface) 70%)}
:root[data-theme="dark"] .pgrow.pggotd{background:linear-gradient(120deg,#3a3410,var(--surface) 70%)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .pgrow.pggotd{background:linear-gradient(120deg,#3a3410,var(--surface) 70%)}}
.pgrowt{display:flex;flex-direction:column;gap:3px;min-width:0}
.pgrn{font-weight:900;font-size:1.02rem;overflow-wrap:anywhere}
.pgrs{font-size:.85rem;font-weight:700;color:var(--muted);display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.pgmini{display:flex;gap:4px}
.pgmm{position:relative}.pgmm .pic{width:40px;height:40px}
.pgmm small{position:absolute;right:-4px;bottom:-2px;font-size:max(.66rem,12px);font-weight:900;background:#14213d;color:#fff;border-radius:99px;padding:0 4px}
.pgrowr{display:flex;flex-direction:column;align-items:flex-end;gap:4px;text-align:right}
.pgrr{font-weight:900;font-size:.95rem}.pgrowr small{font-size:.75rem;font-weight:700;color:var(--muted)}
.pgyours{font-size:.78rem;font-weight:900;background:#ffcb05;color:#14213d;border-radius:99px;padding:3px 10px}
.pgcodeform{display:flex;flex-direction:column;gap:6px;border-top:2.5px dashed var(--line);padding-top:10px}
.pgcodeform label{font-weight:900}
.pgcodeform .input{max-width:160px;text-transform:uppercase;font-family:var(--f-mono);font-weight:800;letter-spacing:.08em}
.pgslots{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(68px,1fr));gap:8px;align-items:start}
.pgslot{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;font-size:max(.74rem,12px);font-weight:800;line-height:1.2}
.pgslot span{overflow-wrap:anywhere}
.pgslot.empty{padding:0;margin:0}.pgempty{width:48px;height:48px;border-radius:50%;border:3px dashed var(--line);display:block}
.pgbuild{display:flex;flex-direction:column;gap:8px}
.pgprev{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:16px;border:3px solid #14213d;background:color-mix(in srgb,var(--gc,#f2c200) 22%,var(--surface))}
.pgprev>div{display:flex;flex-direction:column;gap:3px;min-width:0}
.pgfs{border:0;margin:6px 0 0;padding:0;min-width:0}
.pgfs legend{font-weight:900;margin-bottom:6px;padding:0}
.pgtypes{display:flex;flex-wrap:wrap;gap:6px}
.pgty{position:relative;cursor:pointer}
.pgty input,.pgsh input,.pgln input{position:absolute;opacity:0;width:1px;height:1px}
.pgty span{display:inline-flex;align-items:center;min-height:36px;padding:4px 12px;border-radius:99px;background:var(--tc);color:#fff;font-weight:900;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;border:2.5px solid transparent}
.pgty.lt span{color:#14213d}
.pgty input:checked+span{border-color:#14213d;box-shadow:0 0 0 2px #fff,0 0 0 5px #14213d}
.pgty input:checked+span::before{content:"✓ "}
.pgshapes{display:flex;gap:8px;flex-wrap:wrap}
.pgsh span{display:inline-flex;align-items:center;gap:6px;border:2.5px solid #14213d;border-radius:99px;padding:4px 14px 4px 6px;font-weight:900;cursor:pointer;min-height:44px;background:var(--surface)}
.pgsh input:checked+span{background:#14213d;color:#fff}
.pglines{display:flex;flex-direction:column;gap:6px}
.pgln span{display:block;border:2.5px solid var(--line);border-radius:12px;padding:9px 12px;font-style:italic;font-weight:800;font-size:.92rem;cursor:pointer;background:var(--surface)}
.pgln input:checked+span{border-color:#14213d;background:#fff6c2;color:#14213d}
.pgty input:focus-visible+span,.pgsh input:focus-visible+span,.pgln input:focus-visible+span{outline:3px solid #ffcb05;outline-offset:2px;box-shadow:0 0 0 2px #14213d,0 0 0 7px #14213d}
.gptag{font-size:max(.68rem,12px);font-weight:900;background:#ffcb05;color:#14213d;border-radius:99px;padding:1px 7px}
.pgpickb{display:grid;place-items:center}
.pgview,.pgopen{display:flex;flex-direction:column;gap:10px}
.pgopen{align-items:center;text-align:center}.pgopen .row{justify-content:center}
.pgwon{display:flex;align-items:center;gap:12px;text-align:left}
.pgwon .note{margin:4px 0 0}
@media (max-width:520px){.pgrow{grid-template-columns:auto minmax(0,1fr)}.pgrowr{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:space-between}.pgrow .pgbadge{width:44px;height:44px}.pgrow.pggotd .pgbadge{width:60px;height:60px}.pgbtns{grid-template-columns:1fr}.pgteam.big .pgmon .pic{width:68px;height:68px}}
/* ---------- daily puzzle v2 ---------- */
.board{grid-template-columns:minmax(150px,1.6fr) repeat(6,minmax(64px,1fr))!important}
.board .hd .sm{display:none}
@media (max-width:600px){.board{grid-template-columns:44px repeat(6,minmax(0,1fr))!important;gap:3px!important}.board .hd{letter-spacing:0!important;text-transform:none!important;padding:0!important;text-align:center}.board .hd .lg{display:none}.board .hd .sm{display:inline}.board .cell{min-height:50px;border-radius:9px}.board .cell small{font-size:.62rem}}
.boardwrap .legend{margin-top:10px}
.dbar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin:2px 0 12px}
.dmodes{display:inline-flex;border:3px solid #14213d;border-radius:16px;overflow:hidden;background:var(--surface)}
.dmodes button{all:unset;cursor:pointer;display:flex;flex-direction:column;align-items:center;padding:7px 18px;font-weight:900;font-size:.95rem;line-height:1.15;color:var(--ink);min-height:44px;box-sizing:border-box;justify-content:center}
.dmodes button small{font-size:max(.72rem,12px);font-weight:800;color:var(--muted)}
.dmodes button+button{border-left:3px solid #14213d}
.dmodes button[aria-pressed="true"]{background:#14213d;color:#fff}.dmodes button[aria-pressed="true"] small{color:#dfe3ff}
.dmodes button[data-dmode="h"][aria-pressed="true"]{background:#7a1c0a}
.dmodes button:focus-visible{outline:3px solid #ffcb05!important;outline-offset:-5px!important}
.dtools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.dstreak{display:inline-flex;align-items:center;gap:4px;font-weight:900;background:var(--surface-2);border-radius:99px;padding:6px 12px;font-size:.92rem}
.dstreak.on{background:#ffe7a3;color:#14213d}
@media (max-width:600px){.dbar{flex-direction:column;align-items:stretch;gap:8px}.dmodes{display:flex}.dmodes button{flex:1}.dtools{flex-wrap:nowrap;gap:6px}.dtools .btn{padding-left:10px;padding-right:10px}.dlong{display:none}.dshort{display:inline!important}.dstreak{flex:1;justify-content:center;padding:6px 8px}}
.darch{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;background:#fff6c2;color:#14213d;border:2.5px solid #b38a00;border-radius:14px;padding:10px 12px;font-weight:800;margin-bottom:12px}
.darch[hidden]{display:none}
.dclues .dcl{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.dclh{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.dguess{font-weight:900;font-size:.85rem;color:var(--muted)}
.dclues .slots i{flex:1;max-width:30px}
.dclues ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px;font-weight:800}
.dnext{margin:0;font-weight:800;font-size:.88rem;color:var(--muted)}
.dclues.hard{border-color:#c42b0a}
.dclues.hard .dsil{background:radial-gradient(circle,color-mix(in srgb,#c42b0a 16%,var(--surface)),var(--surface))}
@media (max-width:520px){.dclues{flex-direction:row!important;align-items:flex-start!important;gap:12px!important;padding:12px!important}.dsil{width:84px!important;height:84px!important;align-self:flex-start!important}.dsil>div,.dsil .pic{width:74px!important}}
.dres{display:flex;flex-direction:column;gap:10px;align-items:inherit;min-width:0;width:100%;position:relative;z-index:1}
.dsk{margin:0;font-weight:800}
.dcom{background:var(--surface-2);border-radius:14px;padding:10px 12px;text-align:left}
.dcom .h3{margin:0 0 4px;font-size:1rem}.dcom p{margin:2px 0}
.dbeat{font-weight:900}
.dstats{display:flex;flex-direction:column;gap:8px;text-align:left;width:100%;max-width:560px}.dshort{display:none}.dcom{max-width:560px;box-sizing:border-box;width:100%}
.dstats .h3{margin:4px 0 0;font-size:1rem}
.dsnums{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:0}
.dsnums div{display:flex;flex-direction:column-reverse;align-items:center;background:var(--surface-2);border-radius:12px;padding:8px 4px}
.dsnums dt{font-size:.75rem;font-weight:800;color:var(--muted)}.dsnums dd{margin:0;font-size:1.4rem;font-weight:900}
.ddist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px}
.ddist li{display:grid;grid-template-columns:16px 1fr;gap:6px;align-items:center;font-weight:900;font-size:.82rem}
.ddb i{display:block;font-style:normal;background:#646a92;color:#fff;border-radius:6px;padding:2px 7px;text-align:right;min-width:22px;box-sizing:border-box}
.ddist li.me .ddb i{background:#1a7a36}
.dnextbox{display:flex;gap:8px;flex-wrap:wrap}
.result .dnextbox,.result .row{justify-content:inherit}
.dpast{display:flex;flex-direction:column;gap:8px}
.dptable{width:100%;border-collapse:collapse}
.dptable th,.dptable td{padding:6px 4px;border-bottom:1.5px solid var(--line);text-align:left}
.dptable thead th{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.dptable tbody th{font-weight:900}.dptable tbody th small{display:block;font-weight:700;color:var(--muted);font-size:.75rem}
.dptable .btn{min-width:96px;justify-content:center}
/* ---------- unique catches ---------- */
.traits{display:flex;flex-wrap:wrap;gap:5px;margin:6px 0 2px}
.traits span{font-size:.78rem;font-weight:900;border-radius:99px;padding:3px 9px;background:var(--surface-2);color:var(--ink);line-height:1.3}
.traits .trsz{background:#14213d;color:#fff}
.traits .trsz.s0,.traits .trsz.s6{background:#7a1c0a}
.traits .trtl{background:#fff1b8;color:#14213d;border:1.5px solid #b38a00}
.traits .trtl.t2{background:#ffd6f0;border-color:#a3246b}
.traits .trtl.t3{background:linear-gradient(90deg,#fff1b8,#ffd6f0,#d6e4ff);border-color:#14213d}
.trsay{display:block;font-size:.88rem;font-weight:600;margin:2px 0 0}
.trbest,.trkeep{display:block;font-weight:800;font-size:.88rem;margin-top:4px}
.trbest{color:#1a7a36}
.ctile .ttl{position:absolute;top:4px;left:4px;font-size:.9rem;line-height:1;z-index:2}
.yours .traits{margin-top:2px}.yours .trsay{margin:2px 0 6px}
/* ---------- battles page ---------- */
.bthubs{display:flex;flex-direction:column;gap:10px;max-width:760px}
.bthubs .hubgroup{font-size:.85rem!important;margin:10px 0 0!important}
.hub.hublink{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:10px 12px;min-height:64px;color:inherit;text-decoration:none}
/* ---------- expedition and contest ---------- */
.advapp{display:flex;flex-direction:column;gap:12px;max-width:820px}
.advhead{border-radius:20px;border:3px solid #14213d;box-shadow:0 4px 0 #14213d;padding:16px;color:#14213d;background:linear-gradient(135deg,#c8f0b0,#8fd17a)}
.advhead.hab-lake{background:linear-gradient(135deg,#bfe3ff,#7cb7ef)}.advhead.hab-volcano{background:linear-gradient(135deg,#ffd0a8,#f59a6b)}.advhead.hab-cave{background:linear-gradient(135deg,#e2d6c4,#bba98d)}
.advhead.hab-night{background:linear-gradient(135deg,#3a3f7a,#232650);color:#fff}.advhead.hab-snow{background:linear-gradient(135deg,#f1f8ff,#c6def2)}.advhead.hab-storm{background:linear-gradient(135deg,#fff0a6,#c9b84f)}
.advhead.hab-sky{background:linear-gradient(135deg,#d9f0ff,#a8d8f0)}.advhead.hab-dusk{background:linear-gradient(135deg,#ffc6d9,#c89bdc)}.advhead.con{background:linear-gradient(135deg,#fff1b8,#ffd6f0)}
.advhead.hab-night .eyebrow{color:#ffde6b}
.advhead p{margin:4px 0 0;font-weight:700}
.advtitle{margin:2px 0 0;font-family:var(--f-display);font-weight:400;font-size:clamp(1.5rem,5vw,2rem);line-height:1.1}
.advcard{background:var(--surface);border:3px solid #14213d;border-radius:20px;box-shadow:0 4px 0 #14213d;padding:14px;display:flex;flex-direction:column;gap:10px}
.advcard .h3,.advcard .h2{margin:0}
.advhow{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:6px;font-weight:600}
.btn.big{font-size:1.1rem;padding:14px 22px;align-self:flex-start}
.advbag{display:flex;flex-wrap:wrap;gap:6px}
.advbag span{background:var(--surface);border:2.5px solid #14213d;border-radius:99px;padding:5px 12px;font-weight:800;font-size:.92rem}
.advbag .advsc{background:#ffcb05;color:#14213d}
.advopts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.advopt{all:unset;box-sizing:border-box;cursor:pointer;display:flex;gap:12px;align-items:center;border:3px solid #14213d;border-radius:16px;padding:12px;background:var(--surface);box-shadow:0 4px 0 #14213d;min-height:72px}
.advopt:hover{background:var(--surface-2)}.advopt:active{transform:translateY(2px);box-shadow:0 2px 0 #14213d}
.advopt[disabled]{opacity:.55;cursor:not-allowed;box-shadow:none}
.advopt:focus-visible{outline:3px solid #ffcb05!important;outline-offset:2px!important}
.advoi{font-size:2rem;width:48px;height:48px;display:grid;place-items:center;border-radius:12px;background:var(--surface-2);flex:none}
.advopt.k-rare .advoi,.advopt.k-secret .advoi{background:#fff1b8}.advopt.k-boss .advoi{background:#ffd6f0}
.advot{display:flex;flex-direction:column;gap:2px;min-width:0}.advot b{font-size:1.05rem}.advot small{font-size:.85rem;font-weight:600;color:var(--muted);line-height:1.3}
.advenc{display:grid;grid-template-columns:minmax(0,240px) minmax(0,1fr);gap:16px;align-items:center;background:var(--surface);border:3px solid #14213d;border-radius:20px;box-shadow:0 4px 0 #14213d;padding:14px}
.advenc.boss{border-color:#7a1c0a;box-shadow:0 4px 0 #7a1c0a}
.advmon{position:relative;border-radius:18px;background:radial-gradient(circle at 50% 60%,color-mix(in srgb,var(--tc) 30%,var(--surface)),var(--surface-2));display:grid;place-items:center;padding:10px;min-height:200px}
.advmon .pic{width:180px;height:180px}
.advenc.boss .advmon .pic{width:220px;height:220px}
.advgiant{position:absolute;top:8px;left:8px;font-weight:900;background:#7a1c0a;color:#fff;border-radius:99px;padding:3px 10px;font-size:.8rem;z-index:2}
.advinfo{display:flex;flex-direction:column;gap:8px;min-width:0}
.advinfo .h2 small{font-size:.9rem;color:var(--muted)}
.advmood{margin:0;font-weight:600}
.advch{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;align-items:center;font-weight:800;font-size:.9rem}
.advch b{grid-column:1/-1;font-size:.95rem}
.advbar{height:14px;border-radius:99px;background:var(--surface-2);border:2px solid #14213d;overflow:hidden}.advbar i{display:block;height:100%;background:linear-gradient(90deg,#c42b0a,#f2c200 50%,#1a7a36)}
.advmsg{margin:0;font-weight:700;min-height:1.3em}
.advmsg .traits{margin-top:6px}
.advacts{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start}
.btn.blue{background:#3b4cca;color:#fff}
.advhelp{border:2.5px solid #14213d;border-radius:14px;padding:0;width:100%}
.advhelp summary{cursor:pointer;font-weight:900;padding:10px 12px;list-style:none}.advhelp summary::-webkit-details-marker{display:none}
.advhl{display:flex;flex-wrap:wrap;gap:6px;padding:0 10px 10px}
.advhl small{font-weight:700}
.advmon.shake .pic{animation:advshake .45s ease-in-out 3}
.advmon.got .pic{animation:advgot .6s ease-out forwards}
.advmon.fled .pic{animation:advfled .7s ease-in forwards}
@keyframes advshake{0%,100%{transform:rotate(0)}25%{transform:rotate(-8deg)}75%{transform:rotate(8deg)}}
@keyframes advgot{to{transform:scale(.4);opacity:.25}}
@keyframes advfled{to{transform:translateX(120%);opacity:0}}
@media (prefers-reduced-motion:reduce){.advmon .pic{animation:none!important}}
.advteamh{margin:0}.advteam{display:flex;flex-wrap:wrap;gap:8px}
.advtm{display:flex;align-items:center;gap:6px;background:var(--surface);border:2px solid var(--line);border-radius:14px;padding:4px 10px 4px 4px}
.advtm span{display:flex;flex-direction:column;line-height:1.2}.advtm small{font-weight:800;color:var(--muted)}
.advtm.tired{opacity:.7}
.advroute{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.advroute li{display:flex;align-items:center;gap:10px;font-weight:700;padding:4px 0}
.advstn{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);font-weight:900;flex:none}
.advroute li.done .advstn{background:#1a7a36;color:#fff}.advroute li.cur .advstn{background:#ffcb05;color:#14213d;box-shadow:0 0 0 3px #14213d}
.advroute li.next{color:var(--muted)}
.advnote .advnotep{margin:0;font-size:1.05rem;font-weight:700}
.advtr{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.advtr .pic{width:120px;height:120px}.advtr>div{flex:1;min-width:220px}
.advcaught{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.advcaught li{display:flex;align-items:center;gap:10px;background:var(--surface-2);border-radius:12px;padding:6px 10px}
.advcaught li>span{flex:1;min-width:0}.advcaught .traits{margin:2px 0 0}
.traits.sm span{font-size:max(.72rem,12px);padding:2px 7px}
.advlb{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.advlb li{display:flex;align-items:center;gap:10px;padding:6px 10px;border-radius:12px;background:var(--surface-2);font-weight:700}
.advlb li.me{background:#fff1b8;color:#14213d}
.advrk{width:24px;font-weight:900}.advnm{flex:1;min-width:0;overflow-wrap:anywhere}.advbm .pic{width:30px;height:30px}
.conribs{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.conribs li{display:flex;flex-direction:column;align-items:center;text-align:center;gap:2px;background:var(--surface-2);border-radius:14px;padding:10px 6px;opacity:.75}
.conribs li.got{opacity:1;background:#fff1b8;color:#14213d;border:2px solid #b38a00}
.conribs li>span{font-size:1.8rem}.conribs small{font-size:.75rem;font-weight:700}
.conjudge{border-collapse:collapse;width:100%;max-width:360px}.conjudge caption{text-align:left;font-weight:900;padding-bottom:4px}
.conjudge th,.conjudge td{padding:5px 8px;border-bottom:1.5px solid var(--line);text-align:left}.conjudge td{text-align:right;font-weight:800}
.conjudge tr.tot th,.conjudge tr.tot td{font-weight:900;border-bottom:0}
.conrib{font-weight:800;margin:0}
@media (max-width:600px){.advenc{grid-template-columns:1fr}.advmon{min-height:160px}.advmon .pic{width:150px;height:150px}.advenc.boss .advmon .pic{width:180px;height:180px}.advacts .btn{flex:1 1 100%;justify-content:center}.btn.big{align-self:stretch;justify-content:center}}
/* ---------- daily puzzle v3: clue cards ---------- */
.gtitle{margin:6px 0 8px}.gtitle .note{font-weight:700;font-size:.8rem}
.glist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.gcard{background:var(--surface);border:2.5px solid var(--line);border-radius:16px;padding:8px;display:flex;flex-direction:column;gap:6px}
.gcard:first-child{border-color:#14213d}
.gch{display:flex;align-items:center;gap:8px;font-size:1rem}.gch .pic{width:36px;height:36px}.gno{margin-left:auto;font-size:.75rem;font-weight:900;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.gtiles{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
.gt{border-radius:12px;padding:6px 4px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:1px;background:var(--surface-2);color:var(--ink);animation:flip .5s both}
.gt.y{background:#1a7a36;color:#fff}.gt.p{background:#f2b300;color:#14213d}
.gtl{font-size:max(.68rem,11px);font-weight:900;text-transform:uppercase;letter-spacing:.05em}
.gtv{font-size:.92rem;font-weight:900;line-height:1.2}
.gth{font-size:.78rem;font-weight:800}
.gt.n .gth{color:var(--ink)}
@media (max-width:600px){.gtiles{grid-template-columns:repeat(3,minmax(0,1fr))}}
.dhow{border:2.5px solid #14213d;border-radius:16px;background:var(--surface);margin:0 0 12px}
.dhow>summary{cursor:pointer;font-weight:900;padding:10px 14px;list-style:none;min-height:24px}.dhow>summary::-webkit-details-marker{display:none}
.dhowb{padding:0 14px 14px;display:flex;flex-direction:column;gap:10px}
.dhowb ol{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px;font-weight:600}
.gtiles.ex{grid-template-columns:repeat(3,minmax(0,110px))}
.dghelp{margin:6px 2px 0;font-size:.85rem}
#dgWrap[hidden]{display:none}
/* ---------- expedition v2: top-down trail ---------- */
.ehero{display:flex;gap:14px;align-items:center;border:3px solid #14213d;border-radius:20px;box-shadow:0 4px 0 #14213d;background:linear-gradient(160deg,#1d5e1a,#2f7a3a 55%,#4ea83a);color:#fff;padding:14px}
.ehero.hab-lake{background:linear-gradient(160deg,#164a7a,#1f6fae 55%,#3b93d0)}.ehero.hab-volcano{background:linear-gradient(160deg,#6b2410,#9a3a18 55%,#c4572a)}.ehero.hab-cave{background:linear-gradient(160deg,#2f2b38,#4f4b55 55%,#6b6672)}.ehero.hab-night{background:linear-gradient(160deg,#141a3d,#232a5c 55%,#34407a)}.ehero.hab-snow{background:linear-gradient(160deg,#24506e,#33718f 55%,#4f8fae)}.ehero.hab-storm{background:linear-gradient(160deg,#3a4520,#4f5f2a 55%,#66793a)}.ehero.hab-sky{background:linear-gradient(160deg,#1f5f7a,#2f7f9a 55%,#4f9fb8)}.ehero.hab-dusk{background:linear-gradient(160deg,#3b2a5e,#5a3f86 55%,#7a5aa8)}
.ehsil{position:relative;flex:none;width:clamp(110px,28vw,170px);aspect-ratio:1;border-radius:18px;background:radial-gradient(circle at 50% 55%,rgba(255,255,255,.35),rgba(255,255,255,0) 70%);display:grid;place-items:center}
.ehsil .pic,.ehsil .shd{width:92%;height:auto}
.ehq{position:absolute;top:4px;right:4px;width:36px;height:36px;border-radius:50%;background:#ffcb05;color:#14213d;border:2.5px solid #14213d;display:grid;place-items:center;font-family:var(--f-display);font-size:1.3rem}
.ehtxt{display:flex;flex-direction:column;gap:6px;min-width:0}.ehtxt p{margin:0;font-weight:700}
.ehtxt .eyebrow{color:#ffde6b}
.ehh{margin:0;font-family:var(--f-display);font-weight:400;font-size:clamp(1.3rem,4.5vw,1.9rem);line-height:1.1}
.ehtime{align-self:flex-start;font-family:var(--f-mono,monospace);font-weight:800;font-size:.85rem;background:rgba(0,0,0,.35);border-radius:99px;padding:4px 10px}
.shd{filter:brightness(0);opacity:.85;width:64px;height:64px;object-fit:contain;position:relative}
.shd.big{width:150px;height:150px;filter:brightness(0) drop-shadow(0 0 12px rgba(255,203,5,.75));opacity:1}
.shd.small{width:46px;height:46px;opacity:.7}.shd.huge{width:120px;height:120px;opacity:.9}
.agh{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.agh .num{font-weight:800;color:var(--muted)}
.agoals{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.agoals li{display:flex;align-items:center;gap:10px;font-weight:800}.agoals li.on{color:var(--good)}
.astar{flex:none}.astar path{fill:var(--surface);stroke:#b38a00;stroke-width:2;stroke-linejoin:round}.astar.on path{fill:#ffcb05;stroke:#14213d;stroke-width:1.6}
.stampcard{background:#fff6c2;border-color:#b38a00;box-shadow:0 4px 0 #b38a00;color:#14213d}.stampcard .note,.stampcard .agh .num{color:#3d4466}
.estamps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px}
.stp{aspect-ratio:1;border-radius:50%;border:2.5px dashed #b38a00;display:grid;place-items:center;font-weight:900;color:#8a6a00;position:relative}
.stp.got{background:#fff;border:2.5px solid #14213d}.stp .pic{width:86%}
.stp.prize{border-style:solid;background:#ffcb05;border-color:#14213d;font-size:1.2rem}
.estamps small{display:none}
.btn.go{align-self:stretch;font-size:1.15rem;padding:15px;animation:epulse 2.4s ease-in-out infinite}
@keyframes epulse{0%,100%{transform:scale(1)}50%{transform:scale(1.03)}}
.note.center{text-align:center;margin:0}
.etop{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.etop .h3{margin:0}
.eprog{list-style:none;margin:0;padding:0;display:flex;gap:4px}
.eprog li{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-weight:900;font-size:.85rem;background:var(--surface-2);color:var(--ink);border:2px solid var(--line)}
.eprog li.done{background:#1a7a36;color:#fff;border-color:#1a7a36}.eprog li.cur{background:#ffcb05;color:#14213d;border-color:#14213d}
.escene{position:relative;height:clamp(300px,62vw,420px);border:3px solid #14213d;border-radius:20px;box-shadow:0 4px 0 #14213d;overflow:hidden;background:radial-gradient(circle at 20% 80%,rgba(255,255,255,.12) 0 8%,transparent 9%),radial-gradient(circle at 75% 30%,rgba(0,0,0,.06) 0 10%,transparent 11%),var(--eg)}
.epath{position:absolute;background:var(--ep);border-radius:14px;box-shadow:inset 0 0 0 3px rgba(0,0,0,.08)}
.epath.v{left:50%;width:13%;transform:translateX(-50%);top:46%;bottom:0}
.escene.one .epath.v{top:12%}
.epath.h{top:42%;height:13%;left:15.5%;right:15.5%}
.epath.l,.epath.r{width:13%;top:0;height:50%;transform:translateX(-50%)}.epath.l{left:22%}.epath.r{left:78%}
.ewater{position:absolute;right:-6%;bottom:18%;width:30%;height:26%;border-radius:50%;background:#5aa9e6;box-shadow:inset 0 0 0 5px #3b85c4}
.etree{position:absolute;width:15%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 35% 35%,color-mix(in srgb,var(--et) 70%,#fff),var(--et) 60%);box-shadow:0 6px 0 rgba(0,0,0,.25)}
.etree.t1{left:50%;top:6%;transform:translateX(-50%)}.etree.t2{left:-3%;top:54%}.etree.t3{right:-3%;top:54%;}.etree.t4{left:28%;top:66%;width:11%}.etree.t5{right:28%;top:66%;width:11%}
.escene.one .etree.t1{left:12%;top:8%;transform:none}.escene.one .etree.t4{left:20%}.escene.one .etree.t5{right:20%}
.esign{position:absolute;left:50%;top:30%;transform:translateX(-50%);background:#8a5a2b;color:#fff;font-size:.75rem;font-weight:900;border:2.5px solid #14213d;border-radius:6px;padding:2px 6px}
.efig{position:absolute;top:22%;transform:translate(-50%,-50%);display:grid;place-items:center}
.efig.eleft{left:22%}.efig.eright{left:78%}.efig.ectr{left:50%;top:30%}
.efig .shd,.efig .etall,.efig .eglow{grid-area:1/1}
.etall{width:84px;height:62px;border-radius:40%;background:repeating-linear-gradient(115deg,#2e8a2a 0 6px,#3fa33a 6px 12px);box-shadow:inset 0 0 0 3px #1f6a1d}
.eglow{width:96px;height:96px;border-radius:50%;background:radial-gradient(circle,rgba(160,220,255,.9),rgba(160,220,255,0) 70%);animation:eglow 1.6s ease-in-out infinite}
.eglow.gold{background:radial-gradient(circle,rgba(255,214,60,1),rgba(255,214,60,0) 70%)}
@keyframes eglow{0%,100%{transform:scale(.85);opacity:.75}50%{transform:scale(1.1);opacity:1}}
.ebang{position:absolute;top:-6px;right:-4px;width:22px;height:22px;border-radius:50%;background:#fff;color:#c42b0a;border:2px solid #14213d;font-style:normal;font-weight:900;display:grid;place-items:center;font-size:.85rem}
.etrn{position:relative;width:52px;display:block}.etrn svg{width:52px;height:auto;display:block}
.etrn i{position:absolute;top:-10px;right:-10px;width:22px;height:22px;border-radius:50%;background:#c42b0a;color:#fff;border:2px solid #14213d;font-style:normal;font-weight:900;display:grid;place-items:center}
.ebehind{display:grid;place-items:center;margin-top:-6px}.ebehind>*{grid-area:1/1}.ebehind .eglow{width:70px;height:70px}.ebehind .shd{width:48px;height:48px}
.ebush{display:flex;gap:2px;padding:10px;border-radius:50%;background:#2f7a3a;box-shadow:inset 0 0 0 3px #1f5a26}.ebush i{width:12px;height:12px;border-radius:50%;background:#5b6cff;border:2px solid #14213d}
.eitem{width:30px;height:30px;border-radius:50%;background:linear-gradient(#c42b0a 0 46%,#14213d 46% 54%,#fff 54%);border:2.5px solid #14213d;box-shadow:0 0 0 6px rgba(255,255,255,.4)}
.efig.boss .shd{width:130px;height:130px}.efig.boss .eglow{width:150px;height:150px;background:radial-gradient(circle,rgba(255,120,80,.85),rgba(255,120,80,0) 70%)}
.ewalker{position:absolute;left:50%;bottom:26%;width:62px;height:62px;object-fit:contain;transform:translateX(-50%);filter:drop-shadow(0 4px 0 rgba(0,0,0,.25))}
.ebox{position:absolute;left:8px;right:8px;bottom:8px;background:#fff;color:#14213d;border:3px solid #14213d;border-radius:12px;padding:8px 30px 8px 12px;font-weight:800;font-size:.95rem;line-height:1.3;box-shadow:inset 0 0 0 2px #fff,inset 0 0 0 4px #3b4cca}
.ecaret{position:absolute;right:10px;bottom:6px;font-size:.7rem;animation:epulse 1s infinite}
.eopts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.eopt{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;gap:3px;border:3px solid #14213d;border-radius:16px;padding:12px;background:var(--surface);color:var(--ink);box-shadow:0 4px 0 #14213d;min-height:44px}
.eopt:only-child{grid-column:1/-1}
.eopt:hover{background:var(--surface-2)}.eopt:active{transform:translateY(2px);box-shadow:0 2px 0 #14213d}
.eopt:focus-visible{outline:3px solid #ffcb05!important;outline-offset:2px!important}
.eopt.sp{background:#fff6c2;color:#14213d;border-color:#b38a00;box-shadow:0 4px 0 #b38a00}
.eod{font-size:.8rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.eopt.sp .eod{color:#6b5300}
.eopt b{font-size:1.05rem}.eopt small{font-size:.85rem;font-weight:600;line-height:1.3}
.eor{font-weight:800;font-size:.85rem}.eor.hot{color:#a32307}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .eopt:not(.sp) .eor.hot{color:#ff9a7a}}
:root[data-theme="dark"] .eopt:not(.sp) .eor.hot{color:#ff9a7a}.eopt.sp .eor.hot{color:#8a1c05}
.equit{align-self:center;margin-top:4px}
.advcols.one .advmain{width:100%;max-width:820px;margin:0 auto}
.eenc{display:flex;flex-direction:column;gap:10px}
.ebattle{position:relative;height:clamp(260px,55vw,340px);border:3px solid #14213d;border-radius:20px;box-shadow:0 4px 0 #14213d;overflow:hidden;background:linear-gradient(180deg,#8fc7ff 0,#d7ecff 52%,var(--eg) 53%,color-mix(in srgb,var(--eg) 70%,#000) 100%)}
.eenc.boss .ebattle{background:linear-gradient(180deg,#ffb38a 0,#ffe0c4 52%,var(--eg) 53%,color-mix(in srgb,var(--eg) 70%,#000) 100%)}
.ebattle::before,.ebattle::after{content:"";position:absolute;border-radius:50%;background:rgba(0,0,0,.18)}
.ebattle::before{right:6%;top:58%;width:44%;height:12%}.ebattle::after{left:2%;bottom:6%;width:46%;height:12%}
.ehud{position:absolute;left:10px;top:10px;z-index:2;background:#fff;color:#14213d;border:3px solid #14213d;border-radius:14px;padding:6px 12px;box-shadow:0 3px 0 #14213d;display:flex;flex-direction:column;gap:2px;max-width:58%;font-weight:800;font-size:.85rem}
.ehud .eyebrow{color:#a32307}.ehud b{font-size:1.05rem}
.ewild{position:absolute;right:6%;top:16%;width:clamp(130px,36%,220px)}
.ewild.giant{width:clamp(160px,44%,260px);top:8%}
.ewild.shake .pic{animation:advshake .45s ease-in-out 3}.ewild.got .pic{animation:advgot .6s ease-out forwards}.ewild.fled .pic{animation:advfled .7s ease-in forwards}
.ewild:not(.shake):not(.got):not(.fled) .pic{animation:eidle 2.2s ease-in-out infinite}
@keyframes eidle{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.emine{position:absolute;left:6%;bottom:4%;width:clamp(100px,30%,160px);height:auto;aspect-ratio:1;object-fit:contain;transform:scaleX(-1)}
.einfo{display:flex;flex-direction:column;gap:10px}
.einfo .advmsg:empty,.cmsg:empty{display:none}
.einfo .advmsg{background:var(--surface);border:3px solid #3b4cca;border-radius:14px;padding:10px 14px}
.etr{display:flex;gap:12px;align-items:center}.etr>svg{width:64px;height:auto;flex:none}.etr>div{flex:1;min-width:0}.etr p{margin:4px 0 0}.etr .pic{width:96px;flex:none}
.etrl{display:flex;flex-wrap:wrap;gap:8px}
@media (prefers-reduced-motion:reduce){.eglow,.btn.go,.ecaret,.ewild .pic{animation:none!important}}
@media (max-width:520px){.ehero{flex-direction:column;text-align:center}.ehtxt{align-items:center}.ehtime{align-self:center}.eopts .eopt{padding:10px}.etr .pic{display:none}.ehud{font-size:.78rem}.advacts .btn{flex:1 1 100%}}
@media (min-width:1000px){.estamps.big small{display:block}}
/* ---------- contest v2: the park ---------- */
.chead{border:3px solid #14213d;border-radius:20px;box-shadow:0 4px 0 #14213d;padding:16px;background:linear-gradient(135deg,#fff1b8,#ffd6f0);color:#14213d}.chead p{margin:6px 0 0;font-weight:700}.chead .eyebrow{color:#7a1c0a}
.cpark{position:relative;height:clamp(300px,70vw,400px);border:3px solid #14213d;border-radius:20px;box-shadow:0 4px 0 #14213d;overflow:hidden;background:radial-gradient(ellipse at 50% 50%,#e8d29a 0 18%,transparent 19%),radial-gradient(circle at 10% 90%,#2f7a3a 0 9%,transparent 10%),radial-gradient(circle at 92% 12%,#2f7a3a 0 8%,transparent 9%),radial-gradient(circle at 88% 88%,#5aa9e6 0 12%,transparent 13%),#79c25d}
.cballs{position:absolute;left:8px;top:8px;z-index:2;background:#fff;color:#14213d;border:2.5px solid #14213d;border-radius:99px;padding:4px 12px;font-weight:800;font-size:.9rem}
.cmon{all:unset;box-sizing:border-box;position:absolute;width:clamp(96px,30%,140px);display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer;border-radius:16px;padding:4px}
.cmon .pic{width:80%;filter:drop-shadow(0 5px 0 rgba(0,0,0,.2))}
.cmon span{background:#fff;color:#14213d;border:2px solid #14213d;border-radius:99px;padding:2px 8px;font-weight:800;font-size:.78rem;white-space:nowrap}
.cmon:hover .pic{transform:translateY(-4px)}.cmon:focus-visible{outline:3px solid #ffcb05!important;outline-offset:2px}
.cmon[disabled]{cursor:default;opacity:.6}.cmon.shake .pic{animation:advshake .45s ease-in-out 3}
.cmsg{background:var(--surface);border:3px solid #3b4cca;border-radius:14px;padding:10px 14px}
.ckeep{display:flex;flex-direction:column;gap:10px;border:3px solid #14213d;border-radius:20px;padding:14px;background:#fff6c2;color:#14213d;box-shadow:0 4px 0 #14213d}
.ckeepb{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.cks{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;background:#fff;border:3px solid #14213d;border-radius:16px;padding:10px;box-shadow:0 4px 0 #14213d}
.cks .pic{width:80px}.cks small{font-weight:700;font-size:.8rem}.cks:focus-visible{outline:3px solid #3b4cca!important;outline-offset:2px}
.cks:not(.old){background:#e2f4e6}
.centry{display:flex;align-items:center;gap:12px}.centry .pic{width:84px;flex:none}.centry>div{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.centry small{font-weight:600;color:var(--muted)}
.cpts{display:flex;flex-direction:column;align-items:center;font-weight:800;font-size:.8rem;background:#ffcb05;color:#14213d;border:2.5px solid #14213d;border-radius:14px;padding:6px 10px}.cpts b{font-size:1.3rem}
.cprizes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.cprizes li{display:flex;gap:10px;align-items:baseline;font-weight:600}.cprizes b{min-width:92px}
.advlb small{display:block;font-weight:600;font-size:.8rem;color:var(--muted)}.advlb li.me small{color:#3d4466}
.cchamp{display:flex;align-items:center;gap:12px;margin:0 0 12px;padding:12px 14px;border:3px solid #14213d;border-radius:20px;box-shadow:0 4px 0 #14213d;background:linear-gradient(120deg,#fff1b8,#c8f0b0);color:#14213d;position:relative}
.cchamp .pic{width:84px;flex:none}.cchamp>div{display:flex;flex-direction:column;gap:3px;align-items:flex-start;min-width:0}.cchamp b{font-size:1.15rem}.cchamp .eyebrow{color:#7a1c0a}
.champb{position:absolute;top:-10px;left:-6px;font-size:1.6rem}
.prwin{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:8px;text-align:left}.prwin li{background:var(--surface-2);border-radius:14px;padding:10px 12px;font-weight:700}.prwin span{display:block;font-weight:900;margin-top:2px}
@media (max-width:520px){.cprizes li{flex-direction:column;gap:0}.cmon span{font-size:.7rem}}
.wkend{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 14px;margin:0;padding:10px 14px;border-radius:16px;background:#14213d;color:#fff;font-weight:800}.wkend span:last-child{font-weight:600;opacity:.9}
.wkgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:12px;align-items:stretch}
.wkc .btn{align-self:flex-start;margin-top:auto}.wkh{display:flex;gap:12px;align-items:flex-start}.wkh p{margin:4px 0 0;font-weight:600}
.wki{font-size:2rem;width:52px;height:52px;flex:none;display:grid;place-items:center;border-radius:14px;background:#fff1b8;border:2.5px solid #14213d}
.wkp{margin:0;padding:8px 12px;border-radius:12px;background:#e2f4e6;color:#14213d;font-weight:800}
.wkb{display:flex;flex-direction:column;gap:6px}.wkb .note{margin:0}.wklv{margin:0;font-weight:900;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
/* ---------- contest: Park Dash ---------- */
.dash{display:flex;flex-direction:column;gap:10px;max-width:min(640px,calc(100svh - 260px));min-width:min(100%,300px);width:100%;margin:0 auto}
.dhud{display:flex;flex-wrap:nowrap;align-items:center;gap:8px;justify-content:space-between;background:#14213d;color:#fff;border-radius:16px;padding:8px 10px}
.dtime b,.dscore b{font-size:1.4rem;font-weight:900}.dtime b.low{color:#ffcb05;animation:epulse .6s infinite}
.dscore{color:#ffcb05}.dscore b{color:#fff}
.dcombo{font-weight:900;font-size:1rem;flex:1 1 auto;text-align:center;white-space:nowrap}.dcombo.hot{color:#ffcb05}
.dhud .btn.ghost{box-shadow:none}
.dtbar{height:10px;border-radius:99px;background:var(--surface-2);overflow:hidden;border:2px solid #14213d}.dtbar i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#c42b0a,#f2c200 40%,#1a7a36)}
.dfield{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(6px,2vw,14px);padding:clamp(8px,2.5vw,18px);border:3px solid #14213d;border-radius:22px;box-shadow:0 4px 0 #14213d;background:#79c25d}
.dhole{all:unset;box-sizing:border-box;position:relative;aspect-ratio:1;border-radius:18px;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.dhole::before{content:"";position:absolute;left:8%;right:8%;bottom:9%;height:26%;border-radius:50%;background:#2a4f1b;box-shadow:inset 0 7px 0 rgba(0,0,0,.35),0 3px 0 #4f9a3c}
.dhole:focus-visible{outline:4px solid #ffcb05!important;outline-offset:2px}
.dgrass{position:absolute;left:0;right:0;bottom:0;height:24%;z-index:2;background:linear-gradient(#3fa33a,#2e8a2a);clip-path:polygon(0 100%,0 40%,6% 0,12% 45%,19% 5%,26% 50%,33% 0,40% 45%,47% 8%,54% 50%,61% 0,68% 45%,75% 5%,82% 50%,89% 0,95% 40%,100% 15%,100% 100%)}
.dmon{position:absolute;inset:-2% 4% 15%;display:grid;place-items:end center;transform:translateY(80%);transition:transform .14s ease-out;z-index:1}
.dhole.up .dmon{transform:none}
.dmon .pic{width:100%;filter:drop-shadow(0 3px 0 rgba(0,0,0,.25))}
.dhole.giant .dmon{inset:-4% -4% 14%}
.dhole.gold{background:radial-gradient(circle at 50% 50%,rgba(255,236,120,.95) 0 35%,rgba(255,203,5,0) 70%)}
.dhole.smk{background:radial-gradient(circle at 50% 50%,rgba(120,120,120,.55) 0 40%,transparent 70%)}
.dsmoke{font-size:clamp(2rem,9vw,3.4rem);line-height:1}
.dstar{position:absolute;top:2px;right:4px;font-size:1.4rem;z-index:3}
.dtag{position:absolute;top:3px;left:3px;z-index:3;background:#fff;color:#14213d;border:2px solid #14213d;border-radius:99px;padding:1px 8px;font-weight:900;font-size:max(.72rem,12px);white-space:nowrap}
.dtag.s5,.dtag.s6{background:#c42b0a;color:#fff}.dtag.s0,.dtag.s1{background:#3b4cca;color:#fff}
.dkey{position:absolute;left:8px;bottom:6px;z-index:3;font-weight:900;font-size:12px;color:#fff;opacity:.8}
@media (hover:none){.dkey{display:none}}
.dfloat{position:absolute;left:50%;top:30%;z-index:5;transform:translateX(-50%);white-space:nowrap;font-weight:900;font-size:clamp(.85rem,3.5vw,1.1rem);padding:2px 8px;border-radius:99px;background:#fff;color:#1a7a36;border:2px solid #14213d;animation:dfloat .9s ease-out forwards;pointer-events:none}
.dfloat.bad{color:#a32307}.dfloat.gold{background:#ffcb05;color:#14213d}
@keyframes dfloat{from{opacity:1;transform:translate(-50%,0)}to{opacity:0;transform:translate(-50%,-60%)}}
.dfield.paused .dhole .dmon{visibility:hidden}.dfield.paused::after{content:"Paused";position:absolute;inset:0;display:grid;place-items:center;background:rgba(20,33,61,.75);color:#fff;font-family:var(--f-display);font-size:2rem;border-radius:19px;z-index:6}
.dcd{position:absolute;inset:0;display:grid;place-items:center;z-index:7;font-family:var(--f-display);font-size:clamp(4rem,20vw,7rem);color:#fff;text-shadow:0 5px 0 #14213d;background:rgba(20,33,61,.35);border-radius:19px}
.dcd[hidden]{display:none}
.dsay{margin:0;text-align:center;font-weight:800;min-height:1.4em}
.dhowl{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.dhowl li{display:flex;gap:10px;align-items:flex-start;font-weight:600}.dhowl li>span:first-child{font-size:1.4rem;line-height:1}
.dleft{display:block;font-size:max(.8rem,12px);font-weight:800}
.btn.go{flex-direction:column;gap:2px}
.dashres{text-align:center;align-items:center}.dashres.pb{background:#fff6c2;color:#14213d;border-color:#b38a00;box-shadow:0 4px 0 #b38a00}.dashres p{margin:0;font-weight:700}
.dresn{display:flex;align-items:baseline;gap:6px}.dresn b{font-family:var(--f-display);font-size:clamp(2.6rem,10vw,3.6rem);line-height:1}.dresn span{font-weight:800}
.dkept{display:flex;gap:10px;align-items:center;text-align:left;background:var(--surface-2);border-radius:14px;padding:8px 12px;width:100%;box-sizing:border-box;color:var(--ink)}.dkept .pic{width:64px;flex:none}
.dbest{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;border-radius:16px;background:#14213d;color:#fff;font-weight:800}.dbest b{font-size:1.4rem;color:#ffcb05}
@media (prefers-reduced-motion:reduce){.dmon{transition:none}.dfloat{animation-duration:.01s}.dtime b.low{animation:none}}
.pgsecs{display:flex;gap:6px;flex-wrap:wrap;position:sticky;top:0;z-index:5;background:var(--bg);padding:6px 0}
.pgsec{font:inherit;font-weight:900;font-size:.95rem;border:3px solid #14213d;border-radius:99px;padding:9px 16px;min-height:44px;background:var(--surface);color:var(--ink);cursor:pointer}
.pgsec[aria-pressed="true"]{background:#14213d;color:#fff}
.pgmine{display:flex;flex-direction:column;gap:14px}
@media (min-width:900px){#pgApp{max-width:1100px}.pgmine.has{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"hero away" "team away" "btns away";align-items:start}.pgmine.has .pghero{grid-area:hero}.pgmine.has .pgteamc{grid-area:team}.pgmine.has .pgaway{grid-area:away}.pgmine.has .pgbtns{grid-area:btns}.pgdir,.pgcase{max-width:880px}}
@media (max-width:520px){.pgsecs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.pgsec{padding:8px 4px;font-size:.84rem}}
/* leaderboard game picker: 2 by 2 buttons */
.seg.lbgame{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;border:0!important;background:transparent!important;overflow:visible!important;border-radius:0!important}
.seg.lbgame button,.seg.lbgame button+button{border:2.5px solid #14213d!important;border-radius:12px!important;min-height:44px;padding:6px 8px;display:flex;align-items:center;justify-content:center;gap:6px;text-align:center;background:var(--surface)}
.seg.lbgame button[aria-pressed=true]{background:#14213d!important;color:#fff}
/* battles page uses the full width: cards sit side by side, an open one stretches across */
.bthubs{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;max-width:none!important;align-items:stretch}
.bthubs .hubgroup{display:none}
@media (min-width:700px){.bthubs>.hub>summary,.bthubs>.hub.hublink{min-height:118px;padding:16px}.bthubs .hub .hi{width:64px;height:64px;font-size:2.2rem;border-radius:16px}.bthubs .hub .ht b{font-size:1.2rem}.bthubs .hub .ht small{font-size:.92rem}.bthubs>.hub:not([open]){height:100%}.bthubs>.hub:not([open])>summary{height:100%;box-sizing:border-box}}
.bthubs .hub[open]{grid-column:1/-1;order:-1}
@media (max-width:420px){.bthubs{grid-template-columns:1fr}}
.advapp{max-width:none!important}
.advcols{display:flex;flex-direction:column;gap:12px}.advmain,.advside{display:flex;flex-direction:column;gap:12px;min-width:0}
@media (min-width:1000px){.advcols{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,1fr);align-items:start}.advcols.one{grid-template-columns:minmax(0,1fr)}.advside{position:sticky;top:12px}.advenc{grid-template-columns:minmax(0,300px) minmax(0,1fr)}.advmon .pic{width:220px;height:220px}}
#pgApp{max-width:none!important}.pgdir,.pgcase{max-width:none!important}
@media (min-width:1000px){.pglist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.pgmine.has{max-width:none}}
.tdevo{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;gap:12px;width:100%;margin:0 0 12px;padding:12px 14px;border-radius:18px;border:3px solid #14213d;box-shadow:0 4px 0 #14213d;background:linear-gradient(120deg,#fff1b8,#ffd6f0);color:#14213d}
.tdevo:focus-visible{outline:3px solid #ffcb05!important;outline-offset:2px!important}
.tdevp{display:flex}.tdevp .pic{width:40px;height:40px;margin-right:-8px}
.tdevt{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.tdevt b{font-size:1rem}.tdevt small{font-weight:700;color:#3d4466}
.tdevo{position:relative}.tdevo .tdgo{font-style:normal;position:static!important}
@media (max-width:600px){.tdevo{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 10px}.tdevp .pic{width:34px;height:34px;margin-right:-14px}.tdevp{padding-right:14px}.tdevo .tdgo{grid-column:1/-1;justify-self:start}}
.pgoals .h3{margin:4px 0 8px;font-size:1rem}
.pgoals ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.giftcodeq{margin:8px 0 0}.giftform{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}.giftform .field{flex:1 1 160px}
.pgoal{display:grid;grid-template-columns:28px minmax(0,1fr) auto auto;gap:8px;align-items:center;background:var(--surface-2);border-radius:12px;padding:8px 10px}
.pgoal .pgi{font-size:1.2rem;text-align:center}
.pgoal .pgt b{display:block;font-size:.82rem;line-height:1.25}
.pgoal .pgt small{font-size:max(.7rem,12px);font-weight:800;opacity:.75}
.pgbar{display:block;height:7px;border-radius:99px;background:rgba(20,33,61,.12);overflow:hidden;margin:4px 0 2px}
.pgbar i{display:block;height:100%;background:var(--blue);border-radius:99px}
.pgoal .pgr{font-weight:900;font-size:.8rem;white-space:nowrap;background:#fff3b0;border:2px solid #14213d;border-radius:99px;padding:2px 8px}
.pgoal .pggo{font-weight:900;font-size:1.3rem;text-decoration:none;color:var(--blue);width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--surface);border:2px solid var(--line)}
.pgoal.done{background:#dff3e3}
.pkpickh{color:#fff;font-family:"Luckiest Guy",var(--f-display);font-weight:400;font-size:clamp(2rem,5vw,3rem);margin:0;text-shadow:0 4px 0 rgba(0,0,0,.4)}
.pkfan{display:flex;justify-content:center;align-items:flex-end;margin-top:10px;padding:10px 0 20px}
.pkfan .boost.pick{width:min(170px,30vw);margin:0 -14px;transform:rotate(var(--r)) translateY(var(--y));transition:transform .25s,opacity .35s}
.pkfan .boost.pick:hover,.pkfan .boost.pick:focus-visible{transform:rotate(0) translateY(-24px) scale(1.06);z-index:5}
.pkfan .boost.pick.gone{opacity:0;transform:rotate(var(--r)) translateY(140px)}
.pkfan .boost.pick.chosen{transform:translateY(-30px) scale(1.15);z-index:6}
@media (max-width:600px){.pkfan .boost.pick{width:34vw;margin:0 -5vw}.pkfan .boost.pick[data-v="3"],.pkfan .boost.pick[data-v="4"]{display:none}.pkfan .boost.pick[data-v="0"]{--r:-8deg;--y:8px}.pkfan .boost.pick[data-v="1"]{--r:0deg;--y:0px}.pkfan .boost.pick[data-v="2"]{--r:8deg;--y:8px}.pkfan .boost.pick .bname{font-size:.8rem}.pkfan .boost.pick .bsub,.pkfan .boost.pick .bburst{display:none}}
.tkind{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:10px}
.tkbtn{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:18px 12px;border:3px solid #14213d;border-radius:18px;background:var(--surface-2);box-shadow:0 4px 0 #14213d}
.tkbtn span{font-size:2.2rem}.tkbtn b{font-size:1.1rem}.tkbtn small{font-weight:700;opacity:.8}
.tkbtn:hover{transform:translateY(-2px)}.tkbtn:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
.tcgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px;margin-top:10px;max-height:52dvh;overflow:auto;padding:2px}
.tcc .mcard{width:120px;margin:4px auto;cursor:default}
.pulls{display:grid;grid-template-columns:repeat(3,minmax(0,140px));gap:12px;justify-content:start;margin-top:10px}
.newset{font-style:normal;font-size:.6rem;font-weight:900;background:#e3350d;color:#fff;border-radius:99px;padding:1px 6px;vertical-align:middle}
.setlinks{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:8px}
@media (max-width:480px){.tkind{grid-template-columns:1fr}}
/* binder sorting + moving */
.bktools{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0 4px 12px;flex-wrap:wrap}
.bksorts{display:flex;gap:6px;flex-wrap:wrap}
.bksort{all:unset;cursor:pointer;font-weight:900;font-size:.82rem;padding:7px 11px;border-radius:99px;background:rgba(255,255,255,.18);color:#fff;border:2px solid rgba(255,255,255,.4);min-height:20px}
.bksort.on{background:#ffd400;color:#14213d;border-color:#14213d}
.bksort:focus-visible{outline:3px solid #fff;outline-offset:2px}
.bkmove{min-height:40px}
.bkmovehint{margin:0 4px 10px;background:#fff3b0;color:#14213d;font-weight:900;border-radius:12px;padding:8px 12px;text-align:center}
.bkopen.moving .pocket.got{cursor:grab;animation:wig 2.6s ease-in-out infinite}
.bkopen.moving .pocket.got:nth-child(2n){animation-delay:-.6s}.bkopen.moving .pocket.got:nth-child(3n){animation-delay:-1.3s}
@keyframes wig{0%,100%{transform:rotate(-1deg)}50%{transform:rotate(1deg)}}
.pocket.sel{outline:4px solid #ffd400;outline-offset:2px;transform:scale(1.06)!important;animation:none!important;z-index:2}
@media (max-width:640px){.bksorts{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:4px}.bksort{flex:none}}
@media (prefers-reduced-motion:reduce){.bkopen.moving .pocket.got{animation:none}}

/* ---------- site pages ---------- */
.seo-copy{max-width:76ch;display:flex;flex-direction:column;gap:10px;margin-top:18px;padding-top:22px;border-top:2.5px dashed color-mix(in srgb,var(--blue) 25%,var(--line));color:var(--ink)}
.seo-copy p{margin:0;line-height:1.65}
.seo-copy a{color:var(--blue-ink);font-weight:800}
.faq{display:flex;flex-direction:column;gap:6px;margin-top:6px}
.faq h3{font-size:1.02rem;font-weight:900;margin:10px 0 0}
.faq p{color:var(--muted)}
.footnav{display:flex;flex-wrap:wrap;gap:2px 18px;margin-bottom:10px}
.footnav a{color:#fff;font-weight:800;text-decoration:none;display:inline-flex;align-items:center;min-height:32px}
.footnav a:hover{text-decoration:underline;color:var(--yellow)}
.pp{display:flex;flex-direction:column;gap:20px}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;font-size:.85rem;font-weight:800;color:var(--muted)}
.crumbs li+li::before{content:"›";margin-right:6px;color:var(--line)}
.crumbs a{color:var(--blue-ink);text-decoration:none}
.crumbs a:hover{text-decoration:underline}
.pp-head{display:flex;flex-direction:column;gap:6px}
.pp-top{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:24px;align-items:center;background:var(--surface);border:3px solid #14213d;border-radius:28px;box-shadow:7px 7px 0 var(--blue);overflow:hidden}
.pp-art{background:radial-gradient(circle at 50% 46%,color-mix(in srgb,var(--tc) 55%,var(--surface)) 0 30%,color-mix(in srgb,var(--tc) 25%,var(--surface)) 31% 100%);padding:24px;display:flex;flex-direction:column;gap:12px;align-items:center;border-right:3px solid #14213d;height:100%;justify-content:center}
.pp-art .pic{width:min(100%,320px)}
.pp-info{padding:24px;display:flex;flex-direction:column;gap:10px}
.pp-info .no{font-family:var(--f-mono);font-weight:700;color:var(--muted)}
.pp-info .genus{font-weight:800;color:var(--muted)}
.pp-lede{margin:4px 0;font-size:1.04rem;line-height:1.6}
.pp-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.pp-cols .panel,.pp>.panel{display:flex;flex-direction:column;gap:10px}
.pp .panel p{margin:0;line-height:1.6}
.stattable{width:100%;border-collapse:collapse;font-size:.9rem}
.stattable th{text-align:left;font-weight:900;color:var(--blue-ink);padding:5px 8px 5px 0;width:78px}
.stattable td{padding:5px 6px}
.stattable td.num{width:44px;text-align:right;font-weight:700}
.stattable .tot th,.stattable .tot td{border-top:2px solid var(--line);padding-top:8px}
.barcell{width:100%}
.evo a{display:inline-block;padding:5px 12px;border-radius:999px;border:2px solid var(--line);font-weight:800;color:var(--ink);text-decoration:none;background:var(--surface)}
.evo a:hover{border-color:var(--blue)}
.evo .evocur{display:inline-block;padding:5px 12px;border-radius:999px;border:2px solid #14213d;background:var(--yellow);color:#14213d;font-weight:800}
.pp-pn{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.pp-pn a{font-weight:900;color:var(--blue-ink);text-decoration:none;padding:10px 14px;border:2.5px solid var(--line);border-radius:14px;background:var(--surface)}
.pp-pn a:hover{border-color:var(--blue)}
.regnav{display:flex;flex-wrap:wrap;gap:8px;position:sticky;top:calc(env(safe-area-inset-top,0px) + 132px);z-index:5;background:var(--bg);padding-block:8px}
.regnav a,.pp .regnav a{font-weight:900;text-decoration:none;color:#fff;background:#3b4cca;padding:6px 14px;border-radius:999px;font-size:.88rem}
.regnav a:hover{background:var(--band-deep)}
.dexreg{display:flex;flex-direction:column;gap:10px;scroll-margin-top:200px}
.dexreg h2 small{font-family:var(--f-body);font-size:.85rem;color:var(--muted);font-weight:700;margin-left:6px}
.dexlist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:6px}
.dexlist a{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:12px;background:var(--surface);border:2px solid var(--line);text-decoration:none;color:var(--ink);font-size:.9rem}
.dexlist a:hover{border-color:var(--blue)}
.dexlist .num{font-size:.72rem;color:var(--muted)}
.dexlist b{font-weight:900;margin-right:auto}
.dexlist .chip{font-size:max(.7rem,11.5px);padding:2px 7px}
.dexlist.small{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}
.dexlist.small a{font-weight:800}
@media (max-width:860px){
  .pp-top,.pp-cols{grid-template-columns:minmax(0,1fr)}
  .pp-art{border-right:0;border-bottom:3px solid #14213d}
  .pp-art .pic{width:min(70%,260px)}
  .regnav{top:calc(env(safe-area-inset-top,0px) + 120px)}
}
.stattable .bar{display:block}
.pp .mrow{grid-template-columns:128px minmax(0,1fr)}
.pp .meter{display:flex;align-items:center;gap:10px;font-weight:800}
.pp .meter .bar{display:block}

.parents{display:flex;flex-direction:column;gap:10px;max-width:76ch}
.parents h2{margin-top:10px}
.parents p,.parents li{line-height:1.6}
.pplist{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}
.codehow{margin:8px 0;padding-left:22px;display:flex;flex-direction:column;gap:6px;line-height:1.45}
.codehow b{color:var(--blue-ink)}
.delbox{padding:14px;border:2.5px dashed var(--line);border-radius:16px}
.tchart-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.tchart{border-collapse:separate;border-spacing:2px;font-size:.78rem;min-width:760px}
.tchart th{padding:2px;font-weight:800}
.tchart th .chip{font-size:max(.6rem,10.5px);padding:2px 5px;display:inline-block;min-width:54px;text-align:center}
.tchart thead th .chip{min-width:0;writing-mode:vertical-rl;transform:rotate(180deg);padding:6px 2px}
.tchart .corner{font-size:.65rem;color:var(--muted);vertical-align:bottom;text-align:left}
.tchart td{width:34px;height:30px;text-align:center;font-weight:900;border-radius:6px;background:var(--surface-2)}
.tchart td.x2{background:#157a40;color:#fff}.tchart td.xh{background:#e7a63a;color:#14213d}.tchart td.x0{background:#14213d;color:#fff}
.tchart a{text-decoration:none}
.tlegend{margin-top:12px}.tlegend i{display:inline-block;width:14px;height:14px;border-radius:4px;vertical-align:-2px;margin-right:4px}
.tlegend i.x2{background:#157a40}.tlegend i.xh{background:#e7a63a}.tlegend i.x0{background:#14213d}
.typegrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}
.typecard{display:flex;flex-direction:column;padding:12px 14px;border-radius:14px;background:color-mix(in srgb,var(--tc) 70%,#0b0f2e);text-decoration:none;border:2px solid #14213d}
.pp a.typecard,.typecard b,.typecard span{color:#fff}
.typecard b{font-size:1.05rem}.typecard span{font-size:.8rem;opacity:.9;font-weight:700}
.pp a{color:var(--blue-ink)}

.chip:not(.lt){background:color-mix(in srgb,var(--tc,var(--t-normal)) 70%,#0b0f2e)}
.dexlist .note{color:var(--muted)}
.typecard[href*="electric"],.typecard[href*="ice"],.typecard[href*="fairy"]{background:color-mix(in srgb,var(--tc) 50%,#0b0f2e)}
.typecard span{opacity:1}
.dexlist.small a{flex-wrap:wrap;row-gap:5px}
.dexlist.small .chips{flex-basis:100%;display:flex;flex-wrap:wrap;gap:4px}
.dexlist.small b{min-width:0;overflow-wrap:anywhere}
.crybtn{font-size:1rem;padding:10px 18px}
.tablewrap{overflow-x:auto;margin-top:8px}
.movetable{width:100%;border-collapse:collapse;font-size:.92rem}
.movetable th{text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:6px 8px;border-bottom:2px solid var(--line)}
.movetable td{padding:6px 8px;border-bottom:1px solid var(--line);white-space:nowrap}
.movetable .chip{font-size:.66rem;padding:2px 8px}
.loclist{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px}
.loclist li{display:grid;grid-template-columns:minmax(150px,auto) 1fr;gap:4px 12px;padding:6px 0;border-bottom:1px solid var(--line)}
.loclist li span{color:var(--muted)}
@media (max-width:560px){.loclist li{grid-template-columns:1fr}}
.pageforms{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.pageforms .pic{width:110px;margin:0 auto}
.pageforms .pic img{opacity:1}
.statsnote{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:90;width:min(560px,calc(100vw - 32px));background:var(--surface);color:var(--ink);border:2.5px solid #14213d;border-radius:18px;box-shadow:0 4px 0 #14213d;padding:10px 12px;display:flex;gap:8px 12px;align-items:center;flex-wrap:wrap;font-size:.82rem}
.statsnote p{margin:0;flex:1 1 240px;line-height:1.4}
.statsnote div{display:flex;gap:8px}
@media (max-width:760px){.statsnote{bottom:calc(84px + env(safe-area-inset-bottom,0px))}}
body.battlefit .statsnote,body.playmode .statsnote{display:none}
.statsnote .snico{font-size:1.8rem;flex:none}
.statsnote .snbtns{display:flex;gap:12px;align-items:center;flex:1 1 100%;justify-content:flex-end}
.statsnote .snyes{font-size:.9rem}
.statsnote .snno{font-size:.9rem}
.anstable{width:100%;border-collapse:collapse;font-size:.95rem}
.anstable th,.anstable td{padding:8px 10px;border-bottom:1.5px solid var(--line);text-align:left}
.anstable thead th{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.anstable a{font-weight:800}
