:root{--ink:#583d48;--rose:#9e4664;--pink:#eeb9c9;--light:#fff9f7;--gold:#a57a38;--line:#e9cfd1;--serif:"Yu Mincho","Hiragino Mincho ProN",Georgia,serif;--sans:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif}*{box-sizing:border-box}body{margin:0;background:#f5e7e9;color:var(--ink);font-family:var(--sans);font-size:16px;background-image:radial-gradient(#d7b0b840 .8px,transparent .8px);background-size:16px 16px}button,input{font:inherit}button{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default;opacity:.58}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #ae6b3d;outline-offset:4px}button{color:inherit}a{color:inherit}.app-shell{max-width:1140px;min-height:100svh;margin:auto;padding:0 44px;background:#fffcf8f5;box-shadow:0 0 80px #b85f7412}header{height:116px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;font-family:var(--serif);font-size:21px;letter-spacing:.08em;line-height:1.4}.brand b{font-weight:500;display:block}.brand small{font:9px Georgia,serif;letter-spacing:.25em;color:var(--gold);display:block;margin-top:4px}.brand-mark{width:49px;height:58px;display:grid;place-items:center;border:1px solid #cda873;border-radius:45% 45% 30% 30%;font-size:34px;color:var(--rose);background:#fff7f4}.header-actions{display:flex;gap:9px}.round{width:44px;height:44px;position:relative;border:1px solid var(--line);border-radius:50%;background:transparent;font-size:24px}.sound-slash{font-size:17px;position:absolute;left:17px;top:16px}.eyebrow{font-size:12px;letter-spacing:.18em;color:var(--gold);font-family:Georgia,serif;text-transform:uppercase}.home-layout{display:grid;grid-template-columns:1.12fr 1fr;gap:42px;align-items:center;padding:40px 0 30px}.garden{position:relative;min-height:480px;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 75%,#f8e5d9 0,transparent 59%),linear-gradient(165deg,#f5e1e9,#fff4e6);border-radius:48% 48% 9px 9px;border:1px solid #e8cfd3;isolation:isolate;overflow:hidden}.garden:before{content:"";position:absolute;inset:11px;border:1px solid #ffffffce;border-radius:inherit;pointer-events:none}.garden:after{content:"";position:absolute;bottom:32px;width:68%;height:54px;z-index:-1;border-radius:50%;background:#d9abb044;filter:blur(7px)}.garden .label{position:absolute;left:0;right:0;top:32px;text-align:center;font-size:13px;letter-spacing:.14em;color:#8c6770}.scene-spark{position:absolute;color:#bf934b;font-family:Georgia,serif}.sp1{left:13%;top:35%;font-size:29px}.sp2{right:14%;top:26%;font-size:19px}.sp3{right:10%;bottom:24%;font-size:29px}.pet-button{border:0;background:none;padding:25px 20px 0;width:100%;max-width:400px;position:relative;transition:transform .25s}.pet-button:hover{transform:translateY(-4px)}.dog{display:block;width:100%;height:345px;object-fit:contain;filter:drop-shadow(0 12px 11px #b9887626);animation:breathe 3s ease-in-out infinite;pointer-events:none}.pet-note{position:absolute;bottom:26px;font-size:13px;letter-spacing:.07em;color:#80596a}.speech{position:absolute;z-index:2;top:82px;right:18px;background:white;border:1px solid #edced7;border-radius:40px;padding:10px 17px;font-size:13px;transform:rotate(4deg);box-shadow:0 3px 12px #b0798110}.crown{display:none;position:absolute;font-size:49px;top:60px;left:calc(50% - 25px);z-index:2;filter:drop-shadow(0 2px 4px #c9944940)}.crowned .crown{display:block}.crowned .speech{right:4px;top:131px}.pet-button.joy{animation:joy .75s ease}.pet-button.paw{animation:paw .75s ease}.pet-button.sit{animation:sit .7s ease}.home-info h1{font-family:var(--serif);font-weight:500;font-size:37px;line-height:1.6;letter-spacing:.055em;margin:14px 0 17px}.home-info h1 span{color:var(--rose)}.home-info .intro{font-size:15px;line-height:1.9;color:#846e75;margin:0 0 26px}.pet-line{display:flex;gap:12px;align-items:center;margin:22px 0 30px}.mini-photo{height:49px;width:49px;object-fit:cover;border-radius:50%;border:2px solid white;box-shadow:0 0 0 1px var(--line)}.pet-line b{font-size:21px;display:block;line-height:1.4}.pet-line small{font-size:12px;color:#89727b}.text-button{border:0;background:none;text-decoration:underline;text-underline-offset:5px;font-size:13px;color:var(--rose);padding:10px}.pet-line .text-button{margin-left:auto}.games{display:grid;gap:12px}.game-option{display:flex;align-items:center;gap:17px;text-align:left;padding:19px 20px;background:#fff9f6;border:1px solid #e0c3c9;border-radius:14px;transition:transform .18s,box-shadow .18s}.game-option:hover{transform:translateY(-2px);box-shadow:0 7px 17px #b6788720}.game-option:first-child{background:#f8e6ea;border-color:#e6b5c4}.game-option .icon{width:42px;height:42px;font-size:28px;display:grid;place-items:center}.game-option b{font-size:17px;display:block;letter-spacing:.07em}.game-option small{display:block;color:#806874;font-size:12px;margin-top:4px}.option-tail{margin-left:auto;font-size:13px;color:var(--rose)}.album-banner{display:flex;justify-content:space-between;align-items:center;padding:20px 3px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);gap:12px}.album-banner button{border:0;background:transparent;text-align:left;display:flex;align-items:center;gap:14px;font-size:15px}.album-banner small{color:#937b83;font-size:13px}.album-icon{font-size:29px;color:var(--gold)}footer{padding:27px 0;display:flex;justify-content:space-between;gap:12px;font-size:11px;letter-spacing:.07em;color:#a0888a;align-items:center}footer button{background:transparent;border:0;color:#8e717d;font-size:12px;padding:8px}.prototype{font-size:10px;border:1px solid #dfcfd0;padding:3px 7px;border-radius:4px}.play-top{display:flex;align-items:center;justify-content:space-between;padding:24px 0}.quiet{border:1px solid var(--line);background:transparent;border-radius:50px;padding:10px 16px;font-size:13px}.progress-hearts{color:#ac5470;display:flex;gap:10px;font-size:24px}.progress-hearts .empty{color:#e8d3d9}.game-title{text-align:center;margin:0 0 12px;font-family:var(--serif);font-size:28px;font-weight:500}.game-description{text-align:center;color:#856772;font-size:14px;margin:10px 0 0;min-height:1.7em}.play-stage{max-width:620px;margin:auto;position:relative}.play-stage .garden{min-height:365px;border-radius:140px 140px 16px 16px;max-width:580px;margin:auto}.play-stage .dog{height:270px}.play-stage .pet-button{max-width:335px}.play-stage .pet-note{bottom:16px}.play-stage .label{top:23px}.play-stage .crown{top:31px}.play-stage .speech{top:61px}.play-stage .crowned .speech{top:83px}.play-controls{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:22px 0 8px}.cue-button{border:1px solid #dbb1c0;border-radius:17px;background:#fff9f7;padding:19px 6px;display:grid;place-items:center;gap:10px;font-size:14px;box-shadow:0 4px 0 #efdee2;min-height:99px}.cue-button .emoji{font-size:29px}.cue-button:active{transform:translateY(3px);box-shadow:none}.cue-button.correct{background:#f5dfe7;border-color:#b56d82}.cue-button.searched{opacity:.55}.cue-button.hint{box-shadow:0 0 0 3px #efcf92;background:#fff5dc}.playing{padding-bottom:20px}.game-feedback{min-height:45px;text-align:center;font-size:15px;color:var(--rose);padding:9px 0;line-height:1.7}.secondary-note{text-align:center;font-size:12px;color:#8f7a7f;line-height:1.7}.primary{border:1px solid #aa6177;color:white;background:#ab5c77;padding:16px 25px;border-radius:50px;box-shadow:0 5px 0 #873f5a;font-size:15px;letter-spacing:.07em}.primary:hover{background:#964760}.primary:active{transform:translateY(3px);box-shadow:0 2px 0 #873f5a}.secondary{border:1px solid #dbc0c8;color:var(--rose);background:#fffaf8;padding:15px 24px;border-radius:50px;font-size:14px}.reward-title{text-align:center;font-family:var(--serif);font-size:34px;font-weight:500;color:var(--rose);margin:14px 0}.reward-sub{text-align:center;font-size:15px;line-height:1.9;margin:8px 0 24px}.reward-actions{display:flex;gap:12px;justify-content:center;margin:24px 0 12px;flex-wrap:wrap}.ribbon{position:absolute;left:50%;bottom:21px;transform:translateX(-50%);background:#b25f78;color:#fff7ef;padding:9px 25px;font-size:14px;white-space:nowrap;box-shadow:0 0 0 4px #e8a9bb,0 0 0 5px #fff3df;z-index:3}.result .garden{min-height:320px}.result .dog{height:255px}.result .crown{top:20px}.result .speech{display:none}.album-header{text-align:center;padding:27px 0}.album-header h1{font-family:var(--serif);font-size:30px;font-weight:500}.album-header p{font-size:14px;color:#8d6e7a;line-height:1.8}.album-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;padding:10px 0 25px}.memory{background:#fff;border:1px solid #edd3d7;padding:13px 13px 17px;box-shadow:0 4px 15px #a36a7c13;transform:rotate(-1deg);position:relative}.memory:nth-child(2n){transform:rotate(1.5deg)}.memory-art{position:relative;background:#f5e7e7;aspect-ratio:1;display:grid;place-items:center;overflow:hidden}.memory-art img{height:100%;width:100%;object-fit:contain;padding:14px}.memory-art .memory-crown{position:absolute;right:9px;top:6px;font-size:23px}.memory-art .memory-photo{position:absolute;width:46px;height:46px;object-fit:cover;border-radius:50%;padding:0;left:7px;bottom:7px;border:2px solid white}.memory h2{font-size:16px;font-family:var(--serif);margin:13px 0 6px;color:var(--rose);font-weight:500}.memory p{font-size:12px;margin:6px 0;line-height:1.7;color:#8c7380}.memory time{font-size:10px;color:#a38a8e}.empty-album{text-align:center;border:1px dashed #d9b1bf;border-radius:20px;max-width:500px;margin:15px auto 40px;padding:36px 20px;line-height:2}.empty-album .big-heart{font-size:50px;color:#be7b90}dialog{width:min(620px,calc(100% - 28px));max-height:90svh;padding:0;border:1px solid #e5c4cf;border-radius:25px;background:#fffbf8;color:var(--ink);box-shadow:0 25px 80px #62313c45}dialog::backdrop{background:#694b5869;backdrop-filter:blur(5px)}.modal-inner{padding:28px}.modal-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.modal-heading h2{font-family:var(--serif);font-size:23px;font-weight:500;margin:0}.close{background:transparent;border:1px solid var(--line);border-radius:50%;width:38px;height:38px;font-size:24px}.breed-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.breed{background:#fff7f4;border:1px solid #ecd7d8;border-radius:15px;display:block;padding:3px 5px 10px;font-size:12px}.breed img{width:100%;height:110px;object-fit:contain}.breed[aria-pressed=true]{background:#f7e3e8;border:2px solid #b57188;padding:2px 4px 9px}.input-row{display:grid;gap:9px;margin:20px 0 15px}.input-row label{font-size:14px}.input-row input{width:100%;border:1px solid #d9b7c4;border-radius:12px;padding:13px 15px;background:white;color:var(--ink)}.profile-photo-row{display:flex;gap:12px;align-items:center;margin:10px 0}.upload{font-size:13px;color:var(--rose);border:1px dashed #c9a4b2;border-radius:11px;padding:12px;cursor:pointer}.fineprint{font-size:12px;line-height:1.8;color:#8d757c}.modal-bottom{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}.setting-line{display:flex;justify-content:space-between;gap:18px;align-items:center;border-bottom:1px solid #eed8df;padding:18px 0;font-size:14px}.setting-line input{accent-color:var(--rose);height:23px;width:23px;flex-shrink:0}.setting-description{font-size:13px;line-height:1.9;color:#826b72}.danger{margin-top:25px;border:1px solid #dab2b9;color:#9a4958;background:transparent;border-radius:50px;padding:12px 17px;font-size:13px}#toast{position:fixed;bottom:23px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;transition:.25s;background:#6c4758;color:#fff;padding:12px 20px;border-radius:30px;max-width:90vw;text-align:center;font-size:13px;z-index:40}#toast.visible{transform:translate(-50%,0);opacity:1}#particles{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:20}.particle{position:absolute;left:50%;top:48%;font-size:24px;color:#c75f87;animation:scatter 1.4s ease-out forwards;opacity:0}.sr-only{position:absolute;height:1px;width:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.memory-count{font-size:12px;border-radius:30px;background:#f3dce4;padding:5px 10px;color:#975771}.saved-caption{color:var(--gold);font-size:12px;text-align:center;margin:19px 0}.back-header{display:flex;align-items:center;justify-content:space-between;padding-top:24px}.profile-error{font-size:13px;color:#a63c52;margin:9px 0}.reduced-motion *, .reduced-motion *:before,.reduced-motion *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reduced-motion .particle{display:none!important}@keyframes breathe{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-6px) rotate(1deg)}}@keyframes joy{0%,100%{transform:translateY(0)}30%{transform:translateY(-24px) rotate(-5deg)}65%{transform:translateY(-8px) rotate(5deg)}}@keyframes paw{0%,100%{transform:rotate(0)}40%{transform:rotate(-9deg) translateY(-12px)}70%{transform:rotate(3deg)}}@keyframes sit{0%,100%{transform:scale(1)}40%{transform:scale(1.06,.89) translateY(12px)}}@keyframes scatter{0%{opacity:0;transform:translate(0,0) scale(.4)}15%{opacity:1}75%{opacity:1}100%{opacity:0;transform:translate(var(--dx),var(--dy)) rotate(var(--rot)) scale(1)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.particle{display:none!important}}@media(min-width:1200px){body{padding:30px}.app-shell{min-height:calc(100svh - 60px);border:1px solid #ead3d5;border-radius:27px}.home-layout{padding:36px 0}}@media(max-width:760px){.app-shell{padding:0 22px}header{height:88px}.brand{font-size:16px}.brand small{font-size:8px}.brand-mark{height:46px;width:38px;font-size:27px}.round{width:40px;height:40px;font-size:21px}.home-layout{grid-template-columns:1fr;gap:23px;padding:23px 0}.garden{min-height:330px;border-radius:44% 44% 12px 12px}.dog{height:265px}.pet-button{max-width:340px}.garden .label{top:23px;font-size:12px}.pet-note{bottom:20px;font-size:12px}.speech{top:64px;font-size:12px}.home-info h1{font-size:27px;line-height:1.6;margin:8px 0 13px;text-align:center}.home-info h1 br{display:none}.home-info .eyebrow{text-align:center;font-size:10px}.home-info .intro{display:none}.home-info .pet-line{margin:14px 0 20px}.pet-line b{font-size:19px}.pet-line small{font-size:12px}.mini-photo{height:42px;width:42px}.games{grid-template-columns:1fr 1fr;gap:10px}.game-option{display:block;padding:15px 11px;text-align:center;border-radius:15px}.game-option .icon{margin:auto;height:38px}.game-option b{font-size:15px;margin-top:3px}.game-option small{font-size:11px;line-height:1.7}.option-tail{display:none}.album-banner{padding:17px 0}.album-banner button{font-size:14px;gap:9px}.album-banner small{font-size:11px}footer{font-size:10px;padding:20px 0;flex-wrap:wrap;gap:6px}footer button{font-size:11px}.play-top{padding:18px 0}.game-title{font-size:24px}.play-stage .garden{min-height:310px;border-radius:110px 110px 14px 14px}.play-stage .dog{height:245px}.play-stage .pet-button{max-width:300px}.play-controls{gap:9px;margin-top:17px}.cue-button{font-size:12px;padding:14px 5px;min-height:90px}.cue-button .emoji{font-size:27px}.game-description{font-size:13px;line-height:1.8}.progress-hearts{font-size:21px}.quiet{font-size:12px;padding:9px 12px}.reward-title{font-size:27px}.reward-sub{font-size:14px}.result .garden{min-height:300px}.primary,.secondary{padding:14px 19px;font-size:13px}.result .crown{top:17px}.album-grid{grid-template-columns:repeat(2,1fr);gap:13px}.memory{padding:8px 8px 14px}.memory h2{font-size:14px}.memory p{font-size:11px}.modal-inner{padding:22px}.breed img{height:85px}.breed{font-size:10px}.modal-heading h2{font-size:21px}.crown{top:31px}.crowned .speech{top:85px}.setting-line{font-size:13px}}@media(max-width:360px){.app-shell{padding:0 16px}.home-info h1{font-size:24px}.brand{gap:8px}.breed img{height:70px}.modal-inner{padding:18px}.game-title{font-size:22px}.round{width:36px;height:36px}.garden{min-height:290px}.dog{height:235px}.home-layout{gap:15px}.game-option b{font-size:14px}.ribbon{font-size:12px}.album-banner small{display:none}}
