@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Gowun+Dodum&family=Playfair+Display:ital,wght@0,500;0,600;1,500;1,600&display=swap";:root{color:#3f2831;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f8dfe5;font-family:Gowun Dodum,Apple SD Gothic Neo,sans-serif}*{box-sizing:border-box}html{background:#f8dfe5;min-width:320px}body{min-width:320px;margin:0}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline-offset:3px;outline:3px solid #d65c7c59}#root{min-height:100svh}@keyframes float-heart{0%,to{transform:translateY(0)rotate(-8deg)}50%{transform:translateY(-12px)rotate(8deg)}}@keyframes portrait-in{0%{opacity:0;transform:translateY(18px)rotate(-4deg)}to{opacity:1;transform:translateY(0)rotate(-4deg)}}@keyframes pop-in{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.date-page{background:radial-gradient(circle at 18% 14%,#ffffffad 0 2px,#0000 3px),radial-gradient(circle at 80% 88%,#ffffff8c 0 2px,#0000 3px),linear-gradient(135deg,#f8dfe5 0%,#f8e9e3 48%,#f7d8dd 100%);place-items:center;min-height:100svh;padding:30px 20px;display:grid;position:relative;overflow:hidden}.date-page:before,.date-page:after{content:"";pointer-events:none;filter:blur(2px);border-radius:50%;position:absolute}.date-page:before{background:#fff7eb7a;width:42vw;max-width:580px;height:42vw;max-height:580px;top:-22vw;right:-10vw}.date-page:after{background:#f1b3c154;width:35vw;max-width:470px;height:35vw;max-height:470px;bottom:-20vw;left:-12vw}.ambient{opacity:.7;border:1px solid #b84e6c70;width:8px;height:8px;position:absolute;transform:rotate(45deg)}.ambient--top{top:18%;left:10%}.ambient--bottom{bottom:16%;right:12%}.floating-heart{z-index:0;color:#c94a6f57;pointer-events:none;font-family:Playfair Display,serif;font-size:clamp(28px,4vw,52px);animation:4s ease-in-out infinite float-heart;position:absolute}.floating-heart--one{animation-delay:-1.2s;top:9%;left:7%}.floating-heart--two{font-size:22px;animation-delay:-2.3s;top:17%;right:8%}.floating-heart--three{font-size:24px;animation-delay:-.4s;bottom:12%;left:12%}.floating-heart--four{animation-delay:-2.8s;bottom:8%;right:10%}.date-shell{z-index:1;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fff9f4d6;border:1px solid #9e4b6030;flex-direction:column;width:min(100%,1060px);min-height:min(850px,100svh - 60px);display:flex;position:relative;box-shadow:0 28px 70px #91415824,0 4px 16px #9141580f}.topbar,.footer-note{color:#855a64;letter-spacing:.09em;text-transform:uppercase;justify-content:space-between;align-items:center;font-family:DM Mono,monospace;font-size:10px;display:flex}.topbar{border-bottom:1px solid #9e4b6024;min-height:72px;padding:0 46px}.brand-mark,.topbar-note,.footer-note{margin:0}.brand-mark{color:#623b46;align-items:center;gap:9px;font-weight:500;display:flex}.brand-dot{background:#c85676;border-radius:50%;width:9px;height:9px;display:inline-block;box-shadow:0 0 0 4px #c8567621}.topbar-note span,.eyebrow span{color:#c85676}.progress{justify-content:center;align-items:center;gap:0;padding:25px 48px 8px;display:flex}.progress-item{color:#b89ba1;letter-spacing:.1em;text-transform:uppercase;align-items:center;font-family:DM Mono,monospace;font-size:9px;display:flex}.progress-dot{background:#fffaf7;border:1px solid #e1c8cd;border-radius:50%;place-items:center;width:25px;height:25px;font-size:9px;transition:all .3s;display:grid}.progress-dot.is-active{color:#fffaf7;background:#c85676;border-color:#c85676;box-shadow:0 0 0 4px #c856761a}.progress-item>span{margin-left:8px}.progress-item>span.is-current{color:#693f4a}.progress-line{background:#e5cfd3;width:clamp(28px,7vw,76px);height:1px;margin:0 12px}.progress-line.is-active{background:#c85676}.content-card{flex:1;align-items:center;min-height:550px;padding:46px 78px 54px;animation:.35s both pop-in;display:grid}.content-card--invite{padding-top:35px}.content-card--done{min-height:590px}.invite-layout,.selection-layout,.menu-layout{grid-template-columns:minmax(250px,.86fr) minmax(340px,1fr);align-items:center;gap:clamp(54px,8vw,110px);width:min(100%,820px);margin:0 auto;display:grid}.portrait-wrap{aspect-ratio:.86;justify-self:center;width:min(100%,350px);padding:17px;animation:.65s 50ms both portrait-in;position:relative;transform:rotate(-4deg)}.portrait-wrap:before{content:"";z-index:-1;background:#f3c4ce;border:1px solid #b2526970;position:absolute;inset:0;transform:rotate(7deg)}.portrait-halo{z-index:-2;filter:blur(1px);background:#f5c6cf8c;border-radius:50%;width:115%;height:105%;position:absolute;top:-4%;left:-7%}.portrait{object-fit:cover;object-position:center;background:#e7b4be;border:8px solid #fff9f4;width:100%;height:100%;display:block;box-shadow:0 16px 24px #833f5024}.portrait-sticker{color:#fff9f4;background:#c85676;place-items:center;display:grid;position:absolute;box-shadow:0 7px 13px #9b415933}.portrait-sticker--top{letter-spacing:.08em;width:78px;height:35px;font-family:DM Mono,monospace;font-size:9px;top:4px;right:-21px;transform:rotate(12deg)}.portrait-sticker--bottom{border-radius:50%;width:37px;height:37px;font-size:20px;bottom:3px;right:-12px;transform:rotate(12deg)}.eyebrow{color:#bd7285;letter-spacing:.16em;text-transform:uppercase;margin:0 0 18px;font-family:DM Mono,monospace;font-size:10px;line-height:1.4}h1{color:#4c2c36;letter-spacing:-.06em;margin:0;font-family:Playfair Display,Noto Serif KR,serif;font-size:clamp(42px,6vw,68px);font-weight:500;line-height:.99}h1 em,.pickup-message em{color:#c85676;font-style:italic}.intro-text{color:#8b6871;margin-top:25px;font-size:15px;line-height:1.75}.answer-area{margin-top:38px}.answer-actions{isolation:isolate;align-items:center;gap:11px;width:min(100%,370px);min-height:54px;display:flex;position:relative}.primary-button,.ghost-button,.no-button,.text-button{border:0;transition:transform .24s,box-shadow .24s,background .24s,opacity .24s}.primary-button{z-index:1;color:#fffaf7;background:#c85676;border-radius:2px;min-height:52px;padding:0 24px;font-size:14px;position:relative;box-shadow:0 11px 18px #c8567638}.primary-button:hover:not(:disabled){background:#b74364;transform:translateY(-2px);box-shadow:0 14px 22px #c856764d}.primary-button span{margin-left:9px;font-size:17px}.primary-button:disabled{cursor:not-allowed;opacity:.42;box-shadow:none}.no-button{color:#a8838c;touch-action:none;min-height:52px;transform:translate(var(--move-x), var(--move-y));z-index:3;background:#fffaf799;border:1px solid #e5c6cd;border-radius:2px;padding:0 20px;font-size:13px;position:relative}.no-button:hover{color:#c85676}.escape-hint{color:#b49299;min-height:18px;margin:14px 0 0;font-size:11px}.selection-layout{grid-template-columns:minmax(250px,.75fr) minmax(340px,1fr)}.selection-panel,.menu-panel{background:#fffaf7b3;border:1px solid #ebd6d8;padding:35px;box-shadow:0 12px 28px #8f48580f}.field-label{color:#65414b;margin-bottom:12px;font-size:14px;display:block}.calendar-picker{background:#fffaf7;border:1px solid #e1bdc7;padding:17px 18px 13px}.calendar-header{justify-content:space-between;align-items:center;margin-bottom:17px;display:flex}.calendar-heading{color:#573540;letter-spacing:.03em;font-family:DM Mono,monospace;font-size:12px}.calendar-heading span{color:#bd7285}.calendar-nav{color:#a86b7b;background:0 0;border:1px solid #ead3d7;place-items:center;width:30px;height:30px;font-family:sans-serif;font-size:15px;transition:border-color .2s,background .2s,color .2s;display:grid}.calendar-nav:hover:not(:disabled){color:#c85676;background:#fff0f1;border-color:#c85676}.calendar-nav:disabled{cursor:not-allowed;color:#dcc6ca;opacity:.65}.calendar-weekdays,.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;display:grid}.calendar-weekdays{color:#ad8b94;text-align:center;margin-bottom:7px;font-family:DM Mono,monospace;font-size:9px}.calendar-weekdays .is-sunday,.calendar-weekdays .is-saturday{color:#c85676}.calendar-day,.calendar-empty{min-width:0;min-height:40px}.calendar-day{color:#6c4a53;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;font-family:DM Mono,monospace;font-size:11px;transition:border-color .2s,color .2s,background .2s,transform .2s;display:flex;position:relative}.calendar-day:hover:not(:disabled){color:#c85676;background:#fff0f1;border-color:#e1aebc;transform:translateY(-1px)}.calendar-day.is-selected{color:#fffaf7;background:#c85676;border-color:#c85676;box-shadow:0 6px 10px #c8567633}.calendar-day.is-disabled{cursor:not-allowed;color:#ddc9ce;text-decoration:line-through}.calendar-day small{color:#c85676;font-family:Gowun Dodum,sans-serif;font-size:7px;line-height:1;position:absolute;bottom:2px;right:3px}.calendar-day.is-selected small{color:#fffaf7cc}.calendar-day i{background:#d995a7;border-radius:50%;width:3px;height:3px;position:absolute;top:4px;left:4px}.calendar-caption{color:#ad8f96;align-items:center;gap:7px;margin:14px 0 0;font-size:10px;display:flex}.calendar-caption-dot{background:#c85676;border-radius:50%;width:6px;height:6px}.panel-actions{justify-content:flex-end;align-items:center;gap:16px;margin-top:34px;display:flex}.ghost-button{color:#a17d86;background:0 0;padding:8px 0;font-size:13px}.ghost-button:hover,.text-button:hover{color:#c85676}.menu-layout{grid-template-columns:minmax(230px,.66fr) minmax(400px,1.34fr);gap:48px}.menu-heading .intro-text{margin-top:20px}.selected-date{color:#c85676;letter-spacing:.03em;margin-top:28px;font-family:DM Mono,monospace;font-size:10px}.selected-date span{margin-right:5px;font-family:sans-serif;font-size:14px}.menu-panel{padding:25px}.menu-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.menu-option{color:#6c4a53;background:#fffaf7cc;border:1px solid #eedcdf;flex-direction:column;justify-content:center;align-items:center;min-height:125px;padding:17px 7px 13px;transition:all .22s;display:flex;position:relative}.menu-option:hover{background:#fff5f2;border-color:#d997a8;transform:translateY(-2px)}.menu-option.is-selected{background:#fff0f1;border-color:#c85676;box-shadow:inset 0 0 0 1px #c85676,0 8px 14px #c856761a}.menu-emoji{margin-bottom:7px;font-size:28px;line-height:1}.menu-name{font-size:13px}.menu-note{color:#b29399;margin-top:3px;font-size:9px}.menu-check{color:#0000;border:1px solid #dfc4ca;border-radius:50%;place-items:center;width:17px;height:17px;font-family:sans-serif;font-size:10px;transition:all .2s;display:grid;position:absolute;top:7px;right:8px}.menu-option.is-selected .menu-check{color:#fff;background:#c85676;border-color:#c85676}.menu-panel .panel-actions{margin-top:24px}.done-layout{text-align:center;width:min(100%,590px);margin:0 auto;position:relative}.done-burst{color:#d77e96;justify-content:center;align-items:center;gap:17px;height:34px;margin-bottom:17px;display:flex}.done-burst span:first-child,.done-burst span:nth-child(3){font-size:26px}.done-burst span:nth-child(2),.done-burst span:nth-child(4){font-size:12px}.done-layout h1{font-size:clamp(48px,7vw,78px)}.done-lead{color:#8b6871;margin-top:16px;font-size:15px}.promise-card{text-align:left;background:#fff8f6d1;border:1px solid #e9cbd2;width:min(100%,425px);margin:37px auto 30px;padding:21px 28px}.promise-row{justify-content:space-between;align-items:center;gap:18px;display:flex}.promise-label{color:#c07a8d;letter-spacing:.14em;font-family:DM Mono,monospace;font-size:9px}.promise-row strong{color:#58343f;text-align:right;font-size:14px;font-weight:400}.promise-divider{background:#eedbde;height:1px;margin:17px 0}.promise-emoji{vertical-align:-2px;margin-right:7px;font-size:20px}.pickup-message{color:#815762;font-family:Playfair Display,Noto Serif KR,serif;font-size:22px;line-height:1.5}.pickup-message em{font-size:34px}.pickup-message span{color:#c85676;letter-spacing:3px;margin-left:5px;font-family:sans-serif;font-size:16px}.text-button{color:#a17d86;letter-spacing:.04em;background:0 0;margin-top:31px;padding:6px 0;font-family:DM Mono,monospace;font-size:10px}.footer-note{color:#b18f98;border-top:1px solid #9e4b6024;min-height:59px;padding:0 46px}.footer-note span:nth-child(2){color:#c85676;font-family:sans-serif;font-size:13px}@media (width<=820px){.date-page{padding:14px}.date-shell{min-height:calc(100svh - 28px)}.topbar{min-height:61px;padding:0 22px}.topbar-note{display:none}.progress{padding:22px 18px 4px}.progress-item>span{display:none}.progress-line{width:clamp(24px,8vw,55px);margin:0 8px}.content-card,.content-card--invite{min-height:0;padding:40px 28px 46px}.invite-layout,.selection-layout,.menu-layout{grid-template-columns:1fr;gap:44px}.portrait-wrap{width:min(70vw,270px)}.invite-copy,.selection-heading{text-align:center}.answer-actions{justify-content:center;margin:0 auto}.escape-hint{text-align:center}.selection-panel,.menu-panel{padding:25px}.menu-heading .selected-date{text-align:center}.menu-layout{gap:28px}.footer-note{min-height:51px;padding:0 22px;font-size:8px}}@media (width<=460px){.content-card,.content-card--invite{padding:34px 18px 38px}h1{font-size:48px}.intro-text{font-size:14px}.answer-actions{gap:7px;width:100%}.primary-button,.no-button{padding:0 16px;font-size:13px}.selection-panel,.menu-panel{padding:20px 16px}.menu-grid{gap:6px}.menu-option{min-height:112px;padding-inline:3px}.menu-emoji{font-size:24px}.menu-note{font-size:8px}.promise-card{padding-inline:18px}.promise-row strong{font-size:12px}.pickup-message{font-size:19px}.pickup-message em{font-size:29px}}
