@font-face{font-family:Great Vibes;src:url(/fonts/greatvibes.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Cormorant;src:url(/fonts/cormorant.woff2)format("woff2-variations");font-weight:300 700;font-style:normal;font-display:swap}@font-face{font-family:Mont;src:url(/fonts/montserrat.woff2)format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap}:root{--ink:#2c3a4e;--ink-soft:#5d6e84;--ink-faint:#8d9cb0;--porcelain:#f3f7fb;--ivory:#fffdf9;--sky:#dfe9f5;--sky-deep:#c3d6ea;--gold:#ab8a50;--gold-soft:#c9ad79;--gold-faint:#e3d3b3;--blush:#efdfe2;--script:"Great Vibes", "Cormorant", cursive;--serif:"Cormorant", "Georgia", serif;--sans:"Mont", "Segoe UI", sans-serif;--ease-out:cubic-bezier(.22, 1, .36, 1);--shadow-card:0 24px 60px -28px #2c3a4e59;--app-max:440px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--serif);color:var(--ink);background:radial-gradient(120% 60% at 80% -5%, #c3d6ea8c, transparent 60%), radial-gradient(110% 55% at 8% 28%, #efdfe280, transparent 55%), radial-gradient(120% 70% at 90% 70%, #c3d6ea66, transparent 60%), radial-gradient(100% 50% at 15% 100%, #e3d3b347, transparent 55%), var(--porcelain);background-attachment:fixed;font-weight:400;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:1;opacity:.5;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0.6 0 0 0 0 0.62 0 0 0 0 0.68 0 0 0 0.05 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;color:inherit;background:0 0;border:0}.page{z-index:2;max-width:var(--app-max);background:linear-gradient(180deg, var(--ivory) 0%, #f6f9fc 35%, var(--ivory) 100%);margin:0 auto;position:relative;overflow:clip;box-shadow:0 0 0 1px #ab8a5029,0 40px 90px -30px #2c3a4e59}@media (min-width:480px){.page{border-radius:18px;margin:36px auto 56px}}.label{font-family:var(--sans);letter-spacing:.42em;text-indent:.42em;text-transform:uppercase;color:var(--gold);font-size:.66rem;font-weight:500}.script{font-family:var(--script);font-weight:400;line-height:1.1}.section{padding:84px 28px;position:relative}.center{text-align:center}.reveal{opacity:0;transition:opacity 1s var(--ease-out), transform 1s var(--ease-out), filter 1s var(--ease-out);transition-delay:var(--d,0s);will-change:opacity, transform;transform:translateY(30px)}.reveal.r-blur{filter:blur(8px);transform:translateY(16px)scale(.98)}.reveal.r-left{transform:translate(-36px)}.reveal.r-right{transform:translate(36px)}.reveal.r-scale{transform:scale(.88)}.reveal.in{opacity:1;filter:none;transform:none}.intro{width:min(var(--app-max), 100vw);z-index:90;perspective:1300px;transition:opacity .45s;position:fixed;top:0;bottom:0;left:50%;overflow:hidden;transform:translate(-50%)}.intro.fading{opacity:0;pointer-events:none}.intro-backdrop{z-index:1;background:#e2d5bd url(/demo/klassik-saray/curtain_bg.jpg) 50%/cover no-repeat;position:absolute;inset:0}.intro-video{z-index:2;opacity:0;transition:opacity .3s;position:absolute;inset:0}.intro-video.ready{opacity:1}.intro-video video{object-fit:cover;width:100%;height:100%;display:block}.intro-open{z-index:3;cursor:pointer;text-align:center;-webkit-tap-highlight-color:transparent;appearance:none;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:16px;width:100%;padding:0 20px;display:flex;position:absolute;inset:0}.open-hint{font-family:var(--sans);letter-spacing:.36em;text-indent:.36em;text-transform:uppercase;color:#6f5426;text-shadow:0 1px 10px #fff8ebb3;margin-top:6px;font-size:.66rem;font-weight:600;transition:opacity .5s;animation:2.4s ease-in-out infinite hintPulse}@keyframes hintPulse{0%,to{opacity:.45}50%{opacity:1}}.intro.opening .open-hint{opacity:0;animation:none}.intro-open:focus-visible{outline:none}.petals{z-index:60;pointer-events:none;position:fixed;inset:0;overflow:hidden}.petal{top:-6vh;left:var(--x);animation:petalFall var(--dur) linear var(--delay) infinite;will-change:transform;position:absolute}.petal i{width:var(--size);height:calc(var(--size) * .82);opacity:.9;animation:petalSway var(--sway) ease-in-out var(--delay) infinite alternate;will-change:transform;background:linear-gradient(135deg,#fffdf9 10%,#f3e2e6 55%,#e7cfd6 100%);border-radius:72% 28% 70% 30%/58% 42% 62% 38%;display:block;box-shadow:0 2px 6px #2c3a4e1f}@keyframes petalFall{to{transform:translate3d(var(--drift), 112vh, 0)}}@keyframes petalSway{0%{transform:rotate3d(1,.6,.4,18deg)rotate(-28deg)}to{transform:rotate3d(.7,1,.3,245deg)rotate(42deg)}}.hero{text-align:center;isolation:isolate;background:radial-gradient(110% 70% at 18% -4%,#aac8e68c,#0000 58%),radial-gradient(95% 60% at 86% 4%,#96b9de73,#0000 55%),radial-gradient(60% 30% at 55% 16%,#fffc,#0000 70%),radial-gradient(95% 45% at 50% 102%,#e3dbc48c,#0000 62%),linear-gradient(#e8f0f9 0%,#f3f8fc 48%,#f7f4ec 100%);flex-direction:column;justify-content:center;align-items:center;min-height:100svh;padding:110px 26px 70px;display:flex;position:relative;overflow:hidden}.hero-video{z-index:0;object-fit:cover;object-position:center;pointer-events:none;-webkit-user-select:none;user-select:none;opacity:0;width:100%;height:100%;position:absolute;inset:0}.hero-video.active{opacity:1}.hero:before{content:"";z-index:1;pointer-events:none;background:radial-gradient(80% 42% at 50% 50%, #fffdf933, #fffdf90d 66%, transparent 82%), linear-gradient(180deg, #fffdf947 0%, #fffdf900 22%), linear-gradient(0deg, var(--ivory) 3%, #fffdf9b8 14%, #fffdf900 40%);position:absolute;inset:0}.hero-inner{z-index:2;transform:translateY(calc(var(--scroll,0) * -.18px));opacity:calc(1 - var(--scroll,0) / 520);flex-direction:column;align-items:center;gap:14px;display:flex;position:relative}.hero-names,.intro-names{font-family:var(--serif);letter-spacing:.015em;color:var(--ink);font-style:italic;font-weight:500}.hero-names{text-shadow:0 2px 24px #fffdf9cc;text-align:center;flex-wrap:wrap;justify-content:center;column-gap:.32em;padding:0 12px;font-size:clamp(2.6rem,12vw,5.2rem);display:flex}.hero-names .word{white-space:nowrap;display:inline-flex}.hero-names .ch{opacity:0;filter:blur(6px);will-change:opacity, transform, filter;display:inline-block;transform:translateY(.5em)rotate(7deg)}body.gate-opening .hero-names .ch{animation:nameWrite 1.1s var(--ease-out) forwards}@keyframes nameWrite{to{opacity:1;filter:none;transform:none}}.intro-names{text-shadow:0 2px 18px #fffdf9f2,0 1px 3px #fffdf9e6;margin-top:2px;font-size:clamp(2.9rem,11vw,3.5rem)}.hero-date{font-family:var(--serif);letter-spacing:.14em;color:var(--ink-soft);text-shadow:0 1px 14px #fffdf9e6;font-size:1.18rem}.hero-venue{font-family:var(--sans);letter-spacing:.4em;text-indent:.4em;text-transform:uppercase;color:var(--gold);text-shadow:0 1px 12px #fffdf9f2;font-size:.66rem;font-weight:600}.scroll-hint{left:0;right:0;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:2;pointer-events:none;opacity:calc(1 - var(--scroll,0) / 160);justify-content:center;display:flex;position:absolute}.scroll-hint-in{opacity:0;color:var(--gold);flex-direction:column;align-items:center;gap:7px;display:flex}body.gate-opening .scroll-hint-in{animation:1.1s 3.4s forwards scrollHintIn}@keyframes scrollHintIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.scroll-hint-label{font-family:var(--sans);letter-spacing:.34em;text-indent:.34em;text-transform:uppercase;text-shadow:0 1px 10px #fffdf9e6;font-size:.6rem;font-weight:600}.scroll-hint-in svg path{animation:1.9s ease-in-out infinite chevDrip}.scroll-hint-in svg path:last-child{animation-delay:.22s}@keyframes chevDrip{0%,to{opacity:.35;transform:translateY(0)}50%{opacity:1;transform:translateY(2.5px)}}.monogram{color:var(--gold);-webkit-user-select:none;user-select:none;filter:drop-shadow(0 1px 6px #785c2838);margin-left:auto;margin-right:auto;display:block}.monogram text{fill:currentColor}.monogram .mg-letter{font-family:var(--script);font-size:46px}.monogram .mg-amp{font-family:var(--serif);opacity:.6;font-size:17px;font-style:italic}.ornament{width:168px;height:28px;color:var(--gold-soft);margin:0 auto}.invite-quote{color:var(--ink);max-width:30ch;margin:0 auto;font-size:clamp(1.35rem,4.6vw,1.7rem);font-style:italic;font-weight:500;line-height:1.65}.invite-guest{font-family:var(--script);color:var(--gold);font-size:2.1rem}.invite-note{color:var(--ink-soft);max-width:36ch;margin:0 auto;font-size:1.05rem;line-height:1.8}.dateblock{justify-content:center;align-items:center;gap:clamp(18px,5vw,30px);margin:30px 0 10px;display:flex}.dateblock .side{font-family:var(--sans);letter-spacing:.34em;text-indent:.34em;text-transform:uppercase;color:var(--ink-soft);border-top:1px solid var(--gold-faint);border-bottom:1px solid var(--gold-faint);min-width:86px;padding:14px 0;font-size:.72rem;font-weight:500}.dateblock .day{font-family:var(--serif);color:var(--ink);font-size:clamp(4.4rem,16vw,5.8rem);font-weight:300;line-height:.9}.countdown{perspective:600px;justify-content:center;gap:clamp(10px,3vw,18px);margin-top:38px;display:flex}.cd-unit{background:#fffdf9bf;border:1px solid #ab8a5047;border-radius:14px;flex-direction:column;align-items:center;gap:9px;min-width:64px;padding:16px 6px 13px;display:flex;box-shadow:0 14px 34px -20px #2c3a4e66}.cd-num{font-family:var(--serif);color:var(--ink);font-variant-numeric:tabular-nums;font-size:2rem;font-weight:500;line-height:1;display:inline-block}.cd-num.tick{animation:tickFlip .55s var(--ease-out)}@keyframes tickFlip{0%{opacity:0;transform:rotateX(-92deg)}to{opacity:1;transform:rotateX(0)}}.cd-label{font-family:var(--sans);letter-spacing:.26em;text-indent:.26em;text-transform:uppercase;color:var(--gold);font-size:.55rem;font-weight:500}.cd-done{font-family:var(--script);color:var(--gold);font-size:2.2rem}.btn-row{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:34px;display:flex}.btn{font-family:var(--sans);letter-spacing:.22em;text-indent:.1em;text-transform:uppercase;color:var(--ink);border:1px solid var(--gold-soft);background:#fffdf9b3;border-radius:999px;align-items:center;gap:9px;padding:14px 22px;font-size:.66rem;font-weight:500;transition:background .35s,color .35s,transform .35s,box-shadow .35s;display:inline-flex}.btn svg{flex:none;width:15px;height:15px}.btn:hover{transform:translateY(-2px);box-shadow:0 14px 30px -12px #ab8a508c}.btn.solid{background:linear-gradient(135deg, #c9ad79, var(--gold));color:var(--ivory);border-color:#0000}.btn.wa{color:#fff;background:linear-gradient(135deg,#43c465,#1f9d4d);border-color:#0000}.gallery{gap:26px;padding:10px 6px;display:grid;position:relative}.photo-frame{background:var(--ivory);box-shadow:var(--shadow-card);transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) rotate(var(--tilt,0deg)) translateY(var(--py,0px));will-change:transform;border-radius:6px;outline:1px solid #ab8a5038;padding:12px 12px 16px;transition:transform .3s ease-out;position:relative}.photo-frame img{aspect-ratio:4/5;object-fit:cover;border-radius:3px;width:100%}.photo-frame figcaption{text-align:center;font-family:var(--script);color:var(--ink-soft);margin-top:12px;font-size:1.5rem}.photo-frame.wide img{aspect-ratio:16/11}@media (min-width:560px){.gallery{grid-template-columns:1fr 1fr}.gallery .photo-frame:first-child{grid-column:1/-1;width:78%;margin:0 auto}}.venue-name{color:var(--ink);font-size:clamp(3rem,11vw,4rem)}.venue-card{box-shadow:var(--shadow-card);transform:perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));border-radius:16px;outline:1px solid #ab8a5040;margin-top:34px;transition:transform .25s ease-out;position:relative;overflow:hidden}.venue-card img{aspect-ratio:4/3;object-fit:cover;width:100%}.venue-card .veil{background:linear-gradient(#0000 55%,#2c3a4e8c 100%);justify-content:center;align-items:flex-end;padding:20px;display:flex;position:absolute;inset:0}.venue-card .veil p{font-family:var(--sans);letter-spacing:.32em;text-indent:.32em;text-transform:uppercase;color:#fdfcf8;font-size:.62rem;font-weight:500}.plan{margin-top:44px;padding:6px 0;position:relative}.plan-path{z-index:0;pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0;overflow:visible}.plan-item{z-index:1;box-sizing:border-box;width:50%;padding:22px 0;position:relative}.plan-item.left{text-align:right;margin-right:50%;padding-right:18%}.plan-item.right{text-align:left;margin-left:50%;padding-left:18%}.plan-btn{cursor:pointer;width:100%;color:inherit;text-align:inherit;-webkit-tap-highlight-color:transparent;transition:transform .25s var(--ease-out), opacity .25s ease;background:0 0;border:0;margin:0;padding:0;display:block}.plan-item.left .plan-btn{transform-origin:100%}.plan-item.right .plan-btn{transform-origin:0}.plan-btn:hover{transform:scale(1.03)}.plan-time{font-family:var(--sans);letter-spacing:.16em;color:var(--gold);font-size:.7rem;font-weight:600;transition:color .3s;display:block}.plan-title{font-family:var(--serif);color:var(--ink);margin-top:3px;font-size:1.18rem;font-weight:600;display:block}.plan-note{color:var(--ink-soft);margin-top:2px;font-size:.9rem;font-style:italic;line-height:1.45;display:block}.plan-modal{z-index:80;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#2e261a80;justify-content:center;align-items:center;padding:24px;animation:.28s modalFade;display:flex;position:fixed;inset:0}.plan-modal-card{border:1px solid var(--gold-faint);text-align:center;width:min(400px,100%);animation:modalIn .36s var(--ease-out);background:linear-gradient(#fffdf9 0%,#f6efe1 100%);border-radius:20px;padding:40px 28px 32px;position:relative;box-shadow:0 30px 70px -22px #2e220c8c}.plan-modal-x{border:1px solid var(--gold-faint);width:34px;height:34px;color:var(--gold);cursor:pointer;background:#ffffffb3;border-radius:50%;justify-content:center;align-items:center;transition:background .2s,border-color .2s,transform .15s;display:flex;position:absolute;top:12px;right:12px}.plan-modal-x svg{display:block}.plan-modal-x:hover{border-color:var(--gold);background:#fff}.plan-modal-x:active{transform:scale(.9)}.plan-modal-time{font-family:var(--sans);letter-spacing:.2em;text-indent:.2em;color:var(--gold);font-size:.72rem;font-weight:600;display:block}.plan-modal-title{color:var(--ink);margin-top:6px;font-size:clamp(2rem,9vw,2.6rem)}.plan-modal-rule{background:linear-gradient(90deg, transparent, var(--gold), transparent);width:46px;height:1px;margin:14px auto;display:block}.plan-modal-detail{color:var(--ink-soft);font-size:.98rem;line-height:1.62}@keyframes modalFade{0%{opacity:0}to{opacity:1}}@keyframes modalIn{0%{opacity:0;transform:translateY(18px)scale(.93)}to{opacity:1;transform:none}}.rsvp{isolation:isolate;text-align:center;position:relative;overflow:hidden}.rsvp-bg{z-index:-2;position:absolute;inset:0}.rsvp-bg img{object-fit:cover;width:100%;height:100%}.rsvp:after{content:"";z-index:-1;background:linear-gradient(180deg, var(--ivory) 0%, #fffdf9d1 30%, #fffdf9db 70%, var(--ivory) 100%);position:absolute;inset:0}.rsvp-title{color:var(--ink);font-size:clamp(2.6rem,9vw,3.4rem)}.rsvp-text{color:var(--ink-soft);max-width:34ch;margin:18px auto 0;font-size:1.05rem;line-height:1.8}.rsvp-deadline{font-family:var(--sans);letter-spacing:.3em;text-indent:.3em;text-transform:uppercase;color:var(--gold);border:1px dashed var(--gold-soft);background:#fffdf9b3;border-radius:999px;margin-top:18px;padding:10px 18px;font-size:.62rem;font-weight:500;display:inline-block}.footer{text-align:center;background:linear-gradient(#0000,#c3d6ea40);padding:70px 28px 56px}.footer-respect{font-family:var(--serif);letter-spacing:.1em;color:var(--ink-soft);margin-bottom:2px;font-size:1.05rem;font-style:italic}.footer-script{color:var(--ink);overflow-wrap:break-word;padding:0 6px;font-size:clamp(1.9rem,7.6vw,2.8rem);line-height:1.3}.footer-date{font-family:var(--sans);letter-spacing:.4em;text-indent:.4em;text-transform:uppercase;color:var(--gold);margin-top:10px;font-size:.64rem;font-weight:500}.footer-fineprint{color:var(--ink-faint);margin-top:38px;font-size:.82rem;font-style:italic}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.petal,.petal i,.open-hint,.scroll-hint-in svg path{animation:none!important}.hero-names .ch{opacity:1!important;filter:none!important;animation:none!important;transform:none!important}.intro{transition:opacity .4s}.intro.opening{opacity:0}.intro.opening .intro-panel{transform:none}.reveal{opacity:1;filter:none;transition:none;transform:none}}
