*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
:root{--u:3px;--f:"Nunito","Varela Round","Arial Rounded MT Bold","Trebuchet MS","Segoe UI",Roboto,Helvetica,Arial,sans-serif}
html,body{width:100%;height:100%;background:#07071a;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none;font-family:var(--f);color:#fff}
#wrap{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}
#game{display:block;width:100%;height:100%;background:#14143a}
#overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none;padding:2%;line-height:1.3;-webkit-font-smoothing:antialiased}
#overlay.show{background:rgba(10,8,30,.5)}
.pre{font-size:calc(var(--u)*18);letter-spacing:.15em;color:#fff2b0;text-shadow:0 var(--u) 0 #8a2f4a,var(--u) calc(var(--u)*2) 0 #1a1024;line-height:1.1}
.logo{font-size:calc(var(--u)*27);line-height:1.15;color:#ffd166;letter-spacing:.06em;
 text-shadow:0 var(--u) 0 #e0662a,0 calc(var(--u)*2) 0 #8a2f4a,var(--u) calc(var(--u)*3) 0 #1a1024,calc(var(--u)*-1) calc(var(--u)*3) 0 #1a1024,0 0 calc(var(--u)*10) rgba(255,150,90,.55)}
.sub{font-size:calc(var(--u)*9);color:#bff8ff;margin-top:calc(var(--u)*2);text-shadow:var(--u) var(--u) 0 #1a1024}
.hint{margin-top:calc(var(--u)*6);font-size:calc(var(--u)*9);text-shadow:var(--u) var(--u) 0 #1a1024;animation:blink 1.1s steps(2) infinite}
.small{margin-top:calc(var(--u)*3);font-size:calc(var(--u)*9);line-height:1.35;color:#ffe9c8;text-shadow:var(--u) var(--u) 0 #1a1024}
.small.left{text-align:left}
.big{font-size:calc(var(--u)*27);line-height:1.1;color:#ffd166;text-shadow:0 calc(var(--u)*2) 0 #8a2f4a,var(--u) calc(var(--u)*3) 0 #1a1024}
.big.sm{font-size:calc(var(--u)*18)}
@keyframes blink{50%{opacity:.25}}
#topbtns{position:absolute;right:6px;top:6px;display:flex;gap:6px;z-index:5}
#topbtns button{width:38px;height:32px;border:2px solid #1a1024;border-radius:6px;background:rgba(255,255,255,.18);color:#fff;font-family:var(--f);font-size:18px;cursor:pointer;box-shadow:0 3px 0 rgba(0,0,0,.4)}
#topbtns button.off{opacity:.45;text-decoration:line-through}
#touch{position:fixed;inset:0;pointer-events:none;display:none;z-index:4}
body.touch #touch{display:block}
#touch{--ts:1;--ta:.72}
.tcl{position:absolute;bottom:calc(4px + env(safe-area-inset-bottom));pointer-events:auto;touch-action:none;opacity:var(--ta);-webkit-touch-callout:none}
#tcL{left:calc(4px + env(safe-area-inset-left));width:calc(118px*var(--ts));height:calc(118px*var(--ts));opacity:calc(var(--ta)*.85)}
#tcR{right:calc(4px + env(safe-area-inset-right));width:calc(112px*var(--ts));height:calc(112px*var(--ts))}
.tb{position:absolute;display:flex;align-items:center;justify-content:center;pointer-events:none}
#tJump{left:calc(4px*var(--ts));top:calc(4px*var(--ts));width:calc(104px*var(--ts));height:calc(104px*var(--ts))}
.pad{position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 50% 36%,rgba(160,200,255,.32),rgba(110,130,220,.14) 58%,rgba(30,20,60,.28));border:3px solid rgba(220,232,255,.78);box-shadow:0 4px 0 rgba(26,16,36,.55),inset 0 3px 0 rgba(255,255,255,.28),inset 0 -4px 0 rgba(26,16,36,.3)}
.pad::before{content:'';position:absolute;left:16%;right:16%;top:7%;height:22%;border-radius:50%;background:linear-gradient(180deg,rgba(255,255,255,.3),rgba(255,255,255,0))}
.pad .nub{position:absolute;left:39%;top:36%;width:22%;height:22%;border-radius:50%;background:radial-gradient(circle at 45% 35%,rgba(255,255,255,.35),rgba(26,16,36,.25));border:2px solid rgba(220,232,255,.4)}
.seg{width:34%;height:34%}
#tLeft{left:3%;top:30%}#tRight{right:3%;top:30%}#tDown{left:33%;bottom:2%}
.seg .cap{border-radius:50%;background:none;border:0;box-shadow:none}
.seg .cap svg{width:58%;height:58%}
.seg.on .cap{transform:scale(.92);background:radial-gradient(circle,rgba(255,236,160,.75),rgba(255,209,102,.25) 70%,rgba(255,209,102,0));border:0;box-shadow:0 0 16px 4px rgba(255,209,102,.6)}
.cap{position:relative;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:28%;
 background:linear-gradient(180deg,rgba(255,255,255,.26),rgba(255,255,255,.07) 55%,rgba(26,16,36,.18));border:3px solid rgba(255,246,224,.72);
 box-shadow:0 4px 0 rgba(26,16,36,.6),inset 0 3px 0 rgba(255,255,255,.28),inset 0 -4px 0 rgba(26,16,36,.32);transition:transform 60ms,background 60ms,box-shadow 60ms}
.cap svg{width:50%;height:50%;filter:drop-shadow(0 2px 0 rgba(26,16,36,.55))}
.jb .cap{border-radius:50%;background:radial-gradient(circle at 50% 38%,rgba(255,150,190,.5),rgba(255,111,154,.22) 60%,rgba(120,30,80,.25));border-color:rgba(255,220,232,.85)}
.jb .cap svg{width:46%;height:40%;margin-top:-4%}
.lbl{font-family:var(--f);font-size:calc(12px*var(--ts));letter-spacing:.08em;color:#fff6e0;text-shadow:0 2px 0 #1a1024;margin-top:2%}
.dn .cap{opacity:.6}
.dn .cap svg{width:52%;height:52%}
body.onpipe .dn .cap{opacity:1;background:radial-gradient(circle,rgba(255,209,102,.6),rgba(255,209,102,0) 75%);animation:pipeglow .7s ease-in-out infinite alternate}
@keyframes pipeglow{to{box-shadow:0 4px 0 rgba(26,16,36,.6),0 0 16px 4px rgba(255,209,102,.85)}}
.tb.on .cap{transform:translateY(3px) scale(.94);background:rgba(255,209,102,.55);border-color:#ffd166;box-shadow:0 1px 0 rgba(26,16,36,.6),0 0 18px 3px rgba(255,209,102,.75),inset 0 3px 0 rgba(255,255,255,.35)}
.jb.on .cap{background:radial-gradient(circle,rgba(255,236,160,.75),rgba(255,140,170,.5));border-color:#fff2b0}
.tb.hit::after{content:'';position:absolute;inset:-4px;border-radius:50%;border:3px solid rgba(255,230,140,.9);animation:ring .28s ease-out forwards;pointer-events:none}
@keyframes ring{from{transform:scale(.85);opacity:.9}to{transform:scale(1.28);opacity:0}}
.tcl::before{content:"";position:absolute;inset:calc(-20px*var(--ts))}
.jb .cap::before,.fb .cap::before{content:'';position:absolute;left:18%;right:18%;top:7%;height:22%;border-radius:50%;background:linear-gradient(180deg,rgba(255,255,255,.3),rgba(255,255,255,0));pointer-events:none}
body.touch.tprev #touch{display:block}
body.tprev .tcl{pointer-events:none}
#rotate{position:fixed;inset:0;background:#14143a;display:none;align-items:center;justify-content:center;text-align:center;font-size:24px;z-index:10;line-height:1.6}
@media (orientation:portrait){body.touch #rotate{display:flex}}
#overlay.menu{pointer-events:auto}
.menu{display:flex;flex-direction:column;align-items:center;gap:calc(var(--u)*2);margin-top:calc(var(--u)*5)}
.mi{font-size:calc(var(--u)*9);padding:calc(var(--u)*1.5) calc(var(--u)*8) calc(var(--u)*1);background:rgba(20,16,50,.6);color:#ffe9c8;border:var(--u) solid rgba(255,255,255,.2);min-width:calc(var(--u)*130);cursor:pointer;text-shadow:var(--u) var(--u) 0 #1a1024;
 clip-path:polygon(0 var(--u),var(--u) var(--u),var(--u) 0,calc(100% - var(--u)) 0,calc(100% - var(--u)) var(--u),100% var(--u),100% calc(100% - var(--u)),calc(100% - var(--u)) calc(100% - var(--u)),calc(100% - var(--u)) 100%,var(--u) 100%,var(--u) calc(100% - var(--u)),0 calc(100% - var(--u)))}
.mi.sel{background:#ffd166;color:#1a1024;border-color:#1a1024;text-shadow:none}
.mi.sel::before{content:'▶ '}
.mi.locked{opacity:.5}
.adj{display:inline-block;padding:0 calc(var(--u)*3);margin:0 calc(var(--u)*1);background:rgba(0,0,0,.28)}
.note{margin-top:calc(var(--u)*3);color:#ffd166;font-size:calc(var(--u)*9);text-shadow:var(--u) var(--u) 0 #1a1024}
.tiny{margin-top:calc(var(--u)*4);font-size:calc(var(--u)*9);color:#b8b0f0;text-shadow:var(--u) var(--u) 0 #1a1024}
.tbl{margin-top:calc(var(--u)*3);border-collapse:collapse;font-size:calc(var(--u)*9);text-shadow:var(--u) var(--u) 0 #1a1024}
.tbl td{padding:0 calc(var(--u)*5);color:#ffe9c8;text-align:left}.tbl tr:first-child td{color:#ffd166}
.tbl tr.me td{color:#1a1024;background:#bff8ff;text-shadow:none}
.tally td:last-child{text-align:right;color:#bff8ff}
.slots{display:flex;gap:calc(var(--u)*2);margin-top:calc(var(--u)*4)}
.slot{font-size:calc(var(--u)*18);width:calc(var(--u)*14);padding-bottom:var(--u);color:#fff;border-bottom:var(--u) solid #6a6aa8;cursor:pointer}
.slot.cur{color:#ffd166;border-color:#ffd166;animation:blink 1s steps(2) infinite}
.npad{display:flex;gap:calc(var(--u)*3);margin-top:calc(var(--u)*5)}
.nb,.mb{font-size:calc(var(--u)*9);padding:calc(var(--u)*2) calc(var(--u)*5);background:rgba(20,16,50,.75);border:var(--u) solid rgba(255,255,255,.3);cursor:pointer;pointer-events:auto;text-shadow:var(--u) var(--u) 0 #1a1024}
.nb.ok,.mb.go{background:#ffd166;color:#1a1024;text-shadow:none;border-color:#1a1024}
#overlay.maps{justify-content:flex-end;align-items:flex-end;pointer-events:none}
.maptop{position:absolute;left:calc(var(--u)*5);top:calc(var(--u)*5);display:flex;gap:calc(var(--u)*7);font-size:calc(var(--u)*9);background:rgba(20,16,50,.55);padding:calc(var(--u)*2) calc(var(--u)*4);text-shadow:var(--u) var(--u) 0 #1a1024}
.mapinfo{background:rgba(20,16,50,.72);padding:calc(var(--u)*3) calc(var(--u)*6);border:var(--u) solid rgba(255,255,255,.2);margin:0 calc(var(--u)*2) calc(var(--u)*2) 0;min-width:calc(var(--u)*120)}
.mapinfo .tiny{margin-top:var(--u)}
.mapname{font-size:calc(var(--u)*9);color:#ffd166;text-shadow:var(--u) var(--u) 0 #1a1024}
.mapbtns{display:flex;gap:calc(var(--u)*4);justify-content:center;margin-top:calc(var(--u)*3)}
body.inmenu #touch{display:none}
body.title #bPause{display:none}
.dev{position:absolute;left:0;right:0;bottom:calc(var(--u)*2);font-size:calc(var(--u)*9);color:#c8c0ff;text-decoration:none;text-shadow:var(--u) var(--u) 0 #1a1024;opacity:.9;pointer-events:auto;width:max-content;margin:0 auto}
.dev:hover,.lnk:hover{color:#ffd166}
.lnk{color:#bff8ff;text-decoration:underline;pointer-events:auto}
#overlay.win{background:none;justify-content:center}
#overlay.win.left{align-items:flex-start}
#overlay.win.right{align-items:flex-end}
.winbox{background:rgba(20,16,50,.8);border:var(--u) solid rgba(255,255,255,.25);padding:calc(var(--u)*4) calc(var(--u)*6);margin:0 calc(var(--u)*4);max-width:46%}
.winbox .big.sm{font-size:calc(var(--u)*13)}
.winbox .hint{margin-top:calc(var(--u)*3)}
#overlay.maps{justify-content:flex-start;align-items:flex-start}
#overlay.maps .mapinfo{margin:calc(var(--u)*24) 0 0 calc(var(--u)*5);min-width:calc(var(--u)*112)}
#tFire{display:none;left:calc(-62px*var(--ts));top:calc(-40px*var(--ts));width:calc(66px*var(--ts));height:calc(66px*var(--ts))}
body.canfire #tFire{display:flex;pointer-events:auto}
.fb .lbl{font-size:calc(9px*var(--ts))}
.fb .cap{border-radius:50%;box-shadow:0 4px 0 rgba(26,16,36,.55),inset 0 3px 0 rgba(255,255,255,.28),inset 0 -4px 0 rgba(26,16,36,.3);background:radial-gradient(circle at 50% 38%,rgba(255,230,140,.55),rgba(255,190,80,.25) 60%,rgba(120,70,20,.25));border-color:rgba(255,240,190,.9);animation:fbIn .3s ease-out}
.fb .cap svg{width:40%;height:40%;margin-top:-6%}
.fb.on .cap{background:radial-gradient(circle,rgba(255,255,220,.85),rgba(255,200,90,.55));border-color:#fff}
@keyframes fbIn{from{transform:scale(.3);opacity:0}to{transform:scale(1);opacity:1}}
#overlay.maps.mr{align-items:flex-end}
#overlay.maps.mb{justify-content:flex-end}
#overlay.maps.mr .mapinfo{margin-left:0;margin-right:calc(var(--u)*5)}
#overlay.maps.mb .mapinfo{margin-top:0;margin-bottom:calc(var(--u)*5)}
#overlay.story{background:none;justify-content:flex-start;padding-top:calc(var(--u)*8)}
#overlay.story .small{background:rgba(16,10,40,.78);border:calc(var(--u)*1) solid #ffd166;border-radius:calc(var(--u)*3);padding:calc(var(--u)*4) calc(var(--u)*8);text-align:center;line-height:1.5}
#overlay .s6{margin-top:calc(var(--u)*3);color:#ffb0d6}
#overlay.endov{background:none;justify-content:flex-end;padding-bottom:calc(var(--u)*2)}
#overlay.endov .small{background:rgba(16,10,40,.7);border-radius:calc(var(--u)*3);padding:calc(var(--u)*2) calc(var(--u)*6)}
