:root{--primary: #ff4d6d;--secondary: #c9184a;--bg-dark: #ffe6e8;--bg-light: #fff0f3;--glass-bg: rgba(255, 255, 255, .7);--glass-border: rgba(255, 255, 255, .9);--text-main: #590d22;--text-sub: #800f2f;--tile-bg: #fdf0d5;--tile-border: #e6ccb2;--board-bg: rgba(255, 255, 255, .5);font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box;margin:0;padding:0;-webkit-user-select:none;user-select:none}body{width:100vw;height:100vh;overflow:hidden;background:linear-gradient(135deg,var(--bg-light),var(--bg-dark));color:var(--text-main);display:flex;justify-content:center;align-items:center}#app{position:relative;width:100%;height:100%;display:flex;justify-content:center;align-items:center}.floating-hearts{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffccd5' width='48' height='48'%3E%3Cpath d='M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z'/%3E%3C/svg%3E");background-repeat:repeat;opacity:.4}@keyframes floatBackground{0%{background-position:0 0}to{background-position:100% 100%}}.view{position:absolute;width:100%;height:100%;display:none;flex-direction:column;justify-content:center;align-items:center;opacity:0;pointer-events:none;z-index:10}.view.active{display:flex;opacity:1;pointer-events:all;animation:fadeIn .5s ease forwards}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.glass-card{background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:24px;padding:2rem;width:95%;max-width:600px;box-shadow:0 8px 32px #ff4d6d26;text-align:center;transform:translateY(20px);animation:slideUp .6s cubic-bezier(.2,.8,.2,1) forwards;display:flex;flex-direction:column;align-items:center;gap:1.5rem}@keyframes slideUp{to{transform:translateY(0)}}h1,h2,h3{font-family:Playfair Display,serif;color:var(--secondary)}h1{font-size:2.5rem;font-weight:800}h2{font-size:1.8rem;font-weight:600}.board-container{background:var(--board-bg);padding:15px;border-radius:12px;border:2px solid rgba(255,255,255,.6)}.scrabble-board{display:grid;gap:4px;background:transparent}.board-cell{width:45px;height:45px;background:#fff6;border:1px solid rgba(200,200,200,.3);border-radius:4px;display:flex;justify-content:center;align-items:center;font-size:.8rem;color:#0003;position:relative;box-shadow:inset 1px 1px 3px #0000000d}.board-cell.special{background:#ff4d6d26;border:1px solid rgba(255,77,109,.3)}.board-cell.star:after{content:"★";color:var(--primary);font-size:1.2rem;opacity:.5;position:absolute;z-index:1}.board-cell.empty{background:transparent;border:none;box-shadow:none}.board-cell.active{background:#fff9;border:2px solid rgba(255,77,109,.4);animation:glow 1.5s ease-in-out infinite alternate}@keyframes glow{0%{box-shadow:inset 1px 1px 3px #ff4d6d33}to{box-shadow:inset 1px 1px 8px #ff4d6d66}}.board-cell.completed{background:#c9184a1a;border:1px solid rgba(201,24,74,.3)}.tile{width:42px;height:42px;background:var(--tile-bg);border:2px solid var(--tile-border);border-radius:6px;display:flex;justify-content:center;align-items:center;font-size:1.5rem;font-weight:700;color:#4a3b32;box-shadow:2px 2px #0000001a;cursor:grab;z-index:100;touch-action:none;position:relative;transition:transform .1s}.tile.invisible{opacity:.3}.tile:active{cursor:grabbing}.tile:hover{transform:scale(1.05);box-shadow:3px 3px 5px #0003}.tile.placed{width:100%;height:100%;box-shadow:none;border:none;cursor:grab;z-index:10}.tile-sub{font-size:.6rem;position:absolute;bottom:2px;right:4px;font-weight:400;opacity:.7}.game-hint{font-size:1.1rem;color:var(--text-main);text-align:center;margin:1rem 0 .5rem;font-weight:500;font-style:italic}.rack-container{background:#5e4335 url(https://www.transparenttextures.com/patterns/wood-pattern.png);padding:10px 20px;border-radius:8px;box-shadow:inset 0 2px 5px #0000004d;min-height:70px;display:flex;justify-content:center;align-items:center;margin-top:1rem;width:100%;overflow-x:auto}.tile-rack{display:flex;gap:8px;justify-content:center;min-width:200px;min-height:45px;flex-wrap:wrap}.game-controls{display:flex;gap:1rem;margin-top:1rem}.btn{padding:.8rem 1.5rem;font-size:1rem;border:none;border-radius:50px;cursor:pointer;font-weight:600;transition:all .2s;font-family:inherit}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.btn-primary{background:var(--primary);color:#fff;box-shadow:0 4px 15px #ff4d6d66}.btn-primary:hover:not(:disabled){transform:scale(1.05) translateY(-2px);background:var(--secondary)}.btn-secondary{background:#fff;color:var(--text-sub);border:1px solid #ffcbd1}.btn-secondary:hover{background:#fff0f3}.tease-text{font-size:3rem;background:-webkit-linear-gradient(45deg,var(--primary),var(--secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:pulse 1s infinite alternate;text-align:center}@keyframes pulse{0%{transform:scale(1);opacity:.8}to{transform:scale(1.05);opacity:1}}.heart-pulse{font-size:4rem;display:inline-block;margin-bottom:1rem;animation:heartBeat 1.2s infinite}@keyframes heartBeat{0%{transform:scale(1)}14%{transform:scale(1.3)}28%{transform:scale(1)}42%{transform:scale(1.3)}70%{transform:scale(1)}}.success-title{font-size:4rem;background:-webkit-linear-gradient(45deg,#ff4d6d,#ff9e00);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.shake{animation:shake .4s cubic-bezier(.36,.07,.19,.97) both}@keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}.button-container{display:flex;gap:2rem;justify-content:center;align-items:center;margin-top:2rem}.proposal-title{font-size:2.5rem;color:var(--secondary);margin-bottom:1rem}.btn-yes{padding:2rem 4rem;font-size:3rem;background:linear-gradient(135deg,#ff4d6d,#c9184a);color:#fff;border:none;border-radius:25px;cursor:pointer;font-weight:800;transition:transform .3s ease,box-shadow .3s ease;font-family:Playfair Display,serif;box-shadow:0 10px 30px #ff4d6d80}.btn-yes:hover{transform:scale(1.1) translateY(-5px);box-shadow:0 15px 40px #ff4d6db3;animation:heartBeat 1.2s infinite}.btn-no-shrink{padding:.8rem 2rem;font-size:1rem;background:#fffc;color:var(--text-sub);border:2px solid rgba(255,77,109,.3);border-radius:50px;cursor:pointer;font-weight:600;transition:all .3s ease;font-family:inherit}.btn-no-shrink:hover{background:#fff;border-color:#ff4d6d80}.calendar-card{max-width:500px;background:linear-gradient(135deg,#f5f5f5,#e8e8e8);padding:3rem}.calendar-header{font-size:2.5rem;font-weight:800;text-align:center;color:#2d2d2d;margin-bottom:2rem;letter-spacing:.5px;font-family:Playfair Display,serif}.calendar-image-placeholder{width:100%;height:250px;border-radius:12px;overflow:hidden;margin-bottom:2rem;box-shadow:0 4px 12px #00000026}.calendar-image-placeholder img{width:100%;height:100%;object-fit:cover}.calendar-mini-grid{display:flex;gap:20px;padding:30px 20px;background:#fff;border-radius:12px;box-shadow:0 4px 12px #0000001a;align-items:center;justify-content:center}.mini-day{display:flex;align-items:center;justify-content:center;font-size:1.5rem;color:#333;border:2px solid #e0e0e0;border-radius:12px;position:relative;background:#fafafa;font-weight:600;width:100px;height:100px;flex-shrink:0;transition:transform .3s ease}.mini-day-number{font-size:2rem;font-weight:700;color:#666}.mini-day.special-day{background:linear-gradient(135deg,#8b0000,#c9184a);color:#fff;border:none;box-shadow:0 12px 30px #8b000080;width:180px;height:180px;border-radius:16px;transform:scale(1)}.mini-day.special-day:hover{transform:scale(1.05)}.save-the-date-box{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;width:100%;padding:10px}.std-text{font-size:1.5rem;font-weight:800;line-height:1.2;color:#fff;font-family:Playfair Display,serif}.special-day .day-number{position:absolute;bottom:8px;right:12px;font-size:1.8rem;font-weight:700;color:#ffffff4d}
