:root{--ui-font: "Trebuchet MS", "Segoe UI Rounded", Verdana, system-ui, sans-serif;--panel-bg: rgba(255, 250, 240, .96);--panel-border: #e8b96f;--ink: #5b4632;--accent: #ff9f43;--accent-dark: #e58e2f;--good: #6ab04c;--locked: #b9b2a7}*{box-sizing:border-box}html,body{margin:0;padding:0;width:100%;height:100%;overflow:hidden;background:#87ceeb;font-family:var(--ui-font);color:var(--ink);user-select:none;-webkit-user-select:none}#app,#app canvas{position:absolute;inset:0;display:block}#boot-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:700;color:#fff;text-shadow:0 2px 6px rgba(0,0,0,.3);background:linear-gradient(#8fd3f4,#b7e4c7);z-index:999}#ui{position:absolute;inset:0;pointer-events:none;z-index:10}#ui>*{pointer-events:none}#ui .clickable,#ui .clickable *{pointer-events:auto}.crosshair{position:absolute;left:50%;top:50%;width:16px;height:16px;margin:-8px 0 0 -8px;transition:transform .12s ease}.crosshair:before,.crosshair:after{content:"";position:absolute;background:#ffffffe6;border-radius:2px;box-shadow:0 0 3px #00000073;transition:background .12s ease}.crosshair:before{left:50%;top:0;width:3px;height:100%;transform:translate(-50%)}.crosshair:after{top:50%;left:0;height:3px;width:100%;transform:translateY(-50%)}.crosshair.hot{transform:scale(1.3)}.crosshair.hot:before,.crosshair.hot:after{background:#ffd166}.mg-hud{position:absolute;top:62px;left:50%;transform:translate(-50%);display:none;align-items:center;gap:8px;background:var(--panel-bg);border:3px solid var(--panel-border);border-radius:999px;padding:7px 20px;font-size:17px;font-weight:700;box-shadow:0 3px #0000001f}.mg-hud.show{display:flex}.mg-hud .mg-time{color:var(--accent-dark);min-width:52px}.mg-hud .mg-swatch{display:inline-block;width:28px;height:28px;border-radius:7px;border:2px solid rgba(0,0,0,.2);vertical-align:-7px;image-rendering:pixelated}.mg-hud .mg-target-name{font-size:20px}.mg-hud .mg-sep{width:2px;height:18px;background:var(--panel-border);border-radius:2px}.mg-hud .mg-streak{color:var(--accent-dark)}.mg-hud .mg-streak-reset{color:#e85d5d}.mg-hud.wrong{border-color:#e85d5d;animation:mg-shake .35s ease}@keyframes mg-shake{0%,to{transform:translate(-50%)}25%{transform:translate(calc(-50% - 6px))}75%{transform:translate(calc(-50% + 6px))}}.hud-topleft{position:absolute;top:14px;left:14px;display:flex;flex-direction:column;gap:8px}.coin-pill{display:inline-flex;align-items:center;gap:8px;background:var(--panel-bg);border:3px solid var(--panel-border);border-radius:999px;padding:6px 16px 6px 10px;font-size:20px;font-weight:700;box-shadow:0 3px #0000001f;width:max-content}.coin-pill .coin-icon{font-size:22px}.energy-wrap{background:var(--panel-bg);border:3px solid var(--panel-border);border-radius:999px;padding:4px;width:190px;box-shadow:0 3px #0000001f}.energy-bar{height:14px;border-radius:999px;background:linear-gradient(90deg,#ffd166,#ff9f43);transition:width .3s ease}.energy-label{font-size:11px;font-weight:700;text-align:center;margin-top:2px}.zone-banner{position:absolute;top:16px;left:50%;transform:translate(-50%);background:var(--panel-bg);border:3px solid var(--panel-border);border-radius:14px;padding:6px 22px;font-size:18px;font-weight:700;box-shadow:0 3px #0000001f;opacity:0;transition:opacity .4s ease}.zone-banner.show{opacity:1}.hotbar{position:absolute;bottom:14px;left:50%;transform:translate(-50%);display:flex;gap:5px;background:#5b463259;padding:5px;border-radius:12px}.hotbar-slot{width:48px;height:48px;border-radius:9px;background:#fffaf08c;border:3px solid rgba(255,250,240,.7);position:relative;display:flex;align-items:center;justify-content:center}.hotbar-slot.selected{border-color:#ffd166;background:#fffaf0e6;transform:scale(1.08)}.hotbar-slot .slot-num{position:absolute;top:1px;left:4px;font-size:10px;font-weight:700;color:#5b4632b3}.hotbar-slot .slot-count{position:absolute;bottom:1px;right:4px;font-size:12px;font-weight:700;color:var(--ink);text-shadow:0 1px 0 #fff}.hotbar-slot .slot-swatch{width:28px;height:28px;border-radius:6px;border:2px solid rgba(0,0,0,.15)}.xp-strip{position:absolute;bottom:76px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;width:330px}.xp-badge{font-size:15px;font-weight:700;color:#fff8ec;background:#5b4632a6;border-radius:999px;padding:2px 10px;white-space:nowrap}.xp-bar-track{flex:1;height:9px;background:#5b463273;border-radius:999px;overflow:hidden;border:1.5px solid rgba(255,248,236,.4)}.xp-bar-fill{height:100%;width:0;background:linear-gradient(90deg,#ffd166,var(--accent));border-radius:999px;transition:width .45s ease}.xp-strip.gain .xp-badge{animation:xp-pulse .5s ease}@keyframes xp-pulse{0%,to{transform:scale(1)}40%{transform:scale(1.22);background:var(--accent-dark)}}.toast-area{position:absolute;bottom:90px;left:50%;transform:translate(-50%);display:flex;flex-direction:column-reverse;align-items:center;gap:6px}.toast{background:var(--panel-bg);border:3px solid var(--good);color:var(--good);border-radius:999px;padding:5px 18px;font-size:20px;font-weight:700;animation:toast-pop 1.8s ease forwards}.toast.info{border-color:var(--panel-border);color:var(--ink)}@keyframes toast-pop{0%{transform:translateY(14px) scale(.6);opacity:0}12%{transform:translateY(0) scale(1.08);opacity:1}20%{transform:scale(1)}80%{opacity:1}to{transform:translateY(-24px);opacity:0}}.interact-hint{position:absolute;left:50%;top:58%;transform:translate(-50%);background:#5b4632bf;color:#fff8ec;border-radius:10px;padding:6px 16px;font-size:15px;font-weight:700;display:none}.interact-hint.show{display:block}.interact-hint .key{display:inline-block;background:#fff8ec;color:var(--ink);border-radius:5px;padding:0 7px;margin-right:6px}.overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#3c2a1873;backdrop-filter:blur(3px)}.overlay.hidden{display:none}.panel{background:var(--panel-bg);border:4px solid var(--panel-border);border-radius:22px;padding:28px 36px;min-width:340px;max-width:460px;text-align:center;box-shadow:0 8px #0000002e}.panel h1{margin:0 0 4px;font-size:34px;color:var(--accent-dark)}.panel h2{margin:0 0 12px;font-size:24px;color:var(--accent-dark)}.panel .subtitle{margin:0 0 18px;font-size:15px}.big-btn{display:inline-block;font-family:var(--ui-font);font-size:20px;font-weight:700;color:#fff;background:linear-gradient(#ffb25e,var(--accent));border:0;border-radius:14px;padding:12px 34px;cursor:pointer;box-shadow:0 4px 0 var(--accent-dark);margin:6px 4px}.big-btn:hover{filter:brightness(1.06)}.big-btn:active{transform:translateY(3px);box-shadow:0 1px 0 var(--accent-dark)}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:12px 0;font-size:15px;font-weight:700}.settings-row input[type=range]{flex:1;accent-color:var(--accent)}.settings-row input[type=checkbox]{width:22px;height:22px;accent-color:var(--accent);cursor:pointer}.panel .click-hint{margin:2px 0 10px;font-size:13px;opacity:.75}.settings-row select{font-family:var(--ui-font);font-size:15px;font-weight:700;color:var(--ink);border:2px solid var(--panel-border);border-radius:8px;padding:4px 8px;background:#fff}.controls-hint{margin-top:14px;font-size:13px;line-height:1.7;text-align:left}.shop-screen{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#3c2a1880;backdrop-filter:blur(3px)}.shop-screen.hidden{display:none}.shop-card{background:var(--panel-bg);border:4px solid var(--panel-border);border-radius:24px;width:min(860px,92vw);max-height:86vh;display:flex;flex-direction:column;box-shadow:0 8px #0000002e;overflow:hidden}.shop-header{display:flex;align-items:center;gap:16px;padding:16px 22px 10px}.shop-header h2{margin:0;flex:1;font-size:26px;color:var(--accent-dark)}.shop-close{font-family:var(--ui-font);font-size:20px;font-weight:700;width:42px;height:42px;border:3px solid var(--panel-border);border-radius:12px;background:#fff;color:var(--ink);cursor:pointer}.shop-close:hover{background:#ffe9c9}.shop-tabs{display:flex;gap:8px;padding:0 22px 12px}.shop-tab{font-family:var(--ui-font);font-size:17px;font-weight:700;padding:8px 22px;border:3px solid var(--panel-border);border-radius:12px;background:#fff;color:var(--ink);cursor:pointer}.shop-tab.active{background:linear-gradient(#ffb25e,var(--accent));color:#fff;border-color:var(--accent-dark)}.shop-body{padding:6px 22px 22px;overflow-y:auto}.tp-grid,.buy-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}.tp-card,.buy-card{background:#fff;border:3px solid var(--panel-border);border-radius:16px;padding:14px 10px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px}.tp-card.locked{opacity:.65;background:#f2ece1}.tp-icon,.buy-icon{font-size:38px;line-height:1}.tp-name,.buy-name{font-weight:700;font-size:15px;min-height:2.3em;display:flex;align-items:center}.tp-lock{font-size:13px;font-weight:700;color:var(--locked)}.tp-go{font-size:16px;padding:8px 24px;margin:0}.buy-swatch{width:40px;height:40px;border-radius:9px;border:3px solid rgba(0,0,0,.15)}.buy-price{font-size:14px;font-weight:700;color:var(--accent-dark)}.qty-row{display:flex;align-items:center;gap:10px}.qty-btn{font-family:var(--ui-font);width:30px;height:30px;font-size:18px;font-weight:700;border:3px solid var(--panel-border);border-radius:9px;background:#fff;color:var(--ink);cursor:pointer}.qty-btn:hover{background:#ffe9c9}.qty-num{font-size:17px;font-weight:700;min-width:26px;text-align:center}.buy-btn{font-size:14px;padding:8px 12px;margin:2px 0 0;width:100%}.buy-btn.disabled{filter:grayscale(.8) opacity(.6);cursor:not-allowed}.buy-card.soon{opacity:.8;background:#f7f2e8}.buy-card.locked{opacity:.72;background:#f2ece1}.house-pic{font-size:52px;line-height:1.1}.house-desc{font-size:12.5px;color:#7a6a52;min-height:2.2em}.house-current{font-weight:700;font-size:14px;color:var(--accent-dark);background:#ffe9c9;border-radius:10px;padding:7px 12px}.buy-card.active-home{border-color:var(--accent-dark)}.earn-pill .coin-icon{font-size:18px}.earn-pill{font-size:14px}.secret-row{display:flex;justify-content:flex-end;padding:12px 6px 2px}.secret-btn{width:20px;height:20px;border-radius:50%;background:#d9534f;border:2px solid #b23c38;cursor:pointer;padding:0}.secret-btn:hover{filter:brightness(1.12)}.secret-btn:active{transform:translateY(1px)}.rename-screen{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#3c2a1880;backdrop-filter:blur(3px)}.rename-screen.hidden{display:none}.rename-input{font-family:var(--ui-font);font-size:20px;font-weight:700;color:var(--ink);width:100%;border:3px solid var(--panel-border);border-radius:12px;padding:10px 14px;margin:6px 0 14px;text-align:center;background:#fff}.rename-input:focus{outline:none;border-color:var(--accent)}.dress-screen{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#3c2a1880;backdrop-filter:blur(3px)}.dress-screen.hidden{display:none}.dress-card{background:var(--panel-bg);border:4px solid var(--panel-border);border-radius:24px;width:min(820px,94vw);max-height:88vh;display:flex;flex-direction:column;box-shadow:0 8px #0000002e;overflow:hidden}.dress-body{display:flex;gap:18px;padding:4px 22px 20px;overflow-y:auto}.dress-left{flex:0 0 270px}#dress-preview{width:260px;height:340px;background:linear-gradient(#dff1fa,#f2ead8);border:3px solid var(--panel-border);border-radius:16px}.dress-right{flex:1;min-width:0}.dress-section{margin-bottom:12px}.dress-cat{font-weight:700;font-size:15px;color:var(--accent-dark);margin:8px 0 5px}.dress-sub{font-weight:700;font-size:12.5px;margin:6px 0 3px}.chip-row,.swatch-row,.pose-row{display:flex;flex-wrap:wrap;gap:6px}.pose-row{margin-top:8px}.chip{font-family:var(--ui-font);font-size:13.5px;font-weight:700;color:var(--ink);background:#fff;border:2.5px solid var(--panel-border);border-radius:999px;padding:5px 13px;cursor:pointer}.chip:hover{background:#ffe9c9}.chip.sel{background:linear-gradient(#ffb25e,var(--accent));color:#fff;border-color:var(--accent-dark)}.swatch{width:30px;height:30px;border-radius:9px;border:3px solid rgba(0,0,0,.18);cursor:pointer}.swatch:hover{transform:scale(1.1)}.swatch.sel{border-color:var(--accent-dark);box-shadow:0 0 0 2px #fff,0 0 0 4px var(--accent)}.dress-tabs{display:flex;flex-wrap:wrap;gap:5px;padding-bottom:8px;margin-bottom:8px;border-bottom:2px dashed rgba(0,0,0,.12)}.dress-tab{font-size:12.5px}.dress-panel{min-height:220px}.dress-note{background:#fff3dd;border-radius:10px;padding:6px 10px;margin:4px 0 8px;font-size:12.5px}.wheel-row{display:flex;align-items:center;gap:8px;margin-top:8px}.colorwheel{width:44px;height:34px;padding:0;border:3px solid rgba(0,0,0,.18);border-radius:9px;background:none;cursor:pointer}.wheel-label{font-size:12.5px;font-weight:700}.lock-progress{font-size:13px;font-weight:700;color:var(--accent-dark);margin-top:3px}.show-timer{position:absolute;top:18px;left:50%;transform:translate(-50%);font-size:26px;font-weight:700;color:#fff8ec;background:#5b4632bf;border-radius:999px;padding:6px 22px}.show-timer.warn{background:#d9534fd9;animation:xp-pulse 1s ease infinite}.show-timer.hidden,.show-votebar.hidden,.show-results.hidden{display:none}.show-votebar{position:absolute;bottom:90px;left:50%;transform:translate(-50%);background:#fffaf0f2;border:3px solid #e8b96f;border-radius:16px;padding:10px 14px;text-align:center}.vote-title{font-weight:700;margin-bottom:8px}.vote-btns{display:flex;gap:8px}.vote-btn{display:flex;flex-direction:column;align-items:center;gap:2px;background:var(--vc);color:#fff;border:3px solid rgba(0,0,0,.18);border-radius:12px;padding:8px 12px;cursor:pointer;font-weight:700;font-size:13px;text-shadow:0 1px 2px rgba(0,0,0,.35)}.vote-btn:hover{transform:scale(1.06)}.vote-shape{font-size:20px;line-height:1}.show-results{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#3c2a1880;backdrop-filter:blur(3px)}.show-card{background:#fffaf0;border-radius:18px;padding:20px 26px;min-width:340px;text-align:center}.show-winner-line{font-size:18px;font-weight:700;margin:8px 0 4px}.show-sub{font-size:13px;margin-bottom:8px;color:#7a6650}.show-row{display:flex;align-items:center;gap:10px;padding:5px 8px;border-radius:10px}.show-row.winner{background:#fff3d6}.show-name{font-weight:700;flex:1;text-align:left}.show-word{font-weight:700;font-size:13px}.rosette{width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;border:3px solid #f2c14e;box-shadow:0 2px 4px #0003}.rosette-star{color:#fff8ec;font-size:13px}.show-btns{display:flex;gap:10px;justify-content:center;margin-top:14px}.show-tiebreak{font-size:13px;font-weight:700;color:#7a6650;margin-bottom:6px}.hotbar.vote-mode .slot-swatch,.hotbar.vote-mode .slot-icon,.hotbar.vote-mode .slot-count{display:none}.vote-chip{position:absolute;inset:2px;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.4)}.vote-chip-shape{font-size:16px;line-height:1}.vote-chip-word{font-size:8px;font-weight:700}.context-lost{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#fdf6e9;text-align:center}.context-lost .panel{max-width:420px}.night-fade{position:absolute;inset:0;background:#1a1430;opacity:0;pointer-events:none}.night-fade.show{animation:night-pass 2.2s ease}@keyframes night-pass{0%{opacity:0}35%{opacity:.85}65%{opacity:.85}to{opacity:0}}.machine-panel{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#3c2a1859}.machine-panel.hidden{display:none}.machine-card{background:#fffaf0;border-radius:18px;padding:16px 22px;min-width:320px}.machine-body .swatch-row{margin-bottom:4px}.name-row input,#dress-name{font-size:17px;font-weight:700;padding:7px 12px;border:3px solid #e8b96f;border-radius:12px;background:#fffaf0;color:#5b4632;width:190px}#dress-name{width:100%;box-sizing:border-box;margin-top:4px}.jobs-screen{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#3c2a1880;backdrop-filter:blur(3px)}.jobs-screen.hidden{display:none}.jobs-card{background:var(--panel-bg);border:4px solid var(--panel-border);border-radius:24px;width:min(560px,92vw);box-shadow:0 8px #0000002e;overflow:hidden}.jobs-body{padding:6px 22px 22px}.job-row{display:flex;align-items:center;gap:10px;padding:10px 0}.job-icon{font-size:26px}.job-name{font-weight:700;font-size:17px;width:110px}.job-level{font-weight:700;color:var(--accent-dark);width:52px}.job-bar{flex:1;height:14px;background:#efe8da;border-radius:999px;border:2px solid var(--panel-border);overflow:hidden}.job-bar-fill{height:100%;background:linear-gradient(90deg,#ffd166,var(--accent));transition:width .3s ease}.job-xp{font-size:12px;font-weight:700;width:70px;text-align:right}.rewards-title{font-weight:700;font-size:15px;margin:14px 0 6px;color:var(--accent-dark)}.reward-row{display:flex;align-items:center;gap:10px;padding:6px 10px;margin:4px 0;background:#fff;border:2px solid var(--panel-border);border-radius:10px;font-weight:700;font-size:14px}.reward-row.done{opacity:.75;background:#f0f7ec;border-color:#a9cf9b}.toast.party{font-size:26px;border-color:#f2c14e;color:var(--accent-dark);animation:toast-pop 3s ease forwards}.buy-soon{font-size:12.5px;font-weight:700;color:var(--locked);background:#efe8da;border-radius:9px;padding:7px 9px;margin-top:4px}.controls-hint .key{display:inline-block;min-width:20px;text-align:center;background:#fff;border:2px solid var(--panel-border);border-radius:5px;padding:0 5px;margin-right:4px;font-weight:700;font-size:12px}.glide-hud{position:absolute;top:84px;left:50%;transform:translate(-50%);text-align:center;pointer-events:none;z-index:0}.glide-hud.hidden,.glide-results.hidden{display:none}.glide-time{font-size:54px;font-weight:800;color:#fff8e7;text-shadow:0 3px 0 rgba(0,0,0,.35);letter-spacing:1px}.glide-progress{font-size:20px;font-weight:700;color:#fff8e7;text-shadow:0 2px 0 rgba(0,0,0,.3);margin-top:2px}.glide-results{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:auto;z-index:30}.glide-card{background:#fff8e7;border-radius:22px;padding:26px 34px;box-shadow:0 10px 30px #00000040;text-align:center;max-width:520px}.glide-card h2{margin:0 0 10px;font-size:30px}.glide-time-line{font-size:26px;font-weight:800;margin-bottom:6px}.glide-tier{font-size:22px;font-weight:700;margin-bottom:8px}.glide-sub{font-size:17px;opacity:.85;margin-bottom:14px}.glide-btns{display:flex;gap:12px;justify-content:center}
