: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:26px;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%)}.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-hint{text-align:right;font-size:12px;font-weight:800;color:var(--ink-soft);margin-top:6px}.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}
