*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:#3f352b;background:#efe3d2;margin:0;font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Noto Sans KR,Segoe UI,sans-serif}.page{background:#f8f1e7;width:100%;max-width:430px;min-height:100vh;margin:0 auto;overflow:hidden;box-shadow:0 0 35px #3f352b2e}.section{text-align:center;padding:64px 24px}.section-kicker{color:#9b7a5e;letter-spacing:.18em;text-transform:uppercase;margin:0 0 10px;font-family:Georgia,Times New Roman,serif;font-size:13px}.section h2{color:#3f352b;margin:0 0 28px;font-family:Georgia,Times New Roman,serif;font-size:27px;font-weight:500;line-height:1.35}.image-frame{background:#eadcc8;width:100%;overflow:hidden}.image-frame img{object-fit:cover;width:100%;height:100%;display:block}.image-placeholder{color:#9b7a5e;background:linear-gradient(135deg,#ffffff59,#fff0),#eadcc8;border:1px dashed #d9c5ad;justify-content:center;align-items:center;display:flex}.image-placeholder span{font-size:14px}.hero-section{text-align:center;padding:28px 20px 52px;position:relative}.hero-top-text{color:#8a6a4f;letter-spacing:.22em;text-transform:uppercase;margin-bottom:18px;font-family:Georgia,Times New Roman,serif;font-size:15px}.hero-image{border-radius:210px 210px 24px 24px;height:520px}.hero-card{z-index:1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffdf8eb;border-radius:28px;width:calc(100% - 24px);margin:-82px auto 0;padding:28px 18px;position:relative;box-shadow:0 18px 45px #3f352b24}.small-label{color:#9b7a5e;letter-spacing:.12em;margin:0 0 10px;font-size:13px}.hero-card h1{margin:0;font-family:Georgia,Times New Roman,serif;font-size:31px;font-weight:500}.hero-card h1 span{color:#b29275}.hero-family-text{margin:18px 0 22px;font-size:15px;line-height:1.8}.hero-date{border-top:1px solid #eadcc8;flex-direction:column;gap:6px;padding-top:18px;display:flex}.hero-date strong{font-family:Georgia,Times New Roman,serif;font-size:19px;font-weight:500}.hero-date span{color:#8a6a4f;font-size:15px}.invitation-section{background:#fffdf8}.invitation-text{color:#5c4c3d;font-size:16px;line-height:2}.invitation-text p{margin:0 0 26px}.family-image{border-radius:28px;height:360px;margin-bottom:28px}.family-names{background:#fffdf8;border-radius:24px;padding:22px 18px;font-size:17px;line-height:1.9}.family-names p{margin:0 0 6px}.family-names p:last-child{margin-bottom:0}.family-names span{color:#8a6a4f}.children-box{border:1px solid #e6d8c7;border-radius:22px;margin-top:18px;padding:20px}.children-box p{color:#8a6a4f;margin:0;font-size:15px}.children-box strong{margin:8px 0;font-size:15px;font-weight:600;display:block}.wedding-info-section{background:#fffdf8}.wedding-day-slider{touch-action:pan-y;width:100%;margin-bottom:12px;position:relative;overflow:hidden}.wedding-day-track{will-change:transform;align-items:center;transition:transform .42s cubic-bezier(.22,.61,.36,1);display:flex}.wedding-day-slide{opacity:.38;flex:0 0 100%;transition:opacity .42s,transform .42s;transform:scale(.93)}.wedding-day-slide.is-active{opacity:1;transform:scale(1)}.wedding-day-slide-inner{width:86%;margin:0 auto}.wedding-day-slide-image{background:#f1e7d9;border-radius:26px;height:310px;box-shadow:0 12px 28px #3f352b1f}.wedding-day-photo-status{text-align:center;margin-top:12px}.wedding-day-photo-status span{color:#8a6a4f;background:#f8f1e7eb;border-radius:999px;justify-content:center;align-items:center;min-width:50px;height:26px;padding:0 11px;font-family:Georgia,Times New Roman,serif;font-size:13px;display:inline-flex;box-shadow:0 8px 18px #3f352b14}.wedding-day-photo-dots{justify-content:center;align-items:center;gap:7px;margin-top:11px;margin-bottom:22px;display:flex}.wedding-day-photo-dots button{opacity:.75;cursor:pointer;background:#d9c5ad;border:0;border-radius:999px;width:7px;height:7px;padding:0}.wedding-day-photo-dots button.is-active{opacity:1;background:#9b7a5e;width:22px}.info-card{background:#f8f1e7;border-radius:26px;padding:10px 20px}.info-row{text-align:left;border-bottom:1px solid #e6d8c7;justify-content:space-between;align-items:flex-start;gap:18px;padding:18px 0;display:flex}.info-row:last-child{border-bottom:0}.info-row span{color:#9b7a5e;min-width:44px;font-size:14px}.info-row strong{text-align:right;flex:1;font-size:15px;font-weight:500;line-height:1.5}.party-grid{gap:16px;display:grid}.soft-card{text-align:left;background:#fffdf8;border-radius:28px;padding:26px 20px;box-shadow:0 10px 25px #3f352b14}.card-number{color:#8a6a4f;background:#f0dfcb;border-radius:999px;justify-content:center;align-items:center;width:38px;height:38px;margin-bottom:14px;font-family:Georgia,Times New Roman,serif;display:inline-flex}.soft-card h3{margin:0 0 12px;font-size:21px}.soft-card p{color:#5c4c3d;margin:0 0 14px;line-height:1.75}.soft-card .card-detail{color:#8a6a4f;margin-bottom:0;font-size:14px}.rsvp-section{background:#fffdf8}.rsvp-guide{color:#5c4c3d;margin-bottom:28px;font-size:15px;line-height:1.85}.rsvp-guide p{margin:0 0 16px}.rsvp-form{text-align:left;gap:16px;display:grid}.rsvp-form label{color:#6a5542;gap:8px;font-size:14px;display:grid}.rsvp-form input,.rsvp-form textarea{color:#3f352b;width:100%;font:inherit;background:#fffdf8;border:1px solid #e6d8c7;border-radius:16px;outline:none;padding:14px 15px}.rsvp-form input:focus,.rsvp-form textarea:focus{border-color:#9b7a5e}.rsvp-form textarea{resize:vertical;min-height:92px}.rsvp-form label.is-disabled-field{color:#b8aca1}.rsvp-form input:disabled,.rsvp-form textarea:disabled{color:#aaa097;cursor:not-allowed;background:#eee9e2;border-color:#e2d8cc}.rsvp-form textarea:disabled::placeholder{color:#b8aca1}.radio-group{gap:10px;display:grid}.radio-group p{color:#6a5542;margin:0;font-size:14px}.radio-card{background:#f8f1e7;border:1px solid #e6d8c7;border-radius:16px;flex-direction:row;grid-template-columns:auto 1fr;align-items:center;padding:14px;gap:10px!important;display:flex!important}.radio-card input{width:auto}.privacy-check{background:#f8f1e7;border-radius:16px;flex-direction:row;align-items:flex-start;padding:14px;line-height:1.55;gap:10px!important;display:flex!important}.privacy-check input{width:auto;margin-top:3px}.primary-button{color:#fff;width:100%;font:inherit;cursor:pointer;background:#9b7a5e;border:0;border-radius:999px;padding:16px 20px;font-weight:600}.submit-complete{background:#f8f1e7;border-radius:24px;padding:28px 20px}.submit-complete h3{margin:0 0 8px}.submit-complete p{color:#8a6a4f;margin:0 0 18px}.submit-complete button{color:#6a5542;font:inherit;background:#fffdf8;border:1px solid #d9c5ad;border-radius:999px;padding:12px 18px}.gallery-slider{touch-action:pan-y;width:calc(100% + 36px);margin-left:-18px;margin-right:-18px;position:relative;overflow:hidden}.gallery-track{will-change:transform;align-items:center;transition:transform .42s cubic-bezier(.22,.61,.36,1);display:flex}.gallery-slide{opacity:.38;flex:0 0 100%;transition:opacity .42s,transform .42s;transform:scale(.93)}.gallery-slide.is-active{opacity:1;transform:scale(1)}.gallery-slide-inner{width:86%;margin:0 auto}.gallery-slide-image{background:#f1e7d9;border-radius:28px;height:460px;box-shadow:0 16px 35px #3f352b24}.gallery-status{text-align:center;margin-top:18px}.gallery-status span{color:#8a6a4f;background:#fffdf8db;border-radius:999px;justify-content:center;align-items:center;min-width:54px;height:28px;padding:0 12px;font-family:Georgia,Times New Roman,serif;font-size:14px;display:inline-flex;box-shadow:0 8px 18px #3f352b14}.gallery-dots{justify-content:center;align-items:center;gap:7px;margin-top:13px;display:flex}.gallery-dots button{opacity:.75;cursor:pointer;background:#d9c5ad;border:0;border-radius:999px;width:7px;height:7px;padding:0}.gallery-dots button.is-active{opacity:1;background:#9b7a5e;width:22px}.location-section{background:#fffdf8}.location-card{text-align:left;background:#f8f1e7;border-radius:26px;padding:26px 20px}.location-card h3{margin:0 0 18px;font-size:22px}.location-card p{margin:0 0 12px;line-height:1.6}.location-card p span{color:#9b7a5e;margin-bottom:3px;font-size:13px;display:block}.button-row{grid-template-columns:1fr;gap:10px;margin-top:20px;display:grid}.button-row a,.button-row button{color:#5c4c3d;font:inherit;text-align:center;cursor:pointer;background:#fffdf8;border:1px solid #d9c5ad;border-radius:999px;padding:13px 14px;text-decoration:none;display:block}.account-guide{color:#6a5542;margin:-10px 0 24px;line-height:1.7}.accordion{gap:12px;display:grid}.accordion>button,.accordion-toggle{color:#3f352b;width:100%;font:inherit;text-align:left;cursor:pointer;background:#fffdf8;border:0;border-radius:18px;justify-content:space-between;align-items:center;gap:12px;padding:17px 18px;font-weight:600;display:flex;box-shadow:0 8px 22px #3f352b14}.accordion-arrow{color:#9b7a5e;flex:none;font-size:12px;line-height:1}.accordion-panel{gap:10px;padding:6px 0 12px;display:grid}.account-item{text-align:left;background:#fffdf8;border-radius:18px;justify-content:space-between;align-items:center;gap:12px;padding:16px;display:flex}.account-item strong{margin-bottom:4px;display:block}.account-item p{color:#8a6a4f;margin:0;font-size:14px;line-height:1.5}.account-item button{color:#5c4c3d;background:#f8f1e7;border:1px solid #d9c5ad;border-radius:999px;flex:none;padding:8px 12px}.share-section{background:#fffdf8}.share-section p{color:#6a5542;line-height:1.7}.footer-section{color:#fffdf8;text-align:center;background:#8a6a4f;padding:54px 24px 64px}.footer-section p{margin:0 0 12px;font-family:Georgia,Times New Roman,serif;font-size:22px}.footer-section strong{font-size:15px;font-weight:500}@media (width<=360px){.section{padding-left:18px;padding-right:18px}.hero-card h1{font-size:27px}.hero-image{height:470px}}.admin-page{color:#3f352b;background:#efe3d2;width:100%;min-height:100vh;padding:24px 14px}.admin-card{background:#fffdf8;border-radius:28px;width:100%;max-width:860px;margin:0 auto;padding:28px 20px;box-shadow:0 18px 45px #3f352b24}.admin-card h1{margin:0 0 24px;font-size:26px;font-weight:700}.admin-login-form{gap:14px;display:grid}.admin-login-form label{color:#6a5542;gap:8px;font-size:14px;display:grid}.admin-login-form input{color:#3f352b;width:100%;font:inherit;background:#fffdf8;border:1px solid #e6d8c7;border-radius:16px;outline:none;padding:14px 15px}.admin-summary-grid{grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px;display:grid}.admin-summary-grid div{text-align:center;background:#f8f1e7;border-radius:18px;padding:16px 12px}.admin-summary-grid span{color:#8a6a4f;margin-bottom:6px;font-size:13px;display:block}.admin-summary-grid strong{font-size:24px}.admin-actions{flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.admin-actions button{color:#5c4c3d;font:inherit;cursor:pointer;background:#fffdf8;border:1px solid #d9c5ad;border-radius:999px;padding:10px 14px}.admin-list{gap:12px;display:grid}.admin-empty{color:#8a6a4f;text-align:center;background:#f8f1e7;border-radius:18px;padding:24px}.admin-rsvp-item{background:#f8f1e7;border-radius:20px;padding:18px}.admin-rsvp-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.admin-rsvp-head strong{font-size:17px}.admin-rsvp-head span{border-radius:999px;flex:none;padding:6px 10px;font-size:12px;font-weight:700}.admin-rsvp-head span.is-attend{color:#4c7a3f;background:#e4f3df}.admin-rsvp-head span.is-decline{color:#9a5b48;background:#f3e5df}.admin-rsvp-item dl{gap:8px;margin:0;display:grid}.admin-rsvp-item dl div{grid-template-columns:82px 1fr;gap:10px;display:grid}.admin-rsvp-item dt{color:#8a6a4f;font-size:13px}.admin-rsvp-item dd{color:#3f352b;margin:0;font-size:14px;line-height:1.5}.admin-delete-button{color:#9a5b48;font:inherit;cursor:pointer;background:#fffdf8;border:1px solid #d9c5ad;border-radius:999px;margin-top:14px;padding:9px 13px}.primary-button:disabled{opacity:.6;cursor:not-allowed}@media (width<=640px){.admin-summary-grid{grid-template-columns:repeat(2,1fr)}.admin-rsvp-item dl div{grid-template-columns:72px 1fr}}
