:root{
  --ink:#162138;--muted:#647081;--green:#6f9f5c;--green-dark:#507c43;--green-soft:#e8f0e1;
  --cream:#f7f4ec;--paper:#fffefa;--line:#e8e4da;--shadow:0 18px 48px rgba(39,49,38,.14);
  --top:76px;--dock:76px;--px:0px;--py:0px;--day-tint:rgba(255,232,181,.12)
}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}body{font-family:Inter,ui-rounded,"SF Pro Rounded",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--cream);text-rendering:optimizeLegibility}button,a{font:inherit}button{cursor:pointer}.svg-defs{position:absolute;width:0;height:0;overflow:hidden}.mobile-only{display:none}
.app-shell{height:100dvh;display:grid;grid-template-columns:236px minmax(0,1fr) 326px;background:var(--cream)}
.sidebar{background:linear-gradient(180deg,#fffefa 0%,#f7f5ef 100%);border-right:1px solid var(--line);padding:22px 18px;display:flex;flex-direction:column;gap:22px;z-index:4}.brand{text-decoration:none;font-size:34px;letter-spacing:-2px;font-weight:950;color:#1e2d45;display:flex;align-items:center;width:max-content}.brand span{color:#1f3049}.brand b{color:#6d9d59}.brand i{width:8px;height:8px;border-radius:50%;background:#d97874;margin:10px 0 0 4px}.profile-mini{display:grid;grid-template-columns:50px 1fr;gap:11px;align-items:center;padding:10px;border-radius:17px;background:linear-gradient(145deg,#f3f5ee,#eef1e8);border:1px solid #e0e6d8;box-shadow:inset 0 1px rgba(255,255,255,.75)}.profile-mini img{width:50px;height:50px;border-radius:50%;object-fit:cover;box-shadow:0 4px 12px rgba(49,66,43,.12)}.profile-mini strong,.profile-mini small{display:block}.profile-mini strong{font-size:14px}.profile-mini small{color:var(--muted);font-size:11px;margin-top:2px}.side-nav{display:grid;gap:8px}.side-nav button{border:0;background:transparent;color:#334052;border-radius:14px;padding:13px 14px;display:flex;align-items:center;gap:13px;font-weight:800;text-align:left;transition:.18s ease}.side-nav button svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.side-nav button.active{background:#e7ecdf;color:#3f6740;box-shadow:inset 3px 0 #6f9f5c}.side-nav button:hover{background:#eef1e8;transform:translateX(2px)}.side-note{margin-top:auto;border-top:1px solid var(--line);padding:18px 6px 4px;display:flex;gap:10px;color:#6a7769;font-size:12px;line-height:1.45}.side-note svg{width:20px;height:20px;fill:none;stroke:#6f9f5c;stroke-width:1.8;flex:0 0 auto}
.game-main{min-width:0;display:grid;grid-template-rows:var(--top) minmax(0,1fr);background:#ded7ca;padding:0 10px 10px}.topbar{height:var(--top);margin:0 -10px;background:#fffefaf2;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 18px;gap:10px;z-index:5;backdrop-filter:blur(16px)}.greeting{margin-right:auto;display:grid;gap:2px}.greeting b{font-size:15px}.greeting small{font-size:11px;color:var(--muted)}.wallet{height:38px;padding:0 12px;border-radius:999px;background:#f3f0e8;border:1px solid #e7e1d6;display:flex;align-items:center;gap:8px;font-size:13px;box-shadow:0 4px 14px rgba(54,57,46,.04)}.wallet svg{width:20px;height:20px;fill:none;stroke:#9b7a2c;stroke-width:1.8}.wallet:nth-of-type(2) svg{stroke:#7c69aa}.top-actions{display:flex;gap:7px}.top-actions button{width:38px;height:38px;border:1px solid #e7e1d6;background:#fff;border-radius:12px;color:#526071;display:grid;place-items:center;transition:.16s ease}.top-actions button:hover{transform:translateY(-1px);border-color:#cfd9c8}.top-actions svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.room-stage{position:relative;min-height:0;overflow:hidden;background:#d9d0bf;isolation:isolate;border-radius:22px;box-shadow:0 16px 40px rgba(50,55,43,.16),inset 0 0 0 1px rgba(255,255,255,.45)}.scene-world{position:absolute;inset:-8px;z-index:0;cursor:pointer;transform:translate3d(var(--px),var(--py),0) scale(1.018);transform-origin:center;transition:transform .28s ease-out,filter .3s ease}.room-stage.tiny-active .scene-world{transform:translate3d(var(--px),var(--py),0) scale(1.026);filter:saturate(1.018) contrast(1.006)}.room-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%;user-select:none;-webkit-user-drag:none}.tiny-character{position:absolute;z-index:3;--dir:1;border:0;background:transparent;padding:0;margin:0;cursor:pointer;outline:none;transform:scaleX(var(--dir));transform-origin:50% 94%;filter:drop-shadow(0 16px 13px rgba(73,57,39,.18));transition:filter .2s ease;isolation:isolate}.tiny-character::after{content:"";position:absolute;left:17%;right:14%;bottom:1.5%;height:9%;border-radius:50%;background:rgba(54,48,38,.13);filter:blur(7px);z-index:-1;transform:scaleX(.9);animation:miloShadowBreath 3.8s ease-in-out infinite}.tiny-character:focus-visible{filter:drop-shadow(0 0 0 rgba(0,0,0,0)) drop-shadow(0 0 9px rgba(111,159,92,.75))}.tiny-character-body{position:relative;z-index:1;display:block;width:100%;height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none;transform-origin:50% 94%;animation:miloBreath 3.8s ease-in-out infinite;will-change:transform,filter}.milo-face-fx{position:absolute;inset:0;z-index:4;width:100%;height:100%;overflow:visible;pointer-events:none}.milo-eyelids{opacity:0;transform-origin:145px 106px}.milo-lid{fill:#ead8c6;stroke:#c99168;stroke-width:1.1}.milo-lash{fill:none;stroke:#3d2b26;stroke-width:3.2;stroke-linecap:round;opacity:.88}.milo-ear-lines,.milo-call-lines,.milo-tail-lines{opacity:0;fill:none;stroke-linecap:round;stroke-linejoin:round}.milo-ear-lines{stroke:#f0c39a;stroke-width:4.2}.milo-call-lines{stroke:#6f9f5c;stroke-width:3.6}.milo-tail-lines{stroke:#d79a67;stroke-width:5}.milo-breath-mark{position:absolute;z-index:5;left:48%;top:54%;width:22%;height:13%;border-radius:50%;border:1px solid rgba(255,255,255,.42);opacity:0;pointer-events:none;transform:translate(-50%,-50%) scale(.82)}.tiny-character.is-blinking .milo-eyelids{animation:miloBlink .18s ease-in-out}.tiny-character.is-ear-twitch .milo-ear-lines{animation:miloEarLines .52s ease}.tiny-character.is-tail-wag .milo-tail-lines{animation:miloTailLines .76s ease-in-out}.tiny-character.is-idle-tilt .tiny-character-body{animation:miloIdleTilt 1.05s ease-in-out}.tiny-character.is-idle-tilt .milo-ear-lines{animation:miloEarLines .6s ease}.tiny-character.is-pet .tiny-character-body{animation:miloPet .92s cubic-bezier(.22,.8,.3,1)}.tiny-character.is-pet .milo-tail-lines{animation:miloTailLines .9s ease-in-out}.tiny-character.is-pet .milo-eyelids{animation:miloHappyBlink .72s ease}.tiny-character.is-observe .tiny-character-body{animation:miloObserve 1.12s ease-in-out}.tiny-character.is-observe .milo-ear-lines{animation:miloEarLines .72s ease}.tiny-character.is-call .tiny-character-body{animation:miloCall .96s cubic-bezier(.2,.85,.3,1)}.tiny-character.is-call .milo-call-lines{animation:miloCallLines .88s ease}.tiny-character.is-call .milo-ear-lines{animation:miloEarLines .72s ease}.tiny-character.is-clicked .tiny-character-body{filter:saturate(1.045) brightness(1.012)}.tiny-character.is-pet .milo-breath-mark{animation:miloWarmGlow .92s ease}.tiny-character.is-moving .tiny-character-body{animation:miloWalk .58s ease-in-out infinite}.tiny-character.is-moving .milo-tail-lines{animation:miloTailLines .72s ease-in-out infinite}.tiny-character.is-moving .milo-ear-lines{animation:miloEarLines 1.2s ease-in-out infinite}.tiny-character.is-moving .milo-call-lines{opacity:0}.tiny-character.is-relaxing .tiny-character-body{animation:miloRelax 4.1s ease-in-out infinite}.tiny-character.is-relaxing .milo-eyelids{animation:miloHappyBlink 3.2s ease-in-out infinite}.tiny-character.is-watching .tiny-character-body{animation:miloWatch 2.8s ease-in-out infinite}.tiny-character.is-watching .milo-ear-lines{animation:miloEarLines 2.2s ease-in-out infinite}.tiny-character.is-playing .tiny-character-body{animation:miloPlay .72s cubic-bezier(.2,.8,.3,1) infinite}.tiny-character.is-playing::after{animation:miloShadowPlay .72s ease-in-out infinite}.ambient{position:absolute;inset:0;z-index:1;pointer-events:none}.ambient-light{background:radial-gradient(circle at 52% 18%,var(--day-tint),transparent 42%),linear-gradient(118deg,rgba(255,246,210,.18),transparent 36%)}.ambient-vignette{background:linear-gradient(180deg,rgba(18,26,31,.02),transparent 52%,rgba(25,27,21,.13)),radial-gradient(circle at center,transparent 58%,rgba(42,39,31,.08))}.motes{position:absolute;inset:0;z-index:2;overflow:hidden;pointer-events:none}.motes i{position:absolute;width:3px;height:3px;border-radius:50%;background:rgba(255,252,225,.72);box-shadow:0 0 9px rgba(255,248,207,.55);animation:mote 9s linear infinite;opacity:0}.motes i:nth-child(1){left:38%;top:18%;animation-delay:-1s}.motes i:nth-child(2){left:56%;top:29%;animation-delay:-4s;animation-duration:11s}.motes i:nth-child(3){left:72%;top:20%;animation-delay:-6s;animation-duration:13s}.motes i:nth-child(4){left:44%;top:42%;animation-delay:-8s;animation-duration:10s}.motes i:nth-child(5){left:64%;top:48%;animation-delay:-2s;animation-duration:12s}.room-label{position:absolute;left:18px;top:18px;z-index:5;background:#fffefae8;border:1px solid #ffffffc8;box-shadow:0 10px 26px rgba(53,61,48,.14);backdrop-filter:blur(12px);border-radius:15px;padding:9px 13px;display:grid;gap:1px}.room-label small{font-size:9px;letter-spacing:.14em;color:#789070;font-weight:900}.room-label strong{font-size:14px}.tiny-focus{position:absolute;z-index:6;left:50%;top:57%;transform:translate(-50%,-50%) scale(.84);width:26%;aspect-ratio:1;border-radius:50%;border:2px solid rgba(255,255,255,.9);box-shadow:0 0 0 11px rgba(111,159,92,.17),0 0 60px rgba(255,255,255,.5);opacity:0;pointer-events:none}.tiny-focus.show{animation:focusPop 1.15s ease}.reaction-toast{position:absolute;z-index:10;left:50%;bottom:22px;transform:translate(-50%,18px);padding:11px 16px;background:#fffefae8;border:1px solid #fff;box-shadow:0 12px 30px rgba(41,50,39,.18);border-radius:999px;font-weight:750;font-size:12px;color:#405047;opacity:0;pointer-events:none;backdrop-filter:blur(12px)}.reaction-toast.show{animation:toastIn 2s ease}.room-quick{position:absolute;z-index:8;right:18px;bottom:18px;display:flex;gap:8px}.room-quick button{border:1px solid rgba(255,255,255,.78);background:#fffefae6;backdrop-filter:blur(12px);color:#34463a;border-radius:14px;padding:10px 13px;display:flex;gap:8px;align-items:center;font-weight:800;box-shadow:0 8px 22px rgba(44,54,43,.15);transition:.15s ease}.room-quick button:hover{transform:translateY(-2px);background:#fff}.room-quick svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8}.object-hotspot{position:absolute;z-index:6;border:0;background:transparent;padding:0;outline:none}.object-hotspot>span{position:absolute;left:50%;bottom:calc(100% + 8px);transform:translate(-50%,6px);display:flex;align-items:center;gap:6px;background:#fffefae8;border:1px solid rgba(255,255,255,.9);color:#465348;border-radius:999px;padding:7px 10px;font-size:10px;font-weight:850;white-space:nowrap;box-shadow:0 8px 22px rgba(39,48,38,.13);backdrop-filter:blur(12px);opacity:0;pointer-events:none;transition:.16s ease}.object-hotspot>span svg{width:15px;height:15px;fill:none;stroke:#67845f;stroke-width:1.8}.object-hotspot:hover>span,.object-hotspot:focus-visible>span{opacity:1;transform:translate(-50%,0)}.object-hotspot:focus-visible{box-shadow:0 0 0 3px rgba(111,159,92,.38);border-radius:18px}.sofa-spot{left:3%;top:28%;width:43%;height:32%}.tv-spot{right:2%;top:22%;width:27%;height:28%}.toy-spot{right:4%;bottom:8%;width:25%;height:23%}
.right-panel{background:linear-gradient(180deg,#faf8f2,#f5f2ea);border-left:1px solid var(--line);padding:16px;overflow:auto}.tiny-card{background:#fffefb;border:1px solid #e7e2d8;border-radius:27px;padding:18px;box-shadow:var(--shadow)}.tiny-card-head{display:grid;grid-template-columns:76px 1fr;gap:13px;align-items:center}.avatar-wrap{position:relative;width:76px;height:76px}.avatar-wrap img{width:76px;height:76px;object-fit:cover;border-radius:50%;border:4px solid #edf1e8;box-shadow:0 8px 20px rgba(58,74,51,.14)}.avatar-wrap i{position:absolute;right:1px;bottom:3px;width:15px;height:15px;border-radius:50%;background:#7eaa6d;border:3px solid #fff}.tiny-card-head small{font-size:9px;letter-spacing:.15em;color:#799171;font-weight:900}.tiny-card-head h2{font-size:25px;margin:2px 0}.tiny-card-head p{font-size:11.5px;line-height:1.5;color:var(--muted);margin:0}.profile-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:18px 0}.profile-facts>div{background:#f6f5ef;border:1px solid #ebe7dd;border-radius:13px;padding:9px 8px;min-width:0}.profile-facts span,.profile-facts b{display:block}.profile-facts span{font-size:8px;color:#89918b;text-transform:uppercase;letter-spacing:.08em;font-weight:850}.profile-facts b{font-size:10px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.primary-action{width:100%;border:0;border-radius:16px;background:linear-gradient(135deg,#79a868,#638f55);color:#fff;padding:13px 16px;display:flex;justify-content:center;align-items:center;gap:9px;font-weight:900;box-shadow:0 12px 24px rgba(92,133,78,.23);transition:.16s ease}.primary-action:hover{transform:translateY(-1px);box-shadow:0 15px 28px rgba(92,133,78,.27)}.primary-action svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8}.action-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.action-grid button{min-width:0;border:1px solid #e6e2d9;background:#fbfaf6;border-radius:14px;padding:10px 5px;color:#435247;display:grid;place-items:center;gap:4px;transition:.15s ease}.action-grid button:hover{background:#f1f5ec;border-color:#dce5d6;transform:translateY(-1px)}.action-grid svg{width:20px;height:20px;fill:none;stroke:#6a8b61;stroke-width:1.8}.action-grid span{font-size:10px;font-weight:850}.action-grid small{font-size:8px;color:#8a918a}.home-card{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:start;margin-top:14px;background:linear-gradient(145deg,#f1f4eb,#f7f8f3);border:1px solid #e2e8d9;border-radius:15px;padding:12px}.home-card svg{width:22px;height:22px;fill:none;stroke:#6f9f5c;stroke-width:1.8}.home-card b,.home-card span{display:block}.home-card b{font-size:11px}.home-card span{font-size:9px;color:#6b756b;margin-top:2px;line-height:1.45}
.sheet-backdrop,.sheet,.mobile-dock{display:none}

@keyframes miloBreath{0%,100%{transform:translateY(0) scale(1)}45%{transform:translateY(-.45%) scale(1.002,1.006)}60%{transform:translateY(-.2%) scale(1.001,1.003)}}
@keyframes miloShadowBreath{0%,100%{transform:scaleX(.9);opacity:.74}50%{transform:scaleX(.94);opacity:.63}}
@keyframes miloBlink{0%,18%,82%,100%{opacity:0;transform:scaleY(.25)}38%,62%{opacity:1;transform:scaleY(1)}}
@keyframes miloHappyBlink{0%,20%,78%,100%{opacity:0;transform:scaleY(.3)}32%,66%{opacity:.98;transform:scaleY(.92)}}
@keyframes miloEarLines{0%,100%{opacity:0;transform:translateY(0)}25%{opacity:.4;transform:translateY(-2px)}55%{opacity:.15;transform:translateY(1px)}}
@keyframes miloTailLines{0%,100%{opacity:0;transform:translateX(0) rotate(0)}22%{opacity:.55;transform:translateX(-2px) rotate(-5deg)}48%{opacity:.18;transform:translateX(3px) rotate(5deg)}72%{opacity:.48;transform:translateX(-1px) rotate(-3deg)}}
@keyframes miloCallLines{0%,100%{opacity:0;transform:translateX(0)}24%,64%{opacity:.7;transform:translateX(3px)}42%,82%{opacity:.25;transform:translateX(7px)}}
@keyframes miloIdleTilt{0%,100%{transform:translateY(0) rotate(0) scale(1)}30%{transform:translateY(-.5%) rotate(-.75deg) scale(1.004)}66%{transform:translateY(-.25%) rotate(.45deg) scale(1.002)}}
@keyframes miloPet{0%{transform:translateY(0) scale(1)}26%{transform:translateY(-1.8%) scale(1.018,1.008) rotate(-.55deg)}52%{transform:translateY(-.6%) scale(1.01,1.018) rotate(.4deg)}78%{transform:translateY(-1.1%) scale(1.014) rotate(-.25deg)}100%{transform:translateY(0) scale(1)}}
@keyframes miloObserve{0%,100%{transform:translateY(0) rotate(0) scale(1)}28%{transform:translateY(-.5%) rotate(-1.15deg) scale(1.008)}62%{transform:translateY(-.35%) rotate(1.05deg) scale(1.008)}}
@keyframes miloCall{0%{transform:translateY(0) scale(1)}28%{transform:translateY(-2.3%) scale(1.022) rotate(-.45deg)}56%{transform:translateY(-.9%) scale(1.014) rotate(.35deg)}78%{transform:translateY(-1.6%) scale(1.018)}100%{transform:translateY(0) scale(1)}}
@keyframes miloWarmGlow{0%,100%{opacity:0;transform:translate(-50%,-50%) scale(.82)}38%{opacity:.65;transform:translate(-50%,-50%) scale(1.12);box-shadow:0 0 30px rgba(255,255,255,.3)}}
@keyframes miloWalk{0%,100%{transform:translateY(0) scale(1)}20%{transform:translateY(-1.3%) scale(1.01,.995) rotate(-.45deg)}50%{transform:translateY(-.2%) scale(.995,1.01) rotate(.38deg)}80%{transform:translateY(-1.1%) scale(1.008,.998) rotate(-.25deg)}}
@keyframes miloRelax{0%,100%{transform:translateY(0) scale(1)}45%{transform:translateY(1.3%) scale(.995,.985)}65%{transform:translateY(.6%) scale(.998,.992)}}
@keyframes miloWatch{0%,100%{transform:translateY(0) rotate(0)}40%{transform:translateY(-.3%) rotate(.8deg)}70%{transform:translateY(-.2%) rotate(-.45deg)}}
@keyframes miloPlay{0%,100%{transform:translateY(0) rotate(0) scale(1)}28%{transform:translateY(-2.6%) rotate(-1deg) scale(1.018)}58%{transform:translateY(-.7%) rotate(1deg) scale(1.01)}82%{transform:translateY(-1.8%) rotate(-.55deg) scale(1.015)}}
@keyframes miloShadowPlay{0%,100%{transform:scaleX(.9);opacity:.72}35%{transform:scaleX(.8);opacity:.48}70%{transform:scaleX(.95);opacity:.62}}
@keyframes focusPop{0%{opacity:0;transform:translate(-50%,-50%) scale(.72)}25%{opacity:1;transform:translate(-50%,-50%) scale(1)}70%{opacity:.7}100%{opacity:0;transform:translate(-50%,-50%) scale(1.15)}}
@keyframes toastIn{0%{opacity:0;transform:translate(-50%,18px)}13%,78%{opacity:1;transform:translate(-50%,0)}100%{opacity:0;transform:translate(-50%,-8px)}}
@keyframes mote{0%{transform:translate3d(0,18px,0);opacity:0}15%{opacity:.62}70%{opacity:.35}100%{transform:translate3d(16px,-45px,0);opacity:0}}
@media(max-width:1180px) and (min-width:901px){.app-shell{grid-template-columns:205px minmax(0,1fr) 282px}.sidebar{padding-inline:12px}.tiny-card{padding:14px}.room-photo{object-position:52% 50%}.action-grid span{font-size:9px}.profile-facts{grid-template-columns:1fr}.profile-facts>div{display:flex;justify-content:space-between;align-items:center}.profile-facts b{margin:0}}
@media(max-width:900px){:root{--top:58px;--dock:76px}.desktop-only{display:none!important}.mobile-only{display:flex}.app-shell{display:block;height:100dvh;background:#e7dfd1}.game-main{height:calc(100dvh - var(--dock) - env(safe-area-inset-bottom));display:grid;grid-template-rows:var(--top) minmax(0,1fr);padding:0}.topbar{margin:0;padding:0 10px;gap:7px;box-shadow:0 2px 14px rgba(40,48,40,.06)}.mobile-brand{font-weight:950;font-size:20px;letter-spacing:-1.2px;color:#1f3049;text-decoration:none;margin-right:auto}.wallet{height:34px;padding:0 9px;font-size:11px}.wallet svg{width:17px;height:17px}.top-actions button{width:34px;height:34px}.room-stage{min-height:0;border-radius:0;box-shadow:none}.scene-world{inset:-5px;transform:scale(1.012)!important}.room-stage.tiny-active .scene-world{transform:scale(1.02)!important}.room-photo{inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 52%}.ambient-vignette{background:linear-gradient(180deg,rgba(18,26,31,.01),transparent 52%,rgba(25,27,21,.09))}.room-label{left:11px;top:11px;padding:7px 10px;border-radius:12px}.room-label strong{font-size:12px}.tiny-focus{width:43%}.tiny-character{filter:drop-shadow(0 10px 10px rgba(73,57,39,.16))}.object-hotspot{display:none}.reaction-toast{bottom:15px;font-size:11px;max-width:84%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-dock{display:flex;position:absolute;left:0;right:0;bottom:0;height:calc(var(--dock) + env(safe-area-inset-bottom));padding:8px 6px max(8px,env(safe-area-inset-bottom));background:#fffefaf2;border-top:1px solid #e4e1d8;z-index:20;align-items:flex-start;justify-content:space-around;backdrop-filter:blur(18px)}.mobile-dock button{border:0;background:transparent;color:#647081;display:grid;place-items:center;gap:3px;min-width:53px}.mobile-dock button svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.mobile-dock small{font-size:10px;font-weight:800}.mobile-dock button.active{color:#587b4e}.sheet-backdrop{position:absolute;inset:0 0 var(--dock);background:rgba(29,39,30,.35);z-index:30}.sheet-backdrop.open{display:block}.sheet{position:absolute;left:0;right:0;bottom:0;z-index:31;background:#fffefa;border-radius:24px 24px 0 0;padding:12px 18px calc(22px + env(safe-area-inset-bottom));transform:translateY(105%);display:block;transition:.25s ease;max-height:76dvh;overflow:auto;box-shadow:0 -20px 50px rgba(28,39,29,.22)}.sheet.open{transform:translateY(0)}.grab{width:42px;height:5px;border-radius:5px;background:#d9d6ce;margin:0 auto 14px}.sheet-close{position:absolute;right:15px;top:12px;border:0;background:#f0eee7;width:32px;height:32px;border-radius:10px;color:#526071;display:grid;place-items:center}.sheet-close svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2}.sheet h2{margin:12px 0 4px;font-size:24px}.sheet p{color:#6c7682;line-height:1.5;font-size:13px}.sheet-profile{display:grid;grid-template-columns:70px 1fr;gap:12px;align-items:center;margin:8px 0 15px}.sheet-profile img{width:70px;height:70px;border-radius:50%;object-fit:cover;border:4px solid #edf1e8}.sheet-profile b,.sheet-profile span{display:block}.sheet-profile b{font-size:19px}.sheet-profile span{font-size:11px;color:#78817a;margin-top:3px}.sheet-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:15px}.sheet-card{padding:14px;border-radius:16px;background:#f7f6f0;border:1px solid #e7e4da}.sheet-icon{width:38px;height:38px;border-radius:12px;background:#e7ede1;color:#5f8356;display:grid;place-items:center}.sheet-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8}.sheet-card b{display:block;margin-top:8px;font-size:12px}.sheet-card small{color:#7f8980;font-size:10px}}
@media(max-width:520px){.room-photo{object-position:50% 53%}.tiny-focus{width:47%}.top-actions button:first-child{display:none}.room-label{top:9px;left:9px}.motes{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.motes,.milo-face-fx,.milo-breath-mark{display:none}.tiny-character-body{animation:none!important}}
button.sheet-card{text-align:left;color:inherit;font:inherit;cursor:pointer}
button.sheet-card:active{transform:scale(.985)}

/* Fase 1.9 — pallina fisica */
.physical-ball{position:absolute;z-index:5;width:42px;height:42px;border:0;border-radius:50%;padding:0;background:linear-gradient(145deg,#77a6dc 0 47%,#f4d878 48% 64%,#d96f67 65% 100%);box-shadow:0 9px 14px rgba(52,45,38,.19),inset -5px -7px 10px rgba(49,67,85,.16),inset 4px 4px 8px rgba(255,255,255,.48);cursor:pointer;transform:translate(-50%,-50%) rotate(var(--ball-spin,0deg));transform-origin:50% 50%;outline:none;will-change:left,top,transform;touch-action:manipulation}
.physical-ball::after{content:"";position:absolute;left:15%;right:15%;bottom:-18%;height:22%;border-radius:50%;background:rgba(46,42,34,.16);filter:blur(5px);pointer-events:none}
.physical-ball:focus-visible{box-shadow:0 0 0 4px rgba(255,255,255,.9),0 0 0 7px rgba(91,137,176,.5),0 9px 14px rgba(52,45,38,.19)}
.ball-panel,.ball-shine{position:absolute;pointer-events:none}.ball-panel-a{inset:8% 43% 8% 43%;border-radius:999px;background:rgba(255,255,255,.55);transform:rotate(28deg)}.ball-panel-b{inset:43% 8% 43% 8%;border-radius:999px;background:rgba(255,255,255,.28);transform:rotate(-18deg)}.ball-shine{width:23%;height:18%;left:21%;top:17%;border-radius:50%;background:rgba(255,255,255,.7);filter:blur(.4px)}
.physical-ball.is-hit{animation:ballHit .28s ease}.physical-ball.is-waiting{animation:ballAttention 1.3s ease-in-out infinite}
@keyframes ballHit{0%,100%{filter:brightness(1)}45%{filter:brightness(1.1) saturate(1.08)}}
@keyframes ballAttention{0%,100%{box-shadow:0 9px 14px rgba(52,45,38,.19),inset -5px -7px 10px rgba(49,67,85,.16),inset 4px 4px 8px rgba(255,255,255,.48)}50%{box-shadow:0 10px 18px rgba(52,45,38,.24),0 0 0 5px rgba(255,255,255,.16),inset -5px -7px 10px rgba(49,67,85,.16),inset 4px 4px 8px rgba(255,255,255,.48)}}
.tiny-character.is-ball-chasing .tiny-character-body{animation:miloWalk .42s ease-in-out infinite}.tiny-character.is-ball-kick .tiny-character-body{animation:miloBallKick .46s cubic-bezier(.2,.8,.3,1)}
@keyframes miloBallKick{0%,100%{transform:translateY(0) rotate(0) scale(1)}38%{transform:translateY(-1.2%) rotate(-1.1deg) scale(1.012)}62%{transform:translateY(.4%) rotate(.8deg) scale(.996,1.008)}}
@media(max-width:900px){.physical-ball{width:36px;height:36px;z-index:6}}
@media(prefers-reduced-motion:reduce){.physical-ball.is-waiting{animation:none}.tiny-character.is-ball-chasing .tiny-character-body,.tiny-character.is-ball-kick .tiny-character-body{animation:none!important}}
.toy-spot{pointer-events:none}

/* Phase 2.0 — autonomous routine */
.routine-status{display:flex;align-items:center;gap:10px;margin:0 0 12px;padding:10px 11px;border:1px solid #e2e8d9;background:linear-gradient(145deg,#f4f7ef,#fafbf7);border-radius:14px}.routine-status>i{width:9px;height:9px;border-radius:50%;background:#6f9f5c;box-shadow:0 0 0 5px rgba(111,159,92,.11);flex:none}.routine-status span,.routine-status b{display:block}.routine-status span{font-size:8px;text-transform:uppercase;letter-spacing:.09em;color:#879286;font-weight:900}.routine-status b{font-size:10.5px;margin-top:2px;color:#405047}.routine-status.is-manual>i{background:#7c69aa;box-shadow:0 0 0 5px rgba(124,105,170,.10)}.routine-status.is-rest>i{background:#8c9d86}.routine-status.is-play>i{background:#6e94be}.routine-status.is-watch>i{background:#b28c58}.routine-status.is-walk>i{background:#6f9f5c}
@media(max-width:1180px) and (min-width:901px){.routine-status{padding:9px}.routine-status b{font-size:9.5px}}
