@font-face{font-family:Aeonik;src:url(../aeonik-/Aeonik-Regular.otf) format("opentype");font-weight:400;font-style:normal}@font-face{font-family:Aeonik;src:url(../aeonik-/Aeonik-Medium.otf) format("opentype");font-weight:500;font-style:normal}@font-face{font-family:Aeonik;src:url(../aeonik-/Aeonik-Bold.otf) format("opentype");font-weight:700;font-style:normal}@font-face{font-family:Aeonik;src:url(../aeonik-/Aeonik-Black.otf) format("opentype");font-weight:900;font-style:normal}@font-face{font-family:Aeonik;src:url(../aeonik-/Aeonik-Light.otf) format("opentype");font-weight:300;font-style:normal}:root{--dvc-yellow: #FCBF16;--dvc-jet: #1A1A1A;--dvc-white: #FFFFFF;--dvc-dark: #0D0D0D;--bg-dark: #0a0a0a;--bg-gradient-1: #111111;--bg-gradient-2: #1a1a1a;--neon-cyan: #00f5ff;--neon-magenta: #ff00aa;--neon-gold: #FCBF16;--neon-green: #00ff88;--neon-red: #ff3366;--neon-purple: #aa44ff;--lane-1: #FCBF16;--lane-2: #00f5ff;--lane-3: #ff00aa;--text-primary: #ffffff;--text-secondary: #aab8c2;--text-glow: rgba(252, 191, 22, .8);--font-display: "Press Start 2P", "Orbitron", monospace;--font-viking: "Aeonik", "Orbitron", sans-serif;--font-body: "Aeonik", "Rajdhani", sans-serif;--transition-fast: .15s;--transition-medium: .3s}*{margin:0;padding:0;box-sizing:border-box;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}html{height:100%;background:var(--bg-dark);background-color:var(--bg-dark)}@supports (padding-bottom: env(safe-area-inset-bottom)){html,body{background-color:var(--bg-dark)}}body{width:100%;height:100%;overflow:hidden;font-family:var(--font-body);background:var(--bg-dark);color:var(--text-primary)}.screen{position:fixed;top:0;left:0;width:100%;height:100%;display:none;opacity:0;transition:opacity .5s ease;background:linear-gradient(135deg,var(--bg-gradient-1) 0%,var(--bg-dark) 50%,var(--bg-gradient-2) 100%);overflow:hidden}.screen.active{display:flex;opacity:1;z-index:10}.screen:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-image:linear-gradient(rgba(252,191,22,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(252,191,22,.04) 1px,transparent 1px);background-size:50px 50px;animation:gridMove 20s linear infinite;pointer-events:none}@keyframes gridMove{0%{transform:perspective(500px) rotateX(60deg) translateY(0)}to{transform:perspective(500px) rotateX(60deg) translateY(50px)}}#loading-screen{justify-content:center;align-items:center;flex-direction:column;overflow:hidden}.loader-container{text-align:center}.dvc-loading-logo{display:flex;flex-direction:column;align-items:center;margin-bottom:1.5rem}.loading-da,.loading-code{font-family:"Press Start 2P",monospace;font-size:.6rem;color:var(--dvc-white);letter-spacing:.3em;opacity:.8}.loading-viking{font-family:var(--font-viking);font-size:2.5rem;font-weight:900;color:var(--dvc-yellow);text-shadow:0 0 20px var(--dvc-yellow),2px 2px 0 var(--dvc-jet);letter-spacing:.05em}.viking-loader{animation:vikingSpin 2s ease-in-out infinite}.viking-loader .viking-ship-icon{width:100px;height:100px;filter:invert(1) sepia(1) saturate(5) hue-rotate(10deg) brightness(1.1) drop-shadow(0 0 15px var(--dvc-yellow))}@keyframes vikingSpin{0%,to{transform:rotate(-5deg) scale(1)}50%{transform:rotate(5deg) scale(1.1)}}.viking-ship-icon{filter:invert(1) sepia(1) saturate(5) hue-rotate(10deg) brightness(1.1) drop-shadow(0 0 10px var(--dvc-yellow))}.loading-text{font-family:"Press Start 2P",monospace;font-size:.8rem;margin:1.5rem 0;letter-spacing:.2em;color:var(--dvc-yellow);text-shadow:0 0 20px var(--dvc-yellow)}.loading-bar{width:300px;height:6px;background:#ffffff1a;border:1px solid var(--dvc-yellow);overflow:hidden}.loading-progress{height:100%;width:0%;background:var(--dvc-yellow);box-shadow:0 0 10px var(--dvc-yellow);animation:loadingFill 2s ease-out forwards}@keyframes loadingFill{to{width:100%}}#menu-screen{flex-direction:column;justify-content:center;align-items:center;overflow:hidden}#menu-canvas{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:0}.dvc-brand-stripe{position:fixed;bottom:0;left:0;width:100%;height:6px;background:var(--dvc-yellow);z-index:100;box-shadow:0 0 20px var(--dvc-yellow),0 0 40px #fcbf1680}@media (max-width: 768px){.dvc-brand-stripe{height:3px;bottom:env(safe-area-inset-bottom,0px);background:var(--dvc-yellow);box-shadow:0 0 10px var(--dvc-yellow)}body:after{content:"";position:fixed;bottom:0;left:0;right:0;height:env(safe-area-inset-bottom,0px);background:var(--bg-dark);z-index:99}}.menu-overlay{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem}.logo-container{text-align:center;margin-bottom:2.5rem}.dvc-logo-symbol{margin-bottom:1rem;animation:symbolFloat 3s ease-in-out infinite}.dvc-logo-symbol .viking-ship-icon{width:80px;height:80px;filter:invert(1) sepia(1) saturate(5) hue-rotate(10deg) brightness(1.1) drop-shadow(0 0 20px var(--dvc-yellow)) drop-shadow(0 0 40px rgba(252,191,22,.5))}@keyframes symbolFloat{0%,to{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-8px) rotate(3deg)}}.game-title{font-family:var(--font-viking);font-size:clamp(1.2rem,4vw,2rem);font-weight:400;line-height:1.2;margin-bottom:.3rem;display:flex;flex-direction:column;align-items:center}.title-da{font-family:"Press Start 2P",monospace;font-size:clamp(.6rem,2vw,.9rem);color:var(--dvc-white);letter-spacing:.3em;opacity:.8}.title-viking{font-family:var(--font-viking);font-size:clamp(2.5rem,10vw,5rem);font-weight:900;color:var(--dvc-yellow);text-shadow:0 0 10px var(--dvc-yellow),0 0 30px var(--dvc-yellow),0 0 60px rgba(252,191,22,.5),3px 3px 0 var(--dvc-jet);letter-spacing:.05em;animation:vikingGlow 2s ease-in-out infinite alternate}.title-code{font-family:"Press Start 2P",monospace;font-size:clamp(.6rem,2vw,.9rem);color:var(--dvc-white);letter-spacing:.3em;opacity:.8}.game-subtitle{font-family:var(--font-viking);font-size:clamp(1.5rem,6vw,3rem);font-weight:700;color:var(--neon-cyan);text-shadow:0 0 10px var(--neon-cyan),0 0 30px var(--neon-cyan);letter-spacing:.2em;margin-top:.5rem}@keyframes vikingGlow{0%{filter:brightness(1);text-shadow:0 0 10px var(--dvc-yellow),0 0 30px var(--dvc-yellow),3px 3px 0 var(--dvc-jet)}to{filter:brightness(1.2);text-shadow:0 0 20px var(--dvc-yellow),0 0 50px var(--dvc-yellow),0 0 80px rgba(252,191,22,.5),3px 3px 0 var(--dvc-jet)}}.tagline{font-family:"Press Start 2P",monospace;font-size:clamp(.5rem,1.5vw,.7rem);letter-spacing:.2em;color:var(--text-secondary);margin-top:1rem}.menu-buttons{display:flex;flex-direction:column;gap:1rem;margin-bottom:3rem}.menu-btn{font-family:"Press Start 2P",monospace;font-size:.7rem;font-weight:400;padding:1rem 2rem;border:2px solid var(--dvc-yellow);background:#fcbf160d;color:var(--text-primary);cursor:pointer;position:relative;overflow:hidden;transition:all var(--transition-medium);display:flex;align-items:center;justify-content:center;gap:.75rem;min-width:280px;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px)}.menu-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(252,191,22,.3),transparent);transition:left .5s}.menu-btn:hover{border-color:var(--dvc-yellow);background:#fcbf1626;transform:translate(5px);box-shadow:0 0 20px #fcbf1666,inset 0 0 20px #fcbf161a;color:var(--dvc-yellow)}.menu-btn:hover:before{left:100%}.menu-btn.primary{border-color:var(--dvc-yellow);background:linear-gradient(135deg,#fcbf1633,#fcbf161a);color:var(--dvc-yellow)}.menu-btn.primary:hover{border-color:var(--dvc-yellow);background:linear-gradient(135deg,#fcbf1666,#fcbf164d);box-shadow:0 0 30px #fcbf1699,inset 0 0 30px #fcbf1633}.btn-icon{font-size:1rem;color:var(--dvc-yellow)}.controls-hint{display:flex;flex-direction:column;align-items:center;gap:.5rem;opacity:.7;margin-bottom:6rem}.keys-row{display:flex;gap:.5rem}.key{width:50px;height:50px;display:flex;align-items:center;justify-content:center;font-family:"Press Start 2P",monospace;font-size:1rem;font-weight:400;background:linear-gradient(180deg,#fcbf1633,#fcbf160d);border:2px solid var(--dvc-yellow);border-radius:6px;box-shadow:0 4px #00000080,0 0 15px #fcbf164d;color:var(--dvc-yellow)}.audio-controls{position:fixed;bottom:calc(2rem + env(safe-area-inset-bottom,0px));right:2rem;display:flex;align-items:center;gap:1rem;padding:.75rem 1.25rem;background:#0009;border:2px solid var(--dvc-yellow);border-radius:8px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:50}.audio-btn{width:45px;height:45px;display:flex;align-items:center;justify-content:center;background:#fcbf161a;border:2px solid var(--dvc-yellow);border-radius:50%;cursor:pointer;transition:all var(--transition-medium)}.audio-btn:hover{background:#fcbf164d;transform:scale(1.1);box-shadow:0 0 20px #fcbf1680}.audio-btn.muted{border-color:var(--neon-red);opacity:.6}.audio-icon{font-size:1.5rem}.volume-slider-container{display:flex;align-items:center;gap:.75rem}.volume-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:120px;height:8px;background:#ffffff1a;border-radius:4px;outline:none;cursor:pointer}.volume-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;background:var(--dvc-yellow);border-radius:50%;cursor:pointer;box-shadow:0 0 10px #fcbf1680;transition:all var(--transition-fast)}.volume-slider::-webkit-slider-thumb:hover{transform:scale(1.2);box-shadow:0 0 20px #fcbf16cc}.volume-slider::-moz-range-thumb{width:20px;height:20px;background:var(--dvc-yellow);border:none;border-radius:50%;cursor:pointer;box-shadow:0 0 10px #fcbf1680}.volume-value{font-family:"Press Start 2P",monospace;font-size:.5rem;color:var(--dvc-yellow);min-width:40px;text-align:right}.audio-controls-game{display:flex;align-items:center;gap:.5rem;margin-top:.75rem;padding:.5rem .75rem;background:#0006;border:1px solid rgba(252,191,22,.3);border-radius:6px;pointer-events:auto}.audio-btn-small{width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:#fcbf161a;border:1px solid var(--dvc-yellow);border-radius:50%;cursor:pointer;transition:all var(--transition-fast);padding:0}.audio-btn-small:hover{background:#fcbf164d}.audio-btn-small .audio-icon{font-size:1rem}.audio-btn-small.muted{border-color:var(--neon-red);opacity:.6}.volume-slider-small{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:60px;height:4px;background:#fff3;border-radius:2px;outline:none;cursor:pointer}.volume-slider-small::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:12px;height:12px;background:var(--dvc-yellow);border-radius:50%;cursor:pointer;box-shadow:0 0 5px #fcbf1680}.volume-slider-small::-moz-range-thumb{width:12px;height:12px;background:var(--dvc-yellow);border:none;border-radius:50%;cursor:pointer}.hint-text{font-family:"Press Start 2P",monospace;font-size:.5rem;color:var(--text-secondary);margin-top:.5rem}#tutorial-screen{justify-content:center;align-items:center;padding:2rem;overflow:hidden}@media (max-width: 768px){#tutorial-screen{justify-content:flex-start;align-items:flex-start;padding:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;-ms-overflow-style:none}#tutorial-screen::-webkit-scrollbar{display:none}.tutorial-container{padding:1.5rem 1.5rem 3rem;width:100%}}.tutorial-container{max-width:900px;width:100%;z-index:1;overflow-x:hidden;box-sizing:border-box}.screen-title{font-family:var(--font-viking);font-size:2rem;text-align:center;margin-bottom:2rem;color:var(--dvc-yellow);text-shadow:0 0 20px var(--dvc-yellow),2px 2px 0 var(--dvc-jet)}.tutorial-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:2rem}.tutorial-item{display:flex;align-items:center;gap:1rem;padding:1.5rem;background:#fcbf1605;border:1px solid rgba(252,191,22,.2);border-radius:8px;transition:all var(--transition-medium);max-width:100%;box-sizing:border-box;overflow:hidden}.tutorial-item:hover{transform:translateY(-3px);background:#fcbf1614;border-color:var(--dvc-yellow)}.tutorial-item.good{border-left:4px solid var(--neon-green)}.tutorial-item.bad{border-left:4px solid var(--neon-red)}.tutorial-item.special{border-left:4px solid var(--dvc-yellow)}.tutorial-item.warning{border-left:4px solid #ff8800}.tutorial-item.legendary{border-left:4px solid var(--neon-purple)}.tutorial-icon{font-size:3rem;min-width:60px;text-align:center}.tutorial-info{flex:1;min-width:0;overflow:hidden}.tutorial-info h3{font-family:var(--font-viking);font-size:1.1rem;font-weight:700;margin-bottom:.4rem;color:var(--dvc-yellow)}.tutorial-info p{font-family:var(--font-viking);font-size:.85rem;color:var(--text-secondary);margin-bottom:.3rem;line-height:1.4}.tutorial-info p.action{color:var(--text-primary);font-weight:600}.points{font-family:var(--font-viking);font-size:.9rem;font-weight:700;color:var(--neon-green);display:block;margin-top:.3rem}.points.penalty{color:var(--neon-red)}.tutorial-icon-3d{width:60px;height:60px;min-width:60px;border-radius:12px;display:flex;align-items:center;justify-content:center;position:relative;animation:iconFloat 2s ease-in-out infinite}@keyframes iconFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.tutorial-icon-3d.client{background:radial-gradient(circle at 30% 30%,#0f8,#0a5);box-shadow:0 0 20px #00ff8880}.tutorial-icon-3d.client:before{content:"😊";font-size:2rem}.tutorial-icon-3d.project{background:linear-gradient(135deg,#0cf,#08c);box-shadow:0 0 20px #00ccff80;border:3px solid #00eeff}.tutorial-icon-3d.project:before{content:"🎁";font-size:1.8rem}.tutorial-icon-3d.bug{background:radial-gradient(circle,#f36,#c03);box-shadow:0 0 20px #f369;animation:iconFloat 2s ease-in-out infinite,bugShake .1s infinite}.tutorial-icon-3d.bug:before{content:"☠️";font-size:2rem}@keyframes bugShake{0%,to{transform:translate(0) translateY(0)}25%{transform:translate(-1px) translateY(-5px)}75%{transform:translate(1px) translateY(-5px)}}.tutorial-icon-3d.devis{background:linear-gradient(135deg,#fff,#eee);border:3px solid #ffd700;box-shadow:0 0 20px #ffd70080}.tutorial-icon-3d.devis:before{content:"💰";font-size:1.8rem}.tutorial-icon-3d.facture{background:linear-gradient(135deg,#fee,#fcc);border:3px solid #ff6600;box-shadow:0 0 20px #ff660080;position:relative}.tutorial-icon-3d.facture:before{content:"⏰";font-size:1.8rem}.tutorial-icon-3d.facture:after{content:"!";position:absolute;top:-5px;right:-5px;background:#f30;color:#fff;width:20px;height:20px;border-radius:50%;font-size:.9rem;font-weight:700;display:flex;align-items:center;justify-content:center}.tutorial-icon-3d.viking{background:radial-gradient(circle,#a4f,#62a);box-shadow:0 0 25px #aa44ffb3,inset 0 0 20px #fff3;border:2px solid #cc66ff;animation:iconFloat 2s ease-in-out infinite,vikingIconGlow 1s ease-in-out infinite alternate}.tutorial-icon-3d.viking:before{content:"⚔️";font-size:2rem}@keyframes vikingIconGlow{0%{box-shadow:0 0 25px #aa44ffb3}to{box-shadow:0 0 40px #a4f,0 0 60px #aa44ff80}}.powerups-info{text-align:center;padding:1rem 1.5rem;background:linear-gradient(135deg,#fcbf161a,#fcbf160d);border:2px solid var(--dvc-yellow);border-radius:8px;margin-bottom:1rem}.powerups-info h3{font-family:var(--font-viking);color:var(--dvc-yellow);margin-bottom:.75rem;font-size:1rem}.powerup-list{display:flex;justify-content:center;gap:1.5rem;flex-wrap:wrap}.powerup{font-family:"Press Start 2P",monospace;font-size:.5rem;padding:.5rem 1rem;background:#fcbf161a;border-radius:4px;border:1px solid var(--dvc-yellow);color:var(--dvc-yellow);white-space:nowrap}.combo-info{text-align:center;padding:1rem 1.5rem;background:linear-gradient(135deg,#fcbf161a,#fcbf160d);border:2px solid var(--dvc-yellow);border-radius:8px;margin-bottom:2rem}.combo-info h3{font-family:var(--font-viking);color:var(--dvc-yellow);margin-bottom:.5rem;font-size:1rem}#game-screen{flex-direction:column;overflow:hidden;background:var(--bg-dark)}@media (max-width: 768px){#game-screen{padding-bottom:env(safe-area-inset-bottom,0px);background:var(--bg-dark)}#game-screen:after{content:"";position:fixed;bottom:0;left:0;right:0;height:calc(env(safe-area-inset-bottom,0px) + 10px);background:var(--bg-dark);z-index:1}}#game-canvas{position:absolute;top:0;left:0;width:100%;height:100%;z-index:0}.game-hud{position:absolute;top:0;left:0;right:0;width:100%;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:flex-start;z-index:10;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.6) 0%,transparent 100%);box-sizing:border-box}.hud-left,.hud-right{flex:0 0 auto;min-width:120px;display:flex;flex-direction:column;gap:.5rem}.hud-center{flex:1;display:flex;flex-direction:column;align-items:center;text-align:center}.lives-container,.timer-container,.score-container{display:flex;flex-direction:column;gap:.2rem}.lives-label,.timer-label,.score-label,.combo-label{font-family:"Press Start 2P",monospace;font-size:.5rem;letter-spacing:.2em;color:var(--text-secondary)}.lives{display:flex;gap:.3rem;font-size:1.5rem}.life{transition:all .3s}.life.lost{filter:grayscale(1);opacity:.3;transform:scale(.8)}.timer{font-family:"Press Start 2P",monospace;font-size:1rem;font-weight:400;color:var(--dvc-yellow);text-shadow:0 0 10px var(--dvc-yellow)}.timer.warning{color:var(--neon-red);text-shadow:0 0 10px var(--neon-red);animation:timerPulse .5s infinite}@keyframes timerPulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.score{font-family:"Press Start 2P",monospace;font-size:1.2rem;font-weight:400;color:var(--dvc-yellow);text-shadow:0 0 15px var(--dvc-yellow)}.combo-display{display:flex;flex-direction:column;align-items:center}.combo-value{font-family:var(--font-viking);font-size:2rem;font-weight:900;color:var(--dvc-yellow);text-shadow:0 0 20px var(--dvc-yellow);transition:all .2s}.combo-value.pulse{animation:comboPulse .3s ease-out}@keyframes comboPulse{0%{transform:scale(1)}50%{transform:scale(1.4)}to{transform:scale(1)}}.feedback-zone{height:40px;display:flex;align-items:center;justify-content:center}.powerup-text{font-family:"Press Start 2P",monospace;font-size:.6rem;color:var(--dvc-yellow);text-shadow:0 0 10px var(--dvc-yellow);animation:powerupBlink .5s ease-in-out infinite alternate}@keyframes powerupBlink{0%{opacity:.7}to{opacity:1}}.feedback-text{font-family:var(--font-viking);font-size:1.5rem;font-weight:700;animation:feedbackPop .6s ease-out forwards;text-shadow:2px 2px 0 var(--dvc-jet)}.feedback-text.perfect{color:var(--dvc-yellow);text-shadow:0 0 20px var(--dvc-yellow),2px 2px 0 var(--dvc-jet)}.feedback-text.good{color:var(--neon-green)}.feedback-text.bad{color:var(--neon-red)}@keyframes feedbackPop{0%{transform:scale(0) translateY(20px);opacity:0}30%{transform:scale(1.2) translateY(0);opacity:1}to{transform:scale(1) translateY(-10px);opacity:0}}.center-display{position:absolute;top:35%;left:50%;transform:translate(-50%,-50%);z-index:15;pointer-events:none;display:flex;flex-direction:column;align-items:center;gap:1rem}.center-combo{font-family:var(--font-viking);font-size:4rem;font-weight:900;color:var(--dvc-yellow);text-shadow:0 0 20px var(--dvc-yellow),0 0 40px rgba(252,191,22,.5),3px 3px 0 var(--dvc-jet);opacity:0;transform:scale(.5);transition:none}.center-combo.show{animation:comboPopIn .8s ease-out forwards}.center-combo.milestone{font-size:5rem;animation:comboMilestone 1s ease-out forwards}@keyframes comboPopIn{0%{opacity:0;transform:scale(.5)}20%{opacity:1;transform:scale(1.3)}40%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(.8) translateY(-20px)}}@keyframes comboMilestone{0%{opacity:0;transform:scale(.5) rotate(-10deg)}20%{opacity:1;transform:scale(1.5) rotate(5deg)}40%{opacity:1;transform:scale(1.2) rotate(-2deg)}60%{opacity:.9;transform:scale(1.1) rotate(0)}to{opacity:0;transform:scale(.9) translateY(-30px)}}.center-bonus{font-family:var(--font-viking);font-size:2.5rem;font-weight:700;padding:.5rem 1.5rem;border-radius:8px;opacity:0;transform:scale(.5)}.center-bonus.show{animation:bonusSlideIn 1.2s ease-out forwards}.center-bonus.slowmo{color:#00f5ff;background:#00f5ff33;border:2px solid #00f5ff;text-shadow:0 0 20px #00f5ff}.center-bonus.shield{color:var(--dvc-yellow);background:#fcbf1633;border:2px solid var(--dvc-yellow);text-shadow:0 0 20px var(--dvc-yellow)}.center-bonus.multiplier{color:#f0a;background:#f0a3;border:2px solid #ff00aa;text-shadow:0 0 20px #ff00aa}@keyframes bonusSlideIn{0%{opacity:0;transform:scale(.5) translateY(30px)}15%{opacity:1;transform:scale(1.2) translateY(0)}30%{opacity:1;transform:scale(1)}70%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8) translateY(-20px)}}.lane-indicators{position:absolute;bottom:calc(8% + env(safe-area-inset-bottom,0px));left:0;width:100%;z-index:5;pointer-events:none}.lane-key{position:absolute;pointer-events:auto;width:60px;height:60px;display:flex;align-items:center;justify-content:center;font-family:"Press Start 2P",monospace;cursor:pointer;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-tap-highlight-color:transparent;font-size:1rem;font-weight:400;background:#fcbf161a;border:3px solid var(--dvc-yellow);border-radius:8px;transition:all .1s}.lane-key[data-lane="0"]{border-color:var(--lane-1);color:var(--lane-1)}.lane-key[data-lane="1"]{border-color:var(--lane-2);color:var(--lane-2)}.lane-key[data-lane="2"]{border-color:var(--lane-3);color:var(--lane-3)}.lane-key.pressed{transform:scale(.9);background:#ffffff4d;box-shadow:0 0 30px currentColor}.effect-overlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:15}.effect-overlay.shake{animation:screenShake .3s ease-out}@keyframes screenShake{0%,to{transform:translate(0)}20%{transform:translate(-10px)}40%{transform:translate(10px)}60%{transform:translate(-5px)}80%{transform:translate(5px)}}.effect-overlay.glitch:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(255,0,0,.1) 2px,rgba(255,0,0,.1) 4px);animation:glitchLines .1s infinite}@keyframes glitchLines{0%{transform:translateY(0)}to{transform:translateY(4px)}}.effect-overlay.viking-mode{background:radial-gradient(circle at center,rgba(252,191,22,.4),transparent 70%);animation:vikingPulse .5s ease-out}@keyframes vikingPulse{0%{opacity:0;transform:scale(.5)}50%{opacity:1}to{opacity:0;transform:scale(1.5)}}.effect-overlay.shield-active{box-shadow:inset 0 0 50px #fcbf1666,inset 0 0 100px #fcbf1633;border:4px solid rgba(252,191,22,.6);animation:shieldPulse 1s ease-in-out infinite}@keyframes shieldPulse{0%,to{border-color:#fcbf1699;box-shadow:inset 0 0 50px #fcbf1666}50%{border-color:#fcbf16e6;box-shadow:inset 0 0 80px #fcbf1699}}.btn-end-game{position:absolute;bottom:calc(2rem + env(safe-area-inset-bottom,0px));left:2rem;display:flex;align-items:center;gap:.5rem;padding:.6rem 1.2rem;font-family:var(--font-viking);font-size:.85rem;font-weight:600;color:var(--dvc-yellow);background:#0009;border:2px solid var(--dvc-yellow);border-radius:6px;cursor:pointer;z-index:50;transition:all var(--transition-medium);opacity:.7}.btn-end-game:hover{opacity:1;background:#fcbf1633;box-shadow:0 0 20px #fcbf1666;transform:scale(1.05)}.btn-end-game span{font-size:1rem}.countdown-overlay{position:absolute;top:0;left:0;width:100%;height:100%;display:none;align-items:center;justify-content:center;background:#000c;z-index:100}.countdown-overlay.active{display:flex}.countdown-number{font-family:var(--font-viking);font-size:12rem;font-weight:900;color:var(--dvc-yellow);text-shadow:0 0 30px var(--dvc-yellow),0 0 60px var(--dvc-yellow),0 0 90px rgba(252,191,22,.5),4px 4px 0 var(--dvc-jet);animation:countdownPulse 1s ease-out infinite}@keyframes countdownPulse{0%{transform:scale(1.5);opacity:0}20%{opacity:1}to{transform:scale(1);opacity:.5}}.pause-overlay{position:absolute;top:0;left:0;width:100%;height:100%;display:none;align-items:center;justify-content:center;background:#000000e6;z-index:200}.pause-overlay.active{display:flex}.pause-menu{text-align:center}.pause-menu h2{font-family:var(--font-viking);font-size:2.5rem;margin-bottom:2rem;color:var(--dvc-yellow);text-shadow:0 0 20px var(--dvc-yellow)}.pause-menu .menu-btn{margin:.5rem}#gameover-screen{justify-content:center;align-items:center;padding:1rem;padding-bottom:calc(1rem + env(safe-area-inset-bottom,0px));overflow:hidden}.gameover-container{max-width:400px;width:100%;text-align:center;z-index:1;display:flex;flex-direction:column;align-items:center;gap:1rem}.gameover-header{margin-bottom:.5rem}.gameover-title{font-family:var(--font-viking);font-size:1.8rem;margin-bottom:.75rem;color:var(--dvc-yellow);text-shadow:0 0 20px var(--dvc-yellow),2px 2px 0 var(--dvc-jet)}.rank-badge{display:inline-flex;flex-direction:column;align-items:center;padding:1rem 2rem;background:linear-gradient(135deg,#fcbf1633,#fcbf161a);border:2px solid var(--dvc-yellow);border-radius:8px;box-shadow:0 0 20px #fcbf1666}.rank-icon{font-size:2.5rem;margin-bottom:.3rem}.rank-name{font-family:var(--font-viking);font-size:1rem;font-weight:700;color:var(--dvc-yellow)}.final-stats{background:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:1rem 1.5rem;width:100%}.stat-row{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid rgba(255,255,255,.05)}.stat-row:last-child{border-bottom:none}.stat-label{font-family:"Press Start 2P",monospace;color:var(--text-secondary);font-size:.5rem}.stat-value{font-family:"Press Start 2P",monospace;font-weight:400;font-size:.6rem;color:var(--dvc-yellow)}.name-input-section{width:100%;max-width:280px;display:flex;flex-direction:column;align-items:center;gap:.5rem;margin-bottom:1.5rem}.name-input-section p{font-family:"Press Start 2P",monospace;margin:0;color:var(--text-secondary);font-size:.5rem}#player-name{font-family:"Press Start 2P",monospace;font-size:.7rem;padding:.75rem 1.25rem;background:#fcbf160d;border:2px solid var(--dvc-yellow);border-radius:6px;color:var(--dvc-yellow);text-align:center;text-transform:uppercase;letter-spacing:.1em;width:100%;transition:all var(--transition-medium)}#player-name:focus{outline:none;border-color:var(--dvc-yellow);box-shadow:0 0 20px #fcbf1666}#btn-save-score{width:100%;min-width:unset}.gameover-buttons{display:flex;flex-direction:column;align-items:center;gap:.75rem;width:100%;max-width:280px;margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.1)}.gameover-buttons .menu-btn{width:100%;min-width:unset}#leaderboard-screen{justify-content:center;align-items:center;padding:2rem;padding-bottom:calc(2rem + env(safe-area-inset-bottom,0px))}.leaderboard-container{max-width:600px;width:100%;z-index:1;text-align:center}.leaderboard-list{background:#fcbf1608;border:2px solid var(--dvc-yellow);border-radius:8px;padding:1rem;margin-bottom:2rem;max-height:400px;overflow-y:auto}.leaderboard-entry{display:flex;align-items:center;padding:1rem;border-bottom:1px solid rgba(252,191,22,.2);transition:all var(--transition-fast)}.leaderboard-entry:last-child{border-bottom:none}.leaderboard-entry:hover{background:#fcbf161a}.leaderboard-entry.top-1{background:linear-gradient(90deg,rgba(252,191,22,.3),transparent)}.leaderboard-entry.top-2{background:linear-gradient(90deg,rgba(192,192,192,.2),transparent)}.leaderboard-entry.top-3{background:linear-gradient(90deg,rgba(205,127,50,.2),transparent)}.entry-rank{font-family:var(--font-viking);font-size:1.5rem;font-weight:900;width:50px;text-align:center}.entry-rank.gold{color:gold}.entry-rank.silver{color:silver}.entry-rank.bronze{color:#cd7f32}.entry-name{flex:1;font-family:"Press Start 2P",monospace;font-size:.6rem;padding:0 1rem}.entry-score{font-family:"Press Start 2P",monospace;font-size:.7rem;font-weight:400;color:var(--dvc-yellow)}.personal-best{text-align:center;padding:1.5rem;background:linear-gradient(135deg,#fcbf161a,#fcbf160d);border:2px solid var(--dvc-yellow);border-radius:8px;margin-bottom:2rem}.personal-best h3{font-family:var(--font-viking);color:var(--dvc-yellow);margin-bottom:.5rem}.best-score{font-family:"Press Start 2P",monospace;font-size:1rem;font-weight:400;color:var(--dvc-yellow);text-shadow:0 0 15px var(--dvc-yellow)}.no-scores{text-align:center;padding:2rem;color:var(--text-secondary);font-style:italic}@media (max-width: 768px){.game-title{font-size:clamp(2rem,15vw,4rem)}.menu-btn{min-width:240px;padding:.8rem 1.5rem;font-size:1rem}.tutorial-grid{grid-template-columns:1fr}.lane-indicators{bottom:calc(8% + env(safe-area-inset-bottom,0px))}.lane-key{width:50px;height:50px;font-size:1.2rem}.score{font-size:1.8rem}.countdown-number{font-size:8rem}.audio-controls{bottom:calc(1.5rem + env(safe-area-inset-bottom,0px));right:1rem;left:1rem;justify-content:center}.btn-end-game{bottom:calc(1.5rem + env(safe-area-inset-bottom,0px));left:1rem}.controls-hint{margin-bottom:calc(5rem + env(safe-area-inset-bottom,0px))}}@media (max-width: 520px){#menu-screen{align-items:stretch}.menu-overlay{padding:.5rem .75rem .75rem;justify-content:space-between;height:100%;width:100%;overflow-y:auto}.logo-container{margin-bottom:.75rem}.dvc-logo-symbol{margin-bottom:.25rem}.dvc-logo-symbol .viking-ship-icon{width:40px;height:40px}.title-da,.title-code{font-size:.45rem;letter-spacing:.15em}.title-viking{font-size:clamp(1.8rem,11vw,2.5rem)}.game-subtitle{font-size:clamp(1rem,5vw,1.5rem);margin-top:.15rem}.tagline{font-size:.35rem;margin-top:.3rem}.menu-buttons{gap:.5rem;margin-bottom:1rem}.menu-btn{min-width:200px;padding:.6rem 1rem;font-size:.55rem}.controls-hint{margin-bottom:0;gap:.25rem}.key{width:36px;height:36px;font-size:.7rem}.hint-text{font-size:.35rem;margin-top:.25rem}.audio-controls{position:static;padding:.4rem .6rem;gap:.4rem;margin-top:.5rem;margin-bottom:calc(.5rem + env(safe-area-inset-bottom,0px));background:#000000b3;border-radius:6px}.audio-btn{width:32px;height:32px}.audio-icon{font-size:1rem}.volume-slider{width:70px}.volume-value{font-size:.35rem;min-width:28px}}@media (max-width: 390px){.lane-key{width:45px;height:45px;font-size:1rem}.audio-controls{padding:.5rem .75rem;gap:.5rem}.volume-slider{width:80px}}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#ffffff0d}::-webkit-scrollbar-thumb{background:#00f5ff4d;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#00f5ff80}
