 #loadingScreen{
  position:fixed; inset:0; z-index:9999;
  background:radial-gradient(1200px 800px at 50% 0%, #1c3a24 0%, #0b170f 62%), linear-gradient(180deg, #0b170f 0%, #071009 100%);
  display:flex; align-items:center; justify-content:center;
  transition:opacity 0.8s ease;
}
.loader-content{
  text-align:center; color:#fff;
}
.logo{
  font-size:48px; font-weight:900; 
  background:linear-gradient(135deg, #ffc857, #ff6b4a);
  -webkit-background-clip:text; -webkit-text-fill-color:transparent;
  text-shadow:0 0 40px rgba(255,200,87,0.5);
  margin-bottom:40px;
  animation:logoGlow 2s ease-in-out infinite;
}
@keyframes logoGlow{
  0%,100%{filter:brightness(1)}
  50%{filter:brightness(1.3)}
}
.loading-bar{
  width:280px; height:8px; background:rgba(255,255,255,0.1);
  border-radius:10px; overflow:hidden; margin:0 auto 20px;
  box-shadow:0 0 20px rgba(255,140,90,0.3);
}
.loading-progress{
  height:100%; width:0%;
  background:linear-gradient(90deg, #2dd4bf, #ffc857, #ff6b4a);
  border-radius:10px;
  animation:loadProgress 3s ease-out forwards;
  box-shadow:0 0 20px rgba(255,200,87,0.6);
}
@keyframes loadProgress{
  0%{width:0%}
  100%{width:100%}
}
.loading-text{
  font-size:18px; color:#aee9df; margin-bottom:10px;
  letter-spacing:1px;
}
.dots span{
  display:inline-block; width:8px; height:8px; 
  background:#ffc857; border-radius:50%; margin:0 4px;
  animation:dotBounce 1.4s infinite;
}
.dots span:nth-child(2){animation-delay:0.2s}
.dots span:nth-child(3){animation-delay:0.4s}
@keyframes dotBounce{
 0%,80%,100%{transform:scale(0.8); opacity:0.5}
  40%{transform:scale(1.2); opacity:1}
}
  :root{
    --bg-deep:#0b170f;--bg-panel:#122a1b;--panel-line:#2c4d34;
    --gold:#d9e26b;--coral:#ff9d4d;--teal:#52d68a;
    --text:#eef6e6;--text-dim:#9fbf9f;--danger:#ff5252;
  }
  *{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
  html,body{margin:0;padding:0;width:100%;height:100%;overflow:hidden;background:var(--bg-deep);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:var(--text);touch-action:none;user-select:none}
  #gameWrap{position:relative;width:100vw;height:100vh;overflow:hidden;background:radial-gradient(1100px 750px at 50% 0%,#1c3a24 0%,var(--bg-deep) 62%),linear-gradient(180deg,#0b170f 0%,#071009 100%)}
  canvas{position:absolute;top:0;left:0;display:block}
  #bladeCanvas{z-index:5;cursor:crosshair}
 .lanternRow{position:absolute;top:0;left:0;width:100%;height:90px;display:flex;justify-content:space-around;align-items:flex-start;pointer-events:none;z-index:2;opacity:.8}
 .lantern{font-size:30px;margin-top:-10px;filter:drop-shadow(0 4px 6px rgba(0,0,0,.5));animation:sway 4.2s ease-in-out infinite;opacity:.85}
 .lantern:nth-child(odd){animation-delay:-1.6s}
 .lantern:nth-child(3n){animation-delay:-2.7s}
  @keyframes sway{0%,100%{transform:rotate(-6deg) translateY(0)}50%{transform:rotate(6deg) translateY(4px)}}
 .firefly{position:absolute;width:5px;height:5px;border-radius:50%;background:var(--gold);box-shadow:0 0 10px 3px rgba(217,226,107,.9);pointer-events:none;z-index:3;opacity:0;animation:drift linear infinite,glow 2.4s ease-in-out infinite}
  @keyframes glow{0%,100%{opacity:.15}50%{opacity:.95}}
  @keyframes drift{0%{transform:translate(0,0)}25%{transform:translate(30px,-24px)}50%{transform:translate(-10px,-50px)}75%{transform:translate(-35px,-18px)}100%{transform:translate(0,0)}}
 .hillLayer{position:absolute;left:0;right:0;bottom:0;z-index:1;pointer-events:none}
  #hillBack{height:22vh;background:radial-gradient(120% 100% at 50% 100%,#163823 0%,#0d2116 70%,transparent 100%);opacity:.55}
  #hillFront{height:13vh;background:radial-gradient(120% 100% at 50% 100%,#0f2417 0%,#081409 75%,transparent 100%);opacity:.8}
  #hud{position:absolute;top:0;left:0;width:100%;z-index:20;display:flex;justify-content:flex-start;align-items:flex-start;padding:16px 18px;pointer-events:none}
  #scoreBlock{display:flex;flex-direction:column;gap:2px;pointer-events:none}
  #scoreLabel{font-size:11px;letter-spacing:3px;color:var(--text-dim);text-transform:uppercase}
  #scoreVal{font-size:34px;font-weight:800;letter-spacing:1px;color:var(--gold);text-shadow:0 18px rgba(255,200,87,.55);font-variant-numeric:tabular-nums}
  #highVal{font-size:12px;color:var(--text-dim);font-variant-numeric:tabular-nums}
  #comboTag{margin-top:4px;font-size:13px;font-weight:700;color:var(--teal);opacity:0;transform:translateY(-6px);transition:opacity.15s,transform.15s;text-shadow:0 0 10px rgba(45,212,191,.6)}
  #comboTag.show{opacity:1;transform:translateY(0)}
  #levelBlock{margin-top:10px;pointer-events:none}
  #levelLabel{font-size:10px;letter-spacing:2px;color:var(--text-dim);text-transform:uppercase}
  #levelVal{font-size:22px;font-weight:800;color:var(--teal);text-shadow:0 0 12px rgba(82,214,138,.6)}
  #targetLabel{font-size:10px;color:var(--text-dim);margin-top:2px}
 .progress-container{width:130px;height:6px;background:rgba(0,0,0,.4);border-radius:10px;margin-top:6px;overflow:hidden;border:1px solid var(--panel-line)}
  #levelProgress{height:100%;width:0%;background:linear-gradient(90deg,var(--teal),var(--gold));transition:width.3s}
  #livesBlock{position:absolute;top:18px;left:50%;transform:translateX(-50%);display:flex;gap:7px;align-items:center;pointer-events:none;z-index:22;background:rgba(10,20,13,.4);padding:7px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.06);backdrop-filter:blur(3px)}
 .heart{width:22px;height:20px;position:relative;filter:drop-shadow(0 0 6px rgba(255,77,77,.55));transition:transform.2s}
 .heart svg{width:100%;height:100%;display:block}
 .heart.lost{opacity:.18;transform:scale(.8)}
  #topRightBtns{position:absolute;top:14px;right:16px;z-index:25;display:flex;gap:10px;pointer-events:auto}
 .iconBtn{width:42px;height:42px;border-radius:50%;background:rgba(20,26,46,.75);border:1px solid var(--panel-line);color:var(--text);font-size:19px;display:flex;align-items:center;justify-content:center;cursor:pointer;backdrop-filter:blur(4px);transition:transform.12s,border-color.12s,background.12s}
 .iconBtn:hover{transform:translateY(-2px);border-color:var(--gold);background:rgba(30,38,64,.85)}
 .iconBtn:active{transform:translateY(0) scale(.94)}
 .overlay{position:absolute;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;flex-direction:column;background:rgba(6,8,16,.72);backdrop-filter:blur(6px);opacity:0;pointer-events:none;transition:opacity.25s ease}
 .overlay.active{opacity:1;pointer-events:auto}
 .panel{background:linear-gradient(180deg,var(--bg-panel),#0f1424);border:1px solid var(--panel-line);border-radius:18px;padding:34px 38px;width:min(420px,88vw);text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.02) inset;position:relative}
 .panel::before{content:"";position:absolute;top:-1px;left:16%;right:16%;height:2px;background:linear-gradient(90deg,transparent,var(--teal),var(--gold),transparent);opacity:.8}
 .panel::after{content:"";position:absolute;inset:0;border-radius:18px;pointer-events:none;box-shadow:inset 0 0 60px rgba(82,214,138,.05)}
 .panelEmoji{font-size:38px;margin-bottom:2px;filter:drop-shadow(0 6px 10px rgba(0,0,0,.4))}
 .titleWrap{margin-bottom:6px}
 .gameTitle{font-size:44px;font-weight:900;letter-spacing:2px;margin:0;background:linear-gradient(180deg,#f2fbe8 8%,var(--teal) 50%,var(--gold) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 4px 24px rgba(82,214,138,.25);line-height:1.05}
 .gameSub{font-size:12px;letter-spacing:5px;color:var(--text-dim);text-transform:uppercase;margin:6px 0 26px}
 .bladeDivider{width:70%;height:3px;margin:18px auto;border-radius:3px;background:linear-gradient(90deg,transparent,var(--coral),var(--gold),transparent);box-shadow:0 0 12px rgba(255,107,74,.5)}
  button.primaryBtn{appearance:none;border:none;cursor:pointer;padding:14px 34px;border-radius:999px;font-size:16px;font-weight:800;letter-spacing:1px;background:linear-gradient(180deg,var(--gold),var(--coral));color:#1a1206;box-shadow:0 10px 24px rgba(255,140,90,.35);transition:transform.12s,box-shadow.12s;margin:6px 4px}
  button.primaryBtn:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(255,140,90,.45)}
  button.primaryBtn:active{transform:translateY(0)}
  button.ghostBtn{appearance:none;cursor:pointer;padding:12px 26px;border-radius:999px;font-size:14px;font-weight:700;letter-spacing:.5px;background:transparent;color:var(--text);border:1px solid var(--panel-line);margin:6px 4px;transition:border-color.12s,color.12s,transform.12s}
  button.ghostBtn:hover{border-color:var(--teal);color:var(--teal);transform:translateY(-2px)}
 .rowLabel{display:flex;justify-content:space-between;align-items:center;margin:14px 0;font-size:13px;color:var(--text-dim);letter-spacing:1px;text-transform:uppercase}
 .toggle{width:50px;height:28px;border-radius:999px;background:#232c47;position:relative;cursor:pointer;border:1px solid var(--panel-line);transition:background.15s}
 .toggle.on{background:linear-gradient(90deg,var(--teal),#1fa896)}
 .toggle.knob{position:absolute;top:2px;left:2px;width:22px;height:22px;border-radius:50%;background:#fff;transition:left.18s;box-shadow:0 2px 6px rgba(0,0,0,.4)}
 .toggle.on.knob{left:24px}
 .diffRow{display:flex;gap:8px;justify-content:center;margin:8px 0 4px}
 .diffBtn{flex:1;padding:9px 0;border-radius:10px;border:1px solid var(--panel-line);background:#161d34;color:var(--text-dim);font-size:12px;font-weight:700;letter-spacing:1px;cursor:pointer;transition:all.15s;text-transform:uppercase}
 .diffBtn.active{background:linear-gradient(180deg,var(--gold),var(--coral));color:#1a1206;border-color:transparent}
  #finalScore{font-size:52px;font-weight:900;color:var(--gold);text-shadow:0 0 20px rgba(255,200,87,.5);margin:6px 0 0}
  #finalScoreLabel{font-size:11px;letter-spacing:3px;color:var(--text-dim);text-transform:uppercase}
  #newBestTag{display:inline-block;margin-top:10px;padding:5px 14px;border-radius:999px;background:rgba(45,212,191,.15);border:1px solid rgba(45,212,191,.4);color:var(--teal);font-size:12px;font-weight:800;letter-spacing:1px;opacity:0}
  #newBestTag.show{opacity:1}
  #pauseHint{font-size:12px;color:var(--text-dim);margin-top:2px}
 .flash{position:absolute;inset:0;z-index:40;background:var(--danger);opacity:0;pointer-events:none}
  @media (max-width:480px){.gameTitle{font-size:34px}.panel{padding:26px 22px}#scoreVal{font-size:27px}}