:root{--c-cream: #fff4dc;--c-cream-2: #ffe4bd;--c-peach: #ffb38a;--c-peach-2: #ff8b6a;--c-coral: #ff6f61;--c-pink: #ff5a8a;--c-yellow: #ffce4a;--c-mint: #5ad6a8;--c-mint-2: #2fb88a;--c-sky: #6cc7ff;--c-lav: #b794f4;--c-ink: #3a2418;--c-ink-soft: #6b4a36;--c-ink-mute: rgba(58, 36, 24, .55);--c-card: #fffaf0;--c-card-border: rgba(180, 110, 60, .18);--sh-soft: 0 4px 14px rgba(120, 60, 20, .1);--sh-card: 0 8px 22px rgba(120, 60, 20, .12), 0 2px 0 rgba(255, 255, 255, .6) inset;--sh-pop: 0 14px 30px rgba(120, 60, 20, .18), 0 2px 0 rgba(255, 255, 255, .6) inset;--r-sm: 10px;--r-md: 14px;--r-lg: 20px;--r-pill: 999px;--f-display: "Baloo 2", "Nunito", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--f-body: "Nunito", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100%;font-family:var(--f-body);color:var(--c-ink);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overflow:hidden}body{background:radial-gradient(circle at 12% 8%,rgba(255,206,74,.35),transparent 38%),radial-gradient(circle at 88% 12%,rgba(255,90,138,.22),transparent 42%),radial-gradient(circle at 50% 100%,rgba(90,214,168,.28),transparent 48%),linear-gradient(160deg,#ffe9c8,#ffd6b3 45%,#ffe2cf);background-attachment:fixed;position:relative}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:radial-gradient(rgba(255,255,255,.55) 2px,transparent 2.5px),radial-gradient(rgba(255,255,255,.35) 1.5px,transparent 2px);background-size:56px 56px,96px 96px;background-position:0 0,28px 32px;opacity:.55;z-index:0}button{font:inherit}.game-shell{position:relative;width:100%;height:100dvh;min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:12px;padding:max(14px,env(safe-area-inset-top)) 14px max(16px,env(safe-area-inset-bottom));overflow-y:auto;z-index:1}.game-shell::-webkit-scrollbar{width:8px}.game-shell::-webkit-scrollbar-thumb{background:#783c1440;border-radius:999px}.scene-frame{position:relative;width:100%;min-height:100dvh;z-index:1}.scene-shell{position:relative;width:100%;min-height:100dvh;padding:max(16px,env(safe-area-inset-top)) 16px max(18px,env(safe-area-inset-bottom));z-index:1}.narrow-scene,.intro-scene,.menu-scene{display:flex;align-items:center;justify-content:center}.intro-scene,.menu-scene{flex-direction:column;text-align:center}.intro-logo-slot,.intro-logo{width:min(42vw,180px);height:min(42vw,180px)}.intro-logo-slot{display:grid;place-items:center}.intro-logo{object-fit:contain;filter:drop-shadow(0 12px 20px rgba(120,60,20,.22))}.intro-logo-ready{animation:intro-logo-reveal .22s ease-out both}@keyframes intro-logo-reveal{0%{opacity:0;transform:translateY(8px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}.loading-panel{width:min(100%,340px);margin-top:22px;padding:16px;border-radius:18px;background:linear-gradient(180deg,#fff,#fff3df);border:2px solid rgba(180,110,60,.18);box-shadow:var(--sh-card);display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;font-weight:800;color:var(--c-ink-soft)}.loading-track{height:10px;border-radius:999px;overflow:hidden;background:#b46e3c29}.loading-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--c-mint),var(--c-yellow),var(--c-coral));transition:width .18s ease}.loading-spinner{display:inline-block;border-radius:50%;border:3px solid rgba(180,110,60,.2);border-top-color:var(--c-coral);animation:spin .8s linear infinite}.menu-topbar,.scene-topbar{position:absolute;top:max(16px,env(safe-area-inset-top));left:16px;right:16px;display:flex;align-items:center;justify-content:flex-start;gap:12px}.menu-topbar{justify-content:space-between}.scene-topbar.compact{position:static;margin-bottom:14px}.scene-topbar-title{margin:0;font-family:var(--f-display);font-size:28px;font-weight:800;color:#3a2418;line-height:1}.profile-badge,.max-score-badge,.sticky-rank-row{border:2px solid rgba(180,110,60,.18);background:linear-gradient(180deg,#fff,#fff3df);box-shadow:var(--sh-card)}.profile-badge{min-width:0;max-width:min(58vw,260px);min-height:54px;padding:6px 15px 6px 6px;border-radius:999px;display:flex;align-items:center;gap:9px;cursor:pointer;font:inherit}.max-score-badge{min-height:54px;padding:8px 14px;border-radius:999px;display:flex;align-items:center;gap:7px;font-weight:900;color:var(--c-ink-soft)}.menu-center{width:min(100%,360px);display:flex;flex-direction:column;align-items:stretch}.menu-logo{width:150px;height:150px;object-fit:contain;align-self:center;filter:drop-shadow(0 12px 20px rgba(120,60,20,.2))}.menu-actions,.gameover-actions{display:grid;gap:12px}.scene-panel{width:min(100%,420px);padding:22px;display:flex;flex-direction:column;gap:12px}.gameover-scene-card{position:relative;width:min(100%,440px);padding:18px 18px 20px;overflow:hidden;text-align:center;display:flex;flex-direction:column;align-items:stretch;gap:14px;border-radius:26px;border:3px solid rgba(255,255,255,.86);background:linear-gradient(180deg,#ffffffbd,#fff4dcf0),radial-gradient(circle at 20% 18%,rgba(255,206,74,.52),transparent 32%),radial-gradient(circle at 82% 22%,rgba(90,214,168,.34),transparent 34%),linear-gradient(180deg,#fff8e8,#ffd9b4);box-shadow:0 18px 42px #783c1433,inset 0 2px #ffffffbf}.gameover-scene-card:before,.gameover-scene-card:after{content:"";position:absolute;pointer-events:none;border-radius:999px;background:#ffffff5c}.gameover-scene-card:before{width:130px;height:130px;right:-44px;top:68px}.gameover-scene-card:after{width:88px;height:88px;left:-34px;bottom:120px}.gameover-scene-card>*{position:relative;z-index:1}.gameover-hero{position:relative;min-height:128px;display:grid;place-items:center;margin-top:2px}.gameover-burst{position:absolute;width:168px;height:168px;border-radius:50%;background:repeating-conic-gradient(from -8deg,rgba(255,206,74,.48) 0deg 10deg,transparent 10deg 20deg),radial-gradient(circle,rgba(255,255,255,.86) 0 48%,transparent 49%);filter:drop-shadow(0 10px 16px rgba(120,60,20,.12));opacity:.85}.gameover-logo{width:108px;height:108px;object-fit:contain;align-self:center;filter:drop-shadow(0 12px 18px rgba(120,60,20,.22))}.gameover-profile-avatar{width:108px;height:108px;border-radius:50%;object-fit:cover;align-self:center;background:#fffaf0;border:5px solid rgba(255,255,255,.94);box-shadow:0 12px 18px #783c1438,inset 0 2px #ffffffbf;z-index:1}.gameover-profile-fallback{display:grid;place-items:center;font-family:var(--f-display);font-size:48px;font-weight:900;color:#5b3a14;background:linear-gradient(180deg,#fff,#ffb45f)}.gameover-trophy{position:absolute;right:calc(50% - 106px);bottom:9px;width:66px;height:66px;border-radius:50%;display:grid;place-items:center;color:#7a4b12;background:linear-gradient(180deg,#ffe77a,#ffb23e);border:4px solid rgba(255,255,255,.92);box-shadow:0 8px #96541233,0 14px 22px #a0501438}.gameover-title-stack{display:flex;flex-direction:column;align-items:center;gap:8px}.gameover-title-stack h1{margin:0;font-family:var(--f-display);font-size:42px;font-weight:900;line-height:.95;color:#3a2418;text-shadow:0 3px 0 rgba(255,255,255,.72)}.gameover-ribbon{min-height:28px;padding:5px 13px;border-radius:999px;display:inline-flex;align-items:center;gap:6px;font-family:var(--f-display);font-size:12px;font-weight:900;letter-spacing:.8px;text-transform:uppercase;color:#633a10;background:linear-gradient(180deg,#fff0a8,#ffbf47);border:2px solid rgba(255,255,255,.82);box-shadow:0 4px #aa5f1429}.gameover-score-board{padding:16px 18px 18px;border-radius:22px;background:linear-gradient(180deg,#ffffffeb,#fff1d5f5);border:2px solid rgba(255,165,90,.34);box-shadow:0 6px #b46e3c24,inset 0 2px #ffffffb8}.gameover-score-board span{display:block;margin-bottom:3px;color:var(--c-ink-mute);font-size:11px;font-weight:900;letter-spacing:1px;text-transform:uppercase}.gameover-score-board strong{display:block;font-family:var(--f-display);font-size:clamp(42px,14vw,64px);font-weight:900;line-height:.95;color:#3a2418;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;text-shadow:0 4px 0 rgba(255,206,74,.45)}.gameover-character-row{min-height:76px;display:flex;align-items:flex-end;justify-content:center;gap:8px;margin-top:-4px}.gameover-character-token{width:74px;height:74px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(180deg,#ffffffdb,#fff3dfb8);border:2px solid rgba(180,110,60,.16);box-shadow:inset 0 2px #ffffffc2,0 6px 14px #783c141a}.gameover-character-token:nth-child(2){width:86px;height:86px;margin-bottom:4px}.gameover-secondary-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.submit-message,.settings-error,.settings-success{padding:10px 12px;border-radius:12px;font-size:13px;font-weight:800;display:flex;align-items:center;justify-content:center;gap:7px}.submit-loading{background:#fff3cd;color:#7a5000}.submit-success,.settings-success{background:#e6f9f2;color:#1b7a4f}.submit-warn{background:#fff3cd;color:#7a5000}.submit-error,.settings-error{background:#ffe4e4;color:#a02828}.leaderboard-scene{display:flex;flex-direction:column;align-items:center;gap:12px;padding-top:max(16px,env(safe-area-inset-top));padding-bottom:calc(92px + env(safe-area-inset-bottom));overflow-y:auto;height:100dvh}.leaderboard-scene>.gcard{width:min(100%,560px);height:clamp(460px,calc(100dvh - 250px),700px);min-height:0}.sticky-rank-row{position:fixed;left:50%;bottom:max(12px,env(safe-area-inset-bottom));transform:translate(-50%);width:min(calc(100% - 24px),560px);min-height:68px;padding:8px 20px 8px 14px;border-radius:18px;display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:center;z-index:20}.sticky-rank-number{width:30px;text-align:center;font-family:var(--f-display);font-size:18px;font-weight:800;color:#8b5a2b}.sticky-rank-row .profile-badge{width:100%;max-width:none;min-height:52px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;cursor:default}.rank-summary{min-width:78px;min-height:48px;padding-left:10px;border-left:1px solid rgba(180,110,60,.18);display:flex;flex-direction:column;justify-content:center;align-items:flex-end;gap:2px}.rank-summary-score{border-left:0}.rank-summary span{font-size:10px;font-weight:900;color:var(--c-ink-mute);text-transform:uppercase}.rank-summary strong{font-family:var(--f-display);font-size:20px;line-height:1}@media (max-width: 430px){.loading-panel{grid-template-columns:1fr auto}.sticky-rank-row{grid-template-columns:30px minmax(0,1fr) auto}}.game-header{width:min(100%,480px);display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:10px 14px;border-radius:var(--r-lg);background:linear-gradient(180deg,#fff,#fff3df);border:2px solid var(--c-card-border);box-shadow:var(--sh-card)}.game-header-titlebar{min-width:0;display:flex;align-items:center;gap:12px}.game-header-titlebar>button{flex:0 0 auto}.game-header-titlebar h1{min-width:0;line-height:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.score-card,.next-card{min-height:46px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-md);padding:6px 12px;background:linear-gradient(180deg,#fffefb,#fff0d6);border:2px solid rgba(255,165,90,.35);box-shadow:0 3px #ffa55a2e}.score-card{min-width:96px;flex-direction:column}.score-label,.next-label{color:var(--c-ink-mute);font-size:10px;font-weight:800;line-height:1;letter-spacing:.6px;text-transform:uppercase}.score-card strong{margin-top:4px;font-family:var(--f-display);color:var(--c-ink);font-size:22px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}.next-card{min-width:78px;gap:8px}.reset-button,.play-again-button{border:0;color:#fff;font-family:var(--f-display);font-weight:800;letter-spacing:.4px;cursor:pointer;background:linear-gradient(180deg,#ff8a5a,#ff5a4a);box-shadow:0 4px #a0321e59,0 8px 18px #ff5a4659,inset 0 1px #ffffff59;transition:transform 80ms ease,box-shadow 80ms ease}.reset-button{min-height:44px;border-radius:var(--r-md);padding:0 16px;font-size:14px}.reset-button:hover,.play-again-button:hover{transform:translateY(-1px)}.reset-button:active,.play-again-button:active{transform:translateY(2px);box-shadow:0 1px #a0321e59,0 4px 10px #ff5a4640,inset 0 1px #ffffff59}.arena-area{flex:1 1 auto;min-height:0;width:100%;display:flex;align-items:center;justify-content:center}.arena-shell{flex:0 0 auto}.arena-stage{border-radius:24px;overflow:visible}.arena-playfield{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:24px;overflow:hidden}.arena-background{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;pointer-events:none;object-position:50% 100%;-webkit-user-select:none;user-select:none;opacity:.85}.danger-zone-line{position:absolute;left:20px;right:20px;height:4px;border-radius:999px;background:repeating-linear-gradient(90deg,#ff6f8b 0 10px,transparent 10px 18px);pointer-events:none;transform:translateY(-50%);z-index:1}.drop-guide{background:linear-gradient(180deg,#ff6e5a8c,#ff6e5a0d);box-shadow:0 0 6px #ff6e5a73}.entity-img{filter:drop-shadow(0 3px 4px rgba(50,31,22,.25));transform:translateZ(0)}.game-over-overlay{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:26px 20px;color:#fff;text-align:center;border-radius:0 0 22px 22px;background:radial-gradient(ellipse at top,rgba(255,138,90,.45),transparent 60%),#281610bd;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.game-over-overlay h2{margin:0;font-family:var(--f-display);font-size:44px;font-weight:800;line-height:1;letter-spacing:1px;text-shadow:0 3px 0 rgba(0,0,0,.25)}.final-score{padding:10px 18px;border-radius:var(--r-pill);background:linear-gradient(180deg,#ffffff38,#ffffff1a);border:2px solid rgba(255,255,255,.35);font-size:18px;font-weight:700}.final-score b{font-family:var(--f-display);font-size:22px;color:var(--c-yellow);margin-left:6px}.play-again-button{min-height:48px;border-radius:var(--r-pill);padding:0 24px;font-size:17px}.leaderboard-button{background:linear-gradient(180deg,#6de2b6,#2fb88a);box-shadow:0 4px #1e6e5059,0 8px 18px #3cc88c4d,inset 0 1px #ffffff59}.score-submitting{display:flex;align-items:center;gap:8px;padding:8px 16px;border-radius:var(--r-pill);background:#ffffff26;border:1.5px solid rgba(255,255,255,.3);font-size:13px;font-weight:700;color:#ffffffe6}.score-submitting-spinner{width:16px;height:16px;border-radius:50%;border:2.5px solid rgba(255,255,255,.3);border-top-color:#fff;flex-shrink:0;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.icon-spin{animation:spin .8s linear infinite;display:inline-block}.play-again-button{display:inline-flex;align-items:center;gap:8px}.start-game-overlay{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:5}@keyframes pulse-start{0%,to{box-shadow:0 6px #a0321e59,0 12px 28px #ff5a4666,inset 0 1px #ffffff59}50%{box-shadow:0 6px #a0321e59,0 16px 36px #ff5a468c,inset 0 1px #ffffff59}}.gcard{width:min(100%,480px);background:var(--c-card);border:2px solid var(--c-card-border);border-radius:var(--r-lg);box-shadow:var(--sh-card);padding:12px 14px}.gcard-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.gcard-title{font-family:var(--f-display);font-size:16px;font-weight:800;color:var(--c-ink);letter-spacing:.3px}.gcard-sub{font-size:12px;color:var(--c-ink-mute);font-weight:600}@media (max-width: 480px){.game-shell{gap:10px;padding-right:10px;padding-left:10px}.gameover-scene-card{padding:14px 14px 16px;gap:11px;border-radius:22px}.gameover-hero{min-height:106px}.gameover-burst{width:138px;height:138px}.gameover-logo{width:92px;height:92px}.gameover-trophy{right:calc(50% - 88px);bottom:5px;width:56px;height:56px}.gameover-title-stack h1{font-size:36px}.gameover-score-board{padding:13px 14px 15px;border-radius:18px}.gameover-character-row{min-height:66px}.gameover-character-token{width:62px;height:62px}.gameover-character-token:nth-child(2){width:72px;height:72px}.scene-topbar-title{font-size:23px}.game-header{border-radius:16px;padding:8px 10px}.game-header-titlebar{gap:8px}.game-header-titlebar h1{font-size:18px!important}.score-card{min-width:78px;min-height:40px;padding:4px 10px}.score-card strong{font-size:18px}.next-card{min-width:60px;min-height:40px;padding:3px 8px}.next-label{display:none}.game-over-overlay h2{font-size:36px}}@media (max-width: 360px){.scene-topbar-title{font-size:21px}.game-header-titlebar h1{display:none}}
