@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Nunito:wght@400;600;700;800;900&display=swap";:root{color:#292443;font-synthesis:none;background:#f8f4ff;font-family:Nunito,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 10% 10%,#ffe9f4 0,#0000 28%),radial-gradient(circle at 90% 16%,#e7e4ff 0,#0000 30%),#f8f4ff;min-width:320px;margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:default}button:focus-visible,input:focus-visible,select:focus-visible{outline-offset:3px;outline:3px solid #7b55ee}.site-shell{flex-direction:column;min-height:100vh;display:flex}.site-header{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:3;background:#fff9;border-bottom:1px solid #e9e1f5;height:77px}.header-inner{justify-content:space-between;align-items:center;max-width:1200px;height:100%;margin:auto;padding:0 24px;display:flex}.brand{color:#51379a;letter-spacing:-1.5px;background:0 0;border:0;align-items:center;gap:9px;padding:0;font-size:26px;font-weight:900;display:flex}.brand>span:nth-child(2)>span{color:#ff6196}.brand-gem{color:#fff;background:linear-gradient(140deg,#ff90b1,#ff5e95);border-radius:14px;place-items:center;width:40px;height:40px;font-size:26px;display:grid;transform:rotate(-9deg);box-shadow:0 5px #e84981}.brand small{color:#a59db7;letter-spacing:1.1px;margin:9px 0 0 2px;font:800 10px DM Sans,sans-serif}.header-right{color:#8a819e;align-items:center;gap:8px;font-size:12px;font-weight:800;display:flex}.online-dot{background:#aaa;border-radius:50%;width:8px;height:8px}.online-dot.online{background:#45caa3;box-shadow:0 0 0 4px #45caa320}.online-dot.offline{background:#fa6a8d}.header-star{color:#8d631f;background:#fff2ce;border-radius:20px;margin-left:13px;padding:8px 12px;font-size:13px}.lobby,.game{flex:1;width:min(1200px,100% - 40px);margin:32px auto 48px}.hero{background:linear-gradient(115deg,#fff 9%,#ffeff7 49%,#eee4ff 100%);border:1px solid #fff;border-radius:30px;min-height:400px;display:flex;position:relative;overflow:hidden;box-shadow:0 18px 45px #5d3f9d12}.hero-copy{z-index:1;width:54%;padding:58px 0 48px 65px;position:relative}.pill{color:#8556c3;background:#f2e8ff;border-radius:30px;padding:8px 14px;font-size:13px;font-weight:900;display:inline-block}.hero h1{letter-spacing:-2.8px;color:#332653;margin:21px 0 19px;font-size:clamp(38px,4.4vw,60px);font-weight:900;line-height:1.19}.hero h1 em{color:#fd6097;font-style:normal}.hero p{color:#756d89;margin:0;font-size:16px;font-weight:700;line-height:1.75}.hero-tags{flex-wrap:wrap;gap:8px;margin-top:31px;display:flex}.hero-tags span{color:#765f9b;background:#fff;border:1px solid #f0e8f8;border-radius:20px;padding:7px 10px;font-size:11px;font-weight:900;box-shadow:0 3px 9px #7a5a9c0e}.hero-art{place-items:center;width:46%;display:grid;position:relative}.orb{border-radius:50%;position:absolute}.orb-a{opacity:.6;background:#ffcae0;width:400px;height:400px;top:-72px;right:-110px}.orb-b{opacity:.65;background:#ddcaff;width:310px;height:310px;bottom:-190px;right:130px}.hero-board{z-index:1;background:#7d5cb3;border:7px solid #fff;border-radius:23px;grid-template-columns:repeat(7,1fr);gap:5px;width:264px;height:265px;padding:12px;display:grid;position:relative;transform:rotate(-10deg);box-shadow:0 22px #503784,0 28px 36px #4a2b7c52}.hero-jelly{animation:2s ease-in-out infinite bob;animation-delay:var(--delay);border-radius:12px 12px 15px 15px;position:relative;box-shadow:inset 0 3px #ffffff75,inset 0 -5px #00000018,0 3px #00000018}.hero-jelly:before{content:"••";text-align:center;letter-spacing:4px;color:#4e3467;font:900 12px DM Sans;position:absolute;top:9px;left:0;right:0}.hero-jelly i{border-bottom:2px solid #674777;border-radius:50%;width:7px;height:4px;position:absolute;top:23px;left:50%;transform:translate(-50%)}.float-sticker{z-index:2;color:#fe648c;background:#fff;border-radius:20px;padding:10px 14px;font-weight:900;position:absolute;transform:rotate(10deg);box-shadow:0 12px 25px #7d50933b}.sticker-one{font-size:19px;top:64px;left:17px}.sticker-one strong{font-size:15px;display:block}.sticker-two{color:#8158d4;font-size:20px;bottom:57px;right:28px;transform:rotate(-9deg)}@keyframes bob{50%{transform:translateY(-3px)}}.play-card,.rank-card{background:#fff;border:1px solid #eee7f6;border-radius:26px;padding:31px 34px;box-shadow:0 12px 36px #5d3f9d0b}.play-card{margin-top:24px}.section-heading{justify-content:space-between;align-items:end;margin-bottom:24px;display:flex}.eyebrow{color:#a583e9;letter-spacing:2px;font:900 11px DM Sans}.section-heading h2{letter-spacing:-1px;color:#342852;margin:5px 0 0;font-size:25px}.section-heading h2 span{font-size:22px}.wallet{color:#aa7527;background:#fff5d7;border-radius:20px;padding:9px 14px;font-size:13px;font-weight:900}.name-label{color:#5d5078;margin-bottom:8px;font-size:13px;font-weight:900;display:block}#name{color:#3b2d57;background:#fcfaff;border:1.5px solid #e7def2;border-radius:13px;outline:none;width:100%;height:48px;padding:0 15px}#name:focus,#room-code:focus{border-color:#a681e9}.mode-grid{grid-template-columns:repeat(3,1fr);gap:14px;margin-top:20px;display:grid}.mode-card{text-align:left;border:1.5px solid #0000;border-radius:20px;flex-direction:column;align-items:flex-start;min-height:183px;padding:19px 20px;transition:transform .15s,box-shadow .15s;display:flex}.mode-card:hover{transform:translateY(-4px);box-shadow:0 12px 22px #6c4b9d23}.mode-card.solo{background:#fff1f5;border-color:#ffe1ec}.mode-card.versus{background:#f3ecff;border-color:#e6d8ff}.mode-card.coop{background:#e9faf6;border-color:#d5f1e9}.mode-icon{background:#fff;border-radius:14px;place-items:center;width:42px;height:42px;font-size:24px;display:grid;box-shadow:0 5px 10px #68508612}.mode-card strong{color:#3e3157;margin-top:10px;font-size:18px}.mode-card small{color:#8f809d;margin-top:3px;font-size:11px;font-weight:800}.mode-arrow{color:#ef6d9c;margin-top:auto;padding-top:14px;font-size:12px;font-weight:900}.versus .mode-arrow{color:#8661ce}.coop .mode-arrow{color:#36a486}.join-row{color:#766989;border-top:1px dashed #e9e0f2;justify-content:space-between;align-items:center;gap:16px;margin-top:25px;padding-top:23px;font-size:13px;font-weight:900;display:flex}.join-row>div{gap:7px;display:flex}#room-code{text-transform:uppercase;letter-spacing:1.5px;border:1.5px solid #e9dff2;border-radius:11px;outline:none;width:147px;height:41px;padding:0 11px;font-weight:900}.join-btn,.primary{color:#fff;background:#7052be;border:0;border-radius:11px;padding:0 18px;font-weight:900;box-shadow:0 4px #543997}.join-btn:hover,.primary:hover{background:#5e40ad}.rank-card{margin-top:24px}.rank-sub{color:#aea3bc;font-size:12px;font-weight:800}.rank-controls{justify-content:space-between;gap:14px;display:flex}.segmented{background:#f5f1fa;border-radius:12px;gap:5px;padding:4px;display:flex}.segmented button{color:#9a8cae;background:0 0;border:0;border-radius:9px;padding:8px 17px;font-size:12px;font-weight:900}.segmented button.active{color:#6546b1;background:#fff;box-shadow:0 2px 6px #49306819}#rank-mode{color:#75658a;background:#fff;border:1px solid #e8e0ef;border-radius:11px;padding:0 12px;font-size:12px;font-weight:900}.rank-list{margin-top:16px}.rank-row{color:#685e78;border-radius:12px;grid-template-columns:42px 1fr 100px 100px;align-items:center;gap:12px;padding:12px 15px;font-size:13px;display:grid}.rank-row:nth-child(odd){background:#faf8fd}.rank-row.mine{background:#f0e9ff}.rank-row b{text-align:right;color:#49386f;font-size:15px}.rank-num{text-align:center;font-size:18px}.rank-name{font-weight:900}.rank-stage{color:#a79bb6;font-size:11px}.empty-rank{text-align:center;color:#ac9dbb;padding:30px;font-size:13px;font-weight:800;line-height:1.8}.footer{text-align:center;color:#b2a6bf;padding:10px 20px 25px;font-size:11px;font-weight:800}.toast{color:#fff;opacity:0;pointer-events:none;z-index:20;white-space:nowrap;background:#372657;border-radius:15px;padding:12px 19px;font-size:13px;font-weight:900;transition:all .2s;position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);box-shadow:0 10px 30px #3e2c6466}.toast.show{opacity:1;transform:translate(-50%)}@media (width<=800px){.hero-copy{width:55%;padding:45px 25px}.hero-art{width:45%}.hero-board{transform:rotate(-10deg)scale(.77)}.mode-grid{gap:8px}.mode-card{min-height:170px;padding:14px}.arena{flex-direction:column;display:flex}.board-card{max-width:530px}.foe-card{order:0}.versus-divider{flex-direction:row;order:1;width:100%}.self-card{order:2}.game-bottom{grid-template-columns:1fr}.board{width:100%;max-width:380px;max-height:430px;margin:auto}.lobby,.game{width:min(650px,100% - 24px)}.hero{min-height:350px}}@media (width<=560px){.site-header{height:62px}.header-inner{padding:0 15px}.brand{font-size:20px}.brand-gem{border-radius:10px;width:32px;height:32px;font-size:20px}.brand small,.header-right>span:nth-child(2){display:none}.header-star{margin-left:2px}.lobby,.game{margin-top:15px}.hero{min-height:0;display:block}.hero-copy{width:100%;padding:32px 25px 20px}.hero h1{margin:16px 0;font-size:40px}.hero p{font-size:13px}.hero-tags{margin-top:20px}.hero-art{width:100%;height:215px;overflow:hidden}.hero-board{margin-top:-35px;transform:rotate(-10deg)scale(.67)}.orb-a{top:-80px;right:0}.orb-b{bottom:-190px;left:-40px;right:auto}.sticker-one{top:20px;left:35px}.sticker-two{bottom:28px;right:45px}.play-card,.rank-card{border-radius:20px;margin-top:15px;padding:22px 18px}.section-heading h2{font-size:21px}.wallet{padding:7px 10px;font-size:11px}.mode-grid{grid-template-columns:1fr;gap:9px}.mode-card{grid-template-rows:1fr 1fr;grid-template-columns:45px 1fr auto;align-items:center;column-gap:8px;min-height:82px;display:grid}.mode-icon{grid-row:1/3}.mode-card strong{margin:0;font-size:15px}.mode-card small{grid-area:2/2;margin:0}.mode-arrow{grid-area:1/3/3;padding:0;font-size:11px}.join-row{display:block}.join-row>div{margin-top:10px}.join-row #room-code{flex:1}.rank-sub{display:none}.rank-controls{display:block}.segmented{justify-content:space-around}.segmented button{padding:8px 11px}.rank-controls select{width:100%;height:35px;margin-top:9px}.rank-row{grid-template-columns:30px 1fr 63px 70px;gap:4px;padding:10px 8px;font-size:11px}.rank-row b{font-size:12px}.rank-stage{font-size:9px}.game-banner{padding:15px}.game-banner h1{font-size:14px}.room-code{flex-direction:column;gap:2px}.room-code button{padding:5px;font-size:11px}.game-top{margin-bottom:12px}.stage-badge strong{font-size:11px}.timer strong{font-size:14px}.board-card{padding:12px}.board{gap:3px;padding:5px}.tool-panel,.goal-panel{padding:14px}.tool-title small{display:none}.tool{flex-wrap:wrap;min-height:53px;font-size:10px}.tool-icon{font-size:17px}.versus-divider small{display:none}.footer{font-size:10px}}.hero-board{grid-template-columns:repeat(6,1fr)}.hero-slot{background:#ffffff17;border-radius:10px;box-shadow:inset 0 1px 3px #49346b40}.rose{--c:#ff7eaa}.tangerine{--c:#ffa35c}.lemon{--c:#ffd24d}.mint{--c:#4fd3ae}.sky{--c:#6fb3ff}.lilac{--c:#b58cf2}.mode-grid{grid-template-columns:repeat(4,1fr)}.mode-card.relax{background:#fff8e3;border-color:#ffecb5}.relax .mode-arrow{color:#c98a12}.piece{touch-action:none;cursor:grab;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;filter:drop-shadow(0 -2px #ffffff70)drop-shadow(0 4px #3c1e5a33);-webkit-user-select:none;user-select:none;position:relative}.piece i{background:var(--c);display:block;position:absolute}.face{justify-content:center;align-items:center;gap:calc(var(--fs)*.16);pointer-events:none;display:flex;position:absolute}.face u{width:calc(var(--fs)*.09);height:calc(var(--fs)*.14);min-width:3px;min-height:4px;margin-top:calc(var(--fs)*-.1);background:#4b3453;border-radius:50%;display:block}.face em{width:calc(var(--fs)*.2);height:calc(var(--fs)*.1);border:2px solid #4b3453;border-top:0;border-radius:0 0 10px 10px;min-width:6px;min-height:3px;position:absolute;top:56%;left:50%;transform:translate(-50%)}.mold{margin:0 auto;position:relative}.mold-cell{position:absolute}.mold-cell:after{content:"";background:#ffffffa6;border:2px dashed #9b7fd166;border-radius:26%;transition:background 80ms;position:absolute;inset:2px;box-shadow:inset 0 3px 6px #5a3c8c26}.mold-cell.snap:after{background:var(--c);opacity:.5;border-style:solid;border-color:#fff}.placed{position:absolute}.placed.theirs .piece{cursor:default}.placed .piece.snapped{animation:.34s cubic-bezier(.3,1.6,.5,1) snap}.hint-ghost{pointer-events:none}.hint-ghost .piece{opacity:.45;animation:.7s ease-in-out infinite alternate ghost}.mold.enter{animation:.42s cubic-bezier(.2,1.3,.4,1) mold-in}.mold.complete{animation:.9s ease-in-out mold-done}.mold.complete .placed .piece{animation:.9s ease-in-out jelly}.floating{z-index:50;pointer-events:none;will-change:transform;position:fixed;top:0;left:0}.floating .piece{filter:drop-shadow(0 16px 14px #32145a55);animation:.45s ease-in-out infinite alternate wobble}.floating.bounce-back{opacity:.2;transition:transform .2s ease-in,opacity .2s}.piece.ghosted{opacity:.2}.piece.hinted{animation:.5s ease-in-out infinite alternate hinted}.piece.spin{animation:.26s cubic-bezier(.3,1.5,.5,1) spin}.piece.spin-demo{animation:2.4s ease-in-out infinite spin-demo}.game{flex:1;width:min(760px,100% - 24px);max-width:760px;margin:20px auto 40px}.game-top{justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.back-btn{color:#7c69a0;background:#fff;border:0;border-radius:14px;padding:12px 16px;font-size:14px;font-weight:900;box-shadow:0 3px 10px #6b528812}.big-timer{color:#5b3fa0;text-align:center;background:#fff;border-radius:18px;min-width:120px;padding:4px 20px;font:900 34px DM Sans,sans-serif;box-shadow:0 3px 10px #6b528812}.big-timer.urgent,.round-timer.urgent{color:#f45d76;animation:.5s infinite alternate pulse}.relax-count{color:#6b4ca8;background:#fff;border-radius:16px;padding:10px 16px;font-weight:900;box-shadow:0 3px 10px #6b528812}.score-chip{text-align:right;background:#fff;border-radius:16px;flex-direction:column;padding:6px 14px;display:flex;box-shadow:0 3px 10px #6b528812}.score-chip span{color:#a595b8;font-size:11px;font-weight:900}.score-chip strong{color:#7650bd;font:900 22px DM Sans,sans-serif}.scoreline{color:#5b3fa0;background:#fff;border-radius:18px;align-items:center;gap:12px;padding:9px 16px;font-size:14px;font-weight:900;display:flex;box-shadow:0 3px 10px #6b528812}.scoreline em{font-style:normal}.scoreline em i{vertical-align:-1px;background:#ebe2f6;border-radius:50%;width:13px;height:13px;margin:0 2px;display:inline-block}.scoreline em i.on{background:#ff6d9b;box-shadow:0 0 0 3px #ff6d9b30}.scoreline .round{color:#8a6fc4;background:#f3ecff;border-radius:10px;padding:3px 9px;font-size:12px}.race{background:#fff;border-radius:18px;gap:7px;margin-bottom:12px;padding:12px 16px;display:grid;box-shadow:0 3px 10px #6b528812}.race-row{color:#6b5a86;grid-template-columns:76px 1fr;align-items:center;gap:10px;font-size:13px;font-weight:900;display:grid}.race-row span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.race-bar{background:#f1eaf8;border-radius:9px;height:14px;overflow:hidden}.race-bar i{background:linear-gradient(90deg,#b899f0,#8059d5);border-radius:9px;height:100%;transition:width .25s;display:block}.race-row.foe .race-bar i{background:linear-gradient(90deg,#ffa9c4,#ff6d9b)}.round-timer{text-align:center;color:#5b3fa0;font:900 20px DM Sans,sans-serif}.team-line{color:#2f8a69;text-align:center;background:#e9faf4;border:1px solid #c7efdf;border-radius:16px;margin-bottom:12px;padding:10px 14px;font-size:13px;font-weight:800}.stage{background:linear-gradient(160deg,#f6f0ff,#eadffc);border:1px solid #e3d6f7;border-radius:26px;min-height:220px;padding:16px 16px 22px;position:relative;box-shadow:0 10px 28px #5d3f9d14}.mold-title{color:#46306e;justify-content:center;align-items:center;gap:9px;margin-bottom:14px;display:flex}.mold-emoji{font-size:34px;line-height:1}.mold-title strong{letter-spacing:-.5px;font-size:22px}.level-chip{color:#8b6fc6;background:#fff;border-radius:10px;padding:4px 9px;font-size:12px;font-weight:900}.level-chip.lv3,.level-chip.lv4{color:#e0527f;background:#ffe6ef}.mold-wrap{justify-content:center;display:flex}.stage-overlay{text-align:center;z-index:5;pointer-events:none;border-radius:26px;place-content:center;justify-items:center;gap:8px;display:grid;position:absolute;inset:0}.stage-overlay.countdown{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#fbf8ffd9}.stage-overlay.result{background:#2a174a1f}.result-card{background:#fff;border-radius:24px;justify-items:center;gap:6px;padding:18px 28px;animation:.35s cubic-bezier(.2,1.4,.4,1) pop-in;display:grid;box-shadow:0 16px 40px #3b1f6a40}.stage-overlay.countdown b{color:#7650bd;text-shadow:0 6px #d9c8f5;font:900 110px/1 DM Sans,sans-serif}.stage-overlay span{color:#8a79a3;font-size:16px;font-weight:900}.stage-overlay.result b{font-size:76px;line-height:1;animation:.9s ease-in-out jelly}.stage-overlay.result strong{color:#46306e;letter-spacing:-.6px;font-size:26px}.stage-overlay.result.lose strong{color:#8a79a3}.stage-overlay.result span{color:#e0527f;font-size:17px}.tray{background:#fff;border:1px solid #eadff3;border-radius:24px;margin-top:14px;padding:16px 12px;box-shadow:0 8px 22px #5d3f9d0d}.tray-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;min-height:70px;display:flex}.slot{place-items:center;display:grid}.tray-tip,.tray-empty{text-align:center;color:#8a79a3;margin-top:12px;font-size:14px;font-weight:800}.tray-tip b{color:#7650bd}.tools{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:14px;display:flex}.tool-btn{color:#5b3fa0;background:#fff;border:1px solid #dcd0ee;border-radius:16px;min-height:54px;padding:0 20px;font-size:16px;font-weight:900;box-shadow:0 3px #d7c6ec}.tool-btn:active{transform:translateY(2px);box-shadow:0 1px #d7c6ec}.tool-btn:disabled{opacity:.45}.tool-btn b{color:#e0527f}.waiting{text-align:center;background:#fff;border:2px dashed #d7c4f5;border-radius:20px;margin-bottom:14px;padding:28px}.waiting>span{font-size:40px;display:block}.waiting strong{color:#513783;margin-top:5px;font-size:21px;display:block}.waiting p{color:#8d80a0;font-size:15px}.waiting .code{letter-spacing:2px;color:#7650bd;font:900 20px DM Sans}.waiting button{height:48px;font-size:15px}.modal-backdrop{z-index:60;background:#26163f99;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.finish-modal{text-align:center;background:#fff;border-radius:27px;width:100%;max-width:390px;padding:34px;animation:.35s cubic-bezier(.2,1.4,.4,1) pop-in;box-shadow:0 22px 60px #26163f55}.finish-emoji{font-size:58px}.finish-modal h2{color:#4b3670;margin:7px 0;font-size:27px}.finish-modal p{color:#8e7f9d;font-size:16px}.finish-modal p b{color:#7651bc}.finish-score{color:#ac782e;background:#fff5dc;border-radius:12px;margin:18px 0;padding:13px;font-size:14px;font-weight:900;line-height:1.5}.finish-modal button{width:100%;height:52px;font-size:16px}.hero-art{overflow:visible}.hero-mold{z-index:1;filter:drop-shadow(0 18px 24px #4a2b7c30);transform:rotate(-6deg)}.hero-float{z-index:2;animation:2.6s ease-in-out infinite float;position:absolute;top:14%;right:12%}.hero-float .piece{filter:drop-shadow(0 18px 14px #32145a44)}.how-card{background:#fff;border:1px solid #eee7f6;border-radius:26px;margin-top:24px;padding:31px 34px;box-shadow:0 12px 36px #5d3f9d0b}.how-lead{color:#4b3670;margin:-8px 0 20px;font-size:19px;font-weight:800}.how-lead b{color:#fd6097}.how-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.how-step{text-align:center;background:#faf7ff;border:1px solid #f0e8f8;border-radius:18px;padding:16px}.how-pic{place-items:center;height:84px;margin-bottom:10px;display:grid}.how-emoji{font-size:44px}.how-step b{color:#4b3670;font-size:16px;display:block}.how-step p{color:#857a96;margin:6px 0 0;font-size:13px;font-weight:700;line-height:1.55}@keyframes snap{0%{transform:scale(1.16,.86)}45%{transform:scale(.93,1.08)}75%{transform:scale(1.03,.98)}to{transform:none}}@keyframes wobble{0%{transform:scale(1.07)rotate(-3deg)}to{transform:scale(1.09,1.04)rotate(2deg)}}@keyframes jelly{0%,to{transform:none}20%{transform:scale(1.12,.9)}40%{transform:scale(.92,1.1)}60%{transform:scale(1.05,.96)}80%{transform:scale(.98,1.02)}}@keyframes mold-done{0%,to{transform:none}30%{transform:scale(1.06)}55%{transform:scale(.97)}}@keyframes mold-in{0%{opacity:0;transform:translateY(24px)scale(.8)}to{opacity:1;transform:none}}@keyframes ghost{0%{opacity:.25}to{opacity:.6}}@keyframes hinted{to{transform:translateY(-6px)scale(1.06)}}@keyframes spin{0%{transform:rotate(-90deg)scale(.85)}to{transform:none}}@keyframes spin-demo{0%,30%{transform:none}45%,80%{transform:rotate(90deg)}95%,to{transform:rotate(90deg)}}@keyframes pop-in{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:none}}@keyframes float{50%{transform:translateY(-12px)rotate(6deg)}}@keyframes pulse{to{transform:scale(1.05)}}@media (width<=900px){.mode-grid{grid-template-columns:repeat(2,1fr)}.how-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.mode-grid{grid-template-columns:1fr}.how-card{border-radius:20px;margin-top:15px;padding:22px 18px}.how-lead{font-size:16px}.how-step{padding:12px}.how-step p{font-size:12px}.game{margin-top:12px}.game-top{gap:6px}.back-btn{padding:10px 11px;font-size:12px}.big-timer{min-width:92px;padding:4px 12px;font-size:26px}.score-chip strong{font-size:18px}.scoreline{gap:6px;padding:7px 10px;font-size:12px}.scoreline em i{width:10px;height:10px}.stage{padding:12px 8px 16px}.mold-title strong{font-size:19px}.tool-btn{min-height:50px;padding:0 14px;font-size:15px}.hero-mold{transform:rotate(-6deg)scale(.8)}.hero-float{top:4%;right:6%}.in-game .site-header,.in-game .footer{display:none}.in-game .game{margin:10px auto 12px}.game-top{margin-bottom:10px}.race{gap:4px;margin-bottom:10px;padding:8px 12px}.race-row{grid-template-columns:56px 1fr;font-size:12px}.race-bar{height:10px}.round-timer{font-size:17px}.team-line{margin-bottom:10px;padding:7px 10px;font-size:12px}.mold-title{margin-bottom:8px}.mold-emoji{font-size:28px}.tray{margin-top:10px;padding:10px 8px}.tray-row{gap:10px;min-height:50px}.tray-tip{margin-top:8px;font-size:13px}.tools{margin-top:10px}.tool-btn{min-height:46px}}.back-btn,.scoreline span,.score-chip span{white-space:nowrap}.score-chip em{font-style:normal}@media (width>=900px){.game{width:min(1080px,100% - 60px);max-width:1080px}.play-area{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:16px;display:grid}.play-area .tray{margin-top:0}.stage{min-height:100%}}@media (width<=560px){.wide-only{display:none}.back-btn{padding:10px 12px}.score-chip{flex-direction:row;align-items:center;gap:6px;padding:6px 12px}.scoreline .round{padding:2px 6px}}.stage,.tray{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.stage-overlay.countdown b.small{text-shadow:none;font-size:54px}.stage-overlay.countdown span{line-height:1.6}input,select,textarea{font-size:16px!important}body{touch-action:manipulation;-webkit-text-size-adjust:100%}.site-shell{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.site-header{padding-top:env(safe-area-inset-top);height:calc(77px + env(safe-area-inset-top))}.in-game .game{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.toast{bottom:calc(25px + env(safe-area-inset-bottom))}@media (width<=560px){.site-header{height:calc(62px + env(safe-area-inset-top))}}.finish-modal .ghost-btn{color:#7c69a0;background:#fff;border:1px solid #e3d8f3;border-radius:12px;width:100%;height:46px;margin-top:10px;font-size:15px;font-weight:900}.finish-modal .primary:disabled{opacity:.6}.finish-modal .primary.pulse{animation:.6s infinite alternate pulse}.again-note{color:#8a79a3;margin:10px 0 0;font-size:13px!important}.guide{z-index:40;pointer-events:none;transform-origin:0 0;position:fixed;top:0;left:0}.guide .guide-piece{opacity:.55;filter:drop-shadow(0 10px 12px #32145a44)}.guide-finger{filter:drop-shadow(0 4px 4px #0003);font-size:44px;position:absolute;top:45%;left:40%}.guide-bubble{white-space:nowrap;color:#fff;background:#372657;border-radius:14px;padding:7px 12px;font-size:14px;font-weight:900;position:absolute;top:-38px;left:0;box-shadow:0 6px 16px #3726574d}@media (prefers-reduced-motion:reduce){.guide{display:none}}.confetti{z-index:45;pointer-events:none;border-radius:3px;width:10px;height:14px;position:fixed}.new-badge{color:#fff;background:linear-gradient(90deg,#ff7eaa,#b58cf2);border-radius:20px;margin-bottom:2px;padding:4px 12px;font-size:13px;font-style:normal;font-weight:900;animation:.5s infinite alternate pulse}.tool-btn#sound{min-width:54px;padding:0 12px;font-size:20px}.collection-card{background:#fff;border:1px solid #eee7f6;border-radius:26px;margin-top:24px;padding:31px 34px;box-shadow:0 12px 36px #5d3f9d0b}.collect-count{color:#8a79a3;font-size:15px;font-weight:900}.collect-count b{color:#fd6097;font:900 24px DM Sans,sans-serif}.collect-bar{background:#f1eaf8;border-radius:9px;height:10px;margin:-8px 0 18px;overflow:hidden}.collect-bar i{background:linear-gradient(90deg,#ff9ebe,#b58cf2);border-radius:9px;height:100%;display:block}.collect-grid{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:10px;display:grid}.collect-item{background:#f7f4fb;border:1px dashed #e0d6ee;border-radius:16px;justify-items:center;gap:3px;padding:12px 6px;display:grid;position:relative}.collect-item span{filter:grayscale();opacity:.28;font-size:32px}.collect-item small{color:#b2a6bf;font-size:12px;font-weight:900}.collect-item.got{background:#fff7fb;border:1px solid #ffd9e8}.collect-item.got span{filter:none;opacity:1}.collect-item.got small{color:#6b4ca8}.collect-item em{color:#e0527f;font-size:11px;font-style:normal;font-weight:900;position:absolute;top:6px;right:8px}.collect-tip{color:#8a79a3;text-align:center;margin:14px 0 0;font-size:13px;font-weight:800}@media (width<=560px){.collection-card{border-radius:20px;margin-top:15px;padding:22px 16px}.collect-grid{grid-template-columns:repeat(4,1fr);gap:7px}.collect-item{padding:9px 2px}.collect-item span{font-size:26px}.collect-item small{font-size:10px}}.level-picker{flex-wrap:wrap;justify-content:center;gap:6px;margin:-4px 0 14px;display:flex}.level-picker button{color:#8a79a3;background:#fff;border:1px solid #e0d5f0;border-radius:20px;min-height:34px;padding:6px 12px;font-size:13px;font-weight:900}.level-picker button.on{color:#fff;background:#7650bd;border-color:#7650bd;box-shadow:0 3px #5b3a9c}.side .tools{gap:8px}.side .tool-btn{padding:0 14px}@media (width<=560px){.level-picker{gap:4px;margin:-2px 0 8px}.level-picker button{min-height:30px;padding:4px 9px;font-size:12px}}html.lock-scroll,html.lock-scroll body{overscroll-behavior:none;height:100%;overflow:hidden}html.lock-scroll .site-shell{min-height:0;position:fixed;inset:0;overflow:hidden}html.lock-scroll .site-header,html.lock-scroll .footer{display:none}html.lock-scroll .game{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);margin:8px auto 0}html.lock-scroll .stage,html.lock-scroll .tray{touch-action:none}.sso-row{background:#ffffff8c;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;margin:0 0 18px;padding:10px 12px;font-size:13px;display:flex}.sso-row .ghost-btn{white-space:nowrap;margin:0}
