@font-face{font-family:Yunny;src:local('Avenir Next')}*{box-sizing:border-box}html{background:#e6eee9}body{margin:0;color:#102c43;font-family:Yunny,-apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif;font-size:15px;-webkit-tap-highlight-color:transparent}button,input,select,textarea{font:inherit}button{cursor:pointer;color:inherit;border:0;background:none}button:disabled{opacity:.5;cursor:wait}a{color:#087e8b}button:focus-visible,a:focus-visible{outline:3px solid #00b8c9;outline-offset:3px}h1,h2,h3,p{margin:0}h1{font-size:30px;letter-spacing:-1px}h2{font-size:22px;letter-spacing:-.5px}h3{font-size:17px}small,.muted{color:#758788;font-size:12px;line-height:1.7}.eyebrow{font-size:10px;letter-spacing:3px;font-weight:700;color:#5b8587}.shell{min-height:100dvh;background:#f5f8f4;max-width:1140px;margin:auto;position:relative;padding-bottom:110px}.top{display:flex;align-items:center;justify-content:space-between;padding:34px 36px 16px;padding-top:max(34px,env(safe-area-inset-top))}.brand{display:flex;gap:12px;align-items:center}.brandmark{width:42px;height:42px;background:#122f47;border-radius:16px;color:#6ae2dc;display:grid;place-items:center;font-size:24px}.top p{font-size:11px;letter-spacing:2px;margin-top:3px;color:#6a8283}.avatar-btn{background:#e4efea;border:1px solid #d4e3dd;border-radius:50%;width:42px;height:42px;font-size:20px}.layout{padding:18px 36px;display:grid;grid-template-columns:1.35fr 1fr;gap:24px}.wide{grid-column:1/-1}.section-head{display:flex;justify-content:space-between;align-items:center;margin:0 0 16px}.text-btn{font-size:12px;color:#078b93;padding:9px 0}.card{border-radius:26px;border:1px solid #dfe8df;background:#fffefa;padding:22px;box-shadow:0 5px 18px #213c3310}.hero{position:relative;min-height:345px;background:#c7eeea;overflow:hidden;border-color:#bfe1d8;padding:26px}.hero:before{content:'';position:absolute;width:310px;height:310px;border-radius:50%;background:#afe1dc;right:-45px;bottom:-110px}.hero .eyebrow{color:#347d7b}.hero h2{font-size:34px;margin-top:13px;line-height:1.25;position:relative;z-index:1}.hero p{font-size:12px;line-height:1.8;margin-top:10px;color:#527b79;max-width:200px}.couple{width:340px;height:290px;position:absolute;right:-10px;bottom:-4px;overflow:hidden;pointer-events:none}.couple img{width:420px;position:absolute;left:-40px;top:-125px;filter:drop-shadow(0 8px 0 #072b3e0d);animation:breath 5s ease-in-out infinite}.couple.fed img{animation:feed-pop .65s ease-in-out}.days{position:absolute;left:26px;bottom:30px;z-index:1}.days strong{font-size:46px;letter-spacing:-2px;font-weight:650}.days span{font-size:12px;margin-left:5px}.tag{display:inline-flex;border-radius:20px;padding:5px 10px;font-size:11px;background:#ffffff80;color:#367a77;gap:4px}.hero .tag{margin-top:18px}.weather{background:#f4eacb;border-color:#e5ddc7;min-height:172px;display:flex;justify-content:space-between}.weather strong{font-size:48px;line-height:1.2;letter-spacing:-3px;display:block;margin:15px 0 3px}.weather .symbol{font-size:48px;display:grid;place-items:center;color:#b78637}.right-stack{display:grid;gap:18px}.mood-mini{min-height:154px}.faces{display:flex;gap:9px;margin-top:17px}.face{width:44px;height:44px;border-radius:16px;background:#f2f4eb;font-size:23px;display:grid;place-items:center}.face.selected{background:#cef0e7;outline:2px solid #75bfb2}.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.tile{border-radius:22px;background:#e7f0e8;padding:18px;min-height:128px}.tile:nth-child(2){background:#e7eef1}.tile:nth-child(3){background:#f0e9e5}.tile .tile-icon{font-size:23px;display:block;margin-bottom:12px}.tile strong{display:block;font-size:15px}.tile small{display:block;margin-top:5px}.count-list{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.count{padding:21px;background:#fffefa;border:1px solid #dee7df;border-radius:22px;position:relative}.count .emoji{font-size:21px}.count h3{margin-top:12px;font-size:15px}.count .num{font-size:35px;font-weight:650;display:block;margin-top:16px}.count small{display:block}.empty{border:1px dashed #b7ccc0;background:#f4f7ed;border-radius:20px;padding:26px;text-align:center;color:#6e8480;font-size:13px;line-height:1.8}.nav{position:fixed;bottom:max(16px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;gap:9px;background:#14334a;color:#b2c8cb;border-radius:24px;padding:10px 17px;box-shadow:0 10px 30px #112b4530;z-index:5}.nav button{min-width:60px;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:10px;padding:7px 10px;border-radius:16px}.nav button b{font-size:20px;font-weight:normal;line-height:1}.nav button.active{background:#2d5562;color:#a4f0e5}.notice{margin:0 36px;background:#e8eedd;color:#647650;border-radius:12px;padding:8px 14px;font-size:11px;display:flex;justify-content:space-between;gap:10px}.status{font-size:11px;color:#688d88;display:flex;align-items:center;gap:6px}.status:before{content:'';width:5px;height:5px;background:#81ba8b;border-radius:50%}.offline{background:#f9e5cd;color:#8a5b27}.list{display:grid;gap:12px}.row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:16px;background:#f1f5ed;border-radius:16px}.row p{font-size:12px;margin-top:5px;color:#708682}.delete{font-size:12px;padding:8px;color:#946f67}.primary{background:#15394d;color:#ecfffa;padding:14px 22px;border-radius:16px;font-weight:600;font-size:14px}.primary.cyan{background:#b6e9df;color:#144747}.secondary{border:1px solid #cad8cd;padding:12px 16px;border-radius:14px;font-size:13px}.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}dialog{border:0;border-radius:26px;padding:26px;background:#fffefa;color:#14334a;width:min(92vw,460px);max-height:86dvh;box-shadow:0 30px 100px #0d29434a}dialog::backdrop{background:#092b4370;backdrop-filter:blur(4px)}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.close{font-size:24px;width:36px;height:36px;background:#edf1e7;border-radius:50%}label{display:block;font-size:13px;margin:17px 0 8px}input,select,textarea{width:100%;background:#f3f6ee;border:1px solid #dae4d7;padding:13px 14px;border-radius:13px;color:#15354a;font-size:16px;min-width:0}textarea{min-height:85px;resize:vertical}.check{display:flex;align-items:center;gap:10px}.check input{width:20px;height:20px}.form-hint{margin-top:15px;font-size:12px;color:#6b8580;line-height:1.7}#toast{position:fixed;bottom:120px;left:50%;transform:translateX(-50%);background:#183a4a;color:#fff;border-radius:14px;padding:12px 20px;font-size:13px;max-width:90vw;z-index:20;opacity:0;pointer-events:none;transition:opacity .2s}#toast.show{opacity:1}.welcome{min-height:100dvh;max-width:1140px;margin:auto;background:#f5f8f4;display:grid;grid-template-columns:1fr 1fr;padding:60px;align-items:center;gap:70px}.welcome-art{min-height:520px;background:#c9eeea;border-radius:40px;position:relative;overflow:hidden;padding:42px}.welcome-art h1{font-size:54px;margin-top:22px}.welcome-art p{font-size:14px;line-height:1.9;color:#547e7b;margin-top:15px}.welcome-art .couple{width:450px;max-width:100%;height:310px;bottom:0;right:0}.welcome-art .couple img{width:460px;left:0;top:-145px}.welcome-form h2{font-size:30px}.welcome-form .form-hint{margin-bottom:20px}.tabs{display:flex;gap:8px;margin:22px 0}.tabs button{border-radius:12px;background:#edf2e7;padding:10px 18px}.tabs button.active{background:#c5e9df}.preview-btn{display:block;width:100%;text-align:center;margin-top:18px;font-size:13px;color:#4d8c89}.form-error{color:#a14d45;font-size:13px;line-height:1.6;margin-top:12px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;text-align:center}.calendar-grid button{border-radius:12px;min-height:52px;font-size:14px;position:relative}.calendar-grid button:hover{background:#eef2e7}.calendar-grid .today{background:#c5e9df}.calendar-grid .picked{outline:2px solid #0b9da1}.calendar-grid small{font-size:10px;padding:6px}.dot{display:block;font-size:11px;color:#05979e;height:14px}.pet-stage{min-height:370px;background:#d7efea;position:relative;overflow:hidden}.pet-stage .couple{left:50%;transform:translateX(-50%);right:auto;width:420px;max-width:100%;height:330px}.pet-stage .couple img{width:450px;left:-15px;top:-120px}.pet-stage h2{position:relative;z-index:1}.food{background:#fffefa;border:1px solid #dfe7d9;border-radius:18px;padding:15px 20px;flex:1;min-width:90px;display:grid;gap:8px;text-align:center;font-size:12px}.food b{font-size:30px}.bar{height:8px;border-radius:12px;background:#e1e9dc;overflow:hidden;margin-top:9px}.bar progress{width:100%;height:8px;display:block;border:0;appearance:none;background:transparent}.bar progress::-webkit-progress-bar{background:#e1e9dc}.bar progress::-webkit-progress-value{background:#73c6b7;border-radius:12px}.bar progress::-moz-progress-bar{background:#73c6b7}.mood-entry{display:flex;gap:14px;align-items:center}.mood-entry .face{flex-shrink:0}.badge{font-size:10px;background:#d9eee4;padding:4px 8px;border-radius:8px}.settings-grid{display:grid;gap:18px}.code{font-size:17px;letter-spacing:1px;background:#e7f2e9;padding:17px;border-radius:12px;word-break:break-all;margin-top:12px}.footer-note{font-size:11px;color:#849188;line-height:1.7;margin-top:16px}.loading{min-height:100dvh;display:grid;place-items:center;background:#f5f8f4}.loading p{padding:24px}.copyright{margin-top:22px;font-size:11px;color:#879c95}dialog .primary{margin-top:22px;width:100%}@keyframes breath{0%,100%{transform:translateY(0) rotate(-.7deg)}50%{transform:translateY(-5px) rotate(.7deg)}}@keyframes feed-pop{0%,100%{transform:translateY(0)}40%{transform:translateY(-14px) rotate(2deg)}75%{transform:translateY(-4px) rotate(-1deg)}}@media(prefers-reduced-motion:reduce){*,*:before{animation:none!important;transition:none!important}}@media(max-width:700px){.top{padding:25px 22px 10px;padding-top:max(25px,env(safe-area-inset-top))}.layout{padding:18px 20px;grid-template-columns:1fr;gap:20px}.hero{min-height:330px}.hero h2{font-size:29px}.hero .couple{width:270px;right:-20px;bottom:-2px;height:245px}.hero .couple img{width:355px;left:-44px;top:-108px}.hero p{max-width:160px}.days{bottom:24px}.days strong{font-size:38px}.right-stack{grid-template-columns:1fr 1fr;gap:12px}.weather,.mood-mini{padding:17px;min-height:154px}.weather strong{font-size:36px;margin-top:14px}.weather .symbol{font-size:28px;align-self:flex-start}.weather .muted{font-size:10px}.weather h3{font-size:13px}.mood-mini h3{font-size:13px}.faces{gap:5px;flex-wrap:wrap;margin-top:12px}.face{width:33px;height:33px;font-size:19px;border-radius:11px}.tiles{gap:10px}.tile{padding:16px 12px;min-height:126px}.tile strong{font-size:13px}.tile small{font-size:10px}.count-list{grid-template-columns:1fr 1fr}.count-list .count:last-child:nth-child(odd){grid-column:1/-1}.notice{margin:0 20px}.welcome{padding:22px;display:flex;flex-direction:column;gap:25px}.welcome-art{min-height:300px;width:100%;padding:26px;border-radius:26px}.welcome-art h1{font-size:40px;margin-top:12px}.welcome-art p{max-width:160px;font-size:12px}.welcome-art .couple{width:250px;height:220px;right:-30px;bottom:-2px}.welcome-art .couple img{width:330px;left:-35px;top:-105px}.welcome-form{width:100%;padding:10px 4px 25px}.welcome-form h2{font-size:26px}.calendar-grid button{min-height:44px}.pet-stage{min-height:360px}.nav{gap:2px;padding:9px 12px;width:calc(100% - 36px);justify-content:space-around;max-width:440px}.nav button{min-width:0;padding:7px 13px}.status{font-size:10px}.card{padding:20px}.wide{grid-column:auto}.mood-entry .face{width:42px;height:42px}.shell{border-radius:0}}
/* Warm, original pet-house art direction. */
html{background:#efe5cf}body{color:#51483b;font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Hiragino Sans GB',sans-serif}.shell{background:#faf6e9;background-image:radial-gradient(#ded6bc70 .7px,transparent .7px);background-size:9px 9px}.top{padding-top:max(24px,env(safe-area-inset-top))}.brandmark{color:#fff9e7;background:#83b8ac;border:2px solid #527e75;box-shadow:0 3px 0 #50766920;border-radius:15px}.brand h2{color:#496458;font-size:26px}.top p{letter-spacing:1px;color:#a39172}.status{color:#8b9c7b}.avatar-btn{background:#fae4bd;border:2px solid #d8bc91;color:#99764b}.card{background:#fffbee;border:2px solid #e7d9bd;box-shadow:0 5px 0 #dbceb955;border-radius:24px}.eyebrow{letter-spacing:2px;color:#a59373}.muted,small{color:#92846d}.text-btn{color:#618c7d;font-weight:600}.house-card{padding:0;overflow:hidden}.house-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:19px 22px 15px;background:#fff9e8;border-bottom:2px solid #e5d6b9}.house-heading h2{font-size:22px;margin-top:5px;color:#66583e}.house-heading .tag{font-size:10px;background:#eee6ce;color:#9a8157}.day-pill{padding:9px 12px;border-radius:15px;background:#d7e9d4;color:#6e8e68;font-size:11px;white-space:nowrap;border:1px solid #becfac}.room-scene{position:relative;height:350px;background:#f0dab5 url('/assets/room.webp') center 54%/cover no-repeat;overflow:hidden}.room-scene:after{content:'';position:absolute;inset:0;box-shadow:inset 0 0 20px #78613315;pointer-events:none}.room-label{position:absolute;left:14px;top:13px;background:#fff6dfa8;backdrop-filter:blur(4px);border-radius:20px;padding:6px 11px;font-size:10px;color:#8d7456;letter-spacing:1px}.resident{position:absolute;bottom:8%;width:170px;height:195px;padding:0;z-index:2;transform-origin:center bottom}.resident.boy{left:22%}.resident.girl{right:15%}.sprite{display:block;width:170px;height:170px;overflow:hidden;animation:resident-breathe 4.5s ease-in-out infinite;transform-origin:center bottom}.resident.girl .sprite{animation-delay:-2.1s}.sprite img{display:block;width:200%;height:200%;max-width:none;pointer-events:none}.sprite-happy img{transform:translateX(-50%)}.sprite-read img{transform:translateY(-50%)}.sprite-sleep img{transform:translate(-50%,-50%)}.nameplate{display:inline-flex;gap:6px;align-items:center;border:1px solid #c7b492;background:#fff6dfed;border-radius:12px;padding:4px 11px;box-shadow:0 2px 0 #7c663422;font-size:11px;color:#6d674e;position:relative;top:-4px}.nameplate small{font-size:9px;color:#839271}.resident-selected .nameplate{background:#daf0e5;border-color:#87b6a4}.speech{opacity:0;position:absolute;top:-24px;left:50%;transform:translateX(-50%);font-size:10px;background:#fff9e6;border:1px solid #d9c8a5;box-shadow:0 3px 0 #ad937228;padding:8px 10px;border-radius:14px;white-space:nowrap;z-index:3;pointer-events:none}.speech:after{content:'';position:absolute;left:50%;bottom:-5px;width:7px;height:7px;background:#fff9e6;border-right:1px solid #d9c8a5;border-bottom:1px solid #d9c8a5;transform:rotate(45deg)}.resident:hover .speech,.resident-selected .speech,.activity-happy .speech,.activity-sleep .speech{opacity:1;animation:bubble-in .35s ease-out}.activity-walk{animation:stroll 9s ease-in-out infinite}.activity-walk .sprite{animation:steps .65s ease-in-out infinite}.activity-read .sprite{animation:reading 6s ease-in-out infinite}.activity-sleep .sprite{animation:sleep-breathe 5.5s ease-in-out infinite}.activity-happy .sprite{animation:happy .85s ease-in-out 3}.floating-love{position:absolute;top:-7px;left:80%;font-size:26px;color:#e4a598;animation:float-love 2s ease-out infinite;pointer-events:none}.room-toolbar{padding:12px 16px 15px;background:#fff6df;border-top:2px solid #e6d5b0}.room-toolbar>span{font-size:10px;color:#ad9572;display:block;margin-bottom:8px}.room-toolbar>span b{color:#749583}.room-toolbar>div{display:flex;gap:8px}.room-toolbar button{flex:1;white-space:nowrap;background:#f1e4c9;border:1px solid #d7c29d;border-radius:12px;padding:8px 6px;box-shadow:0 3px 0 #c6ac8350;color:#827253;font-size:11px;transition:transform .2s}.room-toolbar button:active{transform:translateY(3px);box-shadow:none}.weather{background:#fce8b6;border-color:#e7c991}.weather .symbol{animation:sun-sway 8s ease-in-out infinite}.weather strong{color:#917849}.weather h3{color:#8b744e}.mood-mini{background:#e7f0de;border-color:#c7d4b4}.face{background:#fff8df;border:1px solid #dfd3ae;border-radius:16px;color:#a48958;box-shadow:0 3px 0 #c6b79038;transition:transform .25s}.face:hover{transform:translateY(-4px) rotate(5deg)}.face:active{transform:scale(.88)}.faces{gap:9px}.tiles{gap:14px}.tile{border:2px solid #dcc8a2;background:#f6e6c7;box-shadow:0 5px 0 #d4bd9650;border-radius:23px;text-align:center;transition:transform .2s}.tile:nth-child(2){background:#dfede7;border-color:#bfcfc2}.tile:nth-child(3){background:#f8e2dc;border-color:#e2c3b4}.tile:hover{transform:translateY(-3px)}.tile:active{transform:translateY(3px)}.tile-icon{font-size:30px!important;margin-bottom:8px!important;filter:drop-shadow(0 2px 0 #99765820)}.tile strong{color:#74654c}.tile small{color:#a29275}.count{background:#fff9e6;border:2px solid #e4d3b0;box-shadow:0 4px 0 #dac59e40;color:#816a43;overflow:hidden}.count:before{content:'';position:absolute;top:0;left:0;right:0;height:7px;background:repeating-linear-gradient(90deg,#cfe4d4 0 18px,#f8e7bf 18px 36px)}.count:nth-child(2):before{background:repeating-linear-gradient(90deg,#e4d9ee 0 18px,#fff0ca 18px 36px)}.count .num{color:#76937b;font-size:36px}.count .delete{float:right;color:#aa9270}.count .emoji{background:#f0e5cb;border-radius:12px;padding:4px 8px;display:inline-flex;margin-top:5px}.count:hover .emoji{animation:happy .8s ease-in-out}.note-card{background:#f9efdb;transform:rotate(-.35deg)}.note-card .eyebrow{display:block;margin-bottom:15px}.notice{background:#eee9d5;color:#9c8761;border:1px solid #dfd4b5}.notice button{color:#729986}.nav{background:#f0e2c5;color:#a6916b;border:2px solid #cdb88f;box-shadow:0 5px 0 #c7b28f50,0 12px 30px #7f70401c;border-radius:24px}.nav button{font-weight:600}.nav button.active{background:#cfe3d4;color:#668778;box-shadow:inset 0 -2px 0 #94b6a155}.nav button b{font-size:23px}.nav button:active{transform:scale(.93)}.empty{border-color:#dccba9;background:#faf3de;color:#a08c67}.row{background:#f7efd9;border:1px solid #e5d7b9;color:#7e7057}.row p{color:#a08d6e}.primary{background:#84b4a4;border:2px solid #638f80;color:#fffaf0;box-shadow:0 4px 0 #55756740;border-radius:18px}.secondary{background:#f6eacf;border:1px solid #d4c19e;color:#917c57;box-shadow:0 3px 0 #d2bea03a}.primary:active,.secondary:active{transform:translateY(2px)}dialog{background:#fff9e9;border:2px solid #dfcda9;box-shadow:0 15px 0 #8a744425,0 25px 100px #57442150}dialog::backdrop{background:#5a604d55;backdrop-filter:blur(4px)}dialog h2{color:#79654a}.close{background:#efdfbc;color:#aa895a}input,textarea,select{background:#fcf4df;border:1px solid #dfcfaa;color:#786448}.check input{accent-color:#7ca998}.form-hint,.footer-note{color:#a19072}.calendar-grid button{color:#8f7b56;transition:background .2s,transform .2s}.calendar-grid .today{background:#e3ecd5}.calendar-grid .picked{outline-color:#9bbfa9;background:#daebdc;animation:day-pop .35s ease-out}.bar{background:#e8dbc0}.bar progress::-webkit-progress-bar{background:#e8dbc0}.bar progress::-webkit-progress-value{background:#92ba9f;transition:width .6s}.bar progress::-moz-progress-bar{background:#92ba9f}.food{background:#fff5db;border:2px solid #e4cd9e;box-shadow:0 4px 0 #cfb6894a;color:#9e8051;transition:transform .2s}.food:hover{transform:translateY(-4px) rotate(-3deg)}.food:active{transform:scale(.94)}.food b{animation:food-idle 7s ease-in-out infinite}.character-tabs{display:flex;gap:9px;margin:17px 0}.character-tabs button{padding:11px 16px;border:1px solid #dac8a8;background:#f4e9d0;border-radius:14px;font-size:12px;color:#a0875e}.character-tabs .chosen{background:#d6eadd;border-color:#9bbb9f;color:#648b73}.badge{background:#deead5;color:#7e9875}.food-flight{position:absolute;left:50%;bottom:2%;font-size:32px;animation:food-arrive 1.4s ease-in-out forwards;pointer-events:none;z-index:8}.together-hug .resident.boy{animation:boy-hug 5s ease-in-out forwards}.together-hug .resident.girl{animation:girl-hug 5s ease-in-out forwards}.welcome{background:#faf6e9}.welcome-art{background:#efdcbb url('/assets/room.webp') center/cover no-repeat;border:3px solid #d6bd95}.welcome-art h1,.welcome-art p,.welcome-art .eyebrow{background:#fffae8bd;border-radius:12px;display:table;padding:8px 12px;color:#807052;backdrop-filter:blur(4px)}.welcome-art .couple{bottom:30px}.welcome-form h2{color:#7d684c}.tabs button{background:#eee3c7;color:#9e885e}.tabs button.active{background:#d5e7d7;color:#74957b}.preview-btn{color:#7b9c86}.copyright{color:#ac9a7e}#toast{background:#779282;color:#fffbee;border:2px solid #a2b9a2;box-shadow:0 5px 0 #64786633}.feeding-card>.secondary{margin-top:24px}button{touch-action:manipulation}@keyframes resident-breathe{0%,100%{transform:translateY(0) rotate(-.7deg)}50%{transform:translateY(-3px) rotate(.7deg)}}@keyframes reading{0%,100%{transform:rotate(-1deg)}45%{transform:translateY(-2px) rotate(1deg)}}@keyframes sleep-breathe{0%,100%{transform:scaleY(1) rotate(-2deg)}50%{transform:scaleY(.975) rotate(-2deg)}}@keyframes happy{0%,100%{transform:translateY(0)}40%{transform:translateY(-7px) rotate(2deg)}75%{transform:translateY(-2px) rotate(-1deg)}}@keyframes steps{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-3px) rotate(2deg)}}@keyframes stroll{0%,100%{transform:translateX(0)}25%{transform:translateX(-20px)}75%{transform:translateX(15px)}}@keyframes bubble-in{from{opacity:0;translate:0 5px}to{opacity:1;translate:0 0}}@keyframes float-love{0%{opacity:0;transform:translateY(0) scale(.6)}30%{opacity:.85}100%{opacity:0;transform:translateY(-35px) scale(1.1)}}@keyframes sun-sway{0%,100%{transform:rotate(-8deg)}50%{transform:rotate(8deg)}}@keyframes food-idle{0%,90%,100%{transform:rotate(0)}94%{transform:rotate(-8deg)}97%{transform:rotate(8deg)}}@keyframes day-pop{0%{transform:scale(.9)}60%{transform:scale(1.07)}100%{transform:scale(1)}}@keyframes food-arrive{0%{opacity:0;transform:translate(-50%,0) scale(.8)}20%{opacity:1}85%{opacity:1;transform:translate(-50%,-100px) scale(1)}100%{opacity:0;transform:translate(-50%,-115px) scale(.6)}}@keyframes boy-hug{0%,100%{transform:translateX(0)}25%,75%{transform:translateX(18px) rotate(3deg)}}@keyframes girl-hug{0%,100%{transform:translateX(0)}25%,75%{transform:translateX(-18px) rotate(-3deg)}}@media(max-width:700px){.top{padding-bottom:12px}.layout{padding-top:16px;gap:20px}.house-heading{padding:16px 15px 13px}.house-heading h2{font-size:20px}.house-heading .eyebrow{font-size:9px}.day-pill{padding:8px 9px;font-size:10px}.room-scene{height:310px;background-position:center 57%}.resident{width:132px;height:158px;bottom:7%}.resident.boy{left:14%}.resident.girl{right:9%}.sprite{width:132px;height:132px}.speech{top:-20px;font-size:9px;padding:7px 9px}.nameplate{font-size:10px;padding:4px 9px}.room-toolbar{padding:11px 13px 14px}.room-toolbar button{font-size:10px;padding:9px 5px}.right-stack{gap:13px}.weather{min-height:160px}.mood-mini{min-height:160px}.faces{gap:7px}.tiles{gap:10px}.tile{padding:15px 8px;min-height:122px}.tile strong{font-size:12px}.tile small{font-size:9px}.tile-icon{font-size:27px!important}.nav button b{font-size:22px}.nav button{padding:7px 12px}.house-heading .tag{font-size:9px;padding:5px 8px;max-width:90px}.count .num{font-size:32px}.welcome-art .couple{bottom:10px}.status{font-size:9px}}
.room-toolbar>div{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.sprite-work img{transform:none}.sprite-exercise img{transform:translateX(-50%)}.sprite-drink img{transform:translateY(-50%)}.sprite-walk img{transform:translate(-50%,-50%)}.activity-work .sprite{animation:working 3.5s ease-in-out infinite}.activity-exercise .sprite{animation:exercising 1.9s ease-in-out infinite}.activity-drink .sprite{animation:evening-sip 7s ease-in-out infinite}.activity-effect{position:absolute;top:22px;right:12px;pointer-events:none;font-size:20px;color:#ffe8ac;z-index:3}.typing-dots{font-size:7px;letter-spacing:2px;top:30px;right:5px;padding:7px 8px;background:#faffeda6;border-radius:12px;color:#9ea98e;animation:typing 1.8s ease-in-out infinite}.sport-spark{animation:float-love 2s ease-out infinite;color:#fff9d5;font-size:24px}.wine-spark{animation:twinkle 4s ease-in-out infinite;color:#f8c9a3}.resident.girl .sprite-work,.resident.girl .sprite-drink,.resident.girl .sprite-read{animation-duration:5s}.resident.girl .sprite-happy{animation-name:gentle-greeting;animation-duration:2s}.room-toolbar button{min-height:34px}@keyframes working{0%,100%{transform:rotate(-.6deg)}35%{transform:translateY(1px) rotate(.7deg)}55%{transform:translateY(-1px) rotate(-.2deg)}}@keyframes exercising{0%,100%{transform:scaleY(1) rotate(-1deg)}40%{transform:scaleY(.94) rotate(1deg)}70%{transform:scaleY(1.02) rotate(-.5deg)}}@keyframes evening-sip{0%,100%{transform:rotate(-1deg)}30%,45%{transform:rotate(3deg) translateY(-2px)}70%{transform:rotate(0)}}@keyframes typing{0%,100%{opacity:.4;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}@keyframes twinkle{0%,100%{opacity:.1;transform:scale(.7) rotate(-10deg)}40%{opacity:1;transform:scale(1.1) rotate(15deg)}}@keyframes gentle-greeting{0%,100%{transform:rotate(0)}45%{transform:rotate(-2deg) translateY(-2px)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.room-toolbar>.hair-options{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 12px;padding-bottom:10px;border-bottom:1px dashed #d7c29d}.hair-options>span{font-size:10px;color:#9d8765}.room-toolbar .hair-options button{flex:none;padding:6px 13px;min-height:30px}.room-toolbar .hair-options .hair-active{background:#d5eada;border-color:#94b79d;color:#638877}.hair-options small{font-size:9px;flex-basis:100%}
.brandmark{padding:0;background:#f8f5ec;border:1px solid #dedbcf;box-shadow:0 2px 4px #68745d0c;overflow:hidden;border-radius:13px}.brandmark img{display:block;width:100%;height:100%;object-fit:cover}.top .brand p{letter-spacing:.4px;font-size:11px;color:#9c927f}
.sprite canvas{width:100%;height:100%;display:block}.resident.boy .sprite,.resident.girl .sprite{transform-origin:50% 96%}
.top .brand p{letter-spacing:0;font-size:10px;line-height:1.6}.brand{min-width:0}.top .brand p{max-width:205px}
@media(max-width:420px){.top{gap:8px}.top .status{max-width:54px;text-align:center;line-height:1.4}.brand{gap:10px}.avatar-btn{flex-shrink:0}.top .brand p{font-size:9px;max-width:174px}}
.blind-door{display:flex;align-items:center;text-align:left;gap:17px;background:#f9e8d7;border:2px solid #e7ccad;border-radius:22px;padding:17px 21px;box-shadow:0 4px 0 #dbbc9440}.blind-door>span{font-size:30px}.blind-door strong{display:block;color:#967951;font-size:17px}.blind-door small{display:block;margin-top:5px;font-size:11px}.blind-door>b{margin-left:auto;color:#b5986e}.blind-hero{display:flex;align-items:center;justify-content:space-between;background:#f6ead4}.blind-hero h2{font-size:30px;color:#88714f;margin:9px 0}.blind-hero p{font-size:13px;color:#a48c69;line-height:1.8}.blind-package{font-size:62px;animation:food-idle 6s ease-in-out infinite}.wish-details{display:grid;grid-template-columns:1fr;gap:7px;margin-bottom:0}.wish-details dt{font-size:11px;color:#a68d68;margin-top:10px}.wish-details dd{margin:0;font-size:14px;line-height:1.7;color:#75644d;white-space:pre-wrap;overflow-wrap:anywhere}.need-badge{display:inline-block;border-radius:12px;padding:8px 12px;font-size:11px;background:#ede3ce;color:#a38a63}.need-yes{background:#daeadd;color:#6f967b}.need-no{background:#e4e8ef;color:#8c97aa}.blind-reminder{font-size:12px;padding:12px;margin:12px 0;border-radius:12px;background:#f3e2cf;color:#ac845c}.gift-row{align-items:flex-start}.gift-symbol{font-size:28px}.gift-content{flex:1;min-width:0}.gift-content p{overflow-wrap:anywhere}.gift-actions{display:flex;flex-direction:column;gap:5px}.gift-actions .secondary{font-size:11px;padding:9px}.nav button{padding-left:8px;padding-right:8px;min-width:52px}@media(max-width:700px){.nav{padding:9px 7px;gap:0}.nav button{min-width:0;flex:1;padding:7px 5px;font-size:9px}.nav button b{font-size:20px}.blind-door{padding:16px}.blind-hero h2{font-size:27px}.blind-package{font-size:48px}.gift-row{gap:9px}.gift-symbol{font-size:23px}.gift-content strong{font-size:13px}}
.day-dots{display:flex;justify-content:center;align-items:center;gap:3px;min-height:12px;margin-top:3px}.day-dots i,.calendar-legend i{display:inline-block;width:5px;height:5px;border-radius:50%;flex-shrink:0}.day-dots b{font-size:9px;font-weight:400;color:#a78e67}.color-sage{background:#85b294}.color-blue{background:#78b9c8}.color-peach{background:#e8a995}.color-purple{background:#b8a2c8}.color-gold{background:#d6b365}.color-navy{background:#607c98}.calendar-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px;font-size:9px;color:#a08c69}.calendar-legend span{display:flex;align-items:center;gap:5px}.calendar-item{justify-content:flex-start;align-items:stretch}.item-color{width:5px;min-height:46px;display:block;border-radius:5px;flex-shrink:0}.calendar-item>div{min-width:0}.calendar-item strong,.calendar-item p{overflow-wrap:anywhere}
