@keyframes shimmer{0%{transform:translateX(-150%)}to{transform:translateX(250%)}}@keyframes pulse-dot{0%,to{opacity:var(--opacity-40);transform:scale(1)}50%{opacity:var(--opacity-100);transform:scale(1.1)}}@keyframes pulse-subtle{0%,to{opacity:var(--opacity-100);transform:scale(1)}50%{opacity:var(--opacity-90);transform:scale(1.02)}}@keyframes blink-cursor{0%,to{opacity:var(--opacity-100)}50%{opacity:var(--opacity-0)}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes chip-reveal{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-slide-up{0%{opacity:var(--opacity-0);transform:translateY(8px)}to{opacity:var(--opacity-100);transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:.8}}.animate-pulse-subtle{animation:pulse-subtle var(--pulse-duration) ease-in-out infinite}.animate-fade-slide-up{animation:fade-slide-up var(--motion-base) var(--ease-out)}.prose-smooth{contain:layout style;transform:translateZ(0);-webkit-font-smoothing:subpixel-antialiased;-moz-osx-font-smoothing:auto}.prose-smooth,.streaming-text{will-change:contents;text-rendering:optimizeSpeed}.streaming-text{font-feature-settings:normal;backface-visibility:hidden}.chat-scroll-container{will-change:scroll-position;transform:translateZ(0);backface-visibility:hidden;text-rendering:optimizeSpeed;-webkit-font-smoothing:subpixel-antialiased;-moz-osx-font-smoothing:auto;contain:layout style paint}.scrollbar-hide::-webkit-scrollbar{display:none}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-thin::-webkit-scrollbar{width:6px;height:6px}.scrollbar-thin::-webkit-scrollbar-track{background:transparent;border-radius:var(--radius-lg)}.scrollbar-thin::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:var(--radius-lg);-webkit-transition:background var(--transition-base) var(--ease-out);transition:background var(--transition-base) var(--ease-out)}.scrollbar-thin::-webkit-scrollbar-thumb:hover{background:var(--border-medium)}.scrollbar-thin{scrollbar-width:thin;scrollbar-color:var(--border-default) transparent}.glass-panel{background:var(--surface-glass);backdrop-filter:blur(12px) saturate(180%);-webkit-backdrop-filter:blur(12px) saturate(180%);border:1px solid var(--border-light)}.streaming-cursor{position:relative;display:inline-block;width:8px;height:1em;vertical-align:text-bottom}.streaming-cursor:after{content:"▌";position:absolute;left:0;top:0;animation:blink-cursor var(--typing-cursor-duration) step-end infinite;color:var(--primary-500)}.message-timeline{position:relative}.message-timeline:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,transparent,var(--primary-200) 20%,var(--primary-200) 80%,transparent);opacity:var(--opacity-30);transform:translateX(-50%);pointer-events:none}.thinking-dot{animation:pulse-dot 1.4s ease-in-out infinite}.thinking-dot:nth-child(2){animation-delay:var(--motion-base)}.thinking-dot:nth-child(3){animation-delay:var(--motion-slow)}.focus-ring:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:var(--radius-md)}.question-callout:focus-visible{box-shadow:var(--question-shadow),var(--question-focus)}.transition-smooth{transition:all var(--transition-base) var(--ease-out)}.transition-colors{transition:background-color var(--transition-fast) var(--ease-out),border-color var(--transition-fast) var(--ease-out),color var(--transition-fast) var(--ease-out)}.chat-bg-gradient{background:radial-gradient(ellipse 120% 80% at 50% 20%,var(--primary-50),var(--surface) 60%,var(--lilac-50) 100%)}.surface-gradient{background:var(--gradient-surface)}.glass--regular{position:relative;backdrop-filter:blur(var(--glass-reg-blur)) saturate(var(--glass-reg-sat)) contrast(var(--glass-reg-ctr)) brightness(var(--glass-reg-brt));background:var(--glass-reg-tint);border:1px solid var(--glass-reg-stroke);box-shadow:var(--glass-reg-shadow-a),var(--glass-reg-shadow-k);border-radius:16px}.glass--clear{position:relative;backdrop-filter:blur(var(--glass-clr-blur)) saturate(var(--glass-clr-sat)) contrast(var(--glass-clr-ctr)) brightness(var(--glass-clr-brt));background:var(--glass-clr-tint);border:1px solid var(--glass-clr-stroke);box-shadow:0 4px 12px rgba(0,0,0,.12);border-radius:999px}.glass__highlight:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(120% 120% at 10% 10%,rgba(255,255,255,.35),rgba(255,255,255,0) 60%);mix-blend-mode:screen}.reveal-line{--delay:0ms;--duration:1200ms;display:inline-block;position:relative;font-weight:600;line-height:var(--line-height-tight);background:linear-gradient(90deg,var(--text-on-glass-light) 0 0);background-size:0 100%;background-repeat:no-repeat;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;filter:blur(.2px);animation:text-wipe var(--duration) var(--t-ease-standard,cubic-bezier(.2,0,0,1)) forwards var(--delay),text-sharpen .24s linear forwards calc(var(--delay) + var(--duration) - .2s)}.reveal-line--fallback{-webkit-background-clip:initial;background-clip:initial;-webkit-text-fill-color:initial;color:var(--text-on-glass-light);animation:none}@keyframes text-wipe{to{background-size:100% 100%}}@keyframes text-sharpen{to{filter:blur(0)}}.morph-host{position:relative;isolation:isolate}.morph-host .panel{transform-origin:50% 50%;transition:transform var(--t-morph,.42s) var(--t-ease-emph,cubic-bezier(.16,1,.3,1)),opacity var(--t-morph,.42s) var(--t-ease-emph,cubic-bezier(.16,1,.3,1)),filter var(--t-morph,.42s) var(--t-ease-emph,cubic-bezier(.16,1,.3,1));will-change:transform,opacity,filter}.morph-host[data-state=confirm] .panel--confirm{opacity:1;transform:translateY(0) scale(1);filter:blur(0);pointer-events:auto;display:block}.morph-host[data-state=confirm] .panel--question{opacity:0;transform:translateY(4px) scale(1);filter:blur(3px);pointer-events:none;display:none}.morph-host[data-state=confirm] .panel--question .reveal-line{animation:none!important;background-size:0 100%;filter:none}.morph-host[data-state=backspace] .panel--confirm{opacity:0;transform:translateY(0) scale(1);filter:blur(2px);pointer-events:none;display:none}.morph-host[data-state=backspace] .panel--backspace{opacity:1;transform:translateY(0) scale(1);filter:blur(0);pointer-events:auto;display:block}.morph-host[data-state=backspace] .panel--question{opacity:0;transform:translateY(4px) scale(1);filter:blur(3px);pointer-events:none;display:none}.morph-host[data-state=question] .panel--confirm{opacity:0;transform:translateY(0) scale(1);filter:blur(2px);pointer-events:none;display:none}.morph-host[data-state=question] .panel--question{opacity:1;transform:translateY(0) scale(1);filter:blur(0);pointer-events:auto;display:block}.morph-host[data-state=question] .panel--confirm .reveal-line{animation:none!important;background-size:100% 100%;filter:none}.chat-input{height:56px;border-radius:999px;display:flex;align-items:center;padding:0 12px;color:var(--text-on-glass-dark)}.chat-input input{flex:1;background:transparent;border:0;outline:none;font-size:15px;font-weight:500;font-family:inherit;color:var(--text-on-glass-light);caret-color:var(--accent)}.chat-input input::-moz-placeholder{color:rgba(0,0,0,1);opacity:1;font-family:inherit}.chat-input input::placeholder{color:rgba(0,0,0,1);opacity:1;font-family:inherit}.chat-input:focus-within{box-shadow:0 0 0 2px rgba(47,124,246,.28),0 18px 42px rgba(0,0,0,.28)}.glass-energize:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(60% 60% at var(--x,50%) var(--y,50%),rgba(255,255,255,.18),rgba(255,255,255,0) 60%);opacity:0;transition:opacity .32s var(--t-ease-decelerate)}.glass-energize[data-active=true]:before{opacity:1}.quiz-gradient-bg{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none}.gradient-orb{position:absolute;will-change:transform;filter:blur(60px);opacity:1;transition:opacity .3s ease}.gradient-orb-cyan{width:clamp(400px,40vw,600px);height:clamp(400px,40vw,600px);background:var(--quiz-radial-cyan);top:-10%;right:-5%;animation:float-1 25s ease-in-out infinite}.gradient-orb-lilac{width:clamp(500px,50vw,700px);height:clamp(500px,50vw,700px);background:var(--quiz-radial-lilac);bottom:-15%;left:-10%;animation:float-2 30s ease-in-out infinite}.gradient-orb-purple{width:clamp(450px,45vw,650px);height:clamp(450px,45vw,650px);background:var(--quiz-radial-purple);top:40%;right:-8%;animation:float-3 28s ease-in-out infinite}@keyframes float-1{0%,to{transform:translate(0) scale(1)}33%{transform:translate(-30px,40px) scale(1.05)}66%{transform:translate(20px,-30px) scale(.95)}}@keyframes float-2{0%,to{transform:translate(0) scale(1)}33%{transform:translate(40px,-50px) scale(1.08)}66%{transform:translate(-25px,35px) scale(.92)}}@keyframes float-3{0%,to{transform:translate(0) scale(1)}33%{transform:translate(-35px,-40px) scale(.96)}66%{transform:translate(30px,45px) scale(1.04)}}@media (max-width:768px){.gradient-orb{filter:blur(60px)}.gradient-orb-cyan{width:300px;height:300px;top:-5%;right:-10%}.gradient-orb-lilac{width:350px;height:350px;bottom:-10%;left:-15%}.gradient-orb-purple{width:320px;height:320px;top:50%;right:-12%}}@media (prefers-reduced-motion:reduce){.animate-pulse-subtle,.gradient-orb-cyan,.gradient-orb-lilac,.gradient-orb-purple,.streaming-cursor:after,.thinking-dot{animation:none!important}.transition-colors,.transition-smooth{transition:none!important}.reveal-line{animation:none;color:currentColor;filter:none}.morph-host .panel{transition:opacity .2s linear!important}}@media (prefers-contrast:high){.glass-panel{border:2px solid}.focus-ring:focus-visible{outline-width:3px}}@media screen and (max-width:768px){input,input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],select,textarea{font-size:16px!important;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border-radius:0}input,select,textarea{border-radius:inherit}}@media (max-width:640px){.chat-stack{row-gap:var(--m-space-y)}.chat-card{border-radius:var(--m-radius)}.chat-card-inner{border-radius:var(--m-radius-inner)}.question-callout{margin-bottom:10px}.chips-row{margin-top:8px;margin-bottom:8px}.input-wrap{margin-top:6px}.prose{max-width:64ch}.chip-button{min-height:32px;min-width:40px;padding:6px 12px}}@media (max-width:380px){.prose{max-width:56ch}.chat-stack{row-gap:10px}}