*{margin:0;padding:0;box-sizing:border-box}
:root{--bg:#1a2e1a;--card:#243524;--card2:#1e2e1e;--green:#4a8c3f;--lime:#8ed473;--gold:#f0c040;--white:#f0efe8;--red:#e05555;--bronze:#cd7f32;--silver:#c0c0c0;--goldm:#ffd700}
body{background:var(--bg);color:var(--white);font-family:'Outfit',sans-serif;min-height:100vh;overflow-x:hidden;user-select:none;-webkit-user-select:none}
body.game-active{overflow:hidden;height:100vh;height:100dvh}
#app{width:100vw;height:100vh;height:100dvh;display:flex;flex-direction:column;align-items:center}
#header{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:800px;padding:8px 20px;z-index:10}
.header-left{display:flex;align-items:center;gap:12px}
#header h1{font-family:'Fredoka',sans-serif;font-weight:700;font-size:1.3rem;color:var(--lime);text-shadow:0 2px 8px rgba(0,0,0,0.4)}
#header h1 span{color:var(--gold)}
.back-btn{background:var(--card);border:1px solid rgba(142,212,115,0.2);color:var(--white);font-family:'Fredoka',sans-serif;font-size:0.8rem;padding:5px 12px;border-radius:8px;cursor:pointer;transition:all 0.2s;display:none}
.back-btn:hover{background:var(--green)}
.mute-btn{background:none;border:1px solid rgba(142,212,115,0.2);color:var(--white);font-size:1.1rem;width:32px;height:32px;border-radius:8px;cursor:pointer;transition:all 0.2s;display:flex;align-items:center;justify-content:center;padding:0;line-height:1}
.mute-btn:hover{background:var(--card);border-color:rgba(142,212,115,0.4)}
.header-stats{display:flex;gap:12px}
.stat-box{background:var(--card);border:1px solid rgba(142,212,115,0.2);border-radius:8px;padding:3px 10px;display:flex;flex-direction:column;align-items:center;line-height:1.3}
.stat-label{font-size:0.6rem;opacity:0.6;text-transform:uppercase;letter-spacing:1px}
.stat-value{font-family:'Fredoka',sans-serif;font-weight:600;color:var(--gold);font-size:1rem}
#canvas-wrap{flex:1;display:flex;align-items:center;justify-content:center;width:100%;position:relative}
#game-area{flex:1;display:flex;align-items:center;justify-content:center;width:100%;max-width:1100px;gap:16px;padding:0 8px}
canvas{border-radius:16px;box-shadow:0 8px 40px rgba(0,0,0,0.5);cursor:crosshair;touch-action:none;width:100%;max-width:600px;height:auto}
#power-bar-wrap{position:absolute;right:20px;top:50%;transform:translateY(-50%);width:28px;height:200px;background:var(--card);border-radius:14px;border:2px solid rgba(142,212,115,0.15);overflow:hidden;display:flex;flex-direction:column-reverse;opacity:0;transition:opacity 0.2s}
#power-bar-wrap.visible{opacity:1}
#power-fill{width:100%;background:linear-gradient(to top,var(--lime),var(--gold),var(--red));border-radius:0 0 12px 12px;transition:height 0.05s}
.power-label{position:absolute;top:-22px;width:100%;text-align:center;font-size:0.6rem;text-transform:uppercase;letter-spacing:1px;opacity:0.6}
#bottom-hud{display:flex;align-items:center;justify-content:center;gap:20px;padding:8px 20px;width:100%;max-width:800px}
.hud-item{font-family:'Fredoka',sans-serif;font-size:0.85rem;font-weight:500}
.hud-item strong{color:var(--lime)}
#msg{font-family:'Fredoka',sans-serif;font-size:0.95rem;font-weight:600;color:var(--gold);min-height:1.4em;text-align:center}
#turn-timer{font-family:'Fredoka',sans-serif;font-size:0.8rem;font-weight:600;color:rgba(255,255,255,0.6);min-width:28px;text-align:center}
#turn-timer.urgent{color:#ff6b6b;animation:pulse-timer 1s ease-in-out infinite}
@keyframes pulse-timer{0%,100%{opacity:1}50%{opacity:0.5}}
.respawn-btn{background:rgba(255,255,255,0.08);border:1.5px solid rgba(255,255,255,0.15);border-radius:8px;color:rgba(255,255,255,0.55);font-size:1.1rem;padding:2px 8px;cursor:pointer;font-family:'Fredoka',sans-serif;transition:all 0.15s;line-height:1}
.respawn-btn:hover{background:rgba(255,255,255,0.15);color:rgba(255,255,255,0.85);border-color:rgba(255,255,255,0.3)}
.respawn-btn:active{transform:scale(0.92)}

/* Overlays */
.overlay{position:fixed;inset:0;background:rgba(10,20,10,0.88);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn 0.3s}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
#main-menu{background:linear-gradient(180deg,#0a1628 0%,#0e2c1a 45%,#1a3a18 75%,#2d5a28 100%);backdrop-filter:none;overflow-x:hidden;overflow-y:auto}
#main-menu::before{content:'';position:absolute;width:2px;height:2px;top:20px;left:20%;border-radius:50%;background:transparent;box-shadow:0 0 0 0.5px rgba(255,255,255,0.6),45px 18px 0 0 rgba(255,255,255,0.35),110px 8px 0 0.5px rgba(255,255,255,0.5),190px 32px 0 0 rgba(255,255,255,0.4),260px 5px 0 0 rgba(255,255,255,0.55),340px 25px 0 0.5px rgba(255,255,255,0.3),420px 12px 0 0 rgba(255,255,255,0.5),-40px 30px 0 0 rgba(255,255,255,0.4),-110px 10px 0 0.5px rgba(255,255,255,0.55),-180px 38px 0 0 rgba(255,255,255,0.3),-250px 8px 0 0 rgba(255,255,255,0.45),500px 22px 0 0 rgba(255,255,255,0.35),560px 6px 0 0 rgba(255,255,255,0.5),-320px 20px 0 0.5px rgba(255,255,255,0.4),30px 45px 0 0 rgba(255,255,255,0.3),380px 40px 0 0 rgba(255,255,255,0.45),-70px 48px 0 0 rgba(255,255,255,0.35),150px 42px 0 0 rgba(255,255,255,0.4);animation:heroTwinkle 4s ease-in-out infinite alternate}
#main-menu .overlay-card{position:relative;z-index:3}
.overlay-card{background:var(--card);border:2px solid rgba(142,212,115,0.2);border-radius:20px;padding:32px 36px;text-align:center;max-width:480px;width:92%;animation:popIn 0.4s cubic-bezier(0.175,0.885,0.32,1.275);max-height:90vh;max-height:90dvh;overflow-y:auto}
.card-banner{position:relative;margin:-32px -36px 14px;padding:24px 36px 48px;border-radius:18px 18px 0 0;background:linear-gradient(180deg,#0a1628 0%,#0d2818 40%,#1a4218 70%,#2d5a28 100%);overflow:hidden;border-bottom:1px solid rgba(142,212,115,0.12)}
.card-banner h2,.card-banner p{position:relative;z-index:3}
.card-banner h2{text-shadow:0 2px 12px rgba(0,0,0,0.5)}
.card-banner::before{content:'';position:absolute;width:1px;height:1px;top:10px;left:25%;border-radius:50%;background:transparent;box-shadow:0 0 0 0.5px rgba(255,255,255,0.5),35px 5px 0 0 rgba(255,255,255,0.3),-25px 10px 0 0 rgba(255,255,255,0.5),70px 3px 0 0 rgba(255,255,255,0.3),-60px 7px 0 0 rgba(255,255,255,0.4),120px 9px 0 0 rgba(255,255,255,0.3),-100px 4px 0 0 rgba(255,255,255,0.45),160px 6px 0 0 rgba(255,255,255,0.35),-140px 12px 0 0 rgba(255,255,255,0.3),200px 8px 0 0 rgba(255,255,255,0.4);animation:cardStarTwinkle 2.5s ease-in-out infinite}
.card-banner::after{content:'';position:absolute;bottom:0;left:0;right:0;height:40px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 480 60' preserveAspectRatio='none'%3E%3Cpath d='M0,30 C60,14 140,28 240,18 C340,8 420,24 480,14 L480,60 L0,60Z' fill='%231e4a1a'/%3E%3Cpath d='M0,42 C80,32 200,40 300,30 C380,22 440,36 480,28 L480,60 L0,60Z' fill='%23224f1e'/%3E%3Cpath d='M0,50 C120,43 240,48 360,43 C420,40 460,46 480,44 L480,60 L0,60Z' fill='%23275225'/%3E%3C/svg%3E") bottom center / 100% 100% no-repeat;z-index:1}
.card-flag{position:absolute;bottom:8px;right:18%;width:1.5px;height:32px;background:linear-gradient(to top,#999,#ddd);z-index:2}
.card-flag::before{content:'';position:absolute;top:0;left:1.5px;width:14px;height:9px;background:var(--gold);clip-path:polygon(0 0,100% 50%,0 100%);animation:heroWave 3s ease-in-out infinite}
.card-flag::after{content:'';position:absolute;bottom:-2px;left:-5px;width:12px;height:5px;background:radial-gradient(ellipse,#0a1a0a 40%,transparent 70%);border-radius:50%;z-index:1}
.card-ball{position:absolute;bottom:6px;left:18%;width:8px;height:8px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff,#e0e0e0);box-shadow:0 0 5px rgba(255,255,255,0.4);z-index:2;animation:cardBallAnim 5s ease-in-out infinite}
@keyframes popIn{from{transform:scale(0.8);opacity:0}to{transform:scale(1);opacity:1}}
.overlay-card h2{font-family:'Fredoka',sans-serif;font-size:1.9rem;color:var(--lime);margin-bottom:6px}
.overlay-card h2 span{color:var(--gold)}
.overlay-card p{margin:6px 0;opacity:0.8;line-height:1.5;font-size:0.9rem}

/* Menu */
.menu-grid{display:flex;flex-direction:column;gap:12px;margin-top:20px}
.menu-card{background:var(--card2);border:2px solid rgba(142,212,115,0.12);border-radius:14px;padding:16px 20px;cursor:pointer;transition:all 0.25s;text-align:left;display:flex;align-items:center;gap:16px}
.menu-card:hover{border-color:rgba(142,212,115,0.4);transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,0.3)}
.menu-icon{font-size:2rem;width:50px;height:50px;display:flex;align-items:center;justify-content:center;border-radius:12px;flex-shrink:0}
.menu-text h3{font-family:'Fredoka',sans-serif;font-size:1.05rem;font-weight:600;margin-bottom:2px}
.menu-text p{font-size:0.75rem;opacity:0.55;margin:0}
.daily-card{border-color:rgba(240,192,64,0.3)}.daily-card:hover{border-color:rgba(240,192,64,0.6)}.daily-card .menu-icon{background:rgba(240,192,64,0.12)}.daily-card h3{color:var(--gold)}
.bronze-card .menu-icon{background:rgba(205,127,50,0.15)}.bronze-card h3{color:var(--bronze)}
.silver-card .menu-icon{background:rgba(192,192,192,0.12)}.silver-card h3{color:var(--silver)}
.gold-card .menu-icon{background:rgba(255,215,0,0.12)}.gold-card h3{color:var(--goldm)}
.menu-best{display:block;font-family:'Fredoka',sans-serif;font-size:0.7rem;color:var(--lime);opacity:0.7;margin-top:2px}
.stats-card{border-color:rgba(142,212,115,0.2)}.stats-card:hover{border-color:rgba(142,212,115,0.5)}.stats-card .menu-icon{background:rgba(142,212,115,0.1)}.stats-card h3{color:var(--lime)}
.gallery-card{border-color:rgba(180,140,255,0.2)}.gallery-card:hover{border-color:rgba(180,140,255,0.5)}.gallery-card .menu-icon{background:rgba(180,140,255,0.1)}.gallery-card h3{color:#b48cff}
.editor-card{border-color:rgba(240,170,80,0.2)}.editor-card:hover{border-color:rgba(240,170,80,0.5)}.editor-card .menu-icon{background:rgba(240,170,80,0.1)}.editor-card h3{color:#f0aa50}
.daily-date{font-family:'Fredoka',sans-serif;font-size:0.7rem;color:var(--gold);opacity:0.7;margin-top:8px;letter-spacing:1px}
.how-to{font-size:0.75rem;opacity:0.45;margin-top:16px;line-height:1.5}

/* Buttons */
.btn{display:inline-block;margin-top:18px;padding:11px 30px;background:var(--green);color:var(--white);border:none;border-radius:12px;font-family:'Fredoka',sans-serif;font-size:1rem;font-weight:600;cursor:pointer;transition:all 0.2s;box-shadow:0 4px 0 #357a2a,0 6px 20px rgba(0,0,0,0.3)}
.btn:hover{transform:translateY(-2px)}.btn:active{transform:translateY(2px)}
.btn-sm{padding:8px 20px;font-size:0.85rem;margin-top:12px}
.btn-share{background:var(--card2);border:1px solid rgba(142,212,115,0.2);box-shadow:none}.btn-share:hover{background:var(--card);border-color:rgba(142,212,115,0.4)}

/* Scorecard */
.scorecard{margin:14px 0;width:100%}.scorecard table{width:100%;border-collapse:collapse;font-size:0.8rem}
.scorecard th,.scorecard td{padding:5px 6px;border-bottom:1px solid rgba(255,255,255,0.08)}
.scorecard th{font-size:0.6rem;text-transform:uppercase;letter-spacing:1px;opacity:0.5;font-weight:400}
.scorecard td{font-family:'Fredoka',sans-serif}
.score-good{color:var(--lime)}.score-bad{color:var(--red)}.score-par{color:var(--gold)}

/* Stats Dashboard */
.stats-grid{text-align:center}
.stats-row{display:flex;justify-content:center;gap:16px;margin:10px 0;flex-wrap:wrap}
.stats-item{display:flex;flex-direction:column;align-items:center;min-width:70px}
.stats-num{font-family:'Fredoka',sans-serif;font-weight:700;font-size:1.5rem;color:var(--white)}
.stats-label{font-size:0.65rem;opacity:0.6;text-transform:uppercase;letter-spacing:0.5px;margin-top:2px}
.stats-divider{height:1px;background:rgba(255,255,255,0.08);margin:14px 0}
.stats-section-title{font-family:'Fredoka',sans-serif;font-size:0.75rem;text-transform:uppercase;letter-spacing:1px;opacity:0.5;margin-bottom:6px}
.stats-hio{color:var(--gold)}.stats-eagle{color:var(--gold)}.stats-birdie{color:var(--lime)}.stats-par{color:var(--gold)}.stats-bogey{color:var(--red)}

.menu-footer-nav{margin-top:18px;padding-top:14px;border-top:1px solid rgba(142,212,115,0.1);display:flex;justify-content:center;align-items:center;gap:8px}
.menu-footer-nav a{color:var(--white);text-decoration:none;font-size:0.75rem;opacity:0.45;font-family:'Fredoka',sans-serif;transition:opacity 0.2s}
.menu-footer-nav a:hover{opacity:0.8}
.menu-footer-dot{color:var(--white);opacity:0.25;font-size:0.7rem}


/* Gallery */
.gallery-controls{display:flex;justify-content:space-between;align-items:center;margin:14px 0 10px;gap:8px;flex-wrap:wrap}
.gallery-sort{display:flex;gap:4px}
.gallery-tab{background:var(--card2);border:1px solid rgba(142,212,115,0.12);color:var(--white);font-family:'Fredoka',sans-serif;font-size:0.7rem;padding:4px 10px;border-radius:6px;cursor:pointer;transition:all 0.2s;opacity:0.6}
.gallery-tab:hover{opacity:1;border-color:rgba(142,212,115,0.3)}
.gallery-tab.active{opacity:1;background:var(--green);border-color:var(--lime)}
.gallery-filter{background:var(--card2);color:var(--white);border:1px solid rgba(142,212,115,0.2);border-radius:6px;font-size:0.7rem;padding:4px 8px;font-family:'Outfit',sans-serif}
.gallery-list{max-height:55vh;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding:4px 0}
.gallery-list::-webkit-scrollbar{width:6px}
.gallery-list::-webkit-scrollbar-thumb{background:rgba(142,212,115,0.2);border-radius:3px}
.level-card{display:flex;gap:12px;background:var(--card2);border:1px solid rgba(142,212,115,0.1);border-radius:10px;padding:10px 12px;cursor:pointer;transition:all 0.2s;align-items:center}
.level-card:hover{border-color:rgba(142,212,115,0.35);transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,0.25)}
.level-thumb{width:80px;height:64px;border-radius:6px;flex-shrink:0;background:#1a2a16;overflow:hidden}
.level-thumb canvas{width:100%;height:100%;border-radius:6px}
.level-info{flex:1;min-width:0}
.level-info h4{font-family:'Fredoka',sans-serif;font-size:0.85rem;font-weight:600;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.level-meta{font-size:0.65rem;opacity:0.55;display:flex;gap:8px;flex-wrap:wrap;margin-top:2px}
.level-meta span{white-space:nowrap}
.level-stars{color:var(--gold);font-size:0.75rem;margin-top:2px}
.level-difficulty{font-size:0.6rem;padding:2px 8px;border-radius:4px;font-family:'Fredoka',sans-serif;text-transform:uppercase;letter-spacing:0.5px;flex-shrink:0}
.diff-easy{background:rgba(142,212,115,0.15);color:var(--lime)}
.diff-medium{background:rgba(240,192,64,0.15);color:var(--gold)}
.diff-hard{background:rgba(224,85,85,0.15);color:var(--red)}
.gallery-loading,.gallery-empty{text-align:center;padding:30px 0;opacity:0.5;font-size:0.8rem}
.level-card.selected{border-color:var(--lime);background:rgba(142,212,115,0.08)}
.level-card .pick-check{width:22px;height:22px;border-radius:50%;border:2px solid rgba(142,212,115,0.3);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:0.7rem;transition:all 0.2s}
.level-card.selected .pick-check{background:var(--lime);border-color:var(--lime);color:#1a2a16}
.picker-bar{display:flex;justify-content:space-between;align-items:center;margin-top:12px;gap:8px}
.pick-count{font-size:0.75rem;opacity:0.6;font-family:'Outfit',sans-serif}
.rating-stars{display:flex;justify-content:center;gap:8px;margin:16px 0 8px;font-size:2.2rem}
.rating-stars .star{cursor:pointer;color:rgba(255,255,255,0.2);transition:color 0.15s,transform 0.15s;user-select:none}
.rating-stars .star:hover,.rating-stars .star.hovered{color:var(--gold);transform:scale(1.15)}
.rating-stars .star.selected{color:var(--gold)}

/* Tutorial */
.tutorial-card{max-width:360px}
#tutorial-canvas{display:block;margin:16px auto 12px;border-radius:12px;background:#2a4a24;width:100%;max-width:240px;height:auto;aspect-ratio:240/160}
.tutorial-steps{text-align:left;margin:8px 0 4px;display:flex;flex-direction:column;gap:8px}
.tutorial-step{display:flex;align-items:center;gap:10px;font-size:0.85rem;opacity:0.85}
.step-num{width:24px;height:24px;border-radius:50%;background:var(--green);color:var(--white);font-family:'Fredoka',sans-serif;font-weight:600;font-size:0.75rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}

/* How to Play Guide */
.howto-card{max-width:520px;text-align:left;padding:28px 30px}
.howto-card h2{text-align:center;margin-bottom:12px}
.howto-section{padding:14px 0;border-bottom:1px solid rgba(142,212,115,0.1)}
.howto-section:last-child{border-bottom:none;padding-bottom:4px}
.howto-section h3{font-family:'Fredoka',sans-serif;font-size:0.85rem;color:var(--lime);text-transform:uppercase;letter-spacing:0.8px;margin-bottom:10px}
.howto-section h3 span{color:var(--gold);text-transform:none;letter-spacing:0}
.howto-row{display:flex;align-items:flex-start;gap:10px;margin-bottom:10px;font-size:0.82rem;line-height:1.45}
.howto-row:last-child{margin-bottom:0}
.howto-icon{font-size:1.2rem;flex-shrink:0;width:28px;text-align:center}
.howto-label{font-family:'Fredoka',sans-serif;font-weight:600;color:var(--white)}
.howto-desc{opacity:0.7}
.howto-enemy{background:var(--card2);border:1px solid rgba(142,212,115,0.1);border-radius:10px;padding:10px 14px;margin-bottom:8px}
.howto-enemy:last-child{margin-bottom:0}
.howto-enemy-name{font-family:'Fredoka',sans-serif;font-weight:600;font-size:0.9rem;margin-bottom:3px}
.howto-enemy-type{font-size:0.7rem;opacity:0.4;text-transform:uppercase;letter-spacing:0.5px;margin-left:6px;font-weight:400}
.howto-enemy-desc{font-size:0.8rem;opacity:0.75;line-height:1.45}
.howto-enemy-effect{font-size:0.75rem;color:var(--gold);margin-top:4px;font-family:'Fredoka',sans-serif}
.howto-boss-hp{display:inline-block;background:rgba(224,85,85,0.2);border:1px solid rgba(224,85,85,0.3);border-radius:4px;padding:1px 6px;font-size:0.65rem;color:#e05555;margin-left:6px;vertical-align:middle}
.howto-tip{background:rgba(240,192,64,0.08);border:1px solid rgba(240,192,64,0.2);border-radius:8px;padding:8px 12px;font-size:0.78rem;color:var(--gold);margin-top:8px;line-height:1.4}
.howto-score-row{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:0.8rem;margin-bottom:4px}
.howto-score-item{display:flex;align-items:center;gap:4px}
.howto-canvas{width:48px;height:48px;flex-shrink:0;border-radius:8px;background:rgba(0,0,0,0.2)}
.howto-enemy-canvas{width:64px;height:64px;flex-shrink:0;border-radius:10px;background:rgba(0,0,0,0.15)}
.howto-enemy-header{display:flex;align-items:flex-start;gap:12px}

/* Level Bar (main menu — top of card) */
.level-bar{display:flex;flex-direction:column;gap:6px;margin:12px 0 4px;padding:10px 14px;background:var(--card2);border:1px solid rgba(142,212,115,0.15);border-radius:10px}
.level-bar-top{display:flex;align-items:center;gap:10px}
.level-label{font-family:'Fredoka',sans-serif;font-size:0.85rem;color:var(--lime);white-space:nowrap}
.level-label strong{color:var(--gold);font-size:1.1rem}
.level-track{flex:1;height:10px;background:var(--bg);border-radius:5px;border:1px solid rgba(142,212,115,0.12);overflow:hidden;min-width:80px}
.level-fill{height:100%;background:linear-gradient(90deg,var(--green),var(--lime));border-radius:4px;transition:width 0.4s ease}
.level-xp{font-family:'Fredoka',sans-serif;font-size:0.65rem;opacity:0.55;white-space:nowrap}
.level-next-unlock{display:flex;align-items:center;justify-content:center;gap:8px;font-family:'Fredoka',sans-serif;font-size:0.7rem;color:var(--gold);opacity:0.85;padding-top:2px;border-top:1px solid rgba(142,212,115,0.08)}
.level-next-unlock:empty{display:none}
.next-unlock-dot{width:16px;height:16px;border-radius:50%;box-shadow:0 1px 4px rgba(0,0,0,0.3);flex-shrink:0;display:inline-block}

/* XP Badge */
.xp-badge{display:inline-block;background:rgba(240,192,64,0.2);color:var(--gold);font-family:'Fredoka',sans-serif;font-weight:600;font-size:0.8rem;padding:3px 12px;border-radius:20px;margin-top:6px;border:1px solid rgba(240,192,64,0.3)}

/* Level-Up Toast */
#levelup-toast{position:fixed;top:20px;left:50%;transform:translateX(-50%) translateY(-100px);background:var(--card);border:2px solid var(--gold);border-radius:14px;padding:12px 24px;text-align:center;z-index:200;font-family:'Fredoka',sans-serif;font-size:1rem;color:var(--gold);box-shadow:0 8px 30px rgba(0,0,0,0.5);opacity:0;transition:transform 0.4s cubic-bezier(0.175,0.885,0.32,1.275),opacity 0.4s;pointer-events:none}
#levelup-toast.show{transform:translateX(-50%) translateY(0);opacity:1}
.toast-unlocks{margin-top:4px;display:flex;flex-direction:column;gap:2px}
.toast-unlocks span{font-size:0.75rem;color:var(--lime);opacity:0.85}

/* Cosmetics Grid */
.cosmetic-tabs{display:flex;gap:4px;justify-content:center;margin:8px 0}
.cosmetic-tab{background:var(--card2);border:1px solid rgba(142,212,115,0.12);color:var(--white);font-family:'Fredoka',sans-serif;font-size:0.7rem;padding:4px 14px;border-radius:6px;cursor:pointer;transition:all 0.2s;opacity:0.6}
.cosmetic-tab:hover{opacity:1;border-color:rgba(142,212,115,0.3)}
.cosmetic-tab.active{opacity:1;background:var(--green);border-color:var(--lime)}
.cosmetic-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:10px;padding:4px}
.cosmetic-item{display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;transition:transform 0.15s;padding:6px 2px;border-radius:10px}
.cosmetic-item:hover:not(.locked){transform:scale(1.08)}
.cosmetic-item.locked{opacity:0.55;cursor:default;position:relative}
.cosmetic-item.locked .cosmetic-preview{filter:grayscale(0.7) brightness(0.7)}
.cosmetic-item.equipped{background:rgba(142,212,115,0.1);border:1px solid rgba(142,212,115,0.35);border-radius:10px}
.cosmetic-preview{width:36px;height:36px;border-radius:50%;position:relative;display:flex;align-items:center;justify-content:center}
.ball-preview{box-shadow:0 2px 6px rgba(0,0,0,0.3)}
.trail-preview{background:var(--card2);display:flex;gap:2px;align-items:center;justify-content:center;border-radius:18px;padding:4px}
.hat-preview{background:var(--card2);border-radius:10px;overflow:hidden}
.hat-cv{display:block;width:36px;height:36px}
.trail-dot{border-radius:50%;flex-shrink:0}
.lock-icon{position:absolute;font-size:0.9rem;text-shadow:0 1px 4px rgba(0,0,0,0.6)}
.equip-check{position:absolute;bottom:-2px;right:-2px;background:var(--lime);color:var(--bg);font-size:0.55rem;width:14px;height:14px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700}
.cosmetic-name{font-family:'Fredoka',sans-serif;font-size:0.6rem;opacity:0.7;text-align:center;line-height:1.1}
.cosmetic-lock-level{font-family:'Fredoka',sans-serif;font-size:0.6rem;color:var(--gold);opacity:1;background:rgba(240,192,64,0.15);border:1px solid rgba(240,192,64,0.3);padding:1px 6px;border-radius:8px;margin-top:1px;display:inline-block}

@media(max-width:600px){
  #header h1{font-size:1rem}.header-stats{gap:6px}.stat-box{padding:2px 6px}.stat-value{font-size:0.9rem}
  #bottom-hud{gap:10px}#power-bar-wrap{right:8px;height:150px}
  .overlay{padding:8px 0;padding:max(8px,env(safe-area-inset-top,0px)) 0 max(8px,env(safe-area-inset-bottom,0px))}
  .overlay-card{padding:24px 20px}.card-banner{margin:-24px -20px 12px;padding:18px 20px 42px}.menu-card{padding:12px 14px;gap:12px}
  .level-thumb{width:60px;height:48px}
  .cosmetic-grid{grid-template-columns:repeat(4,1fr);gap:6px}
  .cosmetic-preview{width:30px;height:30px}
  .hat-cv{width:30px;height:30px}
}

/* === Multiplayer Setup === */
.multi-card{border-color:rgba(255,140,0,0.25) !important}
.multi-card:hover{border-color:rgba(255,140,0,0.5) !important}
.multi-option-group{margin-bottom:14px;text-align:center}
.multi-option-group label{display:block;font-family:'Fredoka',sans-serif;font-weight:600;font-size:0.85rem;margin-bottom:6px;opacity:0.7;text-transform:uppercase;letter-spacing:1px}
.multi-btn-row{display:flex;gap:6px;justify-content:center;flex-wrap:wrap}
.multi-btn-row .btn-sm{min-width:50px;background:var(--card2);border:1.5px solid rgba(142,212,115,0.15);opacity:0.7;transition:all 0.2s}
.multi-btn-row .btn-sm.active{opacity:1;border-color:var(--lime);background:rgba(142,212,115,0.15);box-shadow:0 0 8px rgba(142,212,115,0.2)}

/* === Online Multiplayer Lobby === */
.btn-gold{background:linear-gradient(135deg,#b8860b,#daa520);color:#fff;border:none;font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,0.3)}
.btn-gold:hover{background:linear-gradient(135deg,#daa520,#ffd700);transform:translateY(-1px)}
.form-group{margin-bottom:12px;text-align:left}
.form-group label{display:block;font-family:'Fredoka',sans-serif;font-weight:600;font-size:0.75rem;margin-bottom:4px;opacity:0.7;text-transform:uppercase;letter-spacing:1px}
.form-input{width:100%;background:var(--card2);border:1.5px solid rgba(142,212,115,0.2);border-radius:8px;padding:8px 12px;color:var(--white);font-family:'Outfit',sans-serif;font-size:0.9rem;outline:none;transition:border-color 0.2s}
.form-input:focus{border-color:var(--lime)}
.form-error{color:var(--red);font-size:0.75rem;min-height:1em;margin-top:4px;font-family:'Fredoka',sans-serif}
.room-code-input{text-align:center;font-family:'Fredoka',sans-serif;font-size:1.5rem;font-weight:700;letter-spacing:8px;text-transform:uppercase}
.btn-row{display:flex;gap:6px;justify-content:center}
.multi-opt-btn{background:var(--card2);border:1.5px solid rgba(142,212,115,0.15);color:var(--white);font-family:'Fredoka',sans-serif;font-size:0.8rem;padding:6px 14px;border-radius:8px;cursor:pointer;opacity:0.6;transition:all 0.2s;flex:1}
.multi-opt-btn.active{opacity:1;border-color:var(--lime);background:rgba(142,212,115,0.15);box-shadow:0 0 8px rgba(142,212,115,0.2)}
.multi-opt-btn:hover{opacity:0.85}
.room-code-display{font-family:'Fredoka',sans-serif;font-size:2.5rem;font-weight:700;letter-spacing:12px;color:var(--gold);text-shadow:0 2px 8px rgba(240,192,64,0.3);margin:8px 0}
.copy-code-btn{background:none;border:1px solid rgba(240,192,64,0.3);color:var(--gold);font-family:'Fredoka',sans-serif;font-size:0.7rem;padding:3px 12px;border-radius:6px;cursor:pointer;opacity:0.7;transition:all 0.2s;margin-bottom:12px}
.copy-code-btn:hover{opacity:1;background:rgba(240,192,64,0.1)}
.lobby-info{font-family:'Fredoka',sans-serif;font-size:0.8rem;opacity:0.6;margin-bottom:10px}
.lobby-players{display:flex;flex-direction:column;gap:6px;margin-bottom:8px;min-height:40px}
.lobby-player{display:flex;align-items:center;gap:10px;background:var(--card2);border:1px solid rgba(142,212,115,0.1);border-radius:8px;padding:8px 12px}
.lobby-player-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}
.lobby-player-name{font-family:'Fredoka',sans-serif;font-size:0.9rem;flex:1}
.lobby-player-badge{font-family:'Fredoka',sans-serif;font-size:0.6rem;background:var(--gold);color:#1a2e1a;padding:1px 6px;border-radius:4px;font-weight:600;text-transform:uppercase}
.lobby-waiting{font-family:'Fredoka',sans-serif;font-size:0.85rem;opacity:0.5;margin-top:12px;text-align:center}
.online-waiting-banner{font-family:'Fredoka',sans-serif;font-size:0.85rem;color:var(--gold);text-align:center;padding:6px;opacity:0.8}

/* Public lobby browser */
.public-lobby-list{display:flex;flex-direction:column;gap:6px;max-height:260px;overflow-y:auto;margin-bottom:6px}
.public-room{display:flex;align-items:center;gap:10px;background:var(--card2);border:1px solid rgba(142,212,115,0.1);border-radius:8px;padding:10px 12px;transition:border-color 0.2s}
.public-room:hover{border-color:rgba(142,212,115,0.3)}
.public-room-info{flex:1;text-align:left}
.public-room-host{font-family:'Fredoka',sans-serif;font-size:0.9rem;font-weight:600;color:var(--white)}
.public-room-meta{font-family:'Fredoka',sans-serif;font-size:0.65rem;opacity:0.5;margin-top:2px}
.public-room-players{font-family:'Fredoka',sans-serif;font-size:0.75rem;color:var(--lime);white-space:nowrap;margin-right:8px}
.public-room-join{background:var(--green);border:none;color:var(--white);font-family:'Fredoka',sans-serif;font-size:0.75rem;padding:5px 14px;border-radius:6px;cursor:pointer;transition:all 0.2s;font-weight:600}
.public-room-join:hover{background:var(--lime);color:#1a2e1a}
.public-lobby-empty{font-family:'Fredoka',sans-serif;font-size:0.85rem;opacity:0.5;padding:24px 0;text-align:center;line-height:1.6}
.public-lobby-loading{font-family:'Fredoka',sans-serif;font-size:0.85rem;opacity:0.5;padding:24px 0;text-align:center}

/* Public toggle in create room */
.public-toggle-wrap{display:flex;align-items:center;gap:8px;cursor:pointer;font-family:'Fredoka',sans-serif}
.public-toggle-wrap input[type="checkbox"]{width:18px;height:18px;accent-color:var(--lime);cursor:pointer;margin:0}
.public-toggle-label{font-size:0.8rem;font-weight:600}
.public-toggle-hint{font-size:0.65rem;opacity:0.45;margin-left:auto}

/* === Content Pages & Footer (AdSense compliance) === */
body.content-page{overflow-x:hidden;overflow-y:auto;user-select:text;-webkit-user-select:text}
.page-header{background:var(--card);border-bottom:1px solid rgba(142,212,115,0.15);padding:12px 20px;text-align:center}
.page-header-inner{max-width:800px;margin:0 auto}
.page-title{font-family:'Fredoka',sans-serif;font-weight:700;font-size:1.3rem;color:var(--lime);text-decoration:none;text-shadow:0 2px 8px rgba(0,0,0,0.4)}
.page-title span{color:var(--gold)}
.page-title:hover{opacity:0.85}
.page-content{max-width:800px;margin:0 auto;padding:40px 24px 60px}
.page-content h1{font-family:'Fredoka',sans-serif;font-size:1.8rem;color:var(--lime);margin-bottom:6px}
.page-content h2{font-family:'Fredoka',sans-serif;font-size:1.1rem;color:var(--lime);margin-top:28px;margin-bottom:8px}
.page-content p{line-height:1.7;margin-bottom:12px;opacity:0.85;font-size:0.92rem}
.page-content ul{margin:8px 0 16px 20px;line-height:1.7;opacity:0.85;font-size:0.92rem}
.page-content li{margin-bottom:4px}
.page-content a{color:var(--lime);text-decoration:underline;text-underline-offset:2px}
.page-content a:hover{color:var(--gold)}
.page-content strong{color:var(--white)}
.content-date{font-size:0.8rem;opacity:0.5;margin-bottom:24px}
.site-content{background:var(--bg);padding:0 24px}
.content-section{max-width:800px;margin:0 auto;padding:48px 0;border-bottom:1px solid rgba(142,212,115,0.1)}
.content-section:last-child{border-bottom:none}
.content-section h2{font-family:'Fredoka',sans-serif;font-size:1.5rem;color:var(--lime);margin-bottom:16px}
.content-section p{line-height:1.7;margin-bottom:14px;opacity:0.8;font-size:0.92rem;max-width:700px}
.site-footer{background:var(--card);border-top:1px solid rgba(142,212,115,0.15);padding:24px 20px;text-align:center}
.footer-inner{max-width:800px;margin:0 auto}
.footer-nav{display:flex;justify-content:center;gap:20px;flex-wrap:wrap;margin-bottom:12px}
.footer-nav a{color:var(--white);text-decoration:none;font-size:0.8rem;opacity:0.6;transition:all 0.2s;font-family:'Fredoka',sans-serif}
.footer-nav a:hover{opacity:1;color:var(--lime)}
.footer-copy{font-size:0.7rem;opacity:0.35}

/* Daily Article */
.article-hero{border-radius:16px;padding:32px 28px 24px;margin-bottom:24px;position:relative;overflow:hidden;min-height:120px;display:flex;flex-direction:column;justify-content:flex-end}
.article-hero::before{content:'';position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='30' cy='30' r='4' fill='rgba(255,255,255,0.06)'/%3E%3C/svg%3E")}
.article-category{display:inline-block;background:rgba(0,0,0,0.3);color:#fff;font-family:'Fredoka',sans-serif;font-size:0.7rem;font-weight:500;padding:3px 12px;border-radius:20px;margin-bottom:10px;letter-spacing:0.5px;text-transform:uppercase;width:fit-content}
.article-title{font-family:'Fredoka',sans-serif;font-size:1.6rem;font-weight:700;color:#fff;margin:0;line-height:1.25;text-shadow:0 2px 8px rgba(0,0,0,0.3)}
.article-date{font-size:0.8rem;opacity:0.5;margin-bottom:24px;font-family:'Fredoka',sans-serif}
.article-body p{font-size:0.95rem;line-height:1.75;color:var(--white);opacity:0.85;margin-bottom:18px}

/* Cookie Consent */
.cookie-banner{position:fixed;bottom:0;left:0;right:0;background:var(--card);border-top:2px solid rgba(142,212,115,0.2);padding:14px 20px;z-index:300;display:none;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;animation:slideUp 0.3s ease}
@keyframes slideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
.cookie-banner p{font-size:0.82rem;opacity:0.85;margin:0;max-width:520px;line-height:1.5}
.cookie-banner a{color:var(--lime);text-decoration:underline}
.cookie-btns{display:flex;gap:8px;flex-shrink:0}
.cookie-btn{font-family:'Fredoka',sans-serif;font-size:0.8rem;padding:7px 20px;border-radius:8px;border:none;cursor:pointer;font-weight:500;transition:all 0.2s}
.cookie-btn-accept{background:var(--green);color:var(--white)}.cookie-btn-accept:hover{background:var(--lime);color:var(--bg)}
.cookie-btn-decline{background:transparent;color:var(--white);border:1px solid rgba(255,255,255,0.2)}.cookie-btn-decline:hover{border-color:rgba(255,255,255,0.4)}

/* Loading Overlay */
#loading-overlay{display:none;position:fixed;inset:0;background:rgba(10,20,10,0.92);z-index:250;align-items:center;justify-content:center;flex-direction:column;gap:16px}
#loading-overlay .loading-spinner{width:36px;height:36px;border:3px solid rgba(142,212,115,0.2);border-top-color:var(--lime);border-radius:50%;animation:spin 0.8s linear infinite}
#loading-overlay .loading-text{font-family:'Fredoka',sans-serif;font-size:1.1rem;color:var(--white);opacity:0.9}
@keyframes spin{to{transform:rotate(360deg)}}

/* === Landing Page === */
.landing-hero{position:relative;overflow:hidden;padding:80px 24px 130px;background:linear-gradient(180deg,#0a1628 0%,#0e2c1a 45%,#1a3a18 75%,#2d5a28 100%)}
.landing-hero::before{content:'';position:absolute;width:2px;height:2px;top:20px;left:20%;border-radius:50%;background:transparent;box-shadow:0 0 0 0.5px rgba(255,255,255,0.6),45px 18px 0 0 rgba(255,255,255,0.35),110px 8px 0 0.5px rgba(255,255,255,0.5),190px 32px 0 0 rgba(255,255,255,0.4),260px 5px 0 0 rgba(255,255,255,0.55),340px 25px 0 0.5px rgba(255,255,255,0.3),420px 12px 0 0 rgba(255,255,255,0.5),-40px 30px 0 0 rgba(255,255,255,0.4),-110px 10px 0 0.5px rgba(255,255,255,0.55),-180px 38px 0 0 rgba(255,255,255,0.3),-250px 8px 0 0 rgba(255,255,255,0.45),500px 22px 0 0 rgba(255,255,255,0.35),560px 6px 0 0 rgba(255,255,255,0.5),-320px 20px 0 0.5px rgba(255,255,255,0.4),30px 45px 0 0 rgba(255,255,255,0.3),380px 40px 0 0 rgba(255,255,255,0.45),-70px 48px 0 0 rgba(255,255,255,0.35),150px 42px 0 0 rgba(255,255,255,0.4);animation:heroTwinkle 4s ease-in-out infinite alternate}
.landing-hero::after{content:'';position:absolute;bottom:0;left:0;right:0;height:40px;background:linear-gradient(to bottom,transparent,var(--bg));z-index:4}
.hero-scene{position:absolute;inset:0;pointer-events:none}
.hero-scene::before{content:'';position:absolute;top:22px;right:14%;width:26px;height:26px;border-radius:50%;box-shadow:5px -3px 0 -1px rgba(240,192,64,0.85);animation:heroMoonGlow 6s ease-in-out infinite alternate}
.hero-scene::after{content:'';position:absolute;bottom:0;left:0;right:0;height:120px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 200' preserveAspectRatio='none'%3E%3Cpath d='M0,140 C150,80 350,120 500,90 C650,60 850,110 1000,70 C1100,50 1150,60 1200,55 L1200,200 L0,200Z' fill='%231a4218'/%3E%3Cpath d='M0,170 C200,130 400,160 600,125 C800,90 950,140 1200,110 L1200,200 L0,200Z' fill='%231f4d1c'/%3E%3Cpath d='M0,190 C100,170 300,180 500,165 C700,150 900,175 1100,160 L1200,170 L1200,200 L0,200Z' fill='%23275225'/%3E%3C/svg%3E") bottom center / 100% 100% no-repeat;z-index:1}
.hero-flag{position:absolute;bottom:62px;right:26%;width:2px;height:48px;background:linear-gradient(to top,#999,#ddd);z-index:2;border-radius:1px}
.hero-flag::before{content:'';position:absolute;top:0;left:2px;width:20px;height:13px;background:var(--gold);clip-path:polygon(0 0,100% 50%,0 100%);animation:heroWave 3s ease-in-out infinite}
.hero-flag::after{content:'';position:absolute;bottom:-3px;left:-3px;width:8px;height:3px;background:rgba(0,0,0,0.25);border-radius:50%;filter:blur(1px)}
.hero-ball{position:absolute;bottom:57px;right:30%;width:11px;height:11px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff 0%,#e8e8e8 50%,#d0d0d0 100%);box-shadow:0 0 8px rgba(255,255,255,0.5),0 0 20px rgba(240,192,64,0.15);z-index:2;animation:heroBallGlow 3s ease-in-out infinite alternate}
.hero-fireflies,.hero-fireflies::before,.hero-fireflies::after{position:absolute;width:3px;height:3px;border-radius:50%;background:rgba(200,255,100,0.7);box-shadow:0 0 4px rgba(200,255,100,0.5),0 0 10px rgba(200,255,100,0.2)}
.hero-fireflies{bottom:95px;left:18%;animation:ff1 6s ease-in-out infinite;z-index:2}
.hero-fireflies::before{content:'';left:200px;bottom:15px;animation:ff2 8s ease-in-out infinite 2s}
.hero-fireflies::after{content:'';left:400px;bottom:-25px;animation:ff3 7s ease-in-out infinite 1s}
.landing-hero-inner{max-width:800px;margin:0 auto;text-align:center;position:relative;z-index:3}
.landing-hero-badge{display:inline-block;background:rgba(142,212,115,0.12);border:1px solid rgba(142,212,115,0.25);border-radius:20px;padding:4px 16px;font-family:'Fredoka',sans-serif;font-size:0.7rem;color:var(--lime);letter-spacing:1px;text-transform:uppercase;margin-bottom:16px}
.landing-hero-title{font-family:'Fredoka',sans-serif;font-size:2.2rem;font-weight:700;color:var(--white);margin-bottom:12px;text-shadow:0 3px 12px rgba(0,0,0,0.4)}
.landing-hero-title span{color:var(--gold)}
.landing-hero-tagline{font-size:1rem;opacity:0.8;max-width:500px;margin:0 auto 24px;line-height:1.6}
.landing-hero-cta{display:inline-block;padding:12px 32px;background:var(--green);color:var(--white);border-radius:12px;font-family:'Fredoka',sans-serif;font-size:1rem;font-weight:600;text-decoration:none;box-shadow:0 4px 0 #357a2a,0 6px 20px rgba(0,0,0,0.3);transition:transform 0.2s}
.landing-hero-cta:hover{transform:translateY(-2px)}

.feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:20px}
.feature-card{background:var(--card2);border:2px solid rgba(142,212,115,0.1);border-radius:14px;padding:24px 20px;text-align:center;transition:border-color 0.25s,transform 0.25s}
.feature-card:hover{border-color:rgba(142,212,115,0.3);transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,0.3)}
.feature-icon{width:56px;height:56px;border-radius:14px;font-size:1.8rem;display:flex;align-items:center;justify-content:center;margin:0 auto 12px}
.feature-card h3{font-family:'Fredoka',sans-serif;font-size:1rem;font-weight:600;margin-bottom:6px}
.feature-card p{font-size:0.82rem;opacity:0.7;line-height:1.6;margin:0}

.howto-steps-landing{display:flex;flex-direction:column;gap:20px;margin-top:20px}
.howto-step-landing{display:flex;gap:16px;align-items:flex-start;background:var(--card2);border:1px solid rgba(142,212,115,0.1);border-radius:14px;padding:20px}
.howto-step-num{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--green),var(--lime));color:var(--bg);font-family:'Fredoka',sans-serif;font-weight:700;font-size:1.2rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 8px rgba(74,140,63,0.3)}
.howto-step-body h3{font-family:'Fredoka',sans-serif;font-size:0.95rem;color:var(--lime);margin-bottom:6px}
.howto-step-body p{line-height:1.7;opacity:0.8;font-size:0.92rem;margin:0}

.content-section-alt{border-top:2px solid transparent;border-image:linear-gradient(90deg,transparent,var(--green),var(--lime),var(--green),transparent) 1;border-bottom:none}
.about-grid{display:flex;flex-direction:column;gap:16px;margin-top:16px}
.about-block{display:flex;gap:14px;align-items:flex-start}
.about-block-icon{font-size:1.6rem;width:40px;height:40px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--card);border-radius:10px;border:1px solid rgba(142,212,115,0.12)}
.about-block p{line-height:1.7;opacity:0.8;font-size:0.92rem;margin:0}

@keyframes heroTwinkle{0%{opacity:0.5}100%{opacity:1}}
@keyframes heroMoonGlow{0%{box-shadow:5px -3px 0 -1px rgba(240,192,64,0.75)}100%{box-shadow:5px -3px 2px -1px rgba(240,192,64,0.95),0 0 20px rgba(240,192,64,0.08)}}
@keyframes heroWave{0%,100%{clip-path:polygon(0 0,100% 50%,0 100%)}50%{clip-path:polygon(0 8%,100% 42%,0 92%)}}
@keyframes heroBallGlow{0%{box-shadow:0 0 6px rgba(255,255,255,0.4),0 0 15px rgba(240,192,64,0.1)}100%{box-shadow:0 0 10px rgba(255,255,255,0.6),0 0 25px rgba(240,192,64,0.2)}}
@keyframes ff1{0%,100%{transform:translate(0,0);opacity:0.3}25%{transform:translate(6px,-10px);opacity:0.9}50%{transform:translate(-3px,-18px);opacity:0.5}75%{transform:translate(10px,-6px);opacity:0.8}}
@keyframes ff2{0%,100%{transform:translate(0,0);opacity:0.4}33%{transform:translate(-8px,-12px);opacity:0.9}66%{transform:translate(5px,-6px);opacity:0.3}}
@keyframes ff3{0%,100%{transform:translate(0,0);opacity:0.2}30%{transform:translate(12px,-8px);opacity:0.7}70%{transform:translate(-6px,-15px);opacity:0.5}}
@keyframes cardBallAnim{
  0%,8%{left:18%;bottom:6px;opacity:1;transform:scale(1) rotate(0deg);animation-timing-function:ease-out}
  35%{left:calc(82% - 14px);bottom:6px;opacity:1;transform:scale(1) rotate(360deg);animation-timing-function:ease-in}
  40%{left:calc(82% - 12px);bottom:4px;opacity:1;transform:scale(0.6) rotate(400deg);animation-timing-function:ease-in}
  44%{left:calc(82% - 10px);bottom:-2px;opacity:0;transform:scale(0.2) rotate(440deg)}
  54%{left:calc(82% - 10px);bottom:-2px;opacity:0;transform:scale(0.2) rotate(440deg)}
  58%{left:45%;bottom:calc(100% - 16px);opacity:0;transform:scale(1) rotate(440deg)}
  62%{left:40%;bottom:calc(100% - 16px);opacity:1;transform:scale(1) rotate(440deg);animation-timing-function:cubic-bezier(0.32,0,0.67,0)}
  84%{left:18%;bottom:6px;opacity:1;transform:scale(1) rotate(660deg);animation-timing-function:ease-out}
  88%{left:18%;bottom:14px;opacity:1;transform:scale(1) rotate(680deg);animation-timing-function:ease-in}
  92%,100%{left:18%;bottom:6px;opacity:1;transform:scale(1) rotate(720deg)}
}
@keyframes cardStarTwinkle{
  0%{box-shadow:0 0 0 0.5px rgba(255,255,255,0.7),35px 5px 0 0 rgba(255,255,255,0.15),-25px 10px 0 0 rgba(255,255,255,0.8),70px 3px 0 0 rgba(255,255,255,0.1),-60px 7px 0 0 rgba(255,255,255,0.6),120px 9px 0 0 rgba(255,255,255,0.1),-100px 4px 0 0 rgba(255,255,255,0.7),160px 6px 0 0 rgba(255,255,255,0.15),-140px 12px 0 0 rgba(255,255,255,0.5),200px 8px 0 0 rgba(255,255,255,0.1)}
  33%{box-shadow:0 0 0 0.5px rgba(255,255,255,0.15),35px 5px 0 0 rgba(255,255,255,0.7),-25px 10px 0 0 rgba(255,255,255,0.1),70px 3px 0 0 rgba(255,255,255,0.6),-60px 7px 0 0 rgba(255,255,255,0.1),120px 9px 0 0 rgba(255,255,255,0.7),-100px 4px 0 0 rgba(255,255,255,0.15),160px 6px 0 0 rgba(255,255,255,0.6),-140px 12px 0 0 rgba(255,255,255,0.1),200px 8px 0 0 rgba(255,255,255,0.7)}
  66%{box-shadow:0 0 0 0.5px rgba(255,255,255,0.4),35px 5px 0 0 rgba(255,255,255,0.1),-25px 10px 0 0 rgba(255,255,255,0.5),70px 3px 0 0 rgba(255,255,255,0.15),-60px 7px 0 0 rgba(255,255,255,0.7),120px 9px 0 0 rgba(255,255,255,0.15),-100px 4px 0 0 rgba(255,255,255,0.1),160px 6px 0 0 rgba(255,255,255,0.8),-140px 12px 0 0 rgba(255,255,255,0.7),200px 8px 0 0 rgba(255,255,255,0.15)}
  100%{box-shadow:0 0 0 0.5px rgba(255,255,255,0.7),35px 5px 0 0 rgba(255,255,255,0.15),-25px 10px 0 0 rgba(255,255,255,0.8),70px 3px 0 0 rgba(255,255,255,0.1),-60px 7px 0 0 rgba(255,255,255,0.6),120px 9px 0 0 rgba(255,255,255,0.1),-100px 4px 0 0 rgba(255,255,255,0.7),160px 6px 0 0 rgba(255,255,255,0.15),-140px 12px 0 0 rgba(255,255,255,0.5),200px 8px 0 0 rgba(255,255,255,0.1)}
}

@media(max-width:600px){
  .page-content{padding:28px 16px 40px}
  .page-content h1{font-size:1.4rem}
  .content-section{padding:32px 0}
  .content-section h2{font-size:1.2rem}
  .footer-nav{gap:12px}
  .footer-nav a{font-size:0.75rem}
  .cookie-banner{padding:12px 14px;gap:10px}
  .cookie-btn{padding:6px 14px;font-size:0.75rem}
  .landing-hero{padding:50px 16px 100px}
  .landing-hero-title{font-size:1.6rem}
  .landing-hero-tagline{font-size:0.9rem}
  .hero-scene::after{height:80px}
  .hero-flag{bottom:48px;height:36px;right:22%}
  .hero-ball{bottom:44px;right:28%}
  .hero-fireflies{display:none}
  .feature-grid{grid-template-columns:1fr}
  .feature-card{padding:20px 16px}
  .howto-step-num{width:32px;height:32px;font-size:1rem}
  .howto-step-landing{padding:16px}
}
