:root{--bg:#f6eadb;--card:rgba(255,251,245,0.86);--card-solid:#fffaf3;--ink:#3d2f26;--muted:#8a7766;--line:rgba(120,90,60,0.16);--accent:#d9823b;--accent-ink:#ffffff;--rose:#e9a7a1;--sky:#8fc3ea;--leaf:#8cb369;--shadow:0 10px 30px rgba(80,50,20,0.14);--radius:18px;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#1f1915;--card:rgba(40,32,27,0.86);--card-solid:#2a221d;--ink:#f3e7da;--muted:#b9a594;--line:rgba(255,230,200,0.14);--shadow:0 10px 30px rgba(0,0,0,0.4);color-scheme:dark}}*{box-sizing:border-box}body,html{margin:0;height:100%;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Pretendard,Noto Sans KR,Hiragino Sans,Noto Sans JP,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;overflow:hidden}button,input,select{font:inherit;color:inherit}button{cursor:pointer}.app{position:fixed;inset:0}.scene,.scene-loading{position:absolute!important;inset:0}.scene-loading{background:radial-gradient(circle at 50% 60%,#fff4e6,var(--bg))}.card{background:var(--card);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.topbar{position:absolute;top:12px;left:16px;right:16px;display:flex;justify-content:space-between;align-items:flex-start;gap:10px;pointer-events:none}.topbar>*{pointer-events:auto}.brand{display:flex;gap:10px;align-items:center;background:var(--card);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:999px;padding:6px 14px 6px 8px;box-shadow:var(--shadow)}.brand-mark{font-size:24px}.brand-title{font-weight:700;font-size:15px;display:flex;gap:6px;align-items:center}.pet-name{font-size:12px;color:var(--muted)}.badge{font-size:10px;font-weight:600;padding:2px 7px;border-radius:999px;background:var(--rose);color:#fff}.top-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.segmented{display:inline-flex;background:var(--card);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:999px;padding:3px;box-shadow:var(--shadow)}.segmented button{border:0;background:transparent;padding:7px 12px;border-radius:999px;font-size:13px;white-space:nowrap}.segmented button.on{background:var(--accent);color:var(--accent-ink);font-weight:600}.segmented.small button{padding:5px 9px;font-size:12px}.panel .segmented,.welcome .segmented{box-shadow:none}.chip{border:1px solid var(--line);background:var(--card);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:999px;padding:8px 13px;font-size:13px;box-shadow:var(--shadow);white-space:nowrap}.chip.icon{padding:8px 11px}.chip.wide{width:100%;margin-top:10px;box-shadow:none}.chip.file{display:inline-block;box-shadow:none}.stats{position:absolute;top:74px;left:16px;width:190px;padding:12px 14px;grid-gap:8px;font-size:12px}.stat,.stats{display:grid;gap:8px}.stat{grid-template-columns:52px 1fr;align-items:center;grid-gap:8px}.stat .bar{height:7px;background:var(--line);overflow:hidden}.fill,.stat .bar{border-radius:99px}.fill{height:100%;transition:width .6s ease}.fill.satiety{background:var(--accent)}.fill.energy{background:var(--leaf)}.fill.joy{background:var(--rose)}.stat.bond strong{color:#d0606a;font-size:13px}.actions{position:absolute;left:50%;bottom:40px;transform:translateX(-50%);display:flex;gap:6px;padding:6px;background:var(--card);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);max-width:calc(100vw - 32px);overflow-x:auto;scrollbar-width:none}.actions button{border:0;background:transparent;border-radius:16px;padding:8px 10px;min-width:64px;display:grid;justify-items:center;grid-gap:2px;gap:2px;font-size:12px;white-space:nowrap}.actions button span{font-size:22px}.actions button.on,.actions button:hover{background:rgba(217,130,59,.16)}.actions button:active{transform:scale(.96)}.disclaimer{bottom:10px;left:16px;margin:0;text-align:center;font-size:11px;color:var(--ink);opacity:.7;text-shadow:0 1px 2px rgba(255,255,255,.6);pointer-events:none}.disclaimer,.panel{position:absolute;right:16px}.panel{top:74px;bottom:120px;width:320px;padding:14px 16px;overflow-y:auto;z-index:5}.panel-head{display:flex;justify-content:space-between;align-items:center;position:-webkit-sticky;position:sticky;top:-14px;z-index:3;margin:-14px -16px 6px;padding:12px 16px 8px;background:var(--card-solid);border-bottom:1px solid var(--line)}.panel h2{font-size:16px;margin:0}.panel h3{font-size:13px;margin:18px 0 8px;color:var(--muted)}.settings{display:grid;grid-gap:16px;gap:16px;margin-top:10px}.field{display:grid;grid-gap:6px;gap:6px;font-size:13px}.field.inline{grid-template-columns:auto 1fr;align-items:center;margin-top:8px}.field input,.field select{border:1px solid var(--line);background:var(--card-solid);border-radius:12px;padding:9px 12px}.swatches{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:8px;gap:8px}.swatch{display:grid;justify-items:center;grid-gap:4px;gap:4px;font-size:11px;text-align:center}.swatch input{width:40px;height:40px;border:1px solid var(--line);border-radius:50%;padding:0;background:none;overflow:hidden}.swatch input::-webkit-color-swatch-wrapper{padding:0}.swatch input::-webkit-color-swatch{border:0;border-radius:50%}.slider{display:grid;grid-template-columns:110px 1fr;align-items:center;grid-gap:8px;gap:8px;font-size:12px;margin:6px 0}.slider input{width:100%;accent-color:var(--accent)}.check{display:flex;gap:8px;align-items:center;font-size:13px;margin:4px 0 8px}.photo{display:block;width:100%;margin-top:10px;border-radius:12px;cursor:crosshair}.photo.empty{display:none}.muted{color:var(--muted);line-height:1.55}.small{font-size:12px}.overlay{position:absolute;inset:0;display:grid;place-items:center;background:rgba(246,234,219,.35);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);padding:16px}.welcome{width:min(420px,100%);padding:26px 24px 20px;display:grid;grid-gap:14px;gap:14px;background:var(--card-solid)}.welcome h1{margin:0;font-size:22px;text-align:center}.welcome-mark{font-size:40px;text-align:center}.welcome p{margin:0;font-size:13px}.welcome-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.primary{border:0;background:var(--accent);color:var(--accent-ink);border-radius:999px;padding:11px 20px;font-weight:700}@media (max-width:720px){.topbar{flex-direction:column;align-items:stretch}.brand{align-self:flex-start}.top-actions{justify-content:flex-start}.stats{top:auto;bottom:128px;left:16px;width:170px;padding:9px 12px;gap:5px;font-size:11px}.panel{top:auto;left:0;right:0;bottom:0;width:auto;max-height:62vh;border-radius:22px 22px 0 0;padding-bottom:28px}.actions{bottom:34px}}.app.clean>:not(.scene):not(.scene-loading){display:none!important}.describe{margin-top:6px;padding:12px;border-radius:14px;background:rgba(217,130,59,.08);border:1px solid rgba(217,130,59,.22)}.describe h3{margin:0 0 4px!important;color:var(--ink)!important;font-size:14px!important}.describe p{margin:0 0 8px}.describe textarea{width:100%;resize:vertical;border:1px solid var(--line);background:var(--card-solid);border-radius:12px;padding:10px 12px;font:inherit;font-size:14px;line-height:1.5;color:var(--ink)}.describe-row{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:8px}.describe-row .primary{margin-left:auto}.primary.small{padding:8px 16px;font-size:13px}.primary:disabled{opacity:.5;cursor:default}.chip.mic{box-shadow:none}.chip.mic.on{background:#d0606a;color:#fff;border-color:transparent}.chip.accent{background:var(--accent);color:var(--accent-ink);border-color:transparent;font-weight:600}.examples{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.example{border:1px dashed rgba(217,130,59,.5);background:transparent;border-radius:999px;padding:4px 10px;font-size:12px;color:var(--ink)}.describe-result{margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}.describe-result ul{list-style:none;padding:0;margin:6px 0;display:grid;grid-gap:4px;gap:4px;font-size:13px}.describe-result li{display:flex;justify-content:space-between}.describe-result b{color:var(--accent)}.swatch-change{display:inline-flex;align-items:center;gap:4px}.swatch-change i{display:inline-block;width:14px;height:14px;border-radius:50%;border:1px solid var(--line)}.strong{font-weight:700}.tiny{font-size:11px}.app.phase-boot,.app.phase-welcome .overlay{background:linear-gradient(180deg,#bcd9f2,#f6dfe0 60%,#fbeedd)}.welcome input{font-size:16px}.style-options{display:grid;grid-gap:6px;gap:6px}.style-option{display:grid;grid-gap:2px;gap:2px;text-align:left;border:1px solid var(--line);background:var(--card-solid);border-radius:12px;padding:9px 12px}.style-option small{color:var(--muted);font-size:11.5px}.style-option.on{border-color:var(--accent);box-shadow:0 0 0 2px rgba(217,130,59,.25)}.style-option.on b{color:var(--accent)}.bridge-loader{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;grid-gap:6px;gap:6px;padding:16px;background:linear-gradient(180deg,#bcd9f2,#f6dfe0 60%,#fbeedd);transition:opacity .9s ease;z-index:5}.bridge-loader.leaving{opacity:0;pointer-events:none}.bridge-svg{width:min(560px,92vw);height:auto;border-radius:24px;box-shadow:0 16px 40px rgba(120,90,80,.18)}.bridge-text{margin:14px 0 0;font-size:17px;font-weight:700;color:#5a4438;text-align:center}.bridge-sub{margin:0;font-size:13px;color:#8a7766;animation:breathe 2.4s ease-in-out infinite}.rainbow path{stroke-dasharray:1;stroke-dashoffset:1;stroke-linecap:round;animation:draw-band 1.6s cubic-bezier(.5,0,.2,1) forwards}.sparkles path{opacity:0;transform-box:fill-box;transform-origin:center;animation:twinkle 2s ease-in-out infinite}.walker{opacity:0;animation:fade-in .8s ease 1.1s forwards}.trot{animation:bob .36s ease-in-out infinite alternate}.leg{transform-box:fill-box;transform-origin:top center}.leg.a{animation:step .36s ease-in-out infinite alternate}.leg.b{animation:step .36s ease-in-out infinite alternate-reverse}@keyframes draw-band{to{stroke-dashoffset:0}}@keyframes twinkle{0%,to{opacity:0;transform:scale(.6)}50%{opacity:1;transform:scale(1)}}@keyframes fade-in{to{opacity:1}}@keyframes bob{to{transform:translateY(-1.6px)}}@keyframes step{0%{transform:rotate(-22deg)}to{transform:rotate(22deg)}}@keyframes breathe{50%{opacity:.55}}@media (prefers-reduced-motion:reduce){.rainbow path{animation:none;stroke-dashoffset:0}.walker{opacity:1}.bridge-sub,.leg,.sparkles path,.trot,.walker{animation:none}}@media (max-width:720px){.chip-label{display:none}.segmented button{padding:7px 10px}}.rebuild-indicator{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:10px;padding:12px 18px;border-radius:999px;background:var(--card-solid);border:1px solid var(--line);box-shadow:var(--shadow);font-size:14px;pointer-events:none;z-index:4}.rainbow-spinner{width:22px;height:22px;border-radius:50%;background:conic-gradient(#f4a3a8,#f7c08a,#f6e08f,#b9dfa0,#9fcfe8,#a9b6ec,#c7a8e6,#f4a3a8);-webkit-mask:radial-gradient(farthest-side,transparent 58%,#000 60%);mask:radial-gradient(farthest-side,transparent 58%,#000 60%);animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.rainbow-spinner{animation-duration:3s}}.app.phase-ended,.app.phase-home,.app.phase-welcome{background:linear-gradient(180deg,#bcd9f2,#f6dfe0 58%,#fbeedd)}.call-home{position:absolute;inset:0;overflow-y:auto;display:flex;flex-direction:column;align-items:center;gap:16px;padding:48px 16px 24px}.call-home-settings{position:absolute;top:14px;right:16px}.call-card{display:grid;justify-items:center;grid-gap:6px;gap:6px;text-align:center;padding:8px 0 4px}.call-card h1{margin:10px 0 0;font-size:28px}.pet-avatar{border-radius:50%;box-shadow:0 10px 30px rgba(120,80,60,.22)}.call-where{margin:0;color:var(--muted);font-size:14px}.call-button{margin-top:22px;width:78px;height:78px;border-radius:50%;border:0;background:#3fbf6a;box-shadow:0 10px 26px rgba(40,140,80,.4);font-size:34px;animation:call-breathe 2.4s ease-in-out infinite}.call-button:active{transform:scale(.95)}.call-button-label{margin:4px 0 0;font-weight:700}@keyframes call-breathe{50%{box-shadow:0 10px 36px rgba(40,160,90,.6)}}.call-log{width:min(420px,100%);padding:12px 16px}.call-log h2{font-size:13px;margin:0 0 6px;color:var(--muted)}.call-log ul{list-style:none;padding:0;margin:0;display:grid;grid-gap:6px;gap:6px;font-size:14px}.call-log li{display:flex;justify-content:space-between}.call-disclaimer{margin-top:auto;font-size:11px;color:var(--muted);text-align:center;max-width:420px}.visitor-banner{margin:0 0 10px;padding:6px 12px;border-radius:999px;background:var(--card);font-size:13px}.visitor-cta{flex-shrink:0;text-decoration:none;color:var(--ink)}.ring-pulse{position:relative;width:52px;height:52px;margin-top:14px;display:grid;place-items:center}.ring-pulse span{position:relative;z-index:1;font-size:26px}.ring-pulse:after,.ring-pulse:before{content:"";position:absolute;inset:0;border-radius:50%;background:rgba(63,191,106,.35);animation:ring 2.4s ease-out infinite}.ring-pulse:after{animation-delay:1.2s}@keyframes ring{0%{transform:scale(.6);opacity:.9}to{transform:scale(1.9);opacity:0}}.call-vignette{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 45%,transparent 58%,rgba(30,20,15,.28) 100%);z-index:1}.call-top{position:absolute;top:0;left:0;right:0;justify-content:space-between;padding:14px 16px 26px;background:linear-gradient(180deg,rgba(20,14,10,.45),transparent);color:#fff;z-index:2}.call-id,.call-top{display:flex;align-items:center}.call-id{gap:10px}.call-id b{display:block;font-size:16px;text-shadow:0 1px 3px rgba(0,0,0,.4)}.call-id small{font-size:12px;opacity:.9}.call-meta{display:flex;align-items:center;gap:8px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.call-live{color:#ff6b6b;font-size:10px;animation:breathe 1.6s ease-in-out infinite}.call-timer{font-size:14px;font-weight:600}.call-more{border:0;background:rgba(255,255,255,.22);color:#fff;border-radius:999px;width:34px;height:34px;font-size:18px}.self-view{top:116px;right:16px;width:96px;height:128px;object-fit:cover;border-radius:14px;transform:scaleX(-1);border:2px solid rgba(255,255,255,.85);box-shadow:var(--shadow);background:#222}.call-controls,.self-view{position:absolute;z-index:2}.call-controls{left:0;right:0;bottom:0;display:grid;justify-items:center;grid-gap:12px;gap:12px;padding:28px 12px 22px;background:linear-gradient(0deg,rgba(20,14,10,.5),transparent)}.call-quick{display:flex;gap:8px}.call-quick button{border:0;border-radius:999px;padding:7px 14px;background:rgba(255,255,255,.88);font-size:13px;display:flex;gap:4px;align-items:center}.call-buttons{display:flex;gap:14px;align-items:flex-start}.round{position:relative;display:grid;justify-items:center;grid-gap:4px;gap:4px;border:0;background:none;color:#fff;font-size:11px;width:58px}.round>span{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:rgba(255,255,255,.24);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:22px}.round.on>span{background:rgba(255,255,255,.92)}.round.hangup>span{background:#e5484d;transform:rotate(135deg)}.round small{text-shadow:0 1px 3px rgba(0,0,0,.5);white-space:nowrap}.voice-meter{position:absolute;left:8px;right:8px;top:47px;height:3px;border-radius:2px;background:#3fbf6a;transform-origin:left center;transition:transform .08s linear}.call-menu{position:absolute;top:62px;right:16px;display:grid;padding:6px;z-index:3;background:var(--card-solid)}.call-menu button{border:0;background:none;text-align:left;padding:10px 14px;border-radius:10px;font-size:14px}.call-menu button:hover{background:var(--soft,rgba(217,130,59,.1))}.call-summary-wrap{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}.call-summary{width:min(400px,100%);padding:24px;display:grid;justify-items:center;grid-gap:6px;gap:6px;text-align:center;background:var(--card-solid)}.call-summary h2{margin:0;font-size:20px}.call-sum-lines{list-style:none;padding:0;margin:6px 0;display:grid;grid-gap:4px;gap:4px;font-size:14px}.call-captures{width:100%;display:grid;grid-gap:6px;gap:6px}.call-captures>div{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:6px;gap:6px}.call-captures img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px}.call-goodbye{margin:8px 0 4px;color:var(--muted);font-size:14px}.call-summary-actions{display:flex;gap:10px;margin-top:6px}.account{display:grid;grid-gap:10px;gap:10px;padding-top:10px;border-top:1px solid var(--line)}.account h3{margin:4px 0 0}.account-row{display:flex;justify-content:space-between;align-items:center;gap:8px}.save-state{font-size:11px;color:var(--muted)}.save-state.error{color:#d0606a}.login-buttons{display:grid;grid-gap:8px;gap:8px;width:100%;max-width:320px}.login{display:block;text-align:center;border-radius:12px;padding:11px 14px;font-weight:600;text-decoration:none;border:1px solid var(--line);font-size:14px}.login.kakao{background:#fee500;color:#191919;border-color:#fee500}.login.google{background:#fff;color:#1f1f1f}.login.dev{background:var(--card-solid);color:var(--ink)}.copy-row{display:flex;gap:6px}.copy-row input{flex:1 1;min-width:0}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:6px;gap:6px}.photo-grid figure{margin:0;position:relative;border-radius:10px;overflow:hidden;border:2px solid transparent}.photo-grid figure.framed{border-color:var(--accent)}.photo-grid img{width:100%;aspect-ratio:1;object-fit:cover;display:block}.photo-grid figcaption{display:flex;justify-content:space-between;font-size:10px}.photo-grid figcaption button{border:0;background:none;padding:4px 2px;color:var(--accent);font-size:10.5px}.welcome-login a{color:var(--accent)}@media (prefers-reduced-motion:reduce){.call-button,.call-live,.ring-pulse:after,.ring-pulse:before{animation:none}}.auto-match{margin-top:12px;padding:12px;border-radius:14px;background:rgba(143,195,234,.12);border:1px solid rgba(143,195,234,.4);display:grid;grid-gap:8px;gap:8px}.auto-match h3{margin:0!important;color:var(--ink)!important;font-size:14px!important}.auto-match p{margin:0}.auto-row{display:flex;justify-content:space-between;align-items:center;gap:8px}.auto-thumbs{display:flex;gap:6px}.auto-thumbs img{width:48px;height:48px;object-fit:cover;border-radius:8px}.auto-message,.call-news{line-height:1.5}.call-news{margin:10px 0 0;max-width:320px;padding:8px 14px;border-radius:14px;background:rgba(255,255,255,.6);font-size:13.5px}.call-news b{display:block;font-size:11px;color:var(--accent)}.call-peers{position:absolute;top:70px;left:16px;right:152px;display:flex;flex-wrap:wrap;align-items:center;gap:6px;z-index:2;color:#fff;font-size:12.5px;text-shadow:0 1px 3px rgba(0,0,0,.45)}.call-peers .peer{padding:3px 10px;border-radius:999px;background:rgba(255,255,255,.22);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.call-peers .peer.me{background:rgba(255,255,255,.38)}.call-peers .muted{color:rgba(255,255,255,.8)}.call-reactions{display:flex;gap:6px}.call-reactions button{border:0;width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.24);font-size:19px;line-height:1}.call-reactions button:active{transform:scale(.9)}.floaters{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:3}.floater{position:absolute;bottom:190px;display:grid;justify-items:center;grid-gap:2px;gap:2px;animation:float-up 2.8s ease-out forwards}.floater b{font-size:40px;line-height:1}.floater small{padding:2px 8px;border-radius:999px;background:rgba(0,0,0,.35);color:#fff;font-size:11px;white-space:nowrap}@keyframes float-up{0%{transform:translateY(20px) scale(.6);opacity:0}15%{transform:translateY(0) scale(1.1);opacity:1}to{transform:translateY(-46vh) scale(1);opacity:0}}@media (prefers-reduced-motion:reduce){.floater{animation:fade-only 2.8s ease-out forwards}@keyframes fade-only{0%,70%{opacity:1}to{opacity:0}}}.call-live-now{margin:10px 0 0;padding:7px 14px;border-radius:999px;background:#e8f7ec;color:#1f6b3a;font-size:13.5px;font-weight:600}.call-live-now:before{content:"● ";color:#2fb35b}.call-button.join{background:#2fb35b}.guest-name{margin-top:12px;width:min(280px,100%)}.field textarea,.note-composer textarea{border:1px solid var(--line);background:var(--card-solid);color:var(--ink);border-radius:12px;padding:10px 12px;font:inherit;font-size:14px;resize:vertical;width:100%}button.link{border:0;background:none;padding:4px 0;color:var(--accent);text-decoration:underline;text-underline-offset:3px;cursor:pointer}.chip.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.chip.ghost{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;color:var(--muted)}.inbox-chip{margin-top:10px;display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--ink);font:inherit;font-size:14px}.inbox-chip b{padding:1px 8px;border-radius:999px;background:var(--accent);color:var(--accent-ink);font-size:12px}.inbox-chip.unread{border-color:var(--accent);box-shadow:0 0 0 3px rgba(217,130,59,.15)}.messages{display:grid;grid-gap:12px;gap:12px}.message-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:10px;gap:10px}.message{display:grid;grid-gap:6px;gap:6px;padding:12px 14px;border-radius:16px}.message.pet{background:linear-gradient(160deg,rgba(143,195,234,.18),rgba(233,167,161,.18));border:1px solid var(--line)}.message.me{margin-left:24px;background:var(--card-solid);border:1px dashed var(--line)}.message-body{margin:0;white-space:pre-wrap;line-height:1.6}.message-meta{margin:0;display:flex;flex-wrap:wrap;gap:4px 10px;font-size:11.5px;color:var(--muted)}.message-actions,.message-feedback{display:flex;flex-wrap:wrap;gap:6px}.message-feedback .chip{font-size:12px;padding:4px 10px}.message-settings{display:grid;grid-gap:10px;gap:10px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.message-settings h3{margin:0}.note-composer{width:100%;display:grid;grid-gap:8px;gap:8px;text-align:left}.note-sent{text-align:center}.note-sent p{margin:4px 0}.help-card{position:relative;width:100%;text-align:left;padding:12px 14px;border-radius:14px;background:#fff4e5;border:1px solid #f0c48a;color:#4a3420;font-size:14px}.help-card p{margin:6px 0}.help-card ul{margin:6px 0 0;padding-left:18px;display:grid;grid-gap:6px;gap:6px}.help-card a{color:#8a4b12}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .help-card{background:#3a2a1a;border-color:#7a5a30;color:#f6e3cc}:root:not([data-theme=light]) .help-card a{color:#ffc98a}}.app-install,.support{display:grid;grid-gap:8px;gap:8px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.app-install h3,.support h3{margin:0}.support-amounts{display:flex;flex-wrap:wrap;gap:8px}.error-text{color:#c2410c}.pay-result{text-align:center;gap:10px}.pay-result h1{font-size:22px}.notices{position:absolute;top:70px;left:50%;transform:translateX(-50%);width:min(440px,calc(100vw - 32px));display:grid;grid-gap:8px;gap:8px;z-index:6;pointer-events:none}.app.phase-call .notices{top:104px;left:16px;right:152px;width:auto;transform:none}.app.phase-call .notices.below-peers{top:138px}.notice{pointer-events:auto;display:flex;align-items:flex-start;gap:8px;background:var(--card-solid);color:var(--ink);border:1px solid var(--line);border-radius:14px;padding:10px 8px 10px 14px;box-shadow:var(--shadow);font-size:14px;line-height:1.45;animation:drop-in .3s ease}.notice.tip{font-size:13px}.notice>span{flex:1 1;padding-top:2px}.notice-close{flex-shrink:0;border:0;background:transparent;color:var(--muted);width:28px;height:28px;border-radius:50%;font-size:14px;line-height:1;cursor:pointer}.notice-close:focus-visible,.notice-close:hover{background:var(--line)}@keyframes drop-in{0%{opacity:0;transform:translateY(-8px)}}@media (prefers-reduced-motion:reduce){.notice{animation:none}}.help-close{position:absolute;top:6px;right:6px}.place-tools{position:absolute;top:72px;right:16px;z-index:3;display:grid;justify-items:end;grid-gap:8px;gap:8px}.place-switch{border:0;border-radius:999px;padding:7px 13px;background:rgba(255,255,255,.88);color:#3d2f26;font:inherit;font-size:13px;box-shadow:0 4px 14px rgba(0,0,0,.15)}.place-switch:active{transform:scale(.96)}.place-pick{margin-top:14px;display:grid;justify-items:center;grid-gap:6px;gap:6px}.profile-chip{margin-top:10px;padding:8px 16px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--ink);font:inherit;font-size:14px}.profile-editor{display:grid;grid-gap:10px;gap:10px}.profile-editor h3{margin:8px 0 0}.trait{display:grid;grid-gap:2px;gap:2px}.trait-name{font-size:13px;font-weight:600}.trait input[type=range]{width:100%;accent-color:var(--accent)}.trait-ends{display:flex;justify-content:space-between;color:var(--muted)}.habit-chips{display:flex;flex-wrap:wrap;gap:6px}.habit-chips .chip{font-size:13px}.decor-top{position:absolute;top:0;left:0;right:0;z-index:4;display:flex;align-items:center;gap:12px;padding:14px 16px 18px;background:linear-gradient(180deg,rgba(20,14,10,.5),transparent);color:#fff}.decor-top>div{flex:1 1;display:grid;grid-gap:2px;gap:2px}.decor-top small{opacity:.9;font-size:12px;line-height:1.4}.decor-sheet{position:absolute;left:0;right:0;bottom:0;z-index:4;padding:14px 12px 20px;background:var(--card-solid);border-radius:20px 20px 0 0;box-shadow:0 -8px 24px rgba(0,0,0,.12)}.decor-shelf{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:8px;gap:8px}.decor-item{display:grid;justify-items:center;grid-gap:2px;gap:2px;padding:8px 4px;border:1px solid var(--line);border-radius:14px;background:var(--card);color:var(--ink);font:inherit}.decor-item span{font-size:26px;line-height:1.1}.decor-item small{font-size:11.5px;text-align:center}.decor-item:disabled{opacity:.45}.decor-count{margin:8px 0 0;text-align:center}.decor-selected{display:grid;grid-gap:10px;gap:10px;justify-items:center}.decor-selected-name{font-weight:600}.decor-colors{display:flex;gap:10px}.swatch-dot{width:34px;height:34px;border-radius:50%;border:2px solid var(--line)}.swatch-dot.on{border-color:var(--accent);box-shadow:0 0 0 3px rgba(217,130,59,.25)}.decor-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.app.phase-welcome .scene,.app.phase-welcome .scene-loading{bottom:auto!important;height:46vh}.app.phase-welcome{background:#efe6da}.onboarding{position:absolute;inset:0;z-index:10;display:flex;align-items:flex-end;justify-content:center;pointer-events:none}.onboarding-sheet{pointer-events:auto;width:min(560px,100%);max-height:56vh;overflow-y:auto;border-radius:22px 22px 0 0;padding:14px 16px 22px;background:var(--card-solid);box-shadow:0 -10px 30px rgba(80,50,20,.14)}.onboarding.step-name .onboarding-sheet{max-height:66vh}.onboarding-head{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:36px;position:-webkit-sticky;position:sticky;top:-14px;z-index:3;margin:-14px -16px 0;padding:12px 16px 6px;background:var(--card-solid)}.onboarding-body{display:grid;grid-gap:12px;gap:12px}.onboarding-body h1{font-size:21px;margin:4px 0}.onboarding-body h2{font-size:19px;margin:4px 0 0}.species-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));grid-gap:10px;gap:10px}.species-card{display:grid;justify-items:center;grid-gap:6px;gap:6px;padding:10px 6px;border:1px solid var(--line);border-radius:16px;background:var(--card);color:var(--ink);font:inherit;font-weight:600}.species-card.on{border-color:var(--accent);box-shadow:0 0 0 3px rgba(217,130,59,.2)}.breed-chips{display:flex;flex-wrap:wrap;gap:8px}.onboarding-actions{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}.coat-swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));grid-gap:8px;gap:8px}.coat{display:grid;justify-items:center;grid-gap:4px;gap:4px;padding:6px 4px;border:1px solid var(--line);border-radius:14px;background:var(--card);color:var(--ink);font:inherit}.coat i{width:34px;height:34px;border-radius:50%;border:1px solid rgba(0,0,0,.12)}.coat small{font-size:11.5px;text-align:center;line-height:1.25}.coat.on{border-color:var(--accent);box-shadow:0 0 0 3px rgba(217,130,59,.2)}.custom-colors summary{cursor:pointer;font-size:13px;color:var(--muted)}.custom-colors .swatches{margin-top:8px}.wardrobe section h3{margin:14px 0 8px}.wear-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(70px,1fr));grid-gap:8px;gap:8px}.wear{display:grid;justify-items:center;grid-gap:2px;gap:2px;padding:8px 4px;border:1px solid var(--line);border-radius:14px;background:var(--card);color:var(--ink);font:inherit}.wear span{font-size:22px;line-height:1.1}.wear small{font-size:11px;text-align:center;line-height:1.25}.wear.on{border-color:var(--accent);box-shadow:0 0 0 3px rgba(217,130,59,.2)}.wear-colors{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.wear-colors .swatch-dot{width:28px;height:28px}.swatch-dot.custom{position:relative;overflow:hidden;background:conic-gradient(#e5534b,#f6d24a,#6dbf7b,#4f8fd6,#8a6fd1,#e5534b)}.swatch-dot.custom input{position:absolute;inset:0;opacity:0;cursor:pointer}.pattern-chips{display:flex;flex-wrap:wrap;gap:6px}.chat-sheet{position:absolute;left:0;right:0;bottom:0;z-index:5;display:flex;flex-direction:column;max-height:52vh;background:var(--card-solid);border-radius:20px 20px 0 0;box-shadow:0 -8px 24px rgba(0,0,0,.14);padding:10px 12px 14px}@media (min-width:720px){.chat-sheet{left:auto;right:16px;bottom:16px;width:380px;border-radius:20px}}.chat-head{display:flex;align-items:center;gap:8px;padding-bottom:6px;border-bottom:1px solid var(--line)}.chat-head b{flex:1 1}.chat-speak{display:flex;align-items:center;gap:4px;color:var(--muted)}.chat-lines{flex:1 1;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding:10px 2px;min-height:120px}.bubble{margin:0;max-width:82%;padding:8px 12px;border-radius:16px;line-height:1.5;font-size:14.5px;white-space:pre-wrap}.bubble.pet{align-self:flex-start;background:linear-gradient(160deg,rgba(143,195,234,.25),rgba(233,167,161,.25));border-bottom-left-radius:4px}.bubble.user{align-self:flex-end;background:var(--accent);color:var(--accent-ink);border-bottom-right-radius:4px}.bubble.typing{opacity:.7;font-style:italic}.chat-ai,.chat-notice{text-align:center}.chat-ai{margin:0 0 6px;font-size:11px;color:var(--muted)}.chat-input{display:flex;gap:8px}.chat-input input{flex:1 1;min-width:0;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:999px;padding:10px 14px;font:inherit;font-size:15px}.chat-mic{flex-shrink:0;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--card);font-size:18px}.chat-mic.on{background:#e5534b;border-color:#e5534b;color:#fff;animation:breathe 1.4s ease-in-out infinite}.chat-notice{text-align:left;padding:8px 10px;border-radius:12px;background:#fff4e5;color:#6b4a22;border:1px solid #f0c48a}.voice-clips{display:grid;grid-gap:10px;gap:10px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.voice-clips h3{margin:0}.voice-slot{display:grid;grid-gap:6px;gap:6px;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:var(--card)}.voice-slot-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px}.voice-slot-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.clip-editor{display:grid;grid-gap:6px;gap:6px}.clip-wave{width:100%;height:56px;border-radius:10px;background:var(--card-solid)}.trail-editor{display:grid;grid-gap:10px;gap:10px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.trail-editor h3{margin:0}.trail-list{display:grid;grid-gap:8px;gap:8px}.trail-item{display:flex;gap:10px;align-items:center}.trail-item img{width:64px;height:64px;object-fit:cover;border-radius:10px;flex-shrink:0}.trail-item-body{flex:1 1;display:grid;grid-template-columns:1fr auto;grid-gap:6px;gap:6px;align-items:center}.trail-item-body input{border:1px solid var(--line);background:var(--card-solid);color:var(--ink);border-radius:10px;padding:8px 10px;font:inherit;font-size:14px}.chip.file.disabled{opacity:.6}.walk-bar{position:absolute;left:12px;right:12px;bottom:18px;z-index:5;display:grid;grid-template-columns:72px 1fr;grid-gap:8px 12px;gap:8px 12px;align-items:center;padding:12px;border-radius:18px;background:var(--card-solid);box-shadow:var(--shadow)}@media (min-width:720px){.walk-bar{left:auto;width:420px}}.walk-bar img{width:72px;height:72px;object-fit:cover;border-radius:12px}.walk-text p{margin:2px 0 0;font-weight:600;line-height:1.4}.walk-buttons{grid-column:1/-1;display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}.occasion-banner{margin:4px 0 2px;padding:10px 14px;border-radius:14px;font-weight:600;line-height:1.45;background:#fff1d6;color:#6b4a1c}.occasion-banner.met{background:#ffe4ec;color:#7a2f45}.occasion-banner.star{background:#e9e6f8;color:#3f3a66;font-weight:500}.occasion-soon{margin:0;color:var(--muted)}.share-section{display:grid;grid-gap:8px;gap:8px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.share-section h3{margin:0}.call-home .share-section{max-width:420px;margin:12px auto 0;padding:14px 16px;border:0;border-radius:18px;background:var(--card-solid);text-align:left}.ar-overlay{position:fixed;inset:0;z-index:50;display:flex;flex-direction:column;justify-content:space-between;padding:max(14px,env(safe-area-inset-top)) 14px max(18px,env(safe-area-inset-bottom));pointer-events:none;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.5)}.ar-bar,.ar-overlay button,.ar-top{pointer-events:auto}.ar-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.ar-hint{align-self:center;margin:auto 0 12px;padding:8px 14px;border-radius:999px;background:rgba(0,0,0,.35);text-align:center;font-size:15px}.ar-bar{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.ar-overlay .chip{text-shadow:none}.neighbor-card{position:absolute;left:12px;right:12px;bottom:18px;z-index:5;display:grid;grid-template-columns:64px 1fr;grid-gap:10px 12px;gap:10px 12px;align-items:center;padding:14px;border-radius:18px;background:var(--card-solid);box-shadow:var(--shadow)}@media (min-width:720px){.neighbor-card{left:auto;width:400px}}.neighbor-card .notice-close{position:absolute;top:8px;right:8px}.neighbor-text{display:grid;grid-gap:2px;gap:2px;padding-right:24px}.neighbor-text p{margin:4px 0 0;line-height:1.4}.neighbor-actions{grid-column:1/-1;display:flex;justify-content:flex-end}.flower-news{margin:0;color:#7a5a1c}.neighbor-setting .check{display:flex;gap:8px;align-items:center}.lantern-banner{display:grid;grid-gap:6px;gap:6px;justify-items:center;margin:4px 0;padding:12px 14px;border-radius:16px;background:linear-gradient(160deg,#3b3f6b,#7a5a78);color:#fff3e0;text-align:center}.lantern-banner p{margin:0;font-weight:600;line-height:1.45}.lantern-banner small{opacity:.85}.call-id small.lantern-live{display:block;color:#ffe2b8}.place-switch.lantern-chip{background:#ffcf8a}.friend-badge{margin-left:8px;padding:2px 8px;border-radius:999px;background:#ffe9c7;color:#8a5a1c;font-size:12px;font-weight:600}.neighbor-actions{flex-wrap:wrap;gap:6px;align-items:center}.friend-requests{display:grid;grid-gap:8px;gap:8px;width:100%;max-width:420px}.friend-request{display:grid;grid-template-columns:40px 1fr;grid-gap:6px 10px;gap:6px 10px;align-items:center;padding:10px 12px;border-radius:14px;background:var(--card-solid);text-align:left}.friend-request p{margin:0}.friend-request-buttons{grid-column:2;display:flex;gap:6px}.friend-list{display:grid;grid-gap:8px;gap:8px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.friend-list h3{margin:0}.friend-row{display:grid;grid-template-columns:40px 1fr auto auto;grid-gap:8px;gap:8px;align-items:center}.home-chips{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.comfort{display:grid;grid-gap:14px;gap:14px}.comfort-compose{display:grid;grid-gap:8px;gap:8px;padding:12px;border-radius:16px;background:var(--card-solid)}.comfort-compose input{border:1px solid var(--line);background:var(--card-solid);color:var(--ink);border-radius:10px;padding:9px 10px;font:inherit}.comfort-compose-foot{display:flex;gap:10px;align-items:center;justify-content:space-between}.comfort-scope{justify-self:start}.comfort-list{display:grid;grid-gap:10px;gap:10px}.comfort-post{display:grid;grid-gap:6px;gap:6px;padding:12px 14px;border-radius:16px;background:var(--card-solid);box-shadow:var(--shadow)}.comfort-post header{display:flex;justify-content:space-between;align-items:center}.comfort-more{border:0;background:none;color:var(--muted);font-size:18px;cursor:pointer}.comfort-body{margin:0;font-size:16px;line-height:1.5}.comfort-menu,.comfort-post footer{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.comfort-hugs{flex-basis:100%;color:var(--muted)}.app.phase-frame{background:#000}.frame-mode{position:absolute;inset:0;z-index:6;transition:background 2s}.frame-mode.night{background:rgba(8,10,30,.5)}.frame-corner{position:absolute;left:max(18px,env(safe-area-inset-left));bottom:max(18px,env(safe-area-inset-bottom));display:grid;grid-gap:2px;gap:2px;max-width:min(70vw,420px);padding:10px 14px;border-radius:16px;background:rgba(20,20,30,.32);color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.4);pointer-events:none}.frame-corner b{font-size:18px}.frame-corner span{font-size:28px;font-weight:300;letter-spacing:.02em}.frame-corner small{opacity:.9;line-height:1.4}.frame-mode.night .frame-corner{opacity:.55}.frame-exit{position:absolute;top:max(16px,env(safe-area-inset-top));right:16px}.journal{display:grid;grid-gap:14px;gap:14px}.journal-progress{display:grid;grid-gap:8px;gap:8px}.journal-dots{display:flex;flex-wrap:wrap;gap:4px}.journal-dots span{width:10px;height:10px;border-radius:50%;background:var(--line)}.journal-dots span.past{background:#e9dfd2}.journal-dots span.on{background:#e3a35a}.journal-dots span.today{outline:2px solid #e3a35a;outline-offset:1px}.journal-letter{padding:14px 16px;border-radius:16px;background:linear-gradient(160deg,#fff6e8,#fdeef2);box-shadow:var(--shadow)}.journal-letter p{margin:6px 0 0;line-height:1.6}.journal-today{display:grid;grid-gap:8px;gap:8px}.journal-q{margin:0;font-weight:600;line-height:1.5}.journal-today textarea{border:1px solid var(--line);background:var(--card-solid);color:var(--ink);border-radius:12px;padding:10px 12px;font:inherit;resize:vertical}.journal-past{display:grid;grid-gap:8px;gap:8px}.journal-entry p{margin:2px 0 0;white-space:pre-wrap}.journal-stop{justify-self:start;color:var(--muted)}.memory-video{display:grid;grid-gap:10px;gap:10px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.memory-video h3{margin:0}.video-progress{position:relative;height:30px;border-radius:999px;background:var(--line);overflow:hidden}.video-progress span{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,#f6b26b,#e3a35a);transition:width .3s}.video-progress small{position:relative;display:block;line-height:30px;text-align:center}.video-preview{width:min(100%,320px);aspect-ratio:9/16;border-radius:16px;background:#000;justify-self:center}.video-actions{gap:8px}.siblings-row,.video-actions{display:flex;justify-content:center}.siblings-row{gap:10px;flex-wrap:wrap}.sibling{display:grid;justify-items:center;grid-gap:2px;gap:2px;padding:4px 6px;border:0;border-radius:14px;background:none;color:var(--ink);cursor:pointer;opacity:.75}.sibling.on{opacity:1;background:var(--card-solid);box-shadow:var(--shadow)}.sibling.add span{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:2px dashed var(--line);font-size:22px;color:var(--muted)}