:root{font-family:'Zen Maru Gothic',system-ui,sans-serif;color:#493b45;background:#f6e7de;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer;border:0}button:focus-visible,input:focus-visible{outline:3px solid #ad6588;outline-offset:3px}button:disabled{opacity:.5;cursor:wait}#app{max-width:480px;min-height:100dvh;margin:auto;background:#fffaf5;overflow:hidden;position:relative;padding-bottom:24px;box-shadow:0 0 70px #9a707222}.header{display:flex;justify-content:space-between;align-items:center;padding:20px 22px 12px}.brand{font-weight:900;letter-spacing:.12em;font-size:21px}.tiny{font-size:11px;letter-spacing:.13em;color:#a78688}.pill{border-radius:30px;background:#f7e9e4;padding:8px 12px;color:#856675;font-size:12px}.hero{text-align:center;padding:28px 24px 10px}.eyebrow{font-size:11px;color:#a37885;letter-spacing:.24em}.hero h1{font-size:49px;margin:8px 0;color:#624657;letter-spacing:.04em}.hero p{font-size:13px;line-height:1.9;color:#927b81}.primary{border-radius:18px;padding:15px 22px;background:#b86f89;color:white;font-weight:700;box-shadow:0 5px 0 #985971;width:100%}.secondary{background:#f2e6e2;color:#795865;border-radius:14px;padding:12px}.card{margin:16px 22px;padding:20px;border:1px solid #eaded6;border-radius:24px;background:#fffdf9}.card h2{font-size:17px;margin:0 0 14px}.profile-row{display:flex;gap:8px;margin:10px 0}.profile-row button:first-child{flex:1;text-align:left}.profile-form{display:flex;gap:8px}.profile-form input{width:100%;min-width:0;border:1px solid #e2d2cd;border-radius:12px;padding:12px;background:#fffaf7}.note{text-align:center;font-size:11px;color:#a08a8c;line-height:1.8;padding:0 20px}.scene{height:300px;margin:12px 18px;border-radius:100px 100px 26px 26px;background:radial-gradient(ellipse at 50% 25%,#fffbec 0,#f6e6d8 68%);position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px solid #ead7c9}.scene:before{content:'✧';position:absolute;top:35px;left:35px;font-size:36px;color:#cba77b}.scene:after{content:'';position:absolute;bottom:0;height:67px;width:100%;background:#e9d3bb66;border-top:1px solid #dbc6b955}.dog{width:230px;height:235px;z-index:1;filter:drop-shadow(0 12px 8px #69503b22);animation:breathe 3s ease-in-out infinite}.dog svg{width:100%;height:100%;overflow:visible}.sleep .dog{animation:breathe 5s infinite}.sleep .dog:after{content:'z Z';position:absolute;top:10px;right:5px;color:#8e7aa9;font-weight:bold}.float{position:absolute;z-index:2;font-size:26px;right:32px;top:42px;animation:bob 3s infinite}.room-caption{position:absolute;bottom:12px;z-index:2;font-size:11px;color:#9b7c68;letter-spacing:.2em}.greeting{padding:2px 24px;display:flex;align-items:center;justify-content:space-between}.greeting h1{font-size:25px;margin:4px 0}.rarity{font-size:10px;color:#b38d52;letter-spacing:.1em}.subtitle{font-size:12px;color:#9b858a}.speech{margin:12px 22px;background:#f6ebe5;padding:12px 16px;border-radius:15px;text-align:center;font-size:13px;min-height:43px}.stats{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px;padding:8px 24px}.stat-label{display:flex;justify-content:space-between;font-size:11px;margin-bottom:5px}.track{height:6px;background:#ece3dd;border-radius:8px;overflow:hidden}.fill{height:100%;background:#c08f9c;border-radius:8px;transition:width .5s}.actions{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;padding:14px 22px}.action{background:#fffdf9;border:1px solid #e9dcd4;border-radius:17px;padding:12px 2px 9px;color:#775d68;font-size:11px;box-shadow:0 3px 0 #eee2d9}.action span{display:block;font-size:25px;margin-bottom:5px}.section-label{margin:16px 24px 0;font-size:12px;letter-spacing:.16em;color:#9b7885}.progress{margin-top:12px}.collection{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.collect{border-radius:12px;background:#f6eee7;text-align:center;padding:10px 2px;font-size:9px}.collect span{display:block;font-size:22px;margin-bottom:5px}.locked{opacity:.4}.gacha{text-align:center;padding:25px 24px;background:radial-gradient(circle,#fff9d7,#f7e4e4);min-height:100dvh}.gacha h1{font-size:29px;color:#936c49}.egg{font-size:100px;margin:45px auto 35px;filter:drop-shadow(0 8px 12px #ad7d5244);animation:bob 2s infinite}.gacha.revealing .egg{animation:shake .2s infinite}.stars{color:#b48c45;letter-spacing:8px;font-size:21px}.variant-list{font-size:12px;line-height:2;color:#987b70;margin-top:24px}.log{font-size:12px;color:#967e82;line-height:1.8;margin:0;padding-left:18px}#toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,20px);background:#614951;color:white;border-radius:18px;padding:12px 20px;font-size:13px;opacity:0;pointer-events:none;transition:.2s;max-width:90%;z-index:9}#toast.show{opacity:1;transform:translate(-50%,0)}.celebrate{animation:appear .6s ease-out}.save-warning{padding:10px;background:#ffe1cf;font-size:12px;text-align:center}.reset{font-size:10px;padding:10px;color:#a18e92;background:none}dialog{border:1px solid #e5d2c6;border-radius:24px;max-width:340px;width:90%;color:#624657;background:#fffaf5;padding:24px}dialog::backdrop{background:#493b4566}dialog p{font-size:13px;line-height:1.9}.dialog-buttons{display:flex;gap:10px}.dialog-buttons button{flex:1}@keyframes breathe{50%{transform:translateY(-5px) rotate(1deg)}}@keyframes bob{50%{transform:translateY(-10px)}}@keyframes shake{50%{transform:rotate(8deg) scale(1.1)}}@keyframes appear{from{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media(max-width:360px){.actions{gap:5px;padding:12px}.scene{height:260px}.hero h1{font-size:42px}}
.gacha{position:relative;isolation:isolate}.gacha:before{content:'';position:absolute;inset:110px -100px 180px;z-index:-1;background:repeating-conic-gradient(from 0deg,#fff4c366 0deg 12deg,transparent 12deg 30deg);mask-image:radial-gradient(ellipse,#000,transparent 70%);animation:rays 28s linear infinite}.gacha .egg:before,.gacha .egg:after{content:'✧ ✦ ✧';position:absolute;color:#c69a4c;font-size:25px;left:12%;top:38%;letter-spacing:20px}.gacha .egg:after{left:auto;right:6%;top:28%;transform:rotate(30deg)}.gacha.revealing .egg{filter:drop-shadow(0 0 25px #fff3a4)}@keyframes rays{to{transform:rotate(360deg)}}
/* Second-generation life simulation UI */
button{touch-action:manipulation;min-height:44px}input[type=checkbox]{width:23px;height:23px;accent-color:#ad718c}input[type=range]{accent-color:#ad718c;max-width:170px}.female{color:#bd7f99;font-size:19px}.status{font-size:11px;padding:9px 12px;border-radius:20px;background:#e6eddb;color:#647752}.status.unwell{background:#fbe1cf;color:#a65640}.greeting h1{font-size:28px}.room{height:355px;border-radius:105px 105px 28px 28px;margin-top:18px;--aura:#e8a1b6;background:radial-gradient(ellipse at 50% 35%,#fffbed,#f1dfd0)}.window{position:absolute;left:25px;top:22px;border:5px solid #fff7ed;border-radius:50px 50px 10px 10px;background:#dfe9e5;width:70px;height:95px;color:#c1aa78;font-size:36px;text-align:center;padding-top:18px;box-shadow:0 0 0 1px #d6c7ba}.room .dog{width:270px;height:275px;margin-top:26px}.room .room-caption{font-size:10px;letter-spacing:.08em;max-width:92%;text-align:center}.room .float{color:var(--aura);filter:drop-shadow(0 0 10px var(--aura))}.aura-cosmos{background:radial-gradient(ellipse at 50% 20%,#efe9ff,#eddfd4)}.aura-blossom{background:radial-gradient(ellipse at 50% 20%,#fff0f3,#f1dfd0)}.aura-peach{background:radial-gradient(ellipse at 50% 20%,#fff3dd,#f4dbce)}.aura-angel{background:radial-gradient(ellipse at 50% 20%,#fffde6,#eddfd0)}.aura-miracle{background:radial-gradient(ellipse at 50% 20%,#e9fff6,#e6dfd5)}.room.sleep{background:radial-gradient(ellipse,#514d6e,#27263c);border-color:#44405d}.room.sleep:before{content:'☾';color:#efd89e}.room.sleep:after{background:#14132966;border-color:#635f7955}.room.sleep .window{background:#272a4b;color:#f6d692;border-color:#74718b}.room.sleep .dog{filter:brightness(.7) drop-shadow(0 10px 8px #0003)}.room.sleep .room-caption{color:#c9bfd9}.room.ill .dog{filter:saturate(.65) brightness(.85)}.waste{position:absolute;bottom:35px;right:18px;z-index:3;font-size:22px;max-width:110px}.call-banner{margin:10px 22px;background:#fff0d9;border:1px solid #e9c99f;color:#8a603e;padding:12px;border-radius:14px;font-size:12px;line-height:1.8}.call-banner strong{display:block}.actions{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.action{min-height:79px}.action span{font-size:26px}.stats{padding-top:10px}.tutorial{margin:14px 22px;padding:18px;background:#fff3d8;border:1px solid #e6c896;border-radius:20px;position:relative;z-index:3;box-shadow:0 4px 0 #cdb78b19}.tutorial h2{font-size:17px;margin:8px 0}.tutorial p{font-size:13px;line-height:1.9;margin:8px 0 14px}.tutorial small{font-size:10px;display:block;margin-top:10px;color:#947951}.tutorial-nav{display:flex;align-items:center;gap:8px}.tutorial-nav .primary{width:auto;flex:1;padding:12px}.tutorial-nav .secondary{padding:10px}.text-button{background:none;color:#926d78;font-size:11px;padding:5px;min-height:44px}.target{outline:3px solid #dbad59;outline-offset:3px;animation:target-pulse 1.6s infinite;position:relative;z-index:3}.target:before{content:'↓';position:absolute;top:-23px;left:calc(50% - 6px);color:#b0853e;font-weight:bold;background:#fffaf0;border-radius:12px}.growth-stages{display:flex;justify-content:space-between;gap:3px;margin:12px 0}.growth-stages span{font-size:10px;background:#f1ebe6;color:#a3938a;padding:8px 4px;border-radius:10px;flex:1;text-align:center}.growth-stages .current{background:#e4ead9;color:#60724a;font-weight:bold}.bottom-menu{display:flex;gap:8px;justify-content:center;margin:18px 22px}.bottom-menu button{flex:1;background:#f3e9e2;color:#8b6b77;border-radius:14px;padding:10px 6px;font-size:12px}.dialog-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.dialog-header h2{font-size:18px;margin:0}.close{background:#f1e5df;border-radius:50%;min-width:44px;font-size:24px;color:#977482}dialog{width:min(440px,94vw);max-width:440px;max-height:88dvh;overflow:auto;padding:20px}dialog .primary{margin-top:12px}dialog .secondary{margin:4px 0}.setting-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:14px 0;font-size:14px}hr{border:0;border-top:1px solid #eadcd2;margin:20px 0}.guide-items{margin:15px 0}.guide-items details{border-bottom:1px solid #eaded5;padding:12px 0}.guide-items summary{cursor:pointer;font-size:14px;min-height:26px}.guide-items p{color:#96777a}.import-label{display:block;padding:12px;background:#f3e7e1;border-radius:14px;margin-top:12px;font-size:13px}.import-label input{display:block;max-width:100%;font-size:11px;margin-top:8px}.trick-row{display:flex;align-items:center;gap:8px;border-top:1px solid #e9dcd3;padding:10px 0;font-size:13px}.trick-row>div{flex:1}.trick-row small{display:block;color:#a18b8b;font-size:10px;margin-top:4px}.trick-row button{padding:8px}.train-result{min-height:45px}.play-field{height:270px;position:relative;overflow:hidden;background:radial-gradient(ellipse,#edf2df,#d4e1c4);border-radius:22px;border:1px solid #d1dcbd}.ball{position:absolute;width:64px;height:64px;font-size:43px;border-radius:50%;background:#fff8;box-shadow:0 4px 15px #8aa06d44;transition:left .15s,top .15s}.mini-score{margin:12px 0;font-size:13px;color:#7e9561;text-align:center}.play-finish{width:100%;margin-top:14px!important}.train-result{font-size:13px!important;color:#976e82}.machine{position:relative;margin:22px auto 14px;width:220px;filter:drop-shadow(0 12px 15px #a2795544)}.machine-top{background:linear-gradient(100deg,#bd9150,#f9df9e,#bd9150);border:3px solid #c49c5e;border-radius:30px 30px 10px 10px;padding:12px;font-size:12px;letter-spacing:.15em;color:#6c5032}.globe{height:155px;border-radius:70px 70px 18px 18px;border:8px solid #ddbd84;background:radial-gradient(ellipse at 30% 20%,#ffffffd9,#ffe9f2aa 65%,#d7b4ce);position:relative;box-shadow:inset 0 0 20px #b599bd44;overflow:hidden}.globe:after{content:'';position:absolute;width:17px;height:60px;border-radius:50%;background:#fffd;left:20px;top:10px;transform:rotate(25deg)}.globe span{position:absolute;font-size:32px;bottom:5px}.globe span:nth-child(1){left:15px;bottom:13px}.globe span:nth-child(2){left:65px;bottom:4px}.globe span:nth-child(3){left:110px;bottom:18px}.globe span:nth-child(4){left:55px;bottom:53px}.globe span:nth-child(5){left:105px;bottom:68px}.machine-body{border:3px solid #caa36f;background:linear-gradient(90deg,#c999a8,#f1ced3,#c999a8);height:160px;border-radius:15px 15px 32px 32px;padding:10px}.machine-stars{color:#fff1c2;letter-spacing:14px}.handle{width:72px;height:61px;border:5px solid #e8c78f;background:linear-gradient(100deg,#b88e50,#f6dfaa,#b88e50);border-radius:50%;margin:5px auto;color:#fff3cd;font-size:30px}.chute{width:88px;height:33px;border:5px solid #dec18e;border-radius:17px 17px 8px 8px;background:#80626a;margin:0 auto}.gacha{padding:24px 24px 40px;min-height:0}.gacha h1{font-size:29px;line-height:1.6;margin:10px 0}.gacha-status{font-size:14px;color:#9c7585;min-height:40px;padding:8px}.gacha .primary{margin-top:8px}.skip-gacha{margin-top:16px}.capsule{display:none;position:absolute;width:110px;height:110px;border-radius:50%;border:4px solid #e9d19d;background:linear-gradient(#fff4d8 0 48%,#bf8fa8 49% 53%,#e6b1c2 54%);left:calc(50% - 55px);top:260px;z-index:3;box-shadow:inset -10px -10px 15px #9b688944,0 0 25px #fffbd8}.rolling.phase-shake .machine{animation:shake .15s infinite}.rolling:not(.phase-shake) .capsule{display:block;animation:capsule-spin 1.1s infinite}.rolling:not(.phase-shake) .machine{opacity:.3;transform:scale(.9)}.rolling.phase-three .gacha-status,.rolling.phase-two .gacha-status,.rolling.phase-one .gacha-status{font-size:40px;font-weight:900;color:#b08c51}.rolling.phase-flash:after{content:'';position:fixed;inset:0;background:#fff9d2;z-index:10;animation:flash .5s}.rolling.phase-cutin .gacha-status{font-size:23px;font-weight:bold;border-top:2px solid #e3c27e;border-bottom:2px solid #e3c27e;background:#fff8d9;padding:18px;animation:appear .4s}.reveal{text-align:center;min-height:100dvh;padding:50px 24px 30px;position:relative;overflow:hidden;--aura:#bd9ae2}.reveal:before{content:'';position:absolute;inset:-100px;background:repeating-conic-gradient(from 0deg,#fff7d177 0deg 12deg,transparent 12deg 30deg);animation:rays 30s infinite linear;pointer-events:none}.reveal>*{position:relative}.reveal h1{font-size:35px;letter-spacing:.08em;color:#a78140;text-shadow:0 2px #fff7d8;margin:20px 0}.reveal h2{font-size:22px;line-height:1.8}.reveal .scene{border-color:var(--aura);box-shadow:0 0 50px var(--aura);background:radial-gradient(ellipse,#fff9eb,var(--aura));height:340px;margin:25px 0}.reveal .dog{width:270px;height:275px}.reveal p{font-size:13px;line-height:1.8}.reveal .cutin{font-size:16px;letter-spacing:.08em}.sparkle-field{font-size:25px;letter-spacing:16px;color:#b68e53;animation:bob 2s infinite}.reveal .primary{margin-top:25px}.aura-cosmos .sparkle-field{color:#8e6cb8}.aura-blossom .sparkle-field{color:#d783a5}.aura-miracle .sparkle-field{color:#4c9b93}.farewell{text-align:center;background:linear-gradient(#35304d,#65617d);color:#f7f0ef;padding:30px 20px 25px}.farewell h1{font-size:24px;line-height:1.8}.farewell p{font-size:13px}.farewell .eyebrow{color:#d9c5b3}.night-sky{height:290px;position:relative;display:flex;align-items:center;justify-content:center}.sky-stars{position:absolute;inset:20px 0;color:#efd8a0;font-size:28px;letter-spacing:12px}.night-sky .dog{opacity:.7;filter:brightness(.65);animation:star-journey 5s both}.ascending-star{position:absolute;font-size:36px;color:#ffe1a3;animation:star-rise 5s both}.memorial-card{margin:20px 22px;padding:22px;background:#fff8ec;border:1px solid #d8bf91;border-radius:22px}.memorial-card h2{font-size:18px;color:#93703d;line-height:1.8}.memorial-card p{font-size:12px;color:#987d72;line-height:1.9}.memorial-card .secondary{font-size:12px;width:100%;margin-top:18px}.memory-stats{display:flex;flex-wrap:wrap;gap:8px;font-size:11px}.memory-stats span{background:#f0e5d2;padding:6px;border-radius:8px}.new-generation{padding:4px 22px}.memorial-card .eyebrow{font-size:9px}.closed-eyes{display:none}.dog .tail{transform-origin:175px 192px;animation:tail-wag 1.6s ease-in-out infinite}.dog .face{transform-origin:122px 160px;animation:head-tilt 7s ease-in-out infinite}.dog .eyes{transform-origin:122px 122px;animation:blink 6s infinite}.age-0{scale:.85}.age-1{scale:.93}.age-2{scale:.98}.age-4 .coat-detail{stroke:#a69aa3;opacity:.7}.age-4{animation-duration:5s}.pose-sleep,.pose-lie{transform:translateY(40px) rotate(-11deg);animation:breathe 5s infinite}.pose-sleep .eyes,.pose-farewell .eyes{display:none}.pose-sleep .closed-eyes,.pose-farewell .closed-eyes{display:block}.pose-sleep .tail,.pose-sleep .face,.pose-farewell .tail,.pose-farewell .face{animation:none}.pose-sleep:after{content:'z Z';position:absolute;right:5px;top:10px;color:#c0a7d5;font-size:25px;animation:bob 3s infinite}.pose-eat{animation:eat .4s infinite}.pose-eat:after{content:'🍚';position:absolute;font-size:38px;bottom:12px;left:45%}.pose-walk{animation:walk 2s ease-in-out infinite}.pose-walk .tail,.pose-cuddle .tail,.pose-jump .tail{animation:tail-wag .3s infinite}.pose-jump{animation:jump .6s infinite}.pose-cuddle,.pose-approach{animation:approach 2s ease-in-out infinite}.pose-bath:after{content:'🫧';position:absolute;font-size:60px;top:30%;right:0;animation:bob 1s infinite}.pose-toilet:after{content:'✨';position:absolute;bottom:10px;right:0;font-size:35px;animation:bob .7s infinite}.pose-paw{animation:paw 1s infinite}.pose-sit{animation:sit 1s both}.pose-stay{animation:none}.pose-sick,.pose-rest{transform:translateY(30px) rotate(-7deg);animation:breathe 6s infinite}.pose-sick .face{transform:rotate(-8deg);animation:none}.pose-sick .eyes{opacity:.55}.pose-sick .tail{animation-duration:8s}.pose-farewell{animation:none}.room:not(.sleep):not(.ill) .pose-idle{animation:roam 16s ease-in-out infinite}.pose-idle.age-4{animation-duration:25s}@keyframes target-pulse{50%{box-shadow:0 0 18px #d8ab6599}}@keyframes tail-wag{50%{transform:rotate(12deg)}}@keyframes head-tilt{45%,55%{transform:rotate(4deg)}}@keyframes blink{0%,43%,47%,100%{transform:scaleY(1)}45%{transform:scaleY(.08)}}@keyframes eat{50%{transform:translateY(7px) rotate(3deg)}}@keyframes walk{0%,100%{transform:translateX(-23px) rotate(-3deg)}50%{transform:translateX(23px) rotate(3deg)}}@keyframes jump{50%{transform:translateY(-22px) rotate(2deg)}}@keyframes approach{50%{transform:translateY(10px) scale(1.08)}}@keyframes paw{50%{transform:rotate(-6deg) translateY(-5px)}}@keyframes sit{to{transform:translateY(6px) scaleY(.95)}}@keyframes roam{0%,30%,100%{transform:translateX(0)}45%{transform:translateX(-20px) rotate(-2deg)}65%{transform:translateX(20px) rotate(2deg)}}@keyframes capsule-spin{50%{transform:rotate(180deg) scale(1.1);box-shadow:0 0 65px #fff19e}}@keyframes flash{50%{opacity:1}to{opacity:0}}@keyframes star-journey{to{opacity:.18;transform:translateY(-25px)}}@keyframes star-rise{from{opacity:0;transform:translateY(70px)}to{opacity:1;transform:translateY(-80px)}}@media(max-width:360px){.room{height:310px}.room .dog{width:240px;height:245px}.actions{grid-template-columns:repeat(3,minmax(0,1fr));padding:14px 18px}.tutorial{margin:12px 15px;padding:15px}.tutorial-nav{gap:5px}.tutorial-nav button{font-size:12px}.greeting{padding:2px 18px}.reveal h1{font-size:28px}.reveal h2{font-size:19px}.trick-row{gap:4px}.trick-row button{font-size:11px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.night-sky .dog{opacity:.35}.ascending-star{top:20px}}
.pose-paw .front-paw{transform-origin:94px 191px;animation:offer-paw 1s infinite}.pose-walk .front-paw{transform-origin:94px 191px;animation:offer-paw .5s infinite}.reveal.aura-cosmos .sparkle-field{animation:cosmic-shimmer 4s infinite}.reveal.aura-blossom .sparkle-field:after{content:'🌸';position:absolute;left:8%;top:100px;animation:petal-fall 4s infinite}.reveal.aura-peach .sparkle-field:after{content:'♡';position:absolute;right:8%;top:120px;color:#d78e97;animation:heart-float 2s infinite}.reveal.aura-angel .scene{box-shadow:0 -20px 70px #fffbd4,0 0 40px #edc563}.reveal.aura-angel .scene:before{content:'🪽';font-size:45px;animation:bob 2s infinite}.reveal.aura-miracle .scene{animation:prism 5s infinite}.reveal.aura-miracle .sparkle-field:after{content:'💎';position:absolute;right:8%;top:120px;animation:cosmic-shimmer 2s infinite}@keyframes offer-paw{50%{transform:translate(-7px,-20px) rotate(-15deg)}}@keyframes cosmic-shimmer{50%{opacity:.6;transform:scale(1.15);text-shadow:0 0 18px currentColor}}@keyframes petal-fall{from{transform:translateY(-40px) rotate(-30deg);opacity:0}50%{opacity:1}to{transform:translateY(150px) rotate(90deg);opacity:0}}@keyframes heart-float{to{transform:translateY(-60px) scale(1.4);opacity:0}}@keyframes prism{50%{box-shadow:0 0 65px #b0b4eb,0 0 30px #99ddc9}}
.profile-hint,.button-hint{font-size:12px;line-height:1.8;color:#8d747b}.profile-hint{margin:12px 0 0}.button-hint{margin:8px 24px}dialog .button-hint{margin:12px 0}.profile-feedback{font-size:13px;line-height:1.8;color:#617b52;margin:10px 0 0}.profile-feedback:empty{display:none}.profile-feedback.error{color:#aa4f4f}#profile-name[aria-invalid=true]{border-color:#bd6868;background:#fff2ef}.profile-row button:first-child:focus-visible{outline:3px solid #ad718c;background:#f8e0e7}
/* Ver.2 · Everyday discoveries, local economy and interactive room */
.header{gap:8px;flex-wrap:wrap}.header .brand{font-size:18px;flex:1}.coin-balance{background:#fff0c9;border:1px solid #ead3a3;border-radius:22px;padding:7px 10px;color:#89652e;font-size:12px;font-weight:bold;white-space:nowrap}.header .pill{font-size:11px}.coin-pop{position:fixed;top:75px;left:calc(50% + 20px);color:#ae7d27;background:#fff4c7;padding:9px 16px;border-radius:25px;border:1px solid #e4c87e;z-index:50;font-weight:bold;font-size:18px;pointer-events:none;animation:coin-rise 1.8s both}.daily-panel{margin:18px 22px 0;border:1px solid #e4d5c2;background:#faf2e5;border-radius:20px;padding:16px}.daily-panel .eyebrow{font-size:9px;letter-spacing:.12em}.daily-panel p{font-size:13px;line-height:1.8;margin:8px 0}.daily-panel small{display:block;color:#a18974;font-size:10px;margin-top:10px}.daily-missions{display:flex;gap:6px;flex-wrap:wrap}.daily-missions span{font-size:11px;background:#eee2d4;color:#9b8675;border-radius:10px;padding:6px 9px}.daily-missions .done{background:#e3ead8;color:#647b50}.world-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 22px}.world-nav button{border:1px solid #e5d9cf;background:#fffcf8;color:#826673;border-radius:16px;padding:10px 4px;font-size:24px;box-shadow:0 3px #eee2da}.world-nav span{display:block;font-size:11px;margin-top:4px}.gesture-hint{margin:10px 24px;color:#a18a85;font-size:10px;line-height:1.8;text-align:center}.learned-actions{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}.learned-actions .pill{font-size:10px;min-height:36px;padding:7px}.world-room{height:370px;touch-action:pan-y;isolation:isolate}.world-room .dog-anchor{position:absolute;width:174px;height:194px;transform:translate(-50%,-86%);transition:left .17s linear,top .17s linear;--facing:1;pointer-events:auto}.world-room .dog-anchor .dog{width:100%;height:100%;margin:0;scale:1;cursor:pointer}.world-room .dog-anchor .dog svg{transform:scaleX(var(--facing));transition:transform .3s}.world-room .dog-anchor .pose-idle{animation:breathe 4s infinite!important}.world-room .room-caption{z-index:110;pointer-events:none}.world-room .float{z-index:110;pointer-events:none;right:20px;top:24px;font-size:22px}.world-room .waste{z-index:110}.world-room:after{z-index:-1}.room-furniture{position:absolute;width:18%;height:12%;transform:translate(-50%,-50%);border-radius:12px;background:linear-gradient(#fff4,#a48a6c22);display:grid;place-items:center;cursor:pointer;filter:drop-shadow(0 5px 2px #543b3422)}.room-furniture span{font-size:40px;display:block;transform:rotate(var(--turn));line-height:1}.room-rug{position:absolute;width:60%;height:26%;left:20%;top:58%;border:4px double #fff7;border-radius:50%;opacity:.45;z-index:0}.room-decoration{position:absolute;top:25px;left:calc(50% - 22px);font-size:35px;z-index:1;filter:drop-shadow(0 2px 10px #e6ca86)}.world-dialog{max-width:460px;padding:18px}.world-dialog h2{font-size:17px}.world-dialog .wallet{text-align:center;background:#fff1d0;color:#99712e;border-radius:14px;padding:10px;font-size:13px;font-weight:bold}.world-dialog p{font-size:12px;line-height:1.8}.item-orb{font-size:76px;text-align:center;padding:24px;background:radial-gradient(ellipse,#fff5cb,transparent 70%);animation:bob 3s infinite}.item-draw-result{text-align:center;min-height:25px}.item-draw-result>strong{display:block}.item-art{width:72px;height:72px;background:radial-gradient(ellipse,#fff8ec,var(--item-color));border:1px solid #d9bda7;border-radius:18px;display:grid;place-items:center;font-size:39px;flex-shrink:0}.item-draw-result .item-art{margin:16px auto;width:120px;height:120px;font-size:65px}.rarity-1{border-color:#9bacbc}.rarity-2{box-shadow:0 0 10px #b298d255;border:2px solid #b199c2}.rarity-3{box-shadow:0 0 18px #dfbd7b99;border:2px solid #d4ac58}.rarity-4{box-shadow:0 0 25px #d5bee2;border:3px solid #ddc16b;background:conic-gradient(#f8dfb3,#e2cff1,#b6dfd9,#f8dfb3)}.drawing-item .item-orb{animation:shake .15s infinite}.rarity-reveal-3 .item-draw-result{animation:appear .5s}.rarity-reveal-4 .item-draw-result{animation:cosmic-shimmer 3s infinite}.legend-flash{position:fixed;inset:0;z-index:99;pointer-events:none;background:radial-gradient(ellipse,#fffbeac9,#efd5ff99,transparent);animation:legend-light 1.8s both}.category-tabs{display:flex;gap:7px;overflow:auto;padding-bottom:10px;margin:12px 0}.category-tabs .pill{white-space:nowrap;font-size:11px}.selected{outline:2px solid #b6869a;background:#f3e2e8!important}.shop-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.shop-item{border:1px solid #e8dbcf;border-radius:18px;padding:12px;min-width:0;background:#fffdf9}.shop-item .item-art{margin:0 auto 10px}.shop-item strong{display:block;font-size:12px}.shop-item small{font-size:9px;display:block;color:#a08985;margin-top:4px}.shop-item p{font-size:10px;min-height:36px;color:#9f8589}.shop-item b{font-size:12px;color:#9e7735}.shop-item>div:last-child{display:flex;gap:6px;margin-top:8px}.shop-item button{font-size:11px;padding:8px;flex:1}.outfit-preview{position:relative;margin:15px 0;border-radius:24px;background:radial-gradient(ellipse,#fff7e9,#f1e0d2);height:255px;display:flex;align-items:center;justify-content:center;overflow:hidden}.outfit-preview .dog{width:200px;height:215px;margin-top:25px}.preview-label{position:absolute;top:12px;left:10px;right:10px;font-size:10px;text-align:center;color:#a78a81}.preview-furniture{position:absolute;left:15px;bottom:20px;font-size:50px}.equipped-slots{display:flex;flex-wrap:wrap;gap:5px;margin:12px 0}.equipped-slots .pill{font-size:10px}.owned-row{display:flex;align-items:center;gap:7px;border-top:1px solid #e9dcd2;padding:10px 0}.owned-row .item-art{width:46px;height:46px;font-size:25px;border-radius:12px}.owned-row>div:nth-child(2){flex:1}.owned-row strong{font-size:11px;display:block}.owned-row small{font-size:10px;color:#a28d8b}.owned-row button{font-size:10px;padding:7px}.salon-before-after{display:flex;gap:6px;background:#f4e7dc;border-radius:20px;padding:10px 0}.salon-before-after>div{width:50%;overflow:hidden;text-align:center}.salon-before-after .dog{width:100%;height:auto;aspect-ratio:1}.salon-before-after small{font-size:10px;color:#9f7f86}.salon-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:15px}.salon-options button{font-size:11px}.salon-options small{display:block;font-size:9px;color:#a78b90;margin-top:4px}.room-editor{position:relative;aspect-ratio:1.1;background:linear-gradient(#efe4d9 40%,#e5cdb3 40%);border:3px solid #e5d4c4;border-radius:20px;touch-action:none;overflow:hidden;margin:16px 0}.furniture-piece{position:absolute;background:#fff4;border:1px solid #fff8;border-radius:12px;width:18%;height:12%;min-height:40px;font-size:32px;display:grid;place-items:center;cursor:grab;touch-action:none}.furniture-piece.chosen{outline:2px dashed #ad7590}.editor-dog{position:absolute;transform:translate(-50%,-50%);font-size:34px;pointer-events:none}.furniture-controls{display:flex;flex-wrap:wrap;gap:6px}.furniture-controls button{font-size:10px}.placement-buttons{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}.placement-buttons button{font-size:10px;flex:1}.editor-body label{font-size:12px;display:flex;gap:10px;align-items:center}.editor-body input[type=range]{max-width:none;flex:1}.editor-status{font-size:12px;line-height:1.7;color:#946c7d;padding:10px 0;min-height:40px}.album-entry{display:flex;align-items:center;gap:15px;padding:14px 0;border-top:1px solid #e9dcd1}.album-entry>span{font-size:28px;background:#f6e9de;padding:12px;border-radius:14px}.album-entry strong{font-size:12px;display:block}.album-entry small{display:block;font-size:10px;color:#a68e89;margin-top:6px}.rig .rig-body{transform-origin:122px 200px;animation:body-breathe 4s infinite}.rig .rig-head{transform-origin:122px 155px;animation:rig-head 7s infinite}.rig .eyes{transform-origin:122px 110px}.rig .ear{transform-box:view-box;transform-origin:122px 90px;animation:ear-twitch 9s infinite}.rig .ear-right{animation-delay:2s}.rig .tail{transform-origin:165px 200px}.rig .foreleg{transform-origin:100px 178px}.rig.pose-walk{animation:step-bob .45s infinite}.rig.pose-walk .left-leg{animation:walk-leg .45s infinite}.rig.pose-walk .right-leg{animation:walk-leg .45s infinite reverse}.rig.pose-sleep .eyes,.rig.pose-cuddle .eyes{display:none}.rig.pose-sleep .closed-eyes,.rig.pose-cuddle .closed-eyes{display:block}.rig.pose-sleep .ear,.rig.pose-sleep .rig-head{animation:none}.rig.pose-sleep .rig-body{animation:body-breathe 5s infinite}.rig.pose-paw .left-leg{animation:lift-paw 1.1s infinite}.rig.pose-paw .front-paw{animation:none}.rig.pose-lie .rig-body{transform:scaleY(.72);animation:none}.rig.pose-lie .rig-head{transform:translateY(28px);animation:none}.rig.pose-spin{animation:spin-momo 1.2s both}.rig.pose-dance{animation:dance-momo .8s infinite}.rig.pose-fetch{animation:fetch-momo 1.5s infinite}.rig.pose-fetch:after{content:'🎾';position:absolute;left:50%;top:50%;font-size:22px}.trim-fluffy .coat-detail{stroke-width:1.5;opacity:.6}.trim-short .coat-detail{opacity:.16}.trim-gorgeous .coat-detail{stroke-width:1.4}.trim-princess .facial-fur{stroke-width:1}.trim-fantasy .facial-fur{stroke-width:1.3;opacity:.8}.glow-collar{filter:drop-shadow(0 0 5px #bbf8ff)}.magic-rainbow{animation:cosmic-shimmer 5s infinite}.magic-wings{transform-origin:122px 175px;animation:wing-flutter 3s infinite}.pose-farewell .rig-head,.pose-farewell .rig-body,.pose-farewell .ear{animation:none!important}@keyframes coin-rise{0%{opacity:0;transform:translateY(30px) scale(.6)}20%{opacity:1;transform:translateY(0) scale(1)}75%{opacity:1}100%{opacity:0;transform:translateY(-50px)}}@keyframes legend-light{0%,100%{opacity:0}35%{opacity:1}}@keyframes body-breathe{50%{transform:scale(1.015,1.025)}}@keyframes rig-head{45%,55%{transform:rotate(3deg)}}@keyframes ear-twitch{48%,52%{transform:rotate(3deg)}50%{transform:rotate(-3deg)}}@keyframes step-bob{50%{transform:translateY(-3px)}}@keyframes walk-leg{50%{transform:rotate(12deg)}}@keyframes lift-paw{50%{transform:translateY(-8px) rotate(-15deg)}}@keyframes spin-momo{50%{transform:scaleX(-1)}to{transform:scaleX(1)}}@keyframes dance-momo{25%{transform:translateY(-10px) rotate(-5deg)}75%{transform:translateY(-10px) rotate(5deg)}}@keyframes fetch-momo{50%{transform:translateX(12px) rotate(3deg)}}@keyframes wing-flutter{50%{transform:scaleX(1.1)}}@media(max-width:360px){.world-room{height:330px}.world-room .dog-anchor{width:150px;height:175px}.header .brand{font-size:16px}.coin-balance{font-size:10px;padding:7px}.world-nav{margin:12px 16px;gap:6px}.daily-panel{margin:15px 16px 0}.owned-row{gap:4px}.owned-row button{font-size:9px;padding:5px}.shop-item{padding:9px}.room-furniture span{font-size:34px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.coin-pop{opacity:1}.world-room .dog-anchor .pose-idle{animation:none!important}}
.world-room .dog-anchor{width:210px;height:232px}.world-room .dog-anchor.on-furniture{width:164px;height:184px}.rig.age-0 .rig-body{scale:.85 .9;transform-origin:122px 215px}.rig.age-0 .rig-head{scale:1.07;transform-origin:122px 150px}.rig.age-1 .rig-body{scale:.93 .96;transform-origin:122px 215px}.rig.age-4 .rig-body{animation-duration:6s}.rig.pose-roll{animation:momo-roll 2.2s both}@keyframes momo-roll{0%,100%{transform:rotate(-8deg) translateY(20px)}50%{transform:rotate(100deg) translateY(20px) scale(.95)}}@media(max-width:360px){.world-room .dog-anchor{width:184px;height:205px}.world-room .dog-anchor.on-furniture{width:145px;height:166px}}@media(prefers-reduced-motion:reduce){.rig.pose-roll{animation:none!important}}
.royal-rest .rig-body{transform:scaleY(.8);transform-origin:122px 215px}.royal-rest .rig-head{transform:translateY(15px) rotate(-9deg)}.royal-rest .foreleg{opacity:.7;scale:1 .7}.royal-rest:before{content:'✧ 💤 ✧';position:absolute;top:10px;left:20%;color:#e8d3a5;font-size:14px;animation:bob 4s infinite}.world-room.sleep .room-furniture{filter:brightness(.75) drop-shadow(0 3px 3px #0004)}
/* Let furniture taps pass through transparent parts of the animated rig. */
.world-room .dog-anchor,.world-room .dog-anchor .dog,.world-room .dog-anchor svg{pointer-events:none}.world-room .dog-anchor svg path,.world-room .dog-anchor svg ellipse,.world-room .dog-anchor svg circle,.world-room .dog-anchor svg text{pointer-events:visiblePainted}.room-furniture{border:0;padding:0}
/* PWA safe areas and notices live outside the game renderer. */
#app{padding-bottom:max(24px,env(safe-area-inset-bottom));padding-top:env(safe-area-inset-top);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}body:has(#pwa-banner){padding-bottom:150px}#pwa-banner{position:fixed;bottom:max(12px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(440px,calc(100% - 24px));z-index:80;background:#fff8e7;border:1px solid #d8bc87;border-radius:20px;box-shadow:0 8px 40px #493b4533;padding:14px;color:#735d4f}#pwa-banner p{font-size:13px;line-height:1.8;margin:0 0 8px}#pwa-banner button{margin:3px 8px 0 0;font-size:12px}.pwa-settings{border-top:1px solid #eadcd2;margin-top:20px;padding-top:14px}.pwa-settings h3{font-size:15px}.pwa-settings p{font-size:12px;line-height:1.8;color:#937782}.pwa-settings button{display:block;width:100%;font-size:12px}.install-guide ol{font-size:13px;line-height:2;padding-left:24px}.install-guide h3{font-size:15px}.install-guide .secondary{display:block;width:100%;font-size:12px}.transfer-warning{background:#fff0d4;border:1px solid #ead2a7;border-radius:14px;padding:12px;font-size:12px!important;line-height:1.9!important}
/* Ver.2.2 visual review: actual outdoor portrait is displayed without filters/cropping. */
.photo-hero{padding:14px 22px 8px}.photo-hero h1{font-size:31px;letter-spacing:.03em;margin:10px 0 4px}.photo-hero p{font-size:12px;margin:0 0 6px}.title-photo{margin:8px 22px 18px}.title-photo img{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:contain;filter:none;box-shadow:0 8px 25px #614a4514}.title-photo figcaption{text-align:center;font-size:10px;letter-spacing:.12em;color:#a0827a;margin-top:12px}.world-room{height:405px;background:radial-gradient(ellipse at 50% 18%,#fffbef,#eee0d3)}.world-room .dog-anchor{width:262px;height:276px}.world-room .dog-anchor.on-furniture{width:190px;height:200px}@media(max-width:360px){.photo-hero h1{font-size:27px}.title-photo{margin:8px 16px 18px}.world-room{height:365px}.world-room .dog-anchor{width:226px;height:240px}.world-room .dog-anchor.on-furniture{width:164px;height:174px}}
/* Photo-referenced character: original portrait is separate from generated pose assets. */
.photo-dog{position:relative;isolation:isolate;animation:photo-breathe 4.5s ease-in-out infinite;filter:drop-shadow(0 5px 5px #5b423418)}.photo-dog svg{overflow:visible}.photo-dog .momo-photo-layer{pointer-events:none}.photo-dog .dog-hit-area{pointer-events:fill}.photo-dog .photo-tail{transform-origin:169px 192px;animation:photo-tail-wag 2.6s ease-in-out infinite}.photo-dog .photo-blink{opacity:0;animation:photo-blink 6s infinite;pointer-events:none}.photo-dog .photo-body{transform-origin:110px 180px;scale:var(--coat-volume,1) 1}.photo-dog.age-0{scale:.86}.photo-dog.age-1{scale:.94}.world-room .dog-anchor .photo-dog.age-0{scale:.86}.world-room .dog-anchor .photo-dog.age-1{scale:.94}.photo-dog.pose-sleep,.photo-dog.pose-lie,.photo-dog.pose-rest,.photo-dog.pose-farewell{transform:none;animation:photo-breathe 6s ease-in-out infinite}.photo-dog.pose-walk{animation:photo-step .5s ease-in-out infinite}.photo-dog.pose-approach{animation:photo-near 1.8s ease-in-out infinite}.photo-dog.pose-jump{animation:photo-joy .7s ease-in-out infinite}.photo-dog.pose-cuddle{animation:photo-near 2s ease-in-out infinite}.photo-dog.pose-cuddle .photo-blink{opacity:.95;animation:none}.photo-dog.pose-eat{animation:photo-nod .55s ease-in-out infinite}.photo-dog.pose-eat:after{content:'🍚';position:absolute;left:35%;bottom:5%;font-size:29px}.photo-dog.pose-paw{animation:photo-greet 1.2s ease-in-out infinite}.photo-dog.pose-stay{animation:none}.photo-dog.pose-sick{transform:translateY(7px) rotate(-3deg);animation:photo-breathe 7s infinite}.photo-dog.pose-farewell{opacity:.6}.photo-dog.pose-sleep:after{top:28%;right:5%}.photo-dog.pose-fetch{animation:photo-step .45s infinite}.photo-dog.pose-fetch:after{content:'🎾';position:absolute;top:36%;left:26%;font-size:21px}.photo-dog.pose-dance{animation:dance-momo .8s infinite}.photo-dog.pose-spin{animation:spin-momo 1.2s both}.photo-dog.trim-short .photo-body{scale:.93 1}.photo-dog.trim-fluffy .photo-body{scale:1.05 1}.photo-dog.trim-gorgeous .photo-body{scale:1.08 1}.world-room .dog-anchor .photo-dog.pose-idle{animation:photo-breathe 4.5s infinite!important}.royal-rest .photo-dog{rotate:-3deg}.outfit-preview .photo-dog{height:240px;width:240px}.salon-before-after .photo-dog{scale:1}@keyframes photo-blink{0%,42%,46%,100%{opacity:0}43%,45%{opacity:1}}@keyframes photo-tail-wag{50%{transform:rotate(3deg)}}@keyframes photo-breathe{50%{transform:translateY(-2px) scale(1.007,1.013)}}@keyframes photo-step{25%{transform:translateY(-3px) rotate(-1deg)}75%{transform:translateY(-2px) rotate(1deg)}}@keyframes photo-joy{50%{transform:translateY(-15px) rotate(1deg)}}@keyframes photo-near{50%{transform:translateY(4px) scale(1.04)}}@keyframes photo-nod{50%{transform:translateY(4px) rotate(2deg)}}@keyframes photo-greet{50%{transform:rotate(-3deg) translateY(-3px)}}@media(prefers-reduced-motion:reduce){.photo-dog,.photo-dog *,.world-room .dog-anchor .photo-dog.pose-idle{animation:none!important}.photo-dog .photo-blink{opacity:0}.photo-dog.pose-cuddle .photo-blink{opacity:.95}}
.profile-form button{white-space:nowrap;min-width:64px;flex-shrink:0}.profile-form input{flex:1;width:0}
