:root{--paper:#fbf3e9;--ink:#603c31;--rose:#a74f65;--gold:#a67530;--muted:#775b51;--line:#d8bfa7}*{box-sizing:border-box}html{scroll-padding-top:30px}body{margin:0;color:var(--ink);background:repeating-linear-gradient(90deg,#f2ded7 0 22px,#f9ece0 22px 44px);font-family:Georgia,'Times New Roman',serif;line-height:1.65}button,input,select{font:inherit}button,a{touch-action:manipulation;-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 #9b6730;outline-offset:5px}[hidden]{display:none!important}header{display:flex;align-items:center;justify-content:space-between;position:relative;z-index:2;margin:auto;max-width:720px;padding:12px 22px;background:var(--paper)}.brand{font-style:italic;font-size:27px;text-decoration:none;color:var(--rose)}.brand span{font-size:15px;color:var(--gold)}header button{min-height:44px;padding:9px 11px;border:1px solid var(--line);border-radius:30px;background:transparent;color:var(--ink);font:11px system-ui;margin-left:5px}main{max-width:720px;margin:0 auto;background:var(--paper);min-height:calc(100svh - 68px);box-shadow:0 0 65px #82504415;position:relative}main:before{content:'';position:absolute;top:0;left:0;right:0;height:155px;background:url('assets/guirnaldas.svg') center top/100% auto no-repeat;pointer-events:none;z-index:1}section,footer{text-align:center;position:relative;padding:145px 28px 100px;min-height:calc(100svh - 68px)}[data-step]{animation:arrive .6s ease-out}h1,h2,h3,p{margin-top:0}h1,h2{font-weight:400;line-height:1.1;letter-spacing:-1.4px}h1{font-size:clamp(42px,9.8vw,67px);margin:19px 0 18px}h2{font-size:clamp(37px,8.8vw,57px);margin-bottom:23px}h3{font-size:24px;font-weight:400}em{font-weight:400;color:var(--rose)}.eyebrow{font:9px/1.8 system-ui;letter-spacing:2.1px;color:#805940;margin:0 auto 24px;max-width:290px}.intro{font-style:italic;font-size:17px;line-height:1.6;margin-bottom:18px;color:var(--muted)}.host-name{font:12px system-ui;letter-spacing:2px;color:var(--rose);margin:22px 0}.opening-copy{font-size:14px;color:var(--muted)}.micro{font:10px/1.8 system-ui;letter-spacing:1.7px}.micro span{margin:0 9px;color:var(--gold)}.envelope{position:relative;display:block;width:min(280px,100%);height:157px;border:1px solid #cab29a;border-radius:3px;margin:28px auto 26px;background:linear-gradient(145deg,#fff9ee,#e9d6b9);box-shadow:0 12px 20px #6a432b15;transform:rotate(-3deg);transition:transform .4s}.envelope:hover{transform:rotate(0) translateY(-4px)}.envelope-lines{position:absolute;inset:0;overflow:hidden}.envelope-lines:before{content:'';position:absolute;width:200px;height:200px;border:1px solid #c6ab8a;transform:rotate(45deg);left:39px;top:-132px}.envelope:after{content:'';position:absolute;left:calc(50% - 6px);top:0;bottom:0;width:12px;background:#b9798499}.ribbon{position:absolute;left:0;right:0;top:22px;font-family:Georgia,serif;font-size:81px;line-height:1;color:#994b61;z-index:1;text-shadow:1px 2px #f4ccd0}.envelope-caption{position:absolute;bottom:14px;left:0;right:0;font:10px system-ui;letter-spacing:2px;color:var(--ink);z-index:2;background:#f9edda;padding:5px}.button{display:inline-flex;justify-content:center;align-items:center;gap:12px;min-height:52px;border:1px solid var(--rose);border-radius:30px;padding:15px 24px;background:var(--rose);color:#fffaf5;text-decoration:none;font:14px/1.5 system-ui;box-shadow:0 4px 0 #7b394a12}.button:hover{background:#8f3c53}.button:disabled{opacity:.7;cursor:wait}.step-next{display:flex;margin:25px auto 0}.text-link{display:inline-block;font:12px/1.5 system-ui;text-underline-offset:5px;padding:15px 0}.later{border:0;background:transparent;color:var(--muted);cursor:pointer}.signature{font-style:italic;font-size:35px;color:var(--rose)}.letter>p:not(.eyebrow):not(.signature){font-size:18px;max-width:400px;margin:30px auto}.letter .signature{margin:40px 0}.letter:after{content:'✦';display:block;color:var(--gold);font-size:24px;margin-top:30px}.cake-scene{max-width:370px;margin:-12px auto 0}.cake{display:block;width:100%;overflow:visible}.flames{animation:flicker 2s ease-in-out infinite;transform-origin:center}.blown .flames{opacity:0;animation:none;transition:opacity .7s}.wish-stars{opacity:0}.blown .wish-stars{opacity:1;animation:stars 1.3s ease-out}.wish-message{font-style:italic;color:var(--rose);min-height:26px;margin:20px auto 0}.wish-section>p:not(.eyebrow){font-size:15px}.date{display:flex;flex-direction:column;margin:25px auto;max-width:270px;padding:28px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.date span{font:11px system-ui;letter-spacing:3px}.date strong{font-size:112px;line-height:1.15;color:var(--rose);font-weight:400}.time{font-size:39px;margin-bottom:0}.time small{font-size:20px}.rule{display:flex;align-items:center;gap:18px;max-width:180px;margin:28px auto;color:var(--gold)}.rule:before,.rule:after{content:'';height:1px;flex:1;background:var(--line)}.map-note{letter-spacing:0;font-size:10px;color:var(--muted);margin:12px 0 0}.event>.text-link{display:block}.event>p{font-size:15px}.event>p.micro{font-size:10px}.count{display:flex;justify-content:center;gap:17px;margin:45px -8px}.count>div{min-width:51px}.count strong{display:block;color:var(--rose);font-size:42px;font-weight:400;font-variant-numeric:tabular-nums}.count span{font:8px system-ui;letter-spacing:1.6px}.count-section:after{content:'✦  ♡  ✦';display:block;color:var(--gold);font-size:28px;letter-spacing:14px;margin:50px auto}.rsvp h2{font-size:clamp(36px,8.2vw,52px)}form{text-align:left;max-width:420px;margin:30px auto 0}label{display:block;font:13px system-ui;margin:22px 0 9px}input,select{min-height:52px;width:100%;background:#fffaf3;border:1px solid #bba18c;border-radius:8px;color:var(--ink);padding:12px;font:16px system-ui}input:disabled{opacity:.6}.privacy{font:12px/1.7 system-ui;margin:25px 0;color:var(--muted)}form .button{width:100%}#form-status{font:14px/1.6 system-ui;margin-top:18px}.trap{position:absolute;left:-10000px}.closing-heart{font-size:100px;line-height:1;color:var(--rose);margin:0 auto 30px}footer .signature{font-size:50px}footer .text-link{display:block;margin:auto}.fine{font:10px/1.7 system-ui;color:var(--muted);margin-top:30px}.bottom{position:fixed;inset:auto 0 0;z-index:5;display:flex;align-items:center;justify-content:center;gap:26px;background:#fff8eff5;border-top:1px solid var(--line);padding:8px 20px calc(8px + env(safe-area-inset-bottom));min-height:60px}.bottom button{min-height:44px;background:none;border:0;color:var(--ink);font:13px system-ui}.bottom span{font:10px system-ui;letter-spacing:1.5px;color:var(--muted)}.skip{position:absolute;top:-100px;left:10px;z-index:9;background:var(--paper);color:var(--ink);padding:12px}.skip:focus{top:10px}.noscript{padding:30px}.stars{display:none}[data-step] h1:focus,[data-step] h2:focus{outline:none}@keyframes arrive{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}@keyframes flicker{50%{opacity:.75;transform:translateY(1.5px)}}@keyframes stars{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.still *{animation:none!important;transition:none!important}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media(min-width:600px){section,footer{padding:185px 100px 110px}main:before{height:200px}.opening{padding-top:175px}.count{gap:32px}}@media(max-width:360px){section,footer{padding-inline:20px}.count{gap:11px}header{padding-inline:15px}header button{font-size:10px;padding:9px}}
