@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=DM+Sans:wght@400;500;700&family=Meow+Script&display=swap";:root{--bg:#f4eee6;--paper:#fbf8f1;--paper-texture:radial-gradient(circle at 20% 20%, #ffffffa6, transparent 28%), repeating-linear-gradient(0deg, #998a7a0b 0, #998a7a0b 1px, transparent 1px, transparent 6px), repeating-linear-gradient(90deg, #9b91830a 0, #9b91830a 1px, transparent 1px, transparent 7px);--ink:#5d5859;--ink-strong:#212433;--ink-soft:#6f73ba;--sans:"DM Sans", sans-serif;--serif:"Cormorant Garamond", serif;--script:"Meow Script", cursive;color:var(--ink);background:linear-gradient(180deg, #f6f0e8, #efe7dc), var(--paper-texture);font-family:var(--sans);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;line-height:1.5}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;margin:0}body:before{content:"";pointer-events:none;mix-blend-mode:screen;background:linear-gradient(#ffffff26,#0000 20% 80%,#ffffff1a),radial-gradient(circle at top,#ffffff2e,#0000 45%);position:fixed;inset:0}#root{min-height:100svh}h1,h2,h3,h4{color:var(--ink-strong);font-family:var(--serif);font-weight:600;line-height:1.02}p{margin:0}button,input,select,textarea{font:inherit}a{color:inherit}.eyebrow{letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft);margin:0;font-size:.82rem}.page{width:100%}.page-v1{--linen-repeat-size:420px auto;background-image:url(/image/bg.jpg);background-position:50%;background-repeat:repeat;background-size:var(--linen-repeat-size);min-height:100svh;padding:0}.linen-page{width:100%;max-width:760px;margin:0 auto;padding:0;transition:opacity .35s}.linen-page.is-covered{opacity:0;visibility:hidden;pointer-events:none}.linen-page.is-revealed{opacity:1;visibility:visible}.panel{background:linear-gradient(180deg, #fffbf5eb, #f6f0e9f2), var(--paper-texture);border:1px solid #b9b1a561;border-radius:1.2rem;margin-bottom:.75rem;padding:1.25rem .9rem;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffffb3,0 15px 35px #5f53441f}.page-v1 .panel,.page-v1 .cover-invite,.page-v1 .v1-framed-block,.page-v1 .wish-form-card,.page-v1 .map-card,.page-v1 .gift-card,.page-v1 .wish-card{background-image:url(/image/bg.jpg);background-position:50%;background-repeat:repeat;background-size:var(--linen-repeat-size)}.page-v1 .panel{box-shadow:none;border:none;border-radius:0}.linen-page>.panel:last-child{margin-bottom:0}.panel:before{content:"";pointer-events:none;border:1px solid #ffffffa6;border-radius:.95rem;position:absolute;inset:.65rem}.page-v1 .panel:before{display:none}.v1-full-image,.v1-ribbon{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none;pointer-events:none;width:100%;height:auto;display:block}.cover-image{object-fit:cover;border-radius:0;width:100%;min-height:100svh}.asset-loader{z-index:60;background-image:url(/image/bg.jpg);background-position:50%;background-repeat:repeat;background-size:var(--linen-repeat-size);justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.asset-loader-shell{text-align:center;background:linear-gradient(#fffbf5b8,#f6f0e99e);flex-direction:column;justify-content:center;align-items:center;width:min(100%,430px);min-height:calc(100svh - 2rem);padding:2rem 1.5rem;display:flex;box-shadow:0 22px 60px #352b231f}.asset-loader-kicker{letter-spacing:.14em;text-transform:uppercase;color:#7f736c;margin:0 0 .7rem;font-size:.82rem;font-weight:700}.asset-loader h1{font-family:var(--script);color:var(--ink-soft);margin:0;font-size:clamp(3rem,12vw,5.6rem);font-weight:400;line-height:.92}.asset-loader-line{background:linear-gradient(90deg,#7f736c00,#7f736ccc,#7f736c00);width:min(9rem,42vw);height:1px;margin-top:1rem;position:relative;overflow:hidden}.asset-loader-line:after{content:"";background:linear-gradient(90deg,#4251a500,#4251a5b3,#4251a500);width:35%;animation:1.25s ease-in-out infinite loaderSweep;position:absolute;inset:0 auto 0 -35%}@keyframes loaderSweep{0%{transform:translate(0)}to{transform:translate(390%)}}.cover-overlay{z-index:40;background-image:url(/image/bg.jpg);background-position:50%;background-repeat:repeat;background-size:var(--linen-repeat-size);opacity:1;justify-content:center;align-items:center;padding:.75rem;transition:transform .95s,opacity .95s;display:flex;position:fixed;inset:0;transform:translateY(0)}.cover-overlay.is-closing{opacity:0;pointer-events:none;transform:translateY(-100%)}.cover-overlay-shell{text-align:center;background-image:url(/image/bg.jpg);background-position:50%;background-repeat:repeat;background-size:var(--linen-repeat-size);border-radius:1.1rem;flex-direction:column;justify-content:center;width:min(100%,430px);min-height:calc(100svh - 1.5rem);display:flex;position:relative;overflow:hidden;box-shadow:0 22px 60px #352b2338}@supports (height:100dvh){.cover-image{min-height:100dvh}.cover-overlay-shell{min-height:calc(100dvh - 1.5rem)}}.v1-image-stack{flex-direction:column;display:flex}.overlap-soft{margin-top:-.3rem}.overlap-strong{margin-top:-.75rem}.v1-ribbon{max-width:15rem;margin:0 auto .35rem}.v1-framed-block{background:0 0;border-radius:0;padding:.5rem}.script-accent{font-family:var(--script);color:var(--ink-soft);margin:0 0 1rem;font-size:clamp(3rem,12vw,6rem);font-weight:400;line-height:.9}.cover-invite{bottom:3.35rem;left:50%;bottom:calc(3.35rem + constant(safe-area-inset-bottom));bottom:calc(3.35rem + env(safe-area-inset-bottom,0px));z-index:2;pointer-events:auto;text-shadow:0 2px 10px #ffffffb3;width:calc(100% - 2rem);max-width:24rem;padding:0;position:absolute;transform:translate(-50%)}.invite-label{color:var(--ink-strong);margin:0;font-size:1.2rem;font-weight:700}.invite-name-label{letter-spacing:.04em;text-transform:uppercase;color:#6d6663;margin:.35rem 0 0;font-size:.88rem;font-weight:700}.invite-name{color:var(--ink-strong);margin:.3rem 0 1.25rem;font-size:clamp(1.65rem,5.3vw,2.6rem);font-weight:700;line-height:1.15}.pill-button,.chip,.gift-account button{cursor:pointer;font:inherit;border:none}.pill-button{color:#7e6860;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:#ffffffe0;border:2px solid #706760c7;border-radius:999px;justify-content:center;align-items:center;gap:.5rem;min-height:44px;padding:.68rem 1.15rem;font-size:.95rem;font-weight:700;line-height:1.1;display:inline-flex;box-shadow:0 14px 24px #483e3629}.pill-button-icon{width:1rem;height:1rem;display:inline-flex}.pill-button-icon svg{fill:currentColor;width:100%;height:100%}.countdown-card,.map-card,.wish-form-card,.wish-card,.gift-card{background:#ffffff8a;border-radius:1.5rem;box-shadow:inset 0 2px 10px #655f5717}.countdown-card-v1{box-shadow:none;background:0 0;margin-top:1rem;padding:.2rem 0}.countdown-grid{border-top:1px dashed #84736761;border-bottom:1px dashed #84736761;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;width:min(100%,560px);margin:0 auto;padding:.4rem 0;display:grid}.count-cell{min-width:0;box-shadow:none;text-align:center;background:0 0;border-radius:0;padding:.4rem .2rem;position:relative}.count-cell:not(:last-child):after{content:"";background:linear-gradient(#91807500,#9180757a,#91807500);width:1px;height:64%;position:absolute;top:18%;right:0}.count-cell strong{color:#4251a5;letter-spacing:.08em;font-family:Courier Prime,monospace;font-size:clamp(1.12rem,4.9vw,1.48rem);line-height:1;display:block}.count-cell span{color:#4251a5;text-transform:uppercase;letter-spacing:.14em;margin-top:.18rem;font-family:Courier Prime,monospace;font-size:.58rem;display:block}.detail-panel,.map-panel,.wishes-panel,.gift-panel,.thankyou-panel,.gallery-panel{text-align:center}.map-card{width:min(100%,560px);margin:0 auto;padding:1.8rem}.map-card h3,.gift-copy h3{color:var(--ink-soft);margin-top:0;font-size:clamp(1.8rem,5vw,2.5rem)}.map-card p,.gift-copy p,.wish-card p,.wish-card span{color:var(--ink-soft)}.map-frame{border:0;border-radius:1.2rem;width:100%;height:clamp(260px,48vw,390px);margin-top:1.4rem;display:block;position:relative;box-shadow:0 18px 34px #5f534429,inset 0 0 0 1px #ffffffb8}.scrap-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:1rem;display:grid}.scrap-card{transform:rotate(var(--scrap-rotate,0deg));background:#ffffffe0;padding:.8rem .8rem 1rem;box-shadow:0 10px 25px #57504926}.scrap-card:first-child{--scrap-rotate:-2deg}.scrap-card:nth-child(2){--scrap-rotate:2deg}.scrap-card:nth-child(3){--scrap-rotate:-1deg}.scrap-card:nth-child(4){--scrap-rotate:3deg}.scrap-card figcaption{text-align:right;font-family:var(--script);color:#7d729f;margin-top:.75rem}.photo-fill{background:linear-gradient(160deg,#5f698f1a,#33364840),radial-gradient(circle at 30% 20%,#fffffff2,#0000 40%),linear-gradient(135deg,#e8eaef,#babdc5);border-radius:.2rem}.photo-fill.square{aspect-ratio:1}.photo-fill.tall{aspect-ratio:4/5}.photo-fill.wide{aspect-ratio:5/3}.wish-form-card{width:min(100%,560px);margin:0 auto;padding:.82rem}.wishes-panel .wish-form-card label,.wishes-panel .wish-form-card input,.wishes-panel .wish-form-card select,.wishes-panel .wish-form-card textarea,.wishes-panel .rsvp-message,.wishes-panel .attendance-summary span,.wishes-panel .attendance-stats p,.wishes-panel .wish-card h4,.wishes-panel .wish-card p,.wishes-panel .wish-card span,.wishes-panel .chip{font-family:Courier Prime,monospace}.wish-form-card label{text-align:left;color:#68605f;letter-spacing:.02em;margin-bottom:.55rem;font-size:.88rem;font-weight:700;display:block}.wish-form-card input,.wish-form-card select,.wish-form-card textarea{box-sizing:border-box;width:100%;font:inherit;background:#fffffff0;border:none;border-radius:1rem;outline:none;margin-top:.32rem;padding:.68rem .8rem;box-shadow:inset 0 1px 12px #55504c1f}.wish-form-card textarea{resize:vertical}.wish-actions{flex-wrap:wrap;justify-content:flex-end;gap:.42rem;display:flex}.chip{color:#25646d;background:0 0;border:2px solid #25646d;border-radius:999px;padding:.5rem .88rem;font-size:.84rem;font-weight:700}.chip.warning{color:#e2b21d;border-color:#e2b21d}.chip.submit{color:#1e5d64;border-color:#1e5d64;margin-left:auto}.chip:disabled,.admin-primary:disabled,.admin-secondary:disabled,.admin-danger:disabled{cursor:not-allowed;opacity:.58}.rsvp-message{text-align:left;letter-spacing:.015em;border-radius:1rem;margin:.5rem 0 0;padding:.5rem .68rem;font-size:.82rem;font-weight:700}.rsvp-message.error{color:#ad443c;background:#fff1efeb}.rsvp-message.success{color:#2d7c4b;background:#eff8f1eb}.attendance-summary{align-items:center;gap:.7rem;width:min(100%,420px);margin:.9rem auto .5rem;display:flex}.attendance-summary:before,.attendance-summary:after{content:"";background:#10494eb3;flex:1;height:2px}.attendance-summary span{color:#fff;letter-spacing:.03em;background:#05373a;border-radius:999px;padding:.36rem 1.1rem;font-size:.84rem;font-weight:700;display:inline-block}.attendance-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;width:min(100%,560px);margin:.7rem auto;display:grid}.attendance-stats div{background:#ffffff8a;border-radius:.82rem;min-width:0;padding:.52rem .28rem;box-shadow:inset 0 1px 9px #55504c1a}.attendance-stats strong{color:#777275;letter-spacing:.06em;font-family:Courier Prime,monospace;font-size:clamp(1.38rem,6vw,2rem);font-weight:700;line-height:1;display:block}.attendance-stats p{letter-spacing:.05em;margin:.15rem 0 0;font-family:Courier Prime,monospace;font-size:.72rem;font-weight:400;line-height:1.15}.attendance-stat-attending strong,.attendance-stat-attending p{color:#6171a8}.attendance-stat-declined strong,.attendance-stat-declined p{color:#a86a70}.attendance-stat-maybe strong,.attendance-stat-maybe p{color:#8b8582}.wish-list{overscroll-behavior:contain;gap:.55rem;width:min(100%,560px);max-height:24rem;margin:0 auto;padding:.15rem .25rem .25rem;display:grid;overflow-y:auto}.wish-card{text-align:left;padding:.72rem}.wish-card-head{justify-content:space-between;align-items:flex-start;gap:.65rem;display:flex}.wish-card h4,.gift-card h4{color:#636161;flex:auto;margin:0;font-size:.92rem}.wish-card .wish-status{letter-spacing:.08em;white-space:nowrap;text-transform:none;opacity:.92;border:2px solid;border-radius:.2rem;flex:none;padding:.2rem .5rem .16rem;font-size:.66rem;font-weight:700;line-height:1.1;display:inline-block;transform:rotate(-5deg);box-shadow:inset 0 0 0 1px #ffffff59}.wish-status-attending{color:#6171a8;background:#6171a812}.wish-status-declined{color:#a86a70;background:#a86a7012}.wish-status-maybe{color:#8b8582;background:#8b858214}.wish-card p{letter-spacing:.01em;color:#4251a5;text-shadow:0 1px #ffffff2e;margin:.45rem 0 0;font-size:.84rem;font-weight:700;line-height:1.24}.gift-copy{width:min(100%,560px);margin:0 auto 1.5rem}.gift-list{gap:1rem;display:grid}.gift-card{padding:1.4rem}.gift-account{background:#ffffffeb;border-radius:999px;justify-content:space-between;align-items:center;gap:1rem;padding:.7rem .8rem .7rem 1rem;display:flex}.gift-account span{color:#625f66;font-size:1.2rem;font-weight:700}.gift-account button{color:#9c7d16;background:#fff5d3;border-radius:999px;padding:.7rem 1rem}.floating-rail{z-index:90;gap:.42rem;display:grid;position:fixed;top:50%;right:.62rem;transform:translateY(-50%)}.floating-rail button{color:#6f6a68;-webkit-backdrop-filter:blur(6px);touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:#ffffffb8;border:none;border-radius:.72rem;min-width:2.35rem;min-height:2.35rem;padding:.48rem .42rem;font-size:.92rem;font-weight:700;line-height:1;box-shadow:0 10px 20px #59544d1a}.floating-rail i{margin:0 auto;font-size:.88rem;line-height:1;display:block}.invitation-footer,.admin-footer{text-align:center;color:#7b716d;padding:1.1rem 0 .35rem;font-size:.88rem}.invitation-footer p,.admin-footer p{margin:0}.invitation-footer i,.admin-footer i{color:#c56f78}.admin-page{background:linear-gradient(180deg, #f6f0e8f5, #efe7dcfa), var(--paper-texture);min-height:100svh;padding:1rem}.admin-shell{width:100%;max-width:980px;margin:0 auto}.admin-card,.admin-summary-card,.admin-form,.admin-guest-card{background:#ffffffdb;border:1px solid #9c91843d;box-shadow:0 18px 38px #50463b14}.admin-card{border-radius:1.6rem;padding:1.3rem}.admin-kicker{letter-spacing:.16em;text-transform:uppercase;color:#7f7aa7;margin:0 0 .35rem;font-size:.78rem;font-weight:700}.admin-subtitle,.admin-muted{color:#736d6a}.admin-alert{border-radius:1rem;margin-top:1rem;padding:.85rem 1rem;font-weight:700}.admin-alert.error{color:#ad443c;background:#fff1ef}.admin-alert.success{color:#2d7c4b;background:#eff8f1}.admin-form{border-radius:1.25rem;gap:.95rem;margin-top:1.2rem;padding:1.15rem;display:grid}.admin-form h2,.admin-list h2{margin:0}.admin-form label{color:#5f5856;gap:.45rem;font-weight:700;display:grid}.admin-form input,.admin-form textarea{background:#ffffffeb;border:1px solid #877f792e;border-radius:1rem;width:100%;padding:.85rem .95rem}.admin-primary,.admin-secondary,.admin-danger,.admin-whatsapp{cursor:pointer;border:none;border-radius:999px;font-weight:700}.admin-primary{color:#fff;background:#314f76;padding:.85rem 1.1rem}.admin-secondary{color:#314f76;background:#314f761a;padding:.72rem 1rem}.admin-danger{color:#ad443c;background:#ad443c1a;padding:.72rem 1rem}.admin-whatsapp{color:#138a46;background:#25d36624;justify-content:center;align-items:center;gap:.5rem;padding:.72rem 1rem;display:inline-flex}.admin-dashboard{margin-top:1.25rem}.admin-toolbar,.admin-summary-grid,.admin-guest-card,.admin-list-header{gap:1rem;display:flex}.admin-toolbar,.admin-list-header{justify-content:space-between;align-items:center}.admin-summary-grid{flex-wrap:wrap;margin-top:1rem}.admin-summary-card{border-radius:1.2rem;flex:220px;padding:1rem 1.1rem}.admin-list{margin-top:1.2rem}.admin-guest-card{border-radius:1.2rem;justify-content:space-between;align-items:flex-start;margin-top:.9rem;padding:1rem 1.1rem}.admin-guest-card.is-deleted{opacity:.68;background:#f4eee8d1}.admin-inline-actions{flex-wrap:wrap;justify-content:flex-end;gap:.55rem;display:flex}.admin-toolbar-actions{align-items:center}.admin-link-button{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.admin-guest-card a{color:#314f76;word-break:break-all;margin-top:.5rem;display:inline-block}@media (width<=860px){.panel{padding:1.5rem 1rem}.cover-overlay-shell{border-radius:1rem;width:min(100%,430px);min-height:calc(100svh - 1.1rem)}.scrap-grid{grid-template-columns:1fr 1fr}}@media (width>=861px){.page-v1{padding:1.25rem 0 0}.linen-page{padding:0 .9rem}.panel{border-radius:2rem;margin-bottom:1.2rem;padding:2rem 1.35rem}.floating-rail{right:.9rem}.floating-rail button{padding:.56rem .48rem}}@media (width<=560px){.page-v1{--linen-repeat-size:320px auto}.scrap-grid{grid-template-columns:1fr}.countdown-card-v1{padding:.1rem 0}.countdown-grid{gap:0;padding:.32rem 0}.count-cell{padding:.32rem .08rem}.count-cell span{font-size:.54rem}.wish-list{max-height:21rem}.wish-card .wish-status{letter-spacing:.05em;border-width:1.5px;padding:.16rem .36rem .13rem;font-size:.56rem}.map-card{padding:1rem}.map-frame{border-radius:.95rem;height:260px;margin-top:.85rem}.admin-page{padding:.8rem}.admin-card,.admin-form{padding:1rem}.admin-toolbar,.admin-guest-card,.admin-inline-actions{flex-direction:column}.admin-toolbar-actions{align-items:stretch}.admin-inline-actions{align-items:stretch;width:100%}.admin-whatsapp,.admin-danger,.admin-secondary{width:100%}.cover-invite{width:calc(100% - 1.5rem);bottom:3.9rem;bottom:calc(3.9rem + constant(safe-area-inset-bottom));bottom:calc(3.9rem + env(safe-area-inset-bottom,0px));position:absolute}.invite-label{font-size:1rem}.invite-name-label{font-size:.72rem}.invite-name{margin-bottom:.75rem;font-size:clamp(1.25rem,5vw,1.85rem)}.pill-button{padding:.58rem 1rem;font-size:.88rem}.floating-rail{gap:.45rem;right:.55rem}.floating-rail button{border-radius:.72rem;min-width:2.35rem;padding:.6rem .48rem;font-size:.92rem}.attendance-summary{width:100%;margin-top:.8rem}.wish-form-card{padding:.68rem}.wish-form-card label{margin-bottom:.45rem;font-size:.82rem}.wish-form-card input,.wish-form-card select,.wish-form-card textarea{border-radius:.88rem;margin-top:.24rem;padding:.58rem .72rem;font-size:.84rem}.attendance-stats{gap:.32rem;margin:.55rem auto .65rem}.attendance-stats div{border-radius:.68rem;padding:.4rem .18rem}.attendance-stats p{font-size:.62rem}.wish-list{gap:.42rem;max-height:14rem}.wish-card{padding:.58rem}.v1-ribbon{max-width:13rem}}
