*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%}body{font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,system-ui,sans-serif;-webkit-font-smoothing:antialiased;--sky-top: #8ecdf2;--sky-bottom: #ffe8be;--sun-color: rgba(255, 214, 130, .95);--sun-glow: rgba(255, 220, 150, .45);--ink: #4a3a22;--ink-soft: rgba(74, 58, 34, .62);--glass: rgba(255, 253, 247, .55);--glass-border: rgba(255, 255, 255, .65);--ground-1: #c3e6a5;--ground-2: #9bd37b;--hill: rgba(120, 180, 110, .55);--accent: #e8833a;color:var(--ink)}body[data-theme=morning]{--sky-top: #a8d8f0;--sky-bottom: #ffe9c7}body[data-theme=dusk]{--sky-top: #7a6fb8;--sky-bottom: #ffb88c;--sun-color: rgba(255, 170, 120, .9);--sun-glow: rgba(255, 160, 110, .4);--ink: #3d3350;--ink-soft: rgba(61, 51, 80, .6);--glass: rgba(255, 245, 250, .42);--glass-border: rgba(255, 255, 255, .5);--ground-1: #a5c98f;--ground-2: #7fb567;--accent: #d4699e}body[data-theme=night]{--sky-top: #1b2447;--sky-bottom: #3a3f6e;--sun-color: rgba(240, 244, 255, .95);--sun-glow: rgba(200, 215, 255, .25);--ink: #e8ecff;--ink-soft: rgba(232, 236, 255, .55);--glass: rgba(30, 36, 70, .5);--glass-border: rgba(140, 160, 230, .35);--ground-1: #35507a;--ground-2: #2a3f63;--hill: rgba(40, 55, 95, .8);--accent: #8fb4ff}.scene{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;z-index:0}.sky{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,var(--sky-top) 0%,var(--sky-bottom) 72%);transition:background 2s,transform .6s cubic-bezier(.22,1,.36,1)}.sun{position:absolute;right:12vw;top:10vh;width:130px;height:130px;border-radius:50%;background:radial-gradient(circle,var(--sun-glow) 0%,var(--sun-glow) 34%,transparent 70%);transition:transform .6s cubic-bezier(.22,1,.36,1)}.sun:after{content:"";position:absolute;top:30%;right:30%;bottom:30%;left:30%;border-radius:50%;background:var(--sun-color);box-shadow:0 0 60px 25px var(--sun-glow);animation:sunPulse 6s ease-in-out infinite}@keyframes sunPulse{50%{box-shadow:0 0 80px 35px var(--sun-glow)}}.stars{position:absolute;top:0;right:0;bottom:55%;left:0;opacity:0;transition:opacity 2s}body[data-theme=night] .stars{opacity:1}.star{position:absolute;width:3px;height:3px;border-radius:50%;background:#fff;animation:twinkle 3s ease-in-out infinite}@keyframes twinkle{50%{opacity:.2;transform:scale(.7)}}.cloud{position:absolute;height:30px;border-radius:40px;background:#ffffffd9;filter:blur(3px);animation:drift linear infinite}.cloud:before,.cloud:after{content:"";position:absolute;border-radius:50%;background:inherit}.cloud:before{width:55%;height:200%;left:12%;top:-100%}.cloud:after{width:42%;height:150%;right:10%;top:-60%}@keyframes drift{0%{transform:translate(calc(-30vw + var(--px, 0px))) translateY(var(--py, 0px))}to{transform:translate(calc(130vw + var(--px, 0px))) translateY(var(--py, 0px))}}.skyline{position:absolute;bottom:30%;left:0;width:100%;height:120px;opacity:.18;pointer-events:none;transition:transform .6s cubic-bezier(.22,1,.36,1)}.hill{position:absolute;border-radius:50%;background:var(--hill);filter:blur(2px);transition:background 2s,transform .6s cubic-bezier(.22,1,.36,1)}.hill.h1{width:60vw;height:24vh;left:-12vw;bottom:24%}.hill.h2{width:55vw;height:20vh;right:-15vw;bottom:26%}.ground{position:absolute;left:0;right:0;bottom:0;height:31%;background:linear-gradient(180deg,var(--ground-1) 0%,var(--ground-2) 100%);transition:background 2s}.ground:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(60% 90% at 50% 0%,rgba(255,255,255,.28),transparent 70%)}.motes{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.mote{position:absolute;border-radius:50%;background:#ffffffbf;animation:floatUp linear infinite}@keyframes floatUp{0%{transform:translateY(0) translate(0);opacity:0}12%{opacity:.9}85%{opacity:.5}to{transform:translateY(-46vh) translate(3vw);opacity:0}}.glass{background:var(--glass);border:1px solid var(--glass-border);border-radius:24px;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 18px 50px #32281424;color:var(--ink)}.btn{font-family:inherit;cursor:pointer;border:none;border-radius:16px;font-size:15px;font-weight:600;padding:14px 0;transition:transform .18s,box-shadow .18s}.btn-primary{background:linear-gradient(135deg,#f2a64f,#e8833a);color:#fff;box-shadow:0 10px 28px #e8833a66}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 14px 34px #e8833a80}.btn-primary:active:not(:disabled){transform:translateY(0) scale(.98)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-ghost{background:var(--glass);border:1px solid var(--glass-border);color:var(--ink)}.btn-ghost:hover{transform:translateY(-2px)}.btn-text{background:transparent;border:none;color:var(--ink-soft);font-size:13px;cursor:pointer;font-family:inherit;padding:8px}.btn-text:hover{color:var(--accent)}.field{width:100%;padding:13px 16px;border-radius:14px;border:1px solid var(--glass-border);background:#ffffff80;font-size:14px;color:var(--ink);font-family:inherit;margin-bottom:12px;outline:none;transition:border .2s}.field::placeholder{color:var(--ink-soft)}.field:focus{border-color:var(--accent)}@keyframes panelIn{0%{opacity:0;margin-top:18px}}.hidden{display:none!important}.boot{height:100%;display:grid;place-items:center;color:var(--ink-soft)}.login-wrap{position:relative;z-index:15;min-height:100%;display:grid;place-items:center;padding:24px 16px}.login-card{position:relative;width:min(420px,92vw);padding:40px 38px 30px;text-align:center;animation:panelIn .8s both}.login-back{position:absolute;top:16px;left:16px;display:inline-flex;align-items:center;gap:4px;background:none;border:none;color:var(--ink-soft);font-size:13px;font-family:inherit;font-weight:600;cursor:pointer;padding:6px 10px;border-radius:10px;transition:background .2s,color .2s}.login-back svg{width:16px;height:16px}.login-back:hover{background:#e8833a1f;color:var(--accent)}.logo-big{width:88px;height:88px;border-radius:22px;margin:0 auto 16px;display:grid;place-items:center;overflow:hidden}.logo-big img{width:100%;height:100%;object-fit:contain;display:block}.login-card h1{font-size:26px;font-weight:800;letter-spacing:2px;color:var(--ink)}.login-card .tagline{font-size:14px;color:var(--ink-soft);margin:8px 0 26px}.login-tabs{display:flex;gap:8px;margin-bottom:22px;background:#78643c1a;border-radius:14px;padding:4px}.ltab{flex:1;border:none;background:transparent;padding:10px;border-radius:10px;font-size:14px;font-weight:600;color:var(--ink-soft);cursor:pointer;font-family:inherit;transition:all .25s}.ltab.active{background:#fff;color:var(--ink);box-shadow:0 4px 14px #00000014}.form-error{font-size:13px;color:#e5484d;margin:-4px 0 12px}.agree{font-size:11px;color:var(--ink-soft);margin:16px 0 4px;line-height:1.6}.agree a{color:var(--accent);text-decoration:none}.adopt-page{position:absolute;top:0;right:0;bottom:0;left:0;z-index:15}.adopt-progress{position:absolute;top:30px;left:50%;transform:translate(-50%);display:flex;gap:10px;align-items:center;z-index:16}.adopt-progress .dot{width:8px;height:8px;border-radius:50%;background:#78643c40;transition:all .3s}.adopt-progress .dot.active{width:24px;border-radius:99px;background:var(--accent)}.adopt-progress .dot.done{background:var(--accent);opacity:.5}.adopt-wrap{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:15;padding:20px}.step{width:min(820px,94vw);animation:panelIn .6s both}.step h2{text-align:center;font-size:24px;font-weight:800;color:var(--ink);margin-bottom:6px}.step .step-sub{text-align:center;font-size:14px;color:var(--ink-soft);margin-bottom:30px}.cand-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.cand{padding:20px 16px;border-radius:22px;text-align:center;cursor:pointer;transition:transform .25s,box-shadow .25s;border:2px solid transparent}.cand:hover{transform:translateY(-6px)}.cand.sel{border-color:var(--accent);box-shadow:0 14px 40px #e8833a40}.cand .pet-mini{width:130px;margin:0 auto 14px}.cand h4{font-size:18px;font-weight:800;color:var(--ink)}.cand .tags{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin-top:10px}.cand .tag{font-size:11px;padding:3px 10px;border-radius:99px;background:#78643c1a;color:var(--ink-soft)}.adopt-foot{display:flex;gap:14px;justify-content:center;margin-top:30px}.adopt-foot .btn{width:180px}.name-step{text-align:center}.name-step .pet-preview{width:220px;margin:0 auto 24px}.name-row{display:flex;gap:12px;max-width:360px;margin:0 auto 16px}.name-row .field{margin:0}.dice{width:48px;height:48px;border-radius:14px;border:none;background:var(--glass);border:1px solid var(--glass-border);color:var(--accent);font-size:22px;cursor:pointer;flex:none;transition:transform .3s}.dice:hover{transform:rotate(180deg)}.success-step{position:relative;text-align:center}.success-step .pet-preview{width:240px;margin:0 auto 20px;animation:successPop .8s cubic-bezier(.28,1.6,.4,1) both}@keyframes successPop{0%{transform:scale(0) rotate(-30deg);opacity:0}60%{transform:scale(1.1) rotate(5deg)}to{transform:scale(1) rotate(0)}}.confetti{position:absolute;width:10px;height:14px;border-radius:2px;animation:confettiFall 2.5s ease-out forwards}@keyframes confettiFall{0%{transform:translateY(-20vh) rotate(0);opacity:1}to{transform:translateY(60vh) rotate(540deg);opacity:0}}.adopt-error{color:#d4537e;font-size:13px;margin-top:12px}@media(max-width:640px){.cand-grid{grid-template-columns:1fr}}.home-page{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;overflow:hidden}.topbar{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:26px 44px;z-index:20}.brand{display:flex;align-items:center;gap:12px;color:var(--ink)}.brand .logo{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;overflow:hidden;flex-shrink:0}.brand .logo img{width:100%;height:100%;object-fit:contain;display:block}.brand .name{font-size:19px;font-weight:700;letter-spacing:1px}.brand .sub{font-size:12px;color:var(--ink-soft);margin-top:1px}.clock{text-align:right;color:var(--ink)}.topbar-right{display:flex;align-items:center;gap:18px}.clock .time{font-size:26px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:1px}.clock .greet{font-size:12px;color:var(--ink-soft);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}.clock .greet-name{color:#fff;font-weight:700;text-shadow:0 1px 2px rgba(60,45,20,.35),0 0 1px rgba(60,45,20,.45)}.clock .logout{font-size:11px;padding:2px 0}.panel{position:absolute;z-index:20;width:264px;border-radius:24px;padding:22px 24px;color:var(--ink);animation:panelIn .9s cubic-bezier(.22,1,.36,1) both}.panel.glass{background:var(--glass);border:1px solid var(--glass-border);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 18px 50px #3228141f}.panel-left{left:44px;top:50%;transform:translateY(-58%);animation-delay:.15s}.panel-right{right:44px;top:50%;transform:translateY(-50%);animation-delay:.3s}.panel h3{font-size:13px;font-weight:700;letter-spacing:2px;color:var(--ink-soft);margin-bottom:4px}.panel .mood-line{font-size:14px;margin-bottom:16px}.miss-hint{font-size:12px;color:#d4537e;background:#d4537e1f;border-radius:10px;padding:7px 10px;margin:-8px 0 12px}.switch-pet{display:block;margin:10px auto 0}.stat{display:flex;align-items:center;gap:10px;margin:13px 0}.stat svg{width:17px;height:17px;flex:none}.stat .label{font-size:12px;width:30px;color:var(--ink-soft);flex:none}.stat .track{flex:1;height:8px;border-radius:99px;background:#78643c24;overflow:hidden}.stat .fill{height:100%;border-radius:99px;width:0;transition:width 1.4s cubic-bezier(.22,1,.36,1);position:relative}.stat .fill:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.65) 50%,transparent 70%);animation:shimmer 2.6s ease-in-out infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.stat .val{font-size:12px;width:26px;text-align:right;font-variant-numeric:tabular-nums;color:var(--ink-soft);flex:none}.walk-card{display:flex;align-items:center;gap:16px;margin:14px 0 6px}.ring{width:76px;height:76px;flex:none;position:relative}.ring svg{width:76px;height:76px;transform:rotate(-90deg)}.ring .bgc{fill:none;stroke:#78643c24;stroke-width:6}.ring .fgc{fill:none;stroke:var(--accent);stroke-width:6;stroke-linecap:round}.ring .num{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}.walk-info .w1{font-size:14px;font-weight:700}.walk-info .w2{font-size:12px;color:var(--ink-soft);margin-top:4px;line-height:1.6}.divider{height:1px;background:var(--glass-border);margin:16px -8px}.msg-list{max-height:320px;overflow-y:auto;display:flex;flex-direction:column;gap:12px;padding:4px 2px 4px 0;margin-right:-4px}.msg-list::-webkit-scrollbar{width:6px}.msg-list::-webkit-scrollbar-thumb{background:#3c2d142e;border-radius:4px}.msg-item{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;background:#ffffff8c;border:1px solid rgba(255,255,255,.65);border-radius:14px;box-shadow:0 2px 8px #3c2d140f;transition:transform .18s ease,box-shadow .18s ease}.msg-item:hover{transform:translateY(-1px);box-shadow:0 4px 14px #3c2d141a}.msg-avatar{width:40px;height:40px;border-radius:50%;flex:none;background:linear-gradient(135deg,#f4a0be,#fbd38a);display:grid;place-items:center;font-size:15px;font-weight:700;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.15);box-shadow:inset 0 0 0 2px #fff9}.msg-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.msg-head{display:flex;align-items:center;justify-content:space-between;gap:8px;line-height:1.3}.msg-from{font-size:12.5px;font-weight:600;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.msg-chip{flex:none;font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:99px;letter-spacing:.3px;white-space:nowrap}.chip-walk{color:#6a8a3b;background:#8fbc462e;border:1px solid rgba(143,188,70,.35)}.chip-direct{color:#b5640d;background:#e8833a26;border:1px solid rgba(232,131,58,.32)}.msg-content{font-size:14px;line-height:1.55;color:var(--ink);word-break:break-word;padding:6px 10px;background:#ffffff73;border-radius:10px;border-left:3px solid #f4a0be}.msg-meta{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--ink-soft);margin-top:2px}.msg-time{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.2px;opacity:.75}.msg-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:18px;padding:0 7px;margin-left:6px;font-size:11px;font-weight:700;color:#fff;background:var(--accent);border-radius:99px;vertical-align:2px}.msg-more{font-size:12px;color:var(--accent);margin-top:10px;cursor:pointer}.msg-mini-list{display:flex;flex-direction:column;gap:10px}.msg-mini{padding:8px 4px;border-bottom:1px dashed rgba(120,100,60,.15);cursor:pointer;transition:opacity .15s}.msg-mini:last-child{border-bottom:none}.msg-mini:hover{opacity:.75}.msg-mini-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:3px}.msg-mini-from{font-size:12px;font-weight:600;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.msg-mini-time{flex:none;font-size:10.5px;color:var(--ink-soft);opacity:.65;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.msg-mini-text{font-size:13.5px;line-height:1.5;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.msg-mini-empty{cursor:default;border-bottom:none;padding:6px 2px}.msg-mini-empty .msg-mini-text{color:var(--ink-soft);opacity:.7;font-size:12.5px;-webkit-line-clamp:2}.msg-list .msg-mini{cursor:default}.msg-list .msg-mini:hover{opacity:1}.msg-mini.is-reply{border-left:3px solid rgba(244,160,190,.5);padding-left:12px}.reply-tag{display:inline-block;font-size:10px;font-weight:700;color:#b5640d;background:#e8833a26;padding:1px 6px;border-radius:6px;margin-right:6px;vertical-align:1px}.reply-trigger{margin-top:6px;padding:2px 0;border:none;background:none;font-size:12px;font-weight:600;font-family:inherit;color:var(--accent);cursor:pointer;transition:opacity .15s}.reply-trigger:hover{opacity:.7}.reply-box{margin-top:10px;display:flex;flex-direction:column;gap:8px}.reply-input{width:100%;box-sizing:border-box;min-height:60px;max-height:120px;padding:8px 10px;border-radius:10px;border:1.5px solid rgba(120,100,60,.2);background:#ffffffb3;font-size:13px;line-height:1.5;font-family:inherit;color:var(--ink);resize:vertical;outline:none;transition:border-color .2s}.reply-input:focus{border-color:var(--accent)}.reply-actions{display:flex;gap:8px;justify-content:flex-end}.reply-cancel,.reply-send{padding:6px 16px;border-radius:99px;font-size:12.5px;font-weight:600;font-family:inherit;cursor:pointer;transition:transform .15s,opacity .2s}.reply-cancel{border:1.5px solid rgba(120,100,60,.2);background:transparent;color:var(--ink-soft)}.reply-cancel:hover{background:#78643c14}.reply-send{border:none;background:linear-gradient(135deg,var(--accent),#F5A623);color:#fff}.reply-send:hover:not(:disabled){transform:translateY(-1px)}.reply-cancel:disabled,.reply-send:disabled{opacity:.5;cursor:not-allowed;transform:none}.msg-actions{display:flex;gap:16px;margin-top:6px}.msg-conv-count{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;background:#78643c1a;color:var(--ink-soft);font-size:10px;font-weight:600;vertical-align:middle}.conv-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:220;width:min(440px,92vw);height:min(600px,82vh);border-radius:22px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 70px #3c2d1447}.conv-head{position:relative;padding:18px 50px;text-align:center;border-bottom:1px solid rgba(120,100,60,.12);flex:none}.conv-title{font-size:16px;font-weight:700;color:var(--ink)}.conv-head .x{position:absolute;right:14px;top:50%;transform:translateY(-50%);width:32px;height:32px;border-radius:50%;border:none;background:#78643c1a;color:var(--ink-soft);font-size:18px;cursor:pointer}.conv-body{flex:1;overflow-y:auto;padding:18px 18px 8px;display:flex;flex-direction:column;gap:12px}.conv-body::-webkit-scrollbar{width:6px}.conv-body::-webkit-scrollbar-thumb{background:#3c2d142e;border-radius:4px}.conv-empty{margin:auto;color:var(--ink-soft);opacity:.6;font-size:14px}.bubble-row{display:flex;flex-direction:column;align-items:flex-start;max-width:78%}.bubble-row.mine{align-self:flex-end;align-items:flex-end}.bubble{padding:9px 14px;border-radius:16px 16px 16px 5px;background:#ffffffb3;border:1px solid rgba(120,100,60,.1);font-size:14px;line-height:1.5;color:var(--ink);word-break:break-word;white-space:pre-wrap}.bubble-row.mine .bubble{background:linear-gradient(135deg,var(--accent),#F5A623);color:#fff;border:none;border-bottom-left-radius:16px;border-bottom-right-radius:5px;box-shadow:0 4px 14px #f2a0364d}.bubble-time{font-size:10px;color:var(--ink-soft);opacity:.6;margin-top:3px;padding:0 4px}.bubble-meta{display:flex;align-items:center;gap:6px;margin-top:3px;padding:0 4px}.bubble-meta .bubble-time{margin-top:0;padding:0}.bubble-row.unread .bubble{box-shadow:0 0 0 2px #4096ff40}.bubble-unread{font-size:10px;font-weight:700;color:#3483eb}.msg-unread-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#4d9fff;margin-right:6px;vertical-align:middle;box-shadow:0 0 0 2px #4d9fff2e}.msg-mini{position:relative}.msg-unread-badge{display:inline-block;margin-left:8px;padding:2px 10px;border-radius:999px;background:#3483eb;color:#fff;font-size:11px;font-weight:600;vertical-align:middle}.conv-foot{display:flex;gap:10px;padding:12px 14px;border-top:1px solid rgba(120,100,60,.12);flex:none;align-items:flex-end}.conv-input{flex:1;min-height:40px;max-height:100px;padding:9px 14px;border-radius:20px;border:1.5px solid rgba(120,100,60,.2);background:#ffffffb3;font-size:14px;line-height:1.4;font-family:inherit;color:var(--ink);resize:none;outline:none;transition:border-color .2s;box-sizing:border-box}.conv-input:focus{border-color:var(--accent)}.conv-send{flex:none;height:40px;padding:0 20px;border:none;border-radius:20px;background:linear-gradient(135deg,var(--accent),#F5A623);color:#fff;font-size:14px;font-weight:700;font-family:inherit;cursor:pointer;transition:transform .15s,opacity .2s}.conv-send:hover:not(:disabled){transform:translateY(-1px)}.conv-send:disabled{opacity:.5;cursor:not-allowed;transform:none}.msg-input{width:100%;box-sizing:border-box;padding:12px 14px;border:1.5px solid rgba(255,255,255,.15);border-radius:10px;background:#ffffff0f;color:var(--ink);font-size:14px;font-family:inherit;resize:vertical;outline:none;transition:border .2s}.msg-input:focus{border-color:var(--accent)}.msg-input::placeholder{color:var(--ink-soft);opacity:.6}.msg-anon{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-soft);margin:12px 0;cursor:pointer}.msg-anon input{width:16px;height:16px;cursor:pointer}.ticker{position:absolute;top:84px;left:0;right:0;z-index:19;display:flex;align-items:stretch;height:40px;overflow:hidden;background:var(--glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--glass-border);border-bottom:1px solid var(--glass-border);box-shadow:0 12px 32px #32281412;animation:panelIn .8s .4s both}.ticker-label{flex:none;display:flex;align-items:center;gap:8px;padding:0 18px 0 44px;white-space:nowrap;font-size:12px;font-weight:800;letter-spacing:2px;color:var(--ink);border-right:1px solid var(--glass-border)}.ticker-label svg{width:15px;height:15px;color:var(--accent)}.live-dot{width:7px;height:7px;border-radius:50%;background:#e85d5d;animation:livePulse 1.8s infinite}@keyframes livePulse{0%{box-shadow:0 0 #e85d5d80}70%{box-shadow:0 0 0 6px #e85d5d00}to{box-shadow:0 0 #e85d5d00}}.ticker-track{flex:1;overflow:hidden;position:relative;mask-image:linear-gradient(90deg,transparent,#000 36px,#000 calc(100% - 36px),transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 36px,#000 calc(100% - 36px),transparent)}.ticker-flow{display:flex;align-items:center;height:100%;width:max-content;white-space:nowrap;will-change:transform;animation:tickerScroll var(--ticker-dur, 60s) linear infinite}.ticker:hover .ticker-flow{animation-play-state:paused}.ticker-copy{display:flex;align-items:center}@keyframes tickerScroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.tick-item{display:inline-flex;align-items:center;gap:9px;padding:6px 16px;border-radius:99px;cursor:pointer;font-size:13px;color:var(--ink);line-height:1.2;transition:background .25s}.tick-item:hover{background:#ffffff8c}body[data-theme=night] .tick-item:hover{background:#8ca0e629}.tick-item .ti{width:22px;height:22px;border-radius:8px;flex:none;display:grid;place-items:center}.tick-item .ti svg{width:13px;height:13px}.tick-sep{flex:none;width:4px;height:4px;border-radius:50%;background:var(--ink-soft);opacity:.28;margin:0 10px}.ticker-count{flex:none;display:flex;align-items:center;gap:6px;padding:0 44px 0 18px;white-space:nowrap;font-size:12px;color:var(--ink-soft);border-left:1px solid var(--glass-border)}.ticker-count svg{width:14px;height:14px;opacity:.7}.ticker-count b{color:var(--ink);font-weight:700;font-variant-numeric:tabular-nums}.stage{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;z-index:10;pointer-events:none}.pet-zone{position:relative;margin-top:6vh;pointer-events:auto;cursor:pointer}.pet-name{text-align:center;color:var(--ink);margin-bottom:6px;animation:panelIn 1s .2s both}.pet-name .n{font-size:24px;font-weight:800;letter-spacing:3px}.pet-name .stage-chip{display:inline-block;font-size:11px;font-weight:600;margin-left:8px;padding:3px 10px;border-radius:99px;vertical-align:3px;background:var(--glass);border:1px solid var(--glass-border);color:var(--ink-soft)}.pet-name .sleep-chip{background:#5551e124;border-color:#5551e14d;color:#4b47b8}.pet-wrap{position:relative;width:min(340px,44vw);display:grid;place-items:center}.pet-bubble{position:absolute;top:-8px;left:50%;transform:translate(-50%) translateY(-100%);background:#fff;color:var(--ink, #2A2A28);font-size:13px;font-weight:600;line-height:1.4;padding:8px 14px;border-radius:14px;white-space:nowrap;box-shadow:0 4px 16px #0000001a;border:1.5px solid #F4C0D1;z-index:6;animation:bubblePop 3.5s ease-in-out forwards;pointer-events:none}.pet-bubble:after{content:"";position:absolute;bottom:-7px;left:50%;transform:translate(-50%);width:12px;height:12px;background:#fff;border-right:1.5px solid #F4C0D1;border-bottom:1.5px solid #F4C0D1;rotate:45deg}@keyframes bubblePop{0%{transform:translate(-50%) translateY(-80%) scale(.6);opacity:0}12%{transform:translate(-50%) translateY(-100%) scale(1.08);opacity:1}20%{transform:translate(-50%) translateY(-100%) scale(1)}85%{transform:translate(-50%) translateY(-100%) scale(1);opacity:1}to{transform:translate(-50%) translateY(-108%) scale(.92);opacity:0}}.shadow{width:46%;height:22px;margin:-8px auto 0;border-radius:50%;background:#3c2d1438;filter:blur(7px);animation:shadowPulse 3.6s ease-in-out infinite}@keyframes shadowPulse{50%{transform:scaleX(.92)}}.pet-svg .breathe{animation:breathe 3.6s ease-in-out infinite;transform-origin:50% 100%}@keyframes breathe{50%{transform:scale(1.028,.975)}}.pet-svg .eye{transform-box:fill-box;transform-origin:center;animation:blink 5.2s infinite}@keyframes blink{0%,91%,to{transform:scaleY(1)}94%{transform:scaleY(.08)}97%{transform:scaleY(1)}}.pet-svg.pet-happy .eye,.pet-svg.pet-sad .eye,.pet-svg.pet-hungry .eye,.pet-svg.pet-sleep .eye{animation:none}.pet-svg.pet-happy .blush{fill:#f472a8;transform:scale(1.25);transform-box:fill-box;transform-origin:center;transition:fill .4s,transform .4s}.pet-svg.pet-sad .pet-tear{animation:tearDrop 2.4s ease-in infinite;transform-box:fill-box;transform-origin:center top}@keyframes tearDrop{0%{transform:translateY(0);opacity:0}20%{opacity:.9}80%{transform:translateY(14px);opacity:.7}to{transform:translateY(18px);opacity:0}}.pet-svg.pet-hungry .pet-drool{animation:droolDrip 1.8s ease-in infinite;transform-box:fill-box;transform-origin:center top}@keyframes droolDrip{0%{transform:scaleY(.3);opacity:0}30%{transform:scaleY(1);opacity:.8}70%{transform:scaleY(1.15) translateY(2px);opacity:.7}to{transform:scaleY(.2) translateY(6px);opacity:0}}.pet-svg.pet-sleep .pet-zzz text{animation:zzzFloat 3s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.pet-svg.pet-sleep .pet-zzz text:nth-child(2){animation-delay:.6s}@keyframes zzzFloat{0%,to{transform:translateY(0);opacity:.5}50%{transform:translateY(-6px);opacity:.9}}.pet-zone.is-resting .pet-sleep .eye{transform:none!important}.pet-svg .tail{transform-box:fill-box;transform-origin:12% 88%;animation:wag 2.8s ease-in-out infinite}@keyframes wag{50%{transform:rotate(9deg)}}.pet-svg.pet-senior{filter:saturate(.62)}.heart-pop{position:absolute;left:50%;bottom:60%;pointer-events:none;animation:heartUp 1.2s ease-out forwards;color:#e86a8a}@keyframes heartUp{0%{transform:translate(-50%) scale(.5);opacity:1}to{transform:translate(calc(-50% + var(--dx, 0px)),-110px) scale(1.15);opacity:0}}.dock{position:absolute;bottom:34px;left:50%;transform:translate(-50%);display:flex;gap:22px;z-index:20;border-radius:28px;padding:14px 24px;animation:panelIn 1s .45s both}.act{width:64px;border:none;background:transparent;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--ink);font-family:inherit;font-size:12px;transition:transform .18s cubic-bezier(.34,1.6,.64,1)}.act svg{width:30px;height:30px;transition:transform .18s}.act:hover{transform:translateY(-5px)}.act:hover svg{transform:scale(1.12)}.act:active{transform:translateY(-1px) scale(.95)}.toast{position:absolute;bottom:128px;left:50%;transform:translate(-50%) translateY(10px);color:var(--ink);font-size:13.5px;padding:11px 22px;border-radius:99px;background:var(--glass);border:1px solid var(--glass-border);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);opacity:0;pointer-events:none;z-index:60;transition:opacity .3s,transform .3s cubic-bezier(.22,1,.36,1);white-space:nowrap}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}.act-prop{position:absolute;opacity:0;pointer-events:none;z-index:4;transition:opacity .45s ease}.pet-zone .food-bowl{width:58px;right:22%;bottom:13%;transform:scale(0);transition:transform .4s cubic-bezier(.28,1.6,.4,1),opacity .4s ease}.pet-zone .toy-ball{width:34px;height:34px;right:24%;bottom:36%;border-radius:50%;background:radial-gradient(circle at 35% 30%,#f4a0be,#e8833a);box-shadow:0 6px 16px #e8833a59;transform:scale(0);transition:transform .4s cubic-bezier(.28,1.6,.4,1),opacity .4s ease}.pet-zone .walk-dust{left:28%;bottom:7%;width:44px;height:18px}.pet-zone .walk-dust span{position:absolute;width:5px;height:5px;border-radius:50%;background:#78643c4d;bottom:0;opacity:0}.sat-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:6}.sat-particle{position:absolute;font-size:18px;animation:satFloat 1.4s ease-out forwards}@keyframes satFloat{0%{transform:translateY(0) scale(.4);opacity:1}to{transform:translateY(-90px) translate(var(--dx,0)) scale(1.3);opacity:0}}.walk-grass{position:absolute;left:0;right:0;bottom:0;height:31%;pointer-events:none;opacity:0;overflow:hidden;transition:opacity .5s;z-index:1}.walk-grass:before{content:"";position:absolute;left:0;bottom:0;width:200%;height:100%;background:repeating-linear-gradient(90deg,transparent 0,transparent 50px,rgba(99,153,34,.14) 50px,rgba(99,153,34,.14) 53px,transparent 53px,transparent 110px,rgba(99,153,34,.09) 110px,rgba(99,153,34,.09) 112px)}.scene.is-walking .walk-grass{opacity:1}.scene.is-walking .walk-grass:before{animation:grassScroll 2.5s linear infinite}@keyframes grassScroll{0%{transform:translate(0)}to{transform:translate(-120px)}}.scene.is-walking .skyline{animation:bgScrollSky 8s linear infinite}.scene.is-walking .hill{animation:bgScrollHill 5s linear infinite}@keyframes bgScrollSky{0%{transform:translate(0)}to{transform:translate(-120px)}}@keyframes bgScrollHill{0%{transform:translate(0)}to{transform:translate(-80px)}}.pet-zone.is-feeding .food-bowl{opacity:1;transform:scale(1)}.pet-zone.is-feeding .breathe{animation:feedAction 3.5s cubic-bezier(.22,1,.36,1) forwards}@keyframes feedAction{0%{transform:translate(0) translateY(0) scale(1)}12%{transform:translate(16px) translateY(0) scale(1.02,.98)}20%{transform:translate(24px) translateY(8px) scale(.98,1.02)}28%{transform:translate(24px) translateY(2px) scale(1.03,.97)}34%{transform:translate(24px) translateY(8px) scale(.98,1.02)}40%{transform:translate(24px) translateY(2px) scale(1.03,.97)}46%{transform:translate(24px) translateY(8px) scale(.98,1.02)}56%{transform:translate(24px) translateY(0) scale(1.05,.95)}72%{transform:translate(0) translateY(-14px) scale(.94,1.12)}86%{transform:translate(0) translateY(0) scale(1.03,.97)}to{transform:translate(0) translateY(0) scale(1)}}.pet-zone.is-playing .toy-ball{opacity:1;transform:scale(1);animation:ballBounce 1.2s .3s ease-in-out infinite}@keyframes ballBounce{0%,to{transform:translateY(0) translate(0)}30%{transform:translateY(-22px) translate(-8px)}60%{transform:translateY(0) translate(10px)}}.pet-zone.is-playing .breathe{animation:playAction 4s cubic-bezier(.22,1,.36,1) forwards}@keyframes playAction{0%{transform:translate(0) translateY(0) rotate(0) scale(1)}8%{transform:translate(-12px) translateY(-4px) rotate(-4deg) scale(.97,1.03)}18%{transform:translate(20px) translateY(-30px) rotate(4deg) scale(.94,1.12)}28%{transform:translate(32px) translateY(0) rotate(0) scale(1.1,.88)}38%{transform:translate(10px) translateY(-24px) rotate(-5deg) scale(.95,1.1)}48%{transform:translate(-20px) translateY(0) rotate(3deg) scale(1.08,.9)}58%{transform:translate(-4px) translateY(-18px) rotate(-3deg) scale(.96,1.08)}68%{transform:translate(16px) translateY(0) rotate(1deg) scale(1.06,.92)}80%{transform:translate(4px) translateY(-6px) rotate(0) scale(.98,1.04)}to{transform:translate(0) translateY(0) rotate(0) scale(1)}}.pet-zone.is-resting .breathe{animation:restLieDown 1.2s ease-out forwards,sleepBreathe 4.4s 1.2s ease-in-out infinite}@keyframes restLieDown{0%{transform:translateY(0) rotate(0) scale(1)}to{transform:translateY(10px) rotate(-10deg) scale(1.12,.84)}}@keyframes sleepBreathe{0%,to{transform:translateY(10px) rotate(-10deg) scale(1.12,.84)}50%{transform:translateY(10px) rotate(-10deg) scale(1.15,.8)}}.pet-zone.is-resting .eye{animation:none!important;transform:scaleY(.06);transform-box:fill-box;transform-origin:center;transition:transform 1s ease}.pet-zone.is-resting .tail{animation:wagSlow 5s ease-in-out infinite}@keyframes wagSlow{50%{transform:rotate(3deg)}}.pet-zone.is-walking .breathe{animation:walkBob .42s ease-in-out infinite}@keyframes walkBob{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-5px) scale(1.02,.98)}}.pet-zone.is-walking .tail{animation:wagFast .3s ease-in-out infinite}@keyframes wagFast{50%{transform:rotate(16deg)}}.pet-zone.is-walking .walk-dust span{animation:dustPuff .42s ease-out infinite}.pet-zone.is-walking .walk-dust span:nth-child(2){animation-delay:.14s}.pet-zone.is-walking .walk-dust span:nth-child(3){animation-delay:.28s}@keyframes dustPuff{0%{transform:translate(0) scale(.4);opacity:.5}to{transform:translate(-18px,-14px) scale(1.6);opacity:0}}.backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#140e0659;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:fadeIn .4s;z-index:30}@keyframes fadeIn{0%{opacity:0}}.modal-card{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(560px,92vw);padding:28px 30px;z-index:31;animation:modalIn .5s cubic-bezier(.22,1,.36,1) both;max-height:88vh;overflow-y:auto}@keyframes modalIn{0%{opacity:0;transform:translate(-50%,-44%) scale(.96)}}.modal-card h2{font-size:20px;font-weight:800;color:var(--ink);text-align:center;margin-bottom:4px}.modal-card .m-sub{font-size:13px;color:var(--ink-soft);text-align:center;margin-bottom:22px}.x{position:absolute;top:16px;right:16px;width:34px;height:34px;border-radius:50%;border:none;background:#fff6;color:var(--ink);font-size:18px;cursor:pointer;display:grid;place-items:center;transition:background .2s}.x:hover{background:#ffffffb3}.seg{display:flex;gap:6px;background:#78643c1a;border-radius:14px;padding:4px;margin-bottom:22px}.seg button{flex:1;border:none;background:transparent;padding:9px;border-radius:10px;font-size:13px;font-weight:600;color:var(--ink-soft);cursor:pointer;font-family:inherit;transition:all .25s}.seg button.active{background:#fff;color:var(--ink);box-shadow:0 4px 14px #00000014}.item-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.item-card{display:flex;align-items:center;gap:12px;padding:14px;border-radius:16px;background:#fff6;border:1px solid var(--glass-border);cursor:pointer;transition:transform .2s,background .2s}.item-card:hover{transform:translateY(-3px);background:#ffffffa6}.item-card.empty{opacity:.45;cursor:not-allowed}.item-card.empty:hover{transform:none;background:#fff6}.item-card .ic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;flex:none}.item-card .ic svg{width:22px;height:22px}.item-card .iname{font-size:14px;font-weight:600;color:var(--ink)}.item-card .iqty{font-size:11px;color:var(--accent);font-weight:700;margin-left:6px}.item-card .ieff{font-size:11px;color:var(--ink-soft);margin-top:2px}.rest-zone{text-align:center;padding:20px 0}.rest-pet{width:180px;margin:0 auto 20px}.rest-slider{width:100%;max-width:320px;margin:0 auto;accent-color:var(--accent)}.rest-time{font-size:22px;font-weight:800;color:var(--ink);margin:10px 0}.dur-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:22px}.dur-card{padding:18px 12px;border-radius:18px;background:#fff6;border:2px solid transparent;text-align:center;cursor:pointer;transition:all .2s}.dur-card:hover{transform:translateY(-4px)}.dur-card.sel{border-color:var(--accent);background:#ffffffb3}.dur-card .dt{font-size:22px;font-weight:800;color:var(--ink)}.dur-card .dc{font-size:11px;color:var(--ink-soft);margin:4px 0 8px}.dur-card .dp{font-size:11px;color:var(--accent);font-weight:600}.today-cnt{text-align:center;font-size:12px;color:var(--ink-soft);margin-bottom:18px}.today-cnt b{color:var(--ink)}@media(max-width:900px){.panel-right{display:none}.panel-left{left:16px;width:220px;padding:16px 18px}.ticker{top:68px;height:34px}.ticker-label{padding-left:22px;font-size:10.5px;letter-spacing:1px}.ticker-count{padding-right:22px;font-size:10.5px}.topbar{padding:18px 22px}.dock{gap:10px;padding:10px 14px}.act{width:52px}.dur-grid,.item-grid{grid-template-columns:1fr}}.home-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;gap:18px;align-items:center;justify-content:center;color:var(--ink-soft);z-index:10}.nav-icons{display:flex;align-items:center;gap:4px;justify-content:flex-end}.nav-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;padding:0}.nav-icon svg{width:18px;height:18px}.nav-icon:hover{background:#78643c1a}.page-topbar{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:24px 32px;z-index:20}.page-topbar h2{font-size:20px;font-weight:800;color:var(--ink);letter-spacing:2px}.topbar-spacer{width:60px}.back-btn{font-size:14px;font-weight:600}.logout-btn{font-size:13px;color:#e5484d}.logout-btn:hover{color:#d4537e}.memorial-page{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;overflow-y:auto;padding:80px 16px 100px}.memorial-list{max-width:680px;margin:0 auto;display:flex;flex-direction:column;gap:24px}.memorial-card{position:relative;padding:36px 32px 28px;border-radius:24px;animation:panelIn .8s cubic-bezier(.22,1,.36,1) both}.memorial-star{position:absolute;top:-18px;right:28px;width:36px;height:36px;filter:drop-shadow(0 4px 10px rgba(232,131,58,.3));animation:starFloat 3s ease-in-out infinite}@keyframes starFloat{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-8px) rotate(8deg)}}.memorial-pet-name{font-size:28px;font-weight:800;color:var(--ink);letter-spacing:1px}.memorial-species{font-size:14px;color:var(--ink-soft);margin-top:4px}.memorial-dates{font-size:13px;color:var(--ink-soft);margin-top:10px;font-variant-numeric:tabular-nums}.memorial-lived-days{font-size:15px;color:var(--ink);margin-top:6px}.memorial-lived-days b{font-size:22px;font-weight:800;color:var(--accent);margin:0 4px}.memorial-timeline{margin:20px 0 0;padding-left:8px;border-left:2px solid var(--glass-border)}.tl-item{position:relative;padding:0 0 18px 20px}.tl-item:last-child{padding-bottom:0}.tl-dot{position:absolute;left:-7px;top:4px;width:12px;height:12px;border-radius:50%;background:var(--accent);border:2px solid var(--glass)}.tl-content{display:flex;align-items:flex-start;gap:10px}.tl-icon svg{width:18px;height:18px;flex:none;margin-top:2px}.tl-date{font-size:12px;color:var(--ink-soft);font-variant-numeric:tabular-nums}.tl-event{font-size:14px;color:var(--ink);margin-top:2px}.memorial-last-words{margin-top:20px;padding:16px 20px;border-radius:16px;background:#e8833a14;border:1px solid rgba(232,131,58,.15);font-size:14px;color:var(--ink);line-height:1.8;font-style:italic}.memorial-flowers{display:flex;align-items:center;gap:8px;margin-top:16px;font-size:14px;color:var(--ink-soft)}.memorial-flowers b{color:#d4537e;font-weight:800;margin:0 2px}.memorial-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding-top:20vh;color:var(--ink-soft)}.memorial-empty .empty-icon{width:80px;height:80px;margin-bottom:20px;opacity:.5}.memorial-empty p{font-size:16px}.memorial-empty .sub{font-size:13px;margin-top:8px;opacity:.7}.memorial-foot{position:absolute;bottom:0;left:0;right:0;display:flex;gap:14px;justify-content:center;padding:20px 16px;z-index:20;background:linear-gradient(180deg,transparent,var(--glass) 40%);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.memorial-foot .btn{width:180px}.settings-page{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;overflow-y:auto;padding:80px 16px 40px}.settings-body{max-width:560px;margin:0 auto;display:flex;flex-direction:column;gap:16px}.set-section{padding:22px 24px;border-radius:20px;animation:panelIn .8s cubic-bezier(.22,1,.36,1) both}.set-section h3{font-size:12px;font-weight:700;letter-spacing:2px;color:var(--ink-soft);margin-bottom:14px}.set-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--glass-border)}.set-row:last-child{border-bottom:none}.set-label{font-size:15px;font-weight:600;color:var(--ink)}.set-value{font-size:14px;color:var(--ink-soft);font-variant-numeric:tabular-nums}.set-desc{font-size:12px;color:var(--ink-soft);margin-top:3px}.link-row{cursor:pointer;transition:opacity .2s}.link-row:hover{opacity:.7}.set-arrow{font-size:14px;color:var(--ink-soft)}.switch{width:48px;height:28px;border-radius:99px;background:#78643c33;position:relative;cursor:pointer;transition:background .3s;flex:none}.switch.on{background:linear-gradient(135deg,#f2a64f,#e8833a)}.switch .knob{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 2px 6px #00000026;transition:transform .3s cubic-bezier(.22,1,.36,1)}.switch.on .knob{transform:translate(20px)}.surprise-wrap{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:40;padding:40px 56px;border-radius:24px;text-align:center;animation:modalIn .5s cubic-bezier(.22,1,.36,1) both;min-width:320px}.gift-box{cursor:pointer;animation:giftShake 1.5s ease-in-out infinite;transition:transform .2s}.gift-box:hover{transform:scale(1.05)}.gift-box:active{transform:scale(.96)}@keyframes giftShake{0%,to{transform:rotate(0)}25%{transform:rotate(-4deg)}75%{transform:rotate(4deg)}}.gift-hint{margin-top:12px;font-size:14px;color:var(--ink-soft);animation:fadeInUp 1.5s .5s both}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.surprise-reveal{animation:modalIn .4s cubic-bezier(.22,1,.36,1) both;display:flex;flex-direction:column;align-items:center;gap:12px}.surprise-reveal .ricon{width:72px;height:72px;border-radius:20px;display:grid;place-items:center;margin-bottom:4px}.surprise-reveal .ricon svg{width:36px;height:36px}.surprise-reveal .rarity{font-size:12px;font-weight:800;letter-spacing:2px;color:var(--accent);text-transform:uppercase}.surprise-reveal .rtitle{font-size:22px;font-weight:700;color:var(--ink)}.surprise-reveal .rdesc{font-size:15px;color:var(--ink-soft);line-height:1.6;max-width:280px}.surprise-confirm{margin-top:24px;width:100%;max-width:280px;padding:14px 24px;border:none;border-radius:999px;background:linear-gradient(135deg,var(--accent),#F5A623);color:#fff;font-size:16px;font-weight:700;font-family:inherit;letter-spacing:1px;cursor:pointer;box-shadow:0 8px 24px #f2a03666;transition:transform .18s,box-shadow .18s,filter .18s}.surprise-confirm:hover{transform:translateY(-2px);box-shadow:0 12px 30px #f2a03680;filter:brightness(1.03)}.surprise-confirm:active{transform:translateY(0);box-shadow:0 4px 14px #f2a03659}.spark{position:absolute;top:50%;left:50%;width:8px;height:8px;border-radius:50%;pointer-events:none;animation:sparkOut .9s ease-out forwards}@keyframes sparkOut{0%{transform:translate(-50%,-50%) scale(0);opacity:1}60%{opacity:1}to{transform:translate(calc(-50% + var(--sx, 0px)),calc(-50% + var(--sy, 0px))) scale(1.2);opacity:0}}.home-empty{position:relative;z-index:15;min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;gap:12px}.home-empty .empty-pet{margin-bottom:8px;animation:floatPet 3s ease-in-out infinite}@keyframes floatPet{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}.home-empty h2{font-size:24px;font-weight:800;color:var(--ink)}.home-empty p{font-size:15px;color:var(--ink-soft);max-width:360px;line-height:1.6}.home-empty .btn{width:200px;margin-top:12px}.toast-auth-expired{background:#d4537ef2!important;color:#fff!important}.pet-bouncer{transform-origin:center bottom;position:relative;z-index:1}.pet-wrap:before,.pet-wrap:after{content:"";position:absolute;top:8%;right:-14%;bottom:8%;left:-14%;border-radius:50%;pointer-events:none;opacity:0;z-index:2}.pet-wrap:before{background:radial-gradient(ellipse at center,#ffffff 0%,#ffffff 28%,rgba(255,255,255,.75) 52%,rgba(255,255,255,.18) 78%,transparent 100%);filter:blur(3px);transform:scale(.3)}.pet-wrap:after{top:20%;right:-4%;bottom:20%;left:-4%;background:radial-gradient(circle,rgba(255,238,200,.55) 0%,rgba(255,255,255,.35) 38%,rgba(200,220,255,.15) 62%,transparent 80%);filter:blur(6px);transform:scale(0)}.pet-wrap>.heart-pop{z-index:3}.pet-wrap.phase-out .pet-bouncer{animation:petCloudOut .4s cubic-bezier(.4,.08,.55,.95) forwards}.pet-wrap.phase-out:before{animation:cloudPuffOut .4s cubic-bezier(.34,1.2,.55,1) forwards}.pet-wrap.phase-out:after{animation:haloPuffOut .4s cubic-bezier(.34,1.2,.55,1) .04s forwards}.pet-wrap.phase-in .pet-bouncer{animation:petCloudIn .55s cubic-bezier(.34,1.3,.55,1) forwards}.pet-wrap.phase-in:before{animation:cloudPuffIn .55s cubic-bezier(.34,1.1,.45,1) forwards}.pet-wrap.phase-in:after{animation:haloPuffIn .55s cubic-bezier(.34,1.1,.45,1) forwards}@keyframes petCloudOut{0%{opacity:1;transform:translateY(0) scale(1) rotate(0)}55%{opacity:.35;transform:translateY(-8px) scale(.92) rotate(-4deg)}to{opacity:0;transform:translateY(-14px) scale(.82) rotate(-8deg)}}@keyframes petCloudIn{0%{opacity:0;transform:translateY(-14px) scale(.7) rotate(-8deg)}30%{opacity:1;transform:translateY(-5px) scale(1.1) rotate(7deg)}50%{transform:translateY(2px) scale(.96) rotate(-3deg)}70%{transform:translateY(-2px) scale(1.03) rotate(2deg)}85%{transform:translateY(0) scale(.99) rotate(-.5deg)}to{opacity:1;transform:translateY(0) scale(1) rotate(0)}}@keyframes cloudPuffOut{0%{transform:scale(.3) rotate(0);opacity:0}60%{transform:scale(1.18) rotate(4deg);opacity:1}to{transform:scale(1.32) rotate(0);opacity:1}}@keyframes cloudPuffIn{0%{transform:scale(1.32) rotate(0);opacity:1}50%{transform:scale(1.55) rotate(-3deg);opacity:.7}to{transform:scale(1.95) rotate(0);opacity:0}}@keyframes haloPuffOut{0%{transform:scale(0);opacity:0}60%{opacity:.55}to{transform:scale(1.4);opacity:.6}}@keyframes haloPuffIn{0%{transform:scale(1.4);opacity:.6}50%{transform:scale(2.05);opacity:.25}to{transform:scale(2.5);opacity:0}}.pet-bouncer.idle-yawn{animation:idleYawn 1.6s ease-in-out}@keyframes idleYawn{0%{transform:translateY(0) scaleY(1)}30%{transform:translateY(-8px) scaleY(1.05)}55%{transform:translateY(3px) scaleY(.96)}75%{transform:translateY(-1px) scaleY(1.01)}to{transform:translateY(0) scaleY(1)}}.pet-bouncer.idle-tail-chase{animation:idleTailChase 1.8s cubic-bezier(.45,.05,.55,.95)}@keyframes idleTailChase{0%{transform:rotate(0) scaleX(1)}18%{transform:rotate(-24deg) scaleX(.93)}40%{transform:rotate(21deg) scaleX(.93)}60%{transform:rotate(-15deg) scaleX(.96)}78%{transform:rotate(11deg) scaleX(.98)}92%{transform:rotate(-4deg) scaleX(.99)}to{transform:rotate(0) scaleX(1)}}.pet-bouncer.idle-look-around{animation:idleLookAround 1.5s ease-in-out}@keyframes idleLookAround{0%{transform:translate(0) rotate(0)}25%{transform:translate(-14px) rotate(-4deg)}50%{transform:translate(0) rotate(0)}75%{transform:translate(14px) rotate(4deg)}to{transform:translate(0) rotate(0)}}.pet-bouncer.idle-stretch{animation:idleStretch 1.6s ease-in-out}@keyframes idleStretch{0%{transform:scale(1)}40%{transform:scale(1.09,.88)}70%{transform:scale(.97,1.04)}to{transform:scale(1)}}.pet-bouncer.mouse-near{animation:mouseNearBounce .5s cubic-bezier(.34,1.56,.64,1)}@keyframes mouseNearBounce{0%{transform:translateY(0) scale(1)}40%{transform:translateY(-12px) scale(1.03)}to{transform:translateY(0) scale(1)}}.captcha-row{display:flex;gap:10px;align-items:stretch;margin-bottom:14px}.captcha-input{flex:1;margin-bottom:0;letter-spacing:4px;text-transform:uppercase;font-weight:700}.captcha-img{flex-shrink:0;width:120px;height:44px;padding:0;border:1.5px solid var(--line);border-radius:12px;background:#f5f0e8;cursor:pointer;overflow:hidden;display:grid;place-items:center;transition:border-color .2s,transform .15s}.captcha-img:hover{border-color:var(--accent)}.captcha-img:active{transform:scale(.96)}.captcha-img svg{display:block;width:100%;height:100%}.act-disabled{opacity:.35;filter:saturate(.4);cursor:not-allowed}.act-disabled:active,.act-disabled:hover{transform:none}.nick-modal{width:min(380px,90vw);text-align:center}.nick-input{width:100%;margin:18px 0 20px;padding:12px 14px;border-radius:14px;border:2px solid rgba(120,100,60,.18);background:#fff9;font-size:15px;font-family:inherit;color:var(--ink);outline:none;transition:border-color .2s;box-sizing:border-box}.nick-input:focus{border-color:var(--accent)}.modal-actions{display:flex;gap:12px;justify-content:center}.modal-actions .btn-ghost,.modal-actions .btn-primary{flex:1;padding:11px;border-radius:14px;font-size:14px;font-weight:700;cursor:pointer;border:none;font-family:inherit;transition:transform .15s,opacity .2s}.modal-actions .btn-ghost{background:#78643c1f;color:var(--ink-soft)}.modal-actions .btn-ghost:hover{background:#78643c33}.modal-actions .btn-primary{background:linear-gradient(135deg,var(--accent),#F5A623);color:#fff;box-shadow:0 6px 18px #f2a03659}.modal-actions .btn-primary:hover{transform:translateY(-2px)}.modal-actions button:disabled{opacity:.5;cursor:not-allowed;transform:none}.feedback-modal{width:min(480px,92vw);text-align:left}.feedback-modal h2{text-align:center}.fb-types{display:flex;gap:10px;margin:6px 0 16px}.fb-chip{flex:1;padding:9px 0;border-radius:999px;border:1px solid rgba(120,100,60,.2);background:#ffffff80;color:var(--ink-soft);font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s}.fb-chip:hover{border-color:var(--accent)}.fb-chip.on{background:linear-gradient(135deg,var(--accent),#F5A623);border-color:transparent;color:#fff;box-shadow:0 6px 16px #f2a0364d}.fb-textarea{min-height:120px;max-height:260px;resize:vertical;line-height:1.6;margin-bottom:4px}.fb-counter{text-align:right;font-size:12px;color:var(--ink-soft);margin-bottom:10px;font-variant-numeric:tabular-nums}.feedback-modal .field{margin-bottom:12px}.landing-page{position:relative;z-index:10;min-height:100vh;color:var(--ink)}.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1)}.reveal.in{opacity:1;transform:translateY(0)}.landing-nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:16px 0;transition:background .3s,box-shadow .3s,padding .3s}.landing-nav.scrolled{background:#fffdf7bf;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 4px 24px #32281414;padding:10px 0}.landing-nav-inner{max-width:1120px;margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:24px}.landing-brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:18px}.landing-brand .logo{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;overflow:hidden;flex-shrink:0}.landing-brand .logo img{width:100%;height:100%;object-fit:contain;display:block}.landing-brand-name{letter-spacing:1px}.landing-nav-links{display:flex;gap:28px;margin-left:auto;margin-right:8px}.landing-nav-links a{color:var(--ink-soft);text-decoration:none;font-size:14px;font-weight:600;transition:color .2s;cursor:pointer}.landing-nav-links a:hover{color:var(--accent)}.landing-cta-nav{padding:9px 22px;font-size:14px}.landing-hero{position:relative;min-height:100vh;display:flex;align-items:center;padding:120px 24px 60px;overflow:hidden}.landing-hero-inner{max-width:1120px;margin:0 auto;width:100%;display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:center}.landing-badge{display:inline-block;padding:6px 16px;border-radius:999px;background:#e8833a1f;color:var(--accent);font-size:13px;font-weight:600;margin-bottom:22px}.landing-title{font-size:clamp(34px,5vw,56px);font-weight:800;line-height:1.2;letter-spacing:1px;margin-bottom:22px}.landing-title .accent{background:linear-gradient(135deg,#e8833a,#d4537e);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.landing-subtitle{font-size:16px;line-height:1.8;color:var(--ink-soft);margin-bottom:32px;max-width:480px}.landing-hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:24px}.landing-cta-main{padding:15px 36px;font-size:16px}.landing-cta-ghost{padding:15px 32px;font-size:16px}.landing-hero-meta{display:flex;gap:20px;flex-wrap:wrap;font-size:13px;color:var(--ink-soft)}.landing-hero-pet{position:relative;display:grid;place-items:center;min-height:380px}.landing-pet-float{animation:landingFloat 4s ease-in-out infinite;filter:drop-shadow(0 24px 40px rgba(80,50,20,.18))}@keyframes landingFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-16px)}}.landing-pet-shadow{position:absolute;bottom:30px;width:200px;height:24px;border-radius:50%;background:radial-gradient(ellipse,rgba(80,50,20,.22),transparent 70%);animation:landingShadow 4s ease-in-out infinite}@keyframes landingShadow{0%,to{transform:scale(1);opacity:.5}50%{transform:scale(.82);opacity:.32}}.landing-bubble{position:absolute;background:#ffffffd9;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.8);border-radius:16px;padding:10px 16px;font-size:13px;font-weight:600;color:var(--ink);box-shadow:0 8px 24px #3228141f;white-space:nowrap;opacity:0;animation:bubblePop 9s ease-in-out infinite}.landing-bubble:after{content:"";position:absolute;bottom:-7px;left:24px;width:14px;height:14px;background:#ffffffd9;border-right:1px solid rgba(255,255,255,.8);border-bottom:1px solid rgba(255,255,255,.8);transform:rotate(45deg)}.landing-bubble-1{top:8%;left:-4%;animation-delay:0s}.landing-bubble-2{top:22%;right:-2%;animation-delay:3s}.landing-bubble-3{bottom:22%;left:0%;animation-delay:6s}@keyframes bubblePop{0%,60%,to{opacity:0;transform:translateY(8px) scale(.9)}15%,45%{opacity:1;transform:translateY(0) scale(1)}}.landing-scroll-hint{position:absolute;bottom:28px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:4px;font-size:12px;color:var(--ink-soft);cursor:pointer;animation:bounceDown 2s ease-in-out infinite}.landing-scroll-hint svg{width:18px;height:18px}@keyframes bounceDown{0%,to{transform:translate(-50%)}50%{transform:translate(-50%,8px)}}.landing-section{position:relative;padding:96px 24px}.landing-section-alt{background:#fffdf766}.landing-section-inner{max-width:1120px;margin:0 auto}.landing-section-head{text-align:center;margin-bottom:56px}.landing-section-head h2{font-size:clamp(26px,3.5vw,38px);font-weight:800;margin-bottom:12px;letter-spacing:1px}.landing-section-head p{font-size:15px;color:var(--ink-soft)}.feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.feature-card{padding:28px 22px;border-radius:20px;transition:transform .25s,box-shadow .25s}.feature-card:hover{transform:translateY(-6px);box-shadow:0 24px 60px #3228142e}.feature-icon{width:52px;height:52px;border-radius:16px;background:#e8833a1f;display:grid;place-items:center;margin-bottom:18px}.feature-icon svg{width:26px;height:26px}.feature-card h3{font-size:17px;font-weight:700;margin-bottom:10px}.feature-card p{font-size:13.5px;line-height:1.7;color:var(--ink-soft)}.preview-list{display:flex;flex-direction:column;gap:80px}.preview-row{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}.preview-row.reverse{direction:rtl}.preview-row.reverse>*{direction:ltr}.preview-visual{position:relative;display:grid;place-items:center;min-height:280px;background:linear-gradient(135deg,#ffffff80,#fff3);border:1px solid var(--glass-border);border-radius:28px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.preview-pet-wrap{animation:landingFloat 5s ease-in-out infinite;filter:drop-shadow(0 18px 30px rgba(80,50,20,.15))}.preview-tag{position:absolute;top:18px;left:18px;padding:5px 14px;border-radius:999px;background:linear-gradient(135deg,var(--accent),#F5A623);color:#fff;font-size:12px;font-weight:700;letter-spacing:1px}.preview-deco{position:absolute;font-size:40px;animation:landingFloat 4s ease-in-out infinite}.preview-deco-food{top:24px;right:28px;animation-delay:.8s}.preview-deco-walk{bottom:28px;right:32px;animation-delay:1.2s}.preview-deco-gift{top:30px;right:32px;animation-delay:.4s}.preview-text h3{font-size:26px;font-weight:800;margin-bottom:16px}.preview-text p{font-size:15px;line-height:1.9;color:var(--ink-soft)}.landing-ticker-section{padding-bottom:80px}.landing-ticker{border-radius:20px;padding:18px 0;overflow:hidden}.landing-ticker-track{overflow:hidden}.landing-ticker-flow{display:inline-flex;white-space:nowrap;animation:landingTickerScroll 40s linear infinite}.landing-ticker:hover .landing-ticker-flow{animation-play-state:paused}.landing-ticker-copy{display:inline-flex;gap:32px;padding-right:32px}.landing-tick-item{display:inline-flex;align-items:center;gap:10px;font-size:14px;color:var(--ink)}.lti-icon{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;flex-shrink:0}.lti-icon svg{width:17px;height:17px}@keyframes landingTickerScroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.testimonial-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.testimonial-card{padding:28px 24px;border-radius:20px;position:relative;transition:transform .25s,box-shadow .25s}.testimonial-card:hover{transform:translateY(-4px);box-shadow:0 20px 50px #32281429}.testimonial-quote{font-size:48px;line-height:1;color:var(--accent);opacity:.4;font-family:Georgia,serif;margin-bottom:8px}.testimonial-text{font-size:14.5px;line-height:1.8;color:var(--ink);margin-bottom:18px}.testimonial-name{font-size:14px;font-weight:700;color:var(--ink)}.testimonial-role{font-size:12px;color:var(--ink-soft);margin-top:2px}.details-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.detail-card{position:relative;padding:26px 22px;border-radius:20px;background:#ffffff8c;border:1px solid rgba(255,255,255,.7);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);transition:transform .25s,box-shadow .25s,background .25s;overflow:hidden}.detail-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--accent),#F5A623,#D4537E);opacity:0;transition:opacity .25s}.detail-card:hover{transform:translateY(-5px);background:#fffc;box-shadow:0 22px 50px #32281429}.detail-card:hover:before{opacity:1}.detail-emoji{font-size:34px;line-height:1;margin-bottom:14px;display:inline-block;transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.detail-card:hover .detail-emoji{transform:scale(1.18) rotate(-8deg)}.detail-card h3{font-size:16px;font-weight:700;margin-bottom:8px;display:flex;align-items:center;gap:8px}.detail-card h3:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,rgba(232,131,58,.3),transparent)}.detail-card p{font-size:13.5px;line-height:1.75;color:var(--ink-soft)}.landing-cta-section{padding:96px 24px;display:grid;place-items:center}.landing-cta-box{max-width:640px;width:100%;text-align:center;padding:56px 40px;border-radius:28px}.landing-cta-box h2{font-size:clamp(24px,3.5vw,34px);font-weight:800;margin-bottom:14px}.landing-cta-box>p{font-size:15px;color:var(--ink-soft);margin-bottom:32px}.landing-cta-box .landing-cta-main{padding:16px 48px;font-size:16px}.landing-cta-foot{margin-top:22px;font-size:12px;color:var(--ink-soft)}.landing-cta-foot a{color:var(--accent);text-decoration:none;margin:0 4px}.landing-cta-foot a:hover{text-decoration:underline}.landing-footer{border-top:1px solid rgba(120,100,60,.12);padding:40px 24px 32px;background:#fffdf780}.landing-footer-inner{max-width:1120px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:16px}.landing-footer-brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:16px}.landing-footer-brand .logo{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;overflow:hidden}.landing-footer-brand .logo img{width:100%;height:100%;object-fit:contain;display:block}.landing-footer-links{display:flex;gap:24px;flex-wrap:wrap;justify-content:center}.landing-footer-links a,.landing-footer-links button{background:none;border:none;color:var(--ink-soft);font-size:13px;font-family:inherit;cursor:pointer;text-decoration:none;padding:0}.landing-footer-links a:hover,.landing-footer-links button:hover{color:var(--accent)}.landing-footer-copy{font-size:12px;color:var(--ink-soft);opacity:.8}@media(max-width:900px){.feature-grid,.details-grid{grid-template-columns:repeat(2,1fr)}.testimonial-grid{grid-template-columns:1fr;max-width:480px;margin:0 auto}.landing-hero-inner{grid-template-columns:1fr;gap:32px;text-align:center}.landing-hero-text{order:2}.landing-hero-pet{order:1;min-height:300px}.landing-subtitle{margin-left:auto;margin-right:auto}.landing-hero-actions,.landing-hero-meta{justify-content:center}.landing-bubble-1{left:5%}.landing-bubble-2{right:5%}.preview-row,.preview-row.reverse{grid-template-columns:1fr;gap:28px;direction:ltr}.preview-text{text-align:center}.landing-nav-links{display:none}}@media(max-width:560px){.landing-hero{padding:100px 16px 48px}.landing-section{padding:64px 16px}.feature-grid,.details-grid{grid-template-columns:1fr}.landing-cta-box{padding:40px 24px}.landing-bubble{font-size:12px;padding:8px 12px}.landing-bubble-3{display:none}.landing-pet-float svg{width:220px!important;height:220px!important}.landing-hero-actions .btn{width:100%}.landing-footer-links{gap:16px}}
