:root{color:#4a1020;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#fff7f9 0%,#fff 44%,#ffe5ec 100%);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0;overflow-x:hidden}button,input{font:inherit}.app-shell{min-height:100vh;min-height:100dvh;padding:max(18px, env(safe-area-inset-top)) 24px max(18px, env(safe-area-inset-bottom));place-items:center;display:grid}.question-panel{text-align:center;width:min(100%,520px);position:relative}.question-panel:before{content:"♡";color:#fb7185;font-size:2.5rem;line-height:1;position:absolute;top:-54px;left:50%;transform:translate(-50%)}.question-label{color:#be123c;letter-spacing:.12em;text-transform:uppercase;margin:0 0 14px;font-size:.9rem;font-weight:700}.question-panel h1{color:#881337;text-shadow:0 8px 24px #f43f5e29;margin:0;font-size:max(2.3rem,min(11vw,5rem));line-height:.96}.question-title{gap:.08em;display:grid}.question-title-line{display:block}.date-picker-title{white-space:nowrap}.button-row{justify-content:center;gap:16px;min-height:76px;margin-top:40px;display:flex}.answer-button,.submit-button{cursor:pointer;font:inherit;touch-action:manipulation;border:0;border-radius:999px;font-weight:800}.answer-button{color:#fff;min-width:132px;padding:20px 28px;font-size:1.5rem;box-shadow:0 16px 32px #be123c2e}.no-button-slot{min-width:132px;min-height:70px;display:inline-flex}.yes-button{background:linear-gradient(135deg,#fb7185,#e11d48)}.no-button{touch-action:none;-webkit-user-select:none;user-select:none;z-index:10;background:#9f1239}.answer-button:focus-visible{outline-offset:3px;outline:3px solid #fb7185}.submit-button:focus-visible{outline-offset:3px;outline:3px solid #fb7185}.calendar-day:focus-visible{outline-offset:3px;outline:3px solid #fb7185}.calendar-nav-button:focus-visible{outline-offset:3px;outline:3px solid #fb7185}.date-form{text-align:left;gap:18px;margin:36px auto 0;display:grid}.calendar-picker{background:#ffffffd1;border:1px solid #fecdd3;border-radius:8px;gap:12px;padding:14px;display:grid;box-shadow:0 18px 45px #be123c1f}.calendar-header{grid-template-columns:44px 1fr 44px;align-items:center;gap:8px;display:grid}.calendar-title{color:#881337;text-align:center;margin:0;font-weight:800}.calendar-nav-button{cursor:pointer;color:#be123c;min-height:42px;font:inherit;touch-action:manipulation;background:#fff1f2;border:1px solid #fecdd3;border-radius:8px;font-size:1.4rem;font-weight:800;line-height:1}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.calendar-weekday{color:#be123c;text-align:center;font-size:.78rem;font-weight:800}.calendar-day{cursor:pointer;color:#4a1020;min-height:44px;font:inherit;touch-action:manipulation;background:#fff1f2;border:1px solid #0000;border-radius:8px;font-weight:800}.calendar-day.outside-month{color:#fda4af;background:#fff7f9}.calendar-day.past-date{cursor:not-allowed;color:#fda4af;opacity:.45;background:#fff7f9}.calendar-day.selected{color:#fff;background:linear-gradient(135deg,#fb7185,#e11d48);box-shadow:0 10px 20px #e11d4838}.selected-date{color:#881337;text-align:center;margin:0;font-weight:700}.success-page{justify-items:center;gap:14px;display:grid}.success-page h1{text-align:center;white-space:nowrap;justify-self:center}.success-heart{color:#fb7185;margin:0;font-size:3rem;line-height:1}.submit-button{color:#fff;background:linear-gradient(135deg,#f43f5e,#be123c);margin-top:4px;padding:16px 20px;box-shadow:0 14px 28px #be123c2e}.submit-button:disabled{cursor:wait;opacity:.7}.status-message{text-align:center;border-radius:8px;margin:0;padding:12px 14px;font-weight:700}.status-message.success{color:#9f1239;background:#ffe4e6}.status-message.error{color:#991b1b;background:#ffe4e6}@media (max-width:520px){.app-shell{padding:max(56px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom))}.app-shell.question-screen{padding-top:max(18px, env(safe-area-inset-top));align-items:center}.app-shell.form-screen{min-height:100vh;min-height:100dvh;padding:max(48px, env(safe-area-inset-top)) 12px max(10px, env(safe-area-inset-bottom));align-items:start;overflow-y:auto}.question-panel h1{font-size:max(2rem,min(16vw,3.7rem))}.form-screen .question-panel:before,.success-screen .question-panel:before{display:none}.form-screen .question-panel h1{font-size:max(1.45rem,min(8vw,2.1rem));line-height:1.08}.form-screen .date-picker-title{font-size:max(1.65rem,min(10vw,2.35rem))}.success-screen .question-panel h1{font-size:max(1.8rem,min(9vw,2.6rem))}.question-label{margin-bottom:10px}.button-row{gap:12px;min-height:66px;margin-top:32px}.answer-button{min-width:116px;padding:17px 20px;font-size:1.35rem}.no-button-slot{min-width:116px;min-height:66px}.date-form{gap:10px;margin-top:16px}.calendar-picker{gap:8px;padding:10px}.calendar-header{grid-template-columns:38px 1fr 38px;gap:6px}.calendar-title{font-size:.95rem}.calendar-nav-button{border-radius:7px;min-height:36px;font-size:1.2rem}.calendar-grid{gap:3px}.calendar-weekday{font-size:.68rem}.calendar-day{border-radius:6px;min-height:32px;font-size:.82rem}.selected-date{font-size:.86rem}.submit-button{padding:12px 18px}.status-message{padding:8px 10px;font-size:.86rem}}
