:root{color-scheme:dark;--ink:#07101d;--panel:#0d1828;--panel2:#101e31;--line:#24344a;--text:#eef4fb;--muted:#9caec1;--cyan:#46c9d4;--cyan2:#a7f3ed;--gold:#c1a875;--shadow:0 24px 70px rgba(0,0,0,.42)}
*{box-sizing:border-box}html{font-size:16px}body{margin:0;min-height:100vh;background:radial-gradient(circle at 18% 12%,#16304b 0,transparent 34%),radial-gradient(circle at 90% 80%,#102d3a 0,transparent 30%),var(--ink);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,textarea{font:inherit}.shell{width:min(1440px,100%);margin:auto;padding:24px 34px 38px}.topbar{height:68px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(156,174,193,.18);margin-bottom:28px}.brand{display:flex;align-items:center;gap:13px;color:inherit;text-decoration:none}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--gold);font-family:Georgia,serif;font-size:.78rem;letter-spacing:.08em;color:#ead8b0}.brand strong,.brand small{display:block}.brand strong{font-family:Georgia,serif;font-size:1.08rem;font-weight:500}.brand small{color:var(--muted);font-size:.72rem;letter-spacing:.08em;margin-top:3px;text-transform:uppercase}.privacy{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.82rem}.privacy span,.identity-chip span{width:7px;height:7px;border-radius:50%;background:var(--cyan);box-shadow:0 0 12px var(--cyan)}.workspace{display:grid;grid-template-columns:minmax(310px,38%) minmax(470px,62%);min-height:calc(100vh - 158px);border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:var(--shadow);background:rgba(10,19,32,.84);backdrop-filter:blur(18px)}.twin-card{position:relative;display:flex;flex-direction:column;overflow:hidden;background:linear-gradient(155deg,#17283b,#0a1422 70%);border-right:1px solid var(--line)}.portrait-wrap{position:relative;height:min(52vh,520px);min-height:335px;overflow:hidden;background:#9da1a3}.portrait-wrap:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,#111e2e 100%);pointer-events:none}.portrait-wrap img{width:100%;height:100%;object-fit:cover;object-position:50% 22%;filter:saturate(.82) contrast(1.04);transition:transform 8s ease}.portrait-wrap.speaking img{animation:breathe 2.8s ease-in-out infinite}.audio-ring{position:absolute;z-index:2;left:28px;bottom:28px;width:42px;height:42px;border:1px solid rgba(70,201,212,.7);border-radius:50%;opacity:0;transform:scale(.8)}.speaking .audio-ring{animation:pulse 1.4s ease-out infinite}.identity-chip{position:absolute;z-index:3;top:20px;left:20px;display:flex;align-items:center;gap:8px;padding:8px 11px;border:1px solid rgba(255,255,255,.19);border-radius:999px;background:rgba(5,12,21,.66);backdrop-filter:blur(10px);font-size:.67rem;letter-spacing:.12em}.profile-copy{padding:27px 30px 20px}.eyebrow{margin:0 0 10px;color:var(--cyan2);font-size:.68rem;font-weight:700;letter-spacing:.18em}.profile-copy h1{font-family:Georgia,serif;font-size:clamp(1.65rem,2.4vw,2.55rem);font-weight:400;line-height:1.08;margin:0 0 15px;max-width:13ch}.profile-copy>p:last-child{color:var(--muted);line-height:1.6;margin:0;max-width:47ch}.scope-note{margin:auto 30px 26px;padding:14px 15px;display:flex;gap:11px;color:#a8b8c8;background:rgba(255,255,255,.035);border:1px solid rgba(156,174,193,.16);border-radius:12px;font-size:.77rem;line-height:1.45}.scope-note svg{flex:0 0 19px;fill:none;stroke:var(--gold);stroke-width:1.5}.conversation-card{display:grid;grid-template-rows:auto 1fr auto auto auto;min-height:640px;background:linear-gradient(180deg,rgba(17,31,49,.98),rgba(9,18,30,.99))}.conversation-head{padding:28px 32px 21px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(156,174,193,.15)}.conversation-head h2{font-size:1.18rem;margin:0;font-weight:600}.progress-block{width:130px;text-align:right;color:var(--muted);font-size:.73rem}.progress-track{margin-top:8px;height:3px;background:#26384e;border-radius:2px;overflow:hidden}.progress-track i{display:block;width:12.5%;height:100%;background:linear-gradient(90deg,var(--cyan),var(--cyan2));transition:width .45s}.messages{padding:30px 32px 20px;overflow:auto;max-height:calc(100vh - 390px);min-height:270px;scrollbar-width:thin}.message{display:flex;gap:12px;margin:0 0 19px;animation:appear .35s ease}.message.user{justify-content:flex-end}.avatar{flex:0 0 33px;height:33px;display:grid;place-items:center;border:1px solid rgba(193,168,117,.5);border-radius:50%;font-family:Georgia,serif;font-size:.64rem;color:#dfc997}.bubble{max-width:min(72ch,82%);padding:13px 16px;border-radius:5px 16px 16px 16px;background:#16263a;border:1px solid #263a51;color:#e8eff7;line-height:1.55}.user .bubble{border-radius:16px 5px 16px 16px;background:#143442;border-color:#255563}.typing i{display:inline-block;width:6px;height:6px;margin:0 2px;border-radius:50%;background:var(--muted);animation:dots 1s infinite}.typing i:nth-child(2){animation-delay:.14s}.typing i:nth-child(3){animation-delay:.28s}.quick-replies{min-height:46px;padding:0 32px 9px;display:flex;gap:8px;flex-wrap:wrap}.quick-replies button{border:1px solid #315267;background:#102536;color:#cce8ed;border-radius:999px;padding:8px 12px;cursor:pointer;font-size:.82rem;transition:.2s}.quick-replies button:hover,.quick-replies button:focus-visible{background:#173747;border-color:var(--cyan);outline:none}.composer{margin:0 32px;display:flex;align-items:flex-end;gap:10px;padding:10px;border:1px solid #30455d;border-radius:15px;background:#0b1726;transition:.2s}.composer:focus-within{border-color:#4a8e9b;box-shadow:0 0 0 3px rgba(70,201,212,.08)}.composer textarea{resize:none;overflow:auto;max-height:120px;min-height:36px;flex:1;padding:7px 3px;background:transparent;border:0;outline:0;color:var(--text);line-height:1.4}.composer textarea::placeholder{color:#71869b}.mic,.send{width:40px;height:40px;display:grid;place-items:center;border:0;border-radius:10px;cursor:pointer}.mic{background:transparent;color:#93a8bb}.mic.listening{background:#173a44;color:var(--cyan2);animation:micpulse 1.2s infinite}.send{background:var(--cyan);color:#061019}.mic svg,.send svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.consent-line{padding:12px 32px 19px;color:#71869b;font-size:.69rem;line-height:1.4}.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 appear{from{opacity:0;transform:translateY(7px)}}@keyframes dots{50%{opacity:.3;transform:translateY(-2px)}}@keyframes pulse{0%{opacity:.9;transform:scale(.8)}100%{opacity:0;transform:scale(1.55)}}@keyframes breathe{50%{transform:scale(1.012)}}@keyframes micpulse{50%{box-shadow:0 0 0 5px rgba(70,201,212,.13)}}
@media(max-width:860px){.shell{padding:12px}.topbar{height:58px;margin-bottom:12px}.privacy{display:none}.workspace{grid-template-columns:1fr;border-radius:16px}.twin-card{border-right:0;border-bottom:1px solid var(--line)}.portrait-wrap{height:260px;min-height:260px}.portrait-wrap img{object-position:50% 24%}.profile-copy{padding:20px 22px 12px}.profile-copy h1{max-width:22ch;font-size:1.75rem}.scope-note{margin:8px 22px 20px}.conversation-card{min-height:620px}.messages{max-height:430px}.conversation-head,.messages{padding-left:22px;padding-right:22px}.quick-replies{padding-left:22px;padding-right:22px}.composer{margin-left:22px;margin-right:22px}.consent-line{padding-left:22px;padding-right:22px}}@media(max-width:520px){.brand small{display:none}.brand strong{font-size:.95rem}.portrait-wrap{height:220px;min-height:220px}.profile-copy h1{font-size:1.52rem}.scope-note{display:none}.conversation-head{align-items:flex-start}.progress-block{width:92px}.messages{min-height:320px}.bubble{max-width:88%}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* Responsive portrait presence */
.portrait-wrap>.portrait-stage{position:absolute;inset:-1.5%;transform-origin:50% 68%;animation:presence 9s ease-in-out infinite}.portrait-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 22%;filter:saturate(.82) contrast(1.04)}.portrait-base{opacity:1}.portrait-blink{opacity:0;transition:opacity .055s ease-in-out;clip-path:inset(20% 11% 54% 11%);-webkit-mask-image:radial-gradient(ellipse 43% 18% at 50% 33%,#000 42%,transparent 72%);mask-image:radial-gradient(ellipse 43% 18% at 50% 33%,#000 42%,transparent 72%)}.portrait-wrap.blink .portrait-blink{opacity:1}.portrait-wrap.speaking>.portrait-stage{animation:speakingPresence 2.3s ease-in-out infinite}.portrait-wrap.listening>.portrait-stage{animation:listeningPresence 3.8s ease-in-out infinite}.voice-meter{position:absolute;z-index:4;left:27px;bottom:26px;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;gap:2px;background:rgba(7,16,29,.72);border:1px solid rgba(70,201,212,.5);backdrop-filter:blur(8px)}.voice-meter i{display:block;width:2px;height:7px;border-radius:2px;background:var(--cyan2);opacity:.6}.speaking .voice-meter i{animation:levels .62s ease-in-out infinite alternate}.speaking .voice-meter i:nth-child(2),.speaking .voice-meter i:nth-child(4){animation-delay:.15s}.speaking .voice-meter i:nth-child(3){animation-delay:.3s}.presence-state{position:absolute;z-index:4;right:19px;bottom:21px;display:flex;align-items:center;gap:7px;padding:7px 10px;border-radius:999px;color:#d6e2ec;background:rgba(7,16,29,.7);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(9px);font-size:.7rem}.presence-state i{width:6px;height:6px;border-radius:50%;background:var(--cyan);box-shadow:0 0 10px var(--cyan)}.listening .presence-state i{animation:statePulse .85s infinite}@keyframes presence{0%,100%{transform:scale(1.015) translate(0,0)}35%{transform:scale(1.025) translate(-.15%,.12%)}68%{transform:scale(1.02) translate(.18%,-.08%)}}@keyframes speakingPresence{0%,100%{transform:scale(1.02) translateY(0)}45%{transform:scale(1.027) translateY(-.18%)}72%{transform:scale(1.024) translateX(.12%)}}@keyframes listeningPresence{0%,100%{transform:scale(1.022) translateX(0)}50%{transform:scale(1.028) translateX(-.22%)}}@keyframes levels{to{height:19px;opacity:1}}@keyframes statePulse{50%{opacity:.35;transform:scale(.72)}}
