@font-face{font-family:KZ Shelley;src:url(/fonts/shelley.woff) format("woff");font-display:swap}:root{--paper: #f4ece0;--paper-2: #eadfca;--card: #fbf6ec;--ink: #1a1a1a;--ink-soft: #2b2b2b;--wax: #7c2b2b;--wax-2: #9a3a30;--gold: #b08d4f;--gold-soft: #c8a972;--line: rgba(58, 44, 44, .18);--display: "Cormorant Garamond", Georgia, serif;--script: "KZ Shelley", "Cormorant Garamond", cursive;--sans: "Montserrat", system-ui, sans-serif;--maxw: 980px;--ease: cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--sans);font-weight:400;color:var(--ink);background-color:var(--paper);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}img{max-width:100%;display:block}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}::selection{background:var(--wax);color:var(--card)}.display{font-family:var(--display)}.script{font-family:var(--script);color:var(--wax)}.upper{text-transform:uppercase;letter-spacing:.22em}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}section{position:relative}.pad{padding:clamp(34px,6vh,64px) 24px}.center{display:flex;flex-direction:column;align-items:center;text-align:center}.pre{font-family:var(--sans);font-weight:500;font-size:.88rem;letter-spacing:.3em;text-transform:uppercase;color:var(--ink-soft)}.sec-title{font-family:var(--script);color:var(--wax);font-size:clamp(2.9rem,8.5vw,4.4rem);line-height:1.05;margin:10px 0}.big-title{font-family:var(--display);font-weight:500;font-size:clamp(2.4rem,8vw,3.6rem);letter-spacing:.02em}.fleuron{display:flex;align-items:center;justify-content:center;gap:16px;color:var(--gold);font-size:1rem;margin:8px 0 4px}.fleuron:before,.fleuron:after{content:"";height:1px;width:60px;background:linear-gradient(90deg,transparent,var(--line))}.fleuron:after{transform:scaleX(-1)}.reveal-up{opacity:0;transform:translateY(22px);transition:opacity .9s var(--ease),transform .9s var(--ease)}.reveal-up.in{opacity:1;transform:none}.stamp{--r: 6px;--g: 17px;position:relative;background:var(--card);padding:22px;filter:drop-shadow(0 14px 30px rgba(58,44,44,.18));-webkit-mask:radial-gradient(var(--r) at 50% 0,#0000 98%,#000) 0 0 / var(--g) 100%,radial-gradient(var(--r) at 50% 100%,#0000 98%,#000) 0 0 / var(--g) 100%,radial-gradient(var(--r) at 0 50%,#0000 98%,#000) 0 0 / 100% var(--g),radial-gradient(var(--r) at 100% 50%,#0000 98%,#000) 0 0 / 100% var(--g);-webkit-mask-composite:source-in;mask-composite:intersect}.stamp__inner{border:1px solid var(--line);outline:1px solid var(--line);outline-offset:4px;padding:clamp(22px,4vw,40px);position:relative}.postmark{position:absolute;width:132px;height:132px;border:2px solid var(--wax);border-radius:50%;display:grid;place-items:center;color:var(--wax);opacity:.42;transform:rotate(-14deg);mix-blend-mode:multiply;pointer-events:none}.postmark:before,.postmark:after{content:"";position:absolute;left:8px;right:8px;height:1px;background:var(--wax)}.postmark:before{top:30px}.postmark:after{bottom:30px}.postmark span{font-family:var(--sans);font-size:.56rem;letter-spacing:.18em;text-transform:uppercase;text-align:center;line-height:1.5}.curtain{position:relative;width:100%;min-height:100svh;overflow:hidden;cursor:pointer;background-color:var(--paper)}.curtain.open{cursor:default}.curtain-video{display:block;width:100%;height:auto;vertical-align:bottom;mix-blend-mode:multiply;transform:translateZ(0);backface-visibility:hidden}.curtain-valance{position:absolute;top:0;left:0;right:0;z-index:8;height:clamp(84px,19vw,160px);background:linear-gradient(180deg,transparent calc(100% - 6px),rgba(184,142,71,.9) calc(100% - 6px)),repeating-linear-gradient(90deg,#0000001f 0,#ffbeaf29 18px,#0000001f 37px),repeating-linear-gradient(90deg,#6d1005 0,#7c1408 7px,#b5685a,#7c1408 19px,#6d1005 26px),linear-gradient(180deg,#7a1206,#660f04);-webkit-mask-image:radial-gradient(circle at 50% 100%,transparent 33px,#000 34px);-webkit-mask-size:84px 100%;-webkit-mask-repeat:repeat-x;-webkit-mask-position:bottom left;mask-image:radial-gradient(circle at 50% 100%,transparent 33px,#000 34px);mask-size:84px 100%;mask-repeat:repeat-x;mask-position:bottom left;filter:drop-shadow(0 4px 7px rgba(0,0,0,.4));pointer-events:none}.curtain-hint{position:absolute;top:42vh;left:0;right:0;z-index:15;text-align:center;color:#fff;font-family:var(--sans);font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;text-shadow:0 2px 10px rgba(0,0,0,.5);animation:pulse 2.2s var(--ease) infinite}.curtain.playing .curtain-hint,.curtain.open .curtain-hint{display:none}@keyframes pulse{0%,to{opacity:.4}50%{opacity:1}}.curtain-content{position:absolute;z-index:5;top:56%;left:50%;transform:translate(-50%,-50%) translateY(16px) translateZ(0);width:80%;text-align:center;opacity:0;transition:opacity .7s var(--ease),transform .7s var(--ease);backface-visibility:hidden;color:var(--ink)}.curtain.open .curtain-content{opacity:1;transform:translate(-50%,-50%) translateZ(0)}.curtain.idle .curtain-content,.curtain.playing .curtain-content{visibility:hidden}.curtain-content .hero__names{font-family:var(--script);font-size:clamp(3.4rem,17vw,11rem);line-height:1;font-weight:400;letter-spacing:0;text-shadow:0 1px 2px rgba(244,236,224,.7)}.curtain-content .hero__amp{font-family:var(--script);font-size:clamp(1.6rem,6vw,4.2rem);font-weight:500;margin:.06em 0}.curtain-date{display:flex;align-items:center;justify-content:center;gap:3vw;margin-top:clamp(12px,3vw,28px);font-family:var(--sans);font-weight:500;font-size:clamp(.7rem,2.4vw,1.1rem);letter-spacing:.22em;text-transform:uppercase;color:var(--ink);text-shadow:0 1px 4px rgba(244,236,224,.7)}.curtain-date__line{display:block;height:1px;width:clamp(20px,9vw,64px);background:var(--ink-soft);opacity:.6}.intro-sec{padding:clamp(48px,8vh,90px) 28px}.intro-title{font-family:var(--script);color:var(--wax);font-size:clamp(3.2rem,12vw,5.4rem);line-height:1.1;max-width:100%;overflow-wrap:break-word;margin-bottom:24px}.intro-mono{font-size:clamp(2.4rem,7vw,3.6rem);line-height:1;margin-bottom:18px}.intro-msg{max-width:640px;width:100%;margin:20px auto 0;font-family:var(--display);font-style:italic;font-weight:600;font-size:clamp(1.45rem,4.4vw,2rem);line-height:1.6;color:var(--ink)}.intro-sign-pre{font-family:var(--display);font-style:italic;font-weight:600;color:var(--ink);font-size:clamp(1.3rem,3.8vw,1.7rem);margin-top:30px}.intro-sign{color:var(--wax);font-size:clamp(3rem,10vw,4.6rem);line-height:1;margin-top:8px}.curtain-scroll{position:absolute;z-index:5;left:50%;top:calc(100svh - 70px);transform:translate(-50%);color:var(--ink-soft);opacity:0;transition:opacity .5s var(--ease) .25s}.curtain.open .curtain-scroll{opacity:1}.curtain.idle .curtain-scroll,.curtain.playing .curtain-scroll{visibility:hidden}.hero__intro{margin-bottom:22px}.hero__names{font-family:var(--display);font-weight:500;font-size:clamp(3rem,13vw,7rem);line-height:.98;letter-spacing:.01em}.hero__amp{display:block;font-family:var(--script);color:var(--gold);font-size:clamp(2rem,7vw,3.4rem);margin:.05em 0}.hero__msg{margin:30px auto 0;max-width:460px;color:var(--ink-soft);line-height:1.85;font-size:1.02rem}.scrollcue{position:absolute;bottom:30px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;color:var(--ink-soft)}.scrollcue svg{animation:bounce 2s infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(7px)}}.event-date{margin-bottom:clamp(20px,4vh,36px);width:100%;max-width:480px}.event-date__month{font-family:var(--display);font-weight:500;color:var(--ink);font-size:clamp(1.9rem,6.4vw,2.7rem);letter-spacing:.02em;margin-bottom:6px}.event-date__row{display:flex;align-items:center;justify-content:center;gap:clamp(12px,3.4vw,26px)}.event-date__rule{flex:1;height:1px;background:var(--line);max-width:60px}.event-date__side{font-family:var(--display);color:var(--ink-soft);font-size:clamp(1.35rem,4.6vw,1.85rem);white-space:nowrap}.event-date__day{font-family:var(--display);font-weight:600;color:var(--ink);font-size:clamp(4.4rem,15vw,6.6rem);line-height:1}.event-date__year{font-family:var(--display);color:var(--ink-soft);font-size:clamp(1.5rem,5vw,2.1rem);margin-top:6px}.countdown{margin-top:clamp(28px,5vh,48px);width:100%}.countdown__pre{font-family:var(--script);color:var(--wax);font-size:clamp(2.4rem,8vw,3.6rem);line-height:1;margin-bottom:18px}.countdown__row{display:flex;justify-content:center;gap:clamp(14px,5vw,38px);flex-wrap:wrap}.countdown__cell{display:flex;flex-direction:column;align-items:center;min-width:60px}.countdown__num{font-family:var(--display);font-weight:600;color:var(--ink);font-size:clamp(2.6rem,9vw,3.8rem);line-height:1}.countdown__label{font-family:var(--sans);font-weight:400;color:var(--ink-soft);font-size:clamp(.85rem,2.6vw,1.05rem);letter-spacing:.1em;text-transform:lowercase;margin-top:6px}.venue-stamp{max-width:560px;width:100%;margin:8px auto 0}.map-frame{width:100%;aspect-ratio:4 / 3;margin:22px 0 4px;border:1px solid var(--line);border-radius:4px;overflow:hidden;box-shadow:0 16px 36px #3a2c2c2e;filter:sepia(.25) saturate(.9) brightness(.98)}.map-frame iframe{width:100%;height:100%;border:0}.venue-name{font-family:var(--display);font-weight:500;font-size:clamp(1.7rem,6vw,2.6rem);line-height:1.1}.venue-addr{font-size:.95rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);margin:5px 0}.venue-footer{font-family:var(--script);color:var(--wax);font-size:1.9rem;margin-top:6px}.btn{display:inline-flex;align-items:center;gap:10px;margin-top:22px;padding:13px 28px;border:1px solid var(--wax);border-radius:999px;color:var(--wax);letter-spacing:.18em;text-transform:uppercase;font-size:.7rem;text-decoration:none;transition:all .4s var(--ease)}.btn:hover{background:var(--wax);color:var(--card)}.dress{max-width:520px;margin:0 auto}.dress p{color:var(--ink-soft);line-height:1.8;margin:14px auto;max-width:440px}.dress .big{font-family:var(--display);font-style:italic;font-size:clamp(1.5rem,5vw,2rem);margin:18px 0}.swatches{display:flex;justify-content:center;gap:14px;margin-top:18px}.swatch{width:38px;height:38px;border-radius:50%;box-shadow:inset 0 0 0 1px #3a2c2c33,0 6px 14px #3a2c2c2e}.cal-rule{width:150px;height:1px;background:linear-gradient(90deg,transparent,var(--line),transparent);margin:0 0 18px}.cal-month{font-family:var(--display);font-weight:500;color:var(--ink);font-size:clamp(1.4rem,4.5vw,1.9rem);letter-spacing:.04em;margin-bottom:26px}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:clamp(8px,2.6vw,18px) clamp(4px,1.6vw,12px);width:100%;max-width:380px}.cal-wd{font-family:var(--display);font-weight:600;color:var(--ink);font-size:clamp(.95rem,3vw,1.25rem);padding-bottom:6px}.cal-day{position:relative;display:grid;place-items:center;min-height:1.9em;font-family:var(--display);color:var(--ink-soft);font-size:clamp(1rem,3.2vw,1.4rem)}.cal-day--mark{color:var(--wax);font-weight:600}.cal-heart{position:absolute;left:50%;top:50%;width:2.5em;height:2.3em;transform:translate(-50%,-54%) rotate(-7deg);fill:none;stroke:var(--wax);stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round;pointer-events:none}.badge{display:inline-flex;align-items:center;gap:8px;margin-bottom:26px;background:#7c2b2b12;border:1px solid rgba(124,43,43,.18);border-radius:999px;padding:9px 18px;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--wax);font-weight:500}.form-card{background:#fbf6ecb3;border:1px solid var(--line);border-radius:12px;padding:clamp(24px,5vw,40px);max-width:540px;width:100%;display:flex;flex-direction:column;gap:22px;text-align:left}.field label{display:block;font-size:.82rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:8px}.field input,.field textarea{width:100%;padding:11px 14px;border:1px solid var(--line);border-radius:8px;background:#fff9;color:var(--ink);font-family:var(--display);font-size:1.15rem;transition:border-color .3s var(--ease)}.field input::placeholder,.field textarea::placeholder{color:#6f5b4880;font-style:italic}.field input:focus,.field textarea:focus{outline:none;border-color:var(--wax)}.field textarea{resize:vertical;min-height:64px}.attend-row{display:flex;gap:12px;flex-wrap:wrap}.attend-btn{flex:1;min-width:140px;padding:14px;border:1px solid var(--line);border-radius:8px;background:#fff9;color:var(--ink-soft);font-size:.95rem;letter-spacing:.04em;transition:all .3s var(--ease)}.attend-btn.sel{background:var(--wax);color:var(--card);border-color:var(--wax)}.submit-btn{padding:17px;border-radius:999px;background:var(--wax);color:var(--card);letter-spacing:.18em;text-transform:uppercase;font-size:.9rem;font-weight:500;transition:transform .3s var(--ease),background .3s}.submit-btn:hover{background:var(--wax-2);transform:translateY(-2px)}.submit-btn:disabled{opacity:.5;cursor:default;transform:none}.form-thanks{text-align:center;font-family:var(--script);color:var(--wax);font-size:2.4rem;padding:16px 0}.closing-stamp{max-width:480px;width:100%}.closing-title{font-family:var(--display);font-weight:700;color:var(--ink);text-transform:uppercase;letter-spacing:.04em;font-size:clamp(1.6rem,5.5vw,2.4rem);line-height:1.1}.closing-text{font-family:var(--display);font-style:italic;color:var(--ink-soft);line-height:1.7;margin:20px auto;max-width:400px;font-size:clamp(1.05rem,2.6vw,1.35rem)}.closing-sign-pre{font-family:var(--display);font-style:italic;color:var(--ink-soft);font-size:1.1rem;margin-top:14px}.closing-sign{color:var(--wax);font-size:clamp(2rem,7vw,3rem);line-height:1;margin-top:4px}.music-btn{position:fixed;bottom:22px;right:22px;z-index:200;width:48px;height:48px;border-radius:50%;background:var(--wax);color:var(--card);display:grid;place-items:center;box-shadow:0 4px 10px #5c1f1c4d;transition:transform .3s var(--ease),opacity .3s}.music-btn:hover{transform:scale(1.08)}.music-btn.off{opacity:.55}@media (max-width: 600px){.postmark{width:104px;height:104px}}@media (prefers-reduced-motion: reduce){*{scroll-behavior:auto}.scrollcue svg,.curtain-hint{animation:none}}
