:root{--sky-top: #2f7fd6;--sky-mid: #6fb2ec;--sky-low: #cfe6fb;--frost: #eaf5ff;--white: #ffffff;--blue: #1d5fd1;--blue-dark: #164aa6;--blue-soft: #e4effc;--fir: #1f7a55;--fir-dark: #164f3b;--fir-soft: #e3f4ec;--sky-deep: #1b5a9c;--sky-deep-dark: #134577;--toy-red: #c0353f;--toy-mustard: #d99a22;--toy-green: #2f7a5b;--toy-cobalt: #3d5f9e;--toy-pink: #d9677a;--gold: #e2bd5c;--gold-dark: #a7802b;--thread: #c9a46a;--ink: #12324f;--ink-soft: #4b6784;--line: #c9ddf2;--line-strong: #9fc2e8;--warn-bg: #fff6da;--bad-bg: #fde7ea;--bad: #b3263e;--r-pane: 28px;--r-tile: 22px;--r-control: 14px;--font-display: "Unbounded", "Nunito", system-ui, sans-serif;--font-body: "Nunito", system-ui, -apple-system, "Segoe UI", sans-serif;color-scheme:light}*{box-sizing:border-box}html,body{margin:0}body{min-height:100vh;min-height:100dvh;background:linear-gradient(180deg,var(--sky-top) 0%,var(--sky-mid) 42%,var(--sky-low) 78%,var(--frost) 100%) fixed;color:var(--ink);font-family:var(--font-body);font-size:18px;line-height:1.55;-webkit-text-size-adjust:100%}h1,h2{font-family:var(--font-display);color:var(--ink);margin:0;letter-spacing:-.01em;line-height:1.2}h1{font-size:2.25rem;font-weight:700}h2{font-size:1.45rem;font-weight:500}p{margin:0}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.5}:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.scene{position:fixed;inset:auto 0 0 0;height:38vh;min-height:220px;z-index:0;pointer-events:none}.forest{width:100%;height:100%;display:block}.snow{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:0}.flake{position:absolute;top:-2rem;color:#fff;text-shadow:0 0 6px rgba(29,95,209,.35);animation-name:fall;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes fall{to{transform:translate(var(--drift),110vh) rotate(360deg)}}.page{position:relative;z-index:1;max-width:760px;margin:0 auto;padding:14px 16px 48px}.top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 4px 18px;color:var(--white)}.logo{display:flex;align-items:center;gap:10px;padding:0;border:0;background:none;color:var(--white);font-family:var(--font-display);font-weight:500;font-size:1.15rem;text-align:left;text-shadow:0 1px 8px rgba(18,50,79,.25)}.logo:disabled{opacity:1}.logo-icon{display:grid;filter:drop-shadow(0 1px 6px rgba(18,50,79,.3))}.top-right{display:flex;align-items:center;gap:10px}.hello{font-weight:800;text-shadow:0 1px 8px rgba(18,50,79,.25)}.card{position:relative;min-height:340px;padding:28px;border-radius:var(--r-pane);background:#ffffffe6;border:1.5px solid rgba(255,255,255,.9);box-shadow:0 24px 60px #103a6e47,inset 0 1px #fffffff2;overflow:hidden}@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){.card{background:#ffffffa8;-webkit-backdrop-filter:blur(20px) saturate(150%);backdrop-filter:blur(20px) saturate(150%)}}.card:before,.card:after{content:"";position:absolute;width:170px;height:170px;pointer-events:none;opacity:.75;background:url(/spa/assets/frost-iJUDOgDN.svg) no-repeat;background-size:contain}.card:before{top:0;left:0}.card:after{right:0;bottom:0;transform:rotate(180deg)}.card>*{position:relative;z-index:1}.stack{display:flex;flex-direction:column;gap:18px}.row{display:flex;gap:8px;align-items:flex-start}.row>.input{flex:1;min-width:0}.center{text-align:center}.center-row{justify-content:center;flex-wrap:wrap}.muted{color:var(--ink-soft)}.lead{font-size:1.15rem;color:var(--ink-soft);max-width:34em;margin:0 auto}.hint{font-size:.95rem;color:var(--ink-soft)}.big-emoji{font-size:3.4rem;line-height:1.1}.icon{display:inline-block;flex:none;vertical-align:-.2em}.bauble{--size: 58px;--c: var(--toy-red);position:relative;display:inline-flex;flex-direction:column;align-items:center;flex:none}.bauble:before{content:"";width:2px;height:calc(var(--size) * .17);background:var(--thread)}.bauble.no-thread:before{display:none}.bauble-cap{width:calc(var(--size) * .28);height:calc(var(--size) * .14);margin-bottom:-2px;z-index:1;border-radius:3px 3px 1px 1px;background:linear-gradient(90deg,var(--gold-dark),var(--gold) 45%,var(--gold-dark))}.bauble-orb{position:relative;width:var(--size);height:var(--size);border-radius:50%;display:grid;place-items:center;overflow:hidden;color:#fff;background:var(--c);background:radial-gradient(circle at 34% 28%,color-mix(in srgb,var(--c) 55%,#fff) 0%,var(--c) 42%,color-mix(in srgb,var(--c) 70%,#000) 100%);box-shadow:0 6px 14px color-mix(in srgb,var(--c) 35%,transparent);transition:box-shadow .25s,transform .2s}.bauble-orb:after{content:"";position:absolute;left:21%;top:15%;width:26%;height:14%;border-radius:50%;background:#ffffff8c;transform:rotate(-30deg)}.bauble-orb .icon{position:relative;z-index:1;stroke-width:2.2;--fb: rgba(255, 255, 255, .28);--fg: rgba(255, 255, 255, .28);--fw: rgba(255, 255, 255, .35)}.toy-red{--c: var(--toy-red)}.toy-mustard{--c: var(--toy-mustard)}.toy-green{--c: var(--toy-green)}.toy-cobalt{--c: var(--toy-cobalt)}.toy-pink{--c: var(--toy-pink)}.toy-white{--c: #ffffff}.toy-white .bauble-orb{color:var(--sky-deep);box-shadow:0 6px 14px #0a285040}.toy-white .bauble-orb .icon{--fb: #d6e6f7;--fg: #d6e6f7;--fw: #fff}.input{width:100%;font:inherit;padding:12px 14px;border:2px solid var(--line);border-radius:var(--r-control);background:var(--white);color:var(--ink);resize:none}.input::placeholder{color:#8aa2bb}.input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 4px #1d5fd126}.input.big{font-size:1.3rem;font-weight:600}.field{display:flex;flex-direction:column;gap:6px;font-weight:600}.field small{font-weight:400}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:12px 22px;border:2px solid var(--line-strong);border-radius:var(--r-control);background:var(--white);color:var(--blue-dark);font-weight:800;transition:background-color .15s,transform .1s}.btn:not(:disabled):hover{background:var(--blue-soft)}.btn:not(:disabled):active{transform:scale(.97)}.btn.primary{background:var(--blue);border-color:var(--blue);color:var(--white)}.btn.primary:not(:disabled):hover{background:var(--blue-dark)}.btn.go{background:var(--fir);border-color:var(--fir);color:var(--white)}.btn.go:not(:disabled):hover{background:var(--fir-dark)}.btn.small{min-height:40px;padding:6px 12px;font-size:.95rem}.btn.ghost{background:transparent;border-color:transparent}.btn.ghost:not(:disabled):hover{background:#fff9}.btn.danger{color:var(--bad)}.btn.wide{width:100%}.btn.huge{min-height:68px;font-size:1.2rem;border-radius:18px}.btn.round{width:56px;height:56px;padding:0;border-radius:50%;font-size:1.6rem}.btn.add{border-style:dashed;background:#ffffff8c}.icon-btn{width:44px;height:44px;border-radius:50%;border:1.5px solid rgba(255,255,255,.7);background:#fff3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:grid;place-items:center;color:var(--white)}.icon-btn.on{background:var(--white);color:var(--sky-deep)}.mic{flex:none;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;border:2px solid var(--line);background:var(--white);color:var(--blue);--fb: var(--blue-soft)}.mic:hover{border-color:var(--blue)}.mic.on{background:var(--blue);border-color:var(--blue);color:var(--white);animation:pulse 1.2s infinite}.mic.busy{border-color:var(--toy-mustard);color:var(--toy-mustard);--fb: #fbe6b5;cursor:progress}.mic.busy .icon{animation:spin 1.6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%{box-shadow:0 0 #1d5fd180}to{box-shadow:0 0 0 16px #1d5fd100}}.home-hero{display:flex;flex-direction:column;align-items:center;gap:10px;padding-top:4px}.choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.choice{display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;padding:22px 20px;border-radius:var(--r-tile);border:2px solid var(--line);background:var(--white);transition:border-color .15s,transform .15s}.choice:hover{border-color:var(--blue);transform:translateY(-2px)}.choice.featured{background:var(--sky-deep);border-color:var(--sky-deep);color:var(--white)}.choice.featured .choice-title,.choice.featured .choice-text{color:var(--white)}.choice.featured:hover{border-color:var(--sky-deep-dark);background:var(--sky-deep-dark)}.choice .bauble{margin:-22px 0 2px;transform-origin:50% 0}.choice:hover .bauble{animation:sway 1.4s ease-in-out infinite}@keyframes sway{0%,to{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}.hero-tree{color:var(--toy-green);--fg: #bfe3cf;filter:drop-shadow(0 4px 10px rgba(31,122,85,.25))}.choice-title{font-family:var(--font-display);font-weight:500;font-size:1.1rem;color:var(--ink)}.choice-text{color:var(--ink-soft);font-size:.95rem}.chat{display:flex;flex-direction:column;gap:12px}.chat-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.chat-title{font-family:var(--font-display);font-weight:500;font-size:1rem}.chat-box{height:min(55vh,520px);overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:12px;background:#cfe6fb99;border:1.5px solid rgba(255,255,255,.9);border-radius:22px}.msg{display:flex;gap:8px;align-items:flex-end;max-width:90%}.msg.user{align-self:flex-end;flex-direction:row-reverse}.avatar{flex:none;align-self:flex-start;margin-top:-10px}.bubble{padding:10px 14px;background:var(--white);border-radius:20px 20px 20px 6px}.msg.user .bubble{background:var(--blue);color:var(--white);border-radius:20px 20px 6px}.bubble-text{white-space:pre-wrap;overflow-wrap:anywhere}.bubble-links{display:flex;flex-direction:column;gap:6px;margin-top:8px}.typing{display:flex;gap:4px;padding:14px}.typing span{width:8px;height:8px;border-radius:50%;background:var(--line-strong);animation:blink 1.2s infinite}.typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.3}40%{opacity:1}}.chat-input{display:flex;gap:8px;align-items:flex-end}.chat-input .input{flex:1;min-width:0}.send{width:56px;padding:0;--fw: rgba(255, 255, 255, .25)}.finish-bar.glow .btn{animation:glow 1.6s infinite alternate}@keyframes glow{0%{box-shadow:0 0 #1f7a5500}to{box-shadow:0 0 24px #1f7a558c}}.link-badge{display:flex;gap:10px;align-items:center;padding:10px 12px;border-radius:12px;font-size:.95rem;color:var(--ink)}.link-badge.good{background:var(--fir-soft)}.link-badge.warn{background:var(--warn-bg)}.link-badge.bad{background:var(--bad-bg)}.link-badge.compact{padding:6px 10px;font-size:.85rem}.link-img{width:56px;height:56px;flex:none;object-fit:contain;border-radius:8px;background:var(--white)}.link-line{display:flex;gap:6px;flex-wrap:wrap;align-items:baseline}.link-badge.good .icon{color:var(--fir)}.link-badge.warn .icon{color:var(--gold-dark)}.link-badge.bad .icon{color:var(--bad)}.link-msg{color:var(--ink-soft);font-size:.85em}.price{font-weight:800;color:var(--fir)}.wizard{display:flex;flex-direction:column;gap:22px}.steps{position:relative;display:flex;justify-content:space-between;gap:4px;padding-top:2px}.steps:before{content:"";position:absolute;left:4%;right:4%;top:0;height:24px;border-bottom:2px solid var(--thread);border-radius:0 0 50% 50%/0 0 100% 100%}.step-dot{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:0;border:0;background:none;color:var(--ink-soft);font-size:.8rem}.step-dot:nth-child(2) .bauble,.step-dot:nth-child(4) .bauble{margin-top:8px}.step-dot:not(.done):not(.active) .bauble-orb{background:#ffffffb3;color:var(--gold-dark);border:2px dashed var(--thread);box-shadow:none}.step-dot:not(.done):not(.active) .bauble-orb:after{display:none}.step-dot:not(.done):not(.active) .bauble-orb .icon{--fb: none;--fg: none;--fw: none}.step-dot:hover .bauble-orb{transform:translateY(2px)}.step-dot.active .bauble-orb{transform:scale(1.12);box-shadow:0 0 0 5px #ffcf6b59,0 0 22px 6px #ffcf6b99}.step-dot.active{color:var(--ink);font-weight:800}.age{align-items:center}.age-input{max-width:110px;text-align:center}.behaviors{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.behavior{display:flex;flex-direction:column;align-items:center;gap:4px;padding:16px 8px;border-radius:18px;border:2px solid var(--line);background:var(--white);font-weight:800}.behavior:hover{border-color:var(--blue)}.behavior{margin-top:18px}.behavior .bauble{margin-top:-30px}.behavior.active{border-color:var(--fir);background:var(--fir-soft);color:var(--fir-dark)}.behavior.active .bauble-orb{box-shadow:0 0 0 5px #ffcf6b59,0 0 22px 6px #ffcf6b99}.wish{display:flex;flex-direction:column;gap:12px;padding:18px;border-radius:var(--r-tile);background:var(--white);border:2px solid var(--line)}.wish-head{display:flex;justify-content:space-between;align-items:center}.wish-num{display:flex;align-items:center;gap:8px;font-family:var(--font-display);font-weight:500;font-size:1rem;color:var(--fir-dark)}.wish-num .icon{color:var(--toy-red);--fb: #f6d5d8;--fg: #f6d5d8}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{padding:8px 14px;border-radius:999px;border:1.5px solid var(--line-strong);background:#ffffffbf;font-size:.95rem;color:var(--blue-dark)}.chip:hover{background:var(--white);border-color:var(--blue)}.preview{padding:6px;border-radius:22px;background:var(--blue-soft);min-height:120px}.preview .center{padding:40px 0}.preview-frame{width:100%;height:600px;border:0;border-radius:16px;display:block}.nav{display:flex;justify-content:space-between;gap:12px}.sent{padding:20px 0}.flying{display:inline-block;color:var(--sky-deep);--fw: var(--white);animation:fly 2.4s ease-in-out infinite}@keyframes fly{0%{transform:translate(-30px,10px) rotate(-10deg)}50%{transform:translate(30px,-20px) rotate(8deg)}to{transform:translate(-30px,10px) rotate(-10deg)}}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%);z-index:10;max-width:min(560px,calc(100vw - 32px));padding:14px 20px;border-radius:16px;background:var(--ink);color:var(--white);text-align:center;cursor:pointer;box-shadow:0 12px 40px #103a6e59}.fade-enter-active,.fade-leave-active{transition:opacity .3s}.fade-enter-from,.fade-leave-to{opacity:0}@media(prefers-reduced-motion:reduce){.flake{display:none}.flying,.mic.on,.mic.busy .icon,.finish-bar.glow .btn,.choice:hover .bauble{animation:none}.choice,.bauble-orb,.btn{transition:none}}@media(max-width:560px){body{font-size:17px}h1{font-size:1.75rem}h2{font-size:1.25rem}.card{padding:18px;border-radius:24px}.card:before,.card:after{width:110px;height:110px}.logo{font-size:.95rem}.step-label{display:none}.chat-box{height:50vh}.scene{height:30vh}}
