@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/inter-latin.woff2) format("woff2")}
@font-face{font-family:Playfair Display;font-style:normal;font-weight:400 900;font-display:swap;src:url(/fonts/playfair-display-latin.woff2) format("woff2")}
:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;color:#70515a;background:#fff8f3;color-scheme:only light;font-synthesis:none;text-rendering:optimizeLegibility;--wine: #d76580;--wine-dark: #c95270;--rose: #cf7186;--dusty-rose: #ecacb8;--coral: #dc8b79;--blush: #fff0f1;--cream: #fffdf9;--ink: #70515a;--muted: #98757e;--hairline: rgba(204, 102, 127, .17);--shadow: 0 28px 80px rgba(170, 88, 105, .09), 0 4px 16px rgba(170, 88, 105, .055)}
*{box-sizing:border-box}
html{min-width:320px;background:#fff8f3;color-scheme:only light!important}
body{min-width:320px;min-height:100vh;margin:0;overflow-x:hidden;color:var(--ink);background:#fff8f3;color-scheme:only light!important}
#root,.app-shell,button,input,select,textarea{color-scheme:only light!important}
button,input,select,textarea{font:inherit}
button:focus-visible,input:focus-visible{outline:3px solid rgba(215,101,128,.25);outline-offset:3px}
.rotate-180{transform:rotate(180deg)}
.app-shell{position:relative;isolation:isolate;min-height:100svh;display:grid;grid-template-columns:minmax(0,1fr);place-items:center;width:100%;padding:max(22px,env(safe-area-inset-top)) 16px max(58px,env(safe-area-inset-bottom));overflow:hidden;background:radial-gradient(circle at 50% 8%,rgba(255,255,255,.98),transparent 36%),linear-gradient(145deg,#fff9f4,#fdeef0 51%,#fff2e9)}
.ambient-glow{position:fixed;z-index:-2;width:38vw;height:38vw;min-width:260px;min-height:260px;border-radius:999px;filter:blur(60px);opacity:.48;pointer-events:none}
.glow-one{top:-18vw;right:-8vw;background:#f4aebe80}
.glow-two{bottom:-20vw;left:-10vw;background:#fbc1a36b}
.floating-hearts{position:fixed;z-index:-1;inset:0;pointer-events:none}
.floating-hearts span{position:absolute;color:#d7798c;filter:drop-shadow(0 4px 8px rgba(190,92,115,.08))}
.floating-hearts.lively span{color:#d85f7b}
.experience-card{position:relative;width:100%;max-width:620px;min-width:0;justify-self:center;padding:32px 20px 26px;overflow:hidden;border:1px solid rgba(255,255,255,.92);border-radius:24px;background:#fffdf9e6;box-shadow:var(--shadow);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
h1{margin:0;color:var(--wine);font-family:Playfair Display,Georgia,serif;font-size:clamp(2.05rem,9.2vw,3.35rem);font-weight:500;letter-spacing:-.04em;line-height:1.08}
.title-flower{display:inline-block;margin-left:.08em;color:#dc7d92;font-family:Georgia,serif;font-size:.72em;line-height:1;transform:translateY(-.04em) rotate(7deg)}
.screen-heading{margin-bottom:26px;text-align:center}
.screen-heading h1{font-size:clamp(2rem,8vw,3rem)}
.screen-heading p{max-width:430px;margin:13px auto 0;color:var(--muted);font-size:.87rem;line-height:1.58}
.primary-button{min-height:52px;border:0;border-radius:18px;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:0 21px;cursor:pointer;color:#fff;background:var(--wine);box-shadow:0 11px 23px #d7658040;font-size:.78rem;font-weight:650;letter-spacing:.1em;transition:background-color .3s ease-in-out,box-shadow .3s ease-in-out,opacity .3s ease-in-out}
.primary-button:hover:not(:disabled){background:var(--wine-dark);box-shadow:0 14px 28px #d765804a}
.primary-button:disabled{cursor:not-allowed;color:#b99da4;background:#f2e3e5;box-shadow:none}
.proposal-card{max-width:680px;overflow:visible;padding-block:clamp(48px,10vh,82px)}
.proposal-copy{min-width:0;text-align:center}
.proposal-actions{position:relative;width:min(100%,384px);display:grid;grid-template-columns:minmax(0,260px) 106px;align-items:center;justify-content:center;gap:18px;margin:42px auto 0}
.yes-button{width:100%}
.no-button-slot{width:106px;min-height:52px;display:grid;place-items:stretch}
.no-button-slot .no-button{width:100%}
.no-button{min-width:106px;min-height:52px;border:1px solid rgba(215,101,128,.2);border-radius:18px;padding:0 18px;cursor:pointer;color:#8a6871;background:#ffffffeb;box-shadow:0 8px 18px #9c4e6212;font-size:.75rem;font-weight:650;letter-spacing:.1em;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none}
.no-button-free{position:fixed;z-index:80;margin:0}
.activity-screen{max-width:680px}
.activity-grid{display:grid;grid-template-columns:1fr;gap:10px}
.activity-card{position:relative;min-height:76px;border:1px solid var(--hairline);border-radius:20px;display:flex;align-items:center;gap:14px;padding:13px 16px;cursor:pointer;text-align:left;color:var(--ink);background:#ffffffb3;box-shadow:0 4px 12px #9c4e6208;transition:border-color .3s ease-in-out,background-color .3s ease-in-out,box-shadow .3s ease-in-out}
.activity-card:hover{border-color:#d7658057;background:#fff9f6;box-shadow:0 10px 24px #9c4e6213}
.activity-card.selected{border-color:#d7658061;background:var(--blush);box-shadow:inset 0 0 0 1px #d765800f}
.activity-icon{width:42px;height:42px;flex:0 0 auto;display:grid;place-items:center;border-radius:14px;background:#fff1f0;font-size:1.32rem}
.activity-text{display:flex;flex-direction:column;gap:4px}
.activity-text strong{font-family:Playfair Display,Georgia,serif;font-size:1rem;font-weight:600}
.activity-text small{color:var(--muted);font-size:.7rem}
.selection-dot{width:16px;height:16px;margin-left:auto;border:1px solid #ddc0c4;border-radius:50%;transition:.3s ease-in-out}
.activity-card.selected .selection-dot{border-color:var(--wine);background:var(--wine);box-shadow:inset 0 0 0 4px var(--blush)}
.schedule-screen{max-width:850px}
.schedule-layout{display:grid;gap:24px}
.schedule-section{min-width:0}
.section-label{display:flex;align-items:center;gap:9px;margin-bottom:10px;color:var(--rose);font-size:.68rem;font-weight:650;letter-spacing:.14em;text-transform:uppercase}
.section-label span{width:25px;height:25px;display:grid;place-items:center;border:1px solid rgba(215,101,128,.23);border-radius:50%;font-size:.58rem}
.calendar{padding:13px;border:1px solid var(--hairline);border-radius:20px;background:#ffffffb3}
.calendar-header{height:38px;display:grid;grid-template-columns:36px 1fr 36px;align-items:center;margin-bottom:4px;text-align:center}
.calendar-header strong{font-family:Playfair Display,Georgia,serif;font-size:.96rem;font-weight:600}
.month-arrow{width:34px;height:34px;border:0;border-radius:11px;display:grid;place-items:center;cursor:pointer;color:var(--rose);background:transparent;transition:background-color .3s ease-in-out}
.month-arrow:hover:not(:disabled){background:var(--blush)}
.month-arrow:disabled{cursor:not-allowed;opacity:.25}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}
.weekday-row{margin-bottom:3px}
.weekday-row span{min-height:27px;display:grid;place-items:center;color:#ad8990;font-size:.6rem;font-weight:650}
.calendar-grid button{aspect-ratio:1;min-width:0;border:0;border-radius:11px;cursor:pointer;color:#74535c;background:transparent;font-size:.69rem;transition:.3s ease-in-out}
.calendar-grid button:hover:not(:disabled):not(.selected){background:var(--blush);transform:translateY(-1px)}
.calendar-grid button:disabled{cursor:default;color:#d9c5c6}
.calendar-grid button.today:not(.selected){color:var(--wine);box-shadow:inset 0 0 0 1px #d7658052}
.calendar-grid button.selected{color:#fff;background:var(--wine);box-shadow:0 6px 13px #d7658040}
.time-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.time-grid button{min-height:44px;border:1px solid var(--hairline);border-radius:14px;cursor:pointer;color:#76565f;background:#ffffffc2;font-size:.72rem;font-weight:550;transition:.3s ease-in-out}
.time-grid button:hover{border-color:#d765805c;background:#fff9f6}
.time-grid button.selected{border-color:var(--wine);color:#fff;background:var(--wine)}
.custom-time{position:relative;min-height:52px;margin-top:10px;border:1px solid var(--hairline);border-radius:15px;color:var(--muted);background:#ffffffc2;font-size:.72rem;transition:.3s ease-in-out}
.custom-time.selected{border-color:var(--wine);box-shadow:inset 0 0 0 1px #d7658014}
.custom-time-trigger{width:100%;min-height:50px;border:0;display:grid;grid-template-columns:1fr auto 18px;align-items:center;gap:9px;padding:8px 13px 8px 15px;cursor:pointer;color:var(--muted);background:transparent;text-align:left}
.custom-time-trigger strong{color:var(--wine);font-size:.72rem;font-weight:650}
.custom-time-trigger svg{width:17px;height:17px;color:var(--rose)}
.custom-time-panel{margin:0 8px 8px;border:1px solid rgba(215,101,128,.18);border-radius:14px;padding:12px;background:#fffaf8;box-shadow:0 16px 34px #aa58691f}
.custom-time-heading{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:11px;color:var(--ink)}
.custom-time-heading strong{font-family:Playfair Display,Georgia,serif;font-size:.88rem}
.custom-time-heading span{color:var(--wine);font-size:.69rem;font-weight:700}
.custom-time-label{display:block;margin:10px 0 6px;color:#a17d85;font-size:.56rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase}
.custom-hour-grid,.custom-minute-grid{display:grid;gap:5px}
.custom-hour-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
.custom-minute-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.custom-hour-grid button,.custom-minute-grid button{min-width:0;min-height:30px;border:1px solid transparent;border-radius:9px;cursor:pointer;color:#76565f;background:var(--blush);font-size:.65rem;transition:.2s ease-in-out}
.custom-hour-grid button:hover,.custom-minute-grid button:hover{border-color:#d765804d;background:#ffe5e8}
.custom-hour-grid button.selected,.custom-minute-grid button.selected{border-color:var(--wine);color:#fff;background:var(--wine)}
.sunset-time-card{min-height:154px;border:1px solid var(--hairline);border-radius:20px;display:flex;align-items:flex-start;gap:14px;padding:20px;background:linear-gradient(145deg,#fffaf4eb,#ffe8e3db)}
.sunset-time-card>span{font-size:1.7rem}
.sunset-time-card div{display:flex;flex-direction:column;gap:5px}
.sunset-time-card small{color:var(--rose);font-size:.64rem;font-weight:650;letter-spacing:.12em;text-transform:uppercase}
.sunset-time-card strong{color:var(--wine);font-family:Playfair Display,Georgia,serif;font-size:1.35rem}
.sunset-time-card p{margin:4px 0 0;color:var(--muted);font-size:.72rem;line-height:1.5}
.schedule-actions{width:min(100%,430px);margin:24px auto 0;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:center;justify-content:center;gap:10px}
.schedule-actions .set-date-button{width:100%;margin:0}
.schedule-back-button{min-height:52px;border:1px solid var(--hairline);border-radius:18px;padding:0 12px;cursor:pointer;color:var(--wine);background:#ffffffc2;box-shadow:0 8px 18px #9c4e620f;font-size:.72rem;font-weight:650;letter-spacing:.035em;white-space:nowrap;transition:.3s ease-in-out}
.schedule-back-button:hover{border-color:#d7658057;background:#fff9f6;box-shadow:0 10px 22px #9c4e6217}
.primary-button .button-heart{color:currentColor;font-size:1.02rem;text-shadow:none}
.confirmation-screen{max-width:570px;padding-bottom:20px;text-align:center}
.celebration-mark{position:relative;z-index:2;width:66px;height:66px;margin:0 auto 19px;display:grid;place-items:center;border:1px solid rgba(215,101,128,.22);padding:0;cursor:pointer;border-radius:50%;color:var(--wine);background:#fff3f3;box-shadow:0 12px 30px #d765802e;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}
.celebration-mark.bursting{opacity:1}
.celebration-mark.bursting .single-heart{opacity:0}
.celebration-mark .single-heart{font-size:1.72rem}
.celebration-heart{display:grid;place-items:center;will-change:transform}
.single-heart{display:block;color:var(--wine);font-family:Georgia,serif;font-style:normal;line-height:1;text-shadow:0 5px 15px rgba(199,73,104,.18)}
.confirmation-screen .screen-heading{position:relative;z-index:2}
.summary-card{position:relative;z-index:2;display:grid;gap:2px;overflow:hidden;border:1px solid var(--hairline);border-radius:20px;text-align:left;background:#ffffffbd}
.summary-card>div{min-height:62px;display:flex;align-items:center;gap:14px;padding:10px 15px;border-bottom:1px solid var(--hairline)}
.summary-card>div:last-child{border-bottom:0}
.summary-card>div>span:last-child{min-width:0;display:flex;flex-direction:column;gap:3px}
.summary-card small{color:#a17d85;font-size:.6rem;font-weight:650;letter-spacing:.12em;text-transform:uppercase}
.summary-card strong{overflow:hidden;color:var(--ink);font-family:Playfair Display,Georgia,serif;font-size:.92rem;font-weight:600;text-overflow:ellipsis;white-space:nowrap}
.summary-icon{width:36px;height:36px;flex:0 0 auto;display:grid;place-items:center;border-radius:12px;color:var(--wine);background:var(--blush)}
.summary-icon svg{width:18px;height:18px}
.summary-icon.emoji{font-size:1rem}
.date-anticipation{position:relative;z-index:2;min-height:42px;margin:14px 0 18px;display:flex;align-items:center;justify-content:center;gap:2ch;color:var(--wine);font-family:Playfair Display,Georgia,serif;font-size:1rem;line-height:1.36}
.animated-sparkles{width:42px;height:42px;flex:0 0 42px;display:inline-grid;place-items:center;border-radius:50%;color-scheme:only light!important;text-decoration:none;-webkit-tap-highlight-color:transparent}
.animated-sparkles picture,.animated-sparkles img{display:block;width:42px;height:42px}
.animated-sparkles img{-o-object-fit:contain;object-fit:contain;forced-color-adjust:none}
.calendar-button{position:relative;z-index:2;width:100%;letter-spacing:.04em}
.calendar-button svg{width:18px;height:18px}
.restart-button{position:relative;z-index:2;margin:15px auto 0;border:0;cursor:pointer;color:#9e7981;background:transparent;font-size:.68rem;text-decoration:underline;text-decoration-color:#9e798159;text-underline-offset:4px;transition:color .3s ease-in-out}
.restart-button:hover{color:var(--wine)}
.tiny-love-note{position:relative;z-index:2;max-width:390px;margin:18px auto 0;color:#78505b85;font-family:Playfair Display,Georgia,serif;font-size:clamp(.51rem,1.8vw,.6rem);font-style:italic;line-height:1.45;text-align:center}
.turnstile-host{position:absolute;width:1px;height:1px;overflow:hidden}
.confetti{position:absolute;z-index:1;inset:0;overflow:hidden;pointer-events:none}
.confetti i{position:absolute;top:-8px;width:5px;height:9px;border-radius:999px}
.heart-burst-overlay{position:fixed;z-index:100;inset:0;overflow:hidden;pointer-events:none}
.heart-burst-origin,.heart-burst-particle-origin{position:absolute;left:var(--burst-x);top:var(--burst-y);display:block;transform:translate(-50%,-50%)}
.heart-burst-core{display:block;filter:drop-shadow(0 20px 34px rgba(207,75,107,.28));font-size:3.75rem;line-height:1;transform-origin:center}
.heart-burst-core .single-heart{color:#d95c78}
.heart-burst-flash{width:140vmax;height:140vmax;display:block;border-radius:50%;background:radial-gradient(circle,#fff 0 5%,#fff0ef 16%,#efa5b1 40%,#d7658000 72%)}
.heart-burst-ring{position:absolute;left:50%;top:50%;width:88px;height:88px;display:block;border:3px solid rgba(255,255,255,.84);border-radius:50%;box-shadow:0 0 40px #d7658059;transform:translate(-50%,-50%)}
.heart-burst-particle{display:block;color:#fff6f2;font-style:normal;text-shadow:0 2px 12px rgba(190,76,103,.38)}
.made-with-care{position:fixed;z-index:-1;bottom:max(17px,env(safe-area-inset-bottom));left:50%;margin:0;transform:translate(-50%);color:#905d6994;font-family:Playfair Display,Georgia,serif;font-size:.67rem;font-style:italic;white-space:nowrap}
@media(min-width:520px){.experience-card{padding:38px 34px 30px}
.activity-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.proposal-card{padding-inline:40px}
.time-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.confirmation-screen{padding-bottom:22px}
}
@media(min-width:760px){.app-shell{padding:40px 24px 62px}
.schedule-layout{grid-template-columns:minmax(0,1.2fr) minmax(230px,.8fr);align-items:start;gap:24px}
.time-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.schedule-actions{width:430px}
}
@media(max-width:519px){.proposal-actions{grid-template-columns:minmax(0,1fr);justify-items:center}
.yes-button{width:100%}
.no-button-slot{width:44%}
.schedule-screen{padding-top:27px}
.schedule-layout{gap:20px}
.screen-heading{margin-bottom:21px}
.confirmation-screen{padding-top:28px}
}
@media(max-height:720px)and (min-width:760px){.app-shell{place-items:start center}
}
