:root{--yellow:#ffd23f;--blue:#0e3aa8;--navy:#071a5c;--teal:#1fb5c4;--sat:env(safe-area-inset-top,0px);--sar:env(safe-area-inset-right,0px);--sab:env(safe-area-inset-bottom,0px);--sal:env(safe-area-inset-left,0px)}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%;overflow:hidden;background:#05103d;color:#fff;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:none;overscroll-behavior:none}
body{position:fixed;inset:0;height:100dvh}
canvas#game{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}
.hidden{display:none!important}
.screen{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:calc(10px + var(--sat)) calc(14px + var(--sar)) calc(10px + var(--sab)) calc(14px + var(--sal));z-index:5}
.screen.dim{background:rgba(3,10,40,.62);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
#title{background:linear-gradient(180deg,rgba(5,16,61,.15),rgba(5,16,61,.55))}
.titleWrap{display:flex;gap:4vw;align-items:center;justify-content:center;width:100%;max-width:980px;max-height:100%}
.brandCol{display:flex;flex-direction:column;align-items:center;text-align:center;min-width:0}
.logo{display:flex;align-items:center;gap:10px}
.logoBulb{height:clamp(34px,9vh,64px)}
h1{margin:0;font-size:clamp(26px,7.4vh,52px);font-weight:900;letter-spacing:-.5px;line-height:1;text-shadow:0 3px 0 #04124a,0 0 18px rgba(0,0,0,.35)}
h1 span{color:var(--yellow)}
.hero{height:clamp(90px,34vh,260px);margin:1.2vh 0;filter:drop-shadow(0 8px 10px rgba(0,0,0,.35));image-rendering:auto}
.howto{margin:1.4vh 0 0;font-size:clamp(11px,3vh,15px);opacity:.88;line-height:1.35}
kbd{background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.35);border-radius:5px;padding:0 5px;font-family:inherit}
.levelsCol{display:flex;flex-direction:column;gap:1.4vh;min-width:250px;max-width:340px;width:36vw}
.levelsCol h2{margin:0;font-size:clamp(14px,3.6vh,20px);opacity:.9;font-weight:800}
.lvl{display:flex;align-items:center;gap:10px;width:100%;padding:1.5vh 12px;border-radius:14px;border:2px solid rgba(255,255,255,.75);background:rgba(7,26,92,.78);color:#fff;font:inherit;text-align:left;cursor:pointer}
.lvl:active{transform:scale(.98)}
.lvl .num{flex:0 0 auto;width:clamp(28px,8vh,40px);height:clamp(28px,8vh,40px);border-radius:10px;background:var(--yellow);color:var(--navy);display:flex;align-items:center;justify-content:center;font-weight:900;font-size:clamp(15px,4.4vh,22px)}
.lvl .info{flex:1;min-width:0}
.lvl .name{display:block;font-weight:800;font-size:clamp(13px,3.6vh,17px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lvl .meta{display:block;font-size:clamp(10px,2.8vh,13px);opacity:.8;margin-top:2px}
.lvl .bar{height:5px;border-radius:3px;background:rgba(255,255,255,.2);margin-top:5px;overflow:hidden}
.lvl .bar i{display:block;height:100%;background:var(--yellow)}
.lvl.locked{opacity:.5;cursor:default}
.lvl.locked .num{background:#8893b8}
.lvl.done{border-color:var(--yellow)}
.sitelink{align-self:center;color:#fff;opacity:.75;font-size:13px;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.4)}
.btn{display:inline-block;border:0;border-radius:14px;padding:12px 22px;margin:5px;font:inherit;font-weight:900;font-size:17px;letter-spacing:.4px;background:var(--yellow);color:var(--navy);box-shadow:0 4px 0 #b88f00;cursor:pointer;text-decoration:none;text-align:center}
.btn:active{transform:translateY(3px);box-shadow:0 1px 0 #b88f00}
.btn.big{font-size:clamp(20px,6vh,30px);padding:1.4vh 44px;margin-top:.5vh}
.btn.alt{background:#fff;color:var(--navy);box-shadow:0 4px 0 #9aa6d6}
.btn.small{font-size:13px;padding:8px 14px;margin:0}
.card{background:linear-gradient(180deg,#1243c4,#0a2a8c);border:3px solid #fff;border-radius:22px;padding:18px 24px;text-align:center;max-width:94vw;max-height:100%;overflow:auto;box-shadow:0 14px 40px rgba(0,0,0,.45);display:flex;flex-direction:column;align-items:center}
.card h2{margin:0 0 10px;font-size:clamp(20px,6vh,30px);font-weight:900}
.card.wide{max-width:640px;width:100%}
.card p{margin:4px 0 12px;opacity:.9}
.stats{display:flex;gap:10px;justify-content:center;width:100%}
.stats div{flex:1;background:rgba(0,0,0,.22);border-radius:12px;padding:6px 4px}
.stats small{display:block;font-size:12px;opacity:.8}
.stats b{font-size:clamp(18px,5vh,24px)}
.msg{min-height:1em;font-weight:700;color:var(--yellow)}
.row{display:flex;flex-wrap:wrap;justify-content:center}
.signature{display:flex;align-items:center;gap:10px;margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.3);width:100%;justify-content:center;flex-wrap:wrap}
.signature img{height:34px}
.signature div{text-align:left;line-height:1.15}
.signature strong{display:block;font-size:17px}
.signature span{font-size:11px;opacity:.85}
#hud{position:absolute;left:0;right:0;top:0;display:flex;align-items:center;gap:10px;padding:calc(8px + var(--sat)) calc(64px + var(--sar)) 0 calc(10px + var(--sal));z-index:4;pointer-events:none}
#hud .iconbtn{pointer-events:auto;position:static}
#progressWrap{flex:1;display:flex;align-items:center;gap:8px;justify-content:center}
#progress{width:min(46vw,380px);height:12px;border:2px solid #fff;border-radius:8px;background:rgba(0,0,0,.35);overflow:hidden}
#progressFill{height:100%;width:100%;background:linear-gradient(90deg,#ffe27a,var(--yellow));transform-origin:0 50%;transform:scaleX(0)}
#pct{font-weight:900;font-size:14px;min-width:40px;text-shadow:0 2px 0 rgba(0,0,0,.4)}
#counters{display:flex;gap:10px;font-size:15px;text-shadow:0 2px 0 rgba(0,0,0,.4)}
#counters span{display:flex;align-items:center;gap:3px}
#counters img{height:20px}
.iconbtn{flex:0 0 auto;width:40px;height:40px;border-radius:12px;border:2px solid rgba(255,255,255,.8);background:rgba(4,15,60,.55);display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer}
.iconbtn svg{width:22px;height:22px;fill:#fff;stroke:#fff}
#btnMute{position:absolute;top:calc(8px + var(--sat));right:calc(10px + var(--sar));z-index:9}
.phone{width:46px;height:78px;border:4px solid #fff;border-radius:10px;margin:4px auto 14px;position:relative;animation:rot 2.2s ease-in-out infinite}
.phone:after{content:"";position:absolute;bottom:5px;left:50%;width:12px;height:3px;margin-left:-6px;background:#fff;border-radius:2px}
@keyframes rot{0%,20%{transform:rotate(0)}50%,80%{transform:rotate(-90deg)}100%{transform:rotate(0)}}
@media (orientation:portrait){
  .titleWrap{flex-direction:column;gap:3vh}
  .levelsCol{width:100%;max-width:420px;min-width:0}
  .hero{height:clamp(120px,24vh,280px)}
  .logo{flex-direction:column;gap:4px}
  h1{font-size:min(10vw,52px);white-space:nowrap}
  .logoBulb{height:clamp(36px,6vh,64px)}
  .btn.big{font-size:26px;padding:12px 46px}
  .lvl{padding:12px}
  .howto{font-size:14px}
  #hud{gap:6px}
  #progress{width:28vw}
  #pct{min-width:32px;font-size:12px}
  #counters{font-size:12px;gap:5px}
  #counters img{height:16px}
}
@media (max-height:340px){.howto{display:none}}
