@font-face{font-family:iran;src:url(assets/IRANYekanX-Regular.ttf);font-weight:400}@font-face{font-family:iran;src:url(assets/IRANYekanX-Bold.ttf);font-weight:700}@font-face{font-family:ravagh;src:url(assets/Ravagh-Bold.ttf);font-weight:700}@font-face{font-family:ravagh;src:url(assets/Ravagh-ExtraLight.ttf);font-weight:200}:root{--ink:#342447;--violet:#9778ed;--lime:#d9ff65;--blue:#c6b3f0;--cream:#faf7ff;--pale:#f1edf9;--line:#e5e0eb;--muted:#756780}*{box-sizing:border-box}body{margin:0;background:#f3f0f8;color:var(--ink);font:13px iran}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}a{color:inherit}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #7050bd;outline-offset:3px}button svg{pointer-events:none}.studio{display:grid;grid-template-columns:225px minmax(440px,1fr) 245px;max-width:1280px;min-height:100vh;margin:auto;gap:35px;padding:32px}.sidebar{padding-top:10px}.studio-brand{font:700 38px Arial;text-decoration:none;display:block;direction:ltr;text-align:right;letter-spacing:-2px}.studio-brand span{display:block;font:12px iran;letter-spacing:0;margin-top:12px}.version{font:10px Arial;letter-spacing:2px;color:#78717f;margin:23px 0 15px}.navgroup{font-size:10px;color:#8c8097;margin:18px 9px 7px}.screenlink{border:0;background:transparent;width:100%;text-align:right;display:flex;gap:10px;align-items:center;border-radius:11px;padding:8px 11px;font-size:11px}.screenlink span{font:9px Arial;color:#9989a9;width:20px}.screenlink.active{background:#e3d9f8;font-weight:700}.studio-note{font-size:10px;color:#777080;line-height:2;margin-top:20px}.character-link{display:block;margin-top:18px;font-size:12px;font-weight:700;text-decoration:none;color:#7050bd}.stage{display:flex;align-items:center;flex-direction:column}.stage-heading{width:390px;display:flex;justify-content:space-between;font-size:11px;align-items:center;margin-bottom:15px}.plain{border:0;background:transparent;font-size:11px;padding:5px}.device{width:390px;height:844px;background:#fff;border:6px solid #342447;border-radius:49px;box-shadow:0 0 0 2px #ffffff,0 24px 65px #3b2a5c15;overflow:hidden;position:relative}.status{height:48px;display:flex;justify-content:space-between;padding:0 23px;align-items:center;direction:ltr;font:11px Arial;position:relative;z-index:3}.island{position:absolute;left:calc(50% - 51px);width:102px;height:27px;background:#342447;top:9px;border-radius:30px}.status-icons{font-size:10px}.home-indicator{position:absolute;bottom:8px;width:108px;height:4px;background:var(--ink);left:calc(50% - 54px);border-radius:9px;z-index:12;pointer-events:none}#app{height:calc(100% - 48px);overflow-y:auto;scrollbar-width:none;position:relative;outline:none}#app::-webkit-scrollbar{display:none}.stage-footer{font-size:10px;color:#91849b;padding:18px 0}.inspector{padding-top:70px}.inspector-label{font:10px Arial;letter-spacing:3px;color:#9989a9}.inspector h2{font:700 25px ravagh;line-height:1.8;margin:18px 0 10px}.inspector p{font-size:12px;line-height:2.1;color:#686273}.swatches{display:flex;gap:8px;margin:25px 0}.swatches i{width:40px;height:40px;border-radius:12px}.spec-note{font-size:11px;line-height:2.1;color:#81758c;border-top:1px solid #e0d8e8;padding-top:20px}.outline-btn{border:1px solid #c9bcde;border-radius:14px;padding:11px 15px;background:transparent;margin-top:25px;width:100%;font-size:11px}.screen{padding:10px 20px 34px;min-height:100%}.screen.with-nav{padding-bottom:101px}.screen-top{display:flex;align-items:center;justify-content:space-between;margin:3px 0 22px;gap:10px}.screen-top h1{font:700 18px ravagh;margin:0}.icon-btn{display:inline-grid;place-items:center;width:39px;height:39px;border:1px solid var(--line);border-radius:50%;background:transparent;flex-shrink:0}.icon-btn svg,.ui-icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.word{font:700 20px Arial;letter-spacing:-.8px}.eyebrow{font-size:10px;line-height:1.8}.muted{color:var(--muted)}.tiny{font-size:9px;color:var(--muted);line-height:1.9}.pill{display:inline-flex;align-items:center;gap:5px;border-radius:30px;padding:6px 11px;background:var(--pale);font-size:10px}.pill.lime{background:var(--lime)}.pill.white{background:#ffffffb0}.hero-title{font:200 35px/1.7 ravagh;margin:15px 0}.hero-title strong{font-weight:700}.section-title{font:700 21px/1.7 ravagh;margin:19px 0 12px}p{line-height:1.95}.primary{border:0;border-radius:27px;background:var(--lime);padding:14px 17px;display:flex;align-items:center;justify-content:space-between;width:100%;font-weight:700;font-size:12px;min-height:51px;text-decoration:none}.primary .arr{width:28px;height:28px;background:var(--ink);color:var(--cream);border-radius:50%;display:grid;place-items:center;font:22px Arial}.primary.violet{background:#e4d9fa}.secondary{border:1px solid #d9d1e3;border-radius:25px;padding:13px;background:transparent;width:100%;font-size:12px;min-height:46px}.actions{display:grid;gap:10px;margin-top:23px}.card{border-radius:24px;padding:18px;background:var(--pale);position:relative}.card.violet{background:var(--violet)}.card.blue{background:var(--blue)}.card.lime{background:var(--lime)}.card.cream{background:var(--cream)}.card h2,.card h3{font:700 25px/1.6 ravagh;margin:12px 0 5px}.card p{font-size:11px;margin:5px 0}.card-head{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:10px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:10px}.grid2 .card{padding:15px;min-height:135px}.grid2 h3{font-size:20px}.tap-card{text-align:right;border:0;cursor:pointer;width:100%;color:var(--ink)}.big-symbol{font:34px Arial}.rowlink{display:flex;align-items:center;justify-content:space-between;text-align:right;width:100%;padding:16px;border:0;background:var(--pale);border-radius:18px;margin-top:9px;font-size:12px}.rowlink small{display:block;font-size:10px;color:var(--muted);margin-top:6px}.nav{position:absolute;left:13px;right:13px;bottom:24px;z-index:10;display:flex;justify-content:space-around;background:#f2eef9f5;backdrop-filter:blur(16px);border:1px solid #e5deef;border-radius:31px;padding:5px;box-shadow:0 4px 20px #34244708}.nav button{border:0;background:transparent;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 9px;border-radius:24px;min-width:55px;font-size:9px}.nav button.active{background:var(--lime)}.nav svg{width:18px;height:18px}.avatar{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:#e5dafa;font-size:24px;flex-shrink:0}.greeting{background:var(--lime);padding:15px;border-radius:24px;display:flex;align-items:center;justify-content:space-between}.greeting h2{font:700 23px ravagh;margin:5px 0}.track{height:8px;border-radius:10px;background:#c6b4ec;overflow:hidden;margin-top:18px}.track i{display:block;height:100%;background:var(--lime);border-radius:10px}.big-number{font:700 42px/1 ravagh}.flex{display:flex;justify-content:space-between;align-items:center;gap:12px}.mt{margin-top:16px}.chiprow{display:flex;flex-wrap:wrap;gap:8px}.choice-chip{border:1px solid #dcd4e8;border-radius:24px;padding:11px 14px;background:#f7f4fb;font-size:12px}.choice-chip.on{background:var(--lime);border-color:var(--lime)}.field-label{font-size:12px;font-weight:700;display:block;margin:20px 0 8px}input,textarea,select{width:100%;border:1px solid #ddd5e7;border-radius:15px;background:#f7f4fb;padding:13px 14px;color:var(--ink);font-size:12px}textarea{resize:vertical;min-height:140px;line-height:2}input[type=number]{direction:ltr;text-align:right}input[type=checkbox]{width:20px;accent-color:#9778ed}.check-row{display:flex;gap:10px;align-items:center;font-size:11px;line-height:1.9;margin:15px 0}.center{text-align:center}.logo-icon{width:110px;height:110px;object-fit:cover;border-radius:28px}.splash{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;min-height:100%;padding:30px}.splash .lockup{width:270px;mix-blend-mode:multiply}.splash p{margin-top:-20px;font-size:13px}.splash .primary{max-width:240px;margin-top:40px}.device[data-screen=splash],.device[data-screen=icon],.device[data-screen=loading]{background:var(--cream)}.launcher{background:linear-gradient(145deg,#ede5ff,#f0e8fc);height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:14px;text-align:center;padding:30px}.launcher .logo-icon{width:112px;height:112px;box-shadow:0 12px 35px #7356a922;border-radius:25px}.launcher button{border:0;background:transparent}.launcher h2{font:700 23px Arial;margin:0}.launcher p{font-size:12px;line-height:2}.loader-mark{width:115px;height:115px;border-radius:30px;animation:breathe 2.5s ease-in-out infinite}.dots{display:flex;gap:7px;justify-content:center;margin:30px 0}.dots i{width:7px;height:7px;background:var(--violet);border-radius:50%;animation:dot 1.2s ease-in-out infinite}.dots i:nth-child(2){animation-delay:.2s}.dots i:nth-child(3){animation-delay:.4s}@keyframes breathe{50%{transform:scale(1.06) rotate(8deg)}}@keyframes dot{50%{opacity:.25;transform:translateY(-6px)}}.device[data-screen=welcome]{background:var(--violet)}.welcome-screen{padding:12px 24px 30px}.welcome-screen .screen-top{margin-bottom:25px}.sticker{display:inline-block;padding:7px 12px;border-radius:30px;background:var(--lime);font-size:10px;transform:rotate(6deg)}.welcome-title{font:200 45px/1.6 ravagh;margin:23px 0 15px;position:relative;letter-spacing:0}.welcome-title .highlight{font-weight:700;background:var(--cream);display:inline-block;transform:rotate(-3deg);padding:0 10px;margin-right:-9px}.welcome-title .oval{font-weight:700;border:2px solid var(--ink);border-radius:50%;padding:0 10px}.spark{position:absolute;left:3px;top:115px;font:76px Arial;color:var(--lime)}.ticket{padding:17px;background:var(--blue);border-radius:21px;transform:rotate(2deg);display:flex;gap:12px;align-items:center}.ticket p{font-size:10px;margin:5px 0}.seal{border:1px dashed var(--ink);border-radius:50%;width:47px;height:47px;display:grid;place-items:center;flex-shrink:0;font-size:26px}.welcome-screen .primary{margin-top:26px}.onboard-art{background:var(--blue);height:175px;border-radius:60px 22px 60px 22px;display:grid;place-items:center;position:relative;margin:20px 0}.onboard-art img{width:110px;height:110px;border-radius:50%;mix-blend-mode:multiply}.orbit-word{position:absolute;background:var(--lime);padding:6px 11px;border-radius:20px;font-size:11px;transform:rotate(-8deg);left:14px;bottom:20px}.progress-steps{display:flex;gap:5px;margin:18px 0}.progress-steps i{height:6px;flex:1;border-radius:10px;background:#e5e0eb}.progress-steps i.on{background:var(--violet)}.qcard{background:var(--blue);padding:21px 20px;border-radius:25px;margin:20px 0}.qcard h2{font:700 26px/1.8 ravagh;margin:12px 0 0}.answers{display:grid;gap:8px}.answer{border:1px solid #e1d9eb;background:#f6f2fb;padding:13px 14px;display:flex;align-items:center;justify-content:space-between;border-radius:15px;text-align:right;font-size:11px;min-height:45px}.answer.on{background:var(--violet);border-color:var(--violet)}.radio{width:18px;height:18px;border:1px solid #9b92a9;border-radius:50%;display:grid;place-items:center;flex-shrink:0}.answer.on .radio{background:var(--ink);color:var(--lime);border-color:var(--ink)}.passport{padding:21px;background:var(--violet);border-radius:25px 25px 15px 15px;position:relative}.passport h2{font:700 35px/1.6 ravagh;margin:20px 0 8px}.passport p{font-size:11px;margin:0;max-width:245px}.passport .asterisk{position:absolute;left:17px;top:47px;color:var(--lime);font:66px Arial}.ticket-base{padding:13px 17px;background:var(--lime);border-radius:14px 14px 23px 23px;border-top:2px dashed var(--ink);display:flex;justify-content:space-between;font-size:10px}.trait{display:grid;grid-template-columns:108px 1fr;gap:9px;font-size:10px;align-items:center;margin:14px 0}.trait .bar{height:12px;background:#e3dfee;border-radius:20px;overflow:hidden}.trait i{display:block;height:100%;background:var(--violet);border-radius:20px}.notice{padding:12px 14px;border-radius:15px;background:#f1edf9;font-size:10px;line-height:1.9;color:#59636b}.chat-area{display:flex;flex-direction:column;gap:13px;margin:15px 0}.bubble{padding:15px;border-radius:20px;background:var(--pale);font-size:12px;line-height:2;max-width:94%;align-self:flex-start;white-space:pre-wrap}.bubble.mine{background:var(--blue);align-self:flex-end;border-bottom-right-radius:5px}.bubble.ai{border-bottom-left-radius:5px}.bubble small{display:block;font-size:9px;color:#6f647c;margin-bottom:7px}.composer{display:flex;gap:7px;margin:20px 0 10px}.composer textarea{min-height:50px;max-height:140px;resize:vertical;padding:11px}.composer button{width:46px;flex-shrink:0;border:0;background:var(--lime);border-radius:16px;font-size:22px}.empty-state{padding:27px 20px;border:1px dashed #cfc1e3;border-radius:23px;text-align:center;margin:18px 0}.empty-state h3{font:700 24px ravagh}.empty-state p{font-size:11px}.memory{border-right:3px solid var(--violet);padding:0 15px;margin:20px 0}.memory small{font-size:9px;color:var(--muted)}.memory p{font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere}.budget-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 11px}.budget-grid .field-label{font-size:10px;margin-top:14px}.money{font:700 39px ravagh;display:block;margin:12px 0 0}.unit{font-size:10px}.step-item{display:flex;gap:12px;background:var(--pale);padding:15px;border-radius:19px;margin-top:9px;align-items:flex-start}.step-item.done{opacity:.65}.step-item.done b{text-decoration:line-through}.step-item b{font-size:12px}.step-item p{font-size:10px;margin:5px 0}.step-item input{margin-top:3px;flex-shrink:0}.person-head{display:flex;gap:13px;align-items:center}.person-head h3{margin:2px 0;font:700 24px ravagh}.person-head p{font-size:10px;margin:4px 0}.person-avatar{width:59px;height:59px;border-radius:22px;display:grid;place-items:center;font:700 29px ravagh;background:#e4d9fa}.people-card{margin-top:13px;border:1px solid #e5dff0;background:#faf8ff}.people-card .chiprow{margin-top:15px}.people-card .pill{background:#f0e8fc}.settings-row{border-bottom:1px solid var(--line);padding:16px 0;display:flex;justify-content:space-between;align-items:center;gap:14px}.settings-row b{font-size:12px}.settings-row p{font-size:10px;color:var(--muted);margin:6px 0 0}.settings-row input{width:20px;height:20px;flex-shrink:0}.linkbutton{padding:0;border:0;background:transparent;color:#7050bd;font-size:11px}.danger{color:#9d3444;background:#fff0f1;border-color:#eed1d8}#toast{display:none;position:absolute;bottom:96px;left:17px;right:17px;border-radius:18px;background:#e6dcf9;box-shadow:0 6px 25px #34244720;color:var(--ink);padding:14px;font-size:11px;line-height:1.9;z-index:20;border:1px solid #c5b1e6}.saved{color:#477253;font-size:10px}.empty-message{font-size:12px;text-align:center;padding:20px;color:var(--muted)}@media(max-width:1100px){.studio{grid-template-columns:190px 1fr;padding:25px;gap:20px}.inspector{display:none}}@media(max-width:700px){body{background:#fff}.studio{display:block;padding:0}.sidebar,.stage-heading,.stage-footer,.inspector{display:none}.stage{display:block}.device{width:100%;height:100dvh;border:0;border-radius:0;box-shadow:none}.home-indicator{bottom:max(8px,env(safe-area-inset-bottom))}.nav{bottom:max(24px,calc(env(safe-area-inset-bottom) + 10px))}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important}}body.capture{background:#fff}body.capture .studio{display:block;padding:0}body.capture .sidebar,body.capture .inspector,body.capture .stage-heading,body.capture .stage-footer{display:none}body.capture .device{border:0;border-radius:0;box-shadow:none;width:390px;height:844px}

.big-number{direction:ltr;unicode-bidi:isolate;display:inline-block}.money{overflow-wrap:anywhere;font-size:35px}

/* Companion system */
.abri{width:100%;height:100%;overflow:visible}.abri-body{transform-origin:120px 185px;animation:abri-breathe 4s ease-in-out infinite}.eyes{transform-origin:120px 120px;animation:abri-blink 6s infinite}.arm-right{transform-origin:192px 130px}.arm-left{transform-origin:47px 137px}.talk-mouth,.closed-eyes,.sparkles,.think-dots,.sleep-z{display:none}.mode-hello .arm-right,.mode-bye .arm-right{animation:abri-wave .5s ease-in-out 4 alternate}.mode-listen .abri-body{animation:abri-listen 3s ease-in-out infinite}.mode-think .think-dots{display:block;animation:abri-pulse 1.5s infinite}.mode-think .abri-body{transform:rotate(-7deg);animation:none}.mode-talk .mouth{display:none}.mode-talk .talk-mouth{display:block;transform-origin:122px 144px;animation:abri-talk .24s ease-in-out infinite alternate}.mode-happy .abri-body{animation:abri-hop .7s ease-in-out 3}.mode-happy .sparkles{display:block;animation:abri-pulse .7s 3}.mode-happy .eyes,.mode-care .eyes,.mode-sleep .eyes{display:none}.mode-happy .closed-eyes,.mode-care .closed-eyes,.mode-sleep .closed-eyes{display:block}.mode-care .abri-body{animation:abri-breathe 6s infinite}.mode-sleep .sleep-z{display:block;animation:abri-pulse 3s infinite}.mode-sleep .abri-body{transform:rotate(8deg);animation:abri-breathe 6s infinite}.mode-bye .abri-body{animation:abri-bye 1.8s ease-in-out forwards}
@keyframes abri-breathe{50%{transform:translateY(-4px) scale(1.015)}}@keyframes abri-blink{0%,43%,47%,100%{transform:scaleY(1)}45%{transform:scaleY(.08)}}@keyframes abri-wave{to{transform:rotate(-36deg)}}@keyframes abri-hop{50%{transform:translateY(-22px) rotate(6deg)}}@keyframes abri-listen{50%{transform:rotate(-5deg) translateY(2px)}}@keyframes abri-pulse{50%{opacity:.25;transform:translateY(-4px)}}@keyframes abri-talk{to{transform:scaleY(.35)}}@keyframes abri-bye{70%{transform:translateY(0)}100%{transform:translateY(20px) scale(.8);opacity:0}}
.buddy-hero{background:#f1edf9;border-radius:32px;text-align:center;padding:12px;margin:18px 0}.buddy-hero .abri{height:205px;display:block}.buddy-tag{display:inline-block;background:#d9ff65;padding:8px 18px;border-radius:22px;font-size:12px}.buddy-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.locked-buddy:disabled{opacity:1;background:#f7f5fa;color:#756780;border:1px solid #e5e0eb;border-radius:18px;padding:8px;font-size:11px}.locked-buddy img{width:100%;height:75px;object-fit:cover;object-position:left;filter:saturate(.5);opacity:.7;border-radius:10px}.locked-buddy span{display:block}.locked-buddy small{display:block;font-size:9px}.buddy-demo{padding:20px 0 0}.buddy-demo .abri{height:210px}.buddy-speech{background:#f3effc;border:1px solid #e4daf7;border-radius:22px 22px 8px 22px;padding:15px 17px;position:relative;box-shadow:0 8px 28px #35234b0b}.buddy-speech b{font:700 21px ravagh;display:block;padding-left:20px}.buddy-speech p{font:14px/1.9 iran;margin:6px 0 0}.buddy-speech:after{content:'';position:absolute;bottom:-8px;right:35px;width:14px;height:14px;background:#f3effc;transform:rotate(45deg);border-right:1px solid #e4daf7;border-bottom:1px solid #e4daf7}.mode-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.mode-grid button{font-size:11px;margin:0}.voice-panel{padding:18px;border-radius:24px;background:#f1eafa}.voice-panel h3{font:700 25px ravagh;margin:0}.voice-panel a{display:block;text-align:center;text-decoration:none}.voice-panel input[type=file]{max-width:100%;font-size:11px}.voice-toggle{display:flex;align-items:center;gap:8px;margin:15px 0}.voice-toggle input{width:18px;height:18px}.bubble-close{position:absolute;top:8px;left:8px;background:transparent;border:0;font-size:22px;width:32px;height:32px}.bubble-actions{display:flex;gap:6px;margin-top:12px}.bubble-actions button{border:0;border-radius:20px;background:#d9ff65;padding:8px 11px;font-size:11px}.bubble-actions button+button{background:#e3d9f8}#buddy-widget{position:absolute;bottom:102px;right:18px;z-index:12;width:calc(100% - 36px);pointer-events:none}#buddy-widget>*{pointer-events:auto}#buddy-widget .buddy-speech{margin-bottom:8px}.buddy-dock{display:flex;align-items:center;gap:8px;margin-right:auto;width:166px;border-radius:23px;background:#faf7fff5;border:1px solid #e5e0eb;height:66px;padding:0 8px}.buddy-avatar{border:0;padding:0;background:none;width:66px;height:78px;margin-top:-14px;flex-shrink:0}.buddy-dock b{font:700 19px ravagh}.buddy-dock div button{display:block;border:0;padding:0;background:none;font-size:9px}.buddy-hide{border:0;background:#eae4f4;border-radius:50%;width:26px;height:26px}.buddy-reopen{float:left;border:1px solid #d8cbed;background:#f3effc;border-radius:20px;padding:10px 16px}.has-buddy #app .screen.with-nav{padding-bottom:185px}.mood-abri{height:145px;text-align:center}.mood-entry{padding:15px;margin-top:10px;background:#f3effc;border-radius:18px}.mood-entry p{white-space:pre-wrap}.mood-entry small{color:#756780}@media(prefers-reduced-motion:reduce){.abri *{animation:none!important}.mode-bye .abri-body{opacity:1!important;transform:none!important}}

.brows{display:none}.mode-nod .abri-body{animation:abri-nod 1.4s ease-in-out 2}.mode-surprise .mouth,.mode-confused .mouth,.mode-oops .mouth{display:none}.mode-surprise .talk-mouth{display:block;transform:scale(.65);transform-origin:122px 144px}.mode-surprise .abri-body{animation:abri-startle 1.2s both}.mode-surprise .eyes{transform:scaleY(1.25);animation:none}.mode-curious .abri-body{animation:abri-curious 2s ease-in-out 2}.mode-curious .brows,.mode-confused .brows,.mode-oops .brows{display:block}.mode-confused .abri-body{animation:abri-unsure 2s ease-in-out 2}.mode-confused .talk-mouth,.mode-oops .talk-mouth{display:block;transform:scale(.7,.2);transform-origin:122px 144px}.mode-celebrate .sparkles{display:block;animation:abri-pulse .8s 3}.mode-celebrate .abri-body{animation:abri-dance 1s ease-in-out 3}.mode-celebrate .arm-left,.mode-celebrate .arm-right{animation:abri-wave .4s 6 alternate}.mode-encourage .arm-right{animation:abri-wave .8s 2 alternate}.mode-encourage .abri-body{animation:abri-nod 1.4s 2}.mode-shy .abri-body{animation:abri-shy 2.5s 2}.mode-peek .abri-body{animation:abri-peek 2s both}.mode-breathe .abri-body{animation:abri-slow 8s ease-in-out infinite}.mode-read .abri-body{transform:rotate(6deg);animation:abri-read 3s 2}.mode-read .eyes{transform:translateY(5px);animation:none}.mode-point .arm-left{transform:rotate(-60deg)}.mode-point .abri-body{animation:abri-curious 3s 2}.mode-wait .abri-body{animation:abri-breathe 6s infinite}.mode-stretch .abri-body{animation:abri-stretch 2.5s 2}.mode-stretch .arm-left{transform:rotate(50deg)}.mode-stretch .arm-right{transform:rotate(-50deg)}.mode-thanks .abri-body{animation:abri-bow 2s 2}.mode-thanks .closed-eyes{display:block}.mode-thanks .eyes{display:none}.mode-oops .abri-body{animation:abri-unsure 2s 1}
@keyframes abri-nod{0%,100%{transform:translateY(0) scaleY(1)}40%{transform:translateY(5px) scaleY(.94)}}@keyframes abri-startle{30%{transform:translateY(-12px) scale(1.06)}65%{transform:translateY(0) scale(.98)}100%{transform:none}}@keyframes abri-curious{50%{transform:rotate(-9deg)}}@keyframes abri-unsure{25%{transform:rotate(-5deg)}75%{transform:rotate(5deg)}}@keyframes abri-dance{25%{transform:translateY(-12px) rotate(-8deg)}75%{transform:translateY(-12px) rotate(8deg)}}@keyframes abri-shy{50%{transform:scale(.94) rotate(5deg)}}@keyframes abri-peek{0%{opacity:0;transform:translateY(35px) rotate(-12deg)}100%{opacity:1;transform:none}}@keyframes abri-slow{50%{transform:scale(1.04) translateY(-6px)}}@keyframes abri-read{50%{transform:rotate(-3deg) translateY(4px)}}@keyframes abri-stretch{50%{transform:scale(.94,1.08) translateY(-5px)}}@keyframes abri-bow{50%{transform:scaleY(.9) translateY(8px)}}

.photo-button{width:56px;height:56px;border:0;background:#d9ff65;border-radius:50%;padding:0;overflow:hidden;flex-shrink:0}.profile-photo{width:100%;height:100%;object-fit:cover;border-radius:50%}.photo-placeholder{font:30px Arial;display:grid;place-items:center;height:100%}.photo-editor{text-align:center}.photo-editor>.profile-photo,.photo-editor>.photo-placeholder{display:block;width:120px;height:120px;margin:15px auto;background:#eee7fb;border-radius:50%}.photo-editor input{margin-top:12px;max-width:100%;font-size:12px}.photo-editor label{display:block}.journey-row{display:flex;align-items:center;gap:12px;width:100%;text-align:right;border:1px solid #e5e0eb;background:white;border-radius:20px;padding:16px;margin:12px 0}.journey-row>span:nth-child(2){flex:1}.journey-row small{display:block;color:#756780;font-size:11px;margin-top:5px}.journey-number{border-radius:50%;background:#eee7fb;width:34px;height:34px;display:grid;place-items:center}.journey-number.complete{background:#d9ff65}.catalog-card,.score-row{padding:20px;border:1px solid #e5e0eb;border-radius:22px;margin-top:14px}.catalog-card h3{font:700 24px ravagh;margin:12px 0}.catalog-card p,.catalog-card a{font-size:12px}.score-row>span{float:left}.score-row .track{margin-top:14px}.unlocked-buddy{border:2px solid #9778ed;background:#f1ebff;border-radius:18px;padding:8px;cursor:pointer}.unlocked-buddy .abri{height:75px}.unlocked-buddy b,.unlocked-buddy small{display:block}.unlocked-buddy small{font-size:9px;color:#473078}.hand-right{transform-origin:192px 130px}.hand-left{transform-origin:47px 137px}.mode-hello .hand-right,.mode-bye .hand-right{animation:abri-wave .5s ease-in-out 4 alternate}.mode-hello .arm-right,.mode-hello .hand-right{animation-iteration-count:6}.mode-celebrate .hand-left,.mode-celebrate .hand-right{animation:abri-wave .4s 6 alternate}.mode-encourage .hand-right{animation:abri-wave .8s 2 alternate}.mode-listen .arm-right,.mode-listen .hand-right{transform:rotate(-42deg)}.mode-think .arm-right,.mode-think .hand-right{transform:rotate(70deg)}.mode-point .hand-left{transform:rotate(-60deg)}.mode-stretch .hand-left{transform:rotate(50deg)}.mode-stretch .hand-right{transform:rotate(-50deg)}.mode-care .arm-left,.mode-care .hand-left{transform:rotate(-95deg)}.mode-care .arm-right,.mode-care .hand-right{transform:rotate(95deg)}.mode-talk .arm-left,.mode-talk .hand-left{animation:abri-gesture 1.6s ease-in-out infinite}.mode-surprise .arm-left,.mode-surprise .hand-left{transform:rotate(40deg)}.mode-surprise .arm-right,.mode-surprise .hand-right{transform:rotate(-50deg)}@keyframes abri-gesture{50%{transform:rotate(-28deg)}}
.pref-art{height:170px;text-align:center}.settings-row small{display:block;font-size:10px;margin-top:7px}.reminder-row{display:flex;align-items:center;gap:12px;padding:16px;border:1px solid #e5e0eb;border-radius:18px;margin-top:12px}.reminder-row div{flex:1}.reminder-row small{display:block}.reminder-row input[type=checkbox]{width:22px;height:22px}.room-stage{height:265px;background:radial-gradient(ellipse,#eee5ff 0%,#fff 68%);margin:10px -10px;cursor:pointer}.room-transcript{height:180px;overflow-y:auto;overscroll-behavior:contain;mask-image:linear-gradient(transparent,#000 15%,#000);padding:20px 3px 8px}.room-line{padding:10px 14px;border-radius:18px;background:#eee7fb;margin:10px 0 10px 30px}.room-line p{margin:5px 0;white-space:pre-wrap;overflow-wrap:anywhere}.room-line small{font-size:9px;color:#756780}.room-line.user-line{background:#f0e8fc;margin:10px 30px 10px 0}.device[data-screen=abri-room] #app{padding-bottom:20px}.qcard h2{font-size:24px}.answers .answer{min-height:48px}button{touch-action:manipulation}.linkbutton{min-height:38px}.room-stage .abri{width:100%;height:100%}

.device[data-screen=companions] .hero-title{font-size:28px;margin:10px 0}.device[data-screen=companions] .hero-title br{display:none}.device[data-screen=companions] .buddy-hero .abri{height:110px}.device[data-screen=companions] .buddy-hero{margin:10px 0;padding:6px}.device[data-screen=companions] .muted{font-size:11px}.device[data-screen=companions] .section-title{margin:14px 0 8px}.discovery-card{padding:18px;margin-top:18px;border:1px solid #e0d5f1;background:#f7f3ff;border-radius:23px}.discovery-card>p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:16px}.discovery-card>small{display:block;font-size:10px;line-height:1.8;max-height:90px;overflow:auto}.discovery-card .choice-chip{font-size:10px}.experiment-form input{margin:10px 0}.pref-art .abri{width:230px}

.linkbutton,.icon-btn,.secondary{min-height:44px}.mode-grid button{min-height:44px}

/* Navigation refinement: progressive disclosure and focused companion room. */
body.simple-preview .sidebar,body.simple-preview .inspector{display:none}body.simple-preview .studio{display:block;max-width:660px}body.simple-preview .stage-heading{width:100%;max-width:450px;gap:12px}body.simple-preview .stage-heading #screen-caption{display:none}.nav .abri-tab{background:#eee5ff;border-radius:18px;color:#6544ae}.nav button span{white-space:nowrap}.home-shortcuts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:15px 0 22px}.home-shortcuts button{padding:17px 10px;border:0;border-radius:23px;background:#f0e8fc;text-align:right}.home-shortcuts button+button{background:#f1edfb}.home-shortcuts b,.home-shortcuts small{display:block}.home-shortcuts b{font:700 21px ravagh;margin:8px 0}.home-shortcuts small{font-size:10px}.home-shortcuts button>span{font-size:24px}.soft-fold{border:1px solid #e5dfed;border-radius:21px;margin:10px 0;background:white;overflow:hidden}.fold-trigger{width:100%;border:0;background:transparent;display:flex;justify-content:space-between;align-items:center;text-align:right;padding:17px;gap:12px;min-height:68px}.fold-trigger small{display:block;font-size:10px;color:#756780;margin-top:7px}.fold-chevron{font-size:23px;transition:transform .25s}.is-open .fold-chevron{transform:rotate(180deg)}.fold-panel{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .3s ease,opacity .22s ease}.is-open .fold-panel{grid-template-rows:1fr;opacity:1}.fold-inner{min-height:0;overflow:hidden;padding:0 15px}.fold-inner .rowlink{font-size:12px;min-height:50px;border-radius:12px;margin:0 0 8px;padding:12px;background:#f7f4fc}.is-open .fold-trigger{background:#faf7ff}.room-close{border:1px solid #e5dfed;border-radius:25px;background:white;padding:10px 15px;min-height:44px}.room-full{background:#fff;overflow:hidden}.room-full .sidebar,.room-full .inspector,.room-full .stage-heading,.room-full .stage-footer,.room-full .status,.room-full .home-indicator{display:none!important}.room-full .studio{display:block!important;max-width:none!important;padding:0!important;margin:0!important}.room-full .stage{display:block}.room-full .device{width:100%;height:var(--room-height,100dvh);border:0;border-radius:0;box-shadow:none;background:radial-gradient(ellipse at 50% 35%,#f2ecff,#fff 65%)}.room-full #app{height:100%;padding:0!important;overflow:auto}.room-full .room-screen{height:100%;min-height:560px;max-width:760px;margin:auto;display:flex;flex-direction:column;padding: max(12px,env(safe-area-inset-top)) 24px max(14px,env(safe-area-inset-bottom));gap:8px}.room-screen .screen-top{margin:0;flex-shrink:0}.room-screen>.pill{align-self:center;font-size:10px}.room-screen .room-stage{flex:1 1 auto;min-height:130px;height:auto;max-height:480px;margin:0;background:none}.room-screen .room-transcript{flex:0 1 180px;min-height:85px;height:180px;margin:0}.room-screen .composer{flex-shrink:0;margin:0}.room-screen>.tiny{margin:0;font-size:9px;text-align:center}.room-screen .chiprow{margin:0;justify-content:center;flex-shrink:0}.room-screen .choice-chip{min-height:40px}.room-screen .room-line{max-width:85%}.room-screen .user-line{margin-right:auto}.room-full #buddy-widget{display:none}
button{transition:background-color .18s,box-shadow .18s,transform .18s,border-color .18s}button:not(:disabled):active{transform:scale(.975)}.nav button:active{transform:scale(.94)}.tap-card,.home-shortcuts button,.fold-trigger{position:relative;isolation:isolate;overflow:hidden}.tap-card:after,.home-shortcuts button:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 15%,#ffffff55 45%,transparent 75%);transform:translateX(125%);transition:transform .6s ease;z-index:1}@media(hover:hover){.tap-card:hover,.home-shortcuts button:hover{box-shadow:0 6px 20px #68469718;transform:translateY(-2px)}.tap-card:hover:after,.home-shortcuts button:hover:after{transform:translateX(-125%)}.fold-trigger:hover{background:#f5efff}.nav button:hover{background:#e9dff8}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}.tap-card:hover,.home-shortcuts button:hover,button:active{transform:none!important}.tap-card:after,.home-shortcuts button:after{display:none}}@media(max-width:700px){body.simple-preview .studio{padding:0}.room-full .room-screen{padding-left:18px;padding-right:18px}.room-screen .room-stage{max-height:360px}}@media(max-height:650px){.room-full .room-screen{min-height:440px;gap:4px}.room-screen .room-stage{min-height:90px}.room-screen .room-transcript{flex-basis:100px}.room-screen>.tiny{display:none}.room-screen .choice-chip{font-size:10px}}

.profile-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.profile-toolbar>b{font:700 20px ravagh}.identity-cover{height:125px;border-radius:25px;background:var(--cover);position:relative;overflow:hidden}.cover-orbit{position:absolute;width:200px;height:200px;border:28px solid #ffffff66;border-radius:50%;left:-35px;top:-80px;transform:rotate(-20deg)}.cover-dot{position:absolute;background:#d9ff65;width:42px;height:42px;border-radius:50%;left:100px;top:50px}.cover-caption{position:absolute;right:18px;top:20px;font:700 17px ravagh;max-width:125px}.identity{position:relative;padding:0 8px 18px}.identity-portrait{position:relative;margin-top:-43px;width:91px;height:91px;border:5px solid #fff;border-radius:50%;background:#f1edf9;overflow:hidden}.identity-portrait .photo-placeholder{height:100%;font-size:32px}.identity-actions{position:absolute;top:53px;left:0}.identity-actions .secondary{font-size:10px;padding:8px 14px;width:auto;min-height:38px}.identity h1{font:700 33px ravagh;margin:12px 0 3px}.identity>p{font-size:12px;color:#756780;margin:0;line-height:1.8}.portrait-initial{display:grid;place-items:center;height:100%;font:700 37px ravagh}.profile-switch{display:flex;border-bottom:1px solid #e5e0eb;gap:25px;margin-top:8px}.profile-switch button{border:0;background:none;padding:14px 3px;font-size:12px;color:#727580}.profile-switch button.selected{border-bottom:3px solid #9778ed;color:#342447;font-weight:bold}.profile-section{padding:23px 2px;border-bottom:1px solid #eee9f1}.profile-section h2{font:700 23px ravagh;margin:0 0 13px}.profile-section p{font-size:13px;line-height:2.1;margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.interest-tags{display:flex;gap:7px;flex-wrap:wrap}.interest-tags>span{background:#f1edf8;padding:7px 12px;border-radius:30px;font-size:11px}.profile-private{font-size:10px;color:#756780;line-height:1.9;padding:18px 0}.profile-result{display:flex;justify-content:space-between;align-items:center;text-align:right;padding:16px 2px;border:0;border-bottom:1px solid #eee9f1;background:none;width:100%}.profile-result small{display:block;color:#756780;font-size:10px;margin-top:7px}.social-entry{background:#f0e8fc;border:0;border-radius:18px;padding:16px;font-size:12px}.conversation-starter{background:#f1eafa;border-radius:22px;padding:20px;margin:22px 0}.conversation-starter small{font-size:10px}.conversation-starter h3{font:700 24px/1.7 ravagh;margin:8px 0}.directory-title{font:700 34px/1.5 ravagh}.directory-person{display:flex;text-align:right;gap:13px;align-items:center;background:white;border:0;border-bottom:1px solid #e7e0ee;padding:22px 0;width:100%}.directory-avatar{display:grid;place-items:center;width:70px;height:80px;border-radius:22px;flex-shrink:0;font:700 30px ravagh}.directory-person>span:nth-child(2){flex:1}.directory-person b{font:700 24px ravagh}.directory-person small,.directory-person em{display:block;font:10px/1.9 iran;color:#756780;margin-top:5px}.social-consent{background:#f3ecff;border-radius:25px;padding:22px}.tool-row{display:flex;justify-content:space-between;align-items:center;width:100%;text-align:right;padding:20px;margin:12px 0;border:1px solid #e5deee;border-radius:22px;background:#faf8ff}.tool-row small{display:block;font-size:11px;color:#756780;margin-top:8px}.focus-face{text-align:center;border-radius:50%;aspect-ratio:1;background:#eee6fb;display:flex;flex-direction:column;justify-content:center;margin:25px 10px}.focus-face strong{font:700 68px ravagh;direction:ltr}.focus-face p{font-size:12px}.routine-item{display:flex;align-items:center;gap:12px;padding:18px 0;border-bottom:1px solid #eee9f1}.routine-item>span{flex:1}.routine-item small{display:block;color:#756780;font-size:10px;margin-top:6px}.routine-item input{width:23px;height:23px}.weekly-numbers{display:flex;background:#f0e8fc;border-radius:24px;padding:24px 10px;justify-content:space-around;text-align:center}.weekly-numbers b{display:block;font:700 34px ravagh}.weekly-numbers span{font-size:10px}.mood-count{display:flex;align-items:center;gap:10px;margin:14px 0;font-size:11px}.mood-count span{min-width:70px}.mood-count i{display:block;height:12px;background:#9778ed;border-radius:12px}.week-note{padding:18px 0;border-bottom:1px solid #eee9f1}.week-note p{white-space:pre-wrap;overflow-wrap:anywhere;line-height:2;font-size:12px}.week-note small{font-size:10px;color:#756780}

.map-cover{position:relative;background:#e8dffa;padding:24px;border-radius:28px;overflow:hidden}.map-cover h2{font-size:36px;line-height:1.6;margin:14px 0}.map-cover .trait-sketch{position:absolute;width:100px;left:8px;top:44px;transform:rotate(-12deg);color:#7255b7;opacity:.5}.map-trait{display:grid;grid-template-columns:64px 1fr;gap:12px;align-items:center;padding:18px 14px;margin:12px 0;border-radius:24px;background:#eee8fb}.map-trait h3{margin:0 0 8px}.trait-sketch{width:64px;color:#574473}.tone-1{background:#fce9f0}.tone-2{background:#f0e8fc}.tone-3{background:#f0e8fc}.tone-4{background:#f0e8fc}.trait-scale{position:relative;margin:14px 8px 9px;height:7px;background:#ffffffb0;border-radius:8px}.trait-scale i{position:absolute;width:12px;height:12px;top:-3px;transform:translateX(50%);border-radius:50%;background:#574473}.trait-ends{display:flex;justify-content:space-between;gap:12px;font-size:10px;line-height:1.8}.trait-ends span{max-width:46%}.map-summary{padding:20px;background:#f3f1f8;border-radius:22px;margin:14px 0}.map-summary summary{cursor:pointer;min-height:40px}.map-summary h3{margin-top:0}

#inora-popup{border:0;border-radius:28px;background:#f0e8fc;color:#342447;width:min(430px,calc(100vw - 32px));max-height:85dvh;overflow:auto;padding:24px;box-shadow:0 24px 90px #34244738;font-family:inherit}#inora-popup::backdrop{background:#34244745;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.popup-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.popup-heading h2{font:700 26px ravagh}#inora-popup .buddy-speech{position:static;width:auto;max-width:none;box-shadow:none;margin:0}#inora-popup .bubble-close{display:none}.room-speaking .talk-mouth{display:block!important;animation:abri-speech .3s ease infinite}.room-speaking .mouth{display:none!important}@keyframes abri-speech{50%{transform:translateY(144px) scaleY(.45) translateY(-144px)}}@media(prefers-reduced-motion:reduce){.room-speaking .talk-mouth{animation:none!important}}

/* Keep responses visible, including with the iPhone keyboard open. */
.room-screen .room-transcript{mask-image:none;-webkit-mask-image:none;flex:1 1 220px;min-height:140px}.room-screen .room-stage{flex:0 1 300px;min-height:90px}.room-screen #room-status{display:block;min-height:18px;color:#6544ae}.room-screen .composer input{min-width:0;flex:1}.room-screen .composer button{min-height:46px}.room-line{animation:room-message-in .2s ease-out}@keyframes room-message-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media(max-height:650px){.room-screen .room-stage{flex-basis:130px}.room-screen .room-transcript{min-height:100px;flex-basis:180px}}@media(prefers-reduced-motion:reduce){.room-line{animation:none}}

#beta-gate{position:fixed;inset:0;z-index:500;background:#faf7ff;overflow:auto;padding:30px 22px}#beta-gate[hidden]{display:none}.beta-welcome{max-width:440px;margin:5vh auto}.beta-welcome>img{width:82px;border-radius:24px;display:block;margin-bottom:24px}.beta-welcome h1{font:700 44px ravagh;line-height:1.65}.beta-welcome p{line-height:2;font-size:14px}.beta-welcome a{text-decoration:none;display:flex;justify-content:center}.beta-bar{display:flex;justify-content:center;gap:6px;align-items:center;padding:10px 8px;background:#f4effb;position:relative;z-index:2;flex-wrap:wrap}.beta-bar button{border:0;background:transparent;font:inherit;font-size:11px;min-height:32px;color:#6544ae}.beta-bar #beta-sync{font-size:9px;max-width:200px}.beta-app .sidebar,.beta-app .inspector,.beta-app .stage-heading,.beta-app .stage-footer,.beta-app .status,.beta-app .home-indicator{display:none!important}.beta-app .studio{padding:0!important;width:100%;max-width:520px!important;margin:0 auto}.beta-app .device{width:100%;height:calc(100dvh - 54px);border:0;border-radius:0;box-shadow:none}.beta-app .stage{display:block}.beta-app .nav{bottom:0}.beta-app #app{padding-bottom:100px}.beta-app.room-full .beta-bar{display:none}.beta-app.room-full .device{height:var(--room-height,100dvh)}.beta-app input,.beta-app textarea,.beta-app select{font-size:16px}.beta-app .primary,.beta-app .secondary{min-height:48px}.beta-app a.primary{text-decoration:none;display:flex;justify-content:center;text-align:center}.beta-app .profile-toolbar{flex-wrap:wrap}.beta-app .notice{overflow-wrap:anywhere}body.beta-app{background:#faf7ff}#inora-popup{z-index:600}

body.beta-app .studio{margin:0 auto!important}body.beta-app #app{height:100%;padding-bottom:0}body.beta-app .beta-bar{min-height:54px}body.beta-app .beta-bar button{min-height:34px}

.daily-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.daily-heading>div:first-child{flex:1}.daily-heading>div:last-child{width:110px}.daily-heading svg{width:100%;height:auto}.daily-heading .hero-title{font-size:29px}.daily-options{display:flex;flex-wrap:wrap;gap:9px}.daily-options label,.daily-energy label{position:relative;cursor:pointer}.daily-options input,.daily-energy input{position:absolute;opacity:0;width:1px;height:1px}.daily-options span,.daily-energy span{display:flex;align-items:center;justify-content:center;min-height:46px;padding:10px 15px;border:1px solid #d8d2e4;border-radius:16px;background:#faf8fd;font-size:13px;transition:background .18s,transform .18s}.daily-options input:checked+span,.daily-energy input:checked+span{background:#d9ff65;border-color:#342447;box-shadow:inset 0 0 0 1px #342447}.daily-options input:focus-visible+span,.daily-energy input:focus-visible+span{outline:3px solid #7050bd;outline-offset:3px}.daily-options label:hover span,.daily-energy label:hover span{transform:translateY(-2px);background:#eee7fc}.daily-options input:checked+span:hover{background:#d9ff65}#daily-form fieldset{border:0;padding:0;margin:22px 0}#daily-form legend{font-weight:700;line-height:1.9;margin-bottom:12px}#daily-form legend small{font-weight:400;color:#756780}.daily-energy{display:grid;grid-template-columns:repeat(5,1fr);gap:9px}.daily-energy label span{font-size:20px}.daily-scale{display:flex;justify-content:space-between;margin-top:8px;font-size:11px;color:#756780}.daily-details{padding:16px 0;border-top:1px solid #e5e0eb;margin-top:22px}.daily-details summary{cursor:pointer;display:flex;justify-content:space-between;align-items:center;min-height:48px;font-weight:700}.daily-details summary span{font-size:11px;font-weight:400;color:#756780}.daily-details[open]>:not(summary){animation:room-message-in .2s ease}.daily-action,.daily-pattern{border-radius:24px;padding:20px;background:#eee7fb;margin:18px 0}.daily-action h3,.daily-pattern h3{font:700 25px ravagh;margin:12px 0}.daily-action p{font-size:13px}.daily-action input{background:#fff}.daily-pattern{background:#f0e8fc}.daily-tag-count{display:flex;align-items:center;gap:12px;margin:12px 0}.daily-tag-count span{min-width:90px}.daily-tag-count meter{flex:1;min-width:0;height:15px}.daily-tag-count b{min-width:24px}@media(prefers-reduced-motion:reduce){.daily-options span,.daily-energy span{transition:none}.daily-details[open]>:not(summary){animation:none}}

.device[data-screen="mood"] #buddy-widget{display:none}

.family-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.family-grid button{min-width:0;padding:12px 6px;border:1px solid #e5e0eb;background:#faf8fd;border-radius:20px;cursor:pointer}.family-grid button.previewing{border:2px solid #7050bd;background:#ece4fb}.family-grid b,.family-grid small{display:block}.family-grid svg{width:100%;height:100px}.family-grid small{font-size:9px;line-height:1.8}.family-grid .abri *{animation-play-state:paused!important}.family-grid button:hover .abri *,.family-grid button:focus-visible .abri *{animation-play-state:running!important}.family-art.mode-idle .abri-body{animation-duration:var(--friend-pace,3s)}.friend-phrase{padding:14px 0;border-bottom:1px solid #e5e0eb}.friend-phrase>div{display:flex;gap:8px}.friend-phrase input{max-width:100%;font-size:12px;margin:10px 0}.voice-panel summary{min-height:48px;cursor:pointer;font-weight:700}.companion-studio-link{border:0;background:#eee7fa;border-radius:20px;min-height:40px;padding:8px 18px;color:#594289;align-self:center}#lab-art.room-speaking .talk-mouth{display:block!important;animation:abri-speech .3s infinite}#lab-art.room-speaking .mouth{display:none!important}@media(prefers-reduced-motion:reduce){#lab-art.room-speaking .talk-mouth{animation:none!important}}@media(max-width:360px){.family-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.dictation-button{border:1px solid #ded3ee;background:#f4effb;color:#594484;border-radius:14px;min-height:42px;padding:8px 12px;font:inherit;font-size:11px;margin:6px 0}.composer{flex-wrap:wrap}.composer .dictation-button{flex:0 0 auto}#easy-dialog{border:1px solid #e5dced;border-radius:28px;padding:24px;width:min(90vw,440px);max-height:88dvh;overflow:auto;color:#342447;background:#fff;font-family:inherit}#easy-dialog::backdrop{background:#19233666;backdrop-filter:blur(9px)}#easy-dialog h2{font-family:ravagh}#easy-dialog button{margin:6px 0}#easy-dialog textarea{width:100%;box-sizing:border-box}.easy-body{display:grid;gap:8px}.crop-box{width:100%;aspect-ratio:1;position:relative;overflow:hidden;border-radius:14px;background:#f1edf6}.crop-box canvas{width:100%;height:100%;touch-action:none;cursor:grab}.crop-mask{position:absolute;inset:0;border-radius:50%;box-shadow:0 0 0 100px #182a3677;border:2px solid white;pointer-events:none}.crop-arrows{display:flex;justify-content:center;gap:10px;direction:ltr}.crop-arrows button{min-width:44px;min-height:44px;border-radius:14px;border:1px solid #ddd}.personal-cover{height:190px;background:var(--cover);border-radius:28px;position:relative;overflow:hidden;margin-top:16px}.cover-word{position:absolute;top:22px;left:20px;font-size:10px;letter-spacing:2px}.cover-star{position:absolute;font-size:110px;color:var(--accent);left:25px;top:35px;transform:rotate(12deg)}.cover-loop{position:absolute;border:14px solid #fff8;border-radius:50%;width:170px;height:170px;right:-50px;top:-50px}.cover-note{position:absolute;bottom:30px;right:24px;font:28px ravagh;max-width:55%}.profile-themes{margin:15px 0;background:#faf7ff;border-radius:18px;padding:14px}.profile-themes>div{display:flex;gap:8px;flex-wrap:wrap;padding-top:12px}.profile-themes button{border:1px solid #ddd;border-radius:14px;min-height:44px;padding:10px;font:inherit}.profile-section{border:1px solid #eee6f3!important;border-radius:24px;padding:22px!important;margin:14px 0!important;background:linear-gradient(135deg,#fff,#faf7fe)}.priority-star{background:#f0e8fc;color:#342447}.room-screen .room-stage{flex:0 0 clamp(230px,35svh,340px);min-height:230px}.room-screen .room-transcript{min-height:80px}.room-screen .composer input{font-size:16px}
body.beta-app:not(.room-full) .device>.nav{position:fixed!important;bottom:0!important;left:50%!important;right:auto!important;transform:translateX(-50%);width:min(100%,520px);box-sizing:border-box;border-radius:22px 22px 0 0;margin:0;padding:8px 12px max(8px,env(safe-area-inset-bottom));background:#faf7fff5;backdrop-filter:blur(16px);z-index:35;border:1px solid #e7dfef;border-bottom:0}body.beta-app .screen.with-nav{padding-bottom:calc(100px + env(safe-area-inset-bottom))}body.beta-app.has-buddy .screen.with-nav{padding-bottom:calc(190px + env(safe-area-inset-bottom))}
.install-guide .install-icon{width:74px;height:74px;border-radius:22px;margin:auto}.install-guide details{border:1px solid #e7ddf5;background:#f7f3fc;border-radius:18px;padding:14px}.install-guide summary{font-weight:700;cursor:pointer;min-height:30px}.install-guide li{margin:10px 0;line-height:1.9}.install-guide .easy-close{width:100%;background:#d9ff65;color:#342447}
.mic-feedback{padding:16px;border:1px solid #e2d8f1;border-radius:22px;background:#f6f1fc;text-align:center}.mic-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#a9a4b0;margin-left:7px}.mic-feedback[data-mode=listening] .mic-dot,.mic-feedback[data-mode=connecting] .mic-dot{background:#6844c1}.mic-phase{font-size:13px}.mic-meter{display:flex;direction:ltr;align-items:center;justify-content:center;gap:4px;height:50px;margin:10px 0}.mic-meter i{display:block;width:10px;height:16px;border-radius:6px;background:#ddd5e9;transition:background .08s,height .08s}.mic-meter i.lit{height:36px;background:#8e70d8}.mic-level-label{font-size:10px}.mic-controls{display:flex;gap:8px}.mic-controls button{flex:1;min-width:0}.mic-status{font-size:12px;line-height:1.9;min-height:45px}#easy-dialog{box-sizing:border-box}#easy-dialog .easy-close{position:sticky;bottom:0;z-index:1;background:#eee6fa;width:100%;min-height:44px}#easy-dialog.install-guide .easy-close{background:#d9ff65}
#easy-dialog .easy-close{position:static}#easy-dialog:has(.mic-feedback) .easy-body{gap:5px}#easy-dialog:has(.mic-feedback) textarea{min-height:90px;height:100px}#easy-dialog .mic-feedback{padding:10px}#easy-dialog .mic-meter{height:32px;margin:6px 0}#easy-dialog .mic-status{min-height:30px;margin:6px 0}
/* Clearer start, quiet home, and a proper companion gallery. */
.new-welcome{background:#faf7ff!important;text-align:center;max-width:520px!important;padding:24px 30px 32px!important;min-height:100svh;justify-content:center;display:flex;flex-direction:column;align-items:stretch;gap:13px}.new-welcome h1{font-size:43px!important;line-height:1.4;margin:0!important}.new-welcome p{margin:0 0 12px!important;line-height:1.9}.new-welcome small{font-size:10px;color:#707681}.welcome-login{font-size:12px;padding:10px;color:#493279}.brand-scene{position:relative;isolation:isolate;width:270px;height:260px;max-width:100%;margin:0 auto;display:grid;place-items:center;perspective:800px}.beta-welcome .brand-scene img,#brand-intro .brand-scene img{width:220px;height:220px;border-radius:0;object-fit:contain;mix-blend-mode:multiply;position:relative;z-index:2;animation:brand-float 5s ease-in-out infinite}.brand-orbit{position:absolute;inset:20px;border:1px solid #cabcec;border-radius:50%;transform:rotateX(63deg) rotate(-24deg);box-shadow:0 12px 35px #9778ed20}.brand-orbit.second{inset:0;transform:rotateY(68deg) rotate(30deg);border-color:#c9b5ec}.brand-spark{position:absolute;color:#9873e9;font-size:30px;top:30px;right:9px}#brand-intro{position:fixed;inset:0;z-index:10000;background:#faf7ff;display:flex;flex-direction:column;align-items:center;justify-content:center;animation:brand-enter .65s ease both}#brand-intro p{font-family:Ravagh;font-size:24px}#brand-intro button{background:none;border:0;color:#7653ae;padding:14px;font:inherit} @keyframes brand-float{50%{transform:translateY(-9px) rotateY(12deg)}}@keyframes brand-enter{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}
.calm-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.calm-header h1{font-size:27px;margin:4px 0}.next-step{position:relative;overflow:hidden;background:#ede5fc;border-radius:30px;padding:24px}.next-step h2{font-family:Ravagh;font-size:35px;line-height:1.5;margin:12px 0;color:#32274c}.next-step p{font-size:12px;line-height:1.9;position:relative;z-index:1}.next-step .primary{margin-top:20px;background:#7652ca;color:white;font-size:12px;position:relative;z-index:1}.step-flower{position:absolute;left:15px;top:35px;font-size:115px;line-height:1;color:#c9b4ee;transform:rotate(18deg);pointer-events:none}.section-heading{display:flex;align-items:center;justify-content:space-between;margin:25px 0 14px}.section-heading h2{font-size:19px;margin:0}.section-heading>span{font-size:10px;color:#777}.today-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.today-pair>button{position:relative;display:flex;flex-direction:column;align-items:flex-start;text-align:right;min-height:170px;padding:16px;background:#f0e8fc;border:0;border-radius:25px;color:var(--ink);overflow:hidden}.today-pair>button+button{background:#f0e8fc}.today-pair b{font-size:13px;margin-top:auto}.today-pair small{font-size:10px;margin-top:7px}.tile-icon{font-size:47px;line-height:1.1;color:#695185}.tile-arrow{position:absolute;left:14px;top:14px;font-size:19px}.home-friend{height:76px;width:91px;display:block}.home-friend .abri{height:80px;width:95px}.path-link{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #eee9f4;border-radius:22px;padding:19px 14px;margin:16px 0;width:100%;text-align:right}.path-link b{font-size:12px}.path-link small{display:block;font-size:10px;color:#777;margin-top:5px}.path-icon{font-size:32px;color:#9472db}.path-link>span:last-child{margin-right:auto}.home-more{border-top:1px solid #eae5ef;padding:15px 0}.home-more summary{font-size:12px;padding:12px 0;cursor:pointer}.beta-app .beta-bar{font-size:9px;gap:4px;min-height:28px}.beta-app .beta-bar button{font-size:9px;padding:5px}.friend-showcase{position:relative;text-align:center;background:radial-gradient(ellipse at 50% 42%,#ffffff 0%,#eee6fb 64%,#e3d5f7 100%);border-radius:32px;padding:20px;overflow:hidden}.friend-count{position:absolute;left:20px;top:20px;font-size:10px;color:#79638c}.friend-podium{height:180px;display:grid;place-items:center;position:relative}.friend-podium:after{content:'';position:absolute;width:140px;height:22px;bottom:5px;background:#ae91d83d;filter:blur(5px);border-radius:50%}.friend-podium .abri{width:210px;height:180px;z-index:1}.friend-showcase h2{font-family:Ravagh;font-size:32px;margin:6px 0}.friend-showcase p{font-size:11px;margin:5px 0 18px}.friend-showcase .linkbutton{font-size:11px;margin-top:12px}.friend-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.friend-picker button{border:1px solid #eee8f3;border-radius:22px;background:#f8f6fb;padding:8px 4px;display:flex;align-items:center;flex-direction:column;min-height:120px;color:var(--ink)}.friend-picker .selected{border:2px solid #9778ed;background:#eee5fc}.friend-picker .abri{width:85px;height:76px}.friend-picker b{font-size:12px}.friend-picker small{font-size:9px;color:#7652ba}.dictation-button{display:inline-flex!important;align-items:center;justify-content:center;gap:6px;width:auto!important;min-width:44px;min-height:44px;padding:8px 12px!important;border-radius:14px!important;background:#f1ebfb!important;border:1px solid #e1d5f4!important;font-size:11px!important;color:#6b4a9f!important;margin:6px 0!important}.dictation-button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7}.composer{flex-wrap:wrap;align-items:center}.composer input{min-width:0;flex:1}.composer .dictation-button{order:3;flex-basis:100%;margin:0!important}.mic-controls{display:grid!important;grid-template-columns:1fr 1fr;gap:10px}.mic-controls button,.insert-dictation{min-height:48px!important;border-radius:16px!important;font-size:12px!important;padding:10px!important;width:100%!important}.mic-feedback{padding:18px!important;border-radius:24px!important;background:#f2ecfc!important}.mic-feedback[data-mode=listening] .mic-dot{background:#7b55c7}.mic-status{font-size:11px;line-height:1.8}.easy-dialog{border-radius:28px!important}.easy-dialog textarea{font-size:16px!important}.primary:disabled{opacity:.5}.screen button:active{transform:scale(.98)}.friend-picker button:hover{background:#eee5fc}.device[data-screen=home] .screen{background:#fff!important}.nav{box-shadow:0 -8px 25px #29203909!important}.room-screen .composer button[type=submit]{width:44px;min-height:44px;flex-shrink:0}.room-screen .companion-studio-link{font-size:10px;padding:8px}
@media(prefers-reduced-motion:reduce){.brand-scene img{animation:none!important}#brand-intro{animation:none!important}}
.sample-voice{display:block;margin:5px auto 10px;border:1px solid #ddd0f2;background:#eee5fb;color:#60428d;border-radius:18px;padding:11px 18px;min-height:44px;font:inherit;font-size:11px}.new-welcome .primary{justify-content:center}.mic-controls .primary{justify-content:center}
/* Keep the mouth anchored to its own center; never translate it in viewBox units. */
.abri .talk-mouth{transform-box:fill-box;transform-origin:center!important}.mode-talk .talk-mouth,.room-speaking .talk-mouth,#lab-art.room-speaking .talk-mouth{animation:mouth-speak-local .32s ease-in-out infinite alternate!important}@keyframes mouth-speak-local{from{transform:scaleY(.35)}to{transform:scaleY(1)}}
.friend-showcase,.buddy-hero,.room-screen,.profile-section{background:#f2ecfa!important;background-image:none!important}.room-stage{background:transparent!important;background-image:none!important}
@media(prefers-reduced-motion:reduce){.mode-talk .talk-mouth,.room-speaking .talk-mouth,#lab-art.room-speaking .talk-mouth{animation:none!important}}
.friend-picker button{padding:10px 7px 12px;gap:8px;background:#fff;min-height:143px}.friend-portrait{display:block;width:100%;aspect-ratio:1;border-radius:24px;background:#e9def8;overflow:hidden}.friend-portrait.portrait-1{background:#f0e8fc}.friend-portrait.portrait-2{background:#f0e8fc}.friend-portrait.portrait-3{background:#ffe9df}.friend-picker .friend-portrait .abri{width:100%;height:100%;overflow:hidden}.friend-picker .abri-body{animation:none!important}.friend-picker .abri-shadow{display:none}.friend-picker .selected{background:#f6f1fc}.friend-picker b{font-size:13px}.friend-picker .friend-portrait .arm-left,.friend-picker .friend-portrait .arm-right,.friend-picker .friend-portrait .hand-left,.friend-picker .friend-portrait .hand-right{animation:none!important}
.immersive-room{position:relative;isolation:isolate;background:#faf7ff!important;display:flex;flex-direction:column;min-height:100%;gap:5px}.immersive-room.space-garden{background:#f4f8ef!important}.immersive-room.space-moon{background:#f5f5fc!important}.immersive-room.space-plain{background:#fff!important}.immersive-room .room-stage{flex:1 0 280px;min-height:280px;margin:0;display:grid;place-items:center}.immersive-room .room-stage>.abri{width:min(100%,360px);height:100%;max-height:360px}.room-space-art{position:absolute;inset:75px 10px 300px;z-index:-1;overflow:hidden;pointer-events:none}.room-space-art i{position:absolute;display:block;opacity:.5}.space-cloud .room-space-art i{width:115px;height:38px;background:#e9e1f6;border-radius:80px;top:17%;left:-20px;box-shadow:30px -20px 0 -3px #e9e1f6}.space-cloud .room-space-art i:nth-child(2){left:auto;right:-30px;top:60%;transform:scale(.8)}.space-cloud .room-space-art i:nth-child(3){width:8px;height:8px;left:65%;top:9%;box-shadow:none}.space-garden .room-space-art i{width:65px;height:135px;border:2px solid #dbe8d0;border-radius:90% 10%;left:0;bottom:15%;transform:rotate(-28deg)}.space-garden .room-space-art i:nth-child(2){left:auto;right:0;bottom:0;transform:rotate(30deg)}.space-moon .room-space-art i:first-child{width:105px;height:105px;border:18px solid #e4e3f2;border-top-color:transparent;border-right-color:transparent;border-radius:50%;left:10px;top:15px;transform:rotate(25deg)}.space-moon .room-space-art i:nth-child(2){width:8px;height:8px;right:35px;top:40px;background:#dddced;box-shadow:-30px 100px #dddced,15px 190px #dddced}.space-plain .room-space-art{display:none}.room-caption{padding:8px 18px;text-align:center;min-height:70px;max-height:104px;overflow-y:auto;flex-shrink:0}.room-caption p{font-size:12px;line-height:1.9;margin:4px 0}.room-caption small{font-size:9px;color:#8a7c9c}.room-toolbar{display:flex;justify-content:center;gap:10px;margin:4px 0 8px}.room-toolbar button{border:1px solid #e4dcec;background:#ffffffa6;border-radius:18px;min-height:40px;padding:7px 16px;font:inherit;font-size:11px}.immersive-room .companion-studio-link{display:none}.immersive-room #room-status,.immersive-room .composer+p+p{display:none}.immersive-room .sample-voice{margin:0 auto;font-size:10px;min-height:36px;padding:6px 13px}.conversation-dialog .conversation-history{height:min(60dvh,520px);overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:8px}.conversation-history article{padding:12px 14px;margin:10px 0;border-radius:18px;background:#f1eafa;margin-left:20px}.conversation-history .by-me{background:#f0e8fc;margin-left:0;margin-right:20px}.conversation-history small{font-size:10px;color:#7b7585}.conversation-history p{font-size:13px;line-height:1.9;margin:5px 0}.space-options{display:grid;grid-template-columns:1fr 1fr;gap:12px}.space-options button{border:1px solid #ded8e8;border-radius:20px;min-height:85px;font:inherit}.friend-portrait .abri{transform:scale(1.08) rotate(-6deg)}.friend-picker button:nth-child(3n+2) .abri{transform:scale(1.1) rotate(7deg)}.friend-picker button:nth-child(3n) .abri{transform:scale(1.06) rotate(-2deg)}.friend-portrait .abri-body>path:first-child{display:none!important}
.immersive-room.space-hill{background:#f0e8fc!important}.immersive-room.space-room{background:#f0e8fc!important}.immersive-room .room-space-art{inset:90px 0 240px;opacity:.8}.scene-drawing{height:100%;width:100%}.immersive-room .room-stage{flex:1 0 330px;min-height:330px;padding-top:75px;position:relative}.immersive-room .room-stage>.abri{width:min(100%,420px);max-height:390px;height:100%;position:relative}.immersive-room .speech-cloud{position:absolute;top:100px;left:7%;right:7%;z-index:3;background:#fff;border:1px solid #e7deed;border-radius:25px 25px 25px 7px;box-shadow:0 8px 22px #58406608;max-height:125px;min-height:0;padding:12px 18px;animation:cloud-sentence 14s both;overflow:auto}.speech-cloud p{font-size:13px;line-height:1.8;margin:0}.speech-cloud small{display:none}@keyframes cloud-sentence{0%{opacity:0;transform:translateY(9px) scale(.96)}5%,85%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(-5px);visibility:hidden}}.immersive-room .screen-top{margin-bottom:7px}.immersive-room .chiprow{margin:5px 0}.immersive-room .room-toolbar{margin-top:4px}.immersive-room .room-caption:focus-within,.immersive-room .room-caption:hover{animation-play-state:paused}@media(prefers-reduced-motion:reduce){.immersive-room .speech-cloud{animation:none}}
.play-sprite{width:min(100%,400px);height:310px;position:relative;touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none;z-index:2;transform-origin:50% 75%}.play-sprite>.abri{width:100%;height:100%;overflow:visible}.play-sprite.is-held{cursor:grabbing}.is-held .abri-body{animation:none!important}.is-held .arm-left,.is-held .hand-left{transform-box:view-box;transform-origin:40px 139px;transform:rotate(-55deg);animation:none!important}.is-held .arm-right,.is-held .hand-right{transform-box:view-box;transform-origin:196px 133px;transform:rotate(55deg);animation:none!important}.is-held .abri-body>path:first-child{transform:translateY(7px)}.is-held .abri-shadow{opacity:0}.play-sprite.is-peeking{transform:translateX(125px) rotate(-23deg);transition:transform .8s ease}.companion-prop{animation:prop-reveal .5s ease both;transform-box:fill-box;transform-origin:bottom right}@keyframes prop-reveal{from{opacity:0;transform:translate(25px,30px) rotate(25deg) scale(.5)}to{opacity:1;transform:none}}.fresh-bubble{animation:cloud-sentence 14s both!important}.play-menu{text-align:center;margin:0 auto 5px;font-size:11px}.play-menu summary{padding:9px;cursor:pointer}.play-menu>div{display:flex;gap:5px;flex-wrap:wrap;justify-content:center}.play-menu button{border:1px solid #e5ddeb;border-radius:13px;background:#fff;padding:9px;font:inherit;min-height:40px}.play-menu small{font-size:10px;display:block;padding:7px}.immersive-room .room-stage{padding-top:85px;overflow:visible}.immersive-room .chiprow{justify-content:center}.immersive-room .speech-cloud{pointer-events:auto}@media(prefers-reduced-motion:reduce){.companion-prop,.fresh-bubble{animation:none!important}.play-sprite{transition:none!important}}
.immersive-room.space-hill,.immersive-room.space-garden{background:#f7f3fc!important}
.living-sprite.act-ball .toy-ball{transform-box:fill-box;transform-origin:center;animation:ball-juggle 1s ease-in-out infinite}.act-ball .abri-body>path:first-child{animation:kick-foot 1s ease-in-out infinite}.act-comb .toy-comb{animation:comb-hair .8s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:center}.act-float{animation:cloud-float-trip 8s ease-in-out}.act-rain .toy-rain{animation:little-rain 1s linear infinite}.act-search{animation:search-far 8s ease-in-out}.act-peek{animation:peek-walk 9s ease-in-out}.act-peek .abri-body>path:first-child{animation:walk-feet .28s ease-in-out infinite alternate;transform-origin:122px 190px}.act-dance{animation:tiny-dance 1.1s ease-in-out infinite}.act-balance{animation:balance-wobble 2s ease-in-out infinite}.act-star .toy-star{animation:star-float 2s ease-in-out infinite}.act-seed .toy-seed{animation:seed-grow 7s ease both;transform-origin:120px 185px}.act-umbrella .arm-right{animation:umbrella-arm 2s ease-in-out infinite}.act-read .eyes,.act-letter .eyes{animation:read-eyes 3s ease-in-out infinite}.egg-wow .eyes{transform:translateY(-7px)!important;animation:none!important}.egg-wow .talk-mouth{display:block}.egg-wow .mouth{display:none}.surprise-egg{position:absolute;bottom:7px;left:calc(50% - 23px);width:46px;height:58px;background:none;border:0;z-index:5;cursor:pointer;animation:egg-drop .8s ease-out;filter:drop-shadow(0 5px 2px #6a4b7d15);padding:0}.egg-half{position:absolute;left:0;width:46px;background:var(--egg-color);border:2px solid #a88bc9}.egg-top{top:0;height:33px;border-radius:65% 65% 0 0}.egg-bottom{bottom:0;height:28px;border-radius:0 0 50% 50%}.egg-speck{position:relative;color:#f5effb;font-size:20px}.cracked .egg-top{animation:crack-top .6s forwards}.cracked .egg-bottom{animation:crack-bottom .6s forwards}.cracked .egg-speck{opacity:0}@keyframes ball-juggle{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-60px) rotate(160deg)}}@keyframes kick-foot{45%{transform:translateY(-5px) rotate(-3deg)}}@keyframes comb-hair{to{transform:translateX(22px) rotate(12deg)}}@keyframes cloud-float-trip{35%,60%{transform:translateY(-100px) scale(.8)}100%{transform:none}}@keyframes little-rain{from{transform:translateY(-4px);opacity:0}40%{opacity:1}to{transform:translateY(26px);opacity:0}}@keyframes search-far{25%,70%{transform:translate(65px,-75px) scale(.45)}45%{transform:translate(20px,-75px) scale(.45)}100%{transform:none}}@keyframes peek-walk{0%{transform:none}18%,30%{transform:translateX(330px)}42%,57%{transform:translateX(185px) rotate(-20deg)}70%{transform:translateX(120px) rotate(0)}85%{transform:translateX(50px)}100%{transform:none}}@keyframes walk-feet{to{transform:rotate(8deg) translateY(-4px)}}@keyframes tiny-dance{25%{transform:rotate(-7deg)}75%{transform:rotate(7deg) translateY(-4px)}}@keyframes balance-wobble{25%{transform:rotate(-12deg)}75%{transform:rotate(9deg)}}@keyframes star-float{50%{transform:translateY(-13px) rotate(8deg)}}@keyframes seed-grow{from{transform:scale(.1)}to{transform:scale(1)}}@keyframes umbrella-arm{50%{transform:rotate(-7deg)}}@keyframes read-eyes{25%{transform:translate(-3px,4px)}75%{transform:translate(3px,4px)}}@keyframes egg-drop{from{transform:translateY(-130px) rotate(-20deg);opacity:0}70%{transform:translateY(0) scale(1.1,.9);opacity:1}100%{transform:none}}@keyframes crack-top{to{transform:translate(-20px,-20px) rotate(-30deg);opacity:0}}@keyframes crack-bottom{to{transform:translate(20px,10px) rotate(30deg);opacity:0}}@media(prefers-reduced-motion:reduce){.living-sprite,.living-sprite *,.surprise-egg,.surprise-egg *{animation:none!important}}

/* Quiet breathing deforms only the cloud silhouette; feet stay planted. */
.abri-body{animation:none}
.abri.mode-idle .abri-body,.abri.mode-wait .abri-body,.abri.mode-care .abri-body,.abri.mode-sleep .abri-body,.abri.mode-breathe .abri-body{animation:none;transform:none}
.abri-torso{transform-box:fill-box;transform-origin:50% 100%;animation:torso-breath 5s ease-in-out infinite}
.mode-sleep .abri-torso,.mode-care .abri-torso{animation-duration:6s}
.mode-breathe .abri-torso{animation-duration:8s}
.is-held .abri-torso,.friend-picker .abri-torso{animation:none}
@keyframes torso-breath{0%,100%{transform:scale(1,1)}50%{transform:scale(1.012,1.022)}}
@media(prefers-reduced-motion:reduce){.abri-torso{animation:none!important}}
/* Autonomous whistle, folded-cloud sleep and a brief rear view. */
.is-cloud-sleep{transform:translateY(-65px) scale(.82);transition:transform 1.4s ease}
.is-cloud-sleep .arm-left,.is-cloud-sleep .arm-right,.is-cloud-sleep .hand-left,.is-cloud-sleep .hand-right,.is-cloud-sleep .abri-body>path:first-child{opacity:0;transform:translateY(-24px) scale(.3);transition:opacity .6s,transform 1s;transform-origin:122px 150px}
.is-cloud-sleep .mouth,.is-cloud-sleep .talk-mouth,.is-cloud-sleep .brows,.is-cloud-sleep .sleep-z,.is-cloud-sleep .abri-shadow{display:none!important}
.is-waking{animation:cloud-wake 1.3s ease both}
.is-waking .arm-left,.is-waking .arm-right,.is-waking .hand-left,.is-waking .hand-right,.is-waking .abri-body>path:first-child{animation:limbs-unfold 1.1s ease both}
@keyframes cloud-wake{from{transform:translateY(-65px) scale(.82)}70%{transform:translateY(0) scale(1.02,.98)}to{transform:none}}
@keyframes limbs-unfold{from{opacity:0;transform:translateY(-20px) scale(.4)}to{opacity:1;transform:none}}
.act-whistle .mouth{display:none}.act-whistle .talk-mouth{display:block!important;animation:whistle-mouth .7s ease-in-out infinite!important;transform-box:fill-box;transform-origin:center!important}
.whistle-notes text{opacity:0;animation:note-rise 2.1s ease-out infinite}.whistle-notes text:nth-child(2){animation-delay:.7s}.whistle-notes text:nth-child(3){animation-delay:1.4s}
@keyframes whistle-mouth{0%,100%{transform:scale(.35,.45)}45%{transform:scale(.6,.7)}}
@keyframes note-rise{0%{opacity:0;transform:translate(0,0)}20%{opacity:.8}100%{opacity:0;transform:translate(35px,-85px)}}
.act-back .abri-body{animation:turn-around 8.5s ease both!important}
.act-back .eyes,.act-back .mouth,.act-back .talk-mouth,.act-back .brows{animation:front-vanish 8.5s steps(1) both!important}
.back-detail{animation:rear-appear 8.5s steps(1) both}
.act-back .arm-left,.act-back .hand-left{animation:rear-left 8.5s ease both!important}.act-back .arm-right,.act-back .hand-right{animation:rear-right 8.5s ease both!important}
@keyframes turn-around{0%,100%{transform:scaleX(1)}10%,88%{transform:scaleX(.15)}20%,78%{transform:scaleX(-1)}}
@keyframes front-vanish{0%,89%,100%{opacity:1}10%{opacity:0}}
@keyframes rear-appear{0%,89%,100%{opacity:0}10%{opacity:1}}
@keyframes rear-left{20%,78%{transform:rotate(-32deg)}}@keyframes rear-right{20%,78%{transform:rotate(30deg)}}
.audio-driven .abri-body{animation:none!important}.audio-driven .talk-mouth{display:block!important;animation:none!important;transform:scaleY(var(--mouth-open,.035))!important;transform-origin:center!important;transform-box:fill-box}
.audio-driven .arm-left,.audio-driven .hand-left,.audio-driven .arm-right,.audio-driven .hand-right{animation:none!important;transition:transform .4s ease;transform-box:view-box}
.audio-driven .arm-left,.audio-driven .hand-left{transform-origin:40px 139px;transform:rotate(var(--gesture-left,0deg))}
.audio-driven .arm-right,.audio-driven .hand-right{transform-origin:196px 133px;transform:rotate(var(--gesture-right,0deg))}
.audio-driven[data-gesture="0"]{--gesture-left:0deg;--gesture-right:0deg}.audio-driven[data-gesture="1"]{--gesture-left:45deg;--gesture-right:-40deg}.audio-driven[data-gesture="2"]{--gesture-left:130deg;--gesture-right:0deg}.audio-driven[data-gesture="3"]{--gesture-left:0deg;--gesture-right:-95deg}.audio-driven[data-gesture="4"]{--gesture-left:20deg;--gesture-right:-20deg}
@media(prefers-reduced-motion:reduce){.is-cloud-sleep{transition:none}.is-waking,.is-waking *,.act-back *,.act-whistle *{animation:none!important}.audio-driven *{transition:none!important}.act-back .back-detail{display:none}}
/* Carry the illustrated ground behind the conversation controls. */
.immersive-room .room-space-art{bottom:0;overflow:hidden}
.immersive-room .room-space-art>.scene-drawing{height:calc(100% - 240px);display:block}
.immersive-room .room-space-art:after{content:'';position:absolute;top:calc(100% - 240px);bottom:0;left:0;right:0;background:#dcd0eb}
.immersive-room .composer{background:#ffffffb8;border:1px solid #fff;border-radius:28px;padding:6px;gap:5px;box-shadow:0 5px 18px #65517e0b;flex-wrap:nowrap;align-items:center}
.immersive-room .composer input{border:0;background:transparent;box-shadow:none;border-radius:20px;min-height:44px;padding:10px 12px;font-size:16px}
.immersive-room .composer .dictation-button{order:0;flex:0 0 44px;width:44px!important;min-width:44px;padding:0!important;font-size:0!important;background:#eee5f8!important;border:0!important;border-radius:50%!important;gap:0}
.immersive-room .composer .dictation-button svg{width:20px;height:20px}
.immersive-room .composer button[type=submit]{border-radius:50%;width:44px;height:44px;background:#9674d9;color:#fff;border:0}
.immersive-room .chiprow{gap:7px;padding:8px 0 14px;flex-wrap:wrap}
.immersive-room .choice-chip{background:#ffffff80;border-color:#ffffffa8;font-size:11px;min-height:40px;padding:8px 13px}
.immersive-room .room-toolbar button,.immersive-room .sample-voice{background:#ffffff85;border-color:#ffffffb0}
.immersive-room{padding-bottom:max(24px,env(safe-area-inset-bottom))!important}
.immersive-room .screen-top h1{font:700 32px/1.3 ravagh;color:#674797;letter-spacing:-.6px;margin:0}
.immersive-room .screen-top{padding:8px 0 4px}
.immersive-room .room-close{width:42px;height:42px;padding:0;border:0;background:transparent;font:200 29px/1 Arial;color:#74578f}
.immersive-room .icon-btn{border:0;color:#74578f;background:transparent}
.immersive-room .room-toolbar{display:flex;align-items:center;justify-content:center;gap:8px;margin:10px 0 12px}
.immersive-room .room-toolbar button{width:46px;height:46px;min-height:46px;padding:11px;border:0;background:transparent;color:#6b469e;margin:0;display:grid;place-items:center;border-radius:50%}
.immersive-room .room-toolbar button:hover{background:#ffffff70}
.immersive-room .room-toolbar svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.immersive-room .sample-voice{font-size:0!important}
.immersive-room .sample-voice:before{content:'';width:24px;height:24px;background:currentColor;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 4 6 8H3v8h3l5 4ZM15 8q4 4 0 8M18 5q7 7 0 14'/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat}
.immersive-room .composer{margin-top:auto;margin-bottom:5px;flex-shrink:0}
.immersive-room>.pill{font-size:8px;opacity:.65;align-self:center;background:transparent;padding:0}
/* Authored two-hand reading and joint-linked combing. */
.rig-book .abri-body,.rig-comb .abri-body{animation:none!important;transform:none!important}
.rig-book .abri-torso,.rig-comb .abri-torso{animation:torso-breath 6s ease-in-out infinite}
.reading-rig{animation:book-settle 1.1s ease both;transform-box:view-box;transform-origin:122px 180px}
.rig-book .eyes{animation:reading-lines 6s ease-in-out infinite!important;transform-origin:122px 120px}
.turning-page{transform-box:view-box;transform-origin:123px 168px;animation:book-page-turn 7.5s ease-in-out infinite}
.rig-book .mouth{transform:scale(.8);transform-box:fill-box;transform-origin:center}
.combing-rig{transform-box:view-box;transform-origin:196px 133px;animation:comb-joint-strokes 6.5s ease-in-out infinite}
.rig-comb .eyes{animation:comb-follow 6.5s ease-in-out infinite!important}
.combed-sparkle{animation:comb-clean-spark 6.5s ease-in-out infinite}
@keyframes book-settle{from{transform:translate(15px,25px) rotate(9deg);opacity:0}to{transform:none;opacity:1}}
@keyframes reading-lines{0%,8%{transform:translate(3px,5px)}22%{transform:translate(-3px,5px)}28%{transform:translate(3px,7px)}43%{transform:translate(-3px,7px)}49%{transform:translate(3px,9px)}64%{transform:translate(-3px,9px)}76%,86%{transform:translate(0,3px)}94%,100%{transform:translate(3px,5px)}}
@keyframes book-page-turn{0%,62%{transform:scaleX(1);opacity:0}64%{opacity:1;transform:scaleX(1)}73%{transform:scaleX(.1)}83%{transform:scaleX(-1);opacity:1}88%,100%{transform:scaleX(-1);opacity:0}}
@keyframes comb-joint-strokes{0%{transform:rotate(48deg);opacity:0}12%{transform:rotate(0);opacity:1}25%{transform:rotate(-16deg)}32%{transform:rotate(0)}45%{transform:rotate(-16deg)}52%{transform:rotate(0)}65%{transform:rotate(-16deg)}74%,88%{transform:rotate(2deg);opacity:1}100%{transform:rotate(48deg);opacity:0}}
@keyframes comb-follow{0%,100%{transform:none}15%,68%{transform:translate(2px,-5px)}78%,88%{transform:translate(-2px,-2px)}}
@keyframes comb-clean-spark{0%,65%,100%{opacity:0}77%,86%{opacity:1}}
@media(prefers-reduced-motion:reduce){.reading-rig,.turning-page,.combing-rig,.rig-book .eyes,.rig-comb .eyes,.combed-sparkle{animation:none!important}.turning-page,.combed-sparkle{display:none}}
/* Every ball sequence resolves with a strong kick, two rebounds, and a tuck away. */
.rig-ball .abri-body{animation:none!important;transform:none!important}
.act-ball .rig-ball .planted-foot{animation:none!important}
.rig-ball .kicking-foot{transform-box:view-box;transform-origin:147px 174px;animation:ball-kick-sequence 8.2s ease-in-out both}
.ball-flight{animation:ball-complete-flight 8.2s linear both;transform-box:view-box}
.cute-ball{animation:ball-panel-roll 8.2s linear both;transform-origin:0 0;transform-box:view-box}
.ball-impact{opacity:0;animation:ball-impact-flash 8.2s linear both}
.rig-ball .eyes{animation:ball-eye-track 8.2s ease-in-out both!important}
@keyframes ball-complete-flight{0%{transform:translate(181px,195px) scale(.1);opacity:0}5%{transform:translate(181px,195px) scale(1);opacity:1}14%{transform:translate(180px,130px)}23%{transform:translate(181px,195px)}33%{transform:translate(175px,115px)}43%{transform:translate(181px,195px)}51%{transform:translate(183px,154px)}57%{transform:translate(182px,195px)}59%{transform:translate(190px,184px)}66%{transform:translate(251px,104px) scale(.8,1.15)}68%{transform:translate(245px,100px) scale(1)}79%{transform:translate(-14px,77px) scale(.8,1.15)}81%{transform:translate(-9px,80px) scale(1)}90%{transform:translate(213px,156px) scale(.8)}95%{transform:translate(191px,164px) scale(.35);opacity:1}98%,100%{transform:translate(167px,159px) scale(.05);opacity:0}}
@keyframes ball-kick-sequence{0%,18%,38%,50%{transform:rotate(0)}23%,43%{transform:rotate(-23deg)}54%{transform:rotate(22deg)}59%,63%{transform:rotate(-68deg)}72%,100%{transform:none}}
@keyframes ball-panel-roll{0%{transform:rotate(0)}57%{transform:rotate(260deg)}79%{transform:rotate(850deg)}100%{transform:rotate(1250deg)}}
@keyframes ball-eye-track{0%,57%{transform:translate(3px,7px)}66%{transform:translate(7px,-3px)}79%{transform:translate(-7px,-5px)}92%{transform:translate(5px,3px)}100%{transform:none}}
@keyframes ball-impact-flash{0%,64%,69%,100%{opacity:0}66%,68%{opacity:.8}}
@media(prefers-reduced-motion:reduce){.ball-flight,.cute-ball,.ball-impact,.rig-ball .kicking-foot,.rig-ball .eyes{animation:none!important}.ball-flight{transform:translate(181px,195px)}.ball-impact{display:none}}
/* Ground contact is a separate scene layer, never part of the flying rig. */
.immersive-room .play-sprite .abri-shadow{display:none!important}
.ground-shadow{position:absolute;left:50%;bottom:30px;width:145px;height:15px;border-radius:50%;background:#756286;opacity:.12;transform:translateX(-50%);pointer-events:none;z-index:1;transition:opacity .45s ease,scale .7s ease;clip-path:ellipse(50% 50% at 50% 50%)}
.ground-shadow.off-ground{opacity:0;scale:.65}
.ground-shadow.returning{animation:shadow-landing 1.3s ease both}
@keyframes shadow-landing{0%,40%{opacity:0;scale:.65}100%{opacity:.12;scale:1}}
@media(prefers-reduced-motion:reduce){.ground-shadow{transition:none;animation:none!important}}
/* One brief lightning mark, not a repeated screen strobe. */
.wake-lightning{position:absolute;top:20px;left:calc(50% - 90px);width:180px;height:210px;pointer-events:none;z-index:4;animation:wake-bolt .65s ease-out both}
.wake-lightning svg{width:100%;height:100%}
.wake-startled{animation:startled-landing 1.5s ease-in-out both}
.wake-startled .abri-body{animation:none!important}
.wake-startled .arm-left,.wake-startled .hand-left{transform:rotate(35deg)}
.wake-startled .arm-right,.wake-startled .hand-right{transform:rotate(-35deg)}
.wake-blushing .abri-body{animation:none!important}
.wake-blushing .eyes{transform:translate(3px,5px);animation:none!important}
@keyframes wake-bolt{0%{opacity:0;transform:translateY(-12px)}12%,35%{opacity:1;transform:none}100%{opacity:0;transform:translateY(8px)}}
@keyframes startled-landing{0%{transform:translateY(-65px) scale(.82)}18%{transform:translateY(-90px) scale(.9) rotate(-7deg)}32%{transform:translateY(-84px) scale(.92) rotate(6deg)}65%{transform:translateY(0) scale(1.06,.94)}82%,100%{transform:none}}
@media(prefers-reduced-motion:reduce){.wake-lightning{display:none}.wake-startled{animation:none!important}}
/* Lift the input off the edge; small utilities sit in the header. */
.immersive-room .composer{margin-bottom:45px}
.immersive-room .room-toolbar{position:absolute;top:23px;left:64px;margin:0;gap:0;z-index:4}
.immersive-room .room-toolbar button{width:37px;height:37px;min-height:37px;padding:8px}
.immersive-room .room-toolbar svg,.immersive-room .sample-voice:before{width:20px;height:20px}
@media(max-width:380px){.immersive-room .room-toolbar{left:51px}.immersive-room .room-toolbar button{width:32px}}
/* Matching joint transforms preserve the shaft/hand contact throughout opening. */
.rig-umbrella .abri-body{animation:none!important;transform:none!important}
.umbrella-joint{transform-box:view-box;transform-origin:196px 133px;animation:umbrella-lift 8.4s ease-in-out both}
.umbrella-canopy{transform-box:view-box;transform-origin:137px -48px;animation:umbrella-unfurl 8.4s cubic-bezier(.25,.7,.3,1) both}
.rig-umbrella .eyes{animation:umbrella-look 8.4s ease-in-out both!important}
.rig-umbrella .brows{display:block;opacity:.75;transform:none;animation:none}
.rig-umbrella .arm-left,.rig-umbrella .hand-left{animation:none!important}
@keyframes umbrella-lift{0%{opacity:0;transform:translate(24px,65px) rotate(35deg)}8%{opacity:1;transform:translate(18px,45px) rotate(25deg)}19%,27%{transform:none}40%{transform:rotate(-3deg)}55%{transform:rotate(2deg)}70%,83%{transform:none;opacity:1}100%{transform:translate(24px,65px) rotate(35deg);opacity:0}}
@keyframes umbrella-unfurl{0%,18%{transform:scale(.10,1.05)}25%{transform:scale(1.055,.96)}30%,79%{transform:scale(1)}87%,100%{transform:scale(.1,1.05)}}
@keyframes umbrella-look{0%,100%{transform:none}15%,33%{transform:translate(2px,-6px)}40%,70%{transform:translate(0,-2px)}83%{transform:translate(4px,2px)}}
@media(prefers-reduced-motion:reduce){.umbrella-joint,.umbrella-canopy,.rig-umbrella .eyes{animation:none!important}}
/* Speaking hands stay outside the face, including all interpolated poses. */
.audio-driven[data-gesture="1"]{--gesture-left:35deg;--gesture-right:-30deg}.audio-driven[data-gesture="2"]{--gesture-left:-30deg;--gesture-right:10deg}.audio-driven[data-gesture="3"]{--gesture-left:10deg;--gesture-right:25deg}.audio-driven[data-gesture="4"]{--gesture-left:20deg;--gesture-right:-15deg}
.simple-umbrella-rig{transform-box:view-box;transform-origin:137px 145px;animation:umbrella-present 8.4s ease both}
.simple-canopy{transform-box:view-box;transform-origin:137px 38px;animation:umbrella-two-hand-open 8.4s ease both}
.umbrella-opening-hand{transform-box:view-box;animation:umbrella-slider 8.4s ease both}
@keyframes umbrella-present{0%{opacity:0;transform:translate(20px,50px) rotate(15deg)}10%,42%{opacity:1;transform:none}55%,80%{transform:translate(30px,-84px) rotate(-8deg);opacity:1}100%{transform:translate(30px,50px);opacity:0}}
@keyframes umbrella-two-hand-open{0%,14%{transform:scaleX(.08) scaleY(1.45)}35%{transform:scaleX(1.04)}40%,80%{transform:scale(1)}91%,100%{transform:scaleX(.08) scaleY(1.45)}}
@keyframes umbrella-slider{0%,14%{transform:translateY(0)}35%,80%{transform:translateY(-24px)}91%,100%{transform:none}}
.surprise-egg{width:70px;height:78px;left:calc(50% - 35px);filter:none;bottom:6px}
.surprise-egg svg{width:100%;height:100%;overflow:visible}.surprise-egg:disabled{opacity:1}
.cracked .shell-top{animation:egg-top-settle .7s ease-out forwards;transform-origin:35px 42px}
.cracked .shell-bottom{animation:egg-bottom-settle .7s ease-out forwards;transform-origin:35px 65px}
@keyframes egg-top-settle{60%{transform:translate(-24px,12px) rotate(-110deg)}100%{transform:translate(-22px,17px) rotate(-100deg)}}
@keyframes egg-bottom-settle{60%{transform:translate(20px,2px) rotate(22deg)}100%{transform:translate(18px,2px) rotate(16deg)}}
.shells-leaving{opacity:0!important;transition:opacity .65s ease}
.immersive-room .speech-cloud.egg-wish{animation:egg-wish-life 12s both!important;background:#faf6ff;border:2px solid #d6c2ed;border-radius:28px 28px 12px 28px;text-align:center;padding:14px 20px}
.egg-wish small{display:block;font-size:10px;color:#9574af;margin:4px 0}.egg-wish p{font-family:ravagh;font-size:22px;line-height:1.65;color:#634489}.wish-spark{color:#a284c1;font-size:20px}
.egg-wow .abri-body{animation:none!important;transform:none!important}.egg-wow .eyes{transform:translateY(-9px)!important;animation:none!important}
@keyframes egg-wish-life{0%{opacity:0;transform:translateY(28px) scale(.85)}8%,91%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-12px)}}
@media(prefers-reduced-motion:reduce){.simple-umbrella-rig,.simple-canopy,.umbrella-opening-hand{animation:none!important}.cracked .shell-top{animation:none;transform:translate(-22px,17px) rotate(-100deg)}.cracked .shell-bottom{animation:none;transform:translate(18px,2px) rotate(16deg)}}
/* Blush appears in place: no reveal translation or scale. */
.companion-prop.blush-prop{transform:none!important;animation:cheek-fade 4.8s ease-in-out both!important}
@keyframes cheek-fade{0%{opacity:0}22%,65%{opacity:1}100%{opacity:0}}
.touch-eyes .eyes{display:none!important}.touch-eyes .closed-eyes{display:block!important}.touch-eyes .abri-body{animation:none!important}
.touch-hand-left .arm-left,.touch-hand-left .hand-left{transform-box:view-box;transform-origin:40px 139px;animation:touch-wave-left 1.4s ease-in-out both!important}
.touch-hand-right .arm-right,.touch-hand-right .hand-right{transform-box:view-box;transform-origin:196px 133px;animation:touch-wave-right 1.4s ease-in-out both!important}
.touch-foot-left .touch-foot-left{transform-box:view-box;transform-origin:100px 178px;animation:touch-lift-left 1.3s ease-in-out both!important}
.touch-foot-right .touch-foot-right{transform-box:view-box;transform-origin:148px 178px;animation:touch-lift-right 1.3s ease-in-out both!important}
@keyframes touch-wave-left{0%,100%{transform:rotate(0)}25%,65%{transform:rotate(30deg)}45%,80%{transform:rotate(10deg)}}
@keyframes touch-wave-right{0%,100%{transform:rotate(0)}25%,65%{transform:rotate(-30deg)}45%,80%{transform:rotate(-10deg)}}
@keyframes touch-lift-left{0%,100%{transform:none}35%,60%{transform:translateY(-12px) rotate(12deg)}}
@keyframes touch-lift-right{0%,100%{transform:none}35%,60%{transform:translateY(-12px) rotate(-12deg)}}
@media(prefers-reduced-motion:reduce){.touch-hand-left *,.touch-hand-right *,.touch-foot-left *,.touch-foot-right *{animation:none!important}}
/* Wind: depth, planted steps, and a small distant visitor. */
.wind-hill-mask{position:absolute;pointer-events:none;z-index:3;opacity:.8}.wind-hill-mask svg{width:100%;height:100%}.wind-hill-mask[hidden]{display:none}
.act-wind .abri-body,.act-wind .abri-torso{animation:none!important}.act-wind .brows{opacity:1!important}.act-wind[data-wind-phase=gust] .eyes{transform:translateX(5px)}
.act-wind[data-wind-phase=gust] :is(.arm-left,.hand-left){transform-origin:40px 139px;animation:wind-arm .19s alternate infinite}.act-wind[data-wind-phase=gust] :is(.arm-right,.hand-right){transform-origin:196px 133px;animation:wind-arm .23s alternate-reverse infinite}
@keyframes wind-arm{from{transform:rotate(-12deg)}to{transform:rotate(-35deg)}}
.act-wind[data-wind-phase=return] .wind-foot-left{transform-origin:92px 174px;animation:wind-step .6s infinite}.act-wind[data-wind-phase=return] .wind-foot-right{transform-origin:151px 174px;animation:wind-step .6s -.3s infinite}
@keyframes wind-step{0%,50%,100%{transform:translateY(0) rotate(0)}25%{transform:translateY(-9px) rotate(12deg)}}
.wind-streaks{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}.wind-streaks i{position:absolute;left:-30%;top:30%;width:70px;height:2px;background:#bda5d9;border-radius:9px;opacity:.35;animation:gust-line .7s linear infinite}.wind-streaks i:nth-child(2){top:45%;animation-delay:-.2s;width:110px}.wind-streaks i:nth-child(3){top:60%;animation-delay:-.5s}.wind-streaks i:nth-child(4){top:20%;animation-delay:-.3s}
@keyframes gust-line{to{transform:translateX(650px)}}
.gust-world svg>g[fill="#eee7f6"]{animation:cloud-gust 5s ease-in forwards}.gust-world svg>g[stroke="#cbbadd"]{transform-origin:50% 90%;animation:grass-gust .22s alternate infinite}
@keyframes cloud-gust{to{transform:translateX(440px)}}@keyframes grass-gust{to{transform:skewX(-18deg)}}
.flying-cat{position:absolute;left:-80px;top:25%;width:46px;color:#b6a0cc;opacity:.38;animation:cat-gust 2s 2.5s ease-in both}.cat-face{opacity:0}@keyframes cat-gust{from{transform:translate(0,35px) rotate(-20deg)}to{transform:translate(650px,-80px) rotate(520deg)}}
.background-cat{position:absolute;pointer-events:none;color:#b6a0cc;opacity:.35;z-index:1;width:38px;bottom:25%;left:72%}.background-cat svg{display:block;width:100%}.cat-wander{animation:cat-wander 24s linear both}.cat-peek{left:auto;right:-20px;bottom:40%;width:80px;animation:cat-peek 7.5s ease both}.cat-peek .cat-face{opacity:.4}
@keyframes cat-wander{0%,100%{opacity:0;transform:translateY(30px) scale(.8)}8%,35%{opacity:.35;transform:translateY(0) scale(.8)}45%{opacity:0;transform:translate(15px,30px) scale(.7)}55%{opacity:0;transform:translate(-110px,30px) scale(.7)}65%,90%{opacity:.35;transform:translate(-110px,-8px) scale(.85)}}
@keyframes cat-peek{0%,100%{transform:translateX(90px) rotate(-25deg);opacity:0}25%,70%{transform:translateX(0) rotate(-25deg);opacity:.3}}
@media(prefers-reduced-motion:reduce){.background-cat,.wind-streaks{display:none}}
/* The surprise starts below the sleeping cloud, holds, then gently lands. */
.wake-lightning{top:auto;bottom:20px;left:calc(50% - 72px);width:144px;height:160px;z-index:1;animation:wake-bolt-below 1.2s ease-out both}
.wake-startled{animation:wake-freeze-land 2.6s both}.wake-startled .eyes{animation:none!important;transform:scaleY(1.2);transform-origin:122px 120px}.wake-startled .talk-mouth{opacity:1!important;transform:scale(.8,1.15);transform-origin:122px 144px}.wake-startled .mouth{opacity:0!important}
@keyframes wake-bolt-below{0%{opacity:0;transform:scaleY(.3);transform-origin:top}12%,65%{opacity:1;transform:scaleY(1)}100%{opacity:0;transform:scaleY(1.08)}}
@keyframes wake-freeze-land{0%{transform:translateY(-65px) scale(.82)}9%{transform:translateY(-100px) scale(.92) rotate(-4deg)}14%,53%{transform:translateY(-98px) scale(.94) rotate(-3deg)}87%{transform:translateY(0) scale(1.035,.965)}100%{transform:none}}
@media(prefers-reduced-motion:reduce){.wake-lightning{display:none}.wake-startled{animation:none!important}}

/* Cat feet follow the hill instead of a viewport-bottom offset. */
.ground-cat-layer{position:absolute;z-index:1;pointer-events:none;overflow:hidden}.ground-cat-layer>svg{width:100%;height:100%;display:block}.cat-tail{transform-origin:-11px -13px}.ground-cat-layer .cat-face{opacity:0}

.distant-cloud-friend{position:absolute;width:65px;height:54px;z-index:1;pointer-events:none;opacity:.18;transform:translate(-50%,-50%)}.distant-cloud-friend .abri{width:100%;height:100%}.distant-cloud-friend .abri-shadow{display:none}.friend-back-detail{display:none}
.act-friend[data-friend-phase=notice] .eyes{transform:translate(-5px,-3px)}
.act-friend[data-friend-phase=turn]{animation:friend-turn 1s ease both}.act-friend[data-friend-phase=return]{animation:friend-turn 1s ease reverse both}
@keyframes friend-turn{0%,100%{transform:scaleX(1)}50%{transform:scaleX(.35)}}
.act-friend[data-friend-phase=wave] :is(.eyes,.closed-eyes,.mouth,.talk-mouth,.brows){opacity:0!important;visibility:hidden}.act-friend[data-friend-phase=wave] .friend-back-detail{display:block}
.act-friend[data-friend-phase=wave] .abri-body{animation:none!important}
.act-friend[data-friend-phase=wave] :is(.arm-right,.hand-right),.friend-waving :is(.arm-left,.hand-left){animation:friend-hello .65s ease-in-out infinite;transform-origin:196px 133px}.friend-waving :is(.arm-left,.hand-left){transform-origin:40px 139px;animation-direction:reverse}
@keyframes friend-hello{0%,100%{transform:rotate(-12deg)}50%{transform:rotate(-33deg)}}
@media(prefers-reduced-motion:reduce){.act-friend,.act-friend *,.friend-waving *{animation:none!important}}
.terrain-cat{color:#ac94c2}

/* Rounded rear silhouette; arms are physically behind the torso in the SVG. */
.rounded-rear{display:none}.rear-facing .rounded-rear{display:block}.rear-facing :is(.eyes,.closed-eyes,.mouth,.talk-mouth,.brows){visibility:hidden!important}.rear-facing .abri-torso{animation:none!important}

.friend-reply{position:absolute;bottom:55px;left:50%;transform:translateX(-50%);white-space:nowrap;font:10px iran;color:#60438a;background:#f5f0ff;border:1px solid #ded2ee;padding:5px 9px;border-radius:12px;opacity:1}.distant-cloud-friend{opacity:1}.distant-cloud-friend>.abri{opacity:.18}.friend-reply[hidden]{display:none}
.wind-leaf,.wind-paper,.wind-seed{position:absolute;left:-80px;top:40%;color:#ae92cc;opacity:.5;animation:wind-carry 3.4s 1s ease-in both}.wind-leaf{font-size:33px}.leaf-two{top:63%;animation-delay:1.6s;font-size:22px}.wind-paper{top:30%;width:20px;height:26px;background:#e2d7f1;border-radius:3px;animation-delay:1.8s}.wind-seed{top:55%;font-size:17px;animation-delay:.6s}
@keyframes wind-carry{0%{transform:translate(0,35px) rotate(-20deg)}45%{transform:translate(250px,-35px) rotate(180deg)}100%{transform:translate(700px,-110px) rotate(520deg)}}
.flying-cat{top:45%;animation:cat-gust 3s 2s ease-in both}
@keyframes cat-gust{0%{transform:translate(0,65px) rotate(-15deg)}35%{transform:translate(180px,-25px) rotate(170deg)}70%{transform:translate(370px,-90px) rotate(370deg)}100%{transform:translate(680px,-55px) rotate(570deg)}}
/* One brand palette throughout the navigation and entrance. */
:root{--ink:#342447;--violet:#9778ed;--lime:#d9ff65;--blue:#c6b3f0;--cream:#faf7ff}
.beta-app,.device,.new-welcome{background:#faf7ff}.nav button{color:#695185;min-height:48px}.nav button.active{background:#d9ff65;color:#342447;box-shadow:0 2px 0 #c9ea70}.nav .abri-tab{background:#eee5ff;color:#6945a3}.nav .abri-tab.active{background:#d9ff65}.nav svg{width:21px;height:21px}.nav button span{font-size:10px}.nav button:hover{background:#e8ddfb}.nav button.active:hover{background:#d9ff65}
.brand-orbit{display:none!important}.brand-scene img{mix-blend-mode:normal!important;object-fit:contain;filter:none!important}.new-welcome .brand-scene{background:transparent}.brand-spark{color:#9778ed}
#brand-intro{background:#f5f0ff!important}.entrance-scene{perspective:700px}.entrance-scene img{animation:brand-arrive 2.1s cubic-bezier(.2,.8,.2,1) both}.entrance-spark{position:absolute;right:14%;top:18%;font-size:27px;color:#d9ff65;animation:brand-spark-arrive 2.1s ease both}
@keyframes brand-arrive{0%{opacity:0;transform:translateY(20px) rotateY(-55deg) scale(.8)}45%{opacity:1;transform:translateY(-4px) rotateY(8deg) scale(1.025)}75%,100%{opacity:1;transform:none}}
@keyframes brand-spark-arrive{0%,25%{opacity:0;transform:scale(0) rotate(-60deg)}55%{opacity:1;transform:scale(1.2) rotate(10deg)}100%{opacity:1;transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.entrance-scene img,.entrance-spark{animation:none!important}}

/* Solid terrain fully occludes actors behind the crest. */
.immersive-room .room-space-art,.wind-hill-mask{opacity:1!important}.terrain-cat{color:#c9b9dc}
/* Alternating brand accents make the card grid easier to scan. */
.today-pair>button:first-child,.home-shortcuts>button:nth-child(3n+1),.grid2>.card:nth-child(even){background:#d9ff65;color:#342447;border-color:transparent}
.today-pair>button:first-child :is(.tile-icon,.tile-arrow,small),.grid2>.card:nth-child(even) :is(h3,p,small,.muted){color:#493275}
.today-pair>button+button{background:#e8dcfc}
.friend-picker>button:nth-child(6n+2):not(.selected),.family-grid>button:nth-child(6n+2):not(.previewing){background:#d9ff65;color:#342447;border-color:#c9ea70}
.path-link .path-icon{background:#d9ff65;color:#493275;border-radius:14px;min-width:42px;height:42px;display:grid;place-items:center}

/* Close-up companion stays clipped inside its own card, below the copy. */
.today-pair>.home-companion-card{isolation:isolate;min-height:220px;overflow:hidden;padding:17px 16px;justify-content:flex-start}
.today-pair>.home-companion-card b{position:relative;z-index:2;margin:0;max-width:100%;font-size:14px}
.today-pair>.home-companion-card small{position:relative;z-index:2;margin-top:6px}
.home-companion-card .home-friend{position:absolute;left:-4px;bottom:-24px;width:190px;height:160px;pointer-events:none;z-index:1;overflow:visible}
.home-companion-card .home-friend .abri{display:block;width:190px;height:160px;max-width:none;transform:none}
.home-companion-card .home-friend .abri-shadow{display:none}
.today-pair>button{min-height:220px}.today-pair .tile-arrow{display:none}
@media(max-width:370px){.home-companion-card .home-friend{width:165px;height:145px;bottom:-22px}.home-companion-card .home-friend .abri{width:165px;height:145px}.today-pair>.home-companion-card b{font-size:12px}.today-pair>.home-companion-card small{font-size:9px}}
.home-companion-card .home-friend{left:-18px;bottom:-55px;width:240px;height:205px}.home-companion-card .home-friend .abri{width:240px;height:205px}
@media(max-width:370px){.home-companion-card .home-friend{left:-22px;bottom:-50px;width:210px;height:185px}.home-companion-card .home-friend .abri{width:210px;height:185px}}

.today-pair>.home-mood-card{background:#eee5fc;isolation:isolate;justify-content:flex-start;padding:17px 16px;overflow:hidden}
.today-pair>.home-mood-card b{position:relative;z-index:2;margin:0;font-size:14px}.today-pair>.home-mood-card small{position:relative;z-index:2;margin-top:6px}
.home-mood-card .mood-heart{position:absolute;left:-5px;bottom:-14px;width:170px;height:151px;z-index:1;pointer-events:none;transform:rotate(-10deg);transform-origin:center bottom}
.mood-heart svg{display:block;width:100%;height:100%}.heart-eyes{transform-origin:90px 77px;animation:heart-blink 6.3s infinite}
@keyframes heart-blink{0%,43%,47%,100%{transform:scaleY(1)}45%{transform:scaleY(.12)}}
.home-mood-card:hover .mood-heart{animation:heart-greet .65s ease-in-out}
@keyframes heart-greet{0%,100%{transform:rotate(-10deg)}45%{transform:rotate(-3deg) translateY(-4px)}}
@media(max-width:370px){.today-pair>.home-mood-card b{font-size:12px}.today-pair>.home-mood-card small{font-size:9px}.home-mood-card .mood-heart{width:145px;height:129px}}
@media(prefers-reduced-motion:reduce){.heart-eyes,.home-mood-card:hover .mood-heart{animation:none!important}}
.today-pair>button.home-mood-card:first-child{background:#eee5fc}
.home-companion-card .home-friend{left:-35px;bottom:-52px;width:270px;height:230px}.home-companion-card .home-friend .abri{width:270px;height:230px}
.home-mood-card .mood-heart{left:-20px;bottom:-32px;width:210px;height:187px;transform:rotate(-10deg)}
.home-mood-card:hover .mood-heart{animation:none}
@media(max-width:370px){.home-companion-card .home-friend{left:-39px;bottom:-48px;width:240px;height:210px}.home-companion-card .home-friend .abri{width:240px;height:210px}.home-mood-card .mood-heart{left:-23px;bottom:-29px;width:184px;height:164px}}

/* A still little face surrounded by continuously rotating sun rays. */
.next-step .hero-sun{width:90px;height:90px;left:19px;top:34px;font-size:0;line-height:0;transform:none;color:#9778ed}
.hero-sun svg{display:block;width:100%;height:100%;overflow:visible}.sun-rays{transform-origin:50px 50px;animation:sun-orbit 24s linear infinite}.sun-eyes{transform-origin:50px 47px;animation:sun-blink 7s infinite}
@keyframes sun-orbit{to{transform:rotate(360deg)}}
@keyframes sun-blink{0%,38%,42%,77%,81%,100%{transform:scaleY(1)}40%,79%{transform:scaleY(.08)}}
@media(max-width:390px){.next-step .hero-sun{width:68px;height:68px;left:15px;top:39px}}
@media(prefers-reduced-motion:reduce){.sun-rays,.sun-eyes{animation:none!important}}
@media(hover:hover) and (pointer:fine){.home-companion-card .eyes,.mood-heart .heart-eyes,.hero-sun .sun-eyes{transition:translate .14s ease-out;will-change:translate}}
@media(prefers-reduced-motion:reduce){.home-companion-card .eyes,.mood-heart .heart-eyes,.hero-sun .sun-eyes{transition:none}}

.next-step .hero-sun{width:108px;height:108px;left:17px;top:28px}
@media(max-width:390px){.next-step .hero-sun{width:80px;height:80px;left:13px;top:35px}}

/* The spiral grows and decelerates to its original angle; the word stays still. */
.brand-motion{position:relative;width:260px;height:260px;isolation:isolate}
.brand-motion .brand-spinning-mark,.brand-motion .brand-still-name{position:absolute;inset:0}
#brand-intro .brand-motion img{position:absolute;inset:0;width:100%;height:100%;animation:none!important;object-fit:contain}
.brand-spinning-mark{clip-path:inset(0 0 32% 0);transform-origin:50% 41%;animation:spiral-unfold 3.25s cubic-bezier(.16,.8,.22,1) both;will-change:transform}
.brand-still-name{clip-path:inset(69% 0 0 0);animation:word-arrive .65s 1.8s both}
@keyframes spiral-unfold{from{transform:scale(.12) rotate(-420deg);opacity:0}12%{opacity:1}to{transform:scale(1) rotate(0deg);opacity:1}}
@keyframes word-arrive{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.brand-spinning-mark,.brand-still-name{animation:none!important;opacity:1;transform:none}}

/* Minimal, consistent outline navigation. */
.ui-icon{fill:none!important;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.ui-icon path{fill:none!important}.nav .ui-icon{width:24px;height:24px;stroke-width:1.65}.path-icon .ui-icon{width:22px;height:22px;transform:rotate(-45deg)}

.rig-sunglasses .abri-body{animation:none!important;transform:none!important}.rig-sunglasses .sparkles{display:none}.sunglasses-rig{pointer-events:none}

.rig-hat .abri-body{animation:none!important;transform:none!important}.rig-hat .sparkles{display:none}.hat-rig{pointer-events:none}

.rig-hat{overflow:visible}.hat-rig .held-cap{transform-box:view-box}

/* The bow rig owns both wrists; only torso breathing pauses during the act. */
.rig-bow .abri-body{animation:none!important;transform:none!important}.rig-bow .sparkles{display:none}.bow-rig,.bow-back{pointer-events:none}

.rig-tie .abri-body{animation:none!important;transform:none!important}.rig-tie .sparkles{display:none}.tie-rig,.tie-back{pointer-events:none}

.rig-scarf .abri-body{animation:none!important;transform:none!important}.rig-scarf .sparkles{display:none}.scarf-rig,.scarf-back{pointer-events:none}

.rig-chef .abri-body{animation:none!important;transform:none!important}.rig-chef .sparkles{display:none}.chef-front,.chef-back{pointer-events:none}

.rig-u12 .abri-body{animation:none!important;transform:none!important}.rig-u12 .sparkles{display:none}.u12-rig,.u12-back{pointer-events:none}

.rig-raincoat .abri-body{animation:none!important;transform:none!important}.rig-raincoat .sparkles{display:none}.raincoat-front,.raincoat-back,.raincoat-rain{pointer-events:none}

.rig-reading .abri-body{animation:none!important;transform:none!important}.rig-reading .sparkles{display:none}.reading-front,.reading-back{pointer-events:none}

.rig-costume .abri-body{animation:none!important;transform:none!important}.rig-costume .sparkles{display:none}.costume-rig,.costume-back{pointer-events:none}

.rig-graduation .abri-body{animation:none!important;transform:none!important}.rig-graduation .sparkles{display:none}.graduation-rig,.graduation-back{pointer-events:none}

.rig-rabbit .abri-body{animation:none!important;transform:none!important}.rig-rabbit .sparkles{display:none}.rabbit-rig,.rabbit-back{pointer-events:none}

.rig-sports-band .abri-body{animation:none!important;transform:none!important}.rig-sports-band .sparkles{display:none}.sports-band-rig,.sports-band-back{pointer-events:none}

.rig-sail-scarf .abri-body{animation:none!important;transform:none!important}.rig-sail-scarf .sparkles{display:none}.sail-scarf-rig,.sail-scarf-back{pointer-events:none}
