*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%}body{font-family:system-ui,-apple-system,PingFang SC,Microsoft YaHei,sans-serif;background:#fdf3f0;color:#4a3b38}button{font:inherit;cursor:pointer}.char-root{position:relative;width:min(90vw,420px);aspect-ratio:720 / 1280;margin:0 auto;animation:breathe 4s ease-in-out infinite;transform-origin:50% 100%}@keyframes breathe{0%,to{transform:scaleY(1)}50%{transform:scaleY(1.012)}}.char-layer{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.char-region{position:absolute;background:transparent;border:none;opacity:0}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#3c282d8c;display:flex;align-items:center;justify-content:center;z-index:20}.panel{background:#fff8f6;border-radius:16px;padding:24px;width:min(90vw,360px);display:flex;flex-direction:column;gap:14px;text-align:center}.panel input[type=text],.panel input:not([type]){padding:10px 12px;border:1px solid #e8c9c9;border-radius:10px}.panel button{padding:10px 16px;border:none;border-radius:999px;background:#e86a8a;color:#fff}.panel .dim{color:#a08a8a;font-size:.85em}.panel .row{display:flex;gap:10px;justify-content:center}.scene{height:100%;max-width:480px;margin:0 auto;background-size:cover;background-position:center;display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden}.hud{position:absolute;top:0;left:0;right:0;display:flex;gap:12px;justify-content:center;padding:10px;background:#fff8f6cc;font-size:.9em;z-index:5}.dialogue{margin:0 12px 8px;background:#ffffffeb;border-radius:14px;padding:12px 16px;z-index:5}.dialogue strong{color:#e86a8a}.action-bar{display:flex;flex-direction:column;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:#fff8f6eb;z-index:5}.action-bar .row{display:flex;gap:8px}.action-bar input{flex:1;padding:10px 12px;border:1px solid #e8c9c9;border-radius:999px}.action-bar button{border:none;border-radius:999px;padding:10px 12px;background:#ffe3ea}.sheet{position:absolute;bottom:0;left:0;right:0;background:#fff8f6;border-radius:20px 20px 0 0;padding:18px;display:flex;flex-direction:column;gap:10px;z-index:10}.sheet button{padding:12px;border:none;border-radius:12px;background:#ffe3ea}.sheet button:disabled{opacity:.45}.memory-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.memory-card{font-size:1.6em;aspect-ratio:1}
