:root{--cream:#f7f1e7;--paper:#fffcf5;--pink:#d7b0b0;--rose:#9d6873;--ink:#514744;--sage:#77846d;--line:#e5d9cb}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:#e7e9e0;color:var(--ink);font:14px/1.7 Arial,sans-serif}body.lock{overflow:hidden}button,input,textarea,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,textarea:focus-visible,select:focus-visible,canvas:focus-visible{outline:3px solid #8a9a7b;outline-offset:4px}button:disabled{opacity:.5;cursor:default}[hidden]{display:none!important}.svg-library{position:absolute;width:0;height:0;overflow:hidden}header,main,footer,.bottom-nav{max-width:510px;margin:auto}header{height:77px;padding:17px 25px;background:var(--cream);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand{text-decoration:none;font:20px Georgia,serif}.brand em{font-size:15px}.brand span{display:block;font:7px Arial;letter-spacing:2px;margin-top:5px}.demo-badge{font-size:8px;letter-spacing:1.3px;border:1px solid #d5c6b5;border-radius:30px;padding:5px 9px}main{background:var(--cream);overflow:hidden;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='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23867967' opacity='.035' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}section{padding:65px 30px;text-align:center;position:relative}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Georgia,serif;font-weight:400}h2{font-size:34px;line-height:1.22;letter-spacing:-.9px;margin:12px 0 20px}h3{font-size:25px;line-height:1.35}.eyebrow{font-size:8px;letter-spacing:2.5px;color:var(--sage);font-weight:600;line-height:1.8}.small-script{font:italic 22px Georgia,serif;color:var(--rose)}.floral{width:85%;max-width:365px;overflow:visible;display:block;margin:0 auto 25px}.hero{padding-top:40px;padding-bottom:35px;min-height:680px}.hero h1{font-size:68px;line-height:1.05;letter-spacing:-2px;margin:20px 0}.amp{display:block;font-size:31px;font-style:italic;color:var(--rose);line-height:1.6}.hero .small-script{margin-top:22px;margin-bottom:8px}.hero-copy{font:15px/1.8 Georgia,serif}.date-pill{display:flex;align-items:center;justify-content:center;gap:15px;margin:31px 0;color:var(--ink)}.date-pill span{font-size:7px;letter-spacing:1.1px}.date-pill strong{font:16px Georgia;border-left:1px solid #d3c4b3;border-right:1px solid #d3c4b3;padding:0 15px}.text-link,.skip{font-size:10px;letter-spacing:.5px;text-decoration:none;border-bottom:1px solid #c9a4a4;padding-bottom:5px}.text-link span{padding-left:12px}.heart{position:absolute;color:#cfa7ad;font-size:25px}.h1{top:38%;left:8%;transform:rotate(-15deg)}.h2{top:60%;right:8%;transform:rotate(15deg)}.floating{animation:float 4s ease-in-out infinite}.h2{animation-delay:-2s}@keyframes float{50%{translate:0 -12px}}.ride-section{padding:20px 22px 45px}.section-heading p:not(.eyebrow){font-size:12px;line-height:1.8}.section-heading h2{margin-top:9px}.game-frame{position:relative;border:9px solid #e2c5c4;border-radius:180px 180px 28px 28px;overflow:hidden;box-shadow:0 0 0 1px #bda199,0 0 0 6px #fdf8ed,0 0 0 7px #ddd0c0,0 18px 35px #77645118;margin:35px 7px 25px;background:#c5d6c5;aspect-ratio:800/1050}canvas{display:block;width:100%;height:100%;touch-action:pan-y}.game-top{position:absolute;top:24px;left:24px;right:24px;display:flex;justify-content:space-between;align-items:center;z-index:2}.game-top span{font-size:12px;letter-spacing:2px;background:#fffcf0df;border:1px solid #fff7e9;border-radius:30px;padding:6px 12px;color:#8a5e67;backdrop-filter:blur(4px)}.game-top button{border:0;background:#fff8e8df;border-radius:50%;height:34px;width:34px;color:#5b6d57}.scene-caption{position:absolute;bottom:16px;left:0;width:100%;font-size:7px;letter-spacing:1.8px;color:#6d6559}.customizer{background:#fffaf4c9;border:1px solid #dfd0c4;border-radius:20px;padding:22px 16px;box-shadow:inset 0 0 0 5px #fffcf9;margin:30px 0 16px}.customizer>.eyebrow{color:var(--rose);margin-bottom:22px;font-size:8px}.outfits{display:grid;grid-template-columns:1fr 1fr;gap:13px}.outfits>div>span,.colors>span{font-size:7px;letter-spacing:1.5px;color:#8d7d70}.stepper{display:flex;align-items:center;justify-content:space-between;gap:4px;margin-top:9px}.stepper strong{font-size:10px;font-weight:400;line-height:1.4}.stepper button{border:0;background:#ecdedb;color:var(--rose);width:28px;height:34px;border-radius:8px;font:23px Georgia}.colors{display:flex;gap:10px;align-items:center;justify-content:center;margin:25px 0 20px}.colors>span{margin-right:7px}.swatch{width:27px;height:27px;background:var(--swatch);border:3px solid #fff9f0;box-shadow:0 0 0 1px #dfd3c7;border-radius:8px;position:relative}.swatch.selected{box-shadow:0 0 0 2px var(--sage)}.swatch.selected:after{content:'✓';position:absolute;inset:0;color:white;font-size:13px;line-height:20px}.primary,.outline{display:inline-flex;align-items:center;justify-content:center;gap:14px;text-decoration:none;border-radius:8px;min-height:45px;padding:11px 21px;transition:transform .2s,background .2s}.primary{background:#8e717b;border:1px solid #8e717b;color:#fffaf1;font-size:11px;letter-spacing:1.2px;width:100%;box-shadow:0 3px 0 #70545f}.primary:hover{background:#7f606c;transform:translateY(-1px)}.primary span{font-size:17px}.outline{background:transparent;border:1px solid #c9baaa;color:var(--ink);font-size:11px;letter-spacing:.3px}.outline:hover{background:#f2e7dc}.quiet{font-size:9px;line-height:1.8;color:#8b8076}.customizer .quiet{margin:14px 0 0;font-size:8px}.skip{display:inline-block;color:#8d7e72;margin-top:15px;font-size:10px}.steering{display:flex;justify-content:center;align-items:center;gap:35px;margin:25px 0 15px}.steering button{border:1px solid #cbb7b5;background:#ead9d8;color:#8f6b76;border-radius:50%;height:54px;width:54px;font:25px Georgia}.steering span{font:italic 12px/1.5 Georgia}#gameMessage{position:absolute;inset:0;pointer-events:none;display:flex;align-items:center;justify-content:center;background:#fcf5e600;transition:background .7s}#gameMessage.finished{background:#f9f2e5c9;backdrop-filter:blur(3px)}.finish-card{margin:25px;padding:27px 18px;background:#fffaf0e8;border:1px solid #d6b9b7;border-radius:15px;animation:rise .7s ease both;pointer-events:auto}.finish-card .big-heart{font-size:36px;color:#b47d87}.finish-card h3{font-size:27px;margin:10px 0}.finish-card p{font-size:12px}.finish-card button{margin-top:9px}.tiny-ornament{font-size:33px;color:#bc9c83;margin-bottom:20px}.invitation{padding-top:40px;border-top:1px solid #e5d9ca}.parents{font:17px/1.8 Georgia;margin:26px 0}.parents span{font-size:13px;font-style:italic;color:#8b7c6f}.body-copy{font:14px/2 Georgia}.couple{font-size:33px;color:var(--rose);line-height:1.2;margin:30px 0}.couple span{display:block;font-size:23px;padding:10px}.event-date{margin:35px auto 14px;display:flex;flex-direction:column;align-items:center}.event-date>span{font-size:9px;letter-spacing:3px}.event-date strong{font:76px/1.3 Georgia;color:#787f68}.time{font:15px Georgia;margin:21px 0}.countdown{display:flex;align-items:center;justify-content:center;gap:22px;margin:42px 0 15px}.countdown strong{font:30px Georgia;display:block}.countdown span{font-size:7px;letter-spacing:2px}.countdown i{font:20px Georgia;color:#bcaaa1}.location{background:#e5e8dc80;border-top:1px solid #d9ddcf;border-bottom:1px solid #d9ddcf}.location h3{margin-bottom:5px;font-size:29px}.location>p:not(.eyebrow):not(.quiet){font-size:12px}.venue-art{width:100%;margin:15px auto 20px}.venue-art svg{width:100%}.button-row{display:flex;gap:10px;justify-content:center;margin-top:25px}.button-row .outline{padding:10px 17px}.timeline{text-align:left;margin:35px auto 0;max-width:360px}.timeline>div{display:grid;grid-template-columns:120px 1fr;padding:0 0 29px;position:relative;gap:26px}.timeline time{font-size:10px;text-align:right;padding-top:3px;color:var(--rose)}.timeline span{font:17px Georgia;line-height:1.3;position:relative}.timeline span:before{content:'';position:absolute;width:7px;height:7px;border-radius:50%;background:#b7bea5;left:-17px;top:6px;box-shadow:0 0 0 4px #f7f1e7}.timeline span:after{content:'';width:1px;background:#d4dac7;left:-14px;top:15px;height:calc(100% + 20px);position:absolute}.timeline>div:last-child span:after{display:none}.timeline small{display:block;font:10px/1.7 Arial;color:#8e8075;margin-top:7px}.wish{padding:35px 25px 65px}.wish>span{font-size:37px;color:var(--rose)}blockquote{font:italic 25px/1.6 Georgia;margin:22px 0}.wish>p:not(.body-copy){font-size:8px;letter-spacing:1.5px;color:var(--sage)}.divider{height:1px;width:65px;background:#bfa98f;margin:30px auto}.rsvp{background:#f0e3df80;border-top:1px solid #e5d3ce;border-bottom:1px solid #e5d3ce}.rsvp>p:not(.eyebrow){font-size:12px}form{text-align:left;max-width:360px;margin:30px auto 0}form>label,legend{display:block;font-size:11px;margin:18px 0 8px}form>label>span{color:#93877f;font-size:9px}input:not([type=radio]),textarea,select{border:1px solid #d5c7bb;background:#fffcf5;width:100%;padding:12px;border-radius:7px;color:var(--ink);font-size:12px}textarea{resize:vertical;min-height:90px}fieldset{border:0;padding:0;margin:18px 0}legend{padding:0;margin-bottom:10px}.radio{display:inline-flex;align-items:center;font-size:11px;margin-right:13px;gap:5px}input[type=radio]{accent-color:var(--rose)}form>.primary{margin-top:22px}form>.quiet{text-align:center}#rsvpResult{border:1px solid #c2cbb1;background:#e4e9dc;padding:15px;border-radius:8px;font-size:12px}.closing{padding-bottom:40px}.closing .small-script{margin-top:25px}.closing h2{font-size:38px}.closing>p:not(.small-script):not(.quiet){font:14px/1.9 Georgia}.closing>.outline{margin-top:15px}footer{text-align:center;background:#ebe5d9;padding:30px 30px 115px}footer>p:first-child{font-size:7px;letter-spacing:2px;color:#8a8176}footer>strong{font:25px Georgia;display:block}footer>strong em{font-size:20px}footer>span{display:block;font-size:7px;letter-spacing:1.4px;margin:13px auto 25px}.disclaimer{font-size:9px;line-height:1.8;color:#8c8377;max-width:340px;margin:auto}.bottom-nav{position:fixed;bottom:12px;left:16px;right:16px;display:flex;justify-content:space-around;padding:10px 7px 9px;z-index:5;background:#fffaf2ed;border:1px solid #d7c9b8;border-radius:17px;box-shadow:0 5px 28px #5f524123;backdrop-filter:blur(12px);max-width:470px}.bottom-nav a{font-size:8px;text-decoration:none;letter-spacing:.5px;min-width:50px;text-align:center}.bottom-nav a>span{display:block;font-size:22px;line-height:1.3;color:#8c6c75}#music{position:fixed;bottom:93px;right:max(22px,calc((100vw - 475px)/2));z-index:6;border:1px solid #d8cabb;border-radius:40px;background:#fffaf1ee;box-shadow:0 4px 18px #6d594d18;padding:9px 13px;display:flex;gap:7px;align-items:center;color:#7c7366}#music>span:first-child{font-size:19px}#musicText{font-size:9px}#music[aria-pressed=true]>span:first-child{animation:float 2s infinite}.welcome{position:fixed;inset:0;z-index:20;background:#e8e9df;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity 1s,visibility 1s;overflow:hidden}.welcome:before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 45%,#fffcf7 0%,transparent 65%)}.envelope{background:var(--paper);border:1px solid #d1bfaa;width:min(88%,420px);padding:40px 28px 30px;text-align:center;box-shadow:0 16px 70px #71654b18,inset 0 0 0 9px #f2ebdf;position:relative;border-radius:150px 150px 12px 12px;animation:rise 1.1s ease both}.envelope .floral{margin-bottom:20px}.envelope h1{font:39px/1.4 Georgia;letter-spacing:-1px;margin:20px 0 15px}.envelope h1 i{font-size:24px;color:var(--rose)}.envelope .small-script{font-size:17px}.intro-date{letter-spacing:4px;font-size:11px}.seal{border:1px solid #c79b9c;border-radius:50%;background:#e5c1bd;box-shadow:inset 0 0 0 4px #edd2ca,0 4px 10px #97736620;width:66px;height:66px;font:16px/66px Georgia;margin:26px auto;color:#936a6f;transform:rotate(-10deg)}.seal span{font-size:11px;margin:0 2px}.envelope .primary{max-width:250px;margin-top:7px}.envelope .quiet{margin:18px 0 0}.welcome-brand{font-size:8px;letter-spacing:2px;position:relative;margin-top:25px;color:#8b8072}.welcome-brand span{padding:0 7px}.welcome.opened{opacity:0;visibility:hidden;pointer-events:none}.welcome.opened .envelope{animation:depart 1s ease forwards}@keyframes rise{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes depart{to{transform:translateY(-35px) scale(1.06);opacity:0}}.reveal{opacity:0;transform:translateY(22px);transition:opacity .85s ease,transform .85s ease}.reveal.visible{opacity:1;transform:translateY(0)}@media(min-width:700px){body{background-image:radial-gradient(ellipse at 10% 20%,#f8ecdf 0%,transparent 45%),radial-gradient(ellipse at 90% 70%,#d8ded0 0%,transparent 45%);background-attachment:fixed}header,main,footer{box-shadow:0 0 80px #6e735814}.hero{padding-top:50px}.game-frame{margin-left:13px;margin-right:13px}.welcome-brand{margin-top:35px}}@media(max-width:360px){section{padding-left:22px;padding-right:22px}.hero h1{font-size:60px}.ride-section{padding-left:16px;padding-right:16px}.timeline>div{grid-template-columns:96px 1fr;gap:22px}.outfits{gap:8px}.stepper strong{font-size:9px}.radio{font-size:10px}.date-pill{gap:10px}.date-pill strong{padding:0 10px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
:root .game-top{top:110px;left:28px;right:28px}

.garden-intro{font:italic 16px/1.9 Georgia,serif;color:#8f7771;margin:0 0 20px}.garden-note{font:italic 16px/1.8 Georgia,serif;color:#8d6874;min-height:65px;padding:0 14px;animation:rise .4s ease both}#driveControls{padding:10px 0 20px}.game-frame canvas{cursor:pointer}

.collection-back{font-size:10px;text-decoration:none;border:1px solid #d6c8b6;border-radius:30px;padding:5px 13px;color:#8c7b69}
