@font-face{font-family:Pirata;src:url('assets/fonts/pirata.ttf')}@font-face{font-family:Script;src:url('assets/fonts/script.ttf')}@font-face{font-family:Cormorant;src:url('assets/fonts/serif.ttf');font-weight:300 700}
:root{--paper:#f2e8d6;--ink:#3e352b;--gold:#a28749;--wine:#702b36;--green:#243e35;--line:#bfa976;--script:Script,cursive;--body:Cormorant,Georgia,serif;--display:Pirata,Georgia,serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:20px;line-height:1.5;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' 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='.085' filter='url(%23n)'/%3E%3C/svg%3E")}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #3b7563;outline-offset:6px}button:disabled{cursor:default}h1,h2,h3,p{margin:0}h2{font-weight:400}img{max-width:100%;display:block}svg{display:block}button{color:inherit} [hidden]{display:none!important}.svg-library{position:absolute;width:0;height:0;overflow:hidden}.eyebrow{font:600 12px/1.5 Georgia,serif;letter-spacing:3px}.script{font-family:var(--script);font-weight:400}.flourish{color:var(--gold);width:180px;height:40px;margin:28px auto}.welcome{position:relative;min-height:100svh;display:flex;align-items:center;justify-content:center;text-align:center;padding:55px 30px 65px;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 50% 40%,#fff9e54d,transparent 65%),radial-gradient(ellipse at 0 0,#8c6a2423,transparent 55%)}.frame{position:absolute;pointer-events:none;border:1px solid var(--line)}.frame-outer{inset:19px}.frame-inner{inset:26px;border-color:#bfa97666}.frame::after{content:'◆';position:absolute;left:50%;top:-14px;padding:0 18px;color:var(--gold);font-size:17px;background:var(--paper);transform:translateX(-50%)}.frame-inner::after{display:none}.corner{position:absolute;width:110px;height:210px;color:var(--gold);opacity:.65;pointer-events:none}.top-left{left:30px;top:38px}.top-right{right:30px;top:38px;transform:scaleX(-1)}.bottom-left{bottom:35px;left:30px;transform:scaleY(-1)}.bottom-right{bottom:35px;right:30px;transform:scale(-1)}.welcome-content{width:100%;max-width:900px;position:relative}.welcome .eyebrow{color:#705d3c;font-size:11px}.crest{height:128px;width:122px;color:var(--gold);margin:13px auto 4px}.welcome-script{font-size:31px;color:#715d44}.welcome h1{font:400 clamp(44px,5.3vw,76px)/1.15 var(--display);color:var(--wine);margin:13px 0 15px}.welcome h1 span{font-family:var(--script);font-size:.75em;margin:0 12px;color:var(--gold)}.cover-date{font-size:13px;letter-spacing:4px;font-weight:600}.envelope-button{display:block;position:relative;margin:44px auto 20px;padding:0;width:340px;height:195px;max-width:85%;border:0;background:transparent;perspective:900px;transition:transform .3s}.envelope-button:hover{transform:translateY(-5px)}.envelope{position:absolute;inset:0;display:block;filter:drop-shadow(0 16px 16px #43231530)}.envelope-body{position:absolute;inset:0;background:linear-gradient(120deg,#853440,#57212a);border-radius:4px}.envelope-fold{position:absolute;inset:0;background:linear-gradient(150deg,#8d3d49,#63242f);clip-path:polygon(0 0,50% 54%,100% 0,100% 100%,0 100%);z-index:3}.envelope-fold::after{position:absolute;content:'';inset:0;clip-path:polygon(0 100%,50% 45%,100% 100%);background:linear-gradient(15deg,#79303b,#a2525b);border-bottom:1px solid #bc7780}.envelope-flap{position:absolute;inset:0;z-index:4;clip-path:polygon(0 0,100% 0,50% 62%);background:linear-gradient(170deg,#a55862,#722833);transform-origin:top;transition:transform .6s,z-index .1s .3s;filter:drop-shadow(0 3px 2px #31111a)}.wax-seal{display:flex;align-items:center;justify-content:center;gap:3px;position:absolute;top:45%;left:50%;transform:translate(-50%,-10%);width:55px;height:55px;border-radius:48% 46% 50% 44%;background:radial-gradient(circle at 35% 25%,#ae5b63,#742330 70%);color:#e1b18c;z-index:5;font:18px Georgia,serif;box-shadow:0 3px 4px #30121c88,inset 0 0 0 3px #ad596377,inset 0 0 0 5px #66232d;transition:opacity .3s}.wax-seal i{font-family:var(--script);font-size:14px}.envelope-letter{display:block;position:absolute;inset:12px 18px;background:#f9efdc;padding:20px 8px;color:var(--wine);font:24px var(--script);transition:transform .7s .25s;z-index:2}.envelope-letter b{font-weight:400}.opening .envelope-flap{transform:rotateX(180deg);z-index:1}.opening .wax-seal{opacity:0}.opening .envelope-letter{transform:translateY(-65px)}.open-prompt{font-size:17px;font-style:italic;color:#77644c}.welcome .flourish{margin:18px auto 0;width:155px}.demo-note{position:absolute;bottom:35px;left:0;width:100%;font:10px Georgia,serif;letter-spacing:1.6px;color:#7d715e}.nav{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 6%;border-bottom:1px solid #c4ad7c66;background:#f2e8d6ed;position:sticky;top:0;z-index:10;backdrop-filter:blur(10px)}.monogram{text-decoration:none;font:28px var(--display);color:var(--wine)}.monogram span{font:20px var(--script);color:var(--gold)}.nav-date{font:12px Georgia,serif;letter-spacing:3px;color:#746142}.nav-rsvp{font-size:16px;text-decoration:none;border-bottom:1px solid var(--gold);padding:4px 0}.nav-rsvp span{margin-left:16px}.hero{position:relative;min-height:680px;height:85svh;max-height:940px;background:#243e35;display:grid;place-items:center;overflow:hidden}.hero-image{position:absolute;inset:0;background:url('assets/couple-hero.webp') center 47%/cover}.hero::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#15271fd9,transparent 70%),linear-gradient(90deg,#101d2033,#17231a11)}.hero-content{position:relative;z-index:1;text-align:center;color:#fff6e5;padding:80px 20px 35px;text-shadow:0 2px 20px #0007}.hero .eyebrow{font-size:11px;letter-spacing:4px}.hero h2{font:400 clamp(72px,8vw,112px)/.94 var(--display);margin:32px 0 22px}.hero h2 span{font:58px var(--script);color:#e7cd92}.hero .script{font-size:37px}.hero-scroll{display:block;margin-top:65px;text-decoration:none;font:10px Georgia,serif;letter-spacing:2px}.hero-scroll span{display:block;font:25px var(--body);margin-top:12px}.section{padding:90px 24px;text-align:center}.section>.eyebrow{color:var(--wine);margin-bottom:20px}.section h2.script{font-size:clamp(42px,5vw,60px);line-height:1.2}.prose{max-width:620px;margin:24px auto;font-size:22px;line-height:1.65}.celebration{max-width:950px;margin:auto}.celebration>.flourish{margin-top:0}.date-plaque{margin:40px auto;width:220px;padding:20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid}.date-plaque span{font:12px Georgia,serif;letter-spacing:3px}.date-plaque strong{font:76px/1.25 var(--display);color:var(--wine)}
@media(max-width:600px){body{font-size:19px}.welcome{padding:60px 28px 70px}.frame-outer{inset:12px}.frame-inner{inset:18px}.corner{width:63px;height:125px}.top-left{top:24px;left:20px}.top-right{top:24px;right:20px}.bottom-left{bottom:25px;left:20px}.bottom-right{bottom:25px;right:20px}.welcome .eyebrow{font-size:9px;letter-spacing:1.5px;padding:0 10px}.crest{height:130px;width:125px;margin-top:20px}.welcome-script{font-size:26px}.welcome h1{font-size:43px;max-width:310px;margin:15px auto;line-height:1.1}.welcome h1 span{margin:0 5px;font-size:32px}.cover-date{font-size:11px;letter-spacing:2.5px}.envelope-button{width:280px;height:165px;margin-top:40px;max-width:92%}.open-prompt{font-size:15px}.demo-note{font-size:8px;letter-spacing:1px;bottom:28px}.nav{height:64px;padding:0 22px}.nav-date{display:none}.nav-rsvp{font-size:15px}.hero{height:80svh;min-height:580px;max-height:850px}.hero-image{background-position:48% center}.hero h2{font-size:80px}.hero .script{font-size:32px}.hero .eyebrow{font-size:9px;letter-spacing:2px}.section{padding:64px 24px}.prose{font-size:21px}.prose br{display:none}.flourish{width:150px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
