@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@600;700;800;900&family=Rajdhani:wght@500;600;700&display=swap');

:root{--boom-cyan:#50e8ff;--boom-blue:#5577ff;--boom-violet:#bd54ff;--boom-gold:#ffda45;--boom-green:#48efad;--boom-ink:#030718;--boom-card:rgba(8,16,40,.86);--boom-line:rgba(94,225,255,.22);--boom-text:#f1f5ff;--boom-muted:#9eaccb}
html{background:#030718;scroll-behavior:smooth}
body.boom-core{position:relative;background-color:var(--boom-ink)!important;background-image:radial-gradient(circle at 9% 3%,rgba(26,90,184,.44),transparent 31%),radial-gradient(circle at 92% 11%,rgba(129,36,166,.36),transparent 34%),radial-gradient(circle at 50% 95%,rgba(0,207,220,.16),transparent 40%),linear-gradient(180deg,#05091b 0%,#020512 100%)!important;background-attachment:fixed!important;color:var(--boom-text);overflow-x:hidden}
body.boom-core:before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.5;background-image:linear-gradient(rgba(78,218,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(78,218,255,.055) 1px,transparent 1px),radial-gradient(circle at 12% 18%,#fff 0 1px,transparent 1.5px),radial-gradient(circle at 72% 26%,#fff 0 1px,transparent 1.5px),radial-gradient(circle at 41% 61%,#60eaff 0 1px,transparent 1.5px);background-size:72px 72px,72px 72px,271px 271px,337px 337px,223px 223px;transform:perspective(700px) rotateX(58deg) scale(1.8) translateY(17%);transform-origin:center bottom;animation:boomGrid 18s linear infinite}
body.boom-core:after{content:"";position:fixed;z-index:0;pointer-events:none;width:620px;height:620px;right:-260px;top:18%;border:2px solid rgba(132,83,255,.12);border-radius:50%;box-shadow:0 0 0 55px rgba(75,232,255,.035),0 0 0 130px rgba(184,70,255,.03);animation:boomOrbit 22s linear infinite}
body.boom-core>*{position:relative;z-index:1}
@keyframes boomGrid{to{background-position:0 72px,72px 0,0 0,0 0,0 0}}
@keyframes boomOrbit{to{transform:rotate(360deg)}}

.boom-core .wrap{width:min(1180px,calc(100% - 28px));max-width:1180px!important;margin:0 auto!important;padding-top:82px}
.boom-core h1,.boom-core .title,.boom-core .title-pill,.boom-core .hero-title{font-family:Orbitron,sans-serif!important;text-transform:uppercase!important;letter-spacing:.08em!important;color:#f4f7ff!important;background:none!important;box-shadow:none!important;padding:0!important;border-radius:0!important;text-shadow:0 0 30px rgba(80,232,255,.25)!important}
.boom-core h1:after,.boom-core .title:after,.boom-core .title-pill:after{content:"";display:block;width:62px;height:4px;margin:12px auto 0;border-radius:9px;background:linear-gradient(90deg,var(--boom-cyan),var(--boom-violet));box-shadow:0 0 18px var(--boom-cyan)}
.boom-core .sub{color:var(--boom-muted)!important;opacity:1!important;font-size:1.03rem!important;letter-spacing:.025em}
.boom-core .card,.boom-core .board,.boom-core .session-bar,.boom-core .snake-board,.boom-core .rules,.boom-core .showcase,.boom-core .stats .stat,.boom-core .summary .box,.boom-core .gyms-panel,.boom-core .missions-panel,.boom-core .eggs-panel,.boom-core .ach-preview{background:linear-gradient(145deg,rgba(15,28,62,.92),rgba(5,10,28,.94))!important;border:1px solid var(--boom-line)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 22px 65px rgba(0,0,0,.3)!important;backdrop-filter:blur(18px)}
.boom-core button,.boom-core .go,.boom-core .login-btn{transition:transform .18s ease,filter .18s ease,box-shadow .18s ease!important}
.boom-core button:hover,.boom-core .go:hover,.boom-core .login-btn:hover{transform:translateY(-2px);filter:brightness(1.08);box-shadow:0 8px 25px rgba(80,232,255,.2)}
.boom-core input{background:rgba(1,5,18,.72)!important;border-color:rgba(80,232,255,.27)!important;color:#fff!important}

/* Login command center */
body.boom-login{justify-content:center!important;padding:70px 20px!important}
.boom-login .logo{position:relative;font-size:clamp(1.25rem,4vw,2rem)!important;color:#fff!important;background:none!important;box-shadow:none!important;padding:0!important;letter-spacing:.18em!important;margin-bottom:8px!important}
.boom-login .logo:before{content:"TRAINER ACCESS //";display:block;color:var(--boom-cyan);font:700 10px Orbitron,sans-serif;letter-spacing:.22em;margin-bottom:12px}
.boom-login .logo:after{content:"";position:absolute;width:230px;height:230px;border:1px solid rgba(80,232,255,.12);border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 28px rgba(80,232,255,.025),0 0 70px rgba(80,232,255,.1);z-index:-1}
.boom-login .sprites{height:92px;align-items:center;margin:8px 0 18px!important}
.boom-login .sprites img{width:64px!important;height:64px!important;filter:drop-shadow(0 15px 18px rgba(0,0,0,.65)) drop-shadow(0 0 14px rgba(80,232,255,.28))!important;animation:boomBob 3.4s ease-in-out infinite}
.boom-login .sprites img:nth-child(2){width:88px!important;height:88px!important;animation-delay:.35s}.boom-login .sprites img:nth-child(3){animation-delay:.7s}
@keyframes boomBob{50%{transform:translateY(-10px)}}
.boom-login .card{max-width:540px!important;border-radius:26px!important;padding:28px!important;position:relative;overflow:hidden}
.boom-login .card:before{content:"SECURE TIKTOK ID";display:block;font:800 10px Orbitron,sans-serif;letter-spacing:.16em;color:var(--boom-green);margin-bottom:18px}
.boom-login label{font-family:Orbitron,sans-serif!important;font-size:.65rem!important}.boom-login input{border-radius:14px!important;padding:15px 16px!important}.boom-login button{min-height:52px;border-radius:14px!important;font-family:Orbitron,sans-serif!important;font-size:.72rem!important}.boom-login .primary{background:linear-gradient(135deg,var(--boom-cyan),#6684ff)!important}.boom-login .secondary{border-color:rgba(80,232,255,.38)!important}.boom-login .verify-box{background:rgba(255,218,69,.07)!important;border-color:rgba(255,218,69,.4)!important}

/* Game selector */
.boom-play .wrap{max-width:1120px!important}.boom-play .grid{grid-template-columns:repeat(3,1fr)!important;gap:18px!important}.boom-play .game-card{min-height:310px;justify-content:center;border-radius:24px!important;background:linear-gradient(155deg,rgba(17,31,69,.95),rgba(5,10,28,.96))!important;border:1px solid var(--boom-line)!important;box-shadow:0 22px 60px rgba(0,0,0,.28);isolation:isolate}
.boom-play .game-card:before{content:"";position:absolute;inset:auto -20% -52% -20%;height:75%;border-radius:50%;background:radial-gradient(circle,rgba(80,232,255,.18),transparent 64%);z-index:-1;transition:.3s}.boom-play .game-card:hover:before{transform:scale(1.25);background:radial-gradient(circle,rgba(189,84,255,.2),transparent 64%)}
.boom-play .game-card:hover{transform:translateY(-7px)!important;box-shadow:0 24px 60px rgba(52,183,255,.15)!important}.boom-play .game-card h2{font-size:1.05rem!important;color:#fff!important}.boom-play .game-card .sprites img{width:55px!important;height:55px!important}.boom-play .game-card .sprites img:nth-child(2){width:68px!important;height:68px!important}.boom-play .game-card .go{background:linear-gradient(135deg,var(--boom-cyan),#6673ff)!important}.boom-play .session-bar{border-radius:18px!important;margin:22px 0!important}.boom-play .floaters{position:absolute;right:5%;top:75px;opacity:.75}

/* Daily spin reactor */
.boom-spin .wrap{max-width:880px!important}.boom-spin .card{max-width:620px;margin:20px auto;border-radius:30px!important;padding:28px!important}.boom-spin .wheel-area{filter:drop-shadow(0 18px 40px rgba(0,0,0,.6))}.boom-spin #wheel{border-color:rgba(255,255,255,.3)!important;box-shadow:0 0 0 5px rgba(80,232,255,.26),0 0 70px rgba(80,232,255,.3)!important}.boom-spin .center-cap{box-shadow:0 0 0 8px rgba(6,10,30,.6),0 0 28px rgba(255,255,255,.2)!important}.boom-spin button#spin-btn{background:linear-gradient(135deg,#ffe258,#ff943d)!important;box-shadow:0 12px 35px rgba(255,173,52,.3)!important}.boom-spin .floaters img{image-rendering:auto!important}

/* Ranking arena */
.boom-ranking .wrap{max-width:1240px!important}.boom-ranking .boards{gap:18px!important}.boom-ranking .board{border-radius:24px!important;padding:20px!important}.boom-ranking .board-head{border-bottom-color:rgba(80,232,255,.16)!important;padding-bottom:14px!important}.boom-ranking .row{border-radius:13px!important;margin-bottom:7px!important;padding:11px!important;background:rgba(255,255,255,.025)!important}.boom-ranking .row.top1{background:linear-gradient(90deg,rgba(255,218,69,.17),rgba(255,218,69,.02))!important;box-shadow:0 0 30px rgba(255,218,69,.07)}.boom-ranking .crown-banner{border-radius:22px!important;background:linear-gradient(135deg,rgba(255,218,69,.13),rgba(80,232,255,.06))!important}.boom-ranking .floaters img{filter:drop-shadow(0 0 22px rgba(80,232,255,.33))!important}

/* National scanner */
.boom-national .wrap{max-width:1280px!important}.boom-national .stats{margin:25px 0!important}.boom-national .stat{min-width:160px!important;border-radius:18px!important;padding:15px!important}.boom-national .filters{position:sticky;top:16px;z-index:10;padding:10px;border:1px solid var(--boom-line);border-radius:18px;background:rgba(4,9,25,.82);backdrop-filter:blur(18px)}.boom-national .grid{grid-template-columns:repeat(auto-fill,minmax(132px,1fr))!important;gap:13px!important}.boom-national .cell{min-height:160px;border-radius:20px!important;padding:18px 9px 12px!important;background:linear-gradient(155deg,rgba(15,28,62,.91),rgba(5,10,27,.94))!important;overflow:hidden}.boom-national .cell:after{content:"";position:absolute;width:90px;height:90px;left:50%;top:31px;transform:translateX(-50%);border:1px solid rgba(80,232,255,.1);border-radius:50%;box-shadow:0 0 0 13px rgba(80,232,255,.025);z-index:0}.boom-national .cell>*{position:relative;z-index:1}.boom-national .cell img{width:88px!important;height:88px!important;image-rendering:auto!important;filter:drop-shadow(0 12px 10px rgba(0,0,0,.65))}.boom-national .cell:hover{transform:translateY(-6px) scale(1.02)!important;border-color:rgba(80,232,255,.65)!important;box-shadow:0 22px 45px rgba(0,0,0,.35),0 0 25px rgba(80,232,255,.1)!important}.boom-national .cell.missing img{filter:grayscale(1) brightness(.4)!important}.boom-national #modal .panel{border-radius:26px!important;background:linear-gradient(150deg,#111d43,#050a1d)!important;border:1px solid rgba(80,232,255,.4)!important}

/* Trophy vault */
.boom-achievements .wrap{max-width:1160px!important}.boom-achievements .summary{margin:24px 0!important}.boom-achievements .summary .box{min-width:150px!important;border-radius:18px!important;padding:16px!important}.boom-achievements .showcase{max-width:900px!important;border-radius:24px!important}.boom-achievements .grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))!important;gap:16px!important}.boom-achievements .trophy{min-height:220px;display:flex;flex-direction:column;justify-content:center;border-radius:22px!important;background:linear-gradient(155deg,rgba(16,29,64,.9),rgba(5,10,27,.94))!important}.boom-achievements .trophy.unlocked{border-color:rgba(255,218,69,.75)!important;background:linear-gradient(155deg,rgba(58,49,58,.96),rgba(20,20,42,.96))!important}.boom-achievements .trophy:hover{transform:translateY(-7px)!important;box-shadow:0 20px 50px rgba(0,0,0,.4),0 0 25px rgba(80,232,255,.1)}.boom-achievements .cup{font-size:3.2rem!important}

/* Trainer profile / Pokédex */
.boom-profile .wrap{max-width:1180px!important}.boom-profile .hero-title{display:block!important;text-align:center!important;font-size:clamp(1.5rem,4vw,2.3rem)!important}.boom-profile .profile{border:1px solid var(--boom-line)!important;border-radius:26px!important;background:linear-gradient(145deg,rgba(15,28,62,.92),rgba(5,10,28,.94))!important;box-shadow:0 25px 70px rgba(0,0,0,.35)!important;padding:26px!important}.boom-profile .avatar-ring{box-shadow:0 0 0 6px rgba(80,232,255,.08),0 0 35px rgba(80,232,255,.22)!important}.boom-profile .stat,.boom-profile .stone{border-radius:18px!important;background:linear-gradient(145deg,rgba(15,28,62,.9),rgba(5,10,28,.94))!important;border-color:var(--boom-line)!important}.boom-profile .card{border-radius:20px!important}.boom-profile .poke-card{transition:transform .18s,box-shadow .18s}.boom-profile .poke-card:hover{transform:translateY(-5px);box-shadow:0 20px 40px rgba(0,0,0,.35),0 0 22px rgba(80,232,255,.1)!important}

@media(max-width:820px){.boom-core .wrap{padding-top:58px}.boom-play .grid{grid-template-columns:1fr 1fr!important}.boom-play .floaters{position:static}.boom-ranking .boards{grid-template-columns:1fr!important}.boom-national .grid{grid-template-columns:repeat(auto-fill,minmax(105px,1fr))!important}}
@media(max-width:560px){body.boom-core{padding-left:10px!important;padding-right:10px!important}.boom-core .wrap{width:100%}.boom-play .grid{grid-template-columns:1fr!important}.boom-play .game-card{min-height:270px}.boom-login .card{padding:22px 16px!important}.boom-login .row{flex-direction:column}.boom-spin .card{padding:20px 12px!important}.boom-national .stat{min-width:calc(50% - 8px)!important}.boom-national .grid{grid-template-columns:repeat(3,1fr)!important;gap:7px!important}.boom-national .cell{min-height:135px;padding:14px 4px 8px!important}.boom-national .cell img{width:70px!important;height:70px!important}.boom-achievements .grid{grid-template-columns:1fr 1fr!important;gap:9px!important}.boom-achievements .trophy{min-height:190px;padding:13px 8px!important}.boom-profile .wrap{padding-top:55px}}
@media(prefers-reduced-motion:reduce){body.boom-core:before,body.boom-core:after,.boom-core *{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}
