@font-face{font-family:PaperSerif;src:url('assets/fonts/cormorant-400.ttf');font-weight:400;font-display:swap}@font-face{font-family:PaperSerif;src:url('assets/fonts/cormorant-600.ttf');font-weight:600;font-display:swap}@font-face{font-family:PaperScript;src:url('assets/fonts/great-vibes.ttf');font-display:swap}
:root{--cream:#f4edde;--paper:#fbf6e9;--sage:#a8b39b;--sage-dark:#687b65;--pink:#dfbbb0;--terra:#b88067;--ink:#495447;--muted:#7b816e;--line:#c7cbb3;--shadow:rgba(79,72,49,.15)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:64px}body{margin:0;background:var(--cream);color:var(--ink);font:18px/1.7 PaperSerif,Georgia,serif;overflow-x:hidden}body:before{content:'';position:fixed;inset:0;pointer-events:none;z-index:20;opacity:.09;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' opacity='.34' filter='url(%23n)'/%3E%3C/svg%3E")}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button,a,input,textarea{outline-offset:5px}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--sage-dark)}[hidden]{display:none!important}button{cursor:pointer}a{color:inherit}p,h1,h2,h3,h4{margin:0}button:disabled{opacity:.5}main,.hero{max-width:460px;margin:auto}.prototype-badge{position:fixed;z-index:80;top:12px;left:50%;transform:translateX(-50%);width:max-content;max-width:94vw;border-radius:20px;padding:5px 13px;background:#f9f3e8ed;border:1px solid #c6c9b3;box-shadow:0 2px 8px #605b4312;font:600 9px/1.5 Arial,sans-serif;letter-spacing:1.2px;color:#68755d}.prototype-badge span{font-weight:400;letter-spacing:.1px;text-transform:none;font-size:9px}.hero{min-height:100svh;padding:62px 19px 72px;text-align:center;position:relative}.eyebrow,.chapter{font-size:11px;letter-spacing:3.3px;color:var(--sage-dark)}.hero h1{font:400 38px/1.25 PaperScript,cursive;margin:8px 0 14px}.hero h1 span{font:400 25px PaperSerif,serif}.opening-art{width:100%;height:clamp(340px,49svh,500px);max-height:500px;perspective:900px;transform:rotateY(var(--ry,0deg)) rotateX(var(--rx,0deg));transition:transform .3s}.opening-art>svg{width:100%;height:100%;display:block;filter:drop-shadow(0 10px 14px #75664d1c);overflow:visible}.heart-layer{transform-box:fill-box;transform-origin:center;transition:transform 1.4s cubic-bezier(.2,.8,.2,1),opacity 1.4s}.heart-middle{transition-delay:.14s}.heart-inner{transition-delay:.3s}.is-opening .heart-outer{transform:scale(1.7) translateY(-16px);opacity:0}.is-opening .heart-middle{transform:scale(1.55) translateY(-12px);opacity:0}.is-opening .heart-inner{transform:scale(1.4) translateY(-8px);opacity:0}.tree{transform-origin:85% 50%;animation:paper-breeze 7s ease-in-out infinite}.left-leaves{transform-origin:12% 75%;animation:paper-breeze 8s ease-in-out -2s infinite}.art-hourglass{animation:hourglass-glow 5s ease-in-out infinite}.hero-letter{position:relative;margin-top:14px}.hero-quote{font-size:34px;line-height:1.12;letter-spacing:-.5px}.hero-quote em{font-weight:400;font-style:italic;color:#826c5b}.hero-guest{overflow-wrap:anywhere;font-size:14px;margin:14px 0 0;color:var(--sage-dark)}.hero-guest strong{font-weight:600}.paper-button{display:inline-flex;align-items:center;justify-content:center;gap:22px;min-height:46px;padding:10px 23px;border:1px solid #829577;border-radius:4px 16px 4px 16px;background:#aab79b;color:#334b36;text-decoration:none;box-shadow:2px 3px 0 #839473,4px 6px 12px #56654818;font-size:16px;line-height:1.5;transition:transform .2s,box-shadow .2s}.paper-button:hover{transform:translateY(-2px);box-shadow:2px 5px 0 #839473,4px 8px 12px #56654818}.paper-button span{font-size:23px;line-height:1}.hero .paper-button{margin-top:19px}.hero-letter>small{display:block;font-size:11px;letter-spacing:1.4px;margin-top:17px;color:var(--muted)}section{scroll-margin-top:64px}.story-section,.event-section,.rsvp-section,.wishes-section{padding:50px 23px 35px;position:relative}.section-heading{text-align:center;margin-bottom:30px}.section-heading h2{font-size:34px;font-weight:400;line-height:1.2;margin:15px 0}.section-heading h2 em{font-weight:400;color:#887564}.section-heading p{font-size:16px;line-height:1.75;color:#7a806e}.section-heading .chapter{font-size:10px}.language-bar{display:flex;align-items:center;justify-content:space-between;margin:0 0 14px;gap:8px}.flip-button{display:flex;align-items:center;gap:8px;padding:5px 9px;border:none;background:none;color:var(--ink);font-size:14px}.flip-button b{font-weight:400;font-size:23px}.flip-button img{width:23px;height:34px;transition:transform 1s cubic-bezier(.3,.1,.2,1)}.flip-button img.turned{transform:rotate(180deg)}#languageStatus{font-size:11px;letter-spacing:1px;color:var(--sage-dark)}.flip-perspective{perspective:1500px}.invitation-card{display:block;transform-style:preserve-3d;transition:transform 1.15s cubic-bezier(.3,.1,.2,1),height .6s ease;position:relative}.invitation-card.flipped{transform:rotateY(-180deg)}.paper-face{position:absolute;top:0;left:0;width:100%;backface-visibility:hidden;-webkit-backface-visibility:hidden;min-width:0;padding:32px 25px;background:var(--paper);border:1px solid #e6dfcd;border-radius:10px 3px 14px 4px;text-align:center;box-shadow:3px 5px 0 #d9d7bd,6px 10px 0 #e3d3c2,10px 16px 25px #7a71501b}.paper-face:before{content:'';position:absolute;inset:8px;border:1px solid #dfd9c4;border-radius:5px;pointer-events:none}.face-indo{transform:rotateY(180deg)}.j-title{font-size:15px;letter-spacing:4px;color:var(--sage-dark);text-transform:uppercase;margin-bottom:17px}.j-bism{font-size:15px;letter-spacing:.2px;margin:0 0 15px}.j-salam{font-size:15px;font-style:italic;line-height:1.7;margin:17px 0}.j-head{font-size:12px;text-transform:uppercase;letter-spacing:1.6px;margin:21px 0 14px;color:var(--sage-dark)}.j-body{font-size:17px;line-height:1.8;margin:17px 0}.j-name,.indo-name{font:400 28px/1.4 PaperScript,cursive;color:#66785f;margin:13px 0}.indo-name{font-size:31px}.amp{font:400 24px/1 PaperScript,cursive;margin:10px 0}.parent-line{font-size:14px;line-height:1.7;margin:0 0 15px;color:var(--muted)}.j-brayat{display:grid;grid-template-columns:1fr 1fr;gap:16px;text-align:left;margin:25px 0;font-size:14px;line-height:1.7}.j-brayat h4,.j-woro h4,.catatan h4{font-size:10px;letter-spacing:1.2px;font-weight:600;text-transform:uppercase;color:var(--sage-dark);margin-bottom:10px}.j-brayat ol{margin:0;padding-left:17px}.j-woro,.catatan{padding:16px 14px;background:#e9ecde;border-radius:5px 13px 4px 13px;font-size:14px;line-height:1.8;margin:22px 0}.catatan{background:#efe0d7;text-align:left}.catatan p+p{margin-top:13px}.small-name{font:600 15px/1.7 PaperSerif,serif}.guest-address{font-size:14px;line-height:1.6;border-bottom:1px solid #d5dbc5;padding-bottom:18px;margin-bottom:23px}.guest-address strong{font-size:20px;font-weight:600;display:block;margin-top:6px;overflow-wrap:anywhere}.flip-footnote{font-size:13px;font-style:italic;text-align:center;color:var(--muted);margin:23px 0 0}.event-section{padding-top:65px}.joglo-card{position:relative;background:#f7f0e1;border-radius:35% 35% 8px 8px;padding:0 37px 32px;box-shadow:4px 7px 0 #d9d3b9,10px 14px 24px #71674614}.joglo-eave{position:absolute;left:-4%;top:-4px;width:108%;height:146px;object-fit:cover;object-position:top;z-index:2}.joglo-pillar{position:absolute;top:134px;bottom:20px;width:9px;background:#a8b69c;box-shadow:3px 2px 0 #829374,6px 5px 6px #6e75571a;border-radius:2px}.joglo-pillar.left{left:15px}.joglo-pillar.right{right:15px}.event-content{padding-top:151px;text-align:center;position:relative}.event-date{font-size:24px;font-weight:600;line-height:1.4;color:#61715b}.event-rule{width:46px;height:1px;margin:24px auto;background:#b4bfa4}.event-row{margin:23px 0}.event-row h3{font-size:24px;line-height:1.3;font-weight:400}.event-row h3 span{font-size:21px}.event-row p{font-size:18px;color:#87715d;margin-top:8px;letter-spacing:.4px}.event-content address{font-style:normal;font-size:18px;line-height:1.7}.event-content address strong{font-weight:600}.outline{background:#f3ecde;box-shadow:2px 3px 0 #b3bda3;color:#5d735b;margin-top:24px;font-size:15px;padding-left:13px;padding-right:13px}.tiny-note{font-size:13px;font-style:italic;color:var(--muted);line-height:1.7;margin-top:21px}.rsvp-section{padding-top:70px}.form-paper{position:relative;background:#faf5e9;padding:27px 23px 20px;border-radius:5px 15px 5px 12px;box-shadow:3px 5px 0 #d3d9bf,6px 10px 18px #6e76531a;display:flex;flex-direction:column;gap:18px;border:1px solid #e4dfca}.paper-tab{align-self:flex-start;background:#d8b7a9;color:#735b49;letter-spacing:1.7px;font-size:10px;padding:6px 12px;margin:-42px 0 3px;box-shadow:1px 2px 0 #c39e8e;transform:rotate(-3deg)}label{font-size:16px;line-height:1.5}input,textarea{display:block;width:100%;border:0;border-bottom:1px solid #b8c1a7;background:#efefdf70;border-radius:3px;padding:12px 11px;margin-top:7px;color:var(--ink);font-size:17px;line-height:1.5;resize:vertical}input:focus,textarea:focus{background:#edf0df}.count-label{display:flex;gap:15px;align-items:center;justify-content:space-between}.count-label input{width:75px;text-align:center;margin:0}.form-paper .paper-button{width:100%;margin:4px 0 0}.demo-note{font-size:12px;line-height:1.6;color:var(--muted);text-align:center}.wishes-section{padding-top:75px}.wish-cards{padding:5px 8px 20px}.wish-card{position:relative;padding:24px 23px 19px;box-shadow:3px 4px 0 #9aa68c,6px 10px 18px #65715116;border-radius:3px 10px 3px 8px;margin-bottom:25px;transform:rotate(-3deg);background:#d8dfc9}.wish-card:nth-child(2n){transform:rotate(3deg);margin-left:22px;background:#e6c4b7;box-shadow:3px 4px 0 #c7a494,6px 10px 18px #8c675516}.wish-card small{font-size:9px;letter-spacing:2px;color:#6e7863}.wish-card p{font-size:19px;line-height:1.7;margin-top:12px}.card-flower{position:absolute;right:17px;bottom:0;font-size:40px;color:#b0b79a;opacity:.5}.paper-clip{position:absolute;left:24px;top:-14px;width:10px;height:30px;border:2px solid #a39178;border-radius:7px;transform:rotate(7deg);background:none}.video-button{background:#ede2d8;border:1px dashed #c9ad9a;border-radius:3px 12px 3px 12px;padding:14px 10px;display:flex;gap:9px;align-items:center;justify-content:center;color:#846a55;font-size:15px}.video-button small{font-size:11px;color:#a08c76}.camera-mark{width:27px;height:22px;border:1px solid #ac927b;border-radius:3px;line-height:20px;font-size:17px}footer{padding:55px 25px 115px;text-align:center}footer>img{width:30px;height:44px;opacity:.8;margin-bottom:18px}footer>p{font-size:29px;line-height:1.25;color:#8f7a65}footer h2{font:400 34px/1.4 PaperScript,cursive;margin:22px 0 16px}footer>small{font-size:11px;color:var(--muted)}.bottom-nav{position:fixed;z-index:75;bottom:max(13px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;gap:4px;padding:6px 8px;border:1px solid #d1d5bf;background:#f8f1e4f2;border-radius:30px;box-shadow:0 5px 20px #68705224}.bottom-nav a{font-size:13px;line-height:1.3;text-decoration:none;padding:9px 18px;border-radius:20px;min-width:62px;text-align:center;color:#758367}.bottom-nav a.on{background:#b8c3a8;color:#3e523d;box-shadow:1px 2px 0 #93a182}.toast{position:fixed;z-index:100;left:50%;bottom:85px;transform:translateX(-50%);max-width:90vw;width:340px;padding:16px 19px;background:#52694f;color:#fbf7ee;border-radius:6px 18px 6px 18px;box-shadow:3px 5px 0 #364a34;font-size:16px;line-height:1.5;text-align:center}.enter{opacity:0;transform:translateY(18px);transition:opacity .8s,transform .8s}.enter.visible{opacity:1;transform:none}body.debug *{scroll-behavior:auto!important;animation:none!important;transition:none!important}body.debug .enter{opacity:1;transform:none}@keyframes paper-breeze{50%{transform:rotate(1.5deg)}}@keyframes hourglass-glow{50%{opacity:.75}}@media(min-width:700px){body{background:#e8e5d7}.hero,main{background:var(--cream);box-shadow:0 0 60px #6a715920}.hero{padding-top:66px}.prototype-badge{font-size:10px}}@media(max-width:360px){.hero h1{font-size:33px}.hero-quote{font-size:30px}.story-section,.event-section,.rsvp-section,.wishes-section{padding-left:18px;padding-right:18px}.paper-face{padding-left:20px;padding-right:20px}.bottom-nav a{padding:9px 14px}.joglo-card{padding-left:32px;padding-right:32px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.enter{opacity:1;transform:none}.opening-art{transform:none}.invitation-card{transition:none}.heart-layer{transition:none}}
