@charset "UTF-8";.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.login-card{background:#fff;padding:40px;border-radius:20px;box-shadow:0 20px 40px #0000001a;width:100%;max-width:400px}.login-card h1{text-align:center;color:var(--primary-color);margin-bottom:10px;font-size:36px}.login-card h2{text-align:center;color:var(--text-color);margin-bottom:30px}.login-card .tagline{text-align:center;color:#666;margin-bottom:30px;font-style:italic}.login-card form{display:flex;flex-direction:column;gap:15px}.login-card form button{margin-top:10px}.login-card .toggle-mode{text-align:center;margin-top:20px;color:#666}.login-card .toggle-mode .link-button{background:none;color:var(--primary-color);padding:0;text-decoration:underline;font-size:16px}.login-card .toggle-mode .link-button:hover{transform:none;box-shadow:none;color:var(--secondary-color)}.login-card .couple-options{display:flex;flex-direction:column;gap:20px}.login-card .couple-options .divider{text-align:center;color:#999;margin:10px 0;position:relative}.login-card .couple-options .divider:before,.login-card .couple-options .divider:after{content:"";position:absolute;top:50%;width:40%;height:1px;background:#ddd}.login-card .couple-options .divider:before{left:0}.login-card .couple-options .divider:after{right:0}.login-card .couple-options .join-couple{display:flex;gap:10px}.login-card .couple-options .join-couple input{flex:1;text-align:center;text-transform:uppercase;letter-spacing:2px;font-weight:700}.login-card .couple-options .join-couple button{flex-shrink:0}.login-card .couple-code-display{text-align:center}.login-card .couple-code-display p{margin-bottom:20px;color:#666}.login-card .couple-code-display .code{font-size:48px;font-weight:700;letter-spacing:8px;color:var(--primary-color);background:var(--background-color);padding:20px;border-radius:10px;margin:20px 0}.login-card .couple-code-display .waiting{color:#999;font-style:italic;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.effect-container{position:absolute;top:50%;left:50%;width:1px;height:1px;pointer-events:none;z-index:10000}.particle{position:absolute;font-size:24px;will-change:transform,opacity;text-shadow:0 0 5px rgba(0,0,0,.3)}.pet-container{position:fixed;bottom:calc(50vh + 20px);left:50%;transform:translate(-50%);width:90%;max-width:400px;height:200px;z-index:50;pointer-events:none}.pet-container .pet-area{width:100%;height:100%;background:#ffffff1a;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border-radius:20px;box-shadow:0 4px 20px #00000014;position:relative;overflow:hidden;pointer-events:auto;border:2px solid rgba(255,255,255,.3)}.pet-container .pet-area:after{content:"🌸 🌺 🌻 🌷 🌹 🌼";position:absolute;top:10px;left:10px;right:10px;font-size:12px;opacity:.6;pointer-events:none;animation:gentle-sway 3s ease-in-out infinite;z-index:2}.pet-overlay{position:absolute;width:64px;height:64px;-webkit-user-select:none;user-select:none;cursor:pointer;transition:left 50ms linear,top 50ms linear;z-index:1}.pet-overlay .pet-sprite{width:100%;height:100%;position:relative;display:flex;align-items:center;justify-content:center}.pet-overlay .pet-sprite canvas{image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges;-ms-interpolation-mode:nearest-neighbor}.pet-overlay .thought-bubble{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:#fff;padding:8px 12px;border-radius:15px;font-size:12px;white-space:nowrap;box-shadow:0 2px 10px #00000026;margin-bottom:5px;animation:fadeInOut 3s ease-in-out}.pet-overlay .thought-bubble:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid white}@keyframes fadeInOut{0%{opacity:0}20%{opacity:1}80%{opacity:1}to{opacity:0}}@keyframes bubble-float{0%,to{opacity:0}50%{opacity:.9}90%{opacity:.1}}@keyframes gentle-sway{0%,to{transform:translate(0)}50%{transform:translate(2px)}}.game-ui{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top-left-radius:30px;border-top-right-radius:30px;box-shadow:0 -4px 20px #0000001a;padding:30px;max-height:50vh;overflow-y:auto}.game-ui .stats-panel{margin-bottom:20px}.game-ui .stats-panel h3{color:var(--text-color);margin-bottom:15px}.game-ui .stats-panel .stat{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.game-ui .stats-panel .stat span{font-size:16px;min-width:100px}.game-ui .stats-panel .stat .stat-bar{flex:1;height:20px;background:#f0f0f0;border-radius:10px;overflow:hidden;margin-left:10px}.game-ui .stats-panel .stat .stat-bar .stat-fill{height:100%;transition:width .5s ease}.game-ui .stats-panel .stat .stat-bar .stat-fill.health{background:linear-gradient(90deg,#ff6b6b,#ff8787)}.game-ui .stats-panel .stat .stat-bar .stat-fill.hunger{background:linear-gradient(90deg,#feca57,#ffdd81)}.game-ui .stats-panel .stat .stat-bar .stat-fill.hygiene{background:linear-gradient(90deg,#45aaf2,#6bc3ff)}.game-ui .stats-panel .stat .stat-bar .stat-fill.happiness{background:linear-gradient(90deg,#26de81,#5eff9f)}.game-ui .stats-panel .connection-meter{margin-top:20px;padding-top:20px;border-top:2px solid #f0f0f0}.game-ui .stats-panel .connection-meter h4{color:var(--primary-color);margin-bottom:10px}.game-ui .stats-panel .connection-meter .meter-bar{height:30px;background:#f0f0f0;border-radius:15px;overflow:hidden;position:relative}.game-ui .stats-panel .connection-meter .meter-bar .meter-fill{height:100%;background:linear-gradient(90deg,#ff6b9d,#c44569);transition:width .5s ease;position:relative}.game-ui .stats-panel .connection-meter .meter-bar .meter-fill:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(45deg,rgba(255,255,255,.2) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.2) 50%,rgba(255,255,255,.2) 75%,transparent 75%,transparent);background-size:30px 30px;animation:meter-stripes 1s linear infinite}.game-ui .stats-panel .connection-meter .ready{text-align:center;color:var(--primary-color);font-weight:700;margin-top:10px;animation:pulse 1s ease-in-out infinite}.game-ui .action-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:20px}.game-ui .action-buttons .action-btn{background:var(--background-color);color:var(--text-color);border:2px solid transparent;transition:all .3s ease}.game-ui .action-buttons .action-btn:hover{border-color:var(--primary-color);background:#fff}.game-ui .daily-mission{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:20px;border-radius:15px;margin-top:20px}.game-ui .daily-mission h3{margin-bottom:10px}.game-ui .daily-mission p{margin-bottom:15px;opacity:.9}.game-ui .daily-mission .mission-tasks{display:flex;gap:15px}.game-ui .daily-mission .mission-tasks .task{flex:1;background:#fff3;padding:10px;border-radius:8px}.game-ui .daily-mission .mission-tasks .task strong{display:block;margin-bottom:5px}.game-ui .inventory-modal,.game-ui .love-note-modal{background:#fff;padding:30px;border-radius:20px;max-width:500px;width:90%}.game-ui .inventory-modal h3,.game-ui .love-note-modal h3{text-align:center;color:var(--text-color);margin-bottom:20px}.game-ui .inventory-modal .food-grid,.game-ui .love-note-modal .food-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:20px}.game-ui .inventory-modal .food-grid .food-item,.game-ui .love-note-modal .food-grid .food-item{background:var(--background-color);padding:20px;border-radius:10px;text-align:center;border:2px solid transparent}.game-ui .inventory-modal .food-grid .food-item.selected,.game-ui .love-note-modal .food-grid .food-item.selected{border-color:var(--primary-color);background:#fff}.game-ui .inventory-modal .food-grid .food-item span,.game-ui .love-note-modal .food-grid .food-item span{display:block;margin-top:5px;font-size:14px}.game-ui .inventory-modal textarea,.game-ui .love-note-modal textarea{width:100%;min-height:100px;margin-bottom:20px;resize:vertical}.game-ui .inventory-modal .modal-actions,.game-ui .love-note-modal .modal-actions{display:flex;gap:10px;justify-content:center}.game-ui .inventory-modal .modal-actions button,.game-ui .love-note-modal .modal-actions button{flex:1;max-width:150px}@keyframes meter-stripes{0%{background-position:0 0}to{background-position:30px 30px}}.mini-games-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:2000}.mini-games-container{background:#fff;padding:40px;border-radius:30px;max-width:800px;width:90%;max-height:80vh;overflow-y:auto;position:relative}.mini-games-container .close-btn{position:absolute;top:20px;right:20px;background:var(--background-color);border:none;width:40px;height:40px;border-radius:50%;font-size:20px;display:flex;align-items:center;justify-content:center}.mini-games-container .close-btn:hover{background:var(--danger-color);color:#fff}.mini-games-container h2{text-align:center;color:var(--primary-color);margin-bottom:30px}.mini-games-container .games-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px}.mini-games-container .games-grid .game-card{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:30px;border-radius:20px;text-align:center;transition:all .3s ease}.mini-games-container .games-grid .game-card:hover{transform:translateY(-5px);box-shadow:0 10px 30px #0003}.mini-games-container .games-grid .game-card .game-icon{font-size:60px;margin-bottom:15px}.mini-games-container .games-grid .game-card h3{margin-bottom:10px}.mini-games-container .games-grid .game-card p{font-size:14px;opacity:.9}.mini-games-container .game-container{text-align:center}.mini-games-container .game-container>button{margin-bottom:20px;background:var(--background-color);color:var(--text-color)}.tandem-fetch-game,.rhythm-dance-game,.synchronized-petting-game{padding:20px}.tandem-fetch-game h3,.rhythm-dance-game h3,.synchronized-petting-game h3{color:var(--primary-color);margin-bottom:20px}.tandem-fetch-game p,.rhythm-dance-game p,.synchronized-petting-game p{margin-bottom:20px;color:#666}.tandem-fetch-game .throw-btn,.rhythm-dance-game .throw-btn,.synchronized-petting-game .throw-btn{font-size:40px;padding:20px 40px;background:var(--accent-color)}.tandem-fetch-game .throw-btn:hover,.rhythm-dance-game .throw-btn:hover,.synchronized-petting-game .throw-btn:hover{background:#fdb94e}.tandem-fetch-game .score,.rhythm-dance-game .score,.synchronized-petting-game .score{font-size:36px;color:var(--success-color);font-weight:700}.rhythm-dance-game .dance-floor{height:200px;background:linear-gradient(45deg,#ff6b9d,#c44569);border-radius:20px;display:flex;align-items:center;justify-content:center;margin:20px 0}.rhythm-dance-game .dance-floor .pet-dancing{font-size:80px;animation:dance .5s ease-in-out infinite alternate}.synchronized-petting-game button{font-size:24px;padding:20px 40px;margin-bottom:20px}.synchronized-petting-game .sync-meter{width:100%;height:30px;background:#f0f0f0;border-radius:15px;overflow:hidden}.synchronized-petting-game .sync-meter .sync-fill{height:100%;background:linear-gradient(90deg,#26de81,#5eff9f);transition:width .3s ease}@keyframes dance{0%{transform:rotate(-10deg) scale(1)}to{transform:rotate(10deg) scale(1.1)}}.memory-album-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:2000}.memory-album-container{background:#fff;padding:40px;border-radius:30px;max-width:900px;width:90%;max-height:80vh;overflow-y:auto}.memory-album-container .album-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.memory-album-container .album-header h2{color:var(--primary-color);margin:0}.memory-album-container .album-header .close-btn{background:var(--background-color);border:none;width:40px;height:40px;border-radius:50%;font-size:20px;display:flex;align-items:center;justify-content:center}.memory-album-container .album-header .close-btn:hover{background:var(--danger-color);color:#fff}.memory-album-container .loading,.memory-album-container .no-memories{text-align:center;padding:60px;color:#666}.memory-album-container .loading p,.memory-album-container .no-memories p{font-size:18px}.memory-album-container .memories-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px}.memory-album-container .memories-grid .memory-card{background:var(--background-color);padding:25px;border-radius:15px;cursor:pointer;transition:all .3s ease}.memory-album-container .memories-grid .memory-card:hover{transform:translateY(-5px);box-shadow:0 10px 20px #0000001a}.memory-album-container .memories-grid .memory-card .memory-icon{font-size:40px;text-align:center;margin-bottom:10px}.memory-album-container .memories-grid .memory-card h4{color:var(--primary-color);margin-bottom:10px;text-align:center}.memory-album-container .memories-grid .memory-card .memory-caption{color:#666;font-style:italic;margin-bottom:10px;text-align:center}.memory-album-container .memories-grid .memory-card time{display:block;text-align:center;color:#999;font-size:14px}.memory-detail-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:3000}.memory-detail{background:#fff;padding:40px;border-radius:20px;max-width:500px;width:90%;text-align:center}.memory-detail .detail-icon{font-size:80px;margin-bottom:20px}.memory-detail h3{color:var(--primary-color);margin-bottom:20px}.memory-detail .detail-caption{font-size:20px;color:#666;font-style:italic;margin-bottom:20px;line-height:1.5}.memory-detail time{display:block;color:#999;margin-bottom:20px}.memory-detail .auto-badge{display:inline-block;background:var(--accent-color);color:#fff;padding:5px 15px;border-radius:20px;font-size:14px;margin-bottom:20px}.memory-detail button{background:var(--primary-color);color:#fff}.memory-detail button:hover{background:var(--secondary-color)}.game-container{min-height:100vh;position:relative;background:linear-gradient(to bottom,#87ceeb,#98fb98)}.game-container .connection-status{position:fixed;top:20px;right:20px;background:#fff;padding:10px 20px;border-radius:20px;box-shadow:0 2px 10px #0000001a;display:flex;gap:20px;z-index:100}.game-container .connection-status .status{font-size:14px;font-weight:500}.game-container .connection-status .status.connected{color:var(--success-color)}.game-container .connection-status .status.disconnected{color:var(--danger-color)}.game-container .connection-status .partner-status{font-size:14px;font-weight:500}.game-container .connection-status .partner-status.online{color:var(--success-color)}.game-container .connection-status .partner-status.offline{color:#999}.game-container .loading{display:flex;align-items:center;justify-content:center;height:100vh;font-size:24px;color:var(--primary-color)}.app{min-height:100vh;position:relative}*{margin:0;padding:0;box-sizing:border-box}:root{--primary-color: #ff6b9d;--secondary-color: #c44569;--accent-color: #feca57;--background-color: #f8f9fa;--text-color: #2c3e50;--success-color: #26de81;--danger-color: #fc5c65;--info-color: #45aaf2;--warning-color: #fed330}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--background-color);color:var(--text-color);overflow-x:hidden}button{cursor:pointer;border:none;padding:10px 20px;border-radius:8px;font-size:16px;transition:all .3s ease}button:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0000001a}button:active{transform:translateY(0)}button:disabled{opacity:.6;cursor:not-allowed}.primary-button{background-color:var(--primary-color);color:#fff}.primary-button:hover{background-color:var(--secondary-color)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}input,textarea{width:100%;padding:12px;border:2px solid #e1e8ed;border-radius:8px;font-size:16px;transition:border-color .3s ease}input:focus,textarea:focus{outline:none;border-color:var(--primary-color)}.error{color:var(--danger-color);margin-top:10px;font-size:14px;text-align:center}
