:root{--pink-soft:#fff2f7;--pink-pale:#ffd3e4;--pink:#ff6aa2;--hot:#f3317c;--ink:#050505;--muted:#363238;--card:rgba(255,255,255,.95)}
*{box-sizing:border-box}html,body{min-height:100%}body{margin:0;color:var(--ink);background:#fff;font-family:ui-rounded,"SF Pro Rounded","PingFang SC","Microsoft YaHei",sans-serif}button{border:0;font:inherit;cursor:pointer}
.stage{position:relative;display:grid;min-height:100vh;place-items:center;padding:clamp(8rem,15vh,10rem) clamp(1rem,4vw,3.5rem) 3rem;overflow:hidden;isolation:isolate}.corner-art{position:absolute;z-index:-2;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;pointer-events:none}
.brand{position:absolute;z-index:3;top:clamp(1.2rem,3vh,2.5rem);left:50%;width:clamp(230px,23vw,340px);transform:translateX(-50%)}.brand img{display:block;width:100%;height:auto}
.card{position:relative;z-index:1;width:min(880px,calc(100vw - 2.2rem));min-height:540px;padding:clamp(2rem,5vw,4rem);text-align:center;border:2px solid rgba(243,49,124,.46);border-radius:54px;background:var(--card);box-shadow:0 18px 42px rgba(243,49,124,.12),inset 0 0 34px rgba(243,49,124,.04);animation:cardIn 520ms cubic-bezier(.2,.9,.2,1) both}.proposal-card{padding-top:205px}
.love-letter{position:absolute;top:-105px;left:50%;width:370px;height:370px;object-fit:contain;filter:drop-shadow(0 9px 10px rgba(243,49,124,.12));transform:translateX(-50%)}
.avatar{width:132px;height:132px;margin:0 auto 22px;overflow:hidden;border:3px solid var(--hot);border-radius:50%;background:#f4f4f4;box-shadow:6px 8px 0 var(--pink-pale)}.avatar img{width:100%;height:100%;object-fit:cover}.date-ticket-visual{width:min(560px,100%);margin:-10px auto 24px}.date-ticket-visual img{display:block;width:100%;height:auto}h1,h2{margin:0 auto;max-width:700px;color:var(--ink);font-weight:950;line-height:1.08;letter-spacing:0}h1{position:relative;font-family:"Kaiti SC","STKaiti","Songti SC",serif;font-size:clamp(2.6rem,7vw,5rem);font-weight:900;-webkit-text-stroke:1.4px var(--ink);text-shadow:1px 1px 0 var(--ink);transform:rotate(-1deg)}h2{font-size:clamp(1.85rem,5vw,3rem)}.title-heart{position:absolute;margin:.12em 0 0 .1em;color:var(--hot);font-size:.48em;-webkit-text-stroke:0;text-shadow:none}.proposal-card h1::after{position:absolute;right:2%;bottom:-16px;width:28%;height:9px;content:"";border-top:5px solid var(--pink);border-radius:50%;transform:rotate(-5deg)}.subtitle,.answer-card p,.date-form label span{margin:28px auto 0;max-width:620px;color:var(--muted);font-size:clamp(.95rem,2.3vw,1.22rem);font-weight:800}.proposal-card .subtitle span{color:var(--hot)}
.actions{position:relative;width:600px;max-width:100%;min-height:92px;margin:38px auto 0}.yes-btn,.no-btn,.primary-btn{min-width:230px;height:72px;padding:0 32px;color:var(--ink);border:4px solid var(--ink);border-radius:999px;box-shadow:0 9px 0 var(--ink),0 16px 20px rgba(0,0,0,.1);font-size:1.35rem;font-weight:950;transition:transform 180ms,box-shadow 180ms,opacity 180ms}.yes-btn,.primary-btn{color:#fff;background:var(--hot)}.yes-btn{position:absolute;top:0;left:40px}.no-btn{position:absolute;top:0;left:330px;background:#fff;transition:left 220ms cubic-bezier(.22,1,.36,1),top 220ms cubic-bezier(.22,1,.36,1),transform 220ms cubic-bezier(.22,1,.36,1),box-shadow 180ms;will-change:left,top,transform}.yes-btn:hover{filter:brightness(1.04);box-shadow:0 6px 0 var(--ink)}.primary-btn:hover{transform:translateY(-2px);box-shadow:0 6px 0 var(--ink)}.card-signoff{margin:24px 0 -24px;color:rgba(243,49,124,.27);font:italic 2rem Georgia,serif}
.badge{display:grid;width:86px;height:86px;margin:0 auto 24px;place-items:center;border:3px solid var(--hot);border-radius:50%;background:var(--pink-pale);font-size:2.4rem;box-shadow:5px 6px 0 var(--hot)}.primary-btn{margin-top:30px}.date-form{display:grid;gap:18px;max-width:520px;margin:26px auto 0;text-align:left}.date-form label{display:grid;gap:8px}.date-form label span{margin:0;font-weight:900}.date-form input,.date-form select,.custom-food input{width:100%;height:58px;padding:0 18px;color:var(--ink);border:2px solid var(--pink);border-radius:14px;outline:0;background:#fff;box-shadow:4px 5px 0 var(--pink-pale);font:850 1.04rem ui-rounded,"SF Pro Rounded","PingFang SC",sans-serif}.date-form input:focus,.date-form select:focus,.custom-food input:focus{border-color:var(--hot);box-shadow:0 0 0 4px rgba(243,49,124,.14)}.date-form .primary-btn{width:100%}.food-card{min-height:570px}.food-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;max-width:560px;margin:30px auto 0}.food-option{display:grid;min-height:104px;place-items:center;gap:10px;color:var(--ink);border:2px solid var(--pink);border-radius:16px;background:#fff;box-shadow:5px 6px 0 var(--pink-pale);font-size:2.25rem;transition:transform 180ms,border-color 180ms,background 180ms,box-shadow 180ms}.food-option span{font-size:1rem;font-weight:950;line-height:1}.food-option:hover,.food-option.selected{transform:translate(-2px,-2px);border-color:var(--hot);background:var(--pink-soft);box-shadow:7px 8px 0 var(--pink)}.custom-food{max-width:560px;margin:20px auto 0;text-align:left;animation:cardIn 260ms cubic-bezier(.2,.9,.2,1) both}.custom-food label{display:block;margin-bottom:8px;font-weight:950}.custom-food-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}.custom-food .primary-btn{height:58px;margin-top:0;white-space:nowrap}.date-menu{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;max-width:440px;margin:28px auto 0;padding:14px;border:2px solid var(--pink);border-radius:24px;background:#fff;box-shadow:7px 8px 0 var(--pink-pale)}.date-menu div{min-height:86px;padding:14px;text-align:left;border:2px solid var(--pink-pale);border-radius:14px;background:var(--pink-soft)}.date-menu span{display:block;margin-bottom:8px;color:var(--hot);font-size:.72rem;font-weight:950;letter-spacing:.12em}.date-menu strong{display:block;font-size:clamp(1rem,3vw,1.28rem);font-weight:950;line-height:1.12}.heart-row{margin-top:24px;color:var(--hot);font-size:1.35rem;letter-spacing:.45em}.hidden{display:none}
@keyframes cardIn{from{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:none}}
@media(max-width:620px){.stage{min-height:100svh;padding:7.5rem .8rem 2rem}.brand{top:1.4rem}.card{min-height:430px;padding:2rem 1.15rem;border-radius:30px}.proposal-card{padding-top:155px}.love-letter{top:-78px;width:290px;height:290px}h1{font-size:clamp(2.35rem,13vw,3.6rem);-webkit-text-stroke:1px var(--ink)}.proposal-card .subtitle{margin-top:25px}.actions{width:290px;margin-top:30px}.yes-btn,.no-btn,.primary-btn{min-width:130px;height:58px;padding:0 18px;font-size:1rem}.yes-btn{left:5px}.no-btn{left:155px}.card-signoff{font-size:1.45rem}.heart-one{left:-35px;font-size:7rem}.heart-two{right:-35px;font-size:6rem}.corner-fur{width:170px;height:160px}.food-grid{grid-template-columns:repeat(2,1fr);gap:12px}.food-option{min-height:108px}.date-menu,.custom-food-row{grid-template-columns:1fr}.custom-food .primary-btn{width:100%}}

.date-ticket-visual{position:relative}.ticket-live-details{position:absolute;top:24%;right:4.9%;display:flex;width:22%;height:59%;align-items:center;justify-content:center;flex-direction:column;gap:5%;padding:4% 1.5%;color:var(--ink);background:#fff8fa;text-align:center}.ticket-live-details span{font:800 clamp(.44rem,1vw,.66rem) Georgia,serif;letter-spacing:.12em}.ticket-live-details strong{font-size:clamp(.66rem,1.65vw,1.06rem);font-style:normal;font-weight:950;line-height:1.05;white-space:nowrap}.ticket-live-details i{color:var(--hot);font-size:clamp(.56rem,1.3vw,.9rem);font-style:normal;line-height:1}
.ticket-live-details{top:42%;right:auto;left:82.05%;display:grid;width:22%;height:16%;padding:0;transform:translateX(-50%);place-items:center;background:transparent}.ticket-live-details strong{display:grid;width:100%;grid-template-columns:1fr auto 1fr;align-items:baseline;color:#ec5d90;font-family:Georgia,"Times New Roman",serif;font-size:clamp(.62rem,1.5vw,.96rem);font-weight:700;line-height:1;letter-spacing:0;text-shadow:0 0 4px #fff6f8,0 0 8px #fff6f8,0 0 12px #fff6f8}.ticket-live-details strong span{font:inherit;letter-spacing:0}.ticket-live-details strong span:first-child{text-align:right}.ticket-live-details strong span:last-child{text-align:left}.ticket-date-dot{text-align:center}
.response-form{display:grid;gap:18px;max-width:540px;margin:25px auto 0;text-align:left}.response-form label{display:grid;gap:8px;color:var(--muted);font-weight:900}.response-form label span{font-size:1rem}.response-form small{font-size:.75rem;font-weight:700}.response-form input,.response-form textarea{width:100%;padding:0 18px;color:var(--ink);border:2px solid var(--pink);border-radius:14px;outline:0;background:#fff;box-shadow:4px 5px 0 var(--pink-pale);font:800 1rem ui-rounded,"SF Pro Rounded","PingFang SC",sans-serif}.response-form input{height:58px}.response-form textarea{min-height:110px;padding-top:15px;resize:vertical}.response-form input:focus,.response-form textarea:focus{border-color:var(--hot);box-shadow:0 0 0 4px rgba(243,49,124,.14)}.response-form .primary-btn{width:100%;margin-top:0}.submit-error{min-height:1.2em;margin:0;color:#b42318;font-size:.85rem;font-weight:800;text-align:center}.invite-error .actions{display:none}.invite-error .love-letter{filter:grayscale(1);opacity:.65}
.response-form .primary-btn:disabled{cursor:wait;opacity:.72}
.date-form,.date-form label{width:100%;min-width:0}.date-form input,.date-form select{display:block;width:100%;min-width:0;max-width:100%}
.date-form .date-field{max-width:100%;overflow:hidden;padding:0 6px 7px 0}.date-form input[type="date"]{display:block;box-sizing:border-box;width:100%;inline-size:100%;min-width:0;min-inline-size:0;max-width:100%;max-inline-size:100%;margin:0;-webkit-appearance:none;appearance:none}.date-form input[type="date"]::-webkit-date-and-time-value{min-width:0;text-align:left}
@media (min-width:621px) and (max-height:760px){.stage{display:block;min-height:100svh;padding:8rem 1.1rem 3rem;overflow-x:hidden;overflow-y:auto}.card{margin-right:auto;margin-left:auto}.proposal-card{margin-top:7rem}}
@media (max-width:620px) and (max-height:760px){.stage{display:block;min-height:100svh;padding:7.5rem .8rem 2rem;overflow-x:hidden;overflow-y:auto}.card{margin-right:auto;margin-left:auto}.proposal-card{margin-top:5rem}}
@media (max-width:620px){.stage{overflow-x:hidden;overflow-y:auto}.proposal-card{margin-top:5rem}}
@media (max-width:620px){.stage{padding-right:.4rem;padding-left:.4rem}.card{width:calc(100vw - .8rem);padding-right:.75rem;padding-left:.75rem}}
@media (max-width:620px){.stage{display:block;padding-top:1.5rem}.brand{position:relative;top:auto;left:auto;margin:0 auto;transform:none}.card{margin-right:auto;margin-left:auto}.proposal-card{margin-top:7rem}.card:not(.proposal-card){margin-top:2rem}}
@media (min-width:621px) and (max-height:760px){.stage{padding-top:1.5rem}.brand{position:relative;top:auto;left:auto;margin:0 auto;transform:none}.proposal-card{margin-top:9rem}.card:not(.proposal-card){margin-top:2rem}}
.stage{display:block;min-height:100svh;padding-top:clamp(1.2rem,3vh,2.5rem);overflow-x:hidden;overflow-y:auto}.brand{position:relative;top:auto;left:auto;margin:0 auto;transform:none}.card{margin-right:auto;margin-left:auto}.proposal-card{margin-top:9rem}.card:not(.proposal-card){margin-top:2rem}
