:root{
  --bg:#eef4f1;--surface:#ffffff;--surface-2:#f7faf8;--ink:#10271f;--muted:#63766d;--line:#dbe6e0;
  --green:#075b43;--green-2:#0b7755;--green-3:#0f9468;--deep:#04291f;--gold:#f3c857;--gold-2:#ffde7a;
  --red:#cc3346;--yellow:#d79700;--blue:#276ad4;--shadow:0 18px 45px rgba(5,49,35,.12);
  --radius:22px;--nav-h:72px;--header-h:66px;
  font-family:Inter,ui-rounded,"SF Pro Rounded","Aptos","Segoe UI",system-ui,-apple-system,BlinkMacSystemFont,sans-serif;
}
*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--bg)}body{margin:0;background:var(--bg);color:var(--ink);min-height:100dvh}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{text-decoration:none;color:inherit}img{max-width:100%}[hidden]{display:none!important}
.v29-body{padding-top:var(--header-h);padding-bottom:calc(var(--nav-h) + env(safe-area-inset-bottom) + 10px);overflow-x:hidden}.v29-hidden-data{display:none!important}
.v29-progress{position:fixed;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--gold),#fff7b5,var(--green-3));z-index:20000;transform:scaleX(0);transform-origin:left center}

/* splash */
.v29-splash{position:fixed;inset:0;z-index:30000;background:radial-gradient(circle at 50% 32%,#117a58,#063d2f 55%,#031e18);display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;text-align:center;transition:.45s ease}.v29-splash.is-hidden{opacity:0;visibility:hidden}.v29-splash-logo{width:96px;height:96px;border-radius:28px;background:#fff;display:grid;place-items:center;box-shadow:0 20px 50px rgba(0,0,0,.25);margin-bottom:18px}.v29-splash-logo img{width:78px;height:78px;object-fit:contain}.v29-splash>b{font-size:21px}.v29-splash>span{font-size:12px;color:#d7ece4;margin-top:6px}.v29-splash>i{display:block;width:150px;height:5px;border-radius:999px;background:rgba(255,255,255,.15);margin-top:18px;overflow:hidden;position:relative}.v29-splash>i:after{content:"";position:absolute;inset:0;width:40%;background:var(--gold);border-radius:inherit;animation:v29load 1.1s ease-in-out infinite}@keyframes v29load{from{transform:translateX(-110%)}to{transform:translateX(360%)}}

/* top app bar */
.v29-topbar{position:fixed;left:0;right:0;top:0;z-index:9000;height:var(--header-h);padding:calc(8px + env(safe-area-inset-top)) 12px 8px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;background:linear-gradient(120deg,#053b2d,#076047 62%,#0a7453);color:#fff;box-shadow:0 8px 24px rgba(3,38,28,.18)}
.v29-brand{display:flex;align-items:center;gap:9px;min-width:0}.v29-brand img{width:42px;height:42px;object-fit:contain;background:#fff;border-radius:13px;padding:2px}.v29-brand span{min-width:0}.v29-brand small,.v29-brand b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v29-brand small{font-size:8px;font-weight:850;letter-spacing:.055em;color:#cce4db;max-width:210px}.v29-brand b{font-size:13px;font-weight:1000;margin-top:2px}.v29-desktop-nav{display:none}.v29-top-actions{display:flex;align-items:center;gap:6px}.v29-live-pill{display:none}.v29-teacher,.v29-menu{width:40px;height:40px;border-radius:13px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.10);display:grid;place-items:center;color:#fff}.v29-teacher b{display:none}.v29-menu{font-size:17px}

/* app screens */
.v29-app{width:100%;max-width:1180px;margin:0 auto}.v29-screen{display:none;padding:12px 12px 22px;animation:v29screen .24s ease}.v29-screen.active{display:block}@keyframes v29screen{from{opacity:.55;transform:translateY(4px)}to{opacity:1;transform:none}}
.v29-home-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;padding:6px 3px 12px}.v29-home-copy{min-width:0}.v29-kicker{display:inline-flex;align-items:center;gap:6px;font-size:9px;font-weight:950;letter-spacing:.11em;color:var(--green-2)}.v29-kicker i{width:7px;height:7px;border-radius:50%;background:#1fca7f;box-shadow:0 0 0 5px rgba(31,202,127,.10)}.v29-home-copy h1{font-size:27px;line-height:1.05;letter-spacing:-.045em;margin:7px 0 8px}.v29-home-copy h1 strong{color:var(--green);font-weight:1000}.v29-home-copy p{display:none}.v29-home-date{display:none}
.v29-home-grid{display:grid;gap:10px}.v29-leader-shell,.v29-today-card,.v29-ranking-board,.v29-category-card,.v29-live-side{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 10px 28px rgba(6,48,35,.06)}.v29-leader-shell{padding:14px;overflow:hidden;position:relative}.v29-leader-shell:before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,var(--green-3),var(--gold),transparent)}.v29-card-title,.v29-subhead,.v29-board-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.v29-card-title small{display:block;font-size:8px;font-weight:950;letter-spacing:.1em;color:var(--green-2)}.v29-card-title h2{font-size:18px;margin:2px 0 0;letter-spacing:-.025em}.v29-card-title>span{font-size:8px;color:#7a8a83}.v29-podium-wrap{margin-top:10px}.v29-subhead{border-top:1px solid #edf2ef;padding-top:10px}.v29-subhead b{font-size:11px}.v29-subhead button{border:0;background:transparent;color:var(--green-2);font-size:9px;font-weight:950}

/* dynamic leader */
.hero-leader.skeleton-block{min-height:110px;border-radius:16px;background:linear-gradient(90deg,#eef4f1,#f8fbf9,#eef4f1);background-size:220% 100%;animation:v29sk 1.4s linear infinite}@keyframes v29sk{to{background-position:-220% 0}}
.v5-leader-panel{display:grid;grid-template-columns:50px minmax(0,1fr) auto;gap:10px;align-items:center;margin-top:12px;padding:13px;border-radius:18px;background:linear-gradient(135deg,#063f30,#0a7151 62%,#0f8760);color:#fff}.v5-leader-rank{width:50px;height:50px;border-radius:16px;background:rgba(255,255,255,.13);display:grid;place-items:center;align-content:center}.v5-leader-rank b{font-size:18px}.v5-leader-rank span{font-size:13px}.v5-leader-info{min-width:0}.v5-leader-info small{font-size:7px;font-weight:900;color:#cce6dc;letter-spacing:.08em}.v5-leader-info h3{font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:2px 0 4px}.category-inline{display:inline-flex;font-size:8px;color:#e1f1eb;background:rgba(255,255,255,.09);padding:4px 7px;border-radius:999px}.v5-leader-score{text-align:right}.v5-leader-score b{display:block;font-size:24px;color:var(--gold-2)}.v5-leader-score span{display:block;font-size:7px;font-weight:950}.v5-leader-score em{display:none}.v5-leader-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:7px}.v5-leader-stat{padding:8px 5px;border:1px solid #e4ece8;border-radius:13px;background:#fafcfb;display:flex;flex-direction:column;align-items:center;text-align:center;gap:3px}.v5-leader-stat i{font-style:normal;font-size:16px}.v5-leader-stat b{display:block;font-size:12px}.v5-leader-stat small{display:block;font-size:6px;font-weight:900;color:#75877e}.mini-podium{display:grid;gap:6px;margin-top:7px}.mini-team{width:100%;border:1px solid #e4ece8;background:#fbfdfc;border-radius:14px;padding:9px;display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:8px;align-items:center;text-align:left}.mini-rank-medal{font-size:19px}.mini-team-copy small,.mini-team-copy b,.mini-team-copy em{display:block}.mini-team-copy small{font-size:6px;color:#798a82;font-weight:900}.mini-team-copy b{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-team-copy em{font-size:7px;color:#667a70;font-style:normal}.mini-team-points{text-align:right}.mini-team-points b{display:block;font-size:15px;color:var(--green-2)}.mini-team-points small{font-size:6px;color:#76877f}

.v29-today-card{padding:14px}.v29-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:12px}.v29-stat-grid button{border:1px solid #e4ece8;background:#fafcfb;border-radius:15px;padding:9px 4px;text-align:center;color:var(--ink)}.v29-stat-grid i{display:block;font-style:normal;font-size:19px}.v29-stat-grid b{display:block;font-size:17px;margin-top:3px}.v29-stat-grid span{display:block;font-size:7px;color:#6d8077;font-weight:850}

.v29-quick-title{padding:17px 3px 8px}.v29-quick-title small{display:block;font-size:8px;color:var(--green-2);font-weight:950;letter-spacing:.1em}.v29-quick-title h2{font-size:19px;margin:2px 0 0}.v29-quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.v29-quick-grid>a,.v29-quick-grid>button{border:1px solid var(--line);background:#fff;border-radius:18px;min-height:92px;padding:13px;text-align:left;color:var(--ink);display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 8px 22px rgba(5,49,35,.05)}.v29-quick-grid i{font-style:normal;font-size:25px}.v29-quick-grid b,.v29-quick-grid small{display:block}.v29-quick-grid b{font-size:13px}.v29-quick-grid small{font-size:8px;color:#71837a;margin-top:2px}.v29-quick-grid .v29-game-quick{background:linear-gradient(145deg,#07412f,#0a7250);color:#fff;border-color:#0a7250}.v29-game-quick small{color:#cfe7de!important}

.v29-game-card{margin-top:10px;border-radius:22px;overflow:hidden;background:linear-gradient(125deg,#052a21,#087051);color:#fff;display:grid;grid-template-columns:minmax(0,1fr) 120px;min-height:190px;position:relative}.v29-game-copy{padding:18px 0 18px 18px;position:relative;z-index:2}.v29-game-copy>span{font-size:8px;color:#ffdf7a;font-weight:950;letter-spacing:.1em}.v29-game-copy h2{font-size:24px;line-height:.98;margin:8px 0}.v29-game-copy h2 em{display:block;color:var(--gold);font-style:normal}.v29-game-copy p{font-size:9px;line-height:1.45;color:#d7e9e2;max-width:220px}.v29-game-copy>a{display:inline-flex;margin-top:8px;align-items:center;gap:8px;background:var(--gold);color:#3e2f00;padding:9px 12px;border-radius:12px;font-size:10px;font-weight:950}.v29-game-art{position:relative;overflow:hidden}.v29-game-art:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 55%,rgba(255,220,106,.18),transparent 48%)}.v29-game-art img{position:absolute;right:-17px;bottom:-7px;height:96%;width:auto;max-width:none;filter:drop-shadow(0 12px 10px rgba(0,0,0,.28))}.game-promo-ranking{position:absolute;right:8px;top:10px;z-index:3;background:rgba(3,27,21,.78);border:1px solid rgba(255,255,255,.12);border-radius:11px;padding:7px 9px;max-width:110px}.game-promo-ranking small,.game-promo-ranking b{display:block}.game-promo-ranking small{font-size:6px;color:#ffe485}.game-promo-ranking b{font-size:8px;color:#fff;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.v29-voice-card{margin-top:10px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:14px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.v29-voice-card>div{display:flex;gap:10px;align-items:flex-start;min-width:0}.v29-voice-card>div>span{font-size:26px}.v29-voice-card small,.v29-voice-card b,.v29-voice-card p{display:block}.v29-voice-card small{font-size:7px;color:var(--green-2);font-weight:950}.v29-voice-card b{font-size:12px}.v29-voice-card p{font-size:8px;color:#6a7d74;margin:3px 0 0;line-height:1.35}.v29-voice-card button{border:0;background:#eaf4ef;color:#075e45;border-radius:11px;padding:9px 10px;font-size:9px;font-weight:950}.v29-voice-card .v29-track{display:none}

/* screens heads */
.v29-view-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 2px 13px}.v29-view-head>div{display:flex;gap:11px;align-items:center}.v29-view-head>div>span{width:44px;height:44px;border-radius:15px;background:#fff;border:1px solid var(--line);display:grid;place-items:center;font-size:22px}.v29-view-head small{display:block;font-size:8px;font-weight:950;letter-spacing:.1em;color:var(--green-2)}.v29-view-head h1{font-size:25px;margin:1px 0 2px;letter-spacing:-.035em}.v29-view-head p{font-size:9px;color:#6b7d74;margin:0}.v29-view-close{width:40px;height:40px;border:1px solid var(--line);background:#fff;border-radius:13px;color:var(--green);font-size:18px}.v29-view-head.dark{margin:-12px -12px 0;padding:18px 14px 16px;background:linear-gradient(120deg,#042b21,#086047);color:#fff}.v29-view-head.dark>div>span{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.15)}.v29-view-head.dark small{color:#c9e5da}.v29-view-head.dark p{color:#d8ebe4}.v29-clock{padding:8px 10px;border-radius:11px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.14);font-size:12px;font-weight:900}

/* ranking */
.v29-search{height:46px;border:1px solid var(--line);background:#fff;border-radius:15px;padding:0 12px;display:flex;align-items:center;gap:8px;box-shadow:0 7px 18px rgba(5,49,35,.04)}.v29-search input{border:0;outline:0;background:transparent;width:100%;color:var(--ink);font-size:11px}.category-tabs{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;padding:10px 1px}.category-tabs::-webkit-scrollbar{display:none}.category-tabs button{flex:0 0 auto;border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 11px;color:#4b645a;font-size:9px;font-weight:900;white-space:nowrap}.category-tabs button.active{background:var(--green);border-color:var(--green);color:#fff}.v29-ranking-board{overflow:hidden}.v29-board-head{padding:12px 13px;border-bottom:1px solid #edf2ef}.v29-board-head b{font-size:12px}.v29-board-head small{font-size:7px;color:#73847c}.ranking-desktop-table{display:none}.ranking-mobile-list{display:grid;gap:7px;padding:10px}.ranking-mobile-card{border:1px solid #e0e9e4;background:#fff;border-radius:15px;padding:10px;display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:8px;align-items:center;text-align:left;color:var(--ink)}.ranking-mobile-card.top-1{background:linear-gradient(100deg,#fff9e6,#fff);border-color:#f0dc8b}.ranking-mobile-pos{font-size:20px;display:grid;place-items:center}.ranking-mobile-main{min-width:0}.ranking-mobile-main b{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ranking-mobile-main>span{display:block;font-size:7px;color:#6e8178;margin-top:2px}.ranking-mobile-stats{display:flex!important;gap:4px;margin-top:5px}.ranking-mobile-stats span{display:inline-flex!important;padding:3px 5px;background:#f1f5f3;border-radius:999px;font-size:7px!important}.ranking-mobile-score{text-align:right}.ranking-mobile-score b{display:block;font-size:19px;color:var(--green-2)}.ranking-mobile-score small{display:block;font-size:6px;color:#75877e;font-weight:900}.ranking-mobile-score em{display:none}.v29-ranking-extra{display:grid;gap:9px;margin-top:9px}.challenge-card{background:linear-gradient(135deg,#fff7d9,#fff);border:1px solid #efdc9a;border-radius:18px;padding:14px;color:#4b3b0c}.challenge-cup{font-size:25px}.challenge-card small{display:block;font-size:7px;font-weight:950;color:#876d1e}.challenge-card h3{font-size:15px;margin:4px 0}.challenge-card p{font-size:9px;line-height:1.4;color:#786a3e;margin:0}.challenge-mult{display:inline-block;margin-top:7px;background:#fff4bf;border-radius:999px;padding:5px 7px;font-size:8px;font-weight:900}.v29-category-card{padding:13px}.category-champions{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin-top:9px}.category-champions::-webkit-scrollbar{display:none}.category-champion{flex:0 0 84%;scroll-snap-align:start;border:1px solid #e1e9e5;background:#fafcfb;border-radius:16px;padding:12px;position:relative;overflow:hidden}.category-champion:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--cat-color,var(--green))}.category-champion-head{display:flex;gap:9px;align-items:center}.category-big-icon{width:40px;height:40px;border-radius:12px;background:#eef5f1;display:grid;place-items:center;font-size:20px}.category-champion-head small,.category-champion-head h3,.category-champion-head span{display:block}.category-champion-head small{font-size:6px;color:#73847c;font-weight:900}.category-champion-head h3{font-size:13px;margin:1px 0}.category-champion-head span{font-size:7px;color:#73847c}.category-winner{width:100%;border:0;background:#edf6f2;border-radius:12px;padding:9px;margin-top:8px;display:flex;gap:8px;align-items:center;text-align:left}.winner-crown{font-size:20px}.category-winner small,.category-winner b,.category-winner span{display:block}.category-winner small{font-size:6px;color:#5d786c}.category-winner b{font-size:11px}.category-winner span{font-size:7px;color:#64786f}.category-chaser{display:flex;justify-content:space-between;font-size:8px;margin-top:6px}.category-view-btn{border:0;background:transparent;color:var(--green-2);font-size:8px;font-weight:900;margin-top:7px;padding:0}.category-empty{padding:8px;background:#f2f6f4;border-radius:10px;margin-top:8px}.category-empty b,.category-empty span{display:block}.category-empty b{font-size:10px}.category-empty span{font-size:7px;color:#6f8178;margin-top:2px}

/* live */
.v29-live-summary{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:10px 0}.v29-live-summary::-webkit-scrollbar{display:none}.v29-live-summary span,.v29-live-summary b{flex:0 0 auto;border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 9px;font-size:9px}.v29-filter-shell{position:relative}.v29-filter-hint{font-size:7px;color:#72847b;margin-bottom:5px}.v29-live-filters{display:flex;gap:6px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;padding:0 1px 9px}.v29-live-filters::-webkit-scrollbar{display:none}.v29-live-filters button{flex:0 0 auto;border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 10px;font-size:9px;font-weight:900;color:#4e665c}.v29-live-filters button.active{background:#0a6048;color:#fff;border-color:#0a6048}.v29-live-layout{display:grid;gap:9px}.live-feed{display:grid;gap:7px}.live-timeline-item{display:grid;grid-template-columns:38px minmax(0,1fr);gap:7px;align-items:start}.live-timeline-icon{width:38px;height:38px;border-radius:12px;background:#fff;border:1px solid var(--line);display:grid;place-items:center;font-size:18px;box-shadow:0 6px 16px rgba(5,49,35,.05)}.live-event-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:10px}.live-event-top{display:flex;justify-content:space-between;gap:8px}.live-event-top b{font-size:10px;color:#17382d}.live-event-top time{font-size:7px;color:#74867d;white-space:nowrap}.live-event-card p{font-size:8px;line-height:1.4;color:#5f746a;margin:4px 0 6px}.live-event-meta{display:flex;gap:5px;flex-wrap:wrap}.live-event-meta span{background:#f2f6f4;border-radius:999px;padding:4px 6px;font-size:6px;color:#60766b}.live-timeline-item.goal .live-timeline-icon{background:#eaf7f1}.live-timeline-item.type1 .live-timeline-icon{background:#fff7d8}.live-timeline-item.type2 .live-timeline-icon,.live-timeline-item.type3 .live-timeline-icon{background:#fff0f1}.live-timeline-item.recognition .live-timeline-icon{background:#fff8df}.live-empty{background:#fff;border:1px dashed #cfded7;border-radius:18px;padding:24px;text-align:center}.live-empty i{font-style:normal;font-size:29px}.live-empty b,.live-empty span{display:block}.live-empty b{font-size:12px;margin-top:6px}.live-empty span{font-size:8px;color:#71837a;margin-top:3px}.v29-live-side{padding:13px;background:linear-gradient(150deg,#06382b,#0a684b);color:#fff;border-color:transparent}.v29-card-title.inverse small{color:#c6e5d9}.v29-card-title.inverse h2{color:#fff}.live-top-row{width:100%;border:0;border-bottom:1px solid rgba(255,255,255,.10);background:transparent;color:#fff;padding:9px 0;display:grid;grid-template-columns:28px 1fr auto 12px;gap:7px;align-items:center;text-align:left}.live-medal{font-size:18px}.live-top-row b{font-size:10px}.live-top-row small{font-size:8px;color:#d7ebe4}.live-top-row i{font-style:normal;color:#6de3aa}.v29-highlight-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:9px}.v29-highlight-grid>div{background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.11);border-radius:12px;padding:9px}.v29-highlight-grid small,.v29-highlight-grid b,.v29-highlight-grid span{display:block}.v29-highlight-grid small{font-size:6px;color:#c9e3da}.v29-highlight-grid b{font-size:9px;margin-top:3px}.v29-highlight-grid span{font-size:7px;color:#d6e9e2;margin-top:2px}.v29-motion{margin-top:10px;border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 11px;color:#526a60;font-size:8px;font-weight:900}

/* awards */
.v29-awards-intro{display:flex;gap:10px;align-items:center;background:linear-gradient(120deg,#edf8f3,#fff);border:1px solid #dbe8e1;border-radius:18px;padding:13px;margin-bottom:10px}.v29-awards-intro>span{font-size:28px}.v29-awards-intro b{display:block;font-size:12px}.v29-awards-intro p{font-size:8px;color:#65796f;margin:3px 0 0;line-height:1.4}.recognitions-public{display:grid;gap:8px}.recognition-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:11px;display:flex;align-items:center;gap:10px;box-shadow:0 6px 18px rgba(5,49,35,.04)}.recognition-card>i{width:42px;height:42px;border-radius:13px;background:#fff7d9;display:grid;place-items:center;font-style:normal;font-size:21px}.recognition-card b,.recognition-card small{display:block}.recognition-card b{font-size:10px}.recognition-card small{font-size:7px;color:#6e8178;margin-top:2px;line-height:1.35}

/* bottom nav */
.v29-bottom-nav{position:fixed;left:8px;right:8px;bottom:calc(7px + env(safe-area-inset-bottom));z-index:9500;height:64px;display:grid;grid-template-columns:repeat(5,1fr);gap:3px;padding:5px;background:rgba(255,255,255,.96);border:1px solid #dce6e1;border-radius:21px;box-shadow:0 15px 38px rgba(4,39,28,.20);backdrop-filter:blur(16px)}.v29-bottom-nav button,.v29-bottom-nav a{border:0;background:transparent;border-radius:15px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:#63766d}.v29-bottom-nav i{font-style:normal;font-size:18px}.v29-bottom-nav span{font-size:7px;font-weight:900}.v29-bottom-nav .active{color:#075e45;background:#edf6f2}.v29-bottom-nav .play{margin-top:-16px;height:70px;background:linear-gradient(180deg,#ffe37b,#f4c64f);color:#453500;border:4px solid var(--bg);box-shadow:0 10px 24px rgba(231,182,41,.28)}.v29-bottom-nav .play i{font-size:27px}.v29-bottom-nav .play span{font-size:8px}
.v29-footer{display:none}

/* sheets & modals */
.app-sheet-backdrop,.modal-backdrop{position:fixed;inset:0;z-index:12000;background:rgba(2,18,13,.62);backdrop-filter:blur(6px);display:flex;align-items:flex-end;justify-content:center;padding:0}.app-sheet,.request-modal,.manual-modal,.course-modal{background:#fff;color:var(--ink);width:100%;max-height:92dvh;overflow:auto;border-radius:26px 26px 0 0;padding:16px 16px calc(18px + env(safe-area-inset-bottom));box-shadow:0 -18px 60px rgba(0,0,0,.22)}.app-sheet-handle{width:44px;height:5px;border-radius:999px;background:#d4dfda;margin:0 auto 13px}.app-sheet-head{display:flex;justify-content:space-between;align-items:center}.app-sheet-head b,.app-sheet-head span{display:block}.app-sheet-head b{font-size:18px}.app-sheet-head span{font-size:9px;color:#71837a;margin-top:2px}.app-sheet-head button,.modal-close{width:38px;height:38px;border:0;background:#eef4f1;border-radius:12px;font-size:19px;color:#39584c}.app-sheet-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:13px}.app-sheet-grid>a,.app-sheet-grid>button{border:1px solid var(--line);background:#fafcfb;border-radius:16px;padding:13px;text-align:left;color:var(--ink)}.app-sheet-grid i{display:block;font-style:normal;font-size:23px}.app-sheet-grid b,.app-sheet-grid span{display:block}.app-sheet-grid b{font-size:11px;margin-top:8px}.app-sheet-grid span{font-size:8px;color:#71837a;margin-top:2px}.modal-backdrop{align-items:flex-end}.request-modal,.manual-modal,.course-modal{position:relative}.request-modal-head,.manual-modal-head{display:flex;gap:10px;align-items:center;padding-right:44px}.request-modal-head>span{font-size:30px}.request-modal-head small,.request-modal-head h2,.request-modal-head p{display:block}.request-modal-head small,.manual-modal-head small{font-size:8px;font-weight:950;color:var(--green-2)}.request-modal-head h2,.manual-modal-head h2{font-size:22px;margin:2px 0}.request-modal-head p{font-size:9px;color:#6a7d74;margin:0}.modal-close{position:absolute;right:14px;top:14px}.request-form{display:grid;gap:10px;margin-top:14px}.field{font-size:9px;font-weight:850;color:#35564a}.field small{font-size:7px;color:#7a8a83}.field input,.field select,.field textarea,.manual-search input{display:block;width:100%;margin-top:5px;border:1px solid #d7e3dd;background:#fff;color:var(--ink);border-radius:13px;padding:11px;outline:none;font-size:11px}.field textarea{min-height:110px;resize:vertical}.request-anon,.request-consent{display:flex;gap:8px;align-items:flex-start;font-size:9px;color:#51685e}.request-anon b,.request-anon small{display:block}.request-anon small{font-size:7px;color:#73847c;margin-top:2px}.identity-reserve-note{display:flex;gap:8px;background:#edf6f2;border-radius:12px;padding:9px}.identity-reserve-note p{font-size:8px;margin:0}.hp-field{display:none!important}.btn{border:0;border-radius:13px;min-height:45px;padding:0 14px;font-weight:900}.btn.primary{background:var(--green);color:#fff}.btn.wide{width:100%}.manual-modal-head{justify-content:space-between}.manual-modal-head img{width:45px}.manual-tabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:14px 0}.manual-tabs button{flex:0 0 auto;border:1px solid var(--line);background:#f7faf8;border-radius:999px;padding:8px 10px;font-size:8px;font-weight:850}.manual-tabs button.active{background:var(--green);color:#fff}.manual-search{display:flex;align-items:center;gap:7px}.manual-search input{margin:0}.manual-group{margin-top:13px}.manual-group h3{font-size:14px}.manual-item{display:grid;grid-template-columns:90px 1fr;gap:8px;padding:9px 0;border-top:1px solid #edf2ef}.manual-code{font-size:7px;color:#6a7c74;font-weight:900}.manual-item p{font-size:9px;margin:0;line-height:1.4}.alert{border-radius:12px;padding:10px;background:#f3f7f5;font-size:9px}.alert.danger{background:#fff0f1;color:#922c39}.loading-screen{display:grid;place-items:center;min-height:160px;color:#6e8178}.ball-loader{font-size:30px}.toast-stack{position:fixed;left:12px;right:12px;bottom:90px;z-index:18000}.toast{background:#0b3328;color:#fff;border-radius:14px;padding:11px 13px;margin-top:7px;box-shadow:0 14px 32px rgba(0,0,0,.2);font-size:9px}.offline-banner{position:fixed;left:50%;bottom:90px;transform:translateX(-50%);z-index:15000;background:#24312c;color:#fff;border-radius:999px;padding:8px 11px;font-size:8px}.live-announcement{position:fixed;left:12px;right:12px;top:78px;z-index:15000;background:#fff;color:var(--ink);border-radius:16px;padding:11px;box-shadow:0 18px 45px rgba(0,0,0,.2);display:grid;grid-template-columns:38px 1fr;gap:8px}.live-announcement-icon{font-size:23px}.live-announcement small,.live-announcement b,.live-announcement span{display:block}.live-announcement small{font-size:7px;color:var(--green-2)}.live-announcement b{font-size:10px}.live-announcement span{font-size:8px;color:#6b7d74;margin-top:2px}.match-celebration{position:fixed;inset:0;z-index:19000;background:rgba(2,18,13,.94);display:grid;place-items:center;color:#fff;text-align:center}.celebration-close{position:absolute;right:16px;top:calc(16px + env(safe-area-inset-top));width:42px;height:42px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.08);border-radius:13px;color:#fff;font-size:21px}.celebration-copy h2{font-size:54px;margin:0;color:var(--gold)}.celebration-copy h3{font-size:25px;margin:7px 0}.celebration-copy p,.celebration-copy span{display:block;color:#d0e4dc}.celebration-ball{font-size:60px}.request-success,.track-status-card{text-align:center;padding:15px}.request-code-copy{border:1px dashed #b7cec3;background:#f4f8f6;border-radius:13px;padding:10px;width:100%}.request-success-actions{display:flex;gap:7px;margin-top:9px}.install-help-grid{display:grid;gap:8px;margin:13px 0}.install-help-grid>div{padding:12px;border:1px solid var(--line);border-radius:14px;background:#f8faf9}.passport-head{display:flex;justify-content:space-between;padding-right:44px}.passport-stats{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:12px 0}.passport-stats>div{background:#f4f8f6;border-radius:13px;padding:10px}.passport-stats b,.passport-stats small{display:block}.passport-stats b{font-size:18px}.passport-stats small{font-size:7px;color:#6e8077}.passport-families{display:grid;gap:7px}

/* hide generic reveal effects incompatibilities */
.reveal-v5{opacity:1!important;transform:none!important}.motion-disabled *{animation:none!important;transition:none!important}

/* DESKTOP / TABLET */
@media(min-width:820px){
  :root{--header-h:74px}.v29-body{padding-bottom:0}.v29-topbar{height:74px;padding:0 24px;grid-template-columns:auto 1fr auto}.v29-brand img{width:48px;height:48px}.v29-brand small{font-size:9px;max-width:300px}.v29-brand b{font-size:15px}.v29-desktop-nav{display:flex;align-items:center;justify-content:center;gap:4px}.v29-desktop-nav a{padding:10px 12px;border-radius:11px;font-size:10px;font-weight:850;color:#dceee7}.v29-desktop-nav a:hover{background:rgba(255,255,255,.10);color:#fff}.v29-live-pill{display:flex;align-items:center;gap:6px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:8px 10px;font-size:9px}.v29-live-pill i{width:7px;height:7px;border-radius:50%;background:#43df91;box-shadow:0 0 0 5px rgba(67,223,145,.12)}.v29-teacher{width:auto;padding:0 12px;display:flex;gap:7px}.v29-teacher b{display:block;font-size:9px}.v29-app{padding:18px 18px 36px}.v29-screen{display:block!important;padding:0;margin-bottom:18px;animation:none}.v29-home-intro{padding:6px 3px 17px}.v29-home-copy h1{font-size:42px;max-width:720px}.v29-home-copy p{display:block;font-size:12px;color:#60746a;max-width:700px;margin:0}.v29-home-date{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:10px 13px}.v29-home-date>span{font-size:22px}.v29-home-date small,.v29-home-date b{display:block}.v29-home-date small{font-size:7px;color:#71837a}.v29-home-date b{font-size:10px}.v29-home-grid{grid-template-columns:1.4fr .6fr}.v29-leader-shell,.v29-today-card{padding:18px}.v29-card-title h2{font-size:21px}.v5-leader-info h3{font-size:25px}.v5-leader-score b{font-size:31px}.v5-leader-score em{display:block;font-size:7px;color:#cae3da;font-style:normal}.mini-podium{grid-template-columns:1fr 1fr}.v29-stat-grid{grid-template-columns:1fr 1fr}.v29-stat-grid button{min-height:96px}.v29-stat-grid i{font-size:27px}.v29-stat-grid b{font-size:24px}.v29-quick-grid{grid-template-columns:repeat(4,1fr)}.v29-quick-grid>a,.v29-quick-grid>button{min-height:120px}.v29-game-card{grid-template-columns:1fr 310px;min-height:250px}.v29-game-copy{padding:28px}.v29-game-copy h2{font-size:38px}.v29-game-copy p{font-size:11px;max-width:420px}.v29-game-art img{right:10%;height:108%}.game-promo-ranking{right:20px;top:18px;max-width:170px}.v29-voice-card{grid-template-columns:minmax(0,1fr) auto auto}.v29-voice-card .v29-track{display:block}.v29-view-head{margin-top:18px;padding:18px 0 12px;border-top:1px solid #dfe8e4}.v29-view-close{display:none}.v29-view-head.dark{margin:18px 0 0;border-radius:22px 22px 0 0;padding:22px}.v29-search{max-width:360px}.v29-ranking-board{margin-top:5px}.ranking-mobile-list{display:none}.ranking-desktop-table{display:block;overflow:auto}.ranking-desktop-table table{width:100%;border-collapse:collapse}.ranking-desktop-table td{padding:11px;border-bottom:1px solid #edf2ef;font-size:10px}.ranking-desktop-table button{border:0;background:transparent;font-weight:900;color:var(--ink)}.pos-badge{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#eff5f2}.points-pill{display:inline-flex;background:#eaf6f0;color:#0b704f;border-radius:999px;padding:5px 8px;font-weight:900}.category-table-chip,.trend-chip{display:inline-flex;border-radius:999px;background:#f2f6f4;padding:5px 7px;font-size:8px}.v29-ranking-extra{grid-template-columns:.7fr 1.3fr}.category-champion{flex:0 0 300px}.v29-live-layout{grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr)}.v29-live-side{min-height:100%}.recognitions-public{grid-template-columns:repeat(2,1fr)}.v29-bottom-nav{display:none}.v29-footer{max-width:1180px;margin:8px auto 30px;display:grid;grid-template-columns:1fr auto auto;gap:24px;align-items:center;padding:18px;border-radius:20px;background:#073f30;color:#fff}.v29-footer>div{display:flex;align-items:center;gap:9px}.v29-footer img{width:42px;height:42px;background:#fff;border-radius:12px}.v29-footer b,.v29-footer small{display:block}.v29-footer small{font-size:7px;color:#c9e4da}.v29-footer nav{display:flex;gap:5px}.v29-footer nav button,.v29-footer nav a{border:0;background:transparent;color:#d9ede5;font-size:8px}.v29-powered small{font-size:6px}.v29-powered b{font-size:8px}.app-sheet-backdrop,.modal-backdrop{align-items:center;padding:18px}.app-sheet,.request-modal,.manual-modal,.course-modal{max-width:620px;border-radius:24px;padding:20px;max-height:88vh}.app-sheet{max-width:540px}.app-sheet-grid{grid-template-columns:repeat(2,1fr)}.live-announcement{left:auto;right:20px;top:92px;width:360px}.toast-stack{left:auto;right:18px;width:360px}.install-help-grid{grid-template-columns:1fr 1fr}
}

@media(max-width:370px){.v29-brand small{max-width:145px}.v29-home-copy h1{font-size:24px}.v29-stat-grid{gap:5px}.v29-stat-grid button{padding:8px 2px}.v29-quick-grid{gap:6px}.v29-quick-grid>a,.v29-quick-grid>button{padding:11px}.v5-leader-panel{grid-template-columns:44px minmax(0,1fr) auto}.v5-leader-rank{width:44px;height:44px}.v5-leader-info h3{font-size:16px}.v5-leader-score b{font-size:21px}.v29-game-card{grid-template-columns:minmax(0,1fr) 105px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(max-width:819px){.v29-topbar{transition:transform .25s ease,box-shadow .25s ease}.v29-topbar.compact{transform:translateY(-7px);box-shadow:0 12px 28px rgba(3,38,28,.22)}}
body.sheet-open{overflow:hidden}
@media(max-width:819px){html,body{overscroll-behavior-y:none}.v29-screen{min-height:calc(100dvh - var(--header-h) - var(--nav-h) - 20px)}.v29-quick-grid>a:active,.v29-quick-grid>button:active,.v29-stat-grid button:active,.ranking-mobile-card:active{transform:scale(.985)}.v29-bottom-nav button:active,.v29-bottom-nav a:active{transform:scale(.96)}}

/* ==========================================================
   V30 · APP PREMIUM · escala Taxis Diamante + animación
   Mantiene la lógica V29, pero rehace proporciones, jerarquía
   y composición visual para móvil y escritorio.
   ========================================================== */
:root{
  --v30-bg:#edf4f1;
  --v30-card:#ffffff;
  --v30-soft:#f6faf8;
  --v30-ink:#0c241b;
  --v30-muted:#60766b;
  --v30-line:#d9e6df;
  --v30-green:#075f45;
  --v30-green2:#0b8059;
  --v30-green3:#13a872;
  --v30-deep:#032d22;
  --v30-gold:#f3c857;
  --v30-gold2:#ffdf82;
  --v30-shadow:0 22px 55px rgba(5,49,35,.11);
  --v30-shadow-soft:0 12px 32px rgba(5,49,35,.08);
  --v30-radius:30px;
}
html{background:var(--v30-bg)}
body.v30-body{background:
  radial-gradient(circle at 10% 8%,rgba(19,168,114,.10),transparent 24rem),
  radial-gradient(circle at 92% 5%,rgba(243,200,87,.13),transparent 22rem),
  linear-gradient(180deg,#eff6f3 0%,#f7faf8 44%,#eef4f1 100%);color:var(--v30-ink)}
body.v30-body:before,body.v30-body:after{content:"";position:fixed;border-radius:50%;pointer-events:none;z-index:-1;filter:blur(4px);opacity:.42}
body.v30-body:before{width:380px;height:380px;left:-180px;top:18vh;background:radial-gradient(circle,rgba(16,160,108,.18),transparent 68%);animation:v30OrbA 12s ease-in-out infinite alternate}
body.v30-body:after{width:420px;height:420px;right:-210px;top:48vh;background:radial-gradient(circle,rgba(245,200,81,.16),transparent 68%);animation:v30OrbB 15s ease-in-out infinite alternate}
@keyframes v30OrbA{to{transform:translate(70px,80px) scale(1.12)}}
@keyframes v30OrbB{to{transform:translate(-80px,-60px) scale(.9)}}

/* TOPBAR: más grande, más respirado, más tipo app */
.v29-topbar{height:78px!important;padding:calc(10px + env(safe-area-inset-top)) 18px 10px!important;background:linear-gradient(125deg,#03362a 0%,#075c45 50%,#0a7a56 100%)!important;box-shadow:0 14px 34px rgba(3,42,31,.22)!important;overflow:hidden}
.v29-topbar:after{content:"";position:absolute;inset:-80% auto -80% -20%;width:38%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.08),transparent);transform:skewX(-20deg);animation:v30HeaderSweep 7s ease-in-out infinite;pointer-events:none}
@keyframes v30HeaderSweep{0%,52%{left:-35%}80%,100%{left:130%}}
.v29-brand{gap:12px!important}.v29-brand img{width:52px!important;height:52px!important;border-radius:17px!important;padding:3px!important;box-shadow:0 8px 24px rgba(0,0,0,.18)}
.v29-brand small{font-size:10px!important;letter-spacing:.04em!important;color:#d5ebe2!important;max-width:245px!important}.v29-brand b{font-size:16px!important;line-height:1.1!important;margin-top:3px!important;color:#fff!important}
.v29-top-actions{gap:8px!important}.v29-teacher,.v29-menu{width:46px!important;height:46px!important;border-radius:15px!important;background:rgba(255,255,255,.12)!important;border:1px solid rgba(255,255,255,.18)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.v29-teacher span,.v29-menu{font-size:20px!important}
.v29-live-pill{animation:v30LivePulse 2s ease-in-out infinite}@keyframes v30LivePulse{50%{box-shadow:0 0 0 7px rgba(67,223,145,.08)}}

/* MOBILE APP SCALE */
@media(max-width:819px){
  :root{--header-h:78px;--nav-h:84px;--radius:26px}
  .v29-body{padding-top:calc(78px + env(safe-area-inset-top));padding-bottom:calc(84px + env(safe-area-inset-bottom) + 14px)!important}
  .v29-app{width:100%!important;max-width:none!important}
  .v29-screen{padding:18px 16px 28px!important;min-height:calc(100dvh - 178px)!important;animation:v30ScreenIn .36s cubic-bezier(.2,.8,.2,1)!important}
  @keyframes v30ScreenIn{from{opacity:0;transform:translateY(14px) scale(.992)}to{opacity:1;transform:none}}

  .v29-home-intro{align-items:flex-start!important;padding:8px 2px 18px!important}
  .v29-kicker{font-size:11px!important;letter-spacing:.08em!important;gap:8px!important;padding:7px 10px;border-radius:999px;background:#e4f4ed;color:#086849!important}
  .v29-kicker i{width:8px!important;height:8px!important}
  .v29-home-copy h1{font-size:36px!important;line-height:1.02!important;letter-spacing:-.055em!important;margin:12px 0 10px!important;max-width:340px}
  .v29-home-copy h1 strong{display:inline;color:#0a6f50!important}
  .v29-home-copy p{display:block!important;font-size:15px!important;line-height:1.5!important;color:#5a7166!important;margin:0!important;max-width:380px}

  .v29-home-grid{gap:14px!important}
  .v29-leader-shell,.v29-today-card,.v29-ranking-board,.v29-category-card,.v29-live-side{border-radius:28px!important;border-color:#dce8e2!important;box-shadow:var(--v30-shadow-soft)!important}
  .v29-leader-shell,.v29-today-card{padding:20px!important}
  .v29-leader-shell:before{height:6px!important;background:linear-gradient(90deg,#0aa06e,#f1c958,#0a805b)!important}
  .v29-card-title small{font-size:10px!important;letter-spacing:.08em!important}.v29-card-title h2{font-size:23px!important;line-height:1.15!important;margin-top:4px!important}.v29-card-title>span{font-size:10px!important;color:#6b7d74!important}

  .v5-leader-panel{grid-template-columns:62px minmax(0,1fr) auto!important;gap:12px!important;padding:16px!important;border-radius:22px!important;margin-top:15px!important;background:linear-gradient(135deg,#043b2d,#087052 58%,#0b8a61)!important;box-shadow:0 16px 32px rgba(7,92,67,.18)!important;position:relative;overflow:hidden}
  .v5-leader-panel:after{content:"";position:absolute;width:150px;height:150px;border-radius:50%;right:-65px;top:-70px;background:radial-gradient(circle,rgba(255,223,130,.25),transparent 65%);animation:v30LeaderGlow 4s ease-in-out infinite alternate}
  @keyframes v30LeaderGlow{to{transform:scale(1.25) translate(-10px,10px)}}
  .v5-leader-rank{width:62px!important;height:62px!important;border-radius:20px!important}.v5-leader-rank b{font-size:23px!important}.v5-leader-rank span{font-size:16px!important}
  .v5-leader-info small{font-size:9px!important}.v5-leader-info h3{font-size:23px!important;margin:4px 0 6px!important}.category-inline{font-size:9px!important;padding:5px 8px!important}.v5-leader-score b{font-size:31px!important}.v5-leader-score span{font-size:9px!important}
  .v5-leader-stats{gap:8px!important;margin-top:10px!important}.v5-leader-stat{padding:11px 5px!important;border-radius:15px!important}.v5-leader-stat i{font-size:20px!important}.v5-leader-stat b{font-size:16px!important}.v5-leader-stat small{font-size:8px!important}
  .v29-subhead{padding-top:14px!important;margin-top:4px}.v29-subhead b{font-size:14px!important}.v29-subhead button{font-size:11px!important;background:#edf7f2!important;padding:8px 10px!important;border-radius:999px!important;color:#086849!important}
  .mini-podium{gap:9px!important;margin-top:9px!important}.mini-team{padding:12px!important;border-radius:17px!important;grid-template-columns:36px minmax(0,1fr) auto!important}.mini-rank-medal{font-size:24px!important}.mini-team-copy small{font-size:8px!important}.mini-team-copy b{font-size:14px!important}.mini-team-copy em{font-size:9px!important}.mini-team-points b{font-size:19px!important}.mini-team-points small{font-size:8px!important}

  .v29-today-card{margin-top:0}.v29-stat-grid{grid-template-columns:1fr 1fr!important;gap:10px!important;margin-top:14px!important}.v29-stat-grid button{min-height:104px!important;border-radius:20px!important;padding:14px 8px!important;background:linear-gradient(180deg,#fff,#f7fbf9)!important;box-shadow:0 8px 20px rgba(5,49,35,.05);transition:.2s ease}.v29-stat-grid button:active{transform:scale(.97)!important}.v29-stat-grid i{font-size:28px!important}.v29-stat-grid b{font-size:27px!important;margin-top:5px!important}.v29-stat-grid span{font-size:11px!important;margin-top:2px;color:#5f756a!important}

  .v29-quick-title{padding:24px 2px 10px!important}.v29-quick-title small{font-size:10px!important}.v29-quick-title h2{font-size:25px!important;margin-top:4px!important}
  .v29-quick-grid{gap:11px!important}.v29-quick-grid>a,.v29-quick-grid>button{min-height:122px!important;border-radius:24px!important;padding:17px!important;box-shadow:0 12px 30px rgba(5,49,35,.07)!important;transition:transform .2s ease,box-shadow .2s ease!important}.v29-quick-grid>a:active,.v29-quick-grid>button:active{transform:scale(.965)!important}.v29-quick-grid i{font-size:33px!important}.v29-quick-grid b{font-size:16px!important}.v29-quick-grid small{font-size:11px!important;line-height:1.35!important;margin-top:4px!important}.v29-game-quick{background:linear-gradient(145deg,#043b2d,#0a7b58)!important;box-shadow:0 16px 32px rgba(7,92,67,.18)!important}

  .v29-game-card{margin-top:14px!important;border-radius:28px!important;grid-template-columns:minmax(0,1fr) 145px!important;min-height:238px!important;box-shadow:0 20px 42px rgba(4,59,43,.18)!important;overflow:hidden!important}.v29-game-card:before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.06) 50%,transparent 67%);transform:translateX(-120%);animation:v30GameSweep 6s ease-in-out infinite}@keyframes v30GameSweep{0%,52%{transform:translateX(-120%)}80%,100%{transform:translateX(120%)}}
  .v29-game-copy{padding:24px 0 24px 22px!important}.v29-game-copy>span{font-size:10px!important}.v29-game-copy h2{font-size:31px!important;line-height:.98!important;margin:10px 0!important}.v29-game-copy p{font-size:12px!important;line-height:1.48!important;max-width:230px!important}.v29-game-copy>a{margin-top:12px!important;padding:12px 15px!important;border-radius:15px!important;font-size:12px!important}.v29-game-art img{animation:v30KeeperFloat 3.2s ease-in-out infinite!important}@keyframes v30KeeperFloat{50%{transform:translateY(-8px) rotate(-1deg)}}.game-promo-ranking{font-size:10px!important}

  .v29-voice-card{margin-top:14px!important;border-radius:26px!important;padding:18px!important;gap:12px!important;box-shadow:0 12px 30px rgba(5,49,35,.07)!important}.v29-voice-card>div>span{font-size:28px!important}.v29-voice-card small{font-size:9px!important}.v29-voice-card b{font-size:16px!important}.v29-voice-card p{font-size:11px!important;line-height:1.4!important}.v29-voice-card button{min-height:48px!important;border-radius:15px!important;font-size:12px!important;padding:0 15px!important}

  .v29-view-head{padding:10px 2px 17px!important}.v29-view-head>div>span{font-size:32px!important}.v29-view-head small{font-size:10px!important}.v29-view-head h1{font-size:34px!important;line-height:1!important}.v29-view-head p{font-size:13px!important;line-height:1.4!important}.v29-view-close{width:46px!important;height:46px!important;border-radius:15px!important;font-size:20px!important}.v29-view-head.dark{border-radius:28px!important;padding:20px!important;box-shadow:0 18px 42px rgba(4,55,40,.16)!important}.v29-clock{font-size:17px!important}

  .v29-search{min-height:54px!important;border-radius:18px!important;padding:0 16px!important;font-size:16px!important;box-shadow:0 10px 24px rgba(5,49,35,.06)!important}.v29-search input{font-size:15px!important}
  .category-tabs{gap:8px!important;padding:12px 0!important}.category-tabs button{min-height:44px!important;padding:0 14px!important;border-radius:999px!important;font-size:11px!important}
  .v29-ranking-board{padding:16px!important;border-radius:28px!important}.v29-board-head b{font-size:16px!important}.v29-board-head small{font-size:10px!important}.ranking-mobile-list{gap:9px!important}.ranking-mobile-card{border-radius:20px!important;padding:14px!important;min-height:84px!important;box-shadow:0 8px 18px rgba(5,49,35,.04)!important}.ranking-mobile-card b{font-size:15px!important}.ranking-mobile-card small{font-size:10px!important}
  .v29-ranking-extra{gap:12px!important}.challenge-card,.v29-category-card{border-radius:26px!important;padding:18px!important}.challenge-card h3{font-size:20px!important}.challenge-card p{font-size:12px!important}.category-champion{flex:0 0 84vw!important;border-radius:22px!important;padding:16px!important}

  .v29-live-summary{gap:9px!important}.v29-live-summary>div{min-height:88px!important;border-radius:20px!important;padding:13px!important}.v29-live-summary i{font-size:24px!important}.v29-live-summary b{font-size:20px!important}.v29-live-summary span{font-size:9px!important}
  .v29-filter-shell{margin:12px 0!important}.v29-filter-hint{font-size:10px!important;margin-bottom:7px!important}.v29-live-filters{gap:8px!important}.v29-live-filters button{min-height:43px!important;padding:0 14px!important;font-size:11px!important;border-radius:999px!important}.live-feed{gap:10px!important}.live-event{border-radius:22px!important;padding:15px!important;box-shadow:0 9px 22px rgba(5,49,35,.05)!important}.live-event b{font-size:14px!important}.live-event span,.live-event small{font-size:10px!important;line-height:1.4!important}.v29-live-side{padding:18px!important;border-radius:28px!important}.v29-highlight-grid{gap:9px!important}.v29-highlight-grid>div{border-radius:18px!important;padding:13px!important}.v29-highlight-grid small{font-size:9px!important}.v29-highlight-grid b{font-size:15px!important}.v29-highlight-grid span{font-size:9px!important}
  .v29-motion{min-height:46px!important;border-radius:15px!important;font-size:11px!important}

  .v29-awards-intro{border-radius:25px!important;padding:17px!important}.v29-awards-intro>span{font-size:33px!important}.v29-awards-intro b{font-size:17px!important}.v29-awards-intro p{font-size:11px!important}.recognitions-public{gap:10px!important}.recognition-card{border-radius:21px!important;padding:15px!important;min-height:90px!important}.recognition-card>i{width:50px!important;height:50px!important;border-radius:16px!important;font-size:25px!important}.recognition-card b{font-size:14px!important}.recognition-card span{font-size:10px!important;line-height:1.4!important}

  /* bottom app nav */
  .v29-bottom-nav{height:84px!important;left:10px!important;right:10px!important;bottom:calc(8px + env(safe-area-inset-bottom))!important;border-radius:28px!important;padding:8px!important;background:rgba(255,255,255,.96)!important;backdrop-filter:blur(20px)!important;border:1px solid rgba(210,226,218,.92)!important;box-shadow:0 18px 45px rgba(5,49,35,.18)!important}
  .v29-bottom-nav button,.v29-bottom-nav a{border-radius:19px!important;min-width:0!important;gap:3px!important}.v29-bottom-nav i{font-size:23px!important}.v29-bottom-nav span{font-size:9px!important;font-weight:900!important}.v29-bottom-nav .active{background:#e8f5ef!important;color:#086849!important}.v29-bottom-nav .active i{animation:v30NavPop .5s ease}@keyframes v30NavPop{50%{transform:translateY(-3px) scale(1.13)}}.v29-bottom-nav .play{margin-top:-24px!important;width:64px!important;height:64px!important;justify-self:center;background:linear-gradient(180deg,#ffe58b,#f2c34e)!important;border:5px solid #fff!important;box-shadow:0 12px 26px rgba(197,151,25,.28)!important;color:#3f3007!important}.v29-bottom-nav .play i{font-size:29px!important;animation:v30BallBob 2s ease-in-out infinite}@keyframes v30BallBob{50%{transform:translateY(-4px) rotate(8deg)}}

  .app-sheet{border-radius:30px 30px 0 0!important;padding:20px 18px calc(20px + env(safe-area-inset-bottom))!important}.app-sheet-head b{font-size:20px!important}.app-sheet-head span{font-size:11px!important}.app-sheet-grid{gap:10px!important}.app-sheet-grid>a,.app-sheet-grid>button{min-height:96px!important;border-radius:20px!important;padding:15px!important}.app-sheet-grid i{font-size:27px!important}.app-sheet-grid b{font-size:13px!important}.app-sheet-grid span{font-size:9px!important}
  .request-modal,.manual-modal,.course-modal{border-radius:30px 30px 0 0!important;padding:20px!important}.field{font-size:12px!important}.field input,.field select,.field textarea{font-size:14px!important;min-height:50px!important;border-radius:16px!important}.btn{min-height:50px!important;border-radius:16px!important;font-size:13px!important}
}

/* DESKTOP: dashboard ancho, grande, no una lista web */
@media(min-width:820px){
  :root{--header-h:86px}
  .v29-body{padding-top:86px!important;background:#eef4f1!important}
  .v29-topbar{height:86px!important;padding:0 34px!important;grid-template-columns:auto 1fr auto!important;border-bottom:1px solid rgba(255,255,255,.08)}
  .v29-brand img{width:58px!important;height:58px!important;border-radius:19px!important}.v29-brand small{font-size:10px!important;max-width:340px!important}.v29-brand b{font-size:18px!important}
  .v29-desktop-nav{gap:7px!important}.v29-desktop-nav a{font-size:13px!important;padding:12px 16px!important;border-radius:14px!important;transition:.2s ease}.v29-desktop-nav a:hover{background:rgba(255,255,255,.14)!important;transform:translateY(-2px)}
  .v29-live-pill{font-size:11px!important;padding:10px 13px!important}.v29-teacher{height:48px!important;padding:0 15px!important;width:auto!important}.v29-teacher b{font-size:11px!important}
  .v29-app{max-width:1360px!important;padding:28px 28px 54px!important}
  .v29-screen{margin-bottom:28px!important}
  .v29-home-intro{padding:16px 4px 26px!important}.v29-kicker{font-size:11px!important;padding:7px 10px;border-radius:999px;background:#e1f3eb}.v29-home-copy h1{font-size:58px!important;line-height:.98!important;letter-spacing:-.06em!important;max-width:850px!important;margin:12px 0 14px!important}.v29-home-copy p{font-size:16px!important;line-height:1.55!important;max-width:760px!important}.v29-home-date{padding:14px 17px!important;border-radius:20px!important;box-shadow:var(--v30-shadow-soft)!important}.v29-home-date>span{font-size:30px!important}.v29-home-date small{font-size:9px!important}.v29-home-date b{font-size:13px!important}

  .v29-home-grid{grid-template-columns:minmax(0,1.55fr) minmax(330px,.65fr)!important;gap:18px!important}.v29-leader-shell,.v29-today-card{padding:26px!important;border-radius:30px!important;box-shadow:var(--v30-shadow)!important}.v29-card-title small{font-size:10px!important}.v29-card-title h2{font-size:27px!important}.v29-card-title>span{font-size:11px!important}
  .v5-leader-panel{padding:21px!important;border-radius:24px!important;grid-template-columns:76px minmax(0,1fr) auto!important;gap:17px!important}.v5-leader-rank{width:76px!important;height:76px!important;border-radius:24px!important}.v5-leader-rank b{font-size:28px!important}.v5-leader-rank span{font-size:18px!important}.v5-leader-info small{font-size:9px!important}.v5-leader-info h3{font-size:34px!important}.category-inline{font-size:10px!important}.v5-leader-score b{font-size:42px!important}.v5-leader-score span{font-size:10px!important}.v5-leader-stats{gap:10px!important;margin-top:12px!important}.v5-leader-stat{padding:12px!important;border-radius:16px!important}.v5-leader-stat i{font-size:23px!important}.v5-leader-stat b{font-size:18px!important}.v5-leader-stat small{font-size:9px!important}
  .v29-subhead{padding-top:15px!important}.v29-subhead b{font-size:14px!important}.v29-subhead button{font-size:11px!important}.mini-podium{gap:9px!important}.mini-team{padding:13px!important;border-radius:17px!important}.mini-rank-medal{font-size:24px!important}.mini-team-copy b{font-size:14px!important}.mini-team-copy small,.mini-team-copy em{font-size:9px!important}.mini-team-points b{font-size:20px!important}.mini-team-points small{font-size:8px!important}

  .v29-today-card .v29-stat-grid{grid-template-columns:1fr 1fr!important;gap:12px!important}.v29-stat-grid button{min-height:120px!important;border-radius:22px!important;padding:18px 10px!important;transition:.2s ease}.v29-stat-grid button:hover{transform:translateY(-4px);box-shadow:0 16px 28px rgba(5,49,35,.09)}.v29-stat-grid i{font-size:31px!important}.v29-stat-grid b{font-size:31px!important}.v29-stat-grid span{font-size:11px!important}

  .v29-quick-title{padding:30px 4px 12px!important}.v29-quick-title small{font-size:10px!important}.v29-quick-title h2{font-size:29px!important}.v29-quick-grid{gap:14px!important}.v29-quick-grid>a,.v29-quick-grid>button{min-height:150px!important;border-radius:27px!important;padding:21px!important;box-shadow:var(--v30-shadow-soft)!important;transition:.24s ease}.v29-quick-grid>a:hover,.v29-quick-grid>button:hover{transform:translateY(-6px);box-shadow:0 22px 44px rgba(5,49,35,.13)!important}.v29-quick-grid i{font-size:38px!important}.v29-quick-grid b{font-size:18px!important}.v29-quick-grid small{font-size:12px!important}

  .v29-game-card{margin-top:18px!important;min-height:330px!important;border-radius:32px!important;grid-template-columns:minmax(0,1fr) 430px!important;box-shadow:0 26px 58px rgba(4,62,45,.19)!important}.v29-game-copy{padding:42px!important}.v29-game-copy>span{font-size:11px!important}.v29-game-copy h2{font-size:54px!important;letter-spacing:-.055em!important}.v29-game-copy p{font-size:15px!important;max-width:560px!important}.v29-game-copy>a{padding:14px 18px!important;border-radius:16px!important;font-size:13px!important}.v29-game-art img{right:12%!important;height:112%!important;animation:v30KeeperFloat 3.2s ease-in-out infinite}.game-promo-ranking{right:28px!important;top:26px!important;max-width:210px!important;padding:12px 14px!important;border-radius:16px!important}.game-promo-ranking small{font-size:9px!important}.game-promo-ranking b{font-size:13px!important}

  .v29-voice-card{margin-top:18px!important;padding:22px 24px!important;border-radius:27px!important;box-shadow:var(--v30-shadow-soft)!important}.v29-voice-card>div>span{font-size:35px!important}.v29-voice-card small{font-size:10px!important}.v29-voice-card b{font-size:19px!important}.v29-voice-card p{font-size:12px!important}.v29-voice-card button{min-height:48px!important;padding:0 18px!important;border-radius:15px!important;font-size:12px!important}

  /* main sections feel like app dashboards */
  .v29-view-head{padding:28px 0 18px!important}.v29-view-head>div>span{font-size:38px!important}.v29-view-head small{font-size:11px!important}.v29-view-head h1{font-size:42px!important}.v29-view-head p{font-size:14px!important}.v29-view-head.dark{border-radius:30px!important;padding:28px!important;box-shadow:0 22px 50px rgba(4,57,42,.17)!important}.v29-clock{font-size:21px!important}
  .v29-ranking-board,.v29-category-card,.v29-live-side{border-radius:30px!important;box-shadow:var(--v30-shadow-soft)!important}.v29-ranking-board{padding:22px!important}.ranking-desktop-table td{padding:16px!important;font-size:13px!important}.pos-badge{width:40px!important;height:40px!important;border-radius:12px!important}.points-pill{padding:8px 11px!important;font-size:11px!important}.category-table-chip,.trend-chip{font-size:10px!important;padding:7px 9px!important}.v29-ranking-extra{gap:18px!important;margin-top:18px!important}.challenge-card,.v29-category-card{padding:22px!important;border-radius:28px!important}.category-champion{flex:0 0 340px!important;border-radius:22px!important;padding:18px!important}
  .v29-live-layout{gap:18px!important}.live-feed{gap:12px!important}.live-event{padding:18px!important;border-radius:22px!important}.live-event b{font-size:15px!important}.live-event span,.live-event small{font-size:11px!important}.v29-live-side{padding:22px!important}.v29-highlight-grid>div{padding:16px!important;border-radius:19px!important}.v29-highlight-grid b{font-size:17px!important}.v29-highlight-grid small,.v29-highlight-grid span{font-size:10px!important}.recognitions-public{gap:14px!important}.recognition-card{padding:18px!important;border-radius:22px!important;min-height:104px!important}.recognition-card>i{width:56px!important;height:56px!important;border-radius:18px!important;font-size:27px!important}.recognition-card b{font-size:15px!important}.recognition-card span{font-size:11px!important}

  .v29-footer{max-width:1360px!important;margin:0 auto 34px!important;padding:24px 26px!important;border-radius:28px!important;box-shadow:0 18px 42px rgba(4,51,38,.15)!important}.v29-footer img{width:52px!important;height:52px!important;border-radius:15px!important}.v29-footer b{font-size:13px!important}.v29-footer small{font-size:9px!important}.v29-footer nav button,.v29-footer nav a{font-size:10px!important;padding:7px 9px!important}
}

/* visual feedback */
@media(hover:hover){.v29-teacher:hover,.v29-menu:hover{background:rgba(255,255,255,.18)!important;transform:translateY(-2px)}}
@media(prefers-reduced-motion:reduce){body.v30-body:before,body.v30-body:after,.v29-topbar:after,.v29-game-card:before,.v29-game-art img,.v29-bottom-nav .play i,.v29-live-pill{animation:none!important}}

/* V30 reveal motion, now connected to the real V29/V30 DOM */
.v30-reveal{opacity:0;transform:translateY(18px) scale(.985);transition:opacity .52s ease var(--v30-delay,0ms),transform .52s cubic-bezier(.2,.8,.2,1) var(--v30-delay,0ms)}
.v30-reveal.is-visible{opacity:1;transform:none}
.motion-disabled .v30-reveal{opacity:1!important;transform:none!important;transition:none!important}
@media(prefers-reduced-motion:reduce){.v30-reveal{opacity:1!important;transform:none!important;transition:none!important}}

/* Desktop V30 behaves like an application: one main view at a time */
@media(min-width:820px){
  .v29-screen{display:none!important;animation:v30DesktopView .36s cubic-bezier(.2,.8,.2,1)!important;margin-bottom:0!important}
  .v29-screen.active{display:block!important}
  @keyframes v30DesktopView{from{opacity:.25;transform:translateY(14px)}to{opacity:1;transform:none}}
  .v29-desktop-nav a.active{background:#fff!important;color:#075b43!important;box-shadow:0 9px 24px rgba(0,0,0,.12)!important}
  .v29-footer{margin-top:10px!important}
}
@media(max-width:819px){.v29-topbar.compact{transform:translateY(-8px)!important}}
