:root{
  --g20-deep:#061f2d;--g20-deeper:#04141e;--g20-green:#0b7856;--g20-green2:#13a36c;
  --g20-yellow:#ffd43b;--g20-yellow2:#ffbd18;--g20-red:#eb4652;--g20-blue:#3187f5;
  --g20-ink:#102333;--g20-muted:#6f7f8d;--g20-line:#dce5e8;--g20-paper:#fff;--g20-soft:#f3f7f6;
}
html,body{margin:0;min-height:100%;background:#071923;color:var(--g20-ink);font-family:ui-rounded,"SF Pro Rounded","Aptos","Segoe UI",system-ui,-apple-system,BlinkMacSystemFont,sans-serif;overscroll-behavior:none}
.db-game-body *{box-sizing:border-box}.db-game-body [hidden]{display:none!important}.db-game-body button,.db-game-body input{font:inherit}.db-game-body button,.db-game-body a{-webkit-tap-highlight-color:transparent}.db-game-body a{text-decoration:none;color:inherit}.db-game-body button{cursor:pointer}.db-game-body img{max-width:100%}

/* loader */
.db-game-loader{position:fixed;inset:0;z-index:99999;display:grid;place-items:center;align-content:center;text-align:center;background:radial-gradient(circle at 50% 30%,#0c644c,#061f2d 60%,#04141e);color:#fff;transition:.4s ease;pointer-events:none}.db-game-loader.hidden{opacity:0;visibility:hidden}.db-loader-ring{width:112px;height:112px;border-radius:50%;border:3px solid rgba(255,255,255,.15);display:grid;place-items:center;position:relative}.db-loader-ring:after{content:"";position:absolute;inset:-3px;border-radius:50%;border:3px solid transparent;border-top-color:var(--g20-yellow);animation:g20spin 1s linear infinite}.db-loader-ring img{height:94px;object-fit:contain;filter:drop-shadow(0 12px 15px rgba(0,0,0,.28))}.db-loader-ball{font-size:30px;margin-top:-12px;animation:g20ball .8s ease-in-out infinite alternate}.db-game-loader>small{font-size:10px;font-weight:950;letter-spacing:.14em;color:#94cdb8;margin-top:12px}.db-game-loader>b{font-size:15px;margin-top:4px}.db-game-loader>span{width:190px;height:5px;border-radius:999px;background:rgba(255,255,255,.12);overflow:hidden;margin-top:15px}.db-game-loader>span i{display:block;width:35%;height:100%;border-radius:inherit;background:var(--g20-yellow);animation:g20load 1s ease-in-out infinite}@keyframes g20spin{to{transform:rotate(360deg)}}@keyframes g20ball{to{transform:translateY(-8px) rotate(15deg)}}@keyframes g20load{from{transform:translateX(-110%)}to{transform:translateX(320%)}}

/* shell / app bar */
.db-game-shell{min-height:100vh;background:linear-gradient(180deg,#eef4f1 0,#f7faf9 55%,#eef3f1 100%);padding-bottom:76px}.db-game-appbar{height:68px;position:sticky;top:0;z-index:5000;background:rgba(255,255,255,.94);border-bottom:1px solid #dce7e2;backdrop-filter:blur(18px);display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:10px;padding:0 18px;box-shadow:0 7px 24px rgba(6,48,36,.06)}.db-game-back,.db-sound-toggle{width:42px;height:42px;border:1px solid #dce7e2;background:#f8fbf9;border-radius:13px;display:grid;place-items:center;font-size:22px;font-weight:1000;color:#17362a}.db-sound-toggle{font-size:17px}.db-game-brand{display:flex;align-items:center;gap:10px;justify-self:start;min-width:0}.db-game-brand img{width:42px;height:42px;object-fit:contain}.db-game-brand div{display:flex;flex-direction:column;line-height:1.04;min-width:0}.db-game-brand small{font-size:9px;font-weight:900;letter-spacing:.09em;color:#708079;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.db-game-brand b{font-size:16px;font-weight:1000;color:#102c23}.db-game-brand b span{color:#07805a}

.db-game-main{max-width:1220px;margin:0 auto;padding:18px}.db-screen{display:none}.db-screen.active{display:block}

/* HOME */
#gameHome{display:none;grid-template-columns:minmax(0,1.08fr) minmax(350px,.92fr);grid-template-areas:"hero player" "hero actions" "rank rank";gap:14px}#gameHome.active{display:grid}
.db-hero-v72{grid-area:hero;min-height:470px;border-radius:27px;background:linear-gradient(145deg,#06251e,#087052);position:relative;overflow:hidden;color:#fff;box-shadow:0 20px 54px rgba(5,62,45,.17)}.db-hero-v72:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,26,21,.06),rgba(4,26,21,.7));pointer-events:none}.db-hero-photo{position:absolute;inset:0}.db-hero-photo>img:first-child{width:100%;height:100%;object-fit:cover;opacity:.52;filter:saturate(.85) contrast(1.04)}.db-hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,38,29,.92) 0,rgba(4,38,29,.62) 48%,rgba(4,38,29,.05) 100%)}.db-hero-keeper-v72{position:absolute!important;right:-1%!important;bottom:-5%!important;height:83%!important;width:auto!important;object-fit:contain!important;filter:drop-shadow(0 20px 24px rgba(0,0,0,.35));z-index:2;animation:g20keeperFloat 3.6s ease-in-out infinite}@keyframes g20keeperFloat{50%{transform:translateY(-6px)}}
.db-hero-copy-v72{position:absolute;left:34px;top:44px;z-index:4;max-width:58%}.db-game-chip{display:inline-flex;padding:8px 10px;border-radius:999px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.14);font-size:10px;font-weight:950;letter-spacing:.12em}.db-hero-copy-v72 h1{font-size:clamp(44px,5.2vw,70px);line-height:.88;letter-spacing:-.06em;font-weight:1000;margin:20px 0 14px}.db-hero-copy-v72 h1 strong{display:block;color:var(--g20-yellow)}.db-hero-copy-v72 p{font-size:14px;line-height:1.55;color:#d0e5dc;max-width:500px}.db-hero-badges{display:flex;gap:7px;flex-wrap:wrap;margin-top:18px}.db-hero-badges span{font-size:10px;font-weight:900;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1);padding:7px 9px;border-radius:999px}.db-independence-note{position:absolute;left:34px;bottom:24px;z-index:4;display:flex;align-items:center;gap:9px;max-width:65%;font-size:10px;color:#b8d1c7}.db-independence-note i{width:27px;height:27px;border-radius:9px;background:rgba(255,255,255,.1);display:grid;place-items:center;font-style:normal;color:#7de3b6}.db-independence-note b{color:#fff}

.db-player-card{grid-area:player;background:#fff;border:1px solid #dbe6e1;border-radius:22px;padding:20px;box-shadow:0 9px 26px rgba(5,52,38,.07)}.db-player-intro>div>small,.db-returning-player small{font-size:9px;font-weight:950;letter-spacing:.11em;color:#07805a}.db-player-intro h2,.db-returning-player h2{font-size:22px;letter-spacing:-.03em;margin:3px 0 6px;font-weight:1000}.db-player-intro p,.db-returning-player p{font-size:11px;color:#6e7f77;margin:0 0 14px;line-height:1.5}.db-alias-input{height:52px;border:1px solid #d8e4de;border-radius:14px;background:#fafcfb;display:grid;grid-template-columns:32px 1fr auto;align-items:center;padding:0 11px;gap:6px}.db-alias-input input{border:0;outline:0;background:transparent;min-width:0;font-size:14px;font-weight:850;color:#16342a}.db-alias-input>b{font-size:9px;color:#7b8b83}.db-alias-suggestions{display:flex;gap:5px;overflow-x:auto;scrollbar-width:none;margin:9px 0}.db-alias-suggestions::-webkit-scrollbar{display:none}.db-alias-suggestions button{border:1px solid #dce7e1;background:#f5f9f7;border-radius:999px;padding:7px 9px;white-space:nowrap;font-size:9px;color:#52675d}.db-alias-safe{display:flex;gap:8px;background:#eff7f3;border-radius:11px;padding:9px;margin:9px 0 12px}.db-alias-safe p{font-size:9px;margin:0;color:#677b70}.db-primary-btn,.db-secondary-btn,.db-text-btn{min-height:46px;border-radius:13px;font-weight:950;font-size:11px;padding:0 15px}.db-primary-btn{width:100%;border:0;background:linear-gradient(135deg,#07805a,#0aa56f);color:#fff;box-shadow:0 10px 22px rgba(8,128,90,.16);display:flex;align-items:center;justify-content:center;gap:10px}.db-primary-btn span{font-size:16px}.db-returning-player{display:grid;grid-template-columns:54px 1fr auto;gap:11px;align-items:center}.db-avatar{width:52px;height:52px;border-radius:16px;background:#eaf6f0;display:grid;place-items:center;font-size:23px}.db-returning-player p{margin:0}.db-edit-alias{border:1px solid #dce7e1;background:#f8faf9;border-radius:11px;padding:8px 10px;font-size:9px;font-weight:900}

.db-home-actions{grid-area:actions;background:#fff;border:1px solid #dbe6e1;border-radius:22px;padding:15px;box-shadow:0 9px 26px rgba(5,52,38,.06)}.db-play-main{width:100%;border:0;border-radius:16px;background:linear-gradient(135deg,var(--g20-yellow),var(--g20-yellow2));color:#2f3217;padding:15px;display:grid;grid-template-columns:46px 1fr auto;gap:10px;align-items:center;text-align:left;box-shadow:0 10px 22px rgba(232,182,16,.18);transition:.2s}.db-play-main:hover{transform:translateY(-2px)}.db-play-icon{width:45px;height:45px;border-radius:14px;background:rgba(255,255,255,.6);display:grid;place-items:center;font-size:17px}.db-play-main small{display:block;font-size:8px;font-weight:950;letter-spacing:.1em}.db-play-main b{display:block;font-size:17px;font-weight:1000}.db-play-main>i{font-style:normal;font-size:27px}.db-home-action-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:8px}.db-home-action-grid button{border:1px solid #dbe6e1;background:#f8faf9;border-radius:14px;padding:11px;text-align:left}.db-home-action-grid i{display:block;font-style:normal;font-size:20px}.db-home-action-grid b{display:block;font-size:11px;margin-top:7px}.db-home-action-grid span{display:block;font-size:9px;color:#74857c;margin-top:2px}

.db-live-ranking-preview{grid-area:rank;background:#fff;border:1px solid #dbe6e1;border-radius:22px;padding:18px;box-shadow:0 9px 26px rgba(5,52,38,.06)}.db-section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.db-section-title small{font-size:8px;font-weight:950;letter-spacing:.12em;color:#0a815b}.db-section-title h3{font-size:19px;margin:2px 0 0;font-weight:1000}.db-section-title button{width:36px;height:36px;border:1px solid #dce7e1;border-radius:11px;background:#f8faf9;font-size:18px}.db-ranking-preview{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.db-rank-row{border:1px solid #e0e8e4;border-radius:14px;padding:10px;background:#fafcfb;display:flex;flex-direction:column;gap:6px;min-width:0}.db-rank-row.top{background:#fffaf0;border-color:#eedf9e}.db-rank-pos{font-size:18px}.db-rank-row>span:nth-child(2){min-width:0}.db-rank-row>span:nth-child(2)b{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.db-rank-row>span:nth-child(2) small{display:block;font-size:8px;color:#74857c;margin-top:2px}.db-rank-score b{font-size:12px}.db-rank-score small{font-size:8px;color:#7b8b83;display:block}.db-mini-loading,.db-empty-state{min-height:100px;display:grid;place-items:center;text-align:center;color:#6d7e76;font-size:11px}.db-empty-state i{font-style:normal;font-size:24px}.db-empty-state b{font-size:13px}.db-empty-state p{margin:3px 0 0;font-size:10px}.db-service-error button{border:0;background:#0b7856;color:#fff;border-radius:10px;padding:8px 11px;font-size:10px;font-weight:900;margin-top:7px}

/* bottom nav */
.db-game-nav{position:fixed;left:50%;transform:translateX(-50%);bottom:10px;z-index:6000;width:min(580px,calc(100% - 20px));height:64px;background:rgba(255,255,255,.96);border:1px solid #d6e3dd;border-radius:20px;box-shadow:0 15px 40px rgba(4,43,33,.2);backdrop-filter:blur(16px);display:flex;padding:5px}.db-game-nav>a,.db-game-nav>button{flex:1;border:0;background:transparent;color:#718179;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}.db-game-nav i{font-style:normal;font-size:18px}.db-game-nav span{font-size:8px;font-weight:900}.db-game-nav .active{color:#087653;background:#edf7f2}.db-game-nav .main{background:#073f32;color:#fff;transform:translateY(-8px);box-shadow:0 9px 18px rgba(5,58,44,.22)}.db-game-nav .main i{font-size:23px}.db-game-footer{max-width:1220px;margin:16px auto 0;text-align:center;padding:15px 16px 82px;color:#708079;font-size:9px}.db-game-footer b{color:#314b40}

/* sheets */
.db-sheet-backdrop{position:fixed;inset:0;z-index:9000;background:rgba(2,21,17,.58);display:flex;align-items:flex-end;justify-content:center;padding:16px;backdrop-filter:blur(6px)}.db-sheet{width:min(740px,100%);max-height:88vh;overflow:auto;background:#fff;border-radius:25px;padding:13px 18px 20px;box-shadow:0 28px 80px rgba(0,0,0,.26)}.db-sheet-handle{width:42px;height:5px;border-radius:999px;background:#d7e0dc;margin:0 auto 11px}.db-sheet-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-bottom:12px;border-bottom:1px solid #e1e9e5}.db-sheet-head small{font-size:8px;font-weight:950;color:#07805a;letter-spacing:.1em}.db-sheet-head h2{font-size:21px;margin:2px 0 0}.db-sheet-head button{width:38px;height:38px;border:0;border-radius:11px;background:#f0f5f2;font-size:20px}.db-difficulty-block{padding:14px 0}.db-difficulty-block>small{font-size:8px;font-weight:950;color:#6d7e76;letter-spacing:.1em}.db-difficulty-selector{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:8px 0}.db-difficulty-selector button{border:1px solid #dce7e1;background:#f8faf9;border-radius:14px;padding:11px;display:flex;flex-direction:column;align-items:flex-start;text-align:left}.db-difficulty-selector button.active{background:#eaf7f1;border-color:#8ec9af;box-shadow:inset 0 0 0 1px #8ec9af}.db-difficulty-selector i{font-style:normal;font-size:22px}.db-difficulty-selector b{font-size:11px;margin-top:5px}.db-difficulty-selector span{font-size:8px;color:#74857d}.db-difficulty-block p{font-size:9px;color:#708178;margin:0}.db-mode-list{display:flex;flex-direction:column;gap:7px}.db-mode-card{border:1px solid #dce7e1;background:#fff;border-radius:15px;padding:12px;display:grid;grid-template-columns:44px 1fr auto;gap:10px;align-items:center;text-align:left}.db-mode-card>i{width:43px;height:43px;border-radius:12px;background:#eff6f2;display:grid;place-items:center;font-style:normal;font-size:21px}.db-mode-card b{display:block;font-size:12px}.db-mode-card span{display:block;font-size:9px;color:#6d7f76;margin-top:2px}.db-mode-card em{font-style:normal;font-size:23px;color:#8b9892}
.db-filter-scroll{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin-top:9px}.db-filter-scroll::-webkit-scrollbar{display:none}.db-filter-scroll button{border:1px solid #dce7e1;background:#f7faf8;border-radius:999px;padding:8px 10px;font-size:9px;font-weight:900;white-space:nowrap}.db-filter-scroll button.active{background:#073f32;color:#fff;border-color:#073f32}.db-ranking-controlbar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:10px 0}.db-ranking-live{display:flex;align-items:center;gap:8px}.db-ranking-live i{width:8px;height:8px;border-radius:50%;background:#25c77b;box-shadow:0 0 0 5px rgba(37,199,123,.12)}.db-ranking-live b{display:block;font-size:10px}.db-ranking-live span{display:block;font-size:8px;color:#718179}.db-ranking-search{height:40px;border:1px solid #dce7e1;border-radius:12px;padding:0 10px;display:flex;align-items:center;gap:7px}.db-ranking-search input{border:0;outline:0;min-width:0}.db-ranking-table-head{display:grid;grid-template-columns:55px 1fr 90px 90px 90px;gap:8px;padding:8px 9px;font-size:8px;font-weight:950;color:#718179}.db-full-ranking{display:flex;flex-direction:column;gap:5px}.db-ranking-line.v11{display:grid;grid-template-columns:55px 1fr 90px 90px 90px;gap:8px;align-items:center;border:1px solid #e0e8e4;background:#fafcfb;border-radius:12px;padding:8px}.db-v11-pos{display:flex;align-items:center;gap:4px}.db-v11-number{font-size:8px}.db-v11-player{display:flex;align-items:center;gap:8px;min-width:0}.db-v11-avatar{width:34px;height:34px;border-radius:10px;background:#e9f5ef;display:grid;place-items:center;font-weight:1000}.db-v11-player>span:last-child{min-width:0}.db-v11-player b{font-size:10px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.db-v11-player small{font-size:8px;color:#718179}.db-v11-rank-you{font-size:7px;font-style:normal;background:#e6f6ee;color:#077451;padding:2px 4px;border-radius:999px;margin-left:4px}.db-v11-metric b{font-size:10px;display:block}.db-v11-metric small{font-size:7px;color:#75857c}.db-record-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:12px}.db-record-stat{border:1px solid #dce7e1;border-radius:13px;padding:11px;background:#fafcfb}.db-record-stat small{font-size:7px;font-weight:950;color:#74857d}.db-record-stat b{display:block;font-size:20px}.db-achievement-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin-top:10px}.db-achievement-card{border:1px solid #dce7e1;border-radius:12px;padding:10px;display:grid;grid-template-columns:35px 1fr;gap:7px}.db-achievement-card i{grid-row:1/3;font-style:normal;font-size:22px}.db-achievement-card b{font-size:10px}.db-achievement-card span{font-size:8px;color:#718179}.db-last-games{margin-top:12px}.db-last-games h3{font-size:13px}.db-last-game{display:flex;justify-content:space-between;gap:8px;padding:8px 0;border-top:1px solid #e3ebe7;font-size:9px}

/* PLAY SCREEN */
body.playing{overflow:hidden;background:#031219}.db-screen#gamePlay.active{position:fixed;inset:0;z-index:7000;background:#04131b;display:flex;flex-direction:column;padding:0}.db-game-hud{height:58px;flex:0 0 auto;background:rgba(5,24,32,.94);border-bottom:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;gap:6px;padding:6px 10px;color:#fff;position:relative;z-index:20}.db-hud-close,.db-fullscreen-btn{width:40px;height:40px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.07);color:#fff;border-radius:11px;font-size:20px}.db-hud-item{min-width:78px;height:42px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.05);border-radius:10px;padding:5px 10px;display:flex;flex-direction:column;align-items:center;justify-content:center}.db-hud-item small{font-size:7px;color:#93aaa9;font-weight:900}.db-hud-item b{font-size:15px;line-height:1.1}.db-hud-item.accent{background:#0c684e}.db-hud-item.lives-hud b{font-size:12px;white-space:nowrap}.db-play-meta{height:32px;flex:0 0 auto;background:#09232c;color:#b9cecd;display:flex;justify-content:center;gap:7px;align-items:center}.db-play-meta span{font-size:8px;font-weight:900;background:rgba(255,255,255,.05);padding:5px 8px;border-radius:999px}.db-orientation-chip{display:none}
.db-stage-wrap{flex:1;min-height:0;display:grid;place-items:center;background:#020b10;padding:0;overflow:hidden}.db-stage{position:relative;width:min(100%,calc((100vh - 90px)*1.7777778));height:min(calc(100vh - 90px),56.25vw);aspect-ratio:16/9;overflow:hidden;background:#102b22;touch-action:none;user-select:none}.db-scene-canvas{position:absolute;inset:0;overflow:hidden}.db-scene-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.db-stage-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,23,20,.05),rgba(5,23,20,.13))}.db-court-overlay{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.db-court-glass{position:absolute;inset:0;background:radial-gradient(circle at 50% 35%,transparent 0 25%,rgba(1,10,8,.08) 76%,rgba(1,10,8,.28) 100%)}.db-real-goal{position:absolute;left:42%;width:16%;top:var(--db-goal-top,40.915%);height:var(--db-goal-height,25.505%);z-index:5}.db-target-zones{position:absolute;inset:0;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr);opacity:.08}.db-target-zones span{border:1px dashed #fff}.db-goal-scan{position:absolute;inset:0;border:2px solid rgba(255,255,255,.25);box-shadow:0 0 28px rgba(255,255,255,.08) inset}.db-keeper-shadow{position:absolute;left:50%;bottom:0;width:34%;height:12%;border-radius:50%;background:rgba(0,0,0,.28);filter:blur(7px);transform:translateX(-50%)}.db-keeper{position:absolute;left:50%;bottom:2%;height:94%;width:auto;max-width:none;transform:translateX(-50%);transform-origin:50% 100%;filter:drop-shadow(0 8px 7px rgba(0,0,0,.35));will-change:left,transform}.db-goal-flash{position:absolute;inset:0;background:radial-gradient(circle,rgba(255,230,93,.7),transparent 65%);opacity:0}.db-goal-flash.go{animation:g20flash .45s ease}@keyframes g20flash{50%{opacity:1}}.db-target-reticle{position:absolute;width:22px;height:22px;border:2px solid var(--g20-yellow);border-radius:50%;transform:translate(-50%,-50%) scale(.6);opacity:0;box-shadow:0 0 0 5px rgba(255,212,59,.16)}.db-target-reticle.show{animation:g20ret .7s ease}@keyframes g20ret{0%{opacity:0;transform:translate(-50%,-50%) scale(1.8)}35%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-50%) scale(.7)}}
.db-game-vignette{position:absolute;inset:0;box-shadow:inset 0 0 90px rgba(0,0,0,.25);pointer-events:none;z-index:7}.db-crowd{position:absolute;left:2%;right:2%;top:2%;height:16%;z-index:9;pointer-events:none;opacity:.45}.db-crowd-people{display:flex;justify-content:space-around;color:#fff;font-size:9px;opacity:.6}.db-crowd>b{position:absolute;left:50%;top:7px;transform:translateX(-50%);font-size:22px;color:#fff;opacity:0}.db-crowd.goal>b,.db-crowd.record>b,.db-crowd.save>b{animation:g20crowd 1.2s ease}.db-crowd.goal>b,.db-crowd.record>b{color:var(--g20-yellow)}@keyframes g20crowd{20%{opacity:1;transform:translateX(-50%) scale(1.25)}80%{opacity:1}100%{opacity:0}}.db-salesian-phrase{position:absolute;left:50%;top:11%;transform:translate(-50%,-10px);z-index:12;background:rgba(4,26,22,.82);color:#fff;border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:8px 11px;display:flex;gap:7px;align-items:center;font-size:9px;opacity:0}.db-salesian-phrase.show{animation:g20phrase 3.3s ease}@keyframes g20phrase{10%,78%{opacity:1;transform:translate(-50%,0)}100%{opacity:0}}.db-shot-message{position:absolute;left:50%;top:22%;transform:translateX(-50%);z-index:11;background:rgba(3,22,18,.84);border:1px solid rgba(255,255,255,.11);border-radius:13px;padding:8px 12px;color:#fff;text-align:center;min-width:220px}.db-shot-message b{display:block;font-size:15px}.db-shot-message span{display:block;font-size:8px;color:#b9ccca;margin-top:2px}.db-shot-message.goal{background:rgba(9,112,76,.92)}.db-shot-message.save{background:rgba(110,39,45,.9)}.db-ball-zone{position:absolute;left:50%;bottom:5%;transform:translateX(-50%);z-index:12;display:flex;flex-direction:column;align-items:center;gap:4px}.db-ball{width:64px;height:64px;border:0;background:transparent;font-size:52px;line-height:1;filter:drop-shadow(0 12px 8px rgba(0,0,0,.34));touch-action:none;cursor:grab;animation:g20ballidle 2.3s ease-in-out infinite}.db-ball:active{cursor:grabbing}.db-ball-zone small{font-size:7px;color:#fff;font-weight:950;letter-spacing:.1em;text-shadow:0 2px 5px rgba(0,0,0,.4)}@keyframes g20ballidle{50%{transform:translateY(-4px) rotate(8deg)}}.db-aim-line{position:absolute;height:2px;background:linear-gradient(90deg,var(--g20-yellow),rgba(255,212,59,.1));transform-origin:left center;z-index:10;opacity:0;pointer-events:none}.db-stage.aiming .db-aim-line{opacity:1}.db-game-crosshair{position:absolute;left:50%;top:50%;width:13px;height:13px;border:1px solid rgba(255,255,255,.18);border-radius:50%;transform:translate(-50%,-50%);z-index:7}.db-combo,.db-keeper-speed,.db-bonus-pop,.db-perfect-pop{position:absolute;z-index:13;border-radius:999px;padding:7px 10px;font-size:8px;font-weight:950;color:#fff;background:rgba(4,28,23,.84);border:1px solid rgba(255,255,255,.12)}.db-combo{right:2%;top:19%;color:#ffd743}.db-keeper-speed{left:2%;top:19%;display:flex;gap:5px;align-items:center}.db-keeper-speed span{opacity:.65}.db-bonus-pop,.db-perfect-pop{left:50%;top:34%;transform:translateX(-50%);background:#a67300;color:#fff}.db-field-brand{position:absolute;left:2%;bottom:3%;z-index:7;color:rgba(255,255,255,.6);display:flex;align-items:center;gap:4px}.db-field-brand b{font-size:8px}.db-field-brand small{font-size:6px}.db-field-brand span{font-size:11px}
.db-projectile-v73{position:fixed;z-index:9999;pointer-events:none;background:url('../img/game/soccer-ball.svg') center/contain no-repeat;filter:drop-shadow(0 5px 6px rgba(0,0,0,.35))}

/* orientation gate */
.db-orientation-gate{position:fixed;inset:0;z-index:12000;background:linear-gradient(145deg,#04171f,#073d31);display:grid;place-items:center;padding:20px;color:#fff}.db-orientation-card{width:min(380px,92vw);text-align:center}.db-orientation-icon{font-size:64px;animation:g20rotateDevice 1.8s ease-in-out infinite}.db-orientation-card small{display:block;font-size:9px;font-weight:950;letter-spacing:.13em;color:#8edab7}.db-orientation-card h2{font-size:28px;margin:5px 0 7px}.db-orientation-card p{font-size:11px;line-height:1.5;color:#bdcfca}.db-orientation-card button{min-height:44px;border:0;border-radius:12px;background:var(--g20-yellow);color:#333514;padding:0 15px;font-size:11px;font-weight:950}.db-orientation-card>span{display:block;font-size:8px;color:#8ca7a1;margin-top:10px}@keyframes g20rotateDevice{50%{transform:rotate(90deg)}}

/* result */
.db-result-overlay{position:fixed;inset:0;z-index:13000;background:rgba(3,19,16,.9);display:grid;place-items:center;padding:16px;overflow:hidden}.db-result-card{width:min(590px,100%);background:#fff;border-radius:24px;padding:24px;position:relative;text-align:center;color:#122c23;box-shadow:0 28px 90px rgba(0,0,0,.28)}.db-result-close{position:absolute;right:12px;top:12px;width:38px;height:38px;border:0;border-radius:11px;background:#f0f4f2;font-size:20px}.db-result-kicker{font-size:8px;font-weight:950;letter-spacing:.12em;color:#07805a}.db-result-trophy{font-size:50px;margin-top:4px}.db-result-level{display:inline-flex;background:#edf6f2;border-radius:999px;padding:6px 9px;font-size:9px;font-weight:900}.db-result-card h2{font-size:30px;margin:8px 0 0;font-weight:1000}.db-result-card>p{font-size:12px;color:#6c7e75;margin:3px 0 13px}.db-result-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.db-result-stats>div{border:1px solid #dce7e1;background:#fafcfb;border-radius:12px;padding:10px}.db-result-stats small{font-size:7px;font-weight:950;color:#74857c}.db-result-stats b{display:block;font-size:19px}.db-result-record-note{margin-top:10px;background:#fff8dd;border-radius:12px;padding:10px}.db-result-record-note b{display:block;font-size:11px}.db-result-record-note span{display:block;font-size:9px;color:#756b47;margin-top:2px}.db-new-achievements{display:grid;gap:5px;margin-top:8px}.db-new-achievements>div{display:flex;align-items:center;gap:8px;border:1px solid #e1e8e4;border-radius:10px;padding:7px;text-align:left}.db-new-achievements i{font-style:normal;font-size:18px}.db-new-achievements b{display:block;font-size:9px}.db-new-achievements span{display:block;font-size:8px;color:#74857c}.db-result-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:12px}.db-secondary-btn{border:1px solid #dce7e1;background:#f7faf8}.db-text-btn{grid-column:1/3;border:0;background:transparent;color:#63766c}.db-result-confetti i{position:absolute;top:-20px;width:7px;height:14px;animation:g20confetti linear infinite}@keyframes g20confetti{to{transform:translateY(110vh) rotate(620deg);opacity:.4}}
.db-achievement-toast{position:fixed;right:18px;top:84px;z-index:14000;background:#fff;border:1px solid #dce7e1;border-radius:14px;padding:10px 12px;display:grid;grid-template-columns:34px 1fr;gap:8px;box-shadow:0 16px 42px rgba(0,0,0,.2)}.db-achievement-toast i{font-style:normal;font-size:22px}.db-achievement-toast small{display:block;font-size:7px;color:#75857d}.db-achievement-toast b{font-size:10px}.db-game-toast{position:fixed;left:50%;bottom:86px;transform:translateX(-50%) translateY(15px);z-index:15000;background:#102b24;color:#fff;border-radius:999px;padding:9px 13px;font-size:10px;font-weight:850;opacity:0;pointer-events:none;transition:.2s;max-width:90vw;text-align:center}.db-game-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

@media(max-width:900px){#gameHome{grid-template-columns:1fr;grid-template-areas:"hero" "player" "actions" "rank"}.db-hero-v72{min-height:410px}.db-ranking-preview{grid-template-columns:repeat(3,1fr)}}
@media(max-width:620px){
  .db-game-shell{padding-bottom:72px}.db-game-appbar{height:60px;padding:0 11px;grid-template-columns:40px 1fr 40px}.db-game-back,.db-sound-toggle{width:38px;height:38px;border-radius:11px}.db-game-brand img{width:37px;height:37px}.db-game-brand small{font-size:7px;max-width:180px}.db-game-brand b{font-size:13px}.db-game-main{padding:10px}.db-hero-v72{min-height:365px;border-radius:20px}.db-hero-copy-v72{left:18px;top:24px;max-width:72%}.db-game-chip{font-size:8px;padding:6px 8px}.db-hero-copy-v72 h1{font-size:40px;margin:15px 0 10px}.db-hero-copy-v72 p{font-size:11px;max-width:260px}.db-hero-badges{gap:4px;margin-top:11px}.db-hero-badges span{font-size:8px;padding:5px 7px}.db-hero-keeper-v72{height:67%!important;right:-14%!important}.db-independence-note{left:18px;bottom:15px;max-width:80%;font-size:8px}.db-independence-note i{width:24px;height:24px}.db-player-card,.db-home-actions,.db-live-ranking-preview{border-radius:17px;padding:14px}.db-player-intro h2,.db-returning-player h2{font-size:19px}.db-player-intro p,.db-returning-player p{font-size:10px}.db-ranking-preview{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.db-rank-row{flex:0 0 145px;scroll-snap-align:start}.db-game-nav{height:61px;bottom:8px}.db-game-footer{display:none}
  .db-sheet-backdrop{padding:0}.db-sheet{border-radius:24px 24px 0 0;max-height:92vh;padding-bottom:calc(17px + env(safe-area-inset-bottom))}.db-difficulty-selector{grid-template-columns:1fr 1fr 1fr}.db-ranking-controlbar{display:block}.db-ranking-search{margin-top:8px}.db-ranking-table-head{display:none}.db-ranking-line.v11{grid-template-columns:45px 1fr auto;border-radius:11px}.db-v11-points,.db-v11-games{display:none}.db-v11-metric.db-v11-points,.db-v11-metric.db-v11-games{display:none}.db-v11-goals{text-align:right}.db-record-summary{grid-template-columns:1fr 1fr}.db-achievement-grid{grid-template-columns:1fr}.db-result-card{border-radius:20px;padding:19px}.db-result-stats{grid-template-columns:1fr 1fr}.db-result-card h2{font-size:26px}
}
@media(orientation:portrait) and (max-width:900px){body.playing .db-game-nav{display:none}}
@media(orientation:landscape) and (max-height:620px){
  body.playing .db-game-appbar,body.playing .db-game-nav,body.playing .db-game-footer{display:none}.db-game-hud{height:52px;padding:4px 6px;gap:4px}.db-hud-item{height:38px;min-width:64px;padding:4px 7px}.db-hud-item small{font-size:6px}.db-hud-item b{font-size:13px}.db-hud-close,.db-fullscreen-btn{width:36px;height:36px}.db-play-meta{height:26px}.db-stage{width:min(100vw,calc((100vh - 78px)*1.7777778));height:min(calc(100vh - 78px),56.25vw)}.db-ball{width:54px;height:54px;font-size:45px}.db-ball-zone{bottom:3%}.db-shot-message{top:19%;padding:6px 9px}.db-shot-message b{font-size:12px}.db-salesian-phrase{top:7%;font-size:7px;padding:6px 9px}.db-combo,.db-keeper-speed{top:15%}}
@media(prefers-reduced-motion:reduce){.db-game-body *{animation:none!important;transition:none!important}}

/* ==========================================================
   V20.2 · POLISH & MOBILE READABILITY
   ========================================================== */
.db-game-shell{position:relative;isolation:isolate}
.db-game-shell:before{content:"";position:fixed;inset:68px 0 0;z-index:-1;pointer-events:none;background:
  radial-gradient(circle at 8% 12%,rgba(14,155,102,.09),transparent 24rem),
  radial-gradient(circle at 93% 20%,rgba(255,212,59,.10),transparent 22rem)}
.db-hero-v72:before{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(108deg,transparent 0 52%,rgba(255,255,255,.075) 54%,transparent 57%);transform:translateX(-125%);animation:g20HeroSweep 7s ease-in-out infinite}
@keyframes g20HeroSweep{0%,55%{transform:translateX(-125%)}78%,100%{transform:translateX(125%)}}
.db-hero-photo:after{content:"";position:absolute;left:0;right:0;bottom:0;height:34%;background:repeating-linear-gradient(90deg,rgba(255,255,255,.025) 0 34px,transparent 34px 68px);opacity:.45;pointer-events:none}
.db-hero-badges span{backdrop-filter:blur(10px)}
.db-player-card,.db-home-actions,.db-live-ranking-preview{position:relative;overflow:hidden}
.db-player-card:before,.db-home-actions:before,.db-live-ranking-preview:before{content:"";position:absolute;left:0;top:0;width:100%;height:3px;background:linear-gradient(90deg,var(--g20-green2),var(--g20-yellow),transparent 82%);opacity:.75}
.db-primary-btn,.db-play-main{position:relative;overflow:hidden}.db-primary-btn:after,.db-play-main:after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.27) 48%,transparent 64%);transform:translateX(-130%);animation:g20ButtonShine 4.8s ease-in-out infinite;pointer-events:none}
@keyframes g20ButtonShine{0%,58%{transform:translateX(-130%)}82%,100%{transform:translateX(130%)}}
.db-play-main .db-play-icon{animation:g20PlayPulse 1.9s ease-in-out infinite}@keyframes g20PlayPulse{50%{transform:scale(1.08);box-shadow:0 0 0 8px rgba(255,255,255,.15)}}
.db-live-ranking-preview .db-section-title:after{content:"EN VIVO";margin-left:auto;margin-right:8px;border-radius:999px;background:#e8f8f1;color:#08704f;padding:5px 7px;font-size:9px;font-weight:950;letter-spacing:.08em}
.db-ranking-preview .db-rank-row{transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.db-ranking-preview .db-rank-row:hover{transform:translateY(-2px);border-color:#bad6ca;box-shadow:0 8px 18px rgba(5,66,46,.08)}
.db-stage-wrap{background:#031017}.db-stage:before{content:"";position:absolute;inset:0;z-index:8;pointer-events:none;background:radial-gradient(circle at 50% 34%,transparent 0 27%,rgba(2,15,12,.12) 72%,rgba(1,9,8,.30) 100%)}
.db-goal-scan{animation:g20GoalScan 2.7s ease-in-out infinite}@keyframes g20GoalScan{0%,100%{opacity:.16;transform:translateY(-7%)}50%{opacity:.45;transform:translateY(12%)}}
.db-crowd-lights{display:flex;justify-content:space-around}.db-crowd-lights i{width:6px;height:6px;border-radius:50%;background:#fce56d;box-shadow:0 0 12px rgba(252,229,109,.65);animation:g20CrowdLight 1.8s ease-in-out infinite}.db-crowd-lights i:nth-child(2n){animation-delay:-.55s}.db-crowd-lights i:nth-child(3n){animation-delay:-1.1s}@keyframes g20CrowdLight{50%{opacity:.2;transform:translateY(2px)}}
.db-shot-message{backdrop-filter:blur(10px);box-shadow:0 10px 24px rgba(0,0,0,.18)}
.db-service-error button{margin-top:10px;border:0;border-radius:10px;background:var(--g20-green);color:#fff;min-height:38px;padding:0 13px;font-weight:900}

/* Legibilidad: textos de interfaz mínimos de 9 px fuera del campo de juego. */
@media(max-width:620px){
  .db-game-brand small{font-size:9px}.db-game-chip{font-size:9px}.db-hero-copy-v72 p{font-size:12px;line-height:1.48}.db-hero-badges span{font-size:9px}.db-independence-note{font-size:9px;line-height:1.35}
  .db-player-intro>div>small,.db-returning-player small,.db-alias-input>b,.db-alias-suggestions button,.db-alias-safe p,.db-edit-alias,.db-play-main small,.db-home-action-grid span,.db-section-title small{font-size:9px}
  .db-player-intro p,.db-returning-player p{font-size:11px}.db-home-action-grid b{font-size:12px}.db-primary-btn,.db-secondary-btn,.db-text-btn{font-size:11px}
  .db-game-nav span{font-size:9px!important}
  .db-result-kicker,.db-result-stats small,.db-new-achievements b,.db-new-achievements span,.db-achievement-toast small{font-size:9px}.db-result-record-note span{font-size:10px}
}
@media(orientation:landscape) and (max-height:620px){
  .db-hud-item small{font-size:8px}.db-play-meta span{font-size:9px}.db-shot-message span{font-size:9px}.db-salesian-phrase{font-size:9px}.db-ball-zone small{font-size:9px}.db-combo,.db-keeper-speed,.db-bonus-pop,.db-perfect-pop{font-size:9px}.db-field-brand small{font-size:8px}.db-field-brand b{font-size:9px}
}
/* V20.2: ningún texto de navegación/configuración se renderiza microscópico. */
.db-game-body:not(.playing) small{font-size:10px!important;line-height:1.35}
.db-game-body:not(.playing) .db-difficulty-selector span,
.db-game-body:not(.playing) .db-mode-card span,
.db-game-body:not(.playing) .db-ranking-live span,
.db-game-body:not(.playing) .db-v11-player small,
.db-game-body:not(.playing) .db-v11-rank-you,
.db-game-body:not(.playing) .db-v11-metric small,
.db-game-body:not(.playing) .db-achievement-card span,
.db-game-body:not(.playing) .db-last-game{font-size:9px!important;line-height:1.35}
@media(orientation:landscape) and (max-height:620px){.db-game-body.playing small{font-size:8.5px!important}}
