@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Libre+Caslon+Display&display=swap');
:root{color-scheme:dark;--ink:#f1ede5;--muted:#a4afbd;--line:#e5eaf318;--blue:#becfdf;--accent:#d8c6a5;font-family:'DM Sans',Arial,sans-serif;color:var(--ink);background:#111923}*{box-sizing:border-box}body{margin:0;width:100%;height:100vh;height:100dvh;overflow:hidden}button,a,textarea{-webkit-tap-highlight-color:transparent}button,textarea{font:inherit}a{color:inherit;text-decoration:none}button{color:inherit;cursor:pointer}button:disabled{cursor:wait;opacity:.55}button:focus-visible,a:focus-visible,textarea:focus-visible{outline:2px solid var(--blue);outline-offset:5px}[hidden]{display:none!important}.sky{position:fixed;inset:0;overflow:hidden;pointer-events:none;background:radial-gradient(ellipse at 50% 45%,#34455580,transparent 55%),linear-gradient(180deg,#111923,#18232e 75%,#202e39)}.stars{position:absolute;inset:0;background-image:radial-gradient(1px 1px at 15% 24%,#e5d9bb88 80%,transparent),radial-gradient(1px 1px at 76% 20%,#e5d9bb88 80%,transparent),radial-gradient(2px 2px at 87% 40%,#e5d9bb88 80%,transparent),radial-gradient(1px 1px at 32% 65%,#e5d9bb66 80%,transparent),radial-gradient(1px 1px at 63% 14%,#e5d9bb88 80%,transparent)}.rain{position:absolute;inset:-150px 0;opacity:.23;transition:opacity 1s}.rain i{position:absolute;left:var(--x);top:-20%;width:1px;height:var(--len);background:linear-gradient(transparent,#adc4d1);animation:rainfall var(--speed) linear infinite;animation-delay:var(--delay)}.rain-off .rain{opacity:0}.horizon{position:absolute;width:130%;height:20%;bottom:-15%;left:-15%;border-radius:50%;background:#b3c4d010;box-shadow:0 -10px 100px #b3c4d008}.experience{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:100%;padding:0 clamp(22px,4.5vw,76px);isolation:isolate}header{display:flex;align-items:center;justify-content:space-between;height:104px;gap:20px}.brand{display:flex;flex-direction:column;align-items:center;gap:1px;width:120px}.brand img{width:80px;height:44px;object-fit:contain;filter:brightness(0) invert(1);opacity:.9}.brand span{font-size:7px;letter-spacing:2.3px;color:var(--muted)}nav{display:flex;gap:4px;background:#ffffff05;border:1px solid var(--line);padding:5px;border-radius:40px}nav a{padding:10px 26px;border-radius:25px;font-size:11px;color:var(--muted)}nav a[aria-current]{background:#e1e7ed12;color:var(--ink);box-shadow:inset 0 0 0 1px #e1e7ed16}.home{font-size:10px;color:var(--muted);display:flex;gap:17px;align-items:center;width:120px;justify-content:end}.home span{font-size:24px;font-weight:400}.heading{text-align:center}.eyebrow{font-size:8px;letter-spacing:2.5px;color:#a9b6c5}.heading h1{font:400 clamp(38px,4.5vw,68px)/1.04 'Libre Caslon Display',Georgia,serif;letter-spacing:-1.4px;margin:15px 0 11px}.heading p{font-size:12px;color:var(--muted);line-height:1.7;margin:0}.voice-main{min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:space-evenly}.ella-stage{position:relative;display:flex;justify-content:center;align-items:center;min-height:0;flex:1;width:min(58vh,480px);max-height:48vh;max-height:45dvh;margin:4px auto}.ella-button{position:relative;z-index:2;background:none;border:0;padding:0;height:100%;max-width:100%;animation:float 7s ease-in-out infinite;transition:filter .8s}.ella-button img{display:block;height:100%;max-width:100%;object-fit:contain;filter:drop-shadow(0 24px 24px #0003)}.halo{position:absolute;width:85%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#d2c8b81c,transparent 68%);transition:background 1s,transform 1s}.orbit{position:absolute;border:1px solid #c3d6e80c;width:80%;aspect-ratio:1;border-radius:50%;transform:rotateX(65deg);bottom:-8%;transition:opacity 1s}.orbit-two{width:100%;bottom:-17%;opacity:.5}.little-star{position:absolute;color:#d4c8ac;animation:twinkle 6s ease-in-out infinite;font:18px Georgia}.star-one{left:9%;top:30%;font-size:22px}.star-two{right:7%;top:57%;animation-delay:2s}.tap-hint{position:absolute;bottom:5%;right:-22%;transform:rotate(-6deg);font:italic 12px Georgia;color:#a6b1bd8c}.voice-bottom{text-align:center;width:100%;max-width:700px;padding-top:10px}.caption{font:400 clamp(19px,2.2vw,27px)/1.4 'Libre Caslon Display',Georgia,serif;min-height:38px;max-height:90px;overflow:auto;margin:0 auto 10px;max-width:640px;scrollbar-width:thin;color:#e2dfd8}.status{display:flex;align-items:center;justify-content:center;gap:7px;color:var(--muted);font-size:9px;letter-spacing:.5px;min-height:16px}.status-dot{width:4px;height:4px;background:#b1bfcc;border-radius:50%}.voice-controls{display:flex;align-items:center;justify-content:center;gap:15px;margin:20px 0}.start{display:flex;align-items:center;justify-content:center;gap:16px;border:1px solid #fff5;border-radius:40px;padding:17px 27px;min-width:220px;background:#e9e6dd;color:#25313d;font-size:12px;box-shadow:0 5px 40px #e5e4d50a;transition:background .3s,transform .3s}.start:hover{background:#fffaf0}.arrow{font-size:18px;margin-left:12px}.mic-icon{display:block;position:relative;width:9px;height:13px;background:currentColor;border-radius:7px;transform:scale(.8)}.mic-icon:after{content:'';position:absolute;width:15px;height:13px;left:-4px;top:4px;border:1px solid currentColor;border-top:0;border-radius:0 0 10px 10px}.round{border:1px solid #fff2;border-radius:50%;height:42px;width:42px;display:grid;place-items:center;background:#ffffff05;font-size:19px;color:var(--blue)}.round:hover{background:#ffffff12}.prompts{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.prompts button{border:1px solid #ffffff17;background:#ffffff03;padding:10px 15px;border-radius:30px;font-size:10px;color:#b9c4ce;transition:background .3s,transform .3s}.prompts button:hover{background:#ffffff0d}.notice{font-size:9px;color:#8e9ba9;line-height:1.7;margin:17px 0 0}.connection-note{font-size:10px;line-height:1.5;color:#cdbb9e;margin:9px 0 0;min-height:15px}footer{display:flex;align-items:center;justify-content:space-between;gap:15px;min-height:62px;font-size:9px;color:#91a0af}footer>span{font:italic 12px Georgia}footer button{font-size:9px;color:#9dabb9;border:0;background:none;padding:10px}footer button span{padding-left:8px}footer a:hover{color:var(--ink)}body[data-state=speaking] .ella-button{filter:drop-shadow(0 0 22px #dccba83d);animation:float 3s ease-in-out infinite}body[data-state=listening] .halo,body[data-state=speaking] .halo{background:radial-gradient(circle,#c1d7e52e,transparent 65%);animation:breathe 3s ease-in-out infinite}body[data-state=listening] .status-dot{background:#b5d4c1;box-shadow:0 0 10px #b5d4c1}body[data-state=speaking] .status-dot{background:#e6cf9d;box-shadow:0 0 10px #e6cf9d}.text-main{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,7vw,120px);width:100%;max-width:1200px;margin:auto;height:100%;padding:25px 0 35px;min-height:0}.text-companion{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:0}.text-companion .heading{text-align:center}.text-companion .heading h1{font-size:clamp(45px,5vw,74px);line-height:.98}.text-companion .ella-stage{width:min(100%,370px);max-height:40dvh;flex:1;margin:25px 0 0}.companion-quote{font:italic 17px Georgia;color:#b9c4ce;margin:17px 0 0;text-align:center}.chat-panel{height:100%;min-height:0;display:flex;flex-direction:column;border:1px solid #e0e9f21c;background:linear-gradient(145deg,#ffffff06,#ffffff02);border-radius:24px;box-shadow:0 20px 90px #00000012;overflow:hidden;backdrop-filter:blur(12px)}.chat-top{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:20px 25px}.chat-name{font:24px 'Libre Caslon Display',Georgia}.chat-top .status{justify-content:start;margin-top:8px}.chat-top .round{width:32px;height:32px;border-color:transparent}.messages{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:25px;scrollbar-width:thin;scrollbar-color:#ffffff20 transparent;display:flex;flex-direction:column;gap:22px}.message{max-width:92%;flex-shrink:0}.sender{font-size:8px;letter-spacing:1.8px;color:#a5b4c3}.message p{font-size:13px;line-height:1.8;margin:9px 0 0;color:#e4e6e7;white-space:pre-wrap;overflow-wrap:anywhere}.message.user{align-self:end;background:#a9bed214;border:1px solid #a9bed217;border-radius:17px 17px 3px 17px;padding:14px 18px;max-width:85%}.message.user .sender{color:#a7bbce}.message.user p{margin-top:5px}.message.system p{font-size:11px;color:#cdbb9e}.chat-bottom{padding:15px 22px 20px;border-top:1px solid var(--line)}.chat-bottom .prompts{justify-content:start;gap:6px;margin-bottom:15px}.chat-bottom .prompts button{font-size:9px;padding:9px 10px}form{display:flex;align-items:end;gap:8px;background:#0d172459;border:1px solid #ffffff23;padding:10px 10px 10px 16px;border-radius:18px}textarea{resize:none;min-width:0;width:100%;max-height:100px;border:0;background:none;color:var(--ink);font-size:12px;line-height:1.8;outline:none!important;padding:6px 0}textarea::placeholder{color:#8a98a8}form:focus-within{border-color:#b5c9da77}#send{flex:none;background:#d9dedc;color:#283746;border:0;border-radius:50%;width:34px;height:34px;font-size:20px}.chat-bottom .notice{font-size:8px;line-height:1.6;margin:10px 0 0}.chat-bottom .connection-note{font-size:9px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes float{50%{transform:translateY(-9px) rotate(1deg)}}@keyframes twinkle{50%{opacity:.25;transform:scale(.7)}}@keyframes breathe{50%{transform:scale(1.15)}}@keyframes rainfall{to{transform:translate(-70px,130vh)}}
@media(min-height:950px){.voice-main{padding:30px 0}.ella-stage{max-height:46dvh}.voice-controls{margin:25px 0}}@media(max-width:760px){.experience{padding:0 20px}header{height:80px;gap:10px}.brand{width:78px}.brand img{width:62px;height:36px}.brand span{font-size:5px;letter-spacing:1.6px}.home{width:60px;font-size:0;gap:0}.home span{font-size:25px}nav a{padding:9px 20px}.heading .eyebrow{font-size:7px;letter-spacing:1.7px}.heading h1{font-size:40px;letter-spacing:-1px}.heading p{font-size:11px;max-width:270px;margin:auto}.ella-stage{width:min(78vw,390px);max-height:40dvh}.tap-hint{display:none}.caption{font-size:22px;max-width:330px;max-height:62px}.voice-controls{margin:15px 0}.start{padding:15px 23px;min-width:205px}.prompts{gap:6px}.prompts button{font-size:9px;padding:9px 11px}.notice{font-size:8px;margin-top:12px}.connection-note{font-size:9px;max-width:300px;margin:7px auto 0}footer{min-height:48px;font-size:8px}footer>span{display:none}footer button{padding-left:0}.text-main{display:flex;flex-direction:column;gap:0;padding:0 0 8px}.text-companion{height:85px;min-height:85px;position:relative;align-items:start;padding-left:85px;justify-content:center}.text-companion .heading{text-align:left}.text-companion .heading .eyebrow{display:none}.text-companion .heading h1{font-size:28px;line-height:1.1;margin:0 0 5px}.text-companion .heading h1 br{display:none}.text-companion .heading p{font-size:10px;max-width:none}.text-companion .ella-stage{position:absolute;width:66px;height:78px;left:0;top:0;margin:0}.text-companion .little-star,.companion-quote{display:none}.chat-panel{flex:1;border-radius:20px}.chat-top{padding:15px 18px}.chat-name{font-size:22px}.messages{padding:20px;gap:18px}.message p{font-size:12px}.chat-bottom{padding:12px 14px 14px}.chat-bottom .prompts{gap:5px;margin-bottom:10px}.chat-bottom .prompts button{padding:8px 9px}.chat-bottom .connection-note{max-width:none;margin-top:9px}.chat-bottom .notice{font-size:7px}.text-main+.footer{min-height:40px}}@media(max-height:700px){header{height:65px}.heading h1{font-size:34px;margin:10px 0 7px}.ella-stage{max-height:31dvh}.voice-controls{margin:10px 0}.voice-bottom{padding-top:0}.notice{margin-top:8px}.caption{font-size:20px;min-height:28px}.prompts button{padding:7px 10px}footer{min-height:36px}.text-companion{min-height:68px;height:68px}.text-companion .ella-stage{height:60px}.text-main{padding-top:0}.chat-top{padding:12px 18px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.rain{display:none}}

#send{display:grid;place-items:center;transition:background .4s}#send:hover{background:#f1ede5}
