:root{--bg:#fff7fb;--panel:#fff;--line:#ffd6ec;--text:#241344;--muted:#7b6a9c;--c1:#ff2d95;--c2:#8b5cf6;--c3:#00d4ff;--c4:#ffd60a;--c5:#00e878;--c6:#ff7a00;--accent:var(--c1);--accent-soft:255, 45, 149;--btn-fg:#fff;--user-fg:#fff;--glass:#ffffffdb;--glass-line:#8b5cf62e;--blob-alpha:.55}@media (prefers-color-scheme:dark){:root{--bg:#140a26;--panel:#221240;--line:#3a1f63;--text:#f3e9ff;--muted:#b39ddb;--glass:#221240d1;--glass-line:#ffffff1f;--blob-alpha:.42}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font:600 16px/1.55 Nunito,Segoe UI,system-ui,Roboto,sans-serif;overflow-x:hidden}#root{text-align:left;border:0;width:100%;max-width:none;margin:0}.aurora{z-index:-1;background:var(--bg);position:fixed;inset:0;overflow:hidden}.aurora .blob{filter:blur(90px);width:60vmax;height:60vmax;opacity:var(--blob-alpha);will-change:transform;mix-blend-mode:multiply;border-radius:50%;position:absolute}@media (prefers-color-scheme:dark){.aurora .blob{mix-blend-mode:screen}}.aurora .b1{background:var(--c1);animation:19s ease-in-out infinite drift1;top:-18vmax;left:-12vmax}.aurora .b2{background:var(--c3);animation:23s ease-in-out infinite drift2;bottom:-22vmax;right:-12vmax}.aurora .b3{background:var(--c4);animation:29s ease-in-out infinite drift3;top:20%;left:28%}.aurora.dim .blob{opacity:calc(var(--blob-alpha) * .45);filter:blur(120px)}@keyframes drift1{0%,to{transform:translate(0)scale(1)}33%{transform:translate(16vw,10vh)scale(1.18)}66%{transform:translate(6vw,22vh)scale(.9)}}@keyframes drift2{0%,to{transform:translate(0)scale(1.08)}40%{transform:translate(-20vw,-11vh)scale(.94)}70%{transform:translate(-7vw,-24vh)scale(1.2)}}@keyframes drift3{0%,to{transform:translate(0)scale(.95)}50%{transform:translate(14vw,-16vh)scale(1.25)}}.floaters{z-index:-1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.floaters span{font-size:var(--size,28px);bottom:-12vh;left:var(--x,50%);opacity:0;animation:float-up var(--dur,16s) linear var(--delay,0s) infinite;will-change:transform, opacity;position:absolute}@keyframes float-up{0%{opacity:0;transform:translate(0)rotate(0)}10%{opacity:.85}50%{transform:translate(6vw,-55vh)rotate(180deg)}90%{opacity:.85}to{opacity:0;transform:translate(-4vw,-115vh)rotate(360deg)}}.start{text-align:center;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.start-card{background:var(--glass);-webkit-backdrop-filter:blur(18px)saturate(160%);border:3px solid #0000;border-radius:32px;flex-direction:column;align-items:center;gap:14px;padding:40px 44px 44px;animation:.6s cubic-bezier(.34,1.56,.64,1) both rise;display:flex;position:relative;box-shadow:0 24px 60px #8b5cf647}.start-card:before{content:"";z-index:-1;border-radius:inherit;background:linear-gradient(115deg, var(--c1), var(--c4), var(--c5), var(--c3), var(--c2), var(--c1));background-size:300% 100%;animation:6s linear infinite shift;position:absolute;inset:-3px}@keyframes shift{to{background-position:300% 0}}@keyframes rise{0%{opacity:0;transform:translateY(28px)scale(.9)}to{opacity:1;transform:none}}.mascot{cursor:pointer;-webkit-user-select:none;user-select:none;font-size:72px;line-height:1;transition:transform .4s;animation:1.6s cubic-bezier(.3,.9,.4,1) infinite bounce}.mascot:hover{animation:.7s ease-in-out spin-jump}@keyframes bounce{0%,to{transform:translateY(0)scale(1)}30%{transform:translateY(-18px)scale(1.08,.92)}60%{transform:translateY(0)scale(.92,1.08)}}@keyframes spin-jump{0%{transform:translateY(0)rotate(0)scale(1)}50%{transform:translateY(-30px)rotate(360deg)scale(1.25)}to{transform:translateY(0)rotate(720deg)scale(1)}}.start h1{letter-spacing:-.02em;background:linear-gradient(90deg, var(--c1), var(--c6), var(--c4), var(--c5), var(--c3), var(--c2), var(--c1));color:#0000;background-size:300% 100%;-webkit-background-clip:text;background-clip:text;margin:0;font-size:46px;font-weight:900;animation:4s linear infinite shift}.start p{color:var(--muted);margin:0;font-size:17px}.start button{font:inherit;background:linear-gradient(90deg, var(--c1), var(--c2), var(--c3), var(--c1));color:var(--btn-fg);cursor:pointer;box-shadow:0 10px 26px rgba(var(--accent-soft), .45);background-size:300% 100%;border:0;border-radius:999px;margin-top:10px;padding:16px 40px;font-size:19px;font-weight:800;transition:transform .2s;animation:3s linear infinite shift,2.2s ease-in-out infinite breathe;position:relative}.start button:after{content:"";border-radius:inherit;border:3px solid var(--c1);pointer-events:none;animation:2.2s ease-out infinite ring;position:absolute;inset:0}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes ring{0%{opacity:.7;transform:scale(1)}to{opacity:0;transform:scale(1.35)}}.start button:hover{transform:scale(1.1)rotate(-2deg)}.start button:active{transform:scale(.96)}.start-card.wide{width:min(460px,100%)}.start-card .who{color:var(--muted);font-family:ui-monospace,monospace;font-size:13px}.auth-deck{overflow-clip-margin:60px;width:min(390px,100%);padding:4px;display:grid;position:relative;overflow:clip}.auth-track{display:contents}.auth-card{-webkit-user-select:none;user-select:none;touch-action:pan-y;will-change:transform, opacity;grid-area:1/1;justify-content:center;gap:10px;padding:32px 40px 24px;transition:transform .38s cubic-bezier(.4,0,.2,1),opacity .18s ease-out;animation:none}.auth-card.off:before{animation:none}.auth-card.off{opacity:0;pointer-events:none}.auth-card.off .mascot{animation:none}.auth-card.login.off{transform:translate(-34%)}.auth-card.register.off{transform:translate(34%)}.auth-card h1{font-size:38px}.auth-card input,.auth-card button{-webkit-user-select:auto;user-select:auto}.auth-switch{font:inherit;color:var(--muted);opacity:.55;cursor:pointer;background:0 0;border:none;padding:2px 6px;font-size:12px;font-weight:600;transition:none}.auth-switch:hover{color:var(--muted);opacity:.55}.auth-nav{flex-direction:column;align-items:center;gap:8px;margin-top:14px;display:flex}.auth-dots{justify-content:center;gap:8px;display:flex}.auth-dots button{cursor:pointer;background:0 0;border:none;place-items:center;width:22px;height:22px;padding:0;display:grid}.auth-dots button:before{content:"";background:var(--glass-line);border-radius:50%;width:7px;height:7px;transition:background .2s,transform .2s}.auth-dots button.on:before{background:var(--c2);transform:scale(1.25)}.auth-dots button:hover:before{background:var(--c2)}.auth-sub{text-align:center;align-items:center;min-height:3.1em;display:flex}.auth-err{white-space:pre-wrap;min-height:1.1em;margin:0;padding:2px 12px;font-size:13px;line-height:1.1}.auth-err.blank{visibility:hidden}.auth-form{flex-direction:column;gap:10px;width:min(320px,100%);margin-top:4px;display:flex}.start-card.wide .auth-form{width:100%}.auth-form .row2{gap:10px;display:flex}.auth-form .row2 input{width:50%}.auth-form input{width:100%;font:inherit;color:var(--text);background:var(--panel);border:2px solid var(--glass-line);border-radius:14px;outline:none;padding:13px 16px;font-size:15px;transition:border-color .15s,box-shadow .15s}.auth-form input::placeholder{color:var(--muted);opacity:.75}.auth-form input:focus{border-color:var(--c2);box-shadow:0 0 0 4px #8b5cf62e}.auth-form button[type=submit]{font:inherit;color:var(--btn-fg);background:linear-gradient(120deg, var(--c1), var(--c2));cursor:pointer;border:none;border-radius:14px;padding:13px 18px;font-size:16px;font-weight:700;transition:transform .12s,filter .15s}.auth-form button[type=submit]:hover:not(:disabled){filter:brightness(1.08)}.auth-form button[type=submit]:active:not(:disabled){transform:scale(.97)}.auth-form button[type=submit]:disabled{opacity:.55;cursor:default}.link{font:inherit;color:var(--c2);cursor:pointer;text-underline-offset:3px;background:0 0;border:none;padding:4px;font-size:14px;text-decoration:underline}.link:hover{color:var(--c1)}.link.plus{font-size:24px;line-height:1;text-decoration:none}.link.muted-link{color:var(--muted);font-size:13px}.start .card-back{font:inherit;color:var(--muted);border:2px solid var(--glass-line);box-shadow:none;cursor:pointer;background:0 0;border-radius:999px;margin:0;padding:6px 12px;font-size:13px;font-weight:700;transition:color .15s,border-color .15s;animation:none;position:absolute;top:14px;right:16px}.start .card-back:after{content:none}.start .card-back:hover{color:var(--c2);border-color:var(--c2);transform:none}.roles{flex-direction:column;gap:12px;width:100%;display:flex}.start .role{width:100%;font:inherit;text-align:left;color:var(--text);background:var(--panel);border:2px solid var(--glass-line);box-shadow:none;cursor:pointer;border-radius:20px;grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:center;column-gap:16px;margin:0;padding:16px 20px;transition:transform .14s,border-color .15s,box-shadow .15s;animation:none;display:grid}.start .role:after{content:none}.start .role:hover{border-color:var(--c2);transform:translateY(-2px);box-shadow:0 10px 24px #8b5cf633}.role-face{grid-row:1/3;font-size:38px;line-height:1}.role-name{font-size:18px;font-weight:800}.role-note{color:var(--muted);font-size:12px;font-weight:600}.child-actions{flex-direction:column;align-items:center;gap:10px;display:flex}.start .child-actions .secondary{color:var(--c2);border:2px solid var(--glass-line);box-shadow:none;background:0 0;padding:10px 24px;font-size:15px;animation:none}.start .child-actions .secondary:after{content:none}.start .child-actions .secondary:hover{border-color:var(--c2)}.kids{flex-direction:column;gap:10px;width:100%;margin:4px 0 0;padding:0;list-style:none;display:flex}.kids button{width:100%;font:inherit;text-align:left;color:var(--text);background:var(--panel);border:2px solid var(--glass-line);cursor:pointer;border-radius:18px;grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:center;column-gap:14px;padding:12px 16px;transition:transform .12s,border-color .15s,box-shadow .15s;display:grid}.kids button:hover{border-color:var(--c3);transform:translate(3px);box-shadow:0 8px 20px #00d4ff2e}.kid-face{grid-row:1/3;font-size:32px}.kid-name{font-size:17px;font-weight:700}.kid-meta{color:var(--muted);font-size:13px}.profile-screen{justify-content:center;align-items:flex-start;padding:16px}.pip{--pip:#4dff9a;--pip-dim:#2a8f57;--pip-bg:#071309;--pip-line:#4dff9a47;border:2px solid var(--pip-line);background:var(--pip-bg);width:min(860px,100%);color:var(--pip);text-align:left;border-radius:14px;flex-direction:column;gap:14px;padding:18px;font-family:ui-monospace,SF Mono,Cascadia Mono,Menlo,Consolas,monospace;font-size:14px;font-weight:500;animation:.45s ease-out both rise;display:flex;position:relative;overflow:hidden;box-shadow:0 0 0 1px #4dff9a1a,0 20px 60px #0009,inset 0 0 90px #4dff9a12}.pip-scan{pointer-events:none;mix-blend-mode:multiply;background:repeating-linear-gradient(#00000038 0 1px,#0000 1px 3px);position:absolute;inset:0}.pip-boot,.pip-note,.pip-err{color:var(--pip-dim)}.pip-err{color:#ff6b6b}.pip-note{margin:4px 0 0;font-size:12px}.pip-head{border-bottom:1px solid var(--pip-line);align-items:center;gap:10px;padding-bottom:10px;display:flex}.pip-title{text-align:center;letter-spacing:.18em;color:var(--pip-dim);flex:1;font-size:12px}.pip-btn{font:inherit;letter-spacing:.08em;color:var(--pip);border:1px solid var(--pip-line);cursor:pointer;background:0 0;border-radius:4px;padding:7px 12px;font-size:12px;transition:background .12s,color .12s}.pip-btn:hover:not(:disabled){background:var(--pip);color:var(--pip-bg)}.pip-btn:disabled{opacity:.45;cursor:default}.pip-btn.go{border-color:var(--pip);font-weight:700}.pip-kids{flex-wrap:wrap;gap:6px;display:flex}.pip-kid{font:inherit;color:var(--pip-dim);border:1px solid var(--pip-line);cursor:pointer;background:0 0;border-radius:999px;padding:6px 12px;font-size:13px}.pip-kid.on{color:var(--pip-bg);background:var(--pip);border-color:var(--pip)}.pip-kid.add{border-style:dashed;padding:6px 12px;font-size:15px;line-height:1.2}.pip-hero{border:1px solid var(--pip-line);background:#4dff9a0a;border-radius:10px;flex-wrap:wrap;align-items:center;gap:16px;padding:14px;display:flex}.pip-face{filter:saturate(.4)hue-rotate(70deg);font-size:46px;line-height:1}.pip-info{flex:1;min-width:140px}.pip-info h1{letter-spacing:.04em;margin:0;font-size:22px}.pip-info p{color:var(--pip-dim);letter-spacing:.1em;margin:2px 0 0;font-size:12px}.pip-stats{gap:18px;margin:0;display:flex}.pip-stats dt{letter-spacing:.12em;color:var(--pip-dim);font-size:10px}.pip-stats dd{margin:0;font-size:20px;font-weight:700}.pip-exit{width:auto;color:var(--pip-dim);cursor:pointer;box-shadow:none;background:0 0;border:none;border-radius:0;flex:none;align-self:flex-start;place-items:center;margin:0;padding:2px;transition:none;animation:none;display:grid;transform:none}.pip-exit:after{content:none}.pip-exit:hover{color:var(--pip);transform:none}.pip-tabs{gap:6px;display:flex}.pip-tabs button{font:inherit;letter-spacing:.16em;color:var(--pip-dim);border:1px solid var(--pip-line);cursor:pointer;background:0 0;border-radius:4px;flex:1;padding:8px;font-size:12px}.pip-tabs button.on{color:var(--pip-bg);background:var(--pip)}.pip-link{border:1px dashed var(--pip);background:#4dff9a0f;border-radius:8px;padding:12px}.pip-link-top{letter-spacing:.12em;margin:0 0 6px;font-size:11px}.pip-link-row{flex-wrap:wrap;gap:8px;display:flex}.pip-link-row select{min-width:200px;font:inherit;color:var(--pip);border:1px solid var(--pip-line);cursor:pointer;appearance:none;background:#00000073;background-image:linear-gradient(45deg, transparent 50%, var(--pip) 50%), linear-gradient(135deg, var(--pip) 50%, transparent 50%);background-position:right 14px center,right 9px center;background-repeat:no-repeat;background-size:5px 5px,5px 5px;border-radius:4px;flex:1;padding:8px 30px 8px 10px;font-size:13px}.pip-link-row select option{color:var(--pip);background:#0b1f13}.pip-link-out{border-top:1px dashed var(--pip-line);margin-top:10px;padding-top:10px}.pip-link code{word-break:break-all;background:#0006;border-radius:4px;padding:8px;font-size:12px;display:block}.pip-link-note{color:var(--pip-dim);margin:8px 0 0;font-size:11px}.pip-live-row{border:1px solid var(--pip);background:#4dff9a12;border-radius:8px;align-items:center;gap:10px;margin-top:10px;padding:10px 12px;display:flex}.pip-live-dot{background:var(--pip);border-radius:50%;flex:none;width:8px;height:8px;animation:1.6s ease-in-out infinite live-pulse}@keyframes live-pulse{0%,to{opacity:1;box-shadow:0 0 #4dff9a80}50%{opacity:.6;box-shadow:0 0 0 6px #4dff9a00}}.pip-live-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.pip-live-info b{font-size:13px}.pip-live{letter-spacing:.14em;white-space:nowrap;border:1px solid;border-radius:3px;padding:3px 8px;font-size:10px}.pip-live.off{color:var(--pip-dim)}.pip-watch-feed{flex:1;min-height:240px;max-height:60vh;padding:4px 2px;overflow-y:auto}.watch{min-height:min(600px,80vh)}.pip-msg-photo{object-fit:contain;border:1px solid var(--pip-line);z-index:2;border-radius:6px;width:auto;max-width:100%;max-height:50vh;margin:6px 0 10px;display:block;position:relative}.pip-card{flex-direction:column;gap:4px;margin:8px 0 0;display:flex}.pip-card>div{gap:8px;font-size:12px;display:flex}.pip-card dt{min-width:130px;color:var(--pip-dim)}.pip-card dd{flex:1;margin:0}.pip-status h2{letter-spacing:.16em;margin:0;font-size:13px}.pip-skills{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.pip-skill{border-bottom:1px solid #4dff9a1f}.pip-skill.locked{opacity:.45}.pip-skill.open{background:#4dff9a0f}.pip-skill-head{width:100%;font:inherit;color:inherit;cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:8px 6px;display:flex}.pip-skill-head:hover{background:#4dff9a1a}.pip-skill-emoji{filter:saturate(.4)hue-rotate(70deg);font-size:15px}.pip-skill-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.pip-dots{border-bottom:1px dotted #4dff9a59;flex:1;min-width:12px;height:1em;transform:translateY(-3px)}.pip-bars{gap:2px;display:inline-flex}.pip-bars i{border:1px solid var(--pip-line);width:10px;height:12px}.pip-bars i.on{background:var(--pip);border-color:var(--pip)}.pip-lv{text-align:right;width:1.2em;font-weight:700}.pip-skill-body{border-top:1px solid #4dff9a1f;margin-top:2px;padding:12px 12px 18px 30px;font-size:12px}.pip-skill-body p{margin:0 0 8px}.pip-actions{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.pip-subtabs{gap:14px;padding:2px 4px;display:flex}.pip-subtabs button{font:inherit;letter-spacing:.04em;color:var(--pip-dim);cursor:pointer;box-shadow:none;background:0 0;border:none;border-bottom:1px solid #0000;padding:2px 0;font-size:12px;animation:none}.pip-subtabs button:after{content:none}.pip-subtabs button.on{color:var(--pip);border-bottom-color:var(--pip)}.pip-log{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.pip-log-row{border-bottom:1px solid #4dff9a1f}.pip-log-row.open{background:#4dff9a0a}.pip-log-row.done{opacity:.75}.pip-log-head{width:100%;font:inherit;color:inherit;cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:9px 6px;font-size:12px;display:flex}.pip-log-head:hover{background:#4dff9a0d}.pip-log-date{color:var(--pip-dim);white-space:nowrap}.pip-log-subject{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.pip-log-n{color:var(--pip-dim);white-space:nowrap}.pip-tag{letter-spacing:.1em;white-space:nowrap;border:1px solid;border-radius:3px;padding:2px 7px;font-size:10px}.pip-tag.done{color:var(--pip-dim)}.pip-tag.active{color:var(--pip)}.pip-tag.abandoned{color:#d8a657}.pip-log-sum{color:var(--pip-dim);border-left:2px solid var(--pip-line);margin:0 6px 8px;padding-left:10px;font-size:12px}.pip-log-body{padding:4px 6px 14px}.pip-msg{white-space:pre-wrap;word-break:break-word;margin:0 0 6px;font-size:12px;line-height:1.5}.pip-msg b{color:var(--pip-dim);margin-right:6px}.pip-msg.assistant{border-left:1px solid var(--pip-line);padding-left:12px}.pip-recent{margin:8px 0 0;padding:0;font-size:11px;list-style:none}.pip-recent li{color:var(--pip-dim);align-items:center;gap:8px;padding:3px 0;display:flex}.pip-foot{border-top:1px solid var(--pip-line);flex-wrap:wrap;gap:8px;padding-top:10px;display:flex}.chat{flex-direction:column;max-width:800px;height:100vh;margin:0 auto;display:flex}.chat header{border-bottom:3px solid #0000;border-image:linear-gradient(90deg, var(--c1), var(--c4), var(--c5), var(--c3), var(--c2)) 1;background:var(--glass);-webkit-backdrop-filter:blur(16px)saturate(150%);justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;display:flex}.logo{font-size:24px;animation:3s ease-in-out infinite wiggle}@keyframes wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-12deg)scale(1.1)}75%{transform:rotate(12deg)scale(1.1)}}.token{color:var(--muted);margin-right:auto;font-family:ui-monospace,monospace;font-size:13px}.ghost{border:2px solid var(--c2);color:var(--c2);font:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:7px 14px;font-size:14px;font-weight:800;transition:transform .2s,background .2s,color .2s}.ghost:hover{background:var(--c2);color:#fff;transform:scale(1.06)rotate(2deg)}.ghost.danger{border-color:var(--c6);color:var(--c6)}.ghost.danger:hover{background:var(--c6);color:#fff}.feed{flex-direction:column;flex:1;gap:14px;padding:20px 16px 24px;display:flex;overflow-y:auto}.hint{color:var(--muted);text-align:center;margin:auto 0;font-size:18px;animation:2.4s ease-in-out infinite bounce}.bubble{white-space:pre-wrap;word-break:break-word;border-radius:22px;max-width:80%;padding:12px 16px;animation:.45s cubic-bezier(.34,1.56,.64,1) both pop;position:relative}@keyframes pop{0%{opacity:0;transform:translateY(16px)scale(.8)}to{opacity:1;transform:none}}.bubble.user{background:linear-gradient(135deg, var(--c1), var(--c2));color:var(--user-fg);box-shadow:0 8px 20px rgba(var(--accent-soft), .35);border-bottom-right-radius:6px;align-self:flex-end}.bubble.assistant{z-index:0;background:var(--panel);border-bottom-left-radius:6px;align-self:flex-start;box-shadow:0 8px 20px #8b5cf62e}.bubble.assistant:before{content:"";z-index:-1;border-radius:inherit;background:linear-gradient(100deg, var(--c3), var(--c5), var(--c4), var(--c1), var(--c3));opacity:.45;background-size:300% 100%;transition:opacity .6s;animation:4s linear infinite paused shift;position:absolute;inset:-3px}.bubble.assistant.streaming:before{opacity:1;animation-play-state:running}.bubble.assistant:after{content:"🤖";filter:drop-shadow(0 2px 4px #0003);font-size:22px;position:absolute;top:-14px;left:-14px}.bubble.assistant.streaming:after{animation:.9s ease-in-out infinite wiggle}.caret{vertical-align:text-bottom;opacity:1;border-radius:2px;width:3px;height:1em;margin-left:3px;transition:opacity .5s;animation:1s ease-in-out infinite caret-pulse;display:inline-block}.caret.off{opacity:0}@keyframes caret-pulse{0%,to{background:var(--c1)}50%{background:var(--c3)}}.attached{border:3px solid #fff9;border-radius:14px;max-width:100%;margin-bottom:8px;display:block}.attached:only-child{margin-bottom:0}.dots{gap:6px;padding:4px 0;display:inline-flex}.dots i{border-radius:50%;width:10px;height:10px;animation:.9s ease-in-out infinite hop}.dots i:first-child{background:var(--c1)}.dots i:nth-child(2){background:var(--c4);animation-delay:.15s}.dots i:nth-child(3){background:var(--c3);animation-delay:.3s}@keyframes hop{0%,to{transform:translateY(0)scale(1)}40%{transform:translateY(-10px)scale(1.25)}}.confetti{z-index:5;pointer-events:none;position:fixed;bottom:90px;left:50%}.confetti i{background:var(--col);border-radius:3px;width:12px;height:12px;animation:1.1s cubic-bezier(.15,.7,.3,1) forwards burst;position:absolute}@keyframes burst{0%{opacity:1;transform:translate(0)rotate(0)scale(1)}to{opacity:0;transform:translate(var(--dx), var(--dy)) rotate(540deg) scale(.3)}}.error{color:#d61b6f;background:#ff2d951f;border-radius:14px;margin:0 16px 8px;padding:8px 14px;font-size:14px;font-weight:700;animation:.4s ease-in-out shake}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-8px)}75%{transform:translate(8px)}}.composer{border-top:3px solid #0000;border-image:linear-gradient(90deg, var(--c2), var(--c3), var(--c5), var(--c4), var(--c1)) 1;background:var(--glass);-webkit-backdrop-filter:blur(16px)saturate(150%);padding:12px 16px 16px}.preview{align-items:center;gap:10px;margin-bottom:10px;display:flex}.preview img{border:3px solid var(--c3);border-radius:12px;height:60px}.preview button{color:var(--c1);cursor:pointer;font:inherit;background:0 0;border:0;font-size:14px;font-weight:800}.row{align-items:flex-end;gap:10px;display:flex}.clip{cursor:pointer;-webkit-user-select:none;user-select:none;font-size:26px;line-height:46px;transition:transform .25s}.clip:hover{transform:scale(1.3)rotate(-18deg)}.row textarea{resize:none;border:3px solid var(--line);background:var(--panel);max-height:160px;color:var(--text);font:inherit;border-radius:18px;flex:1;padding:12px 16px;transition:border-color .25s,box-shadow .25s}.row textarea:focus{border-color:var(--c2);outline:none;box-shadow:0 0 0 5px #8b5cf638}.row button[type=submit]{background:linear-gradient(135deg, var(--c1), var(--c2), var(--c3));width:48px;height:48px;color:var(--btn-fg);cursor:pointer;box-shadow:0 6px 18px rgba(var(--accent-soft), .45);background-size:200% 200%;border:0;border-radius:50%;flex:none;font-size:22px;font-weight:900;transition:transform .2s,box-shadow .2s,opacity .2s}.row button[type=submit]:not(:disabled):hover{box-shadow:0 10px 26px rgba(var(--accent-soft), .6);transform:scale(1.15)rotate(8deg)}.row button[type=submit]:not(:disabled):active{transform:scale(.9)}.row button[type=submit]:disabled{opacity:.35;cursor:default}@media (prefers-reduced-motion:reduce){.aurora .blob,.floaters span,.mascot,.logo,.hint,.start h1,.start button,.start button:after,.bubble,.bubble.assistant:before,.bubble.assistant.streaming:after,.caret,.dots i,.confetti i,.error{animation:none}.confetti{display:none}}
