/* Arcade UI: self-contained mobile adventure map */
.arcade-shell{--ac:#f5d77d;--glow:#7ac4a6;--deep:#0a292e;display:flex;flex-direction:column;width:100%;height:100%;min-height:0;overflow:hidden;color:#fff6df;background:radial-gradient(ellipse at 74% 33%,#497b8080,transparent 55%),linear-gradient(160deg,#173d44,var(--deep))}
.arcade-world-meadow{--ac:#ffdd87;--glow:#70c59d;--deep:#0b342f}.arcade-world-forest{--ac:#a2e0bc;--glow:#6db3e4;--deep:#102943}.arcade-world-desert{--ac:#ffe1a0;--glow:#ec8f68;--deep:#4a2430}.arcade-world-frost{--ac:#c7ebff;--glow:#86d6ec;--deep:#142b53}.arcade-world-carnival{--ac:#fbd5a0;--glow:#d69bed;--deep:#342251}.arcade-world-palace{--ac:#fce69c;--glow:#ffd481;--deep:#342631}
.arcade-shell button:focus-visible{outline:3px solid white;outline-offset:3px}
.arcade-top{display:grid;grid-template-columns:39px 1fr auto;gap:10px;align-items:center;padding:14px 14px 10px;flex:none;background:#061b2690;z-index:3}.arcade-top h1{font-size:16px;line-height:1.2;letter-spacing:.11em;margin:0;color:var(--ac)}.arcade-top small{display:block;margin-top:4px;font-size:10px;color:#d0dacc}
.arcade-back,.arcade-world-nav>button{border:1px solid #ffffff44;border-radius:14px;background:#091d2e70;width:38px;height:38px;font-size:29px;line-height:1}.arcade-coin{white-space:nowrap;padding:8px 9px;background:#221d1ab5;border:1px solid #d7a74b9c;border-radius:999px;font-size:12px;font-weight:800;color:var(--ac)}
.arcade-progress{display:flex;justify-content:space-between;gap:6px;padding:9px 15px;font-size:12px;background:#0004;color:#e3e8df}.arcade-progress>span{display:flex;align-items:center;gap:7px}.arcade-star-text{display:inline-flex;gap:1px;font-size:13px;white-space:nowrap}.arcade-star-text span{color:#82909499;text-shadow:0 1px 1px #0008}.arcade-star-text .lit{color:#ffd977;text-shadow:0 1px 5px #ecaa32a8}
.arcade-world-nav{display:grid;grid-template-columns:40px minmax(0,1fr) 40px;gap:10px;align-items:center;text-align:center;padding:14px 14px 11px;background:#ffffff05}.arcade-world-nav>button:disabled{opacity:.2}.arcade-world-nav small{letter-spacing:.12em;color:var(--ac);font-weight:800;font-size:11px}.arcade-world-nav h2{margin:2px 0;font:800 clamp(19px,5vw,25px) "Bodoni Moda",Georgia,serif}.arcade-world-nav p{margin:2px 0 0;color:#cdd9d2;font-size:11px}
.arcade-map-scroller{min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;flex:1;scrollbar-width:thin;scrollbar-color:#d8bd76aa transparent;background:radial-gradient(circle at 25% 20%,#ffffff16,transparent 20%),radial-gradient(circle at 74% 51%,#ffffff14,transparent 22%),repeating-radial-gradient(circle at 50% 40%,#ffffff06 0 2px,transparent 3px 68px)}
.arcade-map{position:relative;min-height:1130px;width:100%;background:radial-gradient(ellipse at 20% 13%,var(--glow),transparent 23%),radial-gradient(ellipse at 84% 55%,var(--glow),transparent 21%),radial-gradient(ellipse at 25% 93%,var(--glow),transparent 30%);background-blend-mode:soft-light}.arcade-map svg{position:absolute;inset:0;width:100%;height:1130px;pointer-events:none}.arcade-track-bg{fill:none;stroke:#0009;stroke-width:23;stroke-linecap:round;stroke-linejoin:round}.arcade-track{fill:none;stroke:#f7de9bcc;stroke-width:10;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2 19}
.arcade-pin{width:64px;height:64px;position:absolute;transform:translate(-50%,-50%);z-index:1;border-radius:50%;background:linear-gradient(155deg,#e8f6f1,#55a2a0 68%,#265a67);border:4px solid #fff6cf;box-shadow:0 6px 0 #092a34,0 10px 20px #0009,inset 0 4px 6px #ffffffad;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#18333b}
.arcade-pin-number{font-size:18px;font-weight:1000;line-height:1.1;text-shadow:0 1px #fff9}.arcade-pin .arcade-star-text{font-size:14px;position:absolute;top:58px;border-radius:20px;padding:0 6px;background:#142b37c9}.arcade-pin.complete{background:linear-gradient(#fffbd8,#ffdc73 62%,#c9953a);border-color:#fff4b3;box-shadow:0 6px 0 #74491f,0 10px 22px #0008,inset 0 4px 7px #fff6}.arcade-pin.current{animation:arcade-pulse 2.1s ease-in-out infinite;box-shadow:0 6px 0 #264c32,0 10px 20px #0008,0 0 0 8px #9affe93b}.arcade-pin.locked{filter:grayscale(.8);opacity:.65;background:linear-gradient(#5b6c73,#2c3843);border-color:#7e8f95;color:#bdc8cd;box-shadow:0 6px 0 #15212a,0 10px 20px #0009}.arcade-pin.boss{width:76px;height:76px;border-width:5px;background:linear-gradient(#fff4d8,#ffae4a 60%,#bd516b)}.arcade-pin.boss .arcade-pin-number{font-size:31px}.arcade-pin.boss.locked{background:linear-gradient(#5b6c73,#2c3843)}.arcade-map-bottom{position:absolute;bottom:12px;left:0;right:0;font-size:38px;text-align:center;color:#ffffff55}
.arcade-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 16px calc(12px + env(safe-area-inset-bottom,0px));background:#071c2cf0;font-size:11px;color:#d4e5e1}.arcade-bottom button{font-size:12px;border:1px solid #d2a94f99;border-radius:14px;padding:8px 16px;background:#ffffff0b}@keyframes arcade-pulse{50%{filter:brightness(1.15);box-shadow:0 6px 0 #264c32,0 10px 20px #0008,0 0 0 12px #9affe95b}}
.arcade-detail-scroll{overflow-y:auto;flex:1;min-height:0;padding:12px 17px 20px;scrollbar-width:thin}.arcade-level-hero{text-align:center;padding:15px 0 18px}.arcade-hero-disc{width:90px;height:90px;display:grid;place-items:center;margin:0 auto 14px;border-radius:50%;background:linear-gradient(135deg,#fff5be,#eab05a 75%,#a96345);box-shadow:inset 0 0 0 5px #ffffff55,0 9px 22px #0009;font-size:38px;color:#5e3a21;font-weight:900}.arcade-hero-disc.boss{font-size:48px;background:linear-gradient(120deg,#fff9de,#e9a559,#c35a5e)}
.arcade-kicker{color:var(--ac);text-transform:uppercase;font-size:11px;font-weight:900;letter-spacing:.14em}.arcade-level-hero h2{font:800 29px "Bodoni Moda",Georgia,serif;margin:6px 0 9px}.arcade-level-hero .arcade-star-text{font-size:28px;gap:5px}.arcade-information{display:grid;grid-template-columns:1fr 1fr;gap:10px}.arcade-information>div,.arcade-target,.arcade-result-facts{background:#071a2c9c;border:1px solid #ffffff21;border-radius:14px;padding:12px}.arcade-information small{font-size:10px;display:block;color:#adcbc8}.arcade-information strong{font-size:13px;display:block;margin-top:5px;color:var(--ac)}.arcade-objective{font-size:12px;line-height:1.5;color:#e2e9e5;margin:16px 4px}
.arcade-target{display:grid;gap:6px}.arcade-target h3,.arcade-boost-title{font-size:12px;letter-spacing:.05em;color:var(--ac);margin:0 0 4px}.arcade-target span{font-size:12px;color:#e7ece8}.arcade-boost-title{margin:19px 0 9px}.arcade-boost-list{display:grid;gap:8px}.arcade-boost{width:100%;min-height:62px;padding:10px;border:1px solid #ffffff2a;border-radius:14px;background:#09253a8c;display:grid;grid-template-columns:35px 1fr auto;gap:10px;align-items:center;text-align:left}.arcade-boost.selected{border-color:#ffdc83;background:#e8b7552b;box-shadow:inset 0 0 0 1px #ffdc832c}.arcade-boost.unavailable{opacity:.5}.arcade-boost-icon{font-size:21px;text-align:center;color:var(--ac)}.arcade-boost b{font-size:12px;display:block}.arcade-boost small{font-size:10px;display:block;margin-top:3px;color:#b9ced0;line-height:1.35}.arcade-boost em{font-size:12px;font-style:normal;color:var(--ac);font-weight:800}.arcade-buy{justify-self:end;padding:7px 10px;background:#b88232;color:#231a0e;border-radius:10px;font-weight:800;font-size:11px}.arcade-buy:disabled{opacity:.4}.arcade-info-note{font-size:10px;opacity:.7;margin:12px 0 0;text-align:center}
.arcade-action{padding:12px 16px calc(15px + env(safe-area-inset-bottom,0px));background:#081c29e8;flex:none}.arcade-primary,.arcade-secondary{min-height:50px;padding:12px 18px;border-radius:14px;font-weight:900;width:100%;text-align:center}.arcade-primary{background:linear-gradient(#ffe4a0,#dca64e);color:#332118;box-shadow:0 4px 0 #835929,0 8px 20px #0008}.arcade-secondary{background:#ffffff0c;border:1px solid #ffffff40;color:#eaf6f2}
.arcade-result-body{flex:1;min-height:0;overflow-y:auto;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;padding:24px 22px 28px;text-align:center}.arcade-result-medal{font-size:66px;color:var(--ac);text-shadow:0 6px 20px #0008}.arcade-result h2{font:800 28px "Bodoni Moda",Georgia,serif;margin:0}.arcade-result-stars .arcade-star-text{font-size:39px;gap:5px}.arcade-result-body>p{margin:0;color:#c8d4d3;font-size:13px}.arcade-result-facts{display:grid;gap:13px;width:100%;max-width:380px;margin:12px 0}.arcade-result-facts>span{display:flex;justify-content:space-between;gap:8px;font-size:13px}.arcade-result-facts b{color:var(--ac)}.arcade-result-buttons{display:grid;gap:12px;width:100%;max-width:380px}
@media(max-height:650px){.arcade-top{padding-block:9px}.arcade-world-nav{padding-block:8px}.arcade-progress{padding-block:6px}.arcade-level-hero{padding:5px 0}.arcade-hero-disc{width:67px;height:67px;font-size:30px;margin-bottom:8px}.arcade-level-hero h2{font-size:22px}}@media(prefers-reduced-motion:reduce){.arcade-pin.current{animation:none}}

.home-arcade{background:linear-gradient(110deg,#ffe2a0,#9ae6bc)!important;color:#12353d!important;box-shadow:0 3px 0 #4e7060,0 6px 14px #0007!important}.home-card{overflow-y:auto!important;scrollbar-width:thin}

.arcade-mission{margin-top:11px;padding:12px 14px;border:1px solid #dabb6f77;border-radius:14px;background:linear-gradient(105deg,#cf9a3224,#0b243477)}
.arcade-mission strong{font-size:13px;color:var(--ac)}.arcade-mission p{font-size:12px;line-height:1.45;color:#e9eeeb;margin:7px 0 0}
.arcade-boss-mode{font-size:12px;margin:2px 0 10px;color:#d1e1d9}.arcade-mission-outcome{font-weight:700;color:var(--ac)!important}

.arcade-bottom{flex-wrap:wrap}.training-content{padding:20px 18px;overflow-y:auto;flex:1;text-align:center}.training-content h2{font:800 25px Georgia,serif;color:var(--ac)}.training-content p{font-size:14px;line-height:1.5}.training-play{margin:22px auto;padding:16px;display:flex;justify-content:space-around;max-width:350px;border-radius:15px;background:#071e2ccc}.training-play strong{font-size:26px;color:var(--ac);display:block}.training-hand{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:18px auto}.training-card{min-width:82px;height:110px;padding:9px;border:3px solid #e9d9aa;border-radius:11px;background:#f5efdd;color:#1b2d40;font-size:23px;font-weight:800;box-shadow:0 6px 12px #0008}.training-card:disabled{opacity:.8}.training-card.training-best{border-color:#74d48c;box-shadow:0 0 0 3px #52b46f88}.training-feedback{padding:14px;border:1px solid #ffffff44;border-radius:14px;background:#08293acc;text-align:left}.training-feedback strong{color:var(--ac)}.training-shell .arcade-action{display:grid;gap:10px}

.arcade-boss-hero{border-radius:20px;padding-bottom:20px;background:radial-gradient(ellipse at 50% 32%,#f6c77422,transparent 68%);outline:1px solid #e9c47947}
.arcade-boss-hero .arcade-hero-disc.boss{width:102px;height:102px;border:3px solid #ffe1a1;box-shadow:0 0 0 7px #eebd6633,0 12px 30px #000b;font-size:56px;animation:arcade-boss-glow 3s ease-in-out infinite}
.arcade-hero-disc.arcade-boss-0{background:linear-gradient(145deg,#ffefbd,#cda04d,#61734b)}
.arcade-hero-disc.arcade-boss-1{background:linear-gradient(145deg,#dce9ec,#607d9e,#2b3659)}
.arcade-hero-disc.arcade-boss-2{background:linear-gradient(145deg,#ffe0a1,#d38048,#693e36)}
.arcade-hero-disc.arcade-boss-3{background:linear-gradient(145deg,#f5ffff,#8ec4eb,#385a98)}
.arcade-hero-disc.arcade-boss-4{background:linear-gradient(145deg,#f9dbf7,#b784df,#6b468d)}
.arcade-hero-disc.arcade-boss-5{background:linear-gradient(145deg,#fff6c3,#d7a94d,#603e83)}
@keyframes arcade-boss-glow{50%{box-shadow:0 0 0 11px #eebd6650,0 16px 35px #000c}}
@media(prefers-reduced-motion:reduce){.arcade-boss-hero .arcade-hero-disc.boss{animation:none}}

/* World 1 campaign identity, shared between Classic stage screen and Highend map */
.arcade-chapter{margin:10px 13px;padding:12px 13px;border:1px solid #dbb86d85;border-radius:14px;background:linear-gradient(140deg,#4f40258f,#132b39a8);text-align:left;box-shadow:inset 0 1px #ffe7b333}
.arcade-chapter small{display:block;margin-bottom:4px;font-size:10px;font-weight:800;letter-spacing:.13em;color:#f9d68e}
.arcade-chapter strong{display:block;font:700 16px/1.3 Georgia,serif;color:#fff0c6}
.arcade-chapter p{margin:6px 0 0;font-size:12px;line-height:1.5;color:#dfdfd6}
.arcade-result-goals{display:grid;gap:7px;margin:10px 0 12px;text-align:left}
.arcade-result-goals>div{display:grid;grid-template-columns:24px minmax(0,1fr);gap:7px;align-items:start;padding:9px 11px;border:1px solid #ffffff18;border-radius:9px;background:#0615246b;font-size:12px;line-height:1.4}
.arcade-result-goals>div.met{border-color:#d1ad617b;color:#fae7b7}
.arcade-result-goals>div.unmet{opacity:.7}
.arcade-result-goals b{font-size:16px}
.arcade-result-goals small{display:block;color:#ffcc83;font-size:11px}

/* Keep the result header and buttons reachable on short Android screens. */
.arcade-result-body{justify-content:flex-start}
.arcade-result-body>*{flex-shrink:0}
.arcade-result-goals{width:100%;max-width:380px}

/* Second world's own forest stage introduction and boss identity. */
.arcade-world-forest.arcade-detail .arcade-chapter{background:linear-gradient(145deg,#1b493b,#0a2631);border-color:#a4d9b18f}
.arcade-world-forest .arcade-chapter strong,.arcade-world-forest .arcade-chapter small{color:#d9efc0}
.arcade-chapter-foe{margin-top:9px;padding-top:8px;border-top:1px solid #c2ddba45;font-size:11px;color:#e8eed8}
.arcade-chapter-foe span{color:#aadbc2;font-size:14px}
.arcade-chapter-foe b{color:#fcf7e5;font-weight:800}
.arcade-world-forest .arcade-hero-disc.boss{background:linear-gradient(140deg,#d7c6ec,#816aab,#302547);box-shadow:0 0 0 7px #9a83c53d,0 12px 24px #000b}
.arcade-world-forest .arcade-result-goals .met{border-color:#a3d9b47a;color:#dbf1dc}

/* World 3 stage art, desert rival identities and boss styling. */
.arcade-world-desert.arcade-detail .arcade-chapter{background:linear-gradient(145deg,#6a4939,#302435);border-color:#f2c08399}
.arcade-world-desert .arcade-chapter strong,.arcade-world-desert .arcade-chapter small{color:#ffe4ab}
.arcade-world-desert .arcade-hero-disc.boss{background:linear-gradient(145deg,#ffeba8,#cf7b5a,#73364f);box-shadow:0 0 0 7px #f6ad6944,0 12px 30px #000b}
.arcade-world-desert .arcade-result-goals .met{border-color:#ecc28199;color:#ffe1b2}

/* World 4 — ice fortress chapter panel, boss and result accents. */
.arcade-world-frost.arcade-detail .arcade-chapter{background:linear-gradient(140deg,#315a79,#102b48);border-color:#b6ebf1ae}
.arcade-world-frost .arcade-chapter strong,.arcade-world-frost .arcade-chapter small{color:#e4fff6}
.arcade-world-frost .arcade-hero-disc.boss{background:linear-gradient(145deg,#f3fffe,#8cbded,#5664a7);box-shadow:0 0 0 7px #b2e9fa52,0 12px 30px #000b}
.arcade-world-frost .arcade-result-goals .met{border-color:#a7e4ee92;color:#e6fbf5}
