:root{--pet-color: #f4b6c2;--pet-color-dark: #d99aa6;--text-scale: 1;--bg: #fbe8e4;--ink: #4a3b3b;--ink-soft: #8a7676;--card: rgba(255, 255, 255, .72);--accent: #ef9aa9;--radius: 22px;--shadow: 0 10px 30px rgba(150, 110, 110, .18)}html{font-size:calc(16px * var(--text-scale))}*{box-sizing:border-box}body{margin:0;min-height:100svh;font-family:ui-rounded,SF Pro Rounded,Nunito,Quicksand,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);background:radial-gradient(120% 100% at 50% 0%,#fff6f1 0%,var(--bg) 70%);-webkit-font-smoothing:antialiased;display:flex;justify-content:center}.app{width:min(100%,520px);padding:max(12px,env(safe-area-inset-top)) 16px 20px;display:flex;flex-direction:column;gap:12px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.title{font-size:1.6rem;margin:0;letter-spacing:.5px}.topbar-right{display:flex;align-items:center;gap:6px}.mood-badge{display:inline-flex;align-items:center;gap:5px;background:var(--card);border-radius:999px;padding:5px 12px;font-size:.85rem;box-shadow:var(--shadow);text-transform:capitalize}.mood-glyph{font-weight:700;color:var(--accent)}.icon-btn{border:0;background:var(--card);border-radius:14px;padding:7px 10px;font-size:.85rem;cursor:pointer;box-shadow:var(--shadow);display:inline-flex;align-items:center;gap:5px;color:inherit}.icon-btn .btn-label{font-size:.78rem}.icon-btn:hover{transform:translateY(-1px)}.icon-btn.close{padding:4px 9px}.stage{position:relative;display:flex;flex-direction:column;align-items:center}.scene{width:min(90vw,440px);aspect-ratio:1 / 1;border-radius:28px;background:transparent;touch-action:manipulation;cursor:pointer;outline-offset:4px}.scene:focus-visible{outline:3px solid var(--accent)}.speech{min-height:1.4em;margin:2px 0 0;padding:7px 14px;font-size:.95rem;background:var(--card);border-radius:16px;box-shadow:var(--shadow);opacity:0;transform:translateY(6px);transition:opacity .3s ease,transform .3s ease;pointer-events:none;text-align:center}.speech.show{opacity:1;transform:translateY(0)}.toolbar{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.care-btn{border:0;background:var(--card);border-radius:18px;padding:10px 14px;min-width:64px;cursor:pointer;box-shadow:var(--shadow);display:flex;flex-direction:column;align-items:center;gap:3px;font-size:.82rem;color:inherit;transition:transform .12s ease}.care-btn:hover{transform:translateY(-2px)}.care-btn:active{transform:translateY(0) scale(.96)}.care-btn:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.care-emoji{font-size:1.4rem}.ritual{background:var(--card);border-radius:var(--radius);padding:12px 16px;box-shadow:var(--shadow)}.ritual-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:.92rem}.ritual-list li{display:flex;align-items:center;gap:8px;color:var(--ink-soft)}.ritual-list li.done{color:var(--ink)}.ritual-list .tick{color:var(--accent);font-weight:700}.ritual-done{margin:8px 0 0;font-weight:600;text-align:center}.pet-fill{fill:var(--pet-color)}.pet-fill-dark{fill:var(--pet-color-dark)}.pet-belly-light{fill:#fff;opacity:.26}.ear-inner{fill:#ffd7de}.eye-white{fill:#fff}.pupil{fill:#3b2d2d}.cheek{fill:#f2929f;opacity:.55}.nose{fill:#b87b7b}.mouth{fill:none;stroke:#6b4f4f;stroke-width:3;stroke-linecap:round}.brow{fill:none;stroke:#c89;stroke-width:2.4;stroke-linecap:round;opacity:.5}.lid{fill:var(--pet-color)}.dlg{border:0;border-radius:24px;padding:0;width:min(92vw,380px);background:#fffaf8;color:var(--ink);box-shadow:0 24px 60px #7850504d}.dlg::backdrop{background:#503c3c52;backdrop-filter:blur(2px)}.dlg-body{padding:20px;display:flex;flex-direction:column;gap:14px}.dlg h2{margin:0;font-size:1.25rem}.dlg-head{display:flex;align-items:center;justify-content:space-between}.field{display:flex;flex-direction:column;gap:6px;font-size:.9rem;border:0;padding:0;margin:0}.field legend{padding:0;margin-bottom:4px;font-weight:600}.field input[type=text],.field input[type=range]{font:inherit;padding:9px 12px;border:1.5px solid #f0d8d2;border-radius:12px;background:#fff;color:inherit}.field.switch{flex-direction:row;align-items:center;gap:8px}.muted{color:var(--ink-soft);font-size:.84rem;margin:0}.tiny{font-size:.74rem}.swatches{display:flex;flex-wrap:wrap;gap:8px}.swatch{width:32px;height:32px;border-radius:50%;border:3px solid transparent;cursor:pointer;box-shadow:inset 0 0 0 1px #0000000f}.swatch[aria-checked=true]{border-color:var(--ink);transform:scale(1.08)}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1.5px solid #f0d8d2;background:#fff;border-radius:999px;padding:7px 13px;cursor:pointer;font:inherit;font-size:.95rem;color:inherit}.chip[aria-checked=true]{background:var(--accent);border-color:var(--accent);color:#fff}.growth-row{display:flex;align-items:center;gap:10px;font-size:.9rem}.bar{flex:1;height:10px;background:#f0e0db;border-radius:999px;overflow:hidden}.bar-fill{height:100%;width:0;background:linear-gradient(90deg,var(--accent),#f7c6a8);transition:width .4s ease}.collection-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.moment{background:#fff;border-radius:14px;padding:10px 6px;text-align:center;font-size:.72rem;display:flex;flex-direction:column;align-items:center;gap:5px;min-height:76px;justify-content:center}.moment-icon{font-size:1.5rem}.moment.locked{opacity:.55;filter:grayscale(.5)}.dlg-actions{display:flex;justify-content:flex-end;margin:4px 0 0;padding:0}button.primary{border:0;background:var(--accent);color:#fff;border-radius:14px;padding:11px 18px;font:inherit;font-weight:600;cursor:pointer}button.danger{border:1.5px solid #e7b4b4;background:#fff;color:#b15a5a;border-radius:14px;padding:10px 14px;font:inherit;cursor:pointer}hr{border:0;border-top:1px solid #f0d8d2;width:100%}body.room-dark{--ink: #f3eef0;--ink-soft: #c5bcc6;--card: rgba(60, 60, 86, .6);--bg: #1d1d33;background:radial-gradient(120% 100% at 50% 0%,#34344f,#1d1d33 70%)}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (prefers-reduced-motion: reduce){*{transition:none!important}}
