*{box-sizing:border-box}html{background:#0c1523}body{margin:0;min-height:100vh;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:#f0f6ff;background:radial-gradient(ellipse at 50% 8%,#203a59 0,transparent 58%),#0c1523}.shell{width:min(100%,480px);margin:0 auto;padding:26px 20px 18px}.heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.eyebrow{font-size:9px;letter-spacing:.24em;color:#89acd0;margin:0 0 7px;font-weight:650}h1{font-size:25px;line-height:1.15;letter-spacing:-.045em;font-weight:650;margin:0}.badge{font-size:11px;color:#bbdef5;border:1px solid #95d6ff3b;background:#a9deff0b;border-radius:99px;padding:6px 12px}.scene{position:relative;aspect-ratio:4/5;width:100%;overflow:hidden;border-radius:26px;background:#173151;border:1px solid #b5dfff40;box-shadow:0 18px 55px #0005;isolation:isolate}.room{width:100%;height:100%;object-fit:cover;display:block;user-select:none}.ambient{pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 -35px 45px #12213926;border-radius:inherit}.pet{appearance:none;position:absolute;width:61%;aspect-ratio:1;left:19.5%;bottom:11.5%;padding:0;border:0;background:none;border-radius:40%;cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;z-index:3;outline-offset:-16px}.pet:focus-visible{outline:2px solid #fff}.jump,.breath{display:block;width:100%;height:100%;transform-origin:50% 87%}.breath{animation:breathe 3.8s ease-in-out infinite}.pet-skin{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;mask:url(assets/kaplik-mask.svg) center/100% 100% no-repeat;-webkit-mask:url(assets/kaplik-mask.svg) center/100% 100% no-repeat}.floor-shadow{position:absolute;width:31%;height:3.8%;left:34.5%;bottom:18%;border-radius:50%;background:radial-gradient(ellipse,#1732535c,transparent 70%);z-index:2;pointer-events:none}.greeting{display:flex;gap:9px;justify-content:center;align-items:center;min-height:48px;padding:13px 3px 8px}.greeting p{margin:0;font-size:12px;color:#d4e9f7;line-height:1.5;text-align:center}.status-dot{width:5px;height:5px;border-radius:100%;background:#8eddff;box-shadow:0 0 9px #70c6ff;flex-shrink:0}.actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.action{border:1px solid #aedbff2c;border-radius:14px;background:linear-gradient(135deg,#9ddcff14,#b1deff06);color:#e6f6ff;font-size:12px;min-height:46px;padding:10px 8px;font-family:inherit;cursor:pointer;transition:background .2s,border-color .2s}.action:hover{background:#a9dfff20;border-color:#a9dfff66}.action span{font-size:19px;margin-right:6px;vertical-align:-1px;color:#b4e8ff}.action:focus-visible,summary:focus-visible{outline:2px solid #91d9ff;outline-offset:3px}.hint{text-align:center;color:#8197af;font-size:11px;line-height:1.7;margin:16px 0 18px}.notes{font-size:11px;line-height:1.7;border-top:1px solid #ffffff0e;padding-top:13px;color:#91a8bf}.notes summary{cursor:pointer;color:#a5bdd2;min-height:28px}.notes p{margin:10px 0}.motion-toggle{display:flex;align-items:center;gap:8px;margin-top:12px}footer{text-align:center;color:#526b85;font-size:9px;letter-spacing:.07em;margin-top:20px}.spark{position:absolute;color:#f4fbff;pointer-events:none;z-index:4;opacity:0;text-shadow:0 0 10px #9df}.spark-a{left:31%;top:61%;font-size:20px}.spark-b{right:27%;top:67%;font-size:13px}.scene.is-happy .spark{animation:spark .85s ease-out}.scene.is-happy .spark-b{animation-delay:.14s}@keyframes breathe{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-2px) scale(1.012,.992)}}@keyframes spark{0%{opacity:0;transform:translateY(6px) scale(.5)}35%{opacity:1}100%{opacity:0;transform:translateY(-17px) scale(1.15)}}.reduced .breath{animation:none}@media(prefers-reduced-motion:reduce){.breath{animation:none}.scene.is-happy .spark{animation:none}}@media(max-width:420px){.shell{padding:20px 14px 16px}.heading{margin-bottom:16px}h1{font-size:23px}.scene{border-radius:22px}}
/* Work 02.1: independent body breathing and reference-based eyelids. */
.breath{position:relative;animation:breathe 3.1s ease-in-out infinite;will-change:transform}
@keyframes breathe{0%,100%{transform:translateY(0) rotate(-.45deg) scale(1,1)}45%{transform:translateY(-3px) rotate(.5deg) scale(1.024,1.035)}65%{transform:translateY(-2px) rotate(.35deg) scale(1.018,1.026)}}
.eyes-relaxed{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;opacity:0;mask:url(assets/eyes-region.svg) center/100% 100% no-repeat;-webkit-mask:url(assets/eyes-region.svg) center/100% 100% no-repeat;transition:opacity 65ms linear}
.scene.is-blinking .eyes-relaxed,.scene.is-pleased .eyes-relaxed{opacity:1}
.reduced .breath{animation:none}
@media(prefers-reduced-motion:reduce){.breath{animation:none}.eyes-relaxed{transition:none}}

/* Work 03: one local first-meeting episode; no external assets or persistence. */
[hidden]{display:none!important}.mode-controls{display:flex;justify-content:space-between;gap:8px;margin:-7px 0 12px}.text-button{font:inherit;font-size:12px;color:#afdcf7;background:transparent;border:0;border-radius:9px;padding:10px 6px;min-height:44px;cursor:pointer}.text-button:hover{background:#b5e6ff12}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #9de3ff;outline-offset:3px}.egg-button{position:absolute;z-index:5;left:30%;width:40%;bottom:21%;aspect-ratio:3/4;padding:0;border:0;background:transparent;cursor:pointer;touch-action:manipulation;border-radius:50%;-webkit-tap-highlight-color:transparent}.egg-shell{position:absolute;inset:0;border-radius:52% 48% 47% 48%/63% 63% 37% 37%;background:radial-gradient(ellipse at 30% 24%,#ffffffba,transparent 26%),radial-gradient(ellipse at 55% 63%,#ffe5c6cc,transparent 27%),linear-gradient(140deg,#c0f7ffc9,#8bb8f0c9 55%,#ac99d6c9);border:1px solid #e1f9ffb8;box-shadow:inset -8px -10px 22px #5864a765,inset 5px 6px 17px #eeffff88,0 0 35px #a4dcff66,0 18px 22px #233c6638;animation:egg-sway 3s ease-in-out infinite;transition:filter .4s,opacity .5s,transform .5s}.egg-heart{position:absolute;left:31%;top:43%;font-size:clamp(32px,9vw,58px);color:#fff2dc;text-shadow:0 0 17px #ffdba6;opacity:.3;transition:opacity .5s}.cracks{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity .5s}.cracks path{fill:none;stroke:#f3faff;stroke-width:1.5;stroke-linejoin:round}.egg-button[data-wake="1"] .egg-heart,.egg-button[data-wake="2"] .egg-heart{opacity:1}.egg-button[data-wake="2"] .cracks,.egg-button[data-wake="3"] .cracks{opacity:.9}.egg-button[data-wake="3"] .egg-shell{opacity:.15;filter:blur(3px);transform:scale(1.06);animation:none}.hatchling .pet{width:48%;left:26%;bottom:14%}.is-born .pet{animation:born 1.1s ease-out}.pet{transition:width .8s ease,left .8s ease,bottom .8s ease}.story{margin:3px 0 16px;padding:16px;border:1px solid #b2dcff26;border-radius:18px;background:#bddfff09;font-size:13px;line-height:1.5}.story label{display:block;font-size:12px;color:#cce7f7;margin-bottom:8px}.story input,.story select{display:block;width:100%;min-width:0;min-height:46px;border:1px solid #a9d5ff42;border-radius:11px;background:#14273c;color:#f0f8ff;font:inherit;padding:10px 12px;margin:7px 0 12px}.story-buttons{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.primary{min-width:150px;color:#e8f8ff;background:#7dc9ff20}.step-label{font-size:10px;letter-spacing:.06em;color:#94c4e2;margin:0 0 12px}.privacy{font-size:11px;line-height:1.6;color:#93adc6;margin-bottom:0}.name-options{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}.name-options button{min-height:44px;padding:8px 14px;border-radius:99px;border:1px solid #badfff3b;background:#9ddfff10;color:#cbeaff;font:inherit;cursor:pointer}.date-fields{display:grid;grid-template-columns:1fr 1.7fr;gap:12px}.memory h2{font-size:18px;line-height:1.35;font-weight:550;color:#d4f2ff;margin:7px 0}.memory>p{overflow-wrap:anywhere}.greeting p{overflow-wrap:anywhere}.story form{margin:0}.story .privacy{margin:10px 0}.story #name-error:empty{display:none}.greeting{min-height:62px}@keyframes egg-sway{0%,100%{transform:rotate(-2deg) scale(1)}50%{transform:rotate(2deg) scale(1.025)}}@keyframes born{from{opacity:0;filter:blur(4px);transform:translateY(8px) scale(.9)}to{opacity:1;filter:none;transform:none}}.reduced .egg-shell,.reduced .is-born .pet{animation:none}.reduced .pet{transition:none}@media(prefers-reduced-motion:reduce){.egg-shell,.is-born .pet{animation:none}.pet,.egg-shell{transition:none}}

/* Expressive hatching: anticipation, jagged shell halves, a soft glow and eight sparks. */
.egg-button[data-wake="1"]>.egg-shell:not(.shell-piece){animation:egg-awake 1s ease-in-out,egg-sway 3s 1s ease-in-out infinite}
.egg-button[data-wake="2"]>.egg-shell:not(.shell-piece){animation:egg-rumble 1.5s ease-in-out infinite}
.egg-button[data-wake="2"] .cracks path{stroke-dasharray:240;animation:crack-grow .6s ease-out both}
.shell-piece,.hatch-glow,.hatch-particles{display:none;pointer-events:none}
.egg-button[data-wake="3"]>.egg-shell:not(.shell-piece){opacity:0;filter:none;animation:none}
.egg-button[data-wake="3"] .shell-piece{display:block;opacity:1;filter:none;animation:shell-open 2.2s cubic-bezier(.25,.65,.35,1) both;transition:none;z-index:2}
.shell-top{clip-path:polygon(0 0,100% 0,100% 53%,88% 47%,77% 57%,65% 48%,52% 56%,40% 46%,27% 55%,14% 48%,0 54%);--shell-x:-34%;--shell-y:-40%;--shell-r:-29deg;transform-origin:25% 55%}
.shell-bottom{clip-path:polygon(0 54%,14% 48%,27% 55%,40% 46%,52% 56%,65% 48%,77% 57%,88% 47%,100% 53%,100% 100%,0 100%);--shell-x:31%;--shell-y:28%;--shell-r:24deg;transform-origin:75% 70%}
.egg-button[data-wake="3"] .hatch-glow{display:block;position:absolute;inset:-35%;border-radius:50%;background:radial-gradient(ellipse,#fff3cd99, #bfeeff55 30%,transparent 65%);animation:hatch-light 2.2s ease-out both}
.egg-button[data-wake="3"] .hatch-particles{display:block;position:absolute;inset:0;z-index:4}
.hatch-particles i{position:absolute;left:47%;top:49%;font-style:normal;color:#fff1c9;text-shadow:0 0 8px #a9eaff;font-size:18px;opacity:0;animation:hatch-spark 1.4s .65s ease-out both}
.hatch-particles i:nth-child(1){--px:-90px;--py:-85px;--pr:-40deg}
.hatch-particles i:nth-child(2){--px:80px;--py:-105px;--pr:60deg;animation-delay:.8s}
.hatch-particles i:nth-child(3){--px:-110px;--py:-10px;--pr:-70deg;animation-delay:.75s}
.hatch-particles i:nth-child(4){--px:105px;--py:-30px;--pr:80deg}
.hatch-particles i:nth-child(5){--px:-62px;--py:60px;--pr:-30deg;animation-delay:.9s}
.hatch-particles i:nth-child(6){--px:72px;--py:54px;--pr:45deg;animation-delay:.85s}
.hatch-particles i:nth-child(7){--px:-26px;--py:-125px;--pr:50deg;animation-delay:.7s}
.hatch-particles i:nth-child(8){--px:30px;--py:-76px;--pr:-45deg;animation-delay:1s}
@keyframes egg-awake{0%,100%{transform:rotate(0) scale(1)}25%{transform:rotate(-7deg) scale(1.025)}55%{transform:rotate(6deg) scale(1.04)}75%{transform:rotate(-3deg) scale(1.01)}}
@keyframes egg-rumble{0%,65%,100%{transform:rotate(0)}10%,30%{transform:rotate(-5deg) translateY(-2px)}20%,40%{transform:rotate(5deg) translateY(-3px)}50%{transform:rotate(-2deg)}}
@keyframes crack-grow{from{stroke-dashoffset:240}to{stroke-dashoffset:0}}
@keyframes shell-open{0%{transform:rotate(0);opacity:1}8%,24%{transform:rotate(-5deg) translateY(-2px)}16%,32%{transform:rotate(5deg) translateY(-3px)}38%{transform:translateY(-5px) scale(1.025);opacity:1}72%{transform:translate(var(--shell-x),var(--shell-y)) rotate(var(--shell-r));opacity:.9}100%{transform:translate(var(--shell-x),var(--shell-y)) rotate(var(--shell-r)) scale(.8);opacity:0}}
@keyframes hatch-light{0%{opacity:0;transform:scale(.65)}40%{opacity:.8;transform:scale(1)}75%{opacity:.5}100%{opacity:0;transform:scale(1.2)}}
@keyframes hatch-spark{0%{opacity:0;transform:translate(0,0) scale(.2)}20%{opacity:1}100%{opacity:0;transform:translate(var(--px),var(--py)) rotate(var(--pr)) scale(.45)}}
.reduced .egg-button .egg-shell,.reduced .egg-button .cracks path{animation:none}
.reduced .egg-button[data-wake="3"] .shell-piece,.reduced .hatch-particles,.reduced .hatch-glow{display:none}
@media(prefers-reduced-motion:reduce){.egg-button .egg-shell,.egg-button .cracks path{animation:none}.egg-button[data-wake="3"] .shell-piece,.egg-button .hatch-particles,.egg-button .hatch-glow{display:none}}

/* Work 03.1: dormant slots for approved separate PNGs; current art remains the fallback. */
.egg-art{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}
.has-egg-art .egg-shell{background:none;border-color:transparent;box-shadow:none;border-radius:0}
.has-egg-art .egg-heart{display:none}
.has-baby-art .pet-skin{mask:none;-webkit-mask:none}
.has-baby-art .eyes-relaxed{display:none}

/* Work 04: room objects and care; sprite canvases preserve their proportions. */
.egg-button.has-egg-art{width:48%;left:26%;aspect-ratio:1;bottom:17%}
.has-egg-art .egg-shell{border-radius:0}
.has-egg-art[data-wake="3"] .shell-piece{clip-path:polygon(0 0,100% 0,100% 53%,88% 47%,77% 57%,65% 48%,52% 56%,40% 46%,27% 55%,14% 48%,0 54%);}
.has-egg-art[data-wake="3"] .shell-bottom{clip-path:polygon(0 54%,14% 48%,27% 55%,40% 46%,52% 56%,65% 48%,77% 57%,88% 47%,100% 53%,100% 100%,0 100%)}
.pet[data-age="baby"]{width:44%;left:28%;bottom:12%}
.pet[data-age="child"]{width:51%;left:24.5%;bottom:11%}
.pet[data-age="teen"]{width:55%;left:22.5%;bottom:11%}
.pet[data-age="adult"]{width:61%;left:19.5%;bottom:11.5%}
#furniture{position:absolute;inset:0;z-index:2;pointer-events:none}
.furniture-object{position:absolute;aspect-ratio:1;min-width:44px;min-height:44px;padding:0;border:0;border-radius:14px;background:transparent;cursor:pointer;pointer-events:auto;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.furniture-object img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;filter:drop-shadow(0 6px 6px #1d2a4525)}
.furniture-object:hover img{filter:drop-shadow(0 0 8px #e2f7ff85)}
.furniture-object:focus-visible{outline:2px solid #ecfaff;outline-offset:-2px}
.missing-art{font-size:11px;color:#e7f7ff;background:#17314de6}
.pet{z-index:4}.floor-shadow{pointer-events:none}
.lamp-wash{position:absolute;inset:0;z-index:3;pointer-events:none;background:radial-gradient(ellipse at 14% 54%,#ffe0a442,transparent 65%),linear-gradient(#1d205c18,#ffe1ab14);opacity:0;transition:opacity .65s}
.lamp-on .lamp-wash{opacity:1}.lamp-on .furniture-lamp img{filter:drop-shadow(0 0 15px #ffdf9d)}
.care-panel{margin:12px 0 0;padding:14px;border:1px solid #b6e3ff25;border-radius:17px;background:#abdfff08}
.care-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.care-actions .action{font-size:11px;padding:8px 3px;min-width:0}
.furniture-hint{font-size:11px;line-height:1.6;color:#a0bfd5;margin:12px 0 17px}
.age-label{display:block;color:#a8cbe4;font-size:11px;margin-bottom:7px}
#age{width:100%;min-width:0;min-height:44px;background:#182c42;color:#e7f8ff;border:1px solid #b6dfff40;border-radius:11px;padding:9px;font:inherit;font-size:12px}
.inventory{border:1px solid #a8daff4d;background:#20354b;border-radius:17px;margin:12px 0;padding:16px;font-size:12px;color:#c9e4f6}
.inventory h2{font-size:18px;margin:0 0 10px}.inventory .action{margin-top:8px}
.action:disabled{opacity:.45;cursor:default}
.sleep-mark{display:none;position:absolute;z-index:5;left:32%;bottom:35%;font-size:20px;color:#edf9ff;letter-spacing:.14em;text-shadow:0 0 12px #79cfff;pointer-events:none}
.is-sleeping .pet{width:34%;left:5%;bottom:14%;transform:rotate(-7deg)}
.is-sleeping .breath{animation-duration:6s}
.is-sleeping .sleep-mark{display:block;animation:sleep-drift 3s ease-in-out infinite}
.is-sleeping .pet:not(.has-baby-art) .eyes-relaxed{opacity:1}
.care-effect{position:absolute;inset:0;z-index:5;pointer-events:none}
.berry{display:none;position:absolute;left:46%;bottom:20%;font-size:28px}
.is-feeding .berry{display:block;animation:berry-bite 2.2s ease-in-out both}
.bubble{display:none;position:absolute;border:1px solid #e4f8ffb3;background:radial-gradient(circle at 30% 25%,#ffffffc9 0,transparent 27%),#addfff1c;border-radius:50%;width:20px;height:20px;bottom:18%}
.b1{left:30%}.b2{left:64%;width:25px;height:25px;animation-delay:.2s!important}.b3{left:22%;width:13px;height:13px;animation-delay:.35s!important}.b4{left:71%;width:15px;height:15px;animation-delay:.5s!important}
.is-bathing .bubble{display:block;animation:bubble-rise 1.6s ease-out both}
.printed-star{position:absolute;display:none;z-index:5;left:86%;bottom:19%;color:#ffe9b9;font-size:25px;pointer-events:none;text-shadow:0 0 10px #bcefff}
.is-printing .printed-star{display:block;animation:print-star 2.3s ease-out both}
.is-printing .furniture-printer img{filter:drop-shadow(0 0 10px #b9ddff)}
@keyframes berry-bite{0%{opacity:0;transform:translate(30px,30px) scale(.7)}25%{opacity:1;transform:translate(0,0) scale(1)}65%{opacity:1;transform:translateY(-12px) scale(.85)}100%{opacity:0;transform:translateY(-15px) scale(.25)}}
@keyframes bubble-rise{0%{opacity:0;transform:translateY(0) scale(.6)}25%{opacity:.9}100%{opacity:0;transform:translateY(-90px) scale(1.1)}}
@keyframes sleep-drift{0%,100%{opacity:.6;transform:translateY(0)}50%{opacity:1;transform:translateY(-6px)}}
@keyframes print-star{0%,15%{opacity:0;transform:translateY(10px) scale(.1)}60%{opacity:1;transform:translateY(-8px) scale(1)}85%{opacity:1}100%{opacity:0;transform:translateY(-25px) scale(.8)}}
.reduced .berry,.reduced .bubble,.reduced .printed-star,.reduced .sleep-mark{animation:none}
.reduced .is-feeding .berry,.reduced .is-bathing .bubble,.reduced .is-printing .printed-star{opacity:.8}
@media(prefers-reduced-motion:reduce){.berry,.bubble,.printed-star,.sleep-mark{animation:none}.lamp-wash{transition:none}}

.has-egg-art .cracks{z-index:1;pointer-events:none}

/* User feedback: a home with distinct rooms, not furniture scattered over one background. */
.room-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;margin:0 0 12px}
.room-nav button{min-width:0;min-height:44px;border:1px solid #aadaff2b;border-radius:11px;background:#b2dbff09;color:#a4bfd7;font:inherit;font-size:10px;padding:5px 1px;cursor:pointer}
.room-nav button[aria-pressed="true"]{background:#8bceff24;color:#e6f7ff;border-color:#a6dfff88}
.room-caption{position:absolute;z-index:7;left:15px;top:14px;margin:0;padding:7px 10px;font-size:10px;border-radius:99px;background:#112138b8;color:#b3d2e9;pointer-events:none}
.room-architecture{display:none;position:absolute;inset:0;overflow:hidden;background:radial-gradient(ellipse at 50% 30%,#375474,#14263f 70%);pointer-events:none}
.scene:not([data-room="living"])>.room{opacity:0}
.scene:not([data-room="living"]) .room-architecture{display:block}
.scene[data-room="bedroom"] .room-architecture{background:radial-gradient(ellipse at 65% 25%,#63629655,transparent 60%),linear-gradient(#252a50 0 70%,#31385b 70%)}
.scene[data-room="kitchen"] .room-architecture{background:radial-gradient(ellipse at 40% 20%,#a9d4e94d,transparent 60%),linear-gradient(#365878 0 68%,#263c54 68%)}
.scene[data-room="bathroom"] .room-architecture{background:linear-gradient(120deg,#2f5871,#21475b)}
.scene[data-room="workshop"] .room-architecture{background:radial-gradient(ellipse at 70% 40%,#6388ae66,transparent 65%),linear-gradient(#263b59 0 67%,#1e2e43 67%)}
.wall-light{position:absolute;left:18%;top:17%;width:64%;height:40%;border-radius:40% 40% 16px 16px;border:1px solid #b7eaff27;background:linear-gradient(140deg,#a5d7ff15,#b5caff03);box-shadow:0 0 40px #abdfff0d}
.room-floor{position:absolute;left:-20%;bottom:-8%;width:140%;height:30%;background:radial-gradient(ellipse,#8cc2dd22,transparent 65%);border-top:1px solid #c9e6ff14}
.kitchen-counter{display:none;position:absolute;left:10%;right:10%;bottom:8%;height:18%;border-radius:24px 24px 8px 8px;background:linear-gradient(#c6e1f066 0 5px,#25445ed9 5px);border:1px solid #b1ddf033;z-index:6}
.scene[data-room="kitchen"] .kitchen-counter{display:block}
.scene[data-room="kitchen"] .pet{bottom:17%}
.scene[data-room="kitchen"] .berry{bottom:28%}
.scene[data-room="bedroom"] .pet{width:35%;left:58%;bottom:14%;transform:none}
.scene[data-room="bedroom"].is-sleeping .pet{visibility:hidden;opacity:0;pointer-events:none}
.scene[data-room="bedroom"].is-sleeping .sleep-mark{left:43%;bottom:48%}
.scene[data-room="bedroom"] .floor-shadow{display:none}
.scene[data-room="workshop"] .pet{width:43%;left:2%;bottom:12%}
.scene[data-room="workshop"] .printed-star{left:68%;bottom:45%}
.scene[data-room="bathroom"] .pet{bottom:13%}
.scene[data-room="bathroom"] .bubble{display:none!important}
.room-action{margin-top:10px;width:100%}
.scene:not([data-room="living"]) .ambient{box-shadow:inset 0 -25px 35px #07152936}
.scene .lamp-wash{display:none}
@media(prefers-reduced-motion:reduce){.room-nav button{transition:none}}

/* Finished cohesive room illustrations. Original pixels reused as foreground occlusion. */
.scene .room{opacity:1!important}
.scene .room-architecture{display:none!important}
.room-foreground{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:6;pointer-events:none;user-select:none}
.scene[data-room="bathroom"] .room-foreground{clip-path:polygon(0 74%,8% 65%,20% 64%,35% 67%,50% 69%,65% 67%,80% 64%,93% 65%,100% 74%,100% 100%,0 100%)}
.scene[data-room="kitchen"] .room-foreground{clip-path:polygon(0 67%,12% 68%,30% 70%,50% 70%,70% 70%,90% 68%,100% 67%,100% 100%,0 100%)}
.scene[data-room="bathroom"] .pet{width:42%;left:29%;bottom:22%;transform:none}
.scene[data-room="bathroom"] .floor-shadow,.scene[data-room="kitchen"] .floor-shadow{display:none}
.scene[data-room="kitchen"] .pet{width:45%;left:27.5%;bottom:25%;transform:none}
.scene[data-room="kitchen"] .berry{bottom:35%;left:47%;z-index:8}
.scene[data-room="kitchen"] .care-effect{z-index:8}
.scene[data-room="bedroom"] .pet{width:44%;left:28%;bottom:9%;transform:none}
.scene[data-room="bedroom"].is-sleeping .sleep-mark{left:44%;bottom:54%;z-index:7}
.scene[data-room="workshop"] .pet{width:40%;left:8%;bottom:10%;transform:none}
.furniture-object{border-radius:12px;aspect-ratio:auto}
.furniture-object:hover{background:#c1e7ff06}
.scene[data-room="bathroom"] .care-effect{z-index:7}
.scene[data-room="bathroom"].is-bathing .bubble{display:block!important;bottom:32%;width:15px;height:15px;animation:bubble-rise 1.6s ease-out both}
.scene[data-room="bathroom"] .b1{left:24%}.scene[data-room="bathroom"] .b2{left:75%}.scene[data-room="bathroom"] .b3{left:18%}.scene[data-room="bathroom"] .b4{left:81%}
.scene[data-room="bathroom"].is-bathing .jump{animation:bath-sway 2.2s ease-in-out}
@keyframes bath-sway{0%,100%{transform:rotate(0)}35%{transform:rotate(-2deg) translateY(2px)}70%{transform:rotate(2deg) translateY(1px)}}
.reduced .scene[data-room="bathroom"].is-bathing .jump,.reduced .scene[data-room="bathroom"].is-bathing .bubble{animation:none}
@media(prefers-reduced-motion:reduce){.scene[data-room="bathroom"].is-bathing .jump,.scene[data-room="bathroom"].is-bathing .bubble{animation:none}}

/* Sit behind the breakfast island, with clothes hidden by the tabletop. */
.scene[data-room="kitchen"] .pet{bottom:21%}
.scene[data-room="kitchen"] .berry{bottom:31%}

.scene[data-room="kitchen"] .pet{bottom:24%}
.scene[data-room="kitchen"] .berry{bottom:34%}

/* A finite bathing sequence: buoyancy, ripples, foam and side splashes. */
.bath-water{display:none;position:absolute;inset:0;z-index:7;pointer-events:none;overflow:hidden}
.scene[data-room="bathroom"].is-bathing .bath-water{display:block}
.scene[data-room="bathroom"].is-bathing .bubble{display:none!important}
.scene[data-room="bathroom"].is-bathing .jump{transform-origin:50% 80%;animation:bath-play 1.5s ease-in-out 3}
.water-ring{position:absolute;top:65%;height:3%;width:25%;border:1px solid #dcfaffb0;border-top-color:#c4f6ff33;border-radius:50%;opacity:0;animation:water-spread 1.4s ease-out 3}
.ring-left{left:18%;animation-delay:.15s}.ring-right{left:59%;animation-delay:.65s}.ring-center{left:36%;top:67%;width:29%;height:2%;animation-delay:.4s}
.foam{position:absolute;top:63.8%;width:12%;height:3%;border-radius:50%;background:radial-gradient(ellipse at 20% 55%,#e8faffbc 0 24%,transparent 29%),radial-gradient(ellipse at 49% 35%,#f0fbffc4 0 31%,transparent 38%),radial-gradient(ellipse at 80% 60%,#dbf4ffa3 0 23%,transparent 29%);opacity:0;animation:foam-bob 1.5s ease-in-out 3}
.foam-left{left:23%;animation-delay:.15s}.foam-right{left:67%;animation-delay:.4s}
.bath-drops i{position:absolute;left:30%;top:64%;width:4px;height:7px;border:1px solid #defaffbf;background:#b4ecff9c;border-radius:60% 60% 55% 55%;opacity:0;animation:water-drop 1.35s ease-out 3;--dx:-20px;--dy:-20px}
.bath-drops i:nth-child(2){left:27%;--dx:-13px;--dy:-28px;animation-delay:.1s}
.bath-drops i:nth-child(3){left:33%;--dx:-27px;--dy:-14px;animation-delay:.2s}
.bath-drops i:nth-child(4){left:23%;--dx:-8px;--dy:-18px;animation-delay:.3s}
.bath-drops i:nth-child(5){left:29%;--dx:-31px;--dy:-32px;animation-delay:.4s}
.bath-drops i:nth-child(6){left:68%;--dx:20px;--dy:-24px;animation-delay:.5s}
.bath-drops i:nth-child(7){left:73%;--dx:10px;--dy:-33px;animation-delay:.6s}
.bath-drops i:nth-child(8){left:70%;--dx:30px;--dy:-16px;animation-delay:.7s}
.bath-drops i:nth-child(9){left:76%;--dx:16px;--dy:-21px;animation-delay:.8s}
.bath-drops i:nth-child(10){left:66%;--dx:37px;--dy:-26px;animation-delay:.9s}
.bath-bubbles i{position:absolute;left:22%;top:63%;width:13px;height:13px;border:1px solid #e2faffc2;background:radial-gradient(circle at 30% 25%,#fff 0 8%,transparent 25%),#c9f3ff18;border-radius:50%;opacity:0;animation:soap-pop 1.6s ease-out 2;--drift:-8px}
.bath-bubbles i:nth-child(2){left:77%;width:18px;height:18px;animation-delay:.25s;--drift:8px}
.bath-bubbles i:nth-child(3){left:17%;width:9px;height:9px;animation-delay:.65s}
.bath-bubbles i:nth-child(4){left:83%;width:11px;height:11px;animation-delay:.85s;--drift:5px}
.bath-bubbles i:nth-child(5){left:25%;width:16px;height:16px;animation-delay:1.1s;--drift:-16px}
.bath-bubbles i:nth-child(6){left:72%;width:10px;height:10px;animation-delay:1.25s;--drift:20px}
.bath-bubbles i:nth-child(7){left:12%;width:7px;height:7px;animation-delay:.45s}
.bath-bubbles i:nth-child(8){left:88%;width:8px;height:8px;animation-delay:1.4s;--drift:4px}
@keyframes bath-play{0%,100%{transform:translateY(0) rotate(0) scale(1)}18%{transform:translateY(7px) rotate(-3deg) scale(1.025,.975)}40%{transform:translateY(-5px) rotate(2deg) scale(.99,1.02)}64%{transform:translateY(4px) rotate(3deg) scale(1.02,.98)}82%{transform:translateY(-2px) rotate(-1deg)}}
@keyframes water-spread{0%{opacity:0;transform:scale(.3,.55)}20%{opacity:.85}100%{opacity:0;transform:scale(1.45,1.3)}}
@keyframes water-drop{0%,8%{opacity:0;transform:translate(0,4px) scale(.5)}25%{opacity:.9}50%{opacity:.8;transform:translate(var(--dx),var(--dy)) rotate(18deg)}85%,100%{opacity:0;transform:translate(var(--dx),7px) rotate(30deg) scale(.4)}}
@keyframes foam-bob{0%,100%{opacity:0;transform:translateY(1px) scale(.85)}25%,75%{opacity:.8}50%{opacity:.9;transform:translateY(-3px) scale(1.1)}}
@keyframes soap-pop{0%{opacity:0;transform:translate(0,0) scale(.4)}20%{opacity:.85}78%{opacity:.65;transform:translate(var(--drift),-42px) scale(1)}86%{opacity:.7;transform:translate(var(--drift),-45px) scale(1.25);background:transparent}100%{opacity:0;transform:translate(var(--drift),-48px) scale(1.4)}}
.reduced .bath-water{display:none!important}
.reduced .scene[data-room="bathroom"].is-bathing .jump{animation:none}
@media(prefers-reduced-motion:reduce){.bath-water{display:none!important}.scene[data-room="bathroom"].is-bathing .jump{animation:none}}

/* Work 05 — a small glass dashboard, two needs, and a self-contained game shop. */
.balance-panel{margin:0 0 16px;padding:13px;border:1px solid #a6dfff30;border-radius:18px;background:linear-gradient(135deg,#a4d9ff12,#12213980);box-shadow:inset 0 1px #e2f4ff0a}
.balance-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}
.demo-progress{font-size:9px;color:#93aec5;max-width:54%;line-height:1.4}
.caps-pill{font-size:11px;color:#ffe6b1;border:1px solid #e9d2a333;border-radius:99px;padding:6px 9px;background:#f5cb7e0b;white-space:nowrap}
.caps-pill strong{font-size:16px;font-weight:650;font-variant-numeric:tabular-nums}
.need-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.meter-label{display:flex;justify-content:space-between;gap:5px;font-size:10px;color:#cbe4f5;margin-bottom:6px}.meter-label output{color:#9cbed8;font-variant-numeric:tabular-nums;font-size:9px}
progress{display:block;width:100%;height:7px;appearance:none;border:0;border-radius:99px;overflow:hidden;background:#0d1c2b}
progress::-webkit-progress-bar{background:#0c1c2b;border-radius:99px}progress::-webkit-progress-value{border-radius:99px;background:linear-gradient(90deg,#57a3de,#b2edff);transition:width .7s ease}
#satiety-meter::-webkit-progress-value{background:linear-gradient(90deg,#c78ca9,#f1bdc8)}
progress::-moz-progress-bar{background:#8dcfff;border-radius:99px}#satiety-meter::-moz-progress-bar{background:#e3aabd}
.need-hint{font-size:10px;line-height:1.6;color:#a5bfd2;margin:11px 0}
.balance-buttons{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:5px}.balance-buttons .action{font-size:10px;padding:8px 3px;border-radius:11px}
.balance-toast{font-size:11px;line-height:1.5;color:#e5f4ff;margin:10px 0 0;overflow-wrap:anywhere}.balance-toast:empty{display:none}.shine{animation:balance-shine 1.4s ease-out}
.operation-log{font-size:9px;color:#8faac2;line-height:1.6;margin-top:9px}.operation-log summary{min-height:28px;cursor:pointer}.operation-log ol{padding-left:18px}.operation-log li{margin:5px 0}
.game-dialog{width:min(94vw,450px);max-height:88dvh;margin:auto;padding:0;border:1px solid #abdfff55;border-radius:24px;background:linear-gradient(155deg,#253f59f5,#112338fc);color:#e5f4ff;box-shadow:0 30px 90px #000a;overflow:auto;font:inherit}
.game-dialog::backdrop{background:#06111fc4;backdrop-filter:blur(7px)}
.dialog-head{display:flex;position:sticky;top:0;z-index:2;align-items:center;justify-content:space-between;gap:10px;padding:12px 17px;background:#172b41f7;border-bottom:1px solid #b4dcff1c}
.dialog-head h2{font-size:18px;font-weight:600;line-height:1.25;margin:0}.dialog-head .text-button{font-size:18px;min-width:40px}
#dialog-body{padding:17px;font-size:13px;line-height:1.6}#dialog-body>button{margin:6px 6px 6px 0}#dialog-body h3{font-size:17px;line-height:1.45;font-weight:550;margin:0 0 14px}
.dialog-intro{color:#aac6da;font-size:12px;margin-top:0}.shop-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin:15px 0}.shop-tabs .action{font-size:11px;min-width:0;padding:6px 2px}
.shop-tabs [aria-pressed="true"]{background:#8acfff28;border-color:#a8e0ff8c;color:#f0fbff}
.shop-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.item-card{font:inherit;text-align:left;min-width:0;display:flex;flex-direction:column;gap:5px;align-items:flex-start;padding:13px;border-radius:17px;border:1px solid #b8e7ff2c;background:linear-gradient(135deg,#a8d8ff15,#c9eaff05);color:#e0f1ff;cursor:pointer}
.item-card:hover{border-color:#c0eaff85;background:#c4e7ff18}.item-card strong{font-size:12px;font-weight:550}.item-price{color:#e5cfa6;font-size:11px}.item-card small{font-size:9px;color:#91aec6;line-height:1.4}
.item-icon{display:flex;align-items:center;justify-content:center;height:65px;min-width:65px;font-size:42px;text-shadow:0 0 22px #a5e0ff33}
.item-image{display:block;max-width:100%;width:100%;height:100px;object-fit:contain}#dialog-body>.item-image{height:155px}#dialog-body>.item-icon{height:100px;font-size:65px}
.purchase-price{color:#f4d9a6;font-size:15px}.purchase-result,.round-result{font-size:17px;line-height:1.5;color:#e2f5ff}.owned-note{color:#a6dec7}
.inventory-row,.activity-card{border:1px solid #b2dcff25;background:#b9ddff07;border-radius:17px;padding:15px;margin:12px 0}
.inventory-row .item-image{height:90px}.inventory-row small{display:block;font-size:10px;color:#93adc5;margin-top:8px}
.inventory-row strong{display:block}.empty-state{padding:20px 0;color:#b2cde1}.activity-card h3{font-size:15px!important;margin-bottom:5px!important}.activity-cost{font-size:12px;color:#a8d6f4;margin:5px 0}
.answer-grid{display:grid;gap:9px}.answer-grid button{font-size:13px;text-align:left;padding:12px 14px;min-height:48px}
.correct-answer{border-color:#a9e1c2;background:#86d5bb26!important;opacity:1!important}
.answer-feedback{min-height:25px;color:#addacb;font-size:12px}.round-star{font-size:65px;color:#f4d896;text-align:center;text-shadow:0 0 40px #b1e5ff70;animation:reward-star 1s ease-out both}
.feels-tired .breath{animation-duration:5s}
@keyframes reward-star{from{opacity:0;transform:scale(.45) rotate(-30deg)}to{opacity:1;transform:scale(1) rotate(0)}}
@keyframes balance-shine{0%{color:#fff5cf;text-shadow:0 0 12px #bcecff}100%{color:#e5f4ff;text-shadow:none}}
.reduced .round-star,.reduced .shine{animation:none}
@media(prefers-reduced-motion:reduce){progress::-webkit-progress-value{transition:none}.round-star,.shine{animation:none}}

/* Work06: two deliberate guest-room slots, not a scatter of furniture. */
#lounge-decor{position:absolute;inset:0;z-index:3;pointer-events:none}
.placed-pillow,.placed-lamp{position:absolute;appearance:none;border:0;padding:0;background:none;cursor:pointer;pointer-events:auto;min-height:44px;min-width:44px;touch-action:manipulation}
.placed-pillow{width:24%;left:9%;bottom:12%;aspect-ratio:4/3;transform:rotate(-8deg)}
[data-pillow-zone="rug-right"] .placed-pillow{left:69%;transform:rotate(8deg)}
.placed-pillow img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}
.placed-lamp{width:16%;left:1.5%;bottom:35%;aspect-ratio:1;z-index:1}
.placed-lamp img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 0 8px #ffe5a785);pointer-events:none}
.placed-pillow:focus-visible,.placed-lamp:focus-visible{outline:2px solid #d6f3ff;outline-offset:1px;border-radius:12px}
.chosen-lamp-light{display:block;position:absolute;inset:0;pointer-events:none;z-index:0;opacity:0;transition:opacity .7s ease,background .7s ease;background:radial-gradient(ellipse at 12% 55%,#ffdc9855,transparent 68%)}
.has-chosen-lamp .chosen-lamp-light{opacity:1}
.has-chosen-lamp[data-lamp-tone="moon"] .chosen-lamp-light{background:radial-gradient(ellipse at 12% 55%,#c1d7ff55,transparent 68%)}
[data-lamp-tone="moon"] .placed-lamp img{filter:drop-shadow(0 0 10px #b8d2ffb0) saturate(.8) hue-rotate(8deg)}
.item-arrives .placed-pillow:not([hidden]) img,.item-arrives .placed-lamp:not([hidden]) img{animation:item-settle .9s ease-out both}
.received-item{animation:receive-gift 1s cubic-bezier(.2,.7,.3,1) both;filter:drop-shadow(0 0 16px #aaddff50)}
.berry:has(img){width:34px;height:40px}
.berry img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.food-nibbled{mask-image:radial-gradient(circle at 85% 20%,transparent 0 19%,#000 20%);opacity:0}
.is-feeding .food-whole{animation:food-full 2.2s linear both}
.is-feeding .food-nibbled{animation:food-bitten 2.2s linear both}
.scene[data-food="apple"].is-feeding .berry{animation:apple-taste 2.2s ease-in-out both}
.scene[data-food="icecream"].is-feeding .berry{animation:icecream-taste 2.2s ease-in-out both}
@keyframes item-settle{from{opacity:0;transform:translateY(-9px) scale(.86)}65%{opacity:1;transform:translateY(2px) scale(1.03)}to{opacity:1;transform:none}}
@keyframes receive-gift{from{opacity:0;transform:translateY(12px) scale(.75) rotate(-7deg)}65%{opacity:1;transform:translateY(-3px) scale(1.04) rotate(2deg)}to{opacity:1;transform:none}}
@keyframes food-full{0%,48%{opacity:1}49%,100%{opacity:0}}
@keyframes food-bitten{0%,48%{opacity:0}49%,85%{opacity:1}100%{opacity:0}}
@keyframes apple-taste{0%{opacity:0;transform:translate(24px,22px) rotate(-15deg) scale(.7)}25%{opacity:1;transform:translate(0,0) rotate(6deg)}48%{transform:translateY(-5px) rotate(-8deg)}68%{opacity:1;transform:translate(2px,1px) rotate(8deg) scale(.9)}100%{opacity:0;transform:translateY(8px) scale(.7)}}
@keyframes icecream-taste{0%{opacity:0;transform:translate(20px,18px) rotate(10deg) scale(.7)}25%{opacity:1;transform:translate(0,0) rotate(-10deg)}48%{transform:translateY(-4px) rotate(5deg)}70%{opacity:1;transform:translateY(1px) rotate(-5deg) scale(.9)}100%{opacity:0;transform:translateY(12px) scale(.7)}}
.reduced .received-item,.reduced .item-arrives img,.reduced .food-whole,.reduced .food-nibbled,.reduced .scene.is-feeding .berry{animation:none!important}
.reduced .food-nibbled{display:none}.reduced .food-whole{opacity:1}
@media(prefers-reduced-motion:reduce){.received-item,.item-arrives img,.food-whole,.food-nibbled,.scene.is-feeding .berry{animation:none!important}.food-nibbled{display:none}.chosen-lamp-light{transition:none}}

/* The cushion lies on the rug rather than standing like a sign. */
.placed-pillow img{transform:perspective(190px) rotateX(35deg);transform-origin:50% 78%}

/* Per-face vector eyelids; all approved raster artwork remains unchanged. */
.age-lids{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:0;transition:opacity 55ms linear;overflow:visible}
.pet:not(.has-baby-art) .age-lids{display:none}
.scene.is-blinking .has-baby-art .age-lids,.scene.is-pleased .has-baby-art .age-lids{opacity:1}
.lid-skin{fill:url(#lid-skin)}.lid-line{fill:none;stroke:#173555;stroke-width:6;stroke-linecap:round;stroke-linejoin:round}.lid-shine{fill:none;stroke:#b5f2ff;stroke-opacity:.55;stroke-width:3;stroke-linecap:round}
.pet-age-panel{display:flex;align-items:center;gap:10px;margin:10px 0 12px;padding:11px 13px;border:1px solid #a9dbff26;border-radius:16px;background:linear-gradient(120deg,#83d7ff14,#c4b6ff08)}
.pet-age-panel[hidden]{display:none}.age-heart{color:#93dfff;font-size:26px;line-height:1}.pet-age-panel strong{display:block;font-size:13px;font-weight:650;color:#dff6ff}.pet-age-panel #pet-age-detail{display:block;margin-top:3px;font-size:10px;color:#91abc1}.pet-look-label{margin-left:auto;max-width:45%;text-align:right;font-size:10px;color:#a3cbdf;line-height:1.5}
@media(prefers-reduced-motion:reduce){.age-lids{transition:none}}
.reduced .age-lids{transition:none}
