:root{color:#3f3034;font-synthesis:none;background:#fff8f8;font-family:Inter,Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:20rem;min-height:100vh;margin:0}button,input{font:inherit}.login-shell{place-items:center;min-height:100vh;padding:1.25rem;display:grid}.login-card{background:#fff;border:1px solid #f2dce1;border-radius:1.5rem;width:min(100%,25rem);padding:2.25rem;box-shadow:0 1rem 3rem #6e3d491f}.login-card h1{font-size:clamp(2.3rem,12vw,3.6rem)}.login-card label{color:#6e3d49;gap:.45rem;margin-top:1rem;font-size:.875rem;font-weight:700;display:grid}.login-card input{color:#3f3034;background:snow;border:1px solid #dfbbc4;border-radius:.75rem;width:100%;padding:.8rem .9rem}.login-card input:focus{border-color:#b95169;outline:.15rem solid #b9516940}.login-button{cursor:pointer;color:#fff;background:#b95169;border:0;border-radius:999px;width:100%;margin-top:1.25rem;padding:.85rem 1.2rem;font-weight:700}.login-button:disabled{cursor:wait;opacity:.65}.secondary-button{cursor:pointer;color:#875563;background:#fff;border:1px solid #dfbbc4;border-radius:999px;width:100%;margin-top:.75rem;padding:.75rem 1.2rem}.page-shell{min-height:100vh;padding:4rem 1.25rem}.hero{text-align:center;width:min(100%,58rem);margin:0 auto 3rem}.session-bar{color:#875563;justify-content:flex-end;align-items:center;gap:.75rem;margin-bottom:2rem;font-size:.8rem;display:flex}.session-bar button{cursor:pointer;color:#875563;background:#f7e6ea;border:0;border-radius:999px;padding:.35rem .6rem}.eyebrow{color:#c7647b;letter-spacing:.16em;margin:0 0 .75rem;font-size:.75rem;font-weight:700}h1{color:#6e3d49;margin:0;font-size:clamp(2.4rem,8vw,5rem);line-height:1}.description{max-width:34rem;margin:1.25rem auto 1.75rem;font-size:1rem;line-height:1.7}.couple-dday{cursor:pointer;color:#875563;background:0 0;border:0;gap:.15rem;margin:1.25rem auto 0;display:grid}.couple-dday span,.couple-dday small{font-size:.75rem}.couple-dday strong{color:#c34f69;font-size:clamp(1.8rem,6vw,3rem);line-height:1}.started-on-form{justify-content:center;align-items:end;gap:.5rem;width:min(100%,22rem);margin:1.25rem auto 0;display:flex}.started-on-form label{color:#875563;text-align:left;gap:.35rem;font-size:.75rem;display:grid}.started-on-form input{color:#3f3034;background:#fff;border:1px solid #dfbbc4;border-radius:.65rem;padding:.55rem}.started-on-form button{cursor:pointer;color:#fff;background:#b95169;border:0;border-radius:999px;padding:.6rem .8rem}.started-on-form button[type=button]{color:#875563;background:#f7e6ea}.upload-button{cursor:pointer;color:#fff;background:#b95169;border-radius:999px;padding:.8rem 1.4rem;font-weight:700;display:inline-flex;box-shadow:0 .5rem 1.5rem #6e3d492e}.upload-button:hover{background:#a9435b}.upload-button.disabled{cursor:wait;opacity:.65}.upload-button input{clip:rect(0, 0, 0, 0);width:1px;height:1px;position:absolute;overflow:hidden}.status-message{color:#875563;min-height:1.5rem;margin:1rem 0 0}.feature-tabs{gap:.5rem;width:min(100%,68rem);margin:0 auto 1.25rem;padding-bottom:.25rem;display:flex;overflow-x:auto}.feature-tabs button{cursor:pointer;color:#875563;background:#fff;border:1px solid #dfbbc4;border-radius:999px;flex:none;padding:.55rem 1rem}.feature-tabs button.active{color:#fff;background:#b95169;border-color:#b95169}.calendar-layout{grid-template-columns:minmax(0,2fr) minmax(16rem,1fr);gap:1rem;width:min(100%,68rem);margin:0 auto;display:grid}.calendar-card,.event-panel{background:#fff;border:1px solid #f2dce1;border-radius:1rem;box-shadow:0 .5rem 2rem #6e3d4914}.calendar-card{padding:1rem}.calendar-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.calendar-header h2,.event-panel h2{color:#6e3d49;margin:0;font-size:1.15rem}.calendar-header button{cursor:pointer;color:#875563;background:#fff2f4;border:0;border-radius:50%;width:2.25rem;height:2.25rem;font-size:1.5rem}.weekday-row,.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.weekday-row span{color:#9a7d84;text-align:center;padding:.5rem;font-size:.75rem}.calendar-grid>button{cursor:pointer;color:#4f3b40;text-align:left;background:#fff;border:1px solid #f5e7ea;min-height:5.5rem;padding:.45rem}.calendar-grid>button.outside{color:#c9b7bb;background:#fffbfc}.calendar-grid>button.selected{outline-offset:-.15rem;background:#fff5f7;outline:.15rem solid #c7647b}.event-dots{gap:.2rem;margin-top:.5rem;display:flex}.event-dots i{background:#9a7d84;border-radius:50%;width:.4rem;height:.4rem}.event-dots i.anniversary{background:#d94f70}.event-panel{padding:1.25rem}.event-list{gap:.75rem;margin:1rem 0;display:grid}.event-list>p{color:#9a7d84;font-size:.875rem}.event-list article{background:#fff5f7;border-radius:.75rem;padding:.75rem}.event-list article>div{justify-content:space-between;gap:.5rem;display:flex}.event-list article p{color:#765b62;white-space:pre-wrap;margin:.4rem 0;font-size:.8rem}.event-list article button{cursor:pointer;color:#a9435b;background:0 0;border:0;padding:0;font-size:.75rem}.dday{color:#a9435b;white-space:nowrap;background:#f9dfe5;border-radius:999px;padding:.15rem .45rem;font-size:.7rem}.event-form{border-top:1px solid #f2dce1;gap:.65rem;padding-top:1rem;display:grid}.event-form input:not([type=checkbox]),.event-form textarea{color:#3f3034;resize:vertical;background:snow;border:1px solid #dfbbc4;border-radius:.65rem;width:100%;padding:.7rem}.event-form label{align-items:center;gap:.4rem;font-size:.8rem;display:flex}.event-form button{cursor:pointer;color:#fff;background:#b95169;border:0;border-radius:999px;padding:.7rem 1rem;font-weight:700}.dates-section{width:min(100%,68rem);margin:0 auto}.date-map-wrap{background:#f6edef;border:1px solid #f2dce1;border-radius:1rem;min-height:22rem;position:relative;overflow:hidden;box-shadow:0 .5rem 2rem #6e3d4914}.date-map{width:100%;height:22rem}.map-message{color:#875563;text-align:center;background:#fff8f8;place-items:center;margin:0;padding:1rem;display:grid;position:absolute;inset:0}.map-help{color:#9a7d84;text-align:center;margin:.55rem 0 1rem;font-size:.75rem}.dates-layout{grid-template-columns:minmax(17rem,.8fr) minmax(0,1.5fr);align-items:start;gap:1rem;display:grid}.date-record-form,.date-record-card{background:#fff;border:1px solid #f2dce1;border-radius:1rem;padding:1.25rem;box-shadow:0 .5rem 2rem #6e3d4914}.date-record-form{gap:.8rem;display:grid;position:sticky;top:1rem}.date-record-form h2,.date-record-card h2{color:#6e3d49;margin:0;font-size:1.1rem}.date-record-form>label{color:#765b62;gap:.35rem;font-size:.8rem;font-weight:700;display:grid}.date-record-form input,.date-record-form textarea{color:#3f3034;background:snow;border:1px solid #dfbbc4;border-radius:.65rem;width:100%;padding:.7rem}.date-record-form textarea{resize:vertical;min-height:6rem}.date-record-form>button{cursor:pointer;color:#fff;background:#b95169;border:0;border-radius:999px;padding:.75rem;font-weight:700}.photo-picker{border:1px solid #f2dce1;border-radius:.75rem;grid-template-columns:repeat(4,1fr);gap:.4rem;min-width:0;padding:.65rem;display:grid}.photo-picker legend{color:#765b62;font-size:.75rem}.photo-picker label{cursor:pointer;position:relative}.photo-picker input{z-index:1;width:auto;position:absolute;top:.25rem;left:.25rem}.photo-picker img{aspect-ratio:1;object-fit:cover;border-radius:.4rem;width:100%;display:block}.date-record-list{gap:1rem;display:grid}.date-record-heading{justify-content:space-between;align-items:start;gap:1rem;display:flex}.date-record-heading time{color:#c7647b;font-size:.75rem;font-weight:700}.date-record-heading button{cursor:pointer;color:#a9435b;background:0 0;border:0;font-size:.75rem}.date-record-heading>div:last-child,.place-search{gap:.4rem;display:flex}.place-search button{cursor:pointer;color:#fff;background:#875563;border:0;border-radius:.65rem;padding:0 .8rem}.place-results{gap:.35rem;max-height:15rem;display:grid;overflow-y:auto}.place-results button{cursor:pointer;color:#4f3b40;text-align:left;background:snow;border:1px solid #f2dce1;border-radius:.55rem;gap:.15rem;padding:.55rem;display:grid}.place-results span{color:#9a7d84;font-size:.7rem}.date-record-form>button.form-cancel{color:#875563;background:#f7e6ea}.event-actions{gap:.5rem;display:flex}.date-record-memo{white-space:pre-wrap;line-height:1.65}.date-record-photos{grid-template-columns:repeat(4,1fr);gap:.4rem;margin-top:.75rem;display:grid}.date-record-photos img{aspect-ratio:1;object-fit:cover;border-radius:.5rem;width:100%;display:block}.wishlist-layout{grid-template-columns:minmax(16rem,.75fr) minmax(0,1.25fr);align-items:start;gap:1rem;width:min(100%,58rem);margin:0 auto;display:grid}.wish-form,.settings-card form{background:#fff;border:1px solid #f2dce1;border-radius:1rem;gap:.7rem;padding:1.25rem;display:grid;box-shadow:0 .5rem 2rem #6e3d4914}.wish-form h2,.settings-card h2{color:#6e3d49;margin:0 0 .5rem}.wish-form input,.wish-form textarea,.settings-card input{color:#3f3034;background:snow;border:1px solid #dfbbc4;border-radius:.65rem;padding:.7rem}.wish-form textarea{resize:vertical;min-height:6rem}.wish-form>button,.settings-card form>button{cursor:pointer;color:#fff;background:#b95169;border:0;border-radius:999px;padding:.7rem;font-weight:700}.wish-list{gap:.65rem;display:grid}.wish-list article{background:#fff;border:1px solid #f2dce1;border-radius:.8rem;grid-template-columns:auto 1fr auto;align-items:start;gap:.7rem;padding:.9rem;display:grid}.wish-list article.completed{opacity:.6}.wish-list article.completed h3{text-decoration:line-through}.wish-list h3,.wish-list p{margin:0}.wish-list strong{color:#c7647b;margin:.2rem 0;font-size:.75rem;display:block}.wish-list button{cursor:pointer;color:#a9435b;background:0 0;border:0}.wish-check{font-size:1.3rem}.timeline{gap:1rem;width:min(100%,48rem);margin:0 auto;display:grid}.timeline article{background:#fff;border-left:.2rem solid #dfbbc4;border-radius:0 .8rem .8rem 0;grid-template-columns:7rem 1fr;gap:1rem;padding:.75rem .75rem .75rem 1rem;display:grid}.timeline img{aspect-ratio:1;object-fit:cover;border-radius:.65rem;width:7rem}.timeline time{color:#c7647b;font-size:.75rem;font-weight:700}.timeline h2{color:#6e3d49;margin:.2rem 0;font-size:1rem}.timeline p{white-space:pre-wrap;margin:.35rem 0 0}.settings-card{width:min(100%,28rem);margin:0 auto}.settings-card label{color:#765b62;gap:.35rem;font-size:.8rem;font-weight:700;display:grid}.gallery{grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:1rem;width:min(100%,68rem);margin:0 auto;display:grid}.empty-state{color:#9a7d84;text-align:center;background:#ffffff8c;border:1px dashed #dfbbc4;border-radius:1rem;grid-column:1/-1;padding:4rem 1rem}.photo-card{background:#fff;border:1px solid #f2dce1;border-radius:1rem;overflow:hidden;box-shadow:0 .5rem 2rem #6e3d4914}.photo-card>a{display:block}.photo-card img{aspect-ratio:1;object-fit:cover;background:#f4e9ec;width:100%;display:block}.photo-meta{align-items:center;gap:.75rem;padding:.8rem .9rem;display:flex}.photo-meta span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.875rem;overflow:hidden}.photo-meta button{cursor:pointer;color:#a9435b;background:0 0;border:0;padding:.3rem;font-size:.8rem}.photo-meta button:hover{text-decoration:underline}@media (width<=36rem){.page-shell{padding-top:2.5rem}.calendar-layout,.dates-layout,.wishlist-layout{grid-template-columns:1fr}.timeline article{grid-template-columns:5rem 1fr}.timeline img{width:5rem}.date-map-wrap,.date-map{height:17rem;min-height:17rem}.date-record-form{position:static}.calendar-card{padding:.5rem}.calendar-grid>button{min-height:3.8rem;padding:.3rem}.gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}}
