:root{--font: "Nunito", "SF Pro Rounded", ui-rounded, "Segoe UI Variable", "Segoe UI", system-ui, -apple-system, sans-serif;--display: "Baloo 2", "Fredoka", "Nunito", "SF Pro Rounded", ui-rounded, system-ui, sans-serif;--bg-900: #0b1020;--bg-800: #121a30;--bg-700: #1a2440;--glass: rgba(18, 26, 48, .72);--glass-2: rgba(30, 41, 74, .6);--glass-strong: rgba(14, 20, 38, .9);--stroke: rgba(255, 255, 255, .12);--stroke-strong: rgba(255, 255, 255, .22);--text: #f6f8ff;--text-dim: rgba(246, 248, 255, .68);--text-faint: rgba(246, 248, 255, .45);--accent: #ffd34d;--accent-2: #ff9f43;--mint: #4ade80;--mint-2: #22c55e;--sky: #60a5fa;--sky-2: #3b82f6;--pink: #f472b6;--violet: #a78bfa;--coral: #fb7185;--coral-2: #e11d48;--grad-accent: linear-gradient(135deg, #ffd34d 0%, #ff9f43 100%);--grad-primary: linear-gradient(135deg, #4ade80 0%, #16a34a 100%);--grad-sky: linear-gradient(135deg, #60a5fa 0%, #2563eb 100%);--grad-danger: linear-gradient(135deg, #fb7185 0%, #e11d48 100%);--grad-violet: linear-gradient(135deg, #c084fc 0%, #7c3aed 100%);--grad-glass: linear-gradient(160deg, rgba(255, 255, 255, .14), rgba(255, 255, 255, .04));--shadow-1: 0 1px 2px rgba(0, 0, 0, .35), 0 8px 24px rgba(0, 0, 0, .35);--shadow-2: 0 2px 4px rgba(0, 0, 0, .4), 0 18px 50px rgba(0, 0, 0, .5);--inset-hi: inset 0 1px 0 rgba(255, 255, 255, .18);--glow-accent: 0 0 0 3px rgba(255, 211, 77, .35), 0 0 24px rgba(255, 159, 67, .45);--glow-mint: 0 0 0 3px rgba(74, 222, 128, .35), 0 0 28px rgba(34, 197, 94, .45);--r-xl: 28px;--r-lg: 20px;--r-md: 16px;--r-sm: 12px;--tap: 52px;--ease-spring: cubic-bezier(.2, 1.4, .4, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px)}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;overflow:hidden;font-family:var(--font);color:var(--text);background:var(--bg-900);-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased}button,input{font-family:inherit;color:inherit}h1,h2,h3{font-family:var(--display);letter-spacing:.01em}.app{position:relative;width:100%;height:100%;background:#aee3ff;user-select:none}.game-canvas{position:absolute;inset:0}.app:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(120% 90% at 50% 40%,transparent 55%,rgba(6,10,24,.35) 100%);z-index:1}.canvas-fallback,.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:2rem;text-align:center;background:radial-gradient(80% 60% at 50% 30%,#1f2a52 0%,var(--bg-900) 70%)}.loading-screen h1{font-size:2.8rem;margin:0 0 .4rem;background:var(--grad-accent);-webkit-background-clip:text;background-clip:text;color:transparent}.loading-screen p{color:var(--text-dim);font-weight:700}.loading-screen p:after{content:"";display:block;width:160px;height:6px;margin:1rem auto 0;border-radius:6px;background:linear-gradient(90deg,var(--accent),var(--pink),var(--sky),var(--accent));background-size:300% 100%;animation:shimmer 1.6s linear infinite}@keyframes shimmer{to{background-position:-300% 0}}.kid-button{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:var(--tap);padding:.6rem 1.15rem;border:1px solid var(--stroke);border-radius:var(--r-md);background:var(--grad-glass),var(--glass-2);color:var(--text);font-size:1.05rem;font-weight:800;cursor:pointer;box-shadow:var(--shadow-1),var(--inset-hi);transition:transform .15s var(--ease-spring),box-shadow .15s ease,filter .15s ease;overflow:hidden}.kid-button:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.16),transparent 55%);pointer-events:none}.kid-button:hover{transform:translateY(-2px);filter:brightness(1.08)}.kid-button:active{transform:translateY(1px) scale(.98);box-shadow:var(--inset-hi)}.kid-button-primary{background:var(--grad-primary);border-color:#ffffff40;color:#062b12;text-shadow:0 1px 0 rgba(255,255,255,.35)}.kid-button-primary:hover{box-shadow:var(--glow-mint)}.kid-button-danger{background:var(--grad-danger);border-color:#ffffff40;color:#fff}.kid-button:disabled{opacity:.4;cursor:default;transform:none;filter:none}.kid-button:focus-visible,.icon-button:focus-visible,.menu-row:focus-visible,.hotbar-slot:focus-visible,.palette-slot:focus-visible,.tool-tile:focus-visible,.blueprint-card:focus-visible,.swatch:focus-visible,.craft-cell:focus-visible{outline:none;box-shadow:var(--glow-accent)}.icon-button{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-width:var(--tap);height:var(--tap);padding:0 .85rem;border:1px solid var(--stroke);border-radius:999px;background:var(--grad-glass),var(--glass);color:var(--text);font-size:1.35rem;font-weight:800;cursor:pointer;box-shadow:var(--shadow-1),var(--inset-hi);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);transition:transform .15s var(--ease-spring),box-shadow .15s ease}.icon-button:hover{transform:translateY(-2px)}.icon-button:active{transform:scale(.94)}.icon-button-lg{height:64px;min-width:64px;font-size:1.8rem;padding:0 1.1rem}.icon-button-label{font-size:1rem;font-weight:800}.icon-button-primary{background:var(--grad-primary);color:#062b12}.icon-button-danger{background:var(--grad-danger)}.icon-button-active{background:var(--grad-accent);color:#3b2a00;box-shadow:var(--glow-accent)}.icon-button:disabled{opacity:.35;cursor:default;transform:none}.top-bar{position:absolute;top:calc(.7rem + var(--safe-top));left:calc(.7rem + var(--safe-left));right:calc(.7rem + var(--safe-right));display:flex;align-items:center;justify-content:space-between;gap:.6rem;z-index:5;pointer-events:none}.top-bar>*{pointer-events:auto}.brand{display:inline-flex;align-items:center;gap:.45rem;height:var(--tap);padding:0 1rem 0 .75rem;border:1px solid var(--stroke);border-radius:999px;background:var(--grad-glass),var(--glass);font-family:var(--display);font-weight:800;font-size:1.15rem;letter-spacing:.02em;box-shadow:var(--shadow-1),var(--inset-hi);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%)}.brand-text{background:var(--grad-accent);-webkit-background-clip:text;background-clip:text;color:transparent}.top-actions{display:flex;gap:.45rem}.save-indicator{display:inline-flex;align-items:center;gap:.4rem;height:38px;padding:0 .9rem;border:1px solid var(--stroke);border-radius:999px;background:var(--glass);font-size:.85rem;font-weight:800;color:var(--text-dim);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.save-indicator-saved{color:var(--mint)}.save-indicator-error{color:var(--coral);border-color:#fb718566}.storage-warning{position:absolute;top:calc(4.6rem + var(--safe-top));left:50%;transform:translate(-50%);max-width:min(92vw,560px);padding:.7rem 1.1rem;border:1px solid rgba(251,113,133,.5);border-radius:var(--r-md);background:#3c0c18d9;color:#ffd9de;font-weight:700;z-index:5;backdrop-filter:blur(12px)}.side-actions{position:absolute;right:calc(.7rem + var(--safe-right));top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:.55rem;z-index:5}.crosshair{position:absolute;left:50%;top:50%;width:22px;height:22px;transform:translate(-50%,-50%);pointer-events:none;z-index:4;color:transparent;border:2px solid rgba(255,255,255,.9);border-radius:50%;box-shadow:0 0 0 1px #00000073,inset 0 0 0 1px #00000073}.crosshair:after{content:"";position:absolute;left:50%;top:50%;width:4px;height:4px;margin:-2px 0 0 -2px;border-radius:50%;background:#fff}.tools-fab{position:absolute;left:calc(.7rem + var(--safe-left));bottom:calc(8rem + var(--safe-bottom));z-index:5}.tools-fab-button{background:var(--grad-sky);border-color:#ffffff47;box-shadow:0 0 0 4px #60a5fa40,var(--shadow-1)}.tools-badge{position:absolute;top:-8px;right:-8px;width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:var(--grad-accent);font-size:1rem;box-shadow:var(--shadow-1)}.hotbar{position:absolute;left:50%;bottom:calc(.8rem + var(--safe-bottom));transform:translate(-50%);display:flex;align-items:flex-end;gap:.4rem;max-width:calc(100vw - 1rem);padding:.5rem .55rem;border:1px solid var(--stroke);border-radius:var(--r-xl);background:var(--grad-glass),var(--glass);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);box-shadow:var(--shadow-2),var(--inset-hi);overflow-x:auto;scrollbar-width:none;z-index:6}.hotbar::-webkit-scrollbar{display:none}.hotbar-slot{position:relative;flex:0 0 auto;width:58px;height:58px;border:1px solid var(--stroke-strong);border-radius:var(--r-md);background-size:cover;background-color:var(--bg-700);image-rendering:pixelated;cursor:pointer;box-shadow:inset 0 0 0 2px #00000059,var(--inset-hi);transition:transform .18s var(--ease-spring),box-shadow .18s ease}.hotbar-slot:after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(180deg,rgba(255,255,255,.18),transparent 50%,rgba(0,0,0,.25));pointer-events:none}.hotbar-slot-selected{transform:translateY(-10px) scale(1.16);border-color:var(--accent);box-shadow:var(--glow-accent),inset 0 0 0 2px #00000059;z-index:1}.hotbar-emoji{font-size:1.6rem}.hotbar-label{position:absolute;left:50%;top:-1.9rem;transform:translate(-50%);padding:.15rem .55rem;border-radius:999px;background:var(--glass-strong);border:1px solid var(--stroke);font-size:.72rem;font-weight:800;white-space:nowrap;color:var(--text);opacity:0;pointer-events:none;transition:opacity .15s ease}.hotbar-slot-selected .hotbar-label{opacity:1}.hotbar-key{position:absolute;top:3px;left:5px;font-size:.68rem;font-weight:900;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.9);z-index:1}.hotbar-more{flex:0 0 auto;align-self:center;white-space:nowrap;min-height:46px;padding:.4rem .85rem;border-radius:999px}.sheet-backdrop{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:center;background:radial-gradient(80% 60% at 50% 20%,rgba(96,165,250,.12),transparent 60%),#060a188c;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:20;animation:fade-in .18s ease-out}@keyframes fade-in{0%{opacity:0}}.sheet{position:relative;display:flex;flex-direction:column;width:100%;max-height:calc(92vh - var(--safe-top));border:1px solid var(--stroke);border-bottom:0;border-radius:var(--r-xl) var(--r-xl) 0 0;background:linear-gradient(180deg,rgba(255,255,255,.06),transparent 30%),var(--glass-strong);box-shadow:var(--shadow-2),var(--inset-hi);backdrop-filter:blur(24px) saturate(150%);-webkit-backdrop-filter:blur(24px) saturate(150%);animation:sheet-up .32s var(--ease-out);padding-bottom:var(--safe-bottom)}.sheet:before{content:"";position:absolute;top:8px;left:50%;width:44px;height:5px;margin-left:-22px;border-radius:5px;background:#ffffff47}.sheet-dialog{max-width:560px}.sheet-header{display:grid;grid-template-columns:var(--tap) 1fr var(--tap);align-items:center;gap:.5rem;padding:1.2rem .9rem .5rem}.sheet-spacer{width:var(--tap)}.sheet-title{margin:0;font-size:1.5rem;font-weight:800;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sheet-back .icon-button-glyph{font-size:2.1rem;line-height:1;margin-top:-6px}.sheet-close{font-size:1.1rem}.sheet-hint{margin:0 1.3rem .7rem;color:var(--text-dim);font-weight:700;text-align:center}.sheet-body{overflow-y:auto;padding:.4rem 1.1rem 1.3rem;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2) transparent}.sheet-body h3{margin:1.1rem 0 .55rem;font-family:var(--font);font-size:.78rem;font-weight:900;color:var(--text-faint);text-transform:uppercase;letter-spacing:.14em}.sheet-body p{color:var(--text-dim);line-height:1.5}.sheet-body strong{color:var(--text)}@keyframes sheet-up{0%{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}@media(min-width:720px){.sheet-backdrop{align-items:center;padding:1.2rem}.sheet{max-width:760px;max-height:86vh;border-bottom:1px solid var(--stroke);border-radius:var(--r-xl);animation:sheet-pop .28s var(--ease-out)}.sheet:before{display:none}.sheet-header{padding-top:.9rem}.sheet-dialog{max-width:540px}}@keyframes sheet-pop{0%{transform:translateY(14px) scale(.97);opacity:0}to{transform:none;opacity:1}}.menu-list{display:flex;flex-direction:column;gap:.55rem}.menu-list>*{animation:row-in .35s var(--ease-out) both}.menu-list>*:nth-child(2){animation-delay:.03s}.menu-list>*:nth-child(3){animation-delay:.06s}.menu-list>*:nth-child(4){animation-delay:.09s}.menu-list>*:nth-child(5){animation-delay:.12s}.menu-list>*:nth-child(6){animation-delay:.15s}.menu-list>*:nth-child(7){animation-delay:.18s}.menu-list>*:nth-child(8){animation-delay:.21s}.menu-list>*:nth-child(9){animation-delay:.24s}@keyframes row-in{0%{opacity:0;transform:translateY(10px)}}.menu-primary{width:100%;font-size:1.25rem;min-height:60px;border-radius:var(--r-lg)}.menu-row{display:flex;align-items:center;gap:.9rem;width:100%;min-height:66px;padding:.55rem .75rem .55rem .6rem;border:1px solid var(--stroke);border-radius:var(--r-lg);background:var(--grad-glass),var(--glass-2);color:var(--text);text-align:left;cursor:pointer;box-shadow:var(--inset-hi);transition:transform .15s var(--ease-spring),background .15s ease,border-color .15s ease}.menu-row:hover{transform:translate(4px);border-color:var(--stroke-strong);background:var(--grad-glass),#2d3c69b3}.menu-row:active{transform:scale(.99)}.menu-row-emoji{display:grid;place-items:center;width:48px;height:48px;flex:0 0 48px;border-radius:15px;font-size:1.55rem;background:var(--grad-sky);box-shadow:var(--inset-hi),0 4px 10px #00000059}.menu-row-text{flex:1;display:flex;flex-direction:column;min-width:0}.menu-row-label{font-family:var(--display);font-size:1.15rem;font-weight:800}.menu-row-hint{font-size:.85rem;color:var(--text-dim);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu-row-chevron{font-size:1.9rem;color:var(--text-faint)}.menu-row-tone-primary .menu-row-emoji{background:var(--grad-primary)}.menu-row-tone-danger .menu-row-emoji{background:var(--grad-danger)}.menu-row-tone-accent .menu-row-emoji{background:var(--grad-accent)}.menu-row-tone-violet .menu-row-emoji{background:var(--grad-violet)}.menu-row-tone-pink .menu-row-emoji{background:linear-gradient(135deg,#f9a8d4,#db2777)}.menu-row-tone-teal .menu-row-emoji{background:linear-gradient(135deg,#5eead4,#0d9488)}.menu-row-tone-slate .menu-row-emoji{background:linear-gradient(135deg,#94a3b8,#475569)}.menu-footer{margin:.9rem 0 0;text-align:center;color:var(--text-faint);font-weight:700;font-size:.85rem}.about p{margin:.5rem 0}.welcome-tips{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.45rem}.welcome-tips li{padding:.65rem .9rem;border:1px solid var(--stroke);border-radius:var(--r-md);background:var(--glass-2);font-weight:700;color:var(--text)}.setting-group{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.6rem}.setting-group h3{width:100%;margin:.7rem 0 .1rem}.setting-group .kid-button{flex-direction:column;align-items:flex-start;gap:.1rem;flex:1 1 150px;padding:.7rem 1rem;border-radius:var(--r-lg)}.setting-hint{font-size:.8rem;font-weight:700;color:inherit;opacity:.8}.dialog-buttons{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:.9rem}.dialog-buttons .kid-button{flex:1 1 150px}.palette-group h3{margin:1rem 0 .45rem}.palette-grid,.blueprint-grid,.tool-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:.6rem}.sheet-subtitle{margin:1.1rem 0 .2rem;font-size:1.05rem;font-weight:800;color:var(--text)}.sheet-group{margin:.9rem 0 .15rem;font-size:.85rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-dim)}.blueprint-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.tool-grid{grid-template-columns:repeat(auto-fill,minmax(124px,1fr))}.palette-slot{position:relative;aspect-ratio:1;border:1px solid var(--stroke-strong);border-radius:var(--r-md);background-size:cover;background-color:var(--bg-700);image-rendering:pixelated;cursor:pointer;font-size:1.6rem;box-shadow:inset 0 0 0 2px #00000059,var(--shadow-1);transition:transform .15s var(--ease-spring),box-shadow .15s ease;overflow:hidden}.palette-slot:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.16),transparent 45%);pointer-events:none}.palette-slot:hover{transform:translateY(-3px) scale(1.04);box-shadow:var(--glow-accent)}.palette-slot:active{transform:scale(.96)}.palette-label{position:absolute;left:0;right:0;bottom:0;padding:4px 5px;font-size:.7rem;font-weight:800;color:#fff;background:linear-gradient(transparent,#000000bf);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;z-index:1}.blueprint-card,.tool-tile{position:relative;display:flex;flex-direction:column;align-items:center;gap:.3rem;padding:.95rem .6rem;border:1px solid var(--stroke);border-radius:var(--r-lg);background:var(--grad-glass),var(--glass-2);cursor:pointer;box-shadow:var(--inset-hi);color:var(--text);text-align:center;transition:transform .15s var(--ease-spring),border-color .15s ease,box-shadow .15s ease}.blueprint-card:hover,.tool-tile:hover{transform:translateY(-3px);border-color:var(--stroke-strong)}.tool-tile-active{border-color:var(--accent);background:linear-gradient(160deg,#ffd34d38,#ff9f4314),var(--glass-2);box-shadow:var(--glow-accent)}.blueprint-emoji,.tool-tile-emoji{display:grid;place-items:center;width:56px;height:56px;border-radius:18px;font-size:2rem;background:var(--grad-violet);box-shadow:var(--inset-hi),0 6px 14px #00000059}.tool-tile-emoji{background:var(--grad-sky)}.tool-tile-active .tool-tile-emoji{background:var(--grad-accent)}.blueprint-label,.tool-tile-label{font-family:var(--display);font-weight:800;font-size:1.05rem}.blueprint-desc,.tool-tile-hint{font-size:.78rem;font-weight:700;color:var(--text-dim)}.box-actions{margin:.6rem 0}.box-items{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.box-item{display:flex;align-items:center;gap:.7rem;padding:.55rem .75rem;border:1px solid var(--stroke);border-radius:var(--r-md);background:var(--glass-2)}.box-item-icon{width:46px;height:46px;border-radius:12px;background-size:cover;image-rendering:pixelated;display:inline-flex;align-items:center;justify-content:center;font-size:1.4rem;box-shadow:inset 0 0 0 2px #00000059}.box-item-label{flex:1;font-weight:800}.box-empty{text-align:center;color:var(--text-faint);font-weight:700}.confirm-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:.6rem 0;padding:.8rem;border:1px solid rgba(251,113,133,.5);border-radius:var(--r-md);background:#e11d4826}.confirm-row p{width:100%;margin:0 0 .3rem;font-weight:800;color:var(--text)}.rename-form,.new-world-form{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:.6rem 0}.rename-form label,.new-world-form label{width:100%;font-weight:800;color:var(--text-dim)}.rename-form input,.new-world-form input{flex:1 1 160px;min-height:var(--tap);font-size:1.05rem;font-weight:700;padding:.5rem .9rem;border:1px solid var(--stroke-strong);border-radius:var(--r-md);background:#0000004d;color:var(--text);outline:none}.rename-form input:focus,.new-world-form input:focus{border-color:var(--accent);box-shadow:var(--glow-accent)}.rename-form input::placeholder,.new-world-form input::placeholder{color:var(--text-faint)}.new-world-form .dialog-buttons{width:100%;margin-top:.2rem}.worlds-list{list-style:none;padding:0;margin:0 0 .6rem;display:flex;flex-direction:column;gap:.55rem}.world-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;padding:.7rem .9rem;border:1px solid var(--stroke);border-radius:var(--r-lg);background:var(--grad-glass),var(--glass-2);box-shadow:var(--inset-hi)}.world-row-current{border-color:#ffd34d99;background:linear-gradient(160deg,rgba(255,211,77,.16),transparent 60%),var(--glass-2)}.world-name{font-family:var(--display);font-weight:800;font-size:1.15rem}.world-badge{font-family:var(--font);font-weight:800;color:var(--accent);font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}.world-actions{display:flex;flex-wrap:wrap;gap:.4rem}.speech-bubble{position:relative;margin:0 0 .7rem;padding:1rem 1.1rem;border:1px solid var(--stroke-strong);border-radius:22px;background:linear-gradient(160deg,#ffffff24,#ffffff0d);font-size:1.2rem;font-weight:800;color:var(--text)!important;min-height:3.4rem;line-height:1.4}.swatches{display:flex;flex-wrap:wrap;gap:.5rem;width:100%}.swatch{width:46px;height:46px;border-radius:14px;border:1px solid rgba(255,255,255,.35);box-shadow:var(--inset-hi),0 4px 10px #00000059;cursor:pointer;transition:transform .15s var(--ease-spring)}.swatch:hover{transform:scale(1.08)}.swatch-selected{box-shadow:0 0 0 3px var(--bg-900),0 0 0 6px var(--accent);transform:scale(1.1)}.craft-tabs{display:flex;gap:.5rem;margin-bottom:.7rem;padding:.3rem;border:1px solid var(--stroke);border-radius:999px;background:#00000040}.craft-tabs .kid-button{flex:1;min-height:44px;border-radius:999px;box-shadow:none;background:transparent;border-color:transparent}.craft-tabs .kid-button-primary{background:var(--grad-primary)}.craft-area{display:flex;flex-direction:column;gap:.7rem}.craft-grid{display:grid;grid-template-columns:repeat(3,66px);gap:.4rem;justify-content:center;padding:.6rem;border:1px solid var(--stroke);border-radius:var(--r-lg);background:#00000040;margin:0 auto}.craft-cell{position:relative;width:66px;height:66px;border:1px solid var(--stroke-strong);border-radius:var(--r-sm);background:var(--glass-2);background-size:cover;image-rendering:pixelated;cursor:pointer;font-size:1.6rem;box-shadow:inset 0 0 0 2px #00000059;transition:transform .15s var(--ease-spring)}.craft-cell:hover{transform:scale(1.05)}.craft-cell-selected{border-color:var(--accent);box-shadow:var(--glow-accent)}.craft-cell-mini{display:inline-block;width:28px;height:28px;vertical-align:middle;box-shadow:none}.craft-result{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.7rem}.craft-arrow{font-size:2rem}.craft-cell-result{width:84px;height:84px;opacity:.4;border-radius:var(--r-md)}.craft-cell-ready{opacity:1;box-shadow:var(--glow-mint);animation:pulse-glow 1.4s ease-in-out infinite}@keyframes pulse-glow{0%,to{box-shadow:0 0 0 3px #4ade8059,0 0 20px #22c55e66}50%{box-shadow:0 0 0 6px #4ade8033,0 0 36px #22c55eb3}}.craft-count{position:absolute;right:5px;bottom:3px;font-weight:900;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.9)}.craft-hint{width:100%;text-align:center;font-weight:700;color:var(--text-dim);margin:0}.ingredient-grid .craft-cell{width:100%;height:auto;aspect-ratio:1}.robot-program{display:flex;flex-wrap:wrap;gap:.35rem;min-height:3.4rem;padding:.65rem;border:1px solid var(--stroke-strong);border-radius:var(--r-md);background:#0000004d;font-size:1.4rem}.robot-card{padding:.15rem .5rem;border-radius:10px;background:var(--grad-sky);box-shadow:var(--inset-hi)}.robot-card-building{background:var(--grad-accent);color:#3b2a00;font-size:1rem;font-weight:800}.splash{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:radial-gradient(60% 50% at 20% 20%,rgba(96,165,250,.35),transparent 60%),radial-gradient(50% 50% at 85% 30%,rgba(244,114,182,.3),transparent 60%),radial-gradient(60% 50% at 50% 100%,rgba(74,222,128,.25),transparent 60%),linear-gradient(180deg,#0b1020,#16204a 60%,#1d2b5e);z-index:30;padding:1rem;overflow:hidden}.splash-content{position:relative;width:min(92vw,600px);padding:2rem 1.6rem calc(1.6rem + var(--safe-bottom));border:1px solid var(--stroke-strong);border-radius:34px;background:linear-gradient(180deg,rgba(255,255,255,.08),transparent 40%),var(--glass);box-shadow:var(--shadow-2),var(--inset-hi);backdrop-filter:blur(24px) saturate(150%);-webkit-backdrop-filter:blur(24px) saturate(150%);text-align:center;max-height:92vh;overflow-y:auto;animation:sheet-pop .5s var(--ease-out)}.splash-title{margin:0 0 .35rem;font-size:clamp(2.2rem,7vw,3.4rem);font-weight:800;line-height:1.05;background:linear-gradient(180deg,#fff6c8,#ffd34d 45%,#ff9f43);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 4px 0 rgba(120,60,0,.45)) drop-shadow(0 10px 24px rgba(255,159,67,.35))}.splash-subtitle{margin:0 0 1.2rem;font-weight:700;color:var(--text-dim);font-size:1.05rem}.splash .welcome-tips{text-align:left}.splash-play{width:100%;margin-top:1.2rem;font-size:1.45rem;min-height:66px;border-radius:var(--r-lg);animation:play-glow 1.8s ease-in-out infinite}@keyframes play-glow{0%,to{box-shadow:0 0 #4ade808c,var(--shadow-1)}50%{box-shadow:0 0 0 16px #4ade8000,var(--shadow-1)}}.splash-version{margin:.9rem 0 0;font-size:.78rem;color:var(--text-faint);font-weight:700;letter-spacing:.06em;text-transform:uppercase}.splash-blocks{position:absolute;inset:0;overflow:hidden;pointer-events:none}.splash-block{position:absolute;bottom:-4rem;border-radius:14px;background-size:cover;image-rendering:pixelated;opacity:.75;box-shadow:0 10px 30px #00000073;animation:splash-float 11s linear infinite}@keyframes splash-float{0%{transform:translateY(0) rotate(0)}to{transform:translateY(-120vh) rotate(200deg)}}.virtual-controls{position:absolute;inset:0;pointer-events:none;z-index:5}.move-zone{position:absolute;left:0;bottom:0;width:46vw;height:46vh;pointer-events:auto;touch-action:none}.joystick{position:absolute;left:calc(1.2rem + var(--safe-left) + 60px);top:calc(100% - 9rem - var(--safe-bottom) - 60px);width:120px;height:120px;margin:-60px 0 0 -60px;pointer-events:none;transition:opacity .15s ease-out;border-radius:50%;border:1px solid var(--stroke-strong);background:radial-gradient(circle,#ffffff14,#121a308c);box-shadow:var(--shadow-1),var(--inset-hi);backdrop-filter:blur(10px);pointer-events:auto;touch-action:none}.joystick-ghost{opacity:.35}.joystick-live{opacity:1}.joystick-thumb{position:absolute;left:50%;top:50%;width:56px;height:56px;margin:-28px 0 0 -28px;border-radius:50%;background:var(--grad-sky);border:1px solid rgba(255,255,255,.35);box-shadow:var(--shadow-1),var(--inset-hi)}.jump-button{position:absolute;right:calc(1.2rem + var(--safe-right));bottom:calc(9rem + var(--safe-bottom));width:100px;height:100px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:var(--grad-accent);font-size:1.9rem;font-weight:900;color:#3b2a00;pointer-events:auto;touch-action:none;box-shadow:var(--shadow-2),var(--inset-hi);display:flex;flex-direction:column;align-items:center;justify-content:center;transition:transform .12s var(--ease-spring)}.jump-button-active{transform:scale(.92)}.jump-label{font-size:.85rem;letter-spacing:.06em;text-transform:uppercase}.toast{position:absolute;left:50%;top:calc(4.8rem + var(--safe-top));transform:translate(-50%);max-width:min(92vw,560px);padding:.75rem 1.2rem;border:1px solid var(--stroke-strong);border-radius:999px;background:var(--grad-glass),var(--glass-strong);color:var(--text);font-weight:800;text-align:center;z-index:25;box-shadow:var(--shadow-2),var(--inset-hi);backdrop-filter:blur(14px);animation:toast-in .35s var(--ease-spring)}@keyframes toast-in{0%{transform:translate(-50%,-12px) scale(.96);opacity:0}}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@media(max-width:760px){.brand-text,.icon-button-label,.save-indicator-text{display:none}.brand{padding:0 .7rem}.hotbar{bottom:calc(.5rem + var(--safe-bottom));padding:.35rem;gap:.3rem;border-radius:var(--r-lg)}.hotbar-slot{width:48px;height:48px}.hotbar-slot-selected{transform:translateY(-8px) scale(1.12)}.tools-fab{top:calc(4.6rem + var(--safe-top));bottom:auto;left:calc(.7rem + var(--safe-left))}.side-actions{top:calc(4.6rem + var(--safe-top));bottom:auto;transform:none;gap:.4rem}.side-actions .icon-button{height:48px;min-width:48px}.jump-button{bottom:calc(5.2rem + var(--safe-bottom))}.move-zone{height:40vh}.joystick{top:calc(100% - 5.2rem - var(--safe-bottom) - 60px)}.storage-warning{font-size:.85rem}.sheet-title{font-size:1.3rem}.sheet-backdrop-chat{align-items:stretch;height:var(--vvh, 100dvh);top:var(--vv-top, 0);bottom:auto}.sheet-chat{max-height:none;height:100%;border-radius:0;border:0;padding-top:var(--safe-top);animation:fade-in .2s ease-out}.sheet-chat:before{display:none}.sheet-chat .sheet-header{padding-top:.6rem}.sheet-chat .sheet-body{padding-left:.8rem;padding-right:.8rem}.sheet-chat .chat-log{max-height:none}.sheet-chat .chat-provider{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.sheet-chat{max-width:640px}.sheet-chat .sheet-body{display:flex;flex-direction:column;flex:1;min-height:0;padding-bottom:.6rem}.chat-brain{margin:0 0 .4rem;font-size:.8rem;white-space:normal;overflow-wrap:anywhere;font-weight:800;color:var(--text-faint);text-align:center;line-height:1.3}.chat-brain-error{color:#fcd34d;font-weight:700}.chat-log{display:flex;flex-direction:column;flex:1;gap:.5rem;min-height:160px;max-height:46vh;overflow-y:auto;padding:.3rem .1rem;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.chip-row.chat-chips{flex-wrap:nowrap;overflow-x:auto;flex-shrink:0;padding:.2rem .1rem .5rem;margin:.4rem -.2rem .2rem;scrollbar-width:none;-webkit-overflow-scrolling:touch}.chat-chips::-webkit-scrollbar{display:none}.chat-chips .chip{flex-shrink:0;white-space:nowrap}.chat-bottom{flex-shrink:0}.speech-bubble.kid{align-self:flex-end;max-width:85%;background:var(--grad-sky);border-color:transparent;color:#fff!important;border-bottom-right-radius:6px}.speech-bubble.villager{align-self:flex-start;max-width:88%;border-bottom-left-radius:6px}.speech-bubble.thinking span{display:inline-block;font-size:2rem;line-height:.6;animation:blink 1s infinite}.speech-bubble.thinking span:nth-child(2){animation-delay:.2s}.speech-bubble.thinking span:nth-child(3){animation-delay:.4s}@keyframes blink{0%,to{opacity:.25}50%{opacity:1}}.chip-row{display:flex;flex-wrap:wrap;gap:.4rem;margin:.6rem 0}.chip{min-height:42px;padding:.4rem .85rem;border:1px solid var(--stroke-strong);border-radius:999px;background:var(--grad-glass),var(--glass-2);color:var(--text);font-weight:800;cursor:pointer;box-shadow:var(--inset-hi);transition:transform .15s var(--ease-spring)}.chip:hover{transform:translateY(-2px)}.chip:disabled{opacity:.5}.chat-form{display:flex;gap:.5rem;align-items:center}.chat-form input{flex:1;min-width:0;min-height:var(--tap);font-size:max(16px,1.05rem);font-weight:700;padding:.5rem 1rem;border:1px solid var(--stroke-strong);border-radius:999px;background:#0000004d;color:var(--text);outline:none}.chat-form input:focus{border-color:var(--accent);box-shadow:var(--glow-accent)}.chat-form .kid-button{border-radius:999px;min-width:60px;font-size:1.4rem}.chat-provider{margin:.6rem 0 0;text-align:center;font-size:.78rem;font-weight:700;color:var(--text-faint)}.dressup-top{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:.4rem}.avatar-preview{position:relative;width:220px;height:260px;border:1px solid var(--stroke-strong);border-radius:var(--r-lg);background:radial-gradient(60% 50% at 50% 30%,rgba(96,165,250,.35),transparent 70%),#0000004d;box-shadow:var(--inset-hi);overflow:hidden;flex:0 0 auto}.avatar-preview canvas{position:relative;z-index:1}.avatar-preview-fallback{position:absolute;inset:0;display:grid;place-items:center;font-size:5rem}.dressup-style{flex:1 1 180px;flex-direction:column}.dressup-style .kid-button{flex:0 0 auto;width:100%;flex-direction:row;justify-content:flex-start}.robot-block-row{display:flex;align-items:center;gap:.6rem;margin-bottom:.5rem}.robot-block-label{flex:1;font-weight:800}:root{--tap: 58px;--icon-2: rgba(255, 255, 255, .55)}.ui-icon{display:inline-block;vertical-align:middle;filter:drop-shadow(0 1px 0 rgba(0,0,0,.35))}.icon-button{padding:0 .95rem}.icon-button-lg{height:72px;min-width:72px}.icon-button-label{font-size:1.1rem}.icon-button-accent{background:var(--grad-accent);color:#3b2a00}.icon-button-accent .ui-icon{--icon-2: rgba(59, 42, 0, .55)}.brand-icon{color:var(--accent)}.brand{height:var(--tap);font-size:1.3rem}.hotbar-slot{width:66px;height:66px}.hotbar-more{min-height:52px;font-size:1.1rem}.sheet-title{font-size:1.7rem;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.sheet-title-icon{color:var(--accent)}.menu-row{min-height:74px}.menu-row-emoji{width:56px;height:56px;flex-basis:56px;border-radius:17px;font-size:1.8rem;--icon-2: rgba(255, 255, 255, .45)}.menu-row-label{font-size:1.3rem}.menu-row-hint{font-size:.9rem}.tool-tile-emoji,.blueprint-emoji{width:66px;height:66px;border-radius:20px;font-size:2.3rem;--icon-2: rgba(255, 255, 255, .45)}.tool-tile-label,.blueprint-label{font-size:1.15rem}.kid-button{font-size:1.12rem}.chip{min-height:48px;font-size:1rem}.game-menu{position:absolute;inset:0;z-index:20;display:flex;flex-direction:column;background:radial-gradient(70% 55% at 20% 15%,rgba(96,165,250,.25),transparent 60%),radial-gradient(50% 50% at 85% 20%,rgba(244,114,182,.2),transparent 60%),linear-gradient(180deg,#080c1ce6,#0b1020f5);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);animation:fade-in .2s ease-out;padding:calc(.8rem + var(--safe-top)) calc(1rem + var(--safe-right)) calc(.8rem + var(--safe-bottom)) calc(1rem + var(--safe-left))}.game-menu-header{display:flex;align-items:center;justify-content:space-between;padding:.2rem .4rem .6rem}.game-menu-logo{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--display);font-size:2.2rem;font-weight:800;color:var(--accent);letter-spacing:.01em;filter:drop-shadow(0 3px 0 rgba(120,60,0,.45))}.game-menu-logo span{background:linear-gradient(180deg,#fff6c8,#ffd34d 45%,#ff9f43);-webkit-background-clip:text;background-clip:text;color:transparent}.game-menu-body{flex:1;display:grid;grid-template-columns:300px 1fr;gap:1.2rem;min-height:0;max-width:1100px;width:100%;margin:0 auto}.game-menu-side{display:flex;flex-direction:column;align-items:center;gap:.8rem;padding:1rem;border:1px solid var(--stroke);border-radius:var(--r-xl);background:var(--grad-glass),var(--glass);box-shadow:var(--inset-hi);overflow-y:auto}.game-menu-side .avatar-preview{width:240px;height:280px}.game-menu-card{display:flex;flex-direction:column;align-items:center;gap:.1rem;width:100%;padding:.7rem;border-radius:var(--r-md);background:#00000040;text-align:center}.game-menu-card-label{font-size:.75rem;font-weight:900;text-transform:uppercase;letter-spacing:.14em;color:var(--text-faint)}.game-menu-card-value{font-family:var(--display);font-size:1.35rem}.game-menu-card-hint{color:var(--accent);font-weight:800;font-size:.9rem}.game-menu-dressup{width:100%}.game-menu-list{overflow-y:auto;padding:.2rem .2rem 1rem;scrollbar-width:thin}.game-menu-list .menu-primary{min-height:68px;font-size:1.35rem}@media(max-width:760px){.game-menu-body{grid-template-columns:1fr;grid-template-rows:auto 1fr;gap:.8rem}.game-menu-side{flex-direction:row;justify-content:flex-start;padding:.7rem}.game-menu-side .avatar-preview{width:110px;height:130px}.game-menu-card{flex:1}.game-menu-dressup{width:auto;min-height:48px;font-size:.95rem}.game-menu-logo{font-size:1.6rem}.hotbar-slot{width:52px;height:52px}.icon-button-lg{height:64px;min-width:64px}.menu-row{min-height:66px}.menu-row-emoji{width:50px;height:50px;flex-basis:50px}}.helper-card{padding:.9rem;border:1px solid var(--stroke);border-radius:var(--r-lg);background:var(--glass-2)}.progress{height:14px;border-radius:999px;background:#00000059;overflow:hidden;margin:.4rem 0}.progress-bar{height:100%;background:var(--grad-primary);transition:width .2s ease}@media(pointer:coarse){.tools-fab{top:calc(4.6rem + var(--safe-top));bottom:auto;left:calc(.7rem + var(--safe-left))}.side-actions{top:calc(4.6rem + var(--safe-top));bottom:auto;transform:none}.move-zone{height:40vh}.joystick{top:calc(100% - 5.2rem - var(--safe-bottom) - 60px)}.jump-button{bottom:calc(5.2rem + var(--safe-bottom))}}.debug-overlay{position:absolute;left:.5rem;top:calc(8.5rem + var(--safe-top));z-index:30;width:min(92vw,520px);max-height:42vh;overflow:auto;padding:.5rem .7rem;border:1px solid rgba(255,255,255,.25);border-radius:12px;background:#000000d1;color:#e6edf3;font:12px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;text-shadow:none;-webkit-user-select:text;user-select:text}.debug-overlay dl{display:grid;grid-template-columns:max-content 1fr;gap:.15rem .6rem;margin:.3rem 0}.debug-overlay dt{color:#9fb3c8}.debug-overlay dd{margin:0;overflow-wrap:anywhere}.debug-overlay pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:30vh;overflow:auto;margin:.3rem 0;padding:.4rem;background:#ffffff0f;border-radius:8px}.debug-overlay button,.debug-toggle{font:inherit;color:inherit;background:#ffffff1f;border:1px solid rgba(255,255,255,.3);border-radius:8px;padding:.25rem .6rem;cursor:pointer}.debug-head{display:flex;justify-content:space-between;align-items:center}.debug-buttons{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin:.3rem 0}.debug-error{color:#ffb4a8}.debug-toggle{position:absolute;left:.5rem;top:calc(8.5rem + var(--safe-top));z-index:30;font-size:18px}.splash-reset{margin-top:.6rem;padding:.45rem .9rem;border:1px solid var(--stroke-strong);border-radius:999px;background:#00000040;color:var(--text-dim);font:inherit;font-weight:700;font-size:.9rem;cursor:pointer}.splash-reset:disabled{opacity:.6}.tap-ripple{position:absolute;width:44px;height:44px;margin:-22px 0 0 -22px;border-radius:50%;border:2px solid rgba(255,255,255,.9);box-shadow:0 0 0 1px #00000059;pointer-events:none;z-index:4;animation:tap-ripple .45s ease-out forwards}@keyframes tap-ripple{0%{transform:scale(.4);opacity:1}to{transform:scale(1.4);opacity:0}}
