:root{--gold:#ffd34a;--gold-deep:#c9930f;--ink:#0b1226;--glass:#0e162e8c;--glass-hi:#ffffff1a;--line:#ffffff29;--ok:#4ade80;--bad:#ff5c6c;--font:"Fredoka", ui-rounded, "SF Pro Rounded", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, sans-serif;--ease-pop:cubic-bezier(.3, 1.6, .5, 1);--ease-out:cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body{background:var(--ink);color:#fff;-webkit-user-select:none;user-select:none;touch-action:none;width:100%;height:100%;font-family:var(--font);overflow:hidden}#game canvas{display:block}.hidden{display:none!important}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}#hud{pointer-events:none;position:fixed;inset:0}#crosshair{mix-blend-mode:difference;width:40px;height:40px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#crosshair:before,#crosshair:after{content:"";background:#fff;border-radius:1px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#crosshair:before{width:16px;height:2px}#crosshair:after{width:2px;height:16px}#crosshair svg{width:100%;height:100%;transform:rotate(-90deg)}#dig-ring{fill:none;stroke:#fff;stroke-width:3px;stroke-linecap:round;stroke-dasharray:88;stroke-dashoffset:88px}#hotbar{bottom:max(16px, env(safe-area-inset-bottom));background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(12px)saturate(1.4);pointer-events:auto;border-radius:18px;gap:5px;padding:6px;display:flex;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #00000059}.slot{width:54px;height:54px;transition:transform .18s var(--ease-pop), background .15s;background:#ffffff0f;border:1px solid #ffffff14;border-radius:12px;place-items:center;display:grid;position:relative}.slot img{width:40px;height:40px;image-rendering:pixelated;filter:drop-shadow(0 3px 2px #00000059)}.slot.sel{box-shadow:0 0 0 2px var(--gold), 0 0 22px #ffd34a73;background:#fff3;border-color:#ffffffe6;transform:translateY(-5px)scale(1.06)}.slot .n{text-shadow:0 1px 2px #000,0 0 4px #000;font-size:13px;font-weight:700;position:absolute;bottom:2px;right:5px}.slot .k{opacity:.45;font-size:10px;font-weight:600;position:absolute;top:3px;left:6px}#item-name{background:var(--glass);backdrop-filter:blur(8px);opacity:0;transition:opacity .35s, transform .35s var(--ease-out);border-radius:999px;padding:5px 14px;font-size:16px;font-weight:700;position:absolute;bottom:100px;left:50%;transform:translate(-50%,6px)}#item-name.show{opacity:1;transition:opacity .1s, transform .25s var(--ease-pop);transform:translate(-50%)}#hearts{filter:drop-shadow(0 2px 2px #00000080);gap:1px;font-size:20px;display:flex;position:absolute;bottom:96px;left:50%;transform:translate(-50%)}#hearts .h.empty{opacity:.22;filter:grayscale()}#hearts.hit{animation:.35s shake}@keyframes shake{20%{transform:translate(-54%)}60%{transform:translate(-46%)}}#info{text-shadow:0 1px 2px #000;opacity:.85;white-space:pre;font-variant-numeric:tabular-nums;font-family:ui-monospace,Menlo,monospace;font-size:12px;line-height:1.6;position:absolute;top:12px;left:14px}#topbar{top:max(14px, env(safe-area-inset-top));text-align:center;flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;left:50%;transform:translate(-50%)}#timer{letter-spacing:.5px;font-variant-numeric:tabular-nums;background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(10px);border-radius:999px;min-width:120px;padding:4px 20px;font-size:30px;font-weight:700}#cp-info{opacity:.85;background:#00000040;border-radius:999px;padding:2px 12px;font-size:13px;font-weight:600}#split{opacity:0;text-shadow:0 2px 8px #0006;font-size:22px;font-weight:700;transition:opacity .4s,transform .4s;transform:translateY(-6px)scale(.9)}#split.show{opacity:1;transition:opacity .1s, transform .3s var(--ease-pop);transform:none}#split.fast{color:var(--ok)}#split.slow{color:var(--bad)}#toast{background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(10px);opacity:0;white-space:nowrap;border-radius:999px;padding:10px 24px;font-size:24px;font-weight:700;transition:opacity .4s,transform .4s;position:absolute;top:24%;left:50%;transform:translate(-50%,-50%)scale(.85)}#toast.show{opacity:1;transition:opacity .1s, transform .3s var(--ease-pop);transform:translate(-50%,-50%)scale(1)}#banner{text-align:center;opacity:0;pointer-events:none;position:absolute;top:15%;left:0;right:0}#banner b{letter-spacing:6px;text-transform:uppercase;color:var(--gold);font-size:18px;font-weight:600;display:block}#banner span{text-shadow:0 6px 30px #00000073;font-size:clamp(36px,7vw,64px);font-weight:700;display:block}#banner.show{animation:banner 2.6s var(--ease-out) both}@keyframes banner{0%{opacity:0;letter-spacing:12px;transform:translateY(20px)}15%{opacity:1;letter-spacing:normal;transform:none}75%{opacity:1}to{opacity:0;transform:translateY(-14px)}}#count{opacity:0;color:#fff;text-shadow:0 0 40px #ffd34ab3,0 8px #00000040;pointer-events:none;font-size:140px;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#count.show{animation:count .9s var(--ease-out) both}@keyframes count{0%{opacity:0;transform:translate(-50%,-50%)scale(2.2)}25%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(.7)}}#fade{background:var(--ink);opacity:0;pointer-events:none;z-index:5;transition:opacity .25s;position:fixed;inset:0}#fade.on{opacity:1;pointer-events:auto}#touch-ui{display:none}.touch #touch-ui{display:block}.touch #hotbar{gap:3px;padding:4px;bottom:8px}.touch .slot{width:42px;height:42px}.touch .slot img{width:30px;height:30px}.touch .slot .k{display:none}#stick{backdrop-filter:blur(6px);pointer-events:auto;background:radial-gradient(circle,#ffffff0f,#ffffff29);border:1.5px solid #ffffff4d;border-radius:50%;width:140px;height:140px;position:absolute;bottom:90px;left:34px}#stick .knob{background:#ffffff8c;border-radius:50%;width:60px;height:60px;margin:-30px;position:absolute;top:50%;left:50%;box-shadow:0 4px 12px #0000004d}.tbtn{backdrop-filter:blur(6px);pointer-events:auto;background:#ffffff24;border:1.5px solid #ffffff4d;border-radius:50%;place-items:center;width:64px;height:64px;font-size:26px;transition:transform .1s;display:grid;position:absolute}.tbtn.on{background:#ffffff6b;transform:scale(.92)}.tbtn.big{width:86px;height:86px;font-size:34px;bottom:96px;right:30px}#t-down{bottom:74px;right:126px}#t-break{bottom:198px;right:40px}#t-place{bottom:162px;right:126px}.tbtn.small{width:46px;height:46px;font-size:18px}#t-menu{top:14px;right:14px}#t-inv{top:14px;right:68px}#t-fly{top:14px;right:122px}#t-view{top:14px;right:176px}#screens>.screen{animation:screenIn .35s var(--ease-out) both;flex-direction:column;justify-content:safe center;align-items:center;padding:28px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}@keyframes screenIn{0%{opacity:0}}.screen.dim{-webkit-backdrop-filter:blur(8px)saturate(1.2);background:radial-gradient(#080c1c73,#080c1ccc)}.screen.title{background:radial-gradient(at 50% 30%,#0a14320d,#060a1a8c 75%)}.logo{flex-wrap:wrap;justify-content:center;gap:.28em;font-size:clamp(48px,10vw,104px);font-weight:700;line-height:1;display:flex}.logo i{animation:float 3.2s ease-in-out infinite, drop .7s var(--ease-pop) both;animation-delay:calc(var(--i) * -.28s), calc(var(--i) * 50ms);font-style:normal;display:inline-block}.logo .l1 i{color:var(--gold);text-shadow:0 1px #f0b92a,0 2px #e2a71c,0 3px #d3970f,0 4px #c08608,0 5px #a87204,0 6px #8f5f02,0 12px 18px #00000073}.logo .l2 i{color:#fff;text-shadow:0 1px #dfe8ff,0 2px #c7d4f5,0 3px #aebfeb,0 4px #94a9de,0 5px #7b93cf,0 6px #6179bb,0 12px 18px #00000073}@keyframes float{50%{transform:translateY(-6px)}}@keyframes drop{0%{opacity:0;transform:translateY(-60px)rotate(-8deg)}}.sub{opacity:.85;letter-spacing:1px;animation:rise .6s var(--ease-out) .35s both;text-shadow:0 2px 8px #00000080;margin-top:16px;font-size:17px;font-weight:500}@keyframes rise{0%{opacity:0;transform:translateY(14px)}}.modes{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;width:min(960px,100%);margin-top:40px;display:grid}.mode{text-align:left;-webkit-backdrop-filter:blur(14px)saturate(1.3);transition:transform .35s var(--ease-pop), box-shadow .3s;animation:rise .6s var(--ease-out) both;animation-delay:calc(.45s + var(--d) * 80ms);border:1px solid #ffffff38;border-radius:26px;padding:22px 22px 20px;position:relative;overflow:hidden;box-shadow:0 20px 40px #0000004d,inset 0 1px #ffffff40}.mode:after{content:"";transition:transform .7s var(--ease-out);pointer-events:none;background:linear-gradient(115deg,#0000 35%,#ffffff47 50%,#0000 65%);position:absolute;inset:0;transform:translate(-120%)}.mode:hover{transform:translateY(-8px)scale(1.02);box-shadow:0 30px 60px #0006,inset 0 1px #ffffff59}.mode:hover:after{transform:translate(120%)}.mode:hover .ico{transform:translateY(-6px)rotate(-6deg)scale(1.08)}.mode .ico{width:72px;height:72px;image-rendering:pixelated;filter:drop-shadow(0 8px 8px #00000059);transition:transform .4s var(--ease-pop)}.mode h3{margin-top:10px;font-size:28px;font-weight:700}.mode p{opacity:.85;margin-top:6px;font-size:14px;line-height:1.5}.mode .meta{opacity:1;margin-top:10px;font-size:13px;font-weight:600}.mode .prog{background:#00000040;border-radius:3px;height:6px;margin-top:12px;overflow:hidden}.mode .prog i{background:linear-gradient(90deg, var(--gold), #fff2b0);border-radius:3px;height:100%;display:block}.mode.c1{background:linear-gradient(150deg,#6ec8469e,#286e3c80)}.mode.c2{background:linear-gradient(150deg,#f0964699,#8c3c2880)}.mode.c3{background:linear-gradient(150deg,#5096ffa8,#6e3cd28c)}.row{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:24px;display:flex}.btn{backdrop-filter:blur(10px);transition:transform .2s var(--ease-pop), background .15s;background:#ffffff1f;border:1px solid #fff3;border-radius:16px;padding:13px 24px;font-size:17px;font-weight:600}.btn:hover{background:#ffffff38;transform:translateY(-2px)}.btn:active{transform:translateY(1px)scale(.98)}.btn.primary{background:linear-gradient(180deg, #ffe07a, var(--gold));color:#3a2a00;box-shadow:0 5px 0 var(--gold-deep), 0 10px 24px #ffbe2859;border-color:#fff0b0}.btn.primary:hover{background:linear-gradient(#ffe993,#ffdb5e)}.btn.primary:active{box-shadow:0 2px 0 var(--gold-deep);transform:translateY(3px)}.btn.danger{background:#ff505a33;border-color:#ff788266}h2{text-align:center;text-shadow:0 4px 20px #00000059;font-size:38px;font-weight:700}.card{background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(16px)saturate(1.3);text-align:center;animation:cardIn .45s var(--ease-pop) both;border-radius:28px;padding:30px 34px;box-shadow:0 30px 60px #00000059,inset 0 1px #ffffff26}@keyframes cardIn{0%{opacity:0;transform:translateY(24px)scale(.94)}}.panel{background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(14px);border-radius:22px;width:min(580px,100%);margin-top:20px;padding:8px 22px}.set{border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;gap:14px;padding:13px 0;display:flex}.set:last-child{border:0}.set label{font-weight:600}.set input[type=range]{width:200px;accent-color:var(--gold)}.seg{background:#0000004d;border-radius:12px;padding:3px;display:flex}.seg button{border-radius:9px;padding:7px 13px;font-size:14px;font-weight:600;transition:background .15s}.seg button.on{background:var(--gold);color:#3a2a00}.levels{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px;width:min(900px,100%);margin-top:26px;display:grid}.lvl{text-align:left;background:linear-gradient(150deg, hsla(var(--hue), 80%, 60%, .55), hsla(calc(var(--hue) + 40), 70%, 35%, .5));backdrop-filter:blur(12px);transition:transform .3s var(--ease-pop);animation:rise .5s var(--ease-out) both;animation-delay:calc(var(--d) * 35ms);border:1px solid #fff3;border-radius:20px;padding:16px;position:relative;overflow:hidden;box-shadow:0 12px 26px #00000040}.lvl:hover:not(:disabled){transform:translateY(-5px)scale(1.03)}.lvl:disabled{filter:grayscale(.85)brightness(.7);cursor:default}.lvl.cur{box-shadow:0 0 0 2px var(--gold), 0 0 30px #ffd34a80, 0 12px 26px #00000040}.lvl.cur:before{content:"";background:linear-gradient(115deg,#0000 30%,#ffffff40 50%,#0000 70%);animation:2.4s ease-in-out infinite sweep;position:absolute;inset:0}@keyframes sweep{0%{transform:translate(-120%)}60%,to{transform:translate(120%)}}.lvl b{font-size:34px;font-weight:700;line-height:1}.lvl .nm{margin-top:4px;font-size:14px;font-weight:600}.lvl .st{letter-spacing:2px;margin-top:8px;font-size:16px}.lvl .bt{opacity:.8;margin-top:2px;font-size:12px;font-weight:500}.star-off{opacity:.22;filter:grayscale()}.big-stars{letter-spacing:8px;margin-top:12px;font-size:60px}.big-stars span{animation:star .55s var(--ease-pop) both;filter:drop-shadow(0 0 16px #ffd34ab3);display:inline-block}.big-stars span.star-off{filter:grayscale()}@keyframes star{0%{opacity:0;transform:scale(0)rotate(-90deg)}}.bigtime{font-variant-numeric:tabular-nums;margin-top:6px;font-size:72px;font-weight:700;line-height:1}.bigtime small{opacity:.6;margin-left:4px;font-size:28px}.stat{opacity:.9;margin-top:10px;font-size:18px;font-weight:600}.stat.best{color:var(--gold);font-size:22px;animation:1.2s ease-in-out infinite pulse}.stat.best small{color:var(--ok);font-size:16px}@keyframes pulse{50%{transform:scale(1.06)}}.keys{opacity:.75;text-align:center;max-width:820px;animation:rise .6s var(--ease-out) .7s both;margin-top:30px;font-size:13px;line-height:2}kbd{background:#ffffff24;border-bottom:2px solid #ffffff14;border-radius:6px;padding:1px 7px;font-family:inherit;font-size:12px;font-weight:600;display:inline-block}.inv{background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(14px);border-radius:22px;grid-template-columns:repeat(auto-fill,minmax(60px,1fr));gap:7px;width:min(780px,100%);max-height:56vh;margin-top:18px;padding:14px;display:grid;overflow-y:auto}.inv .slot{cursor:pointer;width:100%;height:60px}.inv .slot:hover{background:#ffffff38;transform:translateY(-3px)scale(1.06)}.inv-hint{opacity:.7;margin-top:12px;font-size:13px}#inv-hotbar{background:var(--glass);border:1px solid var(--line);border-radius:18px;gap:5px;margin-top:16px;padding:6px;display:flex}#loading{background:radial-gradient(ellipse at 50% 40%, #1b3576, var(--ink));z-index:10;flex-direction:column;justify-content:center;align-items:center;transition:opacity .5s;display:flex;position:fixed;inset:0}#loading .logo span{display:inline-block}#loading .l1{color:var(--gold)}#loading .bar{background:#ffffff1f;border-radius:4px;width:220px;height:8px;margin-top:30px;overflow:hidden}#loading .bar i{background:var(--gold);border-radius:4px;width:30%;height:100%;animation:1s ease-in-out infinite alternate load;display:block}@keyframes load{to{margin-left:70%}}@media (width<=640px){.modes{gap:12px;margin-top:26px}.mode{padding:16px}.mode .ico{width:52px;height:52px}.mode h3{font-size:22px}.keys{display:none}.card{padding:22px 18px}.bigtime{font-size:56px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}#screens>.screen.photo{pointer-events:none;padding:18px 16px calc(18px + env(safe-area-inset-bottom));justify-content:space-between;animation:none}.screen.photo>*{pointer-events:auto}.photo-tip{opacity:.85;background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);border-radius:999px;padding:8px 16px;font-size:14px}.photo-bar{background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(16px)saturate(1.3);max-width:100%;animation:barUp .45s var(--ease-pop) both;border-radius:24px;flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;padding:12px 16px;display:flex;box-shadow:0 18px 50px #00000059}.photo-bar label{align-items:center;gap:8px;font-size:18px;display:flex}.photo-bar input[type=range]{width:120px;accent-color:var(--gold)}.photo-bar .chips{gap:6px;display:flex}.chip{transition:background .15s, transform .2s var(--ease-pop);background:#ffffff1a;border:1px solid #ffffff2e;border-radius:999px;padding:7px 13px;font-size:14px;font-weight:600}.chip:hover{background:#fff3;transform:translateY(-1px)}.chip.on{color:#1a2140;background:#fff;border-color:#fff}.photo-bar .shutter{border-radius:999px;padding:10px 20px;font-size:22px}.photo-bar .btn:not(.shutter){border-radius:999px;padding:10px 16px}@keyframes barUp{0%{opacity:0;transform:translateY(40px)}}#fade.shutter{opacity:.85;background:#fff;transition:none}@media (width<=700px){.photo-bar input[type=range]{width:90px}.photo-bar{gap:10px;padding:10px}}#hud{transition:opacity .6s var(--ease-out)}#hud.intro{opacity:0;transition:none}.mode.c4{background:linear-gradient(150deg,#ff5fa899,#7832c885)}.lobby{width:min(520px,100%)}.lobby .hint{opacity:.78;margin-top:8px;font-size:14px;line-height:1.6}.lobby .field{align-items:center;gap:12px;margin-top:20px;font-weight:600;display:flex}.lobby input{min-width:0;font:inherit;color:#fff;background:#00000047;border:1px solid #fff3;border-radius:14px;outline:none;flex:1;padding:12px 16px;font-size:18px;font-weight:600;transition:border-color .15s,box-shadow .15s}.lobby input:focus{border-color:var(--gold);box-shadow:0 0 0 3px #ffd34a40}.lobby input::placeholder{color:#fff6}.swatches{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:16px;display:flex}.swatch{background:var(--c);width:36px;height:36px;transition:transform .2s var(--ease-pop), border-color .15s;border:3px solid #0000;border-radius:11px;box-shadow:inset 0 -5px #00000038,0 4px 10px #0000004d}.swatch:hover{transform:translateY(-3px)}.swatch.on{border-color:#fff;transform:scale(1.12)}.lobby .row{margin-top:20px}.join-row{gap:10px;margin-top:14px;display:flex}.join-row input{text-align:center;letter-spacing:6px;text-transform:uppercase;font-family:ui-monospace,Menlo,monospace}.net-msg{min-height:22px;color:var(--gold);margin-top:12px;font-size:14px;font-weight:600}.room-code{flex-direction:column;align-items:center;margin-top:12px;display:flex}.room-code small{opacity:.65;letter-spacing:1px;font-size:12px}.room-code b{letter-spacing:10px;color:var(--gold);user-select:all;margin-left:10px;font-family:ui-monospace,Menlo,monospace;font-size:40px}.room-code span{opacity:.8;font-size:14px}#net-info{top:max(14px, env(safe-area-inset-top));background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(10px);border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600;position:absolute;right:14px}#chat{flex-direction:column;gap:6px;width:min(420px,100vw - 28px);display:flex;position:absolute;bottom:96px;left:14px}#chat .log{flex-direction:column;gap:3px;max-height:34vh;display:flex;overflow:hidden;mask-image:linear-gradient(#0000,#000 18%)}#chat .msg{text-shadow:0 1px 2px #00000080;overflow-wrap:anywhere;max-width:100%;animation:msgIn .3s var(--ease-pop) both;background:#0a0e1e80;border-radius:10px;align-self:flex-start;padding:4px 10px;font-size:15px;line-height:1.4;transition:opacity .8s}#chat .msg b{font-weight:700}#chat .msg.sys{opacity:.9;background:#0a0e1e59;font-style:italic}#chat .msg.old{opacity:0}#chat input{font:inherit;color:#fff;pointer-events:auto;background:#0a0e1eb8;border:1px solid #ffffff40;border-radius:12px;outline:none;padding:10px 14px;font-size:16px;display:none}#chat.open input{display:block}#chat.open .log{pointer-events:auto;overflow-y:auto}#chat.open .msg.old{opacity:1}@keyframes msgIn{0%{opacity:0;transform:translate(-12px)}}@media (width<=640px){#chat{width:calc(100vw - 180px);bottom:150px}#chat .msg{font-size:13px}}#net-info.bad{color:var(--gold);border-color:#ffd34a80;animation:1.2s ease-in-out infinite pulse}@media (height<=600px){#screens>.screen{padding:14px 16px}.logo{font-size:clamp(34px,9vh,64px)}.sub{margin-top:8px;font-size:14px}.modes{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-top:16px}.mode{border-radius:20px;padding:12px 14px}.mode .ico{width:40px;height:40px}.mode h3{margin-top:4px;font-size:20px}.mode p:not(.meta){display:none}.mode .meta{margin-top:6px}.keys{display:none}.card{padding:18px 24px}.lobby .hint{margin-top:4px;font-size:12px}.lobby .field,.lobby .row,.swatches,.join-row{margin-top:10px}.lobby input{padding:8px 14px;font-size:16px}.swatch{width:30px;height:30px}.net-msg{min-height:16px;margin-top:6px}}
