@font-face{font-family:Starbound Title;src:url(/fonts/starbound-title.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}:root{--ol: #3A2E4A;--pink: #FF8FA8;--cream: #FFF1D0;--paper: #FFF8EE;--gold: #FFD86B;--p1: #FFB547;--p2: #4FB4FF;--danger: #F2665A;--safe: #7ED9A0}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;overflow:hidden;background:#1b1433;font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;color:var(--ol);-webkit-user-select:none;user-select:none}canvas#game{position:fixed;inset:0;width:100vw;height:100vh;display:block}.menu-sky{position:fixed;inset:0;width:100%;height:100%;pointer-events:none}#ui{position:fixed;inset:0;pointer-events:none}#ui>*{pointer-events:auto}.screen{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;animation:fade .22s ease}.screen.dim{background:#1b14338c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}@keyframes fade{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:none}}.card{background:var(--paper);border:3px solid var(--ol);border-radius:24px;box-shadow:0 6px #3a2e4a2e;padding:22px 26px}.home-heading{position:absolute;top:14%;left:0;width:100%;display:flex;flex-direction:column;align-items:center;gap:20px}h1.title{display:flex;gap:6px;margin:0;font-family:Starbound Title,PingFang SC,sans-serif;font-size:92px;font-weight:400;letter-spacing:0;line-height:1.15;color:#fff1d0;text-shadow:0 4px 0 #8C617F}.title span{display:inline-block;transform:rotate(-4deg)}.title span:nth-child(2){transform:translateY(5px) rotate(3deg);color:#ffc0d2}.title span:nth-child(3){transform:translateY(-4px) rotate(-3deg);color:#ffe09a}.title span:nth-child(4){transform:translateY(3px) rotate(5deg);color:#ffc0d2}.title span:nth-child(5){transform:rotate(-3deg)}.sub{color:#ffe8a3;font-size:20px;letter-spacing:0;text-shadow:0 2px 0 var(--ol)}.home-actions{position:absolute;top:67%;left:50%;transform:translate(-50%);width:min(760px,calc(100% - 48px));display:flex;flex-direction:column;align-items:center;gap:18px}.home-modes,.home-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;width:100%}.home-options{grid-template-columns:repeat(2,minmax(0,1fr));width:66%}.home .btn{min-width:0;width:100%;letter-spacing:0;white-space:nowrap}.home-keyboard-hint{color:#ffe8a3}@media(max-width:1100px){h1.title{font-size:76px}}@media(pointer:coarse),(max-width:900px){.home-keyboard-hint{display:none}}@media(min-height:601px)and (max-height:720px){.home-actions{gap:14px}.home .btn{font-size:18px;padding:10px 20px;line-height:24px}}@media(max-height:600px){.home-heading{top:6%;gap:10px}h1.title{font-size:56px;gap:4px;text-shadow:0 3px 0 #8C617F}.home .sub{font-size:16px}.home-actions{width:min(600px,calc(100% - 64px));gap:12px}.home .btn{font-size:15px;padding:8px 10px;line-height:22px}}@media(max-height:360px),(max-width:640px){h1.title{font-size:44px}.home-heading{gap:8px}.home .sub{font-size:14px}.home-actions,.home-modes,.home-options{gap:10px}.home .btn{font-size:14px;padding:6px 8px;line-height:20px}}.btn{position:relative;overflow:hidden;font:inherit;font-weight:800;font-size:20px;letter-spacing:2px;min-width:220px;padding:14px 28px;border-radius:22px;border:3px solid var(--ol);background:var(--cream);color:var(--ol);box-shadow:0 6px 0 var(--ol),0 10px 18px #140a2859,inset 0 3px #ffffffb3,inset 0 -4px #3a2e4a1f;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,filter .12s}.btn:after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:40%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);transform:skew(-20deg);transition:left .45s ease;pointer-events:none}.btn:hover{transform:translateY(-3px);filter:brightness(1.05);box-shadow:0 9px 0 var(--ol),0 16px 26px #140a2866,inset 0 3px #ffffffb3,inset 0 -4px #3a2e4a1f}.btn:hover:after{left:120%}.btn:active,.btn.press{transform:scale(.95) translateY(4px);box-shadow:0 2px 0 var(--ol),inset 0 3px #ffffff80}.btn.main{background:linear-gradient(180deg,#ffa9bc,#ff7f9c);color:#fff;text-shadow:0 2px 0 var(--ol)}.btn.gold{background:linear-gradient(180deg,#ffe69a,#ffc94d)}.btn.small{min-width:0;font-size:16px;padding:8px 16px;border-radius:14px}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:focus-visible{outline:4px solid #fff;outline-offset:3px}.col{display:flex;flex-direction:column;gap:14px;align-items:center}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;justify-content:center}.coins{position:absolute;top:18px;right:22px;background:linear-gradient(180deg,#ffe69a,#ffc94d);border:3px solid var(--ol);border-radius:20px;padding:6px 16px;font-weight:800;font-size:20px;box-shadow:0 4px 0 var(--ol),inset 0 2px #ffffffb3}.back{position:absolute;top:18px;left:22px}.map{display:grid;grid-template-columns:repeat(4,minmax(150px,220px));gap:16px;max-width:96vw}.isle{position:relative;border:3px solid var(--ol);border-radius:22px;padding:14px;background:var(--paper);box-shadow:0 5px #3a2e4a40}.isle.locked{filter:grayscale(.9) brightness(.8)}.isle h3{margin:0 0 8px;font-size:18px}.isle .acts{display:flex;gap:6px}.act{flex:1;border:2.5px solid var(--ol);border-radius:12px;padding:6px 2px;text-align:center;background:var(--cream);font-weight:700;cursor:pointer;font-size:14px}.act.done{background:var(--safe)}.act.lock{opacity:.4;cursor:not-allowed}.act .rk{font-size:11px;display:block}.shop{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:16px;width:min(1100px,94vw);max-height:64vh;overflow:auto;padding:6px}.skin{border:3px solid var(--ol);border-radius:22px;background:var(--paper);padding:10px;text-align:center;cursor:pointer;box-shadow:0 5px #3a2e4a40;transition:transform .12s}.skin:hover{transform:translateY(-3px)}.skin.sel{outline:5px solid var(--gold)}.skin .pair{position:relative;display:flex;justify-content:center;align-items:flex-end;gap:4px;height:170px;padding:0 4px 6px;border-radius:16px;background:radial-gradient(ellipse 70% 22% at 50% 94%,rgba(255,196,150,.55),transparent 70%),linear-gradient(#fff3e4,#ffe6ec);overflow:hidden}.skin .pair img{height:156px;max-width:48%;object-fit:contain;object-position:bottom;filter:drop-shadow(0 4px 3px rgba(58,46,74,.22))}.skin .pair img+img{height:144px}.skin .nm{font-weight:800;margin-top:8px}.skin .pr{font-size:14px;margin-top:4px}.tag{display:inline-block;padding:2px 10px;border-radius:10px;border:2px solid var(--ol);font-size:13px;font-weight:700}.tag.own{background:var(--safe)}.tag.wear{background:var(--gold)}.tag.price{background:#fff}.stage{position:relative;width:min(600px,92vw);height:360px;border:3px solid var(--ol);border-radius:26px;overflow:hidden;display:flex;align-items:flex-end;justify-content:center;gap:18px;padding-bottom:34px;background:radial-gradient(ellipse 36% 70% at 50% 100%,rgba(255,236,190,.55),transparent 70%),radial-gradient(circle at 18% 22%,#fff 0 1.5px,transparent 2.5px),radial-gradient(circle at 78% 16%,#fff 0 2px,transparent 3px),radial-gradient(circle at 64% 34%,#fff 0 1px,transparent 2px),radial-gradient(circle at 34% 12%,#FFE8A3 0 1.5px,transparent 2.5px),radial-gradient(circle at 88% 42%,#FFE8A3 0 1px,transparent 2px),radial-gradient(circle at 10% 48%,#fff 0 1px,transparent 2px),linear-gradient(#3b2f6e,#7a5fb0 62%,#c98fb8)}.stage .curtain{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(160,50,90,.9),rgba(200,80,120,.6) 5%,transparent 9%,transparent 91%,rgba(200,80,120,.6) 95%,rgba(160,50,90,.9)),radial-gradient(ellipse 60% 18px at 50% 0,rgba(160,50,90,.95) 60%,transparent 62%)}.stage .floor{position:absolute;left:6%;right:6%;bottom:0;height:64px;border-radius:50% 50% 0 0/34px 34px 0 0;background:linear-gradient(#f6c9b0,#d9927e);box-shadow:inset 0 4px #ffffff73}.stage .fig{position:relative;margin:0;display:flex;flex-direction:column;align-items:center;transition:filter .2s,opacity .2s}.stage .fig img{height:270px;max-width:250px;object-fit:contain;object-position:bottom;filter:drop-shadow(0 10px 6px rgba(40,20,60,.35));animation:bob 2.4s ease-in-out infinite;transform-origin:50% 100%}.stage .fig.R img{height:250px;animation-delay:.3s}.stage .fig:after{content:"";position:absolute;bottom:18px;width:70%;height:14px;border-radius:50%;background:#5a283c47;z-index:-1}.stage .fig figcaption{margin-top:2px;padding:1px 10px;border-radius:10px;background:#fff8eee6;border:2px solid var(--ol);font-size:13px;font-weight:700;white-space:nowrap}.stage .fig.mute{filter:saturate(.6) brightness(.72)}.wardrobe .panel{min-width:270px;justify-content:center}.seg{display:flex;border:3px solid var(--ol);border-radius:16px;overflow:hidden}.seg button{font:inherit;font-weight:700;font-size:15px;padding:8px 12px;border:0;background:#fff;color:var(--ol);cursor:pointer}.seg button+button{border-left:2px solid var(--ol)}.seg button.on{background:var(--pink);color:#fff}@keyframes bob{50%{transform:translateY(-6px) scale(1.01,.99)}}@media(max-height:960px){.wardrobe{gap:12px;padding-top:10px}.stage{height:320px}.stage .fig img{height:240px}.stage .fig.R img{height:222px}.shop{max-height:48vh}}@media(max-height:820px){.stage{height:290px}.stage .fig img{height:210px}.stage .fig.R img{height:194px}.skin .pair{height:140px}.skin .pair img{height:128px}.skin .pair img+img{height:118px}.shop{max-height:44vh}}.set{display:grid;grid-template-columns:180px 1fr;gap:10px 18px;align-items:center;font-size:17px}.set input[type=range]{width:240px}.keys{display:grid;grid-template-columns:repeat(3,auto);gap:6px 12px;font-size:15px;max-height:50vh;overflow:auto}.key{font:inherit;border:2px solid var(--ol);border-radius:10px;padding:3px 10px;background:#fff;cursor:pointer;min-width:90px}.result .big{font-size:64px;font-weight:900;color:var(--gold);-webkit-text-stroke:3px var(--ol)}.stat{display:flex;justify-content:space-between;min-width:320px;font-size:19px;padding:6px 0;border-bottom:2px dashed rgba(58,46,74,.2);animation:fade .25s both}.toast{position:absolute;left:50%;bottom:14%;transform:translate(-50%);background:var(--paper);border:3px solid var(--ol);border-radius:18px;padding:10px 22px;font-weight:700;animation:fade .2s;pointer-events:none}.loading{color:#fff;font-size:20px}.bar{width:320px;height:16px;border:3px solid var(--ol);border-radius:10px;background:#fff;overflow:hidden}.bar>i{display:block;height:100%;background:linear-gradient(90deg,var(--p1),var(--gold),var(--p2));transition:width .2s}input.room{font:inherit;font-size:28px;font-weight:800;letter-spacing:8px;text-align:center;width:260px;border:3px solid var(--ol);border-radius:16px;padding:8px;text-transform:uppercase}.hint{font-size:14px;opacity:.8;max-width:640px;text-align:center}#touch{position:fixed;inset:0;pointer-events:none;display:none}#touch.on{display:block}#touch .tb{position:absolute;border-radius:50%;border:4px solid rgba(58,46,74,.9);background:linear-gradient(145deg,#fff5ebd9,#ffe6f0d1);display:flex;align-items:center;justify-content:center;font-weight:900;color:var(--ol);pointer-events:auto;touch-action:none;font-size:14px;box-shadow:0 4px 8px #3a2e4a40,inset 0 2px 3px #ffffffa6;transition:transform .08s,background .08s}#touch .tb.on{background:linear-gradient(145deg,#ffd86bf2,#ffb4c8eb);transform:scale(.92);box-shadow:0 2px 4px #3a2e4a4d,inset 0 3px 5px #ffffffb3}#touch .stick{position:absolute;left:0;top:0;width:35%;height:100%;pointer-events:auto;touch-action:none}#touch .knob{position:absolute;width:150px;height:150px;border-radius:50%;border:4px solid rgba(255,200,220,.6);background:radial-gradient(circle at 35% 35%,#ffb4d238,#ffb4d21f);display:none;box-shadow:0 3px 10px #3a2e4a26}#touch .knob i{position:absolute;left:50%;top:50%;width:65px;height:65px;margin:-32.5px;border-radius:50%;background:linear-gradient(145deg,#fff8f0f2,#ffebf5eb);border:4px solid rgba(58,46,74,.85);box-shadow:0 3px 6px #3a2e4a38,inset 0 2px 3px #ffffffb3}#portrait-hint{display:none;position:fixed;inset:0;background:#140f2bf5;z-index:9999;flex-direction:column;align-items:center;justify-content:center;gap:24px;color:#fff;font-size:22px;font-weight:700;text-align:center;padding:20px}#portrait-hint svg{width:80px;height:80px;animation:rotate-phone 1.5s ease-in-out infinite}@keyframes rotate-phone{0%,to{transform:rotate(0)}50%{transform:rotate(90deg)}}@media(orientation:portrait)and (max-width:800px){#portrait-hint{display:flex}#touch,#ui,#game{display:none!important}}@media(max-width:900px)and (orientation:landscape){.map{grid-template-columns:repeat(2,minmax(140px,1fr));gap:12px;max-height:68vh;overflow-y:auto}.isle{padding:10px}.isle h3{font-size:15px;margin-bottom:6px}.act{font-size:12px;padding:4px 2px}.hint{font-size:12px;max-width:90vw}.btn{font-size:15px;padding:10px 18px;min-width:100px}.btn.small{font-size:14px;padding:6px 12px;min-width:0}.stage{height:280px;padding-bottom:20px}.stage .fig img{height:200px}.stage .fig.R img{height:185px}.shop{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;max-height:54vh}.skin .pair{height:140px}.skin .pair img{height:128px}.skin .pair img+img{height:118px}.wardrobe{gap:10px;padding-top:8px}.keys{font-size:13px;gap:4px 8px;max-height:38vh;grid-template-columns:repeat(2,auto)}.key{min-width:70px;padding:2px 8px}.set{grid-template-columns:140px 1fr;gap:8px 12px;font-size:15px}.set input[type=range]{width:180px}.coins{font-size:17px;padding:5px 12px;top:12px;right:12px}.back{top:12px;left:12px}}@media(max-width:640px)and (orientation:landscape){.sub{font-size:16px}.btn{font-size:14px;padding:8px 14px;min-width:90px}.map{grid-template-columns:1fr;gap:10px}.shop{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}}
