:root{--cream: #fff8e8;--cream-2: #fbefd2;--ink: #2b3445;--ink-soft: #5b6578;--teal: #22a9a2;--teal-dark: #17807b;--coral: #ff7a59;--sun: #ffd35c;--shadow: 0 6px 0 rgba(43, 52, 69, .18), 0 14px 30px rgba(43, 52, 69, .18);--font: ui-rounded, "SF Pro Rounded", "Nunito", "Varela Round", "Segoe UI", system-ui, sans-serif;color-scheme:light}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#bfe9ff;font-family:var(--font);color:var(--ink)}#game{position:fixed;inset:0;width:100vw;height:100vh;display:block;outline:none;touch-action:none}#ui{position:fixed;inset:0;pointer-events:none}button,input{font-family:inherit}.loading{position:fixed;inset:0;display:grid;place-content:center;gap:22px;text-align:center;background:radial-gradient(circle at 50% 120%,#45e0d2,#3d9ee8 45%,#2a6fc2);color:#fff;z-index:50;transition:opacity .7s ease}.loading.done{opacity:0;pointer-events:none}.loading .title{font-size:clamp(30px,6vw,64px);font-weight:900;letter-spacing:-.02em;text-shadow:0 4px 0 rgba(0,0,0,.18)}.loading .title span{color:var(--sun);display:block;font-size:.6em;transform:rotate(-3deg)}.loading-text{font-weight:700;opacity:.9}.paws{display:flex;gap:14px;justify-content:center}.paws i{width:18px;height:18px;border-radius:50%;background:#fff;animation:hop .9s ease-in-out infinite}.paws i:nth-child(2){animation-delay:.15s}.paws i:nth-child(3){animation-delay:.3s}@keyframes hop{0%,to{transform:translateY(0);opacity:.6}50%{transform:translateY(-12px);opacity:1}}.btn{pointer-events:auto;cursor:pointer;border:0;border-radius:14px;padding:12px 18px;font-weight:800;font-size:16px;color:var(--ink);background:var(--cream-2);box-shadow:0 4px #2b344538;transition:transform .08s ease,box-shadow .08s ease}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(3px);box-shadow:0 1px #2b344538}.btn.primary{background:var(--coral);color:#fff}.btn.ghost{background:transparent;box-shadow:inset 0 0 0 2px #2b344526}.btn:disabled{opacity:.6;cursor:wait}.creator{position:absolute;left:clamp(12px,3vw,40px);top:50%;transform:translateY(-50%);width:min(420px,calc(100vw - 24px));max-height:calc(100vh - 24px);overflow-y:auto;pointer-events:auto;background:var(--cream);border-radius:24px;padding:22px 22px 18px;box-shadow:var(--shadow);animation:slideIn .5s cubic-bezier(.2,1.4,.4,1)}@keyframes slideIn{0%{transform:translate(-40px,-50%);opacity:0}}.creator-title{font-size:28px;font-weight:900;letter-spacing:-.01em}.creator-sub{color:var(--ink-soft);font-size:14px;margin:2px 0 14px}.creator-row{display:grid;grid-template-columns:78px 1fr;align-items:center;gap:10px;margin:10px 0}.creator-row label{font-weight:800;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft)}.creator-name{width:100%;border:0;border-radius:12px;padding:10px 12px;font-size:18px;font-weight:800;background:#fff;color:var(--ink);box-shadow:inset 0 0 0 2px #2b34451f}.creator-name:focus{outline:none;box-shadow:inset 0 0 0 3px var(--teal)}.swatches{display:flex;flex-wrap:wrap;gap:6px}.swatch{width:26px;height:26px;border-radius:50%;border:0;cursor:pointer;box-shadow:inset 0 -3px #0000002e,0 0 0 2px #fff;transition:transform .1s ease}.swatch:hover{transform:scale(1.12)}.swatch.on{box-shadow:inset 0 -3px #0000002e,0 0 0 2px #fff,0 0 0 5px var(--teal)}.choices{display:flex;flex-wrap:wrap;gap:6px}.choice{border:0;border-radius:10px;padding:6px 10px;font-weight:800;font-size:13px;cursor:pointer;background:var(--cream-2);color:var(--ink)}.choice.on{background:var(--teal);color:#fff}.slider{width:100%;accent-color:var(--teal)}.creator-buttons{display:flex;gap:10px;justify-content:space-between;margin-top:16px}.creator-buttons .primary{flex:1}.creator-error{color:#c4402a;font-weight:700;font-size:14px;min-height:20px;margin-top:8px}.hud{position:absolute;inset:0}.hud-where{position:absolute;left:18px;top:16px;color:#fff;text-shadow:0 2px 0 rgba(30,40,60,.45),0 0 14px rgba(30,40,60,.25)}.where-zone{font-weight:900;font-size:22px}.where-shard{font-weight:700;font-size:13px;opacity:.85}.hud-chat{position:absolute;left:14px;bottom:14px;width:min(440px,calc(100vw - 28px))}.chat-log{max-height:220px;overflow-y:auto;display:flex;flex-direction:column;gap:3px;padding:6px 2px;scrollbar-width:thin;mask-image:linear-gradient(to bottom,transparent,#000 24px)}.chat-line{align-self:flex-start;max-width:100%;padding:4px 10px;border-radius:12px;font-size:14px;line-height:1.35;background:#fff8e8e0;box-shadow:0 2px #2b34451f;overflow-wrap:anywhere;transition:opacity 1.2s ease}.chat-line.old{opacity:0}.hud-chat.active .chat-line.old{opacity:.85}.chat-line.system{background:#22a9a2e6;color:#fff;font-weight:700}.chat-name{font-weight:900}.chat-input{pointer-events:auto;width:100%;margin-top:6px;border:0;border-radius:12px;padding:9px 12px;font-size:14px;background:#fff8e899;color:var(--ink);box-shadow:0 2px #2b34451f}.chat-input:focus{outline:none;background:var(--cream);box-shadow:0 0 0 3px var(--teal)}.hud-prompt{position:absolute;left:50%;bottom:28%;transform:translate(-50%,8px);opacity:0;background:var(--cream);padding:8px 16px;border-radius:999px;font-weight:900;box-shadow:var(--shadow);transition:opacity .2s ease,transform .2s ease}.hud-prompt.show{opacity:1;transform:translate(-50%)}.hud-dialogue{position:absolute;left:50%;bottom:104px;width:min(620px,calc(100vw - 28px));transform:translate(-50%,30px);opacity:0;transition:opacity .2s ease,transform .25s cubic-bezier(.2,1.4,.4,1);background:var(--cream);border-radius:22px;padding:18px 22px 12px;box-shadow:var(--shadow)}.hud-dialogue.show{opacity:1;transform:translate(-50%);pointer-events:auto}.dialogue-name{position:absolute;top:-16px;left:22px;background:#737b89;color:#fff;font-weight:900;padding:4px 14px;border-radius:999px;box-shadow:0 3px #2b344540}.dialogue-text{font-size:18px;font-weight:700;line-height:1.45;min-height:52px}.dialogue-options{display:flex;flex-direction:column;gap:6px;margin-top:10px}.dialogue-option{display:flex;align-items:center;gap:10px;text-align:left;border:0;cursor:pointer;pointer-events:auto;background:var(--cream-2);border-radius:12px;padding:8px 12px;font-weight:800;font-size:15px;color:var(--ink);transition:transform .08s ease,background .1s ease}.dialogue-option:hover{background:#fff;transform:translate(3px)}.opt-key{display:grid;place-items:center;width:22px;height:22px;border-radius:7px;background:var(--teal);color:#fff;font-size:12px}.hud-banner{position:absolute;top:14%;left:50%;transform:translate(-50%);opacity:0;white-space:nowrap;font-size:clamp(28px,4.4vw,52px);font-weight:900;color:#fff;letter-spacing:-.01em;text-shadow:0 4px 0 rgba(30,40,60,.35),0 0 30px rgba(30,40,60,.25)}.hud-banner.show{animation:banner 3.2s ease forwards}@keyframes banner{0%{opacity:0;transform:translate(-50%,10px) scale(.96)}15%,75%{opacity:1;transform:translate(-50%) scale(1)}to{opacity:0;transform:translate(-50%,-6px)}}.hud-toasts{position:absolute;top:16px;right:16px;display:flex;flex-direction:column;gap:8px;align-items:flex-end}.toast{background:var(--cream);padding:8px 14px;border-radius:12px;font-weight:800;font-size:14px;box-shadow:var(--shadow);animation:toastIn .3s cubic-bezier(.2,1.4,.4,1);transition:opacity .6s ease}.toast.out{opacity:0}@keyframes toastIn{0%{transform:translateY(-10px);opacity:0}}.hud-debug{position:absolute;right:16px;bottom:16px;margin:0;display:none;padding:10px 12px;border-radius:12px;background:#141c28c7;color:#d6f2fb;font:600 12px/1.5 ui-monospace,SF Mono,Menlo,Consolas,monospace}.hud-debug.show{display:block}.hud-help{position:absolute;right:16px;top:50%;transform:translate(20px,-50%);opacity:0;transition:all .25s ease;background:var(--cream);border-radius:18px;padding:14px 16px;box-shadow:var(--shadow);min-width:250px}.hud-help.show{opacity:1;transform:translateY(-50%)}.help-title{font-weight:900;font-size:18px;margin-bottom:6px}.help-row{display:flex;justify-content:space-between;gap:16px;font-size:14px;padding:3px 0}.help-row kbd{font:800 12px var(--font);background:#fff;border-radius:7px;padding:2px 7px;box-shadow:0 2px #2b344533}.hud-modal{position:absolute;inset:0;display:none;place-items:center;background:#14284659;pointer-events:auto}.hud-modal.show{display:grid}.modal-card{background:var(--cream);border-radius:24px;padding:24px;width:min(380px,calc(100vw - 32px));text-align:center;box-shadow:var(--shadow)}.modal-title{font-size:24px;font-weight:900}.modal-body{color:var(--ink-soft);font-weight:700;margin:8px 0 18px}.hud-money{position:absolute;left:18px;top:72px;display:flex;align-items:center;gap:6px;background:#fff8e8eb;padding:4px 12px 4px 6px;border-radius:999px;font-weight:900;font-size:14px;box-shadow:0 3px #2b34452e}.hud-money img,.bag-money img,.shop-price img{width:24px;height:24px}.slot{--rarity: transparent;position:relative;width:56px;height:56px;border-radius:14px;pointer-events:auto;user-select:none;background:#fff8e8d1;box-shadow:inset 0 0 0 3px #2b34451f,0 3px #2b344526;display:grid;place-items:center;cursor:default;transition:transform .08s ease}.slot.filled{box-shadow:inset 0 0 0 3px var(--rarity),0 3px #2b344526;cursor:grab}.slot:hover{transform:translateY(-2px)}.slot img{width:42px;height:42px;pointer-events:none}.slot-qty{position:absolute;right:5px;bottom:2px;font-weight:900;font-size:13px;color:var(--ink);text-shadow:0 0 3px #fff,0 0 3px #fff}.slot-key{position:absolute;left:-4px;top:-6px;width:18px;height:18px;border-radius:6px;background:var(--ink);color:#fff;font-size:11px;font-weight:900;display:grid;place-items:center}.hotbar{position:absolute;left:50%;bottom:16px;transform:translate(-50%);display:flex;gap:8px;padding:8px 10px;background:#2b34452e;border-radius:20px;backdrop-filter:blur(4px)}.window{position:absolute;display:none;pointer-events:auto;background:var(--cream);border-radius:22px;padding:12px 16px 16px;box-shadow:var(--shadow);animation:pop .22s cubic-bezier(.2,1.4,.4,1)}.window.show{display:block}@keyframes pop{0%{transform:scale(.92);opacity:0}}.window-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.window-title{font-weight:900;font-size:18px}.window-close{border:0;background:var(--cream-2);border-radius:10px;width:30px;height:30px;cursor:pointer;font-weight:900;color:var(--ink)}.bag-window{right:16px;bottom:100px;width:292px}.equip-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}.equip-label{font-weight:800;color:var(--ink-soft);font-size:13px}.bag-note{font-size:13px;color:var(--ink-soft);font-weight:700;margin:4px 0 8px}.bag-note:empty{display:none}.bag-grid{display:grid;grid-template-columns:repeat(4,56px);gap:8px}.bag-money{display:flex;align-items:center;gap:6px;margin-top:10px;font-weight:900}.tooltip{position:fixed;z-index:30;display:none;max-width:260px;pointer-events:none;background:#1e2636f5;color:#e9eef6;border-radius:12px;padding:10px 12px;font-size:13px;box-shadow:0 8px 24px #0000004d}.tooltip.show{display:block}.tt-name{font-weight:900;font-size:15px}.tt-rarity{opacity:.7;font-weight:700;font-size:12px;margin-bottom:4px}.tt-desc{font-style:italic;color:#ffe9a8;margin-bottom:4px}.tt-line{color:#9fe6a0}.tt-sell{margin-top:4px}.tt-hint{margin-top:6px;opacity:.6;font-size:11px}.drag-ghost{position:fixed;width:44px;height:44px;pointer-events:none;z-index:40;filter:drop-shadow(0 4px 6px rgba(0,0,0,.3))}.confirm{position:absolute;inset:0;display:none;place-items:center;background:#1428464d;pointer-events:auto;z-index:20}.confirm.show{display:grid}.confirm-card{background:var(--cream);border-radius:20px;padding:20px;width:min(340px,calc(100vw - 32px));box-shadow:var(--shadow)}.confirm-text{font-weight:800;margin-bottom:14px}.confirm-row{display:flex;gap:10px;justify-content:flex-end}.shop-window{left:16px;top:120px;width:min(380px,calc(100vw - 32px))}.shop-row{display:grid;grid-template-columns:44px 1fr auto auto;align-items:center;gap:10px;padding:8px;border-radius:14px}.shop-row:nth-child(odd){background:var(--cream-2)}.shop-icon{width:44px;height:44px}.shop-name{font-weight:900;text-shadow:0 0 1px rgba(0,0,0,.35)}.shop-desc{font-size:12px;color:var(--ink-soft)}.shop-price{display:flex;align-items:center;gap:2px;font-weight:900}.shop-foot{font-size:12px;color:var(--ink-soft);font-weight:700;margin-top:8px}.btn.small{padding:6px 12px;font-size:14px;border-radius:10px;background:var(--teal);color:#fff}.btn.small:disabled{background:#b9c2cc;cursor:not-allowed}.quest-tracker{position:absolute;right:16px;top:60px;width:250px;display:flex;flex-direction:column;gap:8px}.quest{background:#fff8e8e6;border-radius:14px;padding:8px 12px;box-shadow:0 3px #2b344526}.quest-title{font-weight:900;font-size:15px}.quest-obj{font-weight:800;font-size:13px;color:var(--teal-dark)}.quest-summary{font-size:12px;color:var(--ink-soft);margin-top:2px}.quest.ready{box-shadow:inset 0 0 0 3px var(--sun),0 3px #2b344526}.quest-ready{font-weight:900;font-size:13px;color:#b07a12}.hud-catch{position:absolute;top:24%;left:50%;transform:translate(-50%);text-align:center;opacity:0;white-space:nowrap}.hud-catch.show{animation:banner 3s ease forwards}.catch-text{font-size:clamp(26px,3.8vw,44px);font-weight:900;text-shadow:0 3px 0 rgba(30,40,60,.5),0 0 22px rgba(30,40,60,.35)}.catch-rarity{color:#fff;font-weight:900;text-shadow:0 2px 0 rgba(30,40,60,.5)}.menu{position:absolute;inset:0;display:none;place-items:center;background:#14284659;pointer-events:auto;z-index:15}.menu.show{display:grid}.menu-card{width:min(380px,calc(100vw - 32px));background:var(--cream);border-radius:26px;padding:22px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:10px;animation:pop .22s cubic-bezier(.2,1.4,.4,1);max-height:calc(100vh - 32px);overflow-y:auto}.menu-title{font-size:26px;font-weight:900;text-align:center}.menu-sub{text-align:center;color:var(--ink-soft);font-weight:700;font-size:14px;margin-bottom:4px}.menu-btn{width:100%}.menu-note{font-size:12px;color:var(--ink-soft);font-weight:700;text-align:center;margin-top:-4px}.set-row{display:grid;grid-template-columns:1fr 160px;align-items:center;gap:10px;font-weight:800}.set-row input[type=checkbox]{justify-self:end;width:22px;height:22px;accent-color:var(--teal)}.world-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;background:var(--cream-2)}.world-name{font-weight:900}.world-pop{font-size:13px;color:var(--ink-soft);font-weight:700}.world-row.full .world-pop{color:#c4402a}.world-here{font-size:12px;font-weight:900;color:var(--teal-dark)}
