:root{color-scheme:dark;--bg:#07100f;--panel:#101918;--panel2:#172220;--text:#f2f5f3;--muted:#91a19d;--mint:#8ee9c6;--mint2:#3bbf91;--line:#ffffff18;--danger:#ff9e98}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);font-family:Inter,-apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;color:var(--text)}button,input,textarea,select{font:inherit}.app-shell{min-height:100dvh;overflow:hidden}.avatar-stage{position:relative;min-height:100dvh;display:flex;flex-direction:column;align-items:center;padding:max(22px,env(safe-area-inset-top)) max(22px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(22px,env(safe-area-inset-left));background:radial-gradient(circle at 50% 32%,#263b36 0,#0d1716 38%,#07100f 76%)}.topbar{position:relative;z-index:5;width:min(100%,1100px);display:flex;align-items:center;justify-content:space-between}.eyebrow{font-size:10px;letter-spacing:.22em;color:var(--mint)}h1,h2{margin:3px 0 0}h1{font-size:clamp(28px,5vw,42px)}.top-actions{display:flex;gap:10px}.round-btn,.glass-btn{border:1px solid var(--line);color:#fff;background:#101a19bb;backdrop-filter:blur(16px)}.round-btn{width:44px;height:44px;border-radius:50%;font-size:20px}.glass-btn{height:44px;border-radius:22px;padding:0 18px}.ambient-orb{position:absolute;top:16%;width:min(64vw,560px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#8ee9c62e,transparent 66%);filter:blur(8px);animation:orb 7s ease-in-out infinite}.avatar-wrap{position:relative;z-index:2;flex:1;display:grid;place-items:center;min-height:380px}.avatar{position:relative;width:260px;height:360px;filter:drop-shadow(0 32px 32px #000a);animation:breathe 5s ease-in-out infinite}.face{position:absolute;z-index:3;left:52px;top:45px;width:156px;height:192px;border-radius:48% 48% 44% 44%;background:linear-gradient(135deg,#d8a98b,#9c6851);box-shadow:inset -22px -15px 38px #64423355}.hair{position:absolute;z-index:5;left:37px;top:13px;width:187px;height:112px;border-radius:72% 54% 22% 38%;background:linear-gradient(145deg,#2a2724,#0b0c0d);transform:rotate(-3deg)}.ear{position:absolute;z-index:2;top:115px;width:26px;height:58px;background:#a87359;border-radius:50%}.ear.left{left:40px}.ear.right{right:40px}.eyes,.brows{position:absolute;left:30px;right:29px;display:flex;justify-content:space-between}.eyes{top:82px}.eyes i{width:26px;height:11px;background:#151616;border-radius:50%;animation:blink 5.5s infinite}.brows{top:61px}.brows i{width:31px;height:4px;background:#4a3026;border-radius:5px;transform:rotate(5deg)}.brows i+ i{transform:rotate(-5deg)}.nose{position:absolute;left:73px;top:94px;width:12px;height:36px;border-right:2px solid #754f3d66;border-radius:50%}.mouth{position:absolute;left:57px;top:147px;width:43px;height:8px;border-radius:0 0 50% 50%;background:#623a38}.avatar[data-state="speaking"] .mouth{animation:talk .22s infinite alternate}.avatar[data-state="listening"]{animation:listen 4s ease-in-out infinite}.neck{position:absolute;z-index:2;left:104px;top:219px;width:54px;height:54px;background:#a6745b}.body{position:absolute;z-index:1;left:7px;top:258px;width:246px;height:140px;border-radius:48% 48% 12% 12%;background:linear-gradient(145deg,#263735,#0f1817)}.asset-badge{position:absolute;bottom:5px;padding:7px 10px;border:1px solid var(--line);border-radius:14px;background:#07100fbb;color:var(--muted);font-size:11px}.conversation-card{z-index:4;width:min(100%,720px);padding:15px 18px;border:1px solid var(--line);border-radius:20px;background:#0b1413c7;backdrop-filter:blur(20px)}.state-line{display:flex;gap:9px;align-items:center;font-size:12px}.state-line>span:last-child{margin-left:auto;color:var(--muted)}.state-dot{width:8px;height:8px;border-radius:50%;background:#71807c}.state-dot.live{background:var(--mint);box-shadow:0 0 14px var(--mint)}#transcript{min-height:42px;margin:12px 0 0;color:#cbd4d1;line-height:1.55}.primary-actions{z-index:4;width:min(100%,720px);display:grid;grid-template-columns:1fr 1.25fr;gap:10px;margin-top:12px}.primary-action,.secondary-action,.solid-btn{border:0;border-radius:18px;min-height:56px}.primary-action,.solid-btn{background:var(--mint);color:#09231b;font-weight:750}.secondary-action{display:grid;grid-template-columns:32px 1fr;grid-template-rows:auto auto;text-align:left;padding:10px 14px;background:#17211f;color:#fff;border:1px solid var(--line)}.secondary-action span{grid-row:1/3;align-self:center;color:var(--mint)}.secondary-action small{color:var(--muted)}.privacy-strip{z-index:4;display:flex;gap:15px;margin-top:10px;color:var(--muted);font-size:11px}.drawer{position:fixed;z-index:20;top:0;right:0;width:min(94vw,480px);height:100dvh;padding:max(22px,env(safe-area-inset-top)) 20px max(24px,env(safe-area-inset-bottom));background:#0b1212;box-shadow:-30px 0 90px #000b;transform:translateX(102%);transition:.3s ease;overflow:auto}.drawer.open{transform:none}.drawer-head{display:flex;justify-content:space-between;align-items:center}.tabs{display:flex;gap:6px;overflow:auto;margin:22px -4px 16px;padding:4px}.tabs button,.scene-switch button,.timer-row button{white-space:nowrap;border:1px solid var(--line);border-radius:14px;padding:9px 12px;background:#121d1b;color:var(--muted)}.tabs button.active,.scene-switch button.active,.timer-row button.active{background:var(--mint);color:#09231b}.tab-panel{display:none}.tab-panel.active{display:block}.tab-panel h3{margin-top:12px}.tab-panel label{display:grid;gap:8px;margin:16px 0;color:#c8d0cd;font-size:13px}input,textarea,select{width:100%;padding:12px;border:1px solid var(--line);border-radius:13px;background:#111b19;color:#fff}textarea{min-height:90px;resize:vertical}.confirm-row{grid-template-columns:auto 1fr!important;align-items:start}.confirm-row input{width:18px;height:18px}.solid-btn{width:100%;margin:8px 0}.list{display:grid;gap:8px;margin-top:16px}.list-item{display:flex;gap:10px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.list-item span{flex:1}.list-item.done span{text-decoration:line-through;color:var(--muted)}.list-item button{border:0;background:none;color:var(--danger)}.cards{display:grid;gap:8px}.card{display:flex;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.card span{color:var(--muted)}.hint,.settings-note{color:var(--muted);font-size:12px;line-height:1.6}.settings-note{padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.budget-ring{width:170px;height:170px;margin:20px auto;display:grid;place-content:center;text-align:center;border-radius:50%;background:conic-gradient(var(--mint) var(--budget),#1a2523 0);box-shadow:inset 0 0 0 16px #0b1212}.budget-ring strong{font-size:34px}.budget-ring span{color:var(--muted);font-size:12px}.scrim{position:fixed;z-index:15;inset:0;background:#0009;backdrop-filter:blur(3px)}.sleep-stage{position:relative;min-height:100dvh;overflow:hidden;background:#05090e}.sleep-stage.blackout>*:not(.sleep-header):not(.sleep-panel){opacity:0}.rain-window,.bowl-scene{position:absolute;inset:0;transition:opacity 4s;background:linear-gradient(#07111c,#0d1720 55%,#11171a)}.city{position:absolute;inset:55% 0 0;background:repeating-linear-gradient(90deg,#111a20 0 5%,#080d12 5% 9%);filter:drop-shadow(0 -8px 16px #829ac21c)}.rain{position:absolute;inset:-20%;background-image:repeating-linear-gradient(105deg,transparent 0 18px,#b8d5e61f 19px 20px,transparent 21px 40px);animation:rain 1s linear infinite}.bowl-scene{background:radial-gradient(circle at 50% 62%,#7f6844 0,#241d1b 19%,#080b10 60%)}.bowl-glow{position:absolute;left:50%;top:57%;width:420px;height:180px;transform:translate(-50%,-50%);border-radius:50%;background:#f6c87324;filter:blur(24px);animation:orb 6s infinite}.bowl-shape{position:absolute;left:50%;top:58%;width:260px;height:90px;transform:translate(-50%,-50%);border-radius:5% 5% 50% 50%;background:linear-gradient(#c49d5e,#4b351d);box-shadow:0 25px 70px #000}.sleep-header{position:relative;z-index:3;display:flex;align-items:center;justify-content:space-between;padding:max(22px,env(safe-area-inset-top)) 22px}.sleep-header>div{display:grid;text-align:center}.sleep-header span{color:var(--muted);font-size:11px}.sleep-panel{position:absolute;z-index:3;left:50%;bottom:max(24px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(calc(100% - 28px),650px);padding:14px;border:1px solid var(--line);border-radius:22px;background:#08100ed9;backdrop-filter:blur(20px)}.scene-switch,.timer-row{display:flex;gap:8px}.scene-switch button{flex:1}.timer-row{margin-top:10px}.timer-row button{flex:1}.sleep-status{display:flex;align-items:center;justify-content:space-between;margin-top:12px;color:var(--muted);font-size:12px}.sleep-status button{border:0;border-radius:15px;padding:10px 14px;background:var(--mint);color:#09231b}@keyframes blink{0%,46%,50%,100%{transform:scaleY(1)}48%{transform:scaleY(.08)}}@keyframes breathe{50%{transform:translateY(-5px) rotate(.25deg)}}@keyframes listen{50%{transform:translateY(-3px) rotate(-.4deg)}}@keyframes talk{to{height:26px;width:34px;left:62px;border-radius:45%}}@keyframes orb{50%{transform:scale(1.08);opacity:.72}}@keyframes rain{to{transform:translate(-30px,80px)}}@media(min-width:900px) and (orientation:landscape){.avatar-wrap{min-height:300px}.avatar{transform:scale(.86);margin:-20px}.conversation-card,.primary-actions{width:min(62vw,760px)}}@media(max-height:720px){.avatar-wrap{min-height:250px}.avatar{transform:scale(.72);margin:-48px}.asset-badge{bottom:18px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
body:has(.auth-gate) { overflow: hidden; }
.auth-gate { position: fixed; z-index: 1000; inset: 0; display: grid; place-items: center; padding: max(24px, env(safe-area-inset-top)) 24px max(24px, env(safe-area-inset-bottom)); background: radial-gradient(circle at 50% 20%, #17352dcc, #06100ff7 62%); color: #f5f1e8; }
.auth-card { width: min(100%, 420px); padding: 30px; border: 1px solid #ffffff24; border-radius: 28px; background: #0c1715e8; box-shadow: 0 30px 80px #0009; backdrop-filter: blur(22px); text-align: center; }
.auth-card h1 { margin: 10px 0 12px; font-size: clamp(28px, 7vw, 40px); }
.auth-card p { margin: 0 0 24px; color: #d7d5cd; line-height: 1.7; }
.auth-card .solid-btn { width: 100%; min-height: 52px; font-size: 16px; }
.auth-card small { display: block; margin-top: 16px; color: #aeb9b4; line-height: 1.5; }
