*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}[hidden]{display:none!important}:root{--scene-1: #d7ccf2;--scene-2: #cdc0ec;--ink: #2d2350;--card-bg: rgba(255, 255, 255, .92);--card-line: rgba(120, 90, 200, .14);--card-ink: #2d2350;--accent: #8b5cf6;--accent-2: #f472b6;--on-accent: #fff;--soft: #ede8fa;--glow: rgba(139, 92, 246, .35);--clay-a: #c9b8f2;--clay-b: #9f86e0;--rug: #cec1ef;--cam-1: #2c2540;--cam-2: #1b1729;--display: "Fredoka", ui-rounded, -apple-system, system-ui, sans-serif;--body: "Nunito", ui-rounded, -apple-system, "SF Pro Rounded", "Segoe UI", system-ui, sans-serif;--ease-ios: cubic-bezier(.32, .72, 0, 1);--dur-press: 90ms;--dur-release: .2s;--dur-sheet: .34s;--dur-sheet-out: .24s}html,body{height:100%;overscroll-behavior:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;touch-action:manipulation}body{font-family:var(--body);background:linear-gradient(180deg,var(--scene-1) 0%,var(--scene-2) 100%);color:var(--ink);-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer;-webkit-touch-callout:none}button:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:999px}button:focus:not(:focus-visible){outline:none}#app{position:relative;height:100dvh;display:flex;flex-direction:column;padding:calc(max(env(safe-area-inset-top),54px) + 8px) 16px calc(env(safe-area-inset-bottom) + 18px)}.decor{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:0}.win{position:absolute;top:64px;left:18px;width:92px;height:112px;border-radius:22px;background:linear-gradient(180deg,#ffffff8c,#ffffff2e);border:6px solid var(--card-bg);box-shadow:0 10px 22px -10px #1e0f3740}.win:before,.win:after{content:"";position:absolute;background:var(--card-bg)}.win:before{left:50%;top:0;bottom:0;width:6px;margin-left:-3px}.win:after{top:50%;left:0;right:0;height:6px;margin-top:-3px}.shelf{position:absolute;top:92px;right:18px;width:90px;height:12px;border-radius:7px;background:var(--card-bg);opacity:.85}.shelf:before{content:"";position:absolute;bottom:12px;left:12px;width:20px;height:30px;border-radius:10px 10px 4px 4px;background:var(--accent-2);opacity:.75}.shelf:after{content:"";position:absolute;bottom:12px;right:14px;width:24px;height:24px;border-radius:50%;background:var(--accent);opacity:.6}.top-row{flex:none;position:relative;z-index:5;display:flex;align-items:center;justify-content:space-between}.top-cluster{display:flex;align-items:center;gap:10px}.iconbtn{width:46px;height:46px;border-radius:50%;border:1px solid var(--card-line);background:var(--card-bg);color:var(--accent);display:flex;align-items:center;justify-content:center;box-shadow:0 8px 18px -10px #1e0f3759;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:transform var(--dur-release) var(--ease-ios)}.iconbtn svg{width:20px;height:20px}.iconbtn:active{transform:scale(.96);transition:transform var(--dur-press) ease-out}#stage{position:relative;flex:1;min-height:0;z-index:1}model-viewer{width:100%;height:100%;--poster-color: transparent;background:transparent;will-change:transform}.rug{position:absolute;bottom:4%;left:50%;transform:translate(-50%);width:min(72vw,320px);height:64px;border-radius:50%;background:var(--rug);box-shadow:0 0 0 14px color-mix(in srgb,var(--rug) 45%,transparent);z-index:0}@keyframes squash-jump{0%{transform:scale(1) translateY(0)}15%{transform:scale(1.1,.86) translateY(2px)}35%{transform:scale(.9,1.14) translateY(-16px)}55%{transform:scale(1.08,.92) translateY(0)}75%{transform:scale(.96,1.05) translateY(-4px)}to{transform:scale(1) translateY(0)}}.react-jump{animation:squash-jump .9s var(--ease-ios)}#glow{position:absolute;top:10%;right:10%;bottom:10%;left:10%;border-radius:50%;background:radial-gradient(circle,#8b5cf68c,#8b5cf600 62%);opacity:0;pointer-events:none;transition:opacity .12s linear;z-index:1}#glow.bloom{animation:bloom 1.4s var(--ease-ios)}@keyframes bloom{0%{opacity:0;transform:scale(.6)}35%{opacity:1;transform:scale(1.15)}to{opacity:0;transform:scale(1)}}.name{flex:none;text-align:center;margin-top:6px;position:relative;z-index:2}.name h1{font-family:var(--display);font-weight:700;font-size:clamp(26px,7vw,30px);letter-spacing:-.01em;color:var(--ink)}.name .eyebrow{display:block;margin-top:3px;font-size:11.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;opacity:.62;color:var(--ink)}.pill{display:inline-block;margin-top:8px;padding:5px 14px;font-size:.8rem;font-weight:700;border-radius:999px;background:var(--soft);color:var(--ink);opacity:.75;transition:opacity var(--dur-press) var(--ease-ios),background .3s var(--ease-ios),color .3s var(--ease-ios);position:relative;z-index:2;align-self:center}.pill.live{background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent);opacity:1}.pill.err{background:#e6498026;color:#c2255c;opacity:1}#reactions{position:relative;z-index:2;display:flex;justify-content:center;gap:8px;padding:10px 0 8px}.chip{position:relative;display:inline-flex;align-items:center;gap:5px;border:1px solid var(--card-line);border-radius:999px;padding:8px 14px;font-size:.82rem;font-weight:700;background:var(--card-bg);color:var(--card-ink);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 6px 14px -10px #1e0f374d;transition:transform var(--dur-release) var(--ease-ios),background .2s var(--ease-ios),opacity .2s var(--ease-ios)}.chip-ic{width:14px;height:14px;flex:none}.chip:after{content:"";position:absolute;top:-7px;right:-2px;bottom:-7px;left:-2px}.chip:active{transform:scale(.96);background:var(--soft);transition:transform var(--dur-press) ease-out,background .2s var(--ease-ios)}.chip[disabled]{opacity:.4}.actionbar{position:relative;z-index:2;flex:none;display:flex;align-items:flex-end;justify-content:space-evenly;gap:12px}.act{flex:1;max-width:118px;background:var(--card-bg);border:1px solid var(--card-line);border-radius:22px;padding:14px 6px 12px;display:flex;flex-direction:column;align-items:center;gap:7px;color:var(--card-ink);font-weight:800;font-size:11.5px;text-align:center;line-height:1.2;box-shadow:0 10px 22px -12px #1e0f374d;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:transform var(--dur-release) var(--ease-ios)}.act:active{transform:scale(.96);transition:transform var(--dur-press) ease-out}.act .ic{width:24px;height:24px;color:var(--accent)}.talk-btn{width:108px;height:108px;flex:none;border:4px solid rgba(255,255,255,.55);border-radius:50%;color:#fff;background:linear-gradient(155deg,var(--accent),var(--accent-2));box-shadow:0 16px 30px -8px var(--glow),inset 0 2px 6px #ffffff59;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;transition:transform var(--dur-release) var(--ease-ios),box-shadow .3s var(--ease-ios)}@keyframes lamp-pulse{0%,to{box-shadow:0 0 24px #8b5cf659,inset 0 2px 6px #ffffff59}50%{box-shadow:0 0 48px #8b5cf6b3,inset 0 2px 6px #ffffff59}}.talk-btn:active,.talk-btn.held{transform:scale(1.1);box-shadow:0 0 60px #8b5cf6d9,inset 0 2px 6px #ffffff59;transition:transform var(--dur-press) ease-out,box-shadow .3s var(--ease-ios)}.talk-icon{width:30px;height:30px;display:flex;align-items:center;justify-content:center}.talk-icon svg{width:100%;height:100%}.talk-label{font-size:.66rem;font-weight:800;letter-spacing:.2px;max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:linear-gradient(180deg,var(--scene-1) 0%,var(--scene-2) 100%);color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:28px;text-align:center}.overlay[hidden]{display:none}.overlay:not([hidden]){animation:sheet-in var(--dur-sheet) var(--ease-ios)}.overlay.closing{animation:sheet-out var(--dur-sheet-out) var(--ease-ios) forwards}@keyframes sheet-in{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes sheet-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(24px)}}.welcome-lamp{width:130px;height:130px;border-radius:50%;background:radial-gradient(circle at 50% 35%,#efe4ff,var(--accent) 60%,transparent 72%);filter:blur(2px);animation:lamp-pulse 2.4s ease-in-out infinite}#welcome h2{font-family:var(--display);font-weight:700;font-size:1.9rem;line-height:1.2;color:var(--ink)}.welcome-sub{color:var(--ink);opacity:.6;font-size:1rem;font-weight:700}.welcome-actions{display:flex;flex-direction:column;gap:12px;width:min(320px,82vw);margin-top:8px}.cta{display:flex;align-items:center;justify-content:center;gap:8px;padding:17px;border:none;border-radius:18px;font-family:var(--display);font-size:1.1rem;font-weight:700;background:linear-gradient(155deg,var(--accent),var(--accent-2));color:var(--on-accent);box-shadow:0 12px 26px -8px var(--glow);transition:transform var(--dur-release) var(--ease-ios)}.cta-ic{width:20px;height:20px;flex:none}.ghost{padding:12px;border:none;border-radius:14px;background:var(--soft);color:var(--accent);font-size:.92rem;font-weight:700;transition:transform var(--dur-release) var(--ease-ios)}.cta:active,.ghost:active{transform:scale(.96);transition:transform var(--dur-press) ease-out}.grownups-overlay h2{font-family:var(--display);font-weight:700;font-size:1.7rem;color:var(--ink)}#grownups-mission{width:min(340px,84vw);min-height:90px;padding:14px;border:1px solid var(--card-line);border-radius:16px;background:var(--card-bg);color:var(--card-ink);font-family:inherit;font-size:.95rem;font-weight:600;line-height:1.4;resize:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}#grownups-mission::placeholder{color:var(--card-ink);opacity:.45}#grownups-mission:focus{outline:2px solid var(--accent)}#grownups-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;width:min(340px,84vw)}.mission-chip{position:relative;border:1px solid var(--card-line);border-radius:999px;padding:8px 14px;font-size:.82rem;font-weight:700;background:var(--card-bg);color:var(--card-ink);transition:transform var(--dur-release) var(--ease-ios),background .2s var(--ease-ios)}.mission-chip:after{content:"";position:absolute;top:-7px;right:-2px;bottom:-7px;left:-2px}.mission-chip:active{transform:scale(.96);background:var(--soft);transition:transform var(--dur-press) ease-out,background .2s var(--ease-ios)}#grownups-actions{display:flex;flex-direction:column;gap:12px;width:min(320px,80vw)}.gen-overlay{z-index:21;background:linear-gradient(180deg,var(--cam-1) 0%,var(--cam-2) 100%);color:#fff;justify-content:flex-end;gap:22px;padding:24px 20px calc(env(safe-area-inset-bottom) + 24px)}.gen-overlay:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(70% 45% at 50% 30%,rgba(255,255,255,.1),transparent 70%),radial-gradient(40% 30% at 78% 20%,var(--glow),transparent 70%);pointer-events:none}.gen-overlay.is-generating{background:linear-gradient(180deg,var(--scene-1) 0%,var(--scene-2) 100%);color:var(--ink)}.gen-overlay.is-generating:before{display:none}.gen-photo-wrap{position:relative;width:min(60vw,220px);aspect-ratio:3 / 4;margin:auto auto 0;display:flex;align-items:center;justify-content:center;transition:width .3s var(--ease-ios),aspect-ratio .3s var(--ease-ios)}.gen-overlay.is-generating .gen-photo-wrap{width:min(42vw,168px);aspect-ratio:1 / 1}#gen-preview{width:100%;height:100%;object-fit:cover;border-radius:26px;box-shadow:0 20px 50px #00000080;transition:border-radius .3s var(--ease-ios)}.gen-overlay.is-generating #gen-preview{border-radius:50%}.bracket{position:absolute;width:28px;height:28px;border:3px solid rgba(255,255,255,.85);display:block}.bracket.tl{top:-8px;left:-8px;border-right:none;border-bottom:none;border-radius:10px 0 0}.bracket.tr{top:-8px;right:-8px;border-left:none;border-bottom:none;border-radius:0 10px 0 0}.bracket.bl{bottom:-8px;left:-8px;border-right:none;border-top:none;border-radius:0 0 0 10px}.bracket.br{bottom:-8px;right:-8px;border-left:none;border-top:none;border-radius:0 0 10px}.gen-overlay.is-generating .bracket{display:none}.orbit{position:absolute;top:-20px;right:-20px;bottom:-20px;left:-20px;border-radius:50%;border:2px dashed var(--accent);opacity:.5;animation:spin 10s linear infinite;display:none}.orbit.two{top:-42px;right:-42px;bottom:-42px;left:-42px;border-style:dotted;opacity:.35;animation-duration:7s;animation-direction:reverse}@keyframes spin{to{transform:rotate(360deg)}}.gen-overlay.is-generating .orbit{display:block}.gen-actions{display:flex;flex-direction:column;gap:12px;width:min(320px,80vw)}.shutter-cta{padding:17px;border:none;border-radius:30px;font-family:var(--display);font-size:1.05rem;font-weight:600;background:#fff;color:#241c3d;box-shadow:0 0 0 5px #ffffff38,0 10px 30px #00000059;transition:transform var(--dur-release) var(--ease-ios)}.ghost-dark{padding:12px;border:none;border-radius:16px;background:#ffffff24;color:#fff;font-size:.9rem;font-weight:700;transition:transform var(--dur-release) var(--ease-ios)}.shutter-cta:active,.ghost-dark:active{transform:scale(.96);transition:transform var(--dur-press) ease-out}.gen-card{width:100%;max-width:380px;background:var(--card-bg);border:1px solid var(--card-line);border-radius:26px;padding:20px;text-align:left;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.gen-card h3{margin:0;font-family:var(--display);font-weight:600;font-size:19px;color:var(--card-ink)}.gen-card .sub{margin:4px 0 0;font-size:12.5px;font-weight:700;color:var(--card-ink);opacity:.6}.prog{height:12px;border-radius:8px;background:var(--soft);overflow:hidden;margin:16px 0}#gen-fill{display:block;height:100%;width:0%;border-radius:8px;background:linear-gradient(90deg,var(--accent),var(--accent-2));transition:width .4s var(--ease-ios)}.steps{display:flex;flex-direction:column;gap:10px}.step{display:flex;align-items:center;gap:10px;font-size:13.5px;font-weight:700;color:var(--card-ink);transition:opacity .2s var(--ease-ios)}.step .dot{width:20px;height:20px;flex:none;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid var(--card-line);color:var(--accent)}.step .dot svg{width:11px;height:11px}.step.done{opacity:.55}.step.done .dot{background:var(--accent);border-color:var(--accent);color:#fff}.step.now .dot{border-color:var(--accent);color:var(--accent);animation:pulse 1.2s ease-in-out infinite}.step.wait{opacity:.4}@keyframes pulse{50%{transform:scale(1.18)}}.onb-cards{display:flex;flex-direction:column;gap:16px;width:min(380px,100%);margin:auto auto 0}.onb-step{display:flex;flex-direction:column;gap:14px}.onb-step h3{font-family:var(--display);font-weight:600;font-size:19px;color:var(--card-ink);text-align:center}.onb-input{width:100%;min-height:44px;padding:12px 16px;border:1px solid var(--card-line);border-radius:16px;background:var(--card-bg);color:var(--card-ink);font-family:inherit;font-size:1rem;font-weight:700;text-align:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.onb-input::placeholder{color:var(--card-ink);opacity:.45}.onb-input:focus{outline:2px solid var(--accent)}.onb-options{display:flex;flex-direction:column;gap:10px}.onb-opt{position:relative;min-height:44px;padding:12px 16px;border:1px solid var(--card-line);border-radius:16px;background:var(--card-bg);color:var(--card-ink);font-weight:700;font-size:.98rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:transform var(--dur-release) var(--ease-ios),background .2s var(--ease-ios),border-color .2s var(--ease-ios),color .2s var(--ease-ios)}.onb-opt:active{transform:scale(.97);transition:transform var(--dur-press) ease-out}.onb-opt.selected{background:color-mix(in srgb,var(--accent) 16%,var(--card-bg));border-color:var(--accent);color:var(--accent)}.onb-select{width:100%;min-height:44px;padding:10px 16px;border:1px solid var(--card-line);border-radius:16px;background:var(--card-bg);color:var(--card-ink);font-family:inherit;font-size:.95rem;font-weight:700}.onb-continue{min-height:44px;padding:13px;border:none;border-radius:16px;font-family:var(--display);font-size:1rem;font-weight:700;background:linear-gradient(155deg,var(--accent),var(--accent-2));color:var(--on-accent);box-shadow:0 10px 22px -8px var(--glow);transition:transform var(--dur-release) var(--ease-ios),opacity .2s var(--ease-ios)}.onb-continue:active{transform:scale(.96);transition:transform var(--dur-press) ease-out}.onb-continue[disabled]{opacity:.4}.onb-sub{font-size:13px;font-weight:700;color:var(--card-ink);opacity:.65;line-height:1.45;text-align:left}.gen-message-btn{margin-top:4px;width:100%}.gen-close{position:absolute;top:max(env(safe-area-inset-top),18px);right:18px;z-index:6;background:#ffffff29;color:#fff;border:none}.gen-overlay.is-generating .gen-close{background:var(--card-bg);color:var(--accent)}.mytoys-overlay h2{font-family:var(--display);font-weight:700;font-size:1.7rem;color:var(--ink)}.mytoys-list{display:flex;flex-direction:column;gap:10px;width:min(360px,88vw);max-height:46vh;overflow-y:auto}.mytoys-empty{font-size:.9rem;font-weight:700;opacity:.6;padding:12px 0}.toy-row{display:flex;align-items:center;gap:10px;min-height:44px;padding:8px 8px 8px 16px;border:1px solid var(--card-line);border-radius:16px;background:var(--card-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-align:left}.toy-row-name{flex:1;min-height:44px;display:flex;align-items:center;font-weight:800;font-size:.95rem;color:var(--card-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:none;background:none;text-align:left;padding:0}.toy-row-chip{flex:none;font-size:.7rem;font-weight:800;padding:4px 10px;border-radius:999px;background:var(--soft);color:var(--ink);opacity:.75;border:none}.toy-row-chip.is-ready{background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent);opacity:1}.toy-row-chip.is-failed{background:#e6498026;color:#c2255c;opacity:1}.toy-row-del{flex:none;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border:none;border-radius:50%;background:transparent;color:var(--card-ink);opacity:.5}.toy-row-del svg{width:16px;height:16px}.toy-row-del:active{opacity:1;transform:scale(.92)}.toy-row.confirming{flex-direction:column;align-items:stretch;gap:10px;padding:14px 16px}.toy-row-confirm-txt{font-size:.88rem;font-weight:700;color:var(--card-ink)}.toy-row-confirm-actions{display:flex;gap:8px}.toy-row-confirm-actions button{flex:1;min-height:44px;border:none;border-radius:12px;font-weight:800;font-size:.82rem}.toy-row-confirm-actions .confirm-yes{background:#c2255c;color:#fff}.toy-row-confirm-actions .confirm-no{background:var(--soft);color:var(--ink)}.mytoys-actions{display:flex;flex-direction:column;gap:12px;width:min(320px,82vw)}@media(prefers-reduced-motion:reduce){.welcome-lamp,.overlay,.react-jump,.orbit,.step.now .dot{animation:none!important}#glow.bloom{animation:none;opacity:0}}
