:root{--ink:#412832;--muted:#82666d;--rose:#d94f6d;--deep:#b83d58;--line:rgba(123,68,79,.16)}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{color:var(--ink);font-family:Arial,Helvetica,sans-serif}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}.date-page{min-height:100svh;display:grid;place-items:center;overflow:hidden;position:relative;padding:30px;background:radial-gradient(circle at 50% 25%,#fffdfb 0,#fff4ee 54%,#f8e4e2 100%)}.date-page:before{content:"";position:fixed;inset:18px;border:1px solid var(--line);border-radius:28px;pointer-events:none;z-index:2}.noise{position:fixed;inset:0;opacity:.025;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.glow{position:fixed;width:390px;height:390px;border-radius:50%;filter:blur(18px);opacity:.42;pointer-events:none}.glow-one{background:#f7c7d2;left:-200px;top:-160px}.glow-two{background:#f4d4ae;right:-210px;bottom:-180px}.corner-heart{position:fixed;color:rgba(186,77,99,.11);font-family:Georgia,serif;font-size:90px;transform:rotate(-12deg)}.heart-a{left:7vw;bottom:9vh}.heart-b{right:7vw;top:9vh;transform:rotate(16deg) scale(.7)}.date-card{position:relative;z-index:1;width:min(760px,100%);max-height:calc(100svh - 60px);overflow:auto;text-align:center;padding:clamp(34px,5vw,60px) clamp(22px,6vw,72px);border:1px solid var(--line);border-radius:30px;background:rgba(255,252,248,.86);box-shadow:0 28px 90px rgba(108,54,65,.13),inset 0 1px 0 white;backdrop-filter:blur(18px);scrollbar-width:none}.date-card::-webkit-scrollbar{display:none}.progress{display:flex;justify-content:center;gap:7px;margin-bottom:clamp(25px,5vh,42px)}.progress span{width:20px;height:3px;border-radius:3px;background:#eadbd9;transition:.35s}.progress span.active{width:34px;background:var(--rose)}.panel{position:relative}.enter{animation:enter .5s cubic-bezier(.2,.8,.2,1) both}.eyebrow{color:#9b6c72;font-size:10px;letter-spacing:.27em;font-weight:800}.heart-mark{margin:16px auto 10px;color:var(--rose);font-size:42px;line-height:1;animation:beat 1.8s ease-in-out infinite}.mini-icon{margin:16px auto 8px;color:var(--rose);font-family:Georgia,serif;font-size:36px}h1{margin:0;font-family:Georgia,"Songti SC","Times New Roman",serif;font-size:clamp(36px,6vw,58px);line-height:1.15;letter-spacing:-.04em;font-weight:500}.step-3 h1{font-size:clamp(36px,5vw,52px)}.intro{max-width:460px;margin:18px auto 30px;color:var(--muted);font-size:clamp(14px,2vw,16px);line-height:1.75}.intro.compact{margin-bottom:26px}.first-actions{min-height:58px;display:flex;justify-content:center;gap:14px;align-items:center}.primary-button,.no-button,.outline-button{height:52px;border-radius:999px;border:0;cursor:pointer;transition:transform .2s,box-shadow .2s,opacity .2s}.primary-button{min-width:156px;padding:0 25px;color:#fff;background:linear-gradient(135deg,#df5b76,#c84260);box-shadow:0 10px 28px rgba(216,77,106,.26)}.primary-button span{display:inline-block;margin-left:8px;transition:.2s}.primary-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 14px 34px rgba(216,77,106,.34)}.primary-button:hover span{transform:translateX(3px)}.primary-button:disabled{cursor:not-allowed;opacity:.38;box-shadow:none}.no-button{min-width:112px;padding:0 24px;color:#72545b;background:#f3e5e3;z-index:20}.no-button.escaped{position:fixed;transition:left .17s cubic-bezier(.2,.8,.2,1),top .17s cubic-bezier(.2,.8,.2,1);box-shadow:0 10px 25px rgba(75,40,50,.13)}.tiny-note{min-height:18px;margin:24px 0 0;color:#ae8c91;font-size:12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;text-align:left}.form-grid label{display:grid;gap:9px}.form-grid label>span{margin-left:5px;color:#7b5c64;font-size:12px;font-weight:700;letter-spacing:.04em}.form-grid input{width:100%;height:58px;border:1px solid var(--line);border-radius:15px;padding:0 16px;color:var(--ink);background:rgba(255,255,255,.68);outline:none;color-scheme:light}.form-grid input:focus{border-color:rgba(217,79,109,.7);box-shadow:0 0 0 4px rgba(217,79,109,.09)}.nav-actions{display:flex;align-items:center;justify-content:space-between;margin-top:28px}.text-button{padding:12px 8px;border:0;color:#8d6c73;background:transparent;cursor:pointer}.text-button:hover{color:var(--deep)}.cuisine-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;text-align:left}.cuisine{min-height:76px;display:grid;grid-template-columns:42px 1fr 22px;align-items:center;gap:8px;padding:11px 13px;border:1px solid var(--line);border-radius:17px;color:var(--ink);background:rgba(255,255,255,.58);cursor:pointer;transition:.2s}.cuisine:hover{transform:translateY(-2px);border-color:rgba(217,79,109,.45)}.cuisine.selected{border-color:var(--rose);background:#fff3f3;box-shadow:0 8px 22px rgba(182,65,89,.1)}.cuisine-emoji{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;color:var(--rose);background:#f7e3e3;font-family:Georgia,serif;font-size:18px}.cuisine strong,.cuisine small{display:block}.cuisine strong{margin-bottom:5px;font-size:14px}.cuisine small{color:#9a7b81;font-size:10px}.cuisine i{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;color:#fff;background:var(--rose);font-size:11px;font-style:normal;opacity:0;transform:scale(.5);transition:.2s}.cuisine.selected i{opacity:1;transform:scale(1)}.celebration{padding-top:2px}.final-heart{font-size:48px}.ticket{max-width:510px;margin:28px auto 20px;border:1px solid rgba(185,75,98,.26);border-radius:20px;padding:6px 24px;background:linear-gradient(135deg,rgba(255,255,255,.86),rgba(255,240,239,.7));box-shadow:0 14px 35px rgba(121,53,67,.08)}.ticket div{display:grid;grid-template-columns:120px 1fr;gap:16px;align-items:center;padding:16px 0;text-align:left;border-bottom:1px dashed rgba(133,81,91,.2)}.ticket div:last-child{border-bottom:0}.ticket span{color:#aa7d84;font-size:9px;letter-spacing:.13em;font-weight:800}.ticket strong{font-family:Georgia,"Songti SC",serif;font-size:16px;font-weight:500}.signature{color:#a27c82;font-family:Georgia,serif;font-size:13px;font-style:italic}.final-actions{display:flex;gap:12px;justify-content:center;margin-top:17px}.outline-button{height:42px;padding:0 18px;border:1px solid var(--line);color:#805f66;background:transparent}.confetti{position:absolute;color:#dd7890;font-size:17px;animation:float 2.3s ease-in-out infinite}.c1{left:3%;top:12%}.c2{right:4%;top:18%;animation-delay:-.8s}.c3{right:12%;bottom:9%;animation-delay:-.3s}.c4{left:11%;bottom:14%;animation-delay:-1.2s}@keyframes enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes beat{0%,100%{transform:scale(1)}45%{transform:scale(1.12)}}@keyframes float{0%,100%{transform:translateY(0) rotate(-8deg)}50%{transform:translateY(-9px) rotate(8deg)}}
@media(max-width:600px){.date-page{padding:14px}.date-page:before{inset:8px;border-radius:22px}.corner-heart{display:none}.date-card{max-height:calc(100svh - 28px);padding:30px 19px;border-radius:24px}.progress{margin-bottom:24px}h1{font-size:clamp(34px,10vw,45px)}.intro{margin:14px auto 24px}.first-actions{gap:10px}.primary-button{min-width:145px}.no-button{min-width:100px}.form-grid,.cuisine-grid{grid-template-columns:1fr}.form-grid{gap:15px}.cuisine{min-height:68px}.cuisine small{font-size:9px}.step-3{padding:24px 19px}.step-3 .progress{margin-bottom:17px}.step-3 .mini-icon{margin-top:8px}.step-3 .intro{margin-bottom:17px}.ticket{padding:4px 16px}.ticket div{grid-template-columns:92px 1fr;gap:8px;padding:14px 0}.ticket strong{font-size:14px}}
@media(max-height:690px) and (min-width:601px){.date-card{padding-top:28px;padding-bottom:28px}.progress{margin-bottom:20px}.heart-mark,.mini-icon{margin-top:8px}.intro{margin:12px auto 18px}.cuisine{min-height:64px}.nav-actions{margin-top:18px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
.message-box{display:block;position:relative;max-width:510px;margin:0 auto 18px;text-align:left}.message-box>span{display:block;margin:0 0 9px 5px;color:#7b5c64;font-size:12px;font-weight:700;letter-spacing:.04em}.message-box textarea{display:block;width:100%;min-height:88px;resize:vertical;border:1px solid var(--line);border-radius:16px;padding:14px 16px 28px;color:var(--ink);background:rgba(255,255,255,.68);outline:none;line-height:1.55}.message-box textarea:focus{border-color:rgba(217,79,109,.7);box-shadow:0 0 0 4px rgba(217,79,109,.09)}.message-box textarea::placeholder{color:#b89ba0}.message-box small{position:absolute;right:13px;bottom:9px;color:#b19499;font-size:10px}
.submit-plan{display:block;width:min(100%,510px);height:52px;margin:0 auto 12px;border:0;border-radius:999px;color:#fff;background:linear-gradient(135deg,#df5b76,#c84260);box-shadow:0 10px 28px rgba(216,77,106,.23);cursor:pointer;transition:.2s}.submit-plan:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 14px 34px rgba(216,77,106,.32)}.submit-plan:disabled{cursor:default}.submit-plan.submitted{background:#758d78;box-shadow:0 10px 25px rgba(77,109,82,.17)}.submit-error{margin:0 0 10px;color:#b23851;font-size:12px}.final-actions .text-button:disabled{opacity:.38;cursor:not-allowed}
.admin-page{min-height:100svh;padding:48px 24px;background:radial-gradient(circle at 50% 0,#fffdfb 0,#fff5ef 55%,#f7e4e3 100%)}.admin-shell{width:min(920px,100%);margin:auto}.admin-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:28px}.admin-header h1{margin-top:9px;font-size:clamp(42px,7vw,68px)}.admin-header p:last-child{margin:12px 0 0;color:var(--muted)}.admin-signout{display:inline-grid;place-items:center;text-decoration:none;white-space:nowrap}.response-list{display:grid;gap:14px}.response-card{display:grid;grid-template-columns:58px 1fr;gap:18px;padding:22px;border:1px solid var(--line);border-radius:22px;background:rgba(255,252,248,.88);box-shadow:0 14px 40px rgba(108,54,65,.08)}.response-number{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;color:var(--rose);background:#f8e5e5;font-family:Georgia,serif;font-size:20px}.response-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px;color:#a08388;font-size:11px}.response-meta i{padding:5px 9px;border-radius:999px;color:#667f69;background:#e8f0e8;font-style:normal}.response-details{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.response-details div{padding:12px 14px;border-radius:13px;background:#fff7f3}.response-details small,.response-note small{display:block;margin-bottom:5px;color:#ae888f;font-size:9px;letter-spacing:.1em}.response-details strong{font-family:Georgia,"Songti SC",serif;font-size:15px;font-weight:500}.response-note{margin-top:10px;padding:13px 14px;border-left:3px solid #df8195;border-radius:3px 12px 12px 3px;background:#fff}.response-note p{margin:0;color:#62464e;font-size:14px;line-height:1.65;white-space:pre-wrap}.response-note.empty p{color:#b49a9f;font-style:italic}.admin-empty{padding:70px 20px;text-align:center;border:1px solid var(--line);border-radius:24px;background:rgba(255,252,248,.8)}.admin-empty span{color:var(--rose);font-size:42px}.admin-empty h2{font-family:Georgia,"Songti SC",serif;font-weight:500}.admin-empty p{color:var(--muted)}
@media(max-width:600px){.admin-page{padding:30px 14px}.admin-header{align-items:flex-start}.admin-header h1{font-size:42px}.admin-header p:last-child{font-size:13px}.admin-signout{height:38px;padding:0 13px;font-size:12px}.response-card{grid-template-columns:1fr;padding:16px}.response-number{width:40px;height:40px;border-radius:12px;font-size:16px}.response-details{grid-template-columns:1fr 1fr}.response-details div:last-child{grid-column:1/-1}}
.admin-login-page{min-height:100svh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 50% 20%,#fffdfb 0,#fff4ee 57%,#f7e3e2 100%)}.login-card{width:min(460px,100%);padding:42px;text-align:center;border:1px solid var(--line);border-radius:28px;background:rgba(255,252,248,.9);box-shadow:0 24px 70px rgba(108,54,65,.13)}.login-card .heart-mark{margin-top:0}.login-card h1{margin-top:10px;font-size:42px}.login-intro{margin:14px 0 26px;color:var(--muted);font-size:14px}.password-form{text-align:left}.password-form label span{display:block;margin:0 0 8px 5px;color:#7b5c64;font-size:12px;font-weight:700}.password-form input{width:100%;height:54px;padding:0 16px;border:1px solid var(--line);border-radius:14px;color:var(--ink);background:#fff;outline:none}.password-form input:focus{border-color:rgba(217,79,109,.7);box-shadow:0 0 0 4px rgba(217,79,109,.09)}.password-form p{margin:8px 4px;color:#b23851;font-size:12px}.password-form button{width:100%;height:52px;margin-top:14px;border:0;border-radius:999px;color:#fff;background:linear-gradient(135deg,#df5b76,#c84260);cursor:pointer}.password-form button:disabled{opacity:.45;cursor:not-allowed}.login-card>a{display:inline-block;margin-top:22px;color:#95757b;font-size:12px;text-decoration:none}@media(max-width:520px){.login-card{padding:34px 20px;border-radius:23px}.login-card h1{font-size:36px}}
#bgMusic,#soundPlayer{display:none}#musicToggle{position:fixed;z-index:100;top:max(12px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);height:38px;padding:0 17px;border:1px solid rgba(217,79,109,.24);border-radius:999px;color:#9a4e60;background:rgba(255,250,247,.96);box-shadow:0 8px 24px rgba(108,54,65,.14);font-size:12px;white-space:nowrap;cursor:pointer}#musicToggle.ready{color:#5f7964;border-color:rgba(95,121,100,.22);background:rgba(245,251,245,.96)}@media(pointer:coarse){.date-card{padding-top:max(64px,calc(44px + env(safe-area-inset-top)))}}
