.ethan-assistant{--ethan-bg:#fff;--ethan-fg:#172136;--ethan-soft:#f1f5fb;--ethan-border:#dce4f0;--ethan-muted:#59667b;box-sizing:border-box;color:var(--ethan-fg);background:var(--ethan-bg);border:1px solid var(--ethan-border);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;border-radius:28px;width:100%;max-width:680px;margin-inline:auto;padding:28px;font:400 15px/1.5 ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;box-shadow:0 18px 70px #10224d0d}.ethan-assistant[data-theme=dark]{--ethan-bg:#10131c;--ethan-fg:#eef3fc;--ethan-soft:#1c2230;--ethan-border:#30394c;--ethan-muted:#a8b5cc;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:dark){.ethan-assistant[data-theme=system]{--ethan-bg:#10131c;--ethan-fg:#eef3fc;--ethan-soft:#1c2230;--ethan-border:#30394c;--ethan-muted:#a8b5cc;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}.ethan-assistant *{box-sizing:border-box}.ethan-header{justify-content:space-between;align-items:center;gap:16px;display:flex}.ethan-header h2{letter-spacing:-1px;margin:3px 0;font-size:30px;font-weight:650;line-height:1.2}.ethan-eyebrow{color:var(--ethan-muted);letter-spacing:2px;font-size:10px;font-weight:650}.ethan-status{color:var(--ethan-muted);text-align:right;font-size:12px}.ethan-preview{background:var(--ethan-soft);color:var(--ethan-muted);border-radius:10px;padding:8px 12px;font-size:12px}.ethan-orb-stage{place-items:center;min-height:224px;padding:32px;display:grid}.ethan-orb{background:radial-gradient(circle at 32% 27%,#fff 0%,color-mix(in srgb,var(--ethan-orb),white 50%) 13%,var(--ethan-orb) 42%,color-mix(in srgb,var(--ethan-orb),#061022 70%) 100%);width:144px;height:144px;box-shadow:0 0 45px color-mix(in srgb,var(--ethan-orb),transparent 65%),inset 0 0 22px #ffffff70;isolation:isolate;border-radius:50%;position:relative}.ethan-orb:before,.ethan-orb:after{content:"";border:1px solid color-mix(in srgb,var(--ethan-orb),transparent 72%);border-radius:50%;position:absolute;inset:-14px}.ethan-orb:after{border-color:color-mix(in srgb,var(--ethan-orb),transparent 87%);inset:-29px}.ethan-orb span{border-top:2px solid #ffffffb3;border-radius:50%;position:absolute;inset:12%;transform:rotate(-24deg)}.ethan-assistant[data-state=speaking] .ethan-orb,.ethan-assistant[data-state=listening] .ethan-orb{animation:2.8s ease-in-out infinite ethan-breathe}.ethan-assistant[data-state=connecting] .ethan-orb{animation:1.3s ease-in-out infinite ethan-breathe}.ethan-assistant[data-state=paused] .ethan-orb{opacity:.55}.ethan-colors{text-align:center;border:0;margin:0 0 22px;padding:0}.ethan-colors legend{color:var(--ethan-muted);margin:0 auto 10px;padding:0;font-size:12px}.ethan-swatches{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.ethan-assistant button.ethan-swatch{border:2px solid var(--ethan-bg);outline:1px solid var(--ethan-border);color:#fff;text-shadow:0 1px 3px #000;border-radius:50%;width:28px;min-width:28px;height:28px;min-height:28px;padding:0;font-size:15px}.ethan-assistant button.ethan-swatch[aria-pressed=true]{outline:2px solid var(--ethan-fg);outline-offset:3px}.ethan-assistant button{font:inherit;border:1px solid var(--ethan-border);background:var(--ethan-soft);min-height:44px;color:var(--ethan-fg);cursor:pointer;border-radius:12px;padding:11px 15px;font-size:13px;font-weight:550;line-height:1.4;transition:filter .15s,transform .15s}.ethan-assistant button:hover:not(:disabled){filter:brightness(.95);transform:translateY(-1px)}.ethan-assistant button:focus-visible,.ethan-assistant input:focus-visible{outline:3px solid var(--ethan-accent);outline-offset:3px}.ethan-assistant button:disabled{opacity:.5;cursor:default}.ethan-assistant .ethan-primary{background:var(--ethan-accent);color:var(--ethan-accent-ink);border-color:#0000}.ethan-launcher{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.ethan-launcher .ethan-primary{grid-column:1/-1}.ethan-voice-controls{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:16px;display:flex}.ethan-assistant button.ethan-end{color:#fff;background:#9d1c2f;border-color:#9d1c2f}.ethan-voice-controls button[aria-pressed=true]{box-shadow:inset 0 0 0 1px var(--ethan-fg)}.ethan-error{background:var(--ethan-soft);color:var(--ethan-fg);border:1px solid #da7786;border-radius:12px;padding:12px;font-size:13px}.ethan-history{flex-direction:column;gap:8px;padding:16px 0;display:flex}.ethan-history button{text-align:left;overflow-wrap:anywhere}.ethan-transcript{overscroll-behavior:contain;flex-direction:column;gap:10px;max-height:300px;margin-top:14px;padding:14px 2px;display:flex;overflow-y:auto}.ethan-message{background:var(--ethan-soft);border:1px solid var(--ethan-border);overflow-wrap:anywhere;border-radius:16px;align-self:flex-start;max-width:90%;padding:10px 14px}.ethan-message--user{align-self:flex-end}.ethan-message span{color:var(--ethan-muted);font-size:11px;font-weight:650}.ethan-message p{white-space:pre-wrap;margin:3px 0;font-size:14px}.ethan-composer{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}.ethan-composer input{border:1px solid var(--ethan-border);width:0;min-width:100px;font:inherit;background:var(--ethan-soft);color:var(--ethan-fg);border-radius:12px;flex:1;padding:12px 14px}.ethan-composer input::placeholder{color:var(--ethan-muted)}.ethan-unavailable{color:var(--ethan-muted);font-size:13px}.ethan-sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.ethan-assistant--compact{border-radius:20px;max-width:420px;padding:20px}.ethan-assistant--compact .ethan-orb-stage{min-height:180px}.ethan-assistant--compact .ethan-orb{width:110px;height:110px}.ethan-assistant--compact .ethan-header h2{font-size:24px}.ethan-assistant--compact .ethan-eyebrow{letter-spacing:1px;font-size:9px}@keyframes ethan-breathe{0%,to{transform:scale(.97)}50%{transform:scale(1.04)}}@media (prefers-reduced-motion:reduce){.ethan-assistant .ethan-orb{animation:none!important}.ethan-assistant button{transition:none}}@media (max-width:480px){.ethan-assistant{border-radius:20px;padding:20px 16px}.ethan-header{gap:8px}.ethan-status{max-width:120px}.ethan-voice-controls button{flex:28%;padding:10px}.ethan-launcher{gap:8px}.ethan-launcher button{padding:10px}.ethan-orb-stage{min-height:200px}.ethan-swatches{gap:12px}.ethan-composer input{font-size:16px}}