@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+SC:wght@400;500;600;700;800;900&display=swap";:root{font-family:DM Sans,Noto Sans SC,Microsoft YaHei,sans-serif;color:#2b2638;background:#f7f3eb;font-synthesis:none;--ink:#2b2638;--muted:#837b8b;--pink:#ed6387;--purple:#71608d;--paper:#f7f3eb;--border:#e4dce7}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button,a,input,textarea{outline-offset:4px}button{cursor:pointer;color:inherit;border:0;background:transparent}button:disabled{cursor:wait;opacity:.48}a{color:inherit;text-decoration:none}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible{outline:3px solid #9674bd}input,textarea{border:1px solid var(--border);color:var(--ink);background:#fffdf8}button{transition:background .15s,transform .15s,box-shadow .15s}button:active:not(:disabled){transform:translateY(1px)}.topbar{height:90px;margin:0 4%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ddd6df;position:relative;z-index:20}.brand{display:flex;gap:12px;align-items:center;text-align:left;font-size:20px;font-weight:800;letter-spacing:-.7px}.brand small{display:block;font-size:8px;letter-spacing:2.5px;margin-top:3px;font-weight:600;color:var(--muted)}.brand-mark{width:32px;height:37px;display:flex;flex-direction:column;gap:3px;justify-content:center}.brand-mark i{display:block;height:8px;border-radius:3px;background:var(--ink);width:29px;transform:rotate(-8deg)}.brand-mark i:nth-child(2){width:24px;background:var(--pink);transform:rotate(8deg);margin-left:5px}.brand-mark i:first-child{width:20px;margin-left:5px;background:#b6a4ce}.topbar nav{display:flex;align-items:center;gap:27px;font-size:12px;font-weight:600}.topbar nav button:hover,.topbar nav a:hover{color:#b64b70}.sound-btn{border:1px solid var(--border);border-radius:20px;padding:8px 13px!important;font-size:11px}.experience{height:calc(100svh - 144px);min-height:650px;position:relative;overflow:hidden;margin:0 2%;border-radius:0 0 28px 28px}.stage{position:absolute;inset:0 0 0 38%;overflow:hidden;border-radius:0 0 28px 28px;touch-action:none}.stage canvas{display:block;max-width:100%;touch-action:none}.home-mode .stage:after,.lobby-mode .stage:after,.generating-mode .stage:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#f7f3eb,transparent 17%),linear-gradient(0deg,#f7f3eb,transparent 22%)}.home-copy{position:relative;width:48%;padding:55px 0 35px 4%;z-index:3;pointer-events:none}.home-copy>*{pointer-events:auto}.eyebrow{font-size:10px;letter-spacing:1.4px;color:var(--purple);font-weight:700;display:flex;align-items:center;gap:8px}.eyebrow>span:first-child:not(.mock-label){display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--pink)}h1{font-size:clamp(54px,5.3vw,83px);letter-spacing:-5px;line-height:1.14;margin:22px 0 20px;font-weight:900}h1>span:not(.title-dot){color:var(--purple)}.title-dot{color:var(--pink)}.intro{font-size:15px;color:#776d7e;line-height:1.85;margin:0 0 23px}.mini-facts{display:flex;gap:26px;margin:24px 0 29px;font-size:11px;color:var(--muted)}.mini-facts span{display:flex;align-items:baseline;gap:6px}.mini-facts b{font-size:20px;font-weight:700;color:var(--ink);letter-spacing:-.7px}.wish-card{border:1px solid #ded5e4;border-radius:17px;padding:17px;background:#fffcf5;max-width:500px;box-shadow:0 8px 30px #64506b08}.wish-label{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;font-weight:600;color:var(--purple);margin-bottom:12px}.mock-label{font-size:9px;color:#978a99;background:#efe9ee;border-radius:5px;padding:3px 6px;white-space:nowrap}.wish-card textarea{width:100%;resize:none;background:transparent;border:0;padding:0;font-size:12px;line-height:1.8;min-height:68px}.wish-bottom{display:flex;gap:10px;justify-content:space-between;align-items:center;border-top:1px solid #eee5eb;padding-top:13px;margin-top:4px}.wish-bottom>span{font-size:10px;color:#9a8d9c}.primary{display:flex;align-items:center;justify-content:center;gap:26px;border-radius:10px;background:var(--ink);color:#fffaf2;padding:15px 21px;font-size:12px;font-weight:600;white-space:nowrap;box-shadow:0 3px #191620}.primary>span{font-size:18px;line-height:12px;font-weight:400}.primary:hover:not(:disabled){background:#514064;box-shadow:0 5px #2b2638;transform:translateY(-1px)}.small-note{font-size:10px;color:#998c9a;line-height:1.8}.hero-sticker{position:absolute;right:7%;top:12%;background:#f4cf63;padding:16px 24px;font-size:18px;line-height:1.45;transform:rotate(8deg);border-radius:4px;box-shadow:5px 7px #2b26380a;z-index:4}.hero-sticker b{font-weight:800}.hero-sticker>span{position:absolute;font-size:35px;left:-30px;bottom:-25px;transform:rotate(15deg)}.hero-caption{position:absolute;bottom:68px;left:56%;display:flex;align-items:center;gap:12px;font-size:9px;line-height:2.2;letter-spacing:1.8px;color:#9b8b9e;z-index:3}.hero-caption b{font-size:11px;letter-spacing:1px;font-weight:500;color:#84748d}.caption-line{width:34px;height:1px;background:#aa98b4}.asset-badge{position:absolute;bottom:23px;right:38px;display:flex;align-items:center;gap:6px;color:#8a7c93;font-size:8px;letter-spacing:1.3px;z-index:2}.status-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#789785;margin-right:5px}.footer{height:54px;margin:0 4%;display:flex;align-items:center;justify-content:space-between;font-size:9px;color:#9c919e}.footer button{font-size:9px;border-left:1px solid #d8ccd9;margin-left:14px;padding-left:14px}.generation-card,.lobby-card{position:relative;z-index:3;width:48%;padding:58px 0 25px 4%}h2{font-size:35px;letter-spacing:-1.5px;line-height:1.35;margin:18px 0;font-weight:800}h2 em{font-style:normal;color:var(--purple)}.generation-card>p,.lobby-card>p{font-size:13px;color:var(--muted);line-height:1.8}.generation-steps{list-style:none;padding:0;max-width:410px;margin-top:40px}.generation-steps li{padding:18px 0;border-bottom:1px solid var(--border);font-size:13px;opacity:.35;transition:opacity .3s}.generation-steps li:before{content:"○";padding-right:12px;color:var(--pink)}.generation-steps li.active{opacity:1}.generation-steps li.active:before{content:"✓"}.generation-steps li span{display:block;padding-left:26px;font-size:10px;margin-top:8px;color:var(--muted)}.progress-track{width:100%;max-width:410px;background:#e9dfed;height:4px;border-radius:10px;overflow:hidden;margin-top:28px}.progress-track i{display:block;background:var(--pink);height:100%;animation:progress 1.8s linear forwards}@keyframes progress{0%{width:0}to{width:100%}}.room-rules{display:flex;flex-wrap:wrap;gap:12px;font-size:10px;color:#76617f;margin:22px 0}.player-inputs{display:flex;gap:12px;align-items:center;max-width:480px;margin:23px 0}.player-inputs label{display:block;flex:1;font-size:10px;color:var(--muted)}.player-inputs input{display:block;margin-top:8px;padding:12px;width:100%;border-radius:8px;font-size:13px}.player-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px}.p0{background:#ef809b}.p1{background:#b4a2ce}.versus{font-size:12px;color:#b7a9be;margin-top:22px}.lobby-actions{display:flex;flex-wrap:wrap;gap:10px;max-width:480px}.wide{width:100%}.secondary{border:1px solid #d9ccdf;background:#fffaf2;padding:12px 16px;border-radius:9px;font-size:12px;font-weight:500;display:inline-flex;align-items:center;justify-content:center}.secondary:hover{background:#ece3ef}.text-button{font-size:11px;color:var(--purple);text-decoration:underline;text-underline-offset:4px;padding:9px}.prototype-note{font-size:10px;line-height:1.8;background:#eee8ee;padding:11px 13px;border-radius:8px;color:#8d7d92;margin:18px 0;max-width:480px}.prototype-note b{display:block;color:#6e5e76}.invitation-sticker{top:18%;right:8%}.game-mode .stage{inset:0;border-radius:0 0 20px 20px}.game-mode .asset-badge{bottom:178px;right:25px}.game-top{position:absolute;top:20px;left:24px;right:24px;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.player-card{display:flex;align-items:center;gap:12px;padding:10px 14px;background:#fffdf2bd;border:1px solid #ffffffb0;border-radius:12px;min-width:188px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:border .2s,box-shadow .2s}.player-card.active{border-color:#aa87b1;box-shadow:0 0 0 3px #a78ab419}.player-card small{font-size:7px;letter-spacing:1.2px;color:#9c8ca3;display:block}.player-card b{font-size:13px;display:block;margin-top:5px}.player-card strong{font-size:24px;margin-left:auto;padding:0 5px}.player-card:last-child div{text-align:right}.player-card:last-child strong{margin-left:0;margin-right:auto}.avatar{display:flex;width:35px;height:35px;border-radius:50%;align-items:center;justify-content:center;color:#fff;font-size:11px}.game-clock{text-align:center}.game-clock>span{display:block;font-size:9px;color:#8c7c97}.game-clock>strong{display:block;margin-top:5px;font-size:25px;letter-spacing:-1px;font-weight:600;font-variant-numeric:tabular-nums}.turn-card{position:absolute;top:115px;left:28px;width:240px;background:#fffaf1cb;padding:19px;border:1px solid #ffffffa0;border-radius:14px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:none}.turn-card h2{font-size:20px;letter-spacing:-.5px;margin:12px 0 9px}.turn-card p{font-size:11px;line-height:1.7;color:#8d7e95;min-height:37px;margin:0 0 14px}.turn-progress{height:3px;border-radius:10px;background:#e7dce9;overflow:hidden}.turn-progress i{display:block;width:100%;height:100%;background:var(--pink);transition:width .1s linear}.turn-details{display:flex;flex-direction:column;gap:5px;margin-top:8px;font-size:8px;color:#9f8da7}.tower-stats{position:absolute;right:29px;top:129px;text-align:right;pointer-events:none;font-size:10px;color:#8b7c96;display:flex;flex-direction:column;gap:17px}.tower-stats b{font-size:27px;font-weight:500;display:block;color:#63506f;margin-top:5px;font-variant-numeric:tabular-nums}.tower-stats small{font-size:8px}.stability-bar{height:4px;width:80px;display:block;background:#dcd0e3;border-radius:4px;margin:8px 0 0 auto}.stability-bar i{display:block;height:100%;background:#9aa991;width:100%;border-radius:4px}.game-tools{position:absolute;right:24px;top:300px;display:flex;flex-direction:column;gap:7px}.game-tools button{width:32px;height:32px;border:1px solid #f9f4fc;background:#fffbf5a3;border-radius:50%;font-size:14px;color:#796288}.aim-help{position:absolute;bottom:169px;left:50%;transform:translate(-50%);display:flex;gap:14px;font-size:8px;color:#95819f;white-space:nowrap}.aim-help span{display:flex;gap:4px;align-items:center}kbd{font:inherit;padding:2px 4px;border:1px solid #d5c6de;border-radius:3px;min-width:15px;text-align:center}.game-bottom{position:absolute;bottom:18px;left:24px;right:24px;min-height:128px;border:1px solid #fff9f5;background:#fcf8f0f2;border-radius:17px;box-shadow:0 6px 25px #6d588710;display:flex;align-items:center;gap:19px;padding:15px 19px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.tray-label{min-width:160px}.tray-label .eyebrow{font-size:8px;letter-spacing:1.2px}.tray-label>b{display:block;font-size:12px;margin:8px 0}.tray-label small{font-size:8px;color:#a194a7}.tray{display:flex;gap:9px;flex:1;min-width:0}.item-card{position:relative;border:1px solid #e3d9e7;background:#f6f1ed;border-radius:11px;display:flex;align-items:center;flex:1;min-width:0;height:94px;text-align:left;padding:7px 9px}.item-card:hover:not(:disabled){background:#ede3f0}.item-card.selected{border:1.5px solid #aa7ca5;background:#f0e2ec;box-shadow:0 0 0 2px #a57ba015}.item-card img{width:68px;height:66px;object-fit:contain;margin-left:-4px;pointer-events:none}.asset-symbol{font-size:38px;min-width:55px;text-align:center}.item-text b{display:block;font-size:11px;white-space:nowrap}.item-text small{display:block;font-size:8px;color:#9e87a4;margin-top:7px;white-space:nowrap}.difficulty{position:absolute;left:12px;bottom:4px;color:#ad92b7;font-size:9px;letter-spacing:3px}.placement-tools{width:130px;flex-shrink:0}.rotate-tools{display:flex;justify-content:space-between;margin-bottom:8px;gap:5px}.rotate-tools button{height:26px;flex:1;background:#eee5ed;border-radius:5px;font-size:11px}.drop-button{padding:14px 16px;width:100%;gap:14px}.empty-tray{font-size:11px;color:#a093a8;padding:20px}.paused-overlay{position:absolute;inset:0;background:#ede4f0c9;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);z-index:12;display:flex;align-items:center;justify-content:center}.paused-overlay[hidden]{display:none}.paused-overlay>div{text-align:center}.paused-overlay>div>span{font-size:10px;letter-spacing:2px;color:var(--purple)}.paused-overlay p{font-size:12px;color:var(--muted);margin-bottom:25px}.paused-overlay .primary{margin:auto}.modal-backdrop{position:fixed;inset:0;background:#31293e5c;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:50;display:flex;align-items:center;justify-content:center;padding:24px}.modal{width:540px;max-width:100%;max-height:90svh;overflow:auto;position:relative;padding:35px;background:#fbf7ef;border-radius:22px;box-shadow:0 25px 100px #33274140}.modal-close{position:absolute;right:17px;top:14px;font-size:25px;color:#98879f;width:30px;height:30px;border-radius:50%}.modal-close:hover{background:#e9dfed}.modal>p,.result-content>p{font-size:12px;color:#8e7e97;line-height:1.8}.large-modal{width:850px}.rule-list{margin:25px 0}.rule-list p{display:flex;gap:18px;border-top:1px solid #e7dce8;padding-top:17px;margin:18px 0;font-size:11px;line-height:1.8;color:#95819f}.rule-list p>b{font-size:17px;font-weight:500;color:#c19ab8}.rule-list strong{display:block;color:var(--ink);font-size:12px;margin-bottom:4px}.asset-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:23px 0}.asset-detail{border:1px solid #e8dfe8;border-radius:14px;padding:14px;background:#f6eff2;position:relative}.asset-detail img{width:100%;height:130px;object-fit:contain}.asset-detail .asset-symbol{display:block;height:130px;line-height:130px;font-size:80px}.asset-detail h3{font-size:13px;margin:12px 0 8px}.asset-detail p{font-size:10px;line-height:1.8;min-height:52px;color:#95819f}.asset-detail small{font-size:8px;letter-spacing:.5px;color:#a08ba9}.tier{position:absolute;top:10px;left:10px;font-size:8px;color:#a28bab}details{margin:15px 0;font-size:12px}summary{cursor:pointer;padding:12px 0}.planned-list{display:grid;grid-template-columns:1fr 1fr;gap:8px}.planned-list>div{background:#eee5ee;padding:11px;border-radius:6px}.planned-list b,.planned-list span,.planned-list small{display:block;font-size:10px;line-height:1.8}.planned-list span,.planned-list small{color:#94809d}.text-link{font-size:11px;text-decoration:underline;color:var(--purple);text-underline-offset:4px}.config-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.number-field{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10px;padding:7px 0;color:#8b7495}.number-field input{width:70px;border-radius:5px;padding:6px;font-size:11px}.modal h3{font-size:13px;margin-top:24px}.item-configs{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.item-configs fieldset{border:1px solid #e0d2e6;border-radius:9px;padding:8px 12px}.item-configs legend{font-size:11px;padding:0 6px}.lab-actions{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin-top:22px}.file-label{cursor:pointer}.file-label input{display:none}.debug-switch{font-size:11px;display:flex;align-items:center;gap:7px;background:#eee4ed;border-radius:7px;padding:12px}.result-modal{width:520px}.result-content{text-align:center}.result-content .eyebrow{justify-content:center}.result-content h2{font-size:36px;margin-top:25px}.result-stats{display:flex;justify-content:space-around;border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:20px 0;margin:24px 0}.result-stats span{font-size:9px;color:#9c88a5}.result-stats b{font-size:24px;display:block;color:var(--ink);font-weight:500;margin-bottom:7px}.rematch-note{font-size:10px;color:#9d88a6;line-height:1.8;margin-bottom:18px}.result-links{display:flex;flex-wrap:wrap;gap:11px;justify-content:center;margin-top:15px}.result-links button{font-size:10px;color:#9b83a6;text-decoration:underline;text-underline-offset:4px}.feedback-form{display:flex;flex-direction:column;gap:12px}.feedback-form>label{font-size:11px;color:#8d769a;line-height:2}.feedback-form textarea{display:block;resize:vertical;border-radius:7px;padding:8px;width:100%;font-size:12px;line-height:1.7}.share-text{width:100%;padding:12px;border-radius:9px;font-size:12px;line-height:1.8}.toast{position:fixed;bottom:30px;left:50%;transform:translate(-50%,20px);z-index:100;background:#31293e;color:#fff7ed;font-size:12px;border-radius:10px;padding:13px 22px;opacity:0;pointer-events:none;max-width:90%;box-shadow:0 8px 30px #30233c22;transition:.2s;line-height:1.7}.toast.visible{opacity:1;transform:translate(-50%)}@media(min-width:1500px){.experience{max-width:1600px;margin:auto}.home-copy{padding-top:75px}.wish-card{margin-top:35px}.hero-sticker{right:10%}}@media(max-width:1100px){.experience{min-height:660px}.home-copy{width:50%;padding-top:40px}h1{font-size:62px}.wish-bottom{flex-direction:column;align-items:stretch}.wish-bottom>span{display:none}.wish-card textarea{font-size:11px}.hero-sticker{right:5%;font-size:16px}.tray-label{display:none}.game-bottom{gap:12px}.item-card img{width:60px}.turn-card{width:215px}.lobby-card{width:52%;padding-top:40px}.room-rules{gap:7px;font-size:9px}}@media(max-width:760px){.topbar{height:72px;margin:0 5%}.brand{font-size:16px}.brand-mark{transform:scale(.8);margin-right:-3px}.brand small{font-size:6px}.topbar nav{gap:11px;font-size:10px}.topbar nav a{display:none}.topbar nav button{padding:4px}.sound-btn{display:none}.experience{height:auto;min-height:940px;margin:0 3%}.home-mode .stage,.lobby-mode .stage,.generating-mode .stage{inset:0 0 auto;height:370px}.home-mode .stage:after,.lobby-mode .stage:after,.generating-mode .stage:after{background:linear-gradient(0deg,var(--paper),transparent 30%)}.home-copy{padding:335px 6% 15px;width:100%}.home-copy .eyebrow{font-size:9px}h1{font-size:45px;letter-spacing:-3px;line-height:1.15;margin:15px 0}h1 br{display:none}.intro{font-size:12px;margin-bottom:16px}.intro br{display:none}.mini-facts{margin:15px 0 20px;gap:26px}.mini-facts b{font-size:17px}.wish-card{padding:15px;max-width:none}.wish-bottom{flex-direction:row}.wish-card textarea{font-size:12px;height:76px}.wish-bottom>span{display:block;font-size:9px}.primary{padding:14px 17px;font-size:11px}.hero-sticker{top:35px;right:25px;font-size:14px;padding:12px 16px}.hero-caption{display:none}.asset-badge{font-size:7px;bottom:auto;top:316px;right:8%;letter-spacing:.8px}.footer{height:auto;min-height:65px;flex-direction:column;align-items:flex-start;justify-content:center;gap:10px;font-size:8px;margin:0 8%}.footer button{font-size:8px}.generation-card,.lobby-card{width:100%;padding:345px 6% 20px}.lobby-card h2{font-size:29px}.lobby-card h2 br{display:none}.lobby-card .intro{font-size:12px}.room-rules{font-size:9px;justify-content:space-between}.prototype-note{font-size:9px}.player-inputs{margin:17px 0}.lobby-actions{max-width:none}.lobby-actions .secondary{font-size:10px}.lobby-actions .text-button{font-size:9px}.game-mode{height:calc(100svh - 72px);min-height:690px;margin:0}.game-mode .stage{inset:0}.game-mode .asset-badge{top:auto;bottom:225px;right:15px;font-size:6px}.game-mode+.footer{display:none}.game-top{top:12px;left:12px;right:12px;gap:8px}.player-card{min-width:0;padding:8px 9px;gap:7px;flex:1;border-radius:9px}.player-card small{font-size:5px;letter-spacing:.6px}.player-card b{font-size:10px;max-width:65px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-card strong{font-size:18px}.avatar{width:27px;height:27px;font-size:9px}.game-clock>span{font-size:6px}.game-clock>strong{font-size:19px}.turn-card{top:80px;left:14px;padding:10px 12px;width:180px}.turn-card h2{font-size:15px;margin:7px 0}.turn-card .eyebrow{font-size:7px}.turn-card p{font-size:9px;min-height:31px;margin-bottom:9px}.turn-details{font-size:6px;gap:3px}.tower-stats{top:89px;right:15px;font-size:8px;gap:10px}.tower-stats b{font-size:21px}.tower-stats small{font-size:6px}.stability-bar{width:55px}.game-tools{top:235px;right:12px;gap:7px}.game-tools button{width:29px;height:29px}.aim-help{bottom:230px;font-size:7px;gap:8px}.aim-help span:first-child{display:none}.game-bottom{bottom:12px;left:11px;right:11px;padding:11px;flex-wrap:wrap;gap:9px;border-radius:13px}.tray{flex:0 0 100%;gap:7px}.item-card{height:94px;display:flex;flex-direction:column;justify-content:center;padding:0 4px}.item-card img{width:62px;height:51px;margin:0}.item-text{text-align:center}.item-text b{font-size:9px}.item-text small{font-size:7px;margin-top:3px}.difficulty{left:5px;top:2px;bottom:auto;font-size:7px;letter-spacing:1px}.placement-tools{width:100%;display:flex;gap:11px;align-items:center}.rotate-tools{flex:1;margin:0;gap:7px}.rotate-tools button{height:38px}.drop-button{width:47%;height:44px;font-size:12px}.modal-backdrop{padding:14px}.modal{padding:25px 21px;border-radius:17px;max-height:92svh}.modal h2{font-size:28px}.asset-grid{grid-template-columns:1fr 1fr;gap:10px}.asset-detail{padding:10px}.asset-detail img{height:100px}.asset-detail h3{font-size:11px}.asset-detail p{font-size:9px;min-height:60px}.asset-detail small{font-size:7px}.config-grid,.item-configs{grid-template-columns:1fr 1fr}.number-field{font-size:9px}.number-field input{width:59px;font-size:10px}.planned-list{grid-template-columns:1fr}.lab-actions .secondary{font-size:10px;padding:10px}.result-content h2{font-size:29px}.result-stats b{font-size:21px}.paused-overlay h2{font-size:30px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}@media(max-width:760px){.lobby-mode .stage{height:260px}.lobby-mode .lobby-card{padding-top:245px}.lobby-mode .asset-badge{top:235px}.lobby-mode .hero-sticker{top:24px;font-size:12px}.lobby-mode{min-height:820px}.game-mode .aim-help span:first-child{display:flex}.game-mode .aim-help span:not(:first-child){display:none}}.online-name-label{display:grid;gap:8px;font-size:12px;color:var(--muted);margin:18px 0 14px}.online-name-label input{width:100%;padding:12px 14px;border:1px solid #dfd6e5;border-radius:10px;background:#fffaf2;color:#30283d;font:inherit;font-size:15px;box-sizing:border-box}.online-seats{display:flex;gap:10px;margin:12px 0 18px}.online-seat{flex:1;display:grid;grid-template-columns:14px 1fr;gap:6px;align-items:center;padding:12px;border:1px solid #e6dfe9;border-radius:12px;background:#fffbf5}.online-seat b{font-size:14px}.online-seat small{grid-column:2;color:#8d8199;font-size:11px}.network-banner{position:absolute;top:108px;left:50%;transform:translate(-50%);font-size:11px;color:#82748f;padding:6px 12px;background:#fffaf2dc;border-radius:20px;white-space:nowrap;pointer-events:none}@media(max-width:700px){.network-banner{top:58px;max-width:95%;padding:4px 8px;white-space:normal;text-align:center;font-size:8px}.lobby-card .intro{margin-bottom:12px}.online-name-label{margin:12px 0}.online-seats{margin:8px 0}.online-seat{padding:9px}.lobby-card .prototype-note{font-size:10px;line-height:1.6}}.touch-aim{display:none!important}.game-mode .aim-help{flex-wrap:wrap;justify-content:center;pointer-events:none}.landing-hint{color:#877295}@media(pointer:coarse){.mouse-aim{display:none!important}.touch-aim{display:inline!important}}.landing-hint.missed{color:#c84565;font-weight:700}.game-mode .aim-help{background:#fffaf2de;padding:7px 12px;border-radius:20px;width:max-content;max-width:90%;line-height:1.5}.game-mode{--status-rail:clamp(174px,18vw,230px);--item-rail:clamp(190px,20vw,238px)}.game-mode .stage{inset:88px calc(var(--item-rail) + 40px) 66px calc(var(--status-rail) + 40px)}.game-mode .turn-card{left:24px;top:116px;width:var(--status-rail);padding:17px}.game-mode .tower-stats{left:28px;right:auto;top:370px;text-align:left;width:var(--status-rail);flex-direction:row;gap:22px;align-items:center}.game-mode .game-tools{inset:auto auto 24px 24px;flex-direction:row}.game-mode .asset-badge{inset:auto auto 72px 28px;font-size:7px;letter-spacing:.6px}.game-mode .item-sidebar{inset:116px 24px 24px auto;width:var(--item-rail);min-height:0;display:flex;flex-direction:column;align-items:stretch;gap:13px;padding:15px;overflow:auto;flex-wrap:nowrap;border-radius:16px}.item-sidebar .tray-label{display:block;min-width:0;flex-shrink:0}.item-sidebar .tray-label>b{font-size:12px;margin:7px 0 4px}.item-sidebar .tray-label small{line-height:1.6}.item-sidebar .tray{flex:1 0 auto;flex-direction:column;gap:9px;min-height:0}.item-sidebar .item-card{flex:1;min-height:68px;height:clamp(68px,11svh,100px);max-height:112px;flex-direction:row;justify-content:flex-start;padding:8px 7px}.item-sidebar .item-card img{width:64px;height:60px;flex-shrink:0;margin:0 4px 0 -2px}.item-sidebar .item-text b{font-size:11px}.item-sidebar .item-text small{font-size:9px}.item-sidebar .difficulty{left:10px;top:auto;bottom:3px;font-size:7px}.item-sidebar .placement-tools{width:100%;flex:0 0 auto;display:block;margin-top:auto;padding-top:10px;border-top:1px solid #e8dfe9}.hold-hint{font-size:10px;color:#8a7498;margin:0 0 9px;text-align:center}.item-sidebar .rotate-tools{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:0}.item-sidebar .rotate-tools button{height:36px;min-width:0;display:flex;align-items:center;justify-content:center;gap:4px;touch-action:none;user-select:none;-webkit-user-select:none;font-size:10px}.rotate-tools button:active:not(:disabled){background:#d7c6e2;box-shadow:inset 0 0 0 1px #aa8db9}.rotate-tools kbd{font:inherit;font-size:8px;color:#967ba5;opacity:.8}.rotation-readout{display:block;text-align:center;margin:9px 0 12px;color:#9b86a4;font-size:9px;font-variant-numeric:tabular-nums}.item-sidebar .drop-button{width:100%;height:43px;padding:12px;flex:none}.game-mode .aim-help{left:calc(var(--status-rail) + 40px);right:calc(var(--item-rail) + 40px);bottom:24px;transform:none;width:auto;max-width:none;white-space:normal;gap:5px 10px;font-size:9px}.game-mode .network-banner{top:88px;font-size:9px;padding:4px 10px}@media(max-width:900px)and (min-width:761px){.game-mode{--status-rail:162px;--item-rail:178px}.game-mode .turn-card{padding:13px}.turn-card h2{font-size:17px}.item-sidebar .item-card img{width:52px}.game-mode .tower-stats{gap:12px}.game-mode .aim-help{font-size:8px}}@media(max-width:760px){.game-mode{--item-rail:112px;--status-rail:0px;min-height:690px}.game-mode .stage{inset:216px calc(var(--item-rail) + 17px) 78px 8px}.game-mode .turn-card{top:86px;left:12px;width:calc(100% - var(--item-rail) - 38px);padding:10px 12px}.game-mode .turn-card h2{font-size:14px;margin:6px 0}.game-mode .turn-card p{font-size:9px;min-height:0;margin-bottom:6px;line-height:1.5}.game-mode .turn-details{font-size:7px}.game-mode .turn-progress{margin-top:7px}.game-mode .tower-stats{top:auto;bottom:79px;left:15px;width:auto;gap:14px;font-size:7px}.game-mode .tower-stats b{font-size:17px}.game-mode .tower-stats small{display:none}.game-mode .item-sidebar{right:8px;top:86px;bottom:14px;width:var(--item-rail);padding:9px;gap:9px;border-radius:12px}.item-sidebar .tray-label .eyebrow{font-size:6px;letter-spacing:.5px}.item-sidebar .tray-label>b{font-size:9px;margin:5px 0}.item-sidebar .tray-label small{font-size:7px}.item-sidebar .tray{gap:7px;flex:1 0 auto}.item-sidebar .item-card{flex-direction:column;justify-content:center;min-height:78px;height:13svh;max-height:108px;padding:5px 3px}.item-sidebar .item-card img{width:64px;height:52px;margin:0}.item-sidebar .item-text b{font-size:9px}.item-sidebar .item-text small{font-size:7px}.item-sidebar .difficulty{left:4px;top:2px;bottom:auto;font-size:6px}.hold-hint{font-size:8px;white-space:nowrap;margin-bottom:7px}.item-sidebar .rotate-tools{gap:4px}.item-sidebar .rotate-tools button{height:37px;font-size:9px;gap:1px}.rotate-tools kbd{display:none}.rotation-readout{font-size:7px;margin:7px 0 9px}.item-sidebar .drop-button{font-size:10px;height:39px;gap:6px;padding:8px 5px}.game-mode .game-tools{left:12px;bottom:14px;gap:6px}.game-mode .game-tools button{width:28px;height:28px}.game-mode .asset-badge{display:none}.game-mode .aim-help{left:10px;right:calc(var(--item-rail) + 18px);bottom:48px;font-size:7px;padding:5px 8px;gap:3px}.game-mode .aim-help .landing-hint{display:flex!important}.game-mode .network-banner{top:60px;font-size:7px;max-width:95%;padding:3px 8px}}@media(min-width:761px){.game-mode{height:calc(100svh - 144px);min-height:550px;background:#f0f0f1}.game-mode .item-sidebar{top:104px;bottom:20px;padding:12px;gap:10px;overflow:hidden}.item-sidebar .tray{flex:1 1 0;min-height:0;overflow-y:auto;gap:7px}.item-sidebar .item-card{flex:1 1 0;min-height:54px;height:auto;max-height:112px;padding:5px 7px}.item-sidebar .item-card img{height:54px;width:60px}.item-sidebar .placement-tools{padding-top:8px}.item-sidebar .hold-hint{margin-bottom:6px;line-height:1.3}.item-sidebar .rotate-tools button{height:32px}.item-sidebar .rotation-readout{margin:6px 0 8px;line-height:1.3}.item-sidebar .drop-button{height:40px}}@media(max-width:760px){.game-mode{background:#f0f0f1}.game-mode .item-sidebar{overflow:hidden}.item-sidebar .tray{flex:1 1 0;min-height:0;overflow-y:auto}.item-sidebar .item-card{flex:1 1 0;height:auto}}.game-clock{position:relative;min-width:116px}.turn-timer{position:absolute;top:58px;left:50%;transform:translate(-50%);min-width:138px;display:flex;align-items:center;justify-content:center;gap:9px;padding:7px 12px;border:1px solid #e7c7d5;background:#fffaf4;border-radius:14px;color:#a34068;box-shadow:0 4px 18px #6949760a;white-space:nowrap}.turn-timer b{font-size:25px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.1}.turn-timer span{font-size:10px;font-weight:600}.turn-timer.urgent{background:#b83960;color:#fff;border-color:#b83960;box-shadow:0 0 0 4px #b8396018}.turn-timer.waiting{color:#87708f;border-color:#e4d9e8}.item-copies{font-size:10px;font-style:normal;color:#a34068}.game-mode .network-banner{top:auto;bottom:5px;left:calc(var(--status-rail) + 40px);right:calc(var(--item-rail) + 40px);transform:none;text-align:center;font-size:8px;max-width:none;white-space:normal}.game-mode .aim-help{bottom:28px}@media(max-width:760px){.game-clock{min-width:92px}.turn-timer{top:47px;min-width:130px;padding:5px 9px;gap:7px;border-radius:10px}.turn-timer b{font-size:22px}.turn-timer span{font-size:9px}.game-mode .turn-card,.game-mode .item-sidebar{top:112px}.game-mode .stage{top:244px}.game-mode .network-banner{left:12px;right:calc(var(--item-rail) + 18px);bottom:82px;font-size:7px}.game-mode .aim-help{bottom:48px}.aim-help .orbit-hint{display:none}}body{min-width:960px;background:#f5f2ed}.topbar{height:72px;margin:0;padding:0 40px;border:0;position:relative;z-index:30}.brand{font-size:18px;letter-spacing:-.6px;gap:10px}.brand-mark{transform:scale(.8);margin-left:-3px}.app-menu{margin:0;position:relative}.app-menu summary{list-style:none;font-size:24px;letter-spacing:3px;line-height:28px;width:42px;text-align:center;border-radius:10px;padding:4px;-webkit-user-select:none;user-select:none}.app-menu summary::-webkit-details-marker{display:none}.app-menu summary:hover,.app-menu[open] summary{background:#eae3ed}.topbar .app-menu nav{position:absolute;right:0;top:45px;width:210px;display:flex;flex-direction:column;gap:0;padding:7px;background:#fffaf5;border:1px solid #e3dbe4;border-radius:14px;box-shadow:0 16px 50px #30233c1c;align-items:stretch}.topbar .app-menu nav button,.topbar .app-menu nav a{display:flex;justify-content:space-between;text-align:left;padding:11px 12px;border-radius:8px;font-size:12px;font-weight:500;text-decoration:none}.app-menu nav button:hover,.app-menu nav a:hover{background:#eee7f0}.app-menu small{color:#9d8ca7;font-size:10px}body:not(.is-playing) .game-only{display:none!important}.experience{margin:0;min-height:590px;height:calc(100svh - 72px);overflow:hidden;border-radius:0;isolation:isolate;background:#f0eef2}.experience .stage{border-radius:0;transition:filter .5s,opacity .5s;background:#f0eef2}.experience.home-mode .stage,.experience.lobby-mode .stage,.experience.generating-mode .stage{inset:-18px;height:auto;filter:blur(12px);opacity:.44;pointer-events:none;transform:scale(1.03)}.home-mode .stage:after,.lobby-mode .stage:after,.generating-mode .stage:after{background:linear-gradient(110deg,#e9e3ed77,#eee6eb44)}.pregame-shell{position:absolute;inset:0;max-width:968px;width:calc(100% - 112px);margin:auto;display:grid;grid-template-columns:minmax(430px,1.28fr) minmax(310px,1fr);align-items:center;gap:36px;padding:24px 0 44px}.room-panel{padding:34px 38px 26px;background:#fffaf5ed;border:1px solid #ffffffcc;border-radius:24px;box-shadow:0 20px 80px #47354c0b;animation:panel-enter .35s ease-out}.room-kicker{font-size:11px;letter-spacing:1.3px;color:#927a9e;display:block}.room-panel h1,.room-panel h2{font-size:42px;letter-spacing:-2px;line-height:1.24;margin:19px 0 15px;font-weight:800}.room-intro{font-size:13px;color:#83738b;line-height:1.8;margin:0 0 24px}.room-panel .primary{height:48px;padding:13px 18px;border-radius:11px;font-size:13px;box-shadow:none}.room-panel .secondary{height:43px;font-size:12px;background:transparent;border-color:#dcd1e2;border-radius:11px}.room-panel .wish-card{padding:15px 17px;background:#f3edf3;border:0;box-shadow:none;border-radius:12px;margin:22px 0 20px}.wish-card label{font-size:11px;display:flex;justify-content:space-between;color:#71627d;margin-bottom:10px}.wish-card label span{font-size:9px;color:#9f8da6}.room-panel .wish-card textarea{height:80px;min-height:0;font-size:12px;color:#796582;line-height:1.8}.room-footnote{font-size:10px;color:#a08ca8;line-height:1.8;text-align:center;margin:16px 0 0}.room-footnote span{display:block;font-size:9px;margin-top:4px}.room-switch{display:block;margin:16px auto 0;font-size:11px;color:#897492;padding:2px 0;text-decoration:underline;text-underline-offset:5px}.room-name{display:flex;flex-direction:column;gap:8px;font-size:11px;color:#93829a;margin:20px 0}.room-name input{border-radius:10px;font-size:14px;padding:12px 14px;background:#ffffff80;border-color:#e1d8e6;width:100%}.room-seats{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:20px 0 24px;padding-bottom:18px;border-bottom:1px solid #e5dce8}.room-seats>div{display:flex;align-items:center;gap:5px;flex-wrap:wrap;min-width:0}.room-seats b{font-size:12px;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-seats small{flex-basis:100%;padding-left:16px;font-size:10px;color:#9b8aa4;margin-top:3px}.room-seats .player-dot{width:6px;height:6px}.room-actions{display:grid;gap:10px}.room-error{font-size:11px;color:#b14a6f;text-align:center;margin:12px 0 0}.room-panel .player-inputs{margin:26px 0}.room-panel .player-inputs input{border-radius:10px;background:#ffffff80}.room-panel .progress-track{margin:35px 0 32px;max-width:none;height:3px}.tutorial-card{padding:0;color:#6a5778;align-self:center;animation:panel-enter .5s ease-out}.tutorial-heading{display:flex;align-items:center;justify-content:space-between;margin:0 4px 14px;font-size:11px;letter-spacing:.7px;color:#8c779a}.tutorial-toggle{border-radius:50%;width:29px;height:29px;font-size:13px;color:#8c779a;background:#fffaf560}.tutorial-toggle:hover{background:#fffaf5}.tutorial-screen{position:relative;overflow:hidden;border-radius:20px;background:#ece5f3;box-shadow:0 8px 30px #634c7608;aspect-ratio:4/3}.tutorial-screen video{width:100%;height:100%;display:block;object-fit:cover}.tutorial-counter{position:absolute;left:17px;top:14px;font-size:9px;letter-spacing:2px;color:#9c83aa}.tutorial-caption{padding:20px 4px 19px;min-height:146px}.tutorial-caption h3{font-size:20px;letter-spacing:-.6px;margin:0 0 10px;font-weight:600;color:#564260}.tutorial-caption p{font-size:11px;line-height:1.9;color:#9a84a5;margin:0;max-width:310px}.tutorial-caption small{display:block;font-size:10px;color:#7f668f;margin-top:14px}.tutorial-tabs{display:flex;gap:7px}.tutorial-tabs button{flex:1;text-align:left;border-top:2px solid #d9ccdf;padding:11px 3px 0;font-size:10px;color:#a08aab}.tutorial-tabs button span{font-size:8px;letter-spacing:1px;margin-right:10px}.tutorial-tabs button[aria-pressed=true]{border-color:#9273a3;color:#674679}.home-mode .asset-badge,.lobby-mode .asset-badge,.generating-mode .asset-badge{font-size:8px;letter-spacing:.6px;bottom:15px;top:auto;right:24px;color:#a795b1}.experience.game-mode{height:calc(100svh - 72px);min-height:560px;background:#f0f0f1}.experience.game-mode .stage{inset:84px 182px 60px 28px;filter:none;opacity:1}.game-mode .asset-badge{display:none}.duel-hud{position:absolute;top:15px;left:50%;transform:translate(-50%);display:flex;align-items:center;justify-content:center;gap:35px;z-index:3;pointer-events:none}.duel-player{display:flex;align-items:center;gap:11px;min-width:135px;justify-content:center;padding:12px 0;border-bottom:2px solid transparent;opacity:.5;transition:opacity .2s,border-color .2s}.duel-player.active{border-bottom-color:#a48ab4;opacity:1}.duel-player b{font-size:13px;max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.duel-player strong{font-size:25px;font-weight:500;min-width:18px;font-variant-numeric:tabular-nums}.duel-player .player-dot{margin:0;width:7px;height:7px;flex:none}.duel-clock{min-width:150px;text-align:center}.duel-meta{display:flex;align-items:center;justify-content:center;gap:11px;font-size:9px;color:#a091ab}.duel-meta b{font-weight:500}.duel-meta #match-clock{border-left:1px solid #ddd3e2;padding-left:11px;font-variant-numeric:tabular-nums}.duel-timer{display:flex;align-items:center;justify-content:center;gap:9px;margin-top:5px;color:#725681;border-radius:10px;padding:0 7px;transition:background .2s,color .2s}.duel-timer>b{font-size:32px;font-weight:600;line-height:1.3;letter-spacing:-1px;font-variant-numeric:tabular-nums}.duel-timer>span{font-size:9px;max-width:92px;text-align:left;line-height:1.6}.duel-timer.urgent{background:#b83960;color:#fff}.duel-timer.waiting{color:#9d88aa}.play-status{position:absolute;top:94px;left:calc(50% - 77px);transform:translate(-50%);padding:6px 12px;font-size:11px;color:#95809e;pointer-events:none;z-index:2}.play-status.warning{color:#b34065;background:#fff4f3e0;border-radius:20px}.play-status[hidden]{display:none}.object-tray{position:absolute;right:30px;top:50%;transform:translateY(-50%);width:126px}.tray-heading{display:block;text-align:center;font-size:10px;color:#a391ac;letter-spacing:1px;margin-bottom:12px}.object-tray #tray{display:flex;flex-direction:column;gap:9px}.object-choice{position:relative;width:100%;height:113px;padding:5px 8px 11px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid #e4dce88a;border-radius:16px;background:#faf7f84d;transition:background .2s,border-color .2s,opacity .2s}.object-choice img{width:90px;height:73px;object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none}.object-choice>span{font-size:11px;color:#8d779a}.object-choice:hover:not(:disabled){background:#fffaf5b3;border-color:#bca6c7}.object-choice.selected{background:#eee3f080;border-color:#b89dc7}.object-choice.selected>span{color:#6e4b82}.object-choice:disabled{opacity:.55;cursor:default}.object-count{position:absolute;top:9px;right:10px;font-size:10px;color:#a078ac}.tray-empty{font-size:10px;color:#a391ac;text-align:center}.control-hint{position:absolute;bottom:22px;left:28px;right:182px;display:flex;justify-content:center;align-items:center;gap:5px;font-size:11px;color:#93819e;margin:0;white-space:nowrap;pointer-events:none}.control-hint i{font-style:normal;color:#c8bbd0;margin:0 7px}.control-hint kbd{font-size:10px;border:0;padding:0;min-width:0;color:#8b7599}.game-mode .network-banner{position:absolute;inset:auto 182px 47px 28px;transform:none;text-align:center;color:#ad5075;background:transparent;border-radius:0;font-size:10px;max-width:none;padding:0}.network-banner[hidden]{display:none}.paused-overlay{background:#eee8efaa;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.paused-overlay h2{font-size:34px;letter-spacing:-1px}.paused-overlay .text-button{display:block;margin:15px auto 0}.modal-backdrop{background:#61566940;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.modal{box-shadow:0 24px 100px #30233c16}.result-links{gap:18px}.result-stats{padding:17px 0}.result-content h2{font-size:33px}@keyframes panel-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-height:760px){.room-panel{padding:25px 32px 22px}.room-panel h1,.room-panel h2{font-size:36px;margin:14px 0 12px}.room-intro{margin-bottom:18px}.room-name{margin:15px 0}.room-seats{margin:16px 0 18px;padding-bottom:15px}.room-footnote,.room-switch{margin-top:12px}.pregame-shell{padding:14px 0 32px}.tutorial-caption{padding:16px 4px 14px;min-height:132px}}@media(prefers-reduced-motion:reduce){.room-panel,.tutorial-card{animation:none}.experience .stage{transition:none}}
