:root{--burgundy:#681c32;--forest:#102c25;--antique-gold:#c39b57;--warm-ivory:#f7efe0;--ink:#30251f;--parchment:#eadcc4;--serif:"Cormorant Garamond",Georgia,serif;--body:"EB Garamond",Georgia,serif;--script:"Great Vibes","Brush Script MT",cursive;--line:#c39b5755}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{color:var(--ink);background:var(--warm-ivory);font:19px/1.6 var(--body);-webkit-font-smoothing:antialiased;margin:0}#root{width:100%;overflow:clip}main{width:100%}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default}a{color:inherit}figure,p,h1,h2,h3,dl,dd{margin:0}img{max-width:100%;display:block}h1,h2,h3{font:400 1em/1.05 var(--serif);text-wrap:balance}h2{margin:14px 0 28px;font-size:clamp(37px,8vw,51px)}h3{font-size:32px}p+p{margin-top:18px}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--antique-gold);outline-offset:5px}.section-inner{width:100%;max-width:440px;margin:auto;position:relative}.eyebrow{font:500 10px/1.6 var(--body);letter-spacing:.2em;text-transform:uppercase;color:var(--burgundy)}.handwritten{font:italic 23px/1.45 var(--serif)}.date-line{letter-spacing:.13em;text-transform:uppercase;font-size:12px}.railway-mark{width:60px;height:60px;color:var(--antique-gold);margin:auto;display:block}.invitation-section{text-align:center;background:var(--warm-ivory);padding:85px 25px;position:relative}.button{background:var(--burgundy);min-height:52px;color:var(--warm-ivory);border:1px solid var(--antique-gold);box-shadow:inset 0 0 0 4px var(--burgundy),inset 0 0 0 5px #c39b5750;font:500 15px/1.4 var(--body);letter-spacing:.04em;border-radius:0;justify-content:center;align-items:center;padding:14px 28px;text-decoration:none;display:inline-flex}.button:hover{background:var(--forest)}.text-link{text-underline-offset:5px;font-size:15px}.script-names{font:62px/1.2 var(--script)}.script-names span{font:italic 25px var(--serif);margin:6px 0;display:block}.gold-rule{background:var(--antique-gold);width:60px;height:1px;margin:25px auto}.envelope-scene{z-index:100;background:radial-gradient(ellipse at 65% 20%,#fff9e9,transparent 70%),var(--parchment);perspective:1200px;justify-content:center;align-items:center;min-height:100svh;padding:30px 24px;display:flex;position:fixed;inset:0;overflow:hidden}.envelope-scene:after{content:"";pointer-events:none;border:1px solid #b496653b;position:absolute;inset:16px}.opening-content{text-align:center;z-index:1}.opening-content>.railway-mark{width:48px;height:48px;margin-bottom:24px}.opening-content>.eyebrow{max-width:260px;margin:0 auto 16px}.opening-content h1{max-width:300px;color:var(--burgundy);margin:0 auto 65px;font-size:45px}.opening-map{color:var(--antique-gold);opacity:.15;position:absolute;inset:-10% 0}.opening-map svg{width:100%;height:100%}.envelope-button{perspective:1200px;background:0 0;border:0;width:min(100%,345px);height:220px;padding:0;position:relative}.envelope-object{width:100%;height:100%;transform-style:preserve-3d;animation:5s ease-in-out infinite envelope-float;display:block;position:relative}.envelope-back{background:#e4cfaa;border:1px solid #baa071;position:absolute;inset:0;box-shadow:0 20px 40px #49301e35}.envelope-front{clip-path:polygon(0 0,50% 58%,100% 0,100% 100%,0 100%);z-index:4;background:linear-gradient(32deg,#e9d7b5 50%,#f6e9ce 50%);position:absolute;inset:0}.envelope-front:after{content:"";clip-path:polygon(0 100%,50% 48%,100% 100%);background:linear-gradient(135deg,#f1e3c9,#e5d1ac);position:absolute;inset:0}.envelope-flap{clip-path:polygon(0 0,100% 0,50% 58%);transform-origin:top;backface-visibility:hidden;z-index:6;filter:drop-shadow(0 2px 1px #563b2333);background:linear-gradient(#fff5df,#e4cda4);position:absolute;inset:0}.wax-seal{z-index:7;width:65px;height:65px;color:var(--burgundy);font:italic 21px var(--serif);background:radial-gradient(circle at 30% 25%,#d3b575,#b0823e);border:3px solid #ab813d;border-radius:47% 43% 48% 46%;place-items:center;margin:auto;display:grid;position:absolute;top:93px;left:0;right:0;box-shadow:0 5px 9px #3c27194d,inset 0 0 0 3px #ffe0a33d}.opening-ticket{background:var(--warm-ivory);border:4px double var(--antique-gold);z-index:2;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:15px 18px;box-shadow:0 5px 20px #45321d2b}.opening-ticket:before,.opening-ticket:after{content:"";background:#e4cfaa;border-radius:50%;width:12px;height:12px;position:absolute;top:50%;left:-7px}.opening-ticket:after{left:auto;right:-7px}.opening-ticket .eyebrow{font-size:9px}.ticket-initials{font:italic 48px/1.2 var(--serif);color:var(--burgundy);margin:7px 0}.ticket-route{letter-spacing:.13em;text-transform:uppercase;font-size:12px}.opening-ticket .railway-mark{width:28px;height:28px;margin-top:12px}.intro-prompt{color:var(--burgundy);margin-top:40px;font-size:17px;font-style:italic}.intro-foot{letter-spacing:.1em;margin-top:25px;font-size:10px}.opening-sparks{color:var(--antique-gold);pointer-events:none;justify-content:space-between;font-size:20px;animation:4s ease-in-out infinite gold-glimmer;display:flex;position:absolute;inset:auto 25px 50px}.opening-sparks span{transform:translateY(-100px)}.is-opening .envelope-object{animation:envelope-lift var(--opening-duration) both}.is-opening .wax-seal{animation:.6s .1s forwards seal-release}.is-opening .envelope-flap{animation:.8s .45s forwards flap-open}.is-opening .opening-ticket{animation:ticket-rise calc(var(--opening-duration) - 1s) 1s forwards}.is-opening .envelope-back,.is-opening .envelope-front{animation:.9s 2.6s forwards envelope-away}.is-opening .opening-content>h1,.is-opening .opening-content>.eyebrow,.is-opening .opening-content>.railway-mark{animation:.8s 1.6s forwards fade-away}@keyframes envelope-float{50%{transform:translateY(-8px)rotate(-1deg)}}@keyframes envelope-lift{20%{transform:translateY(-12px)}to{transform:translateY(0)}}@keyframes seal-release{to{opacity:0;transform:translate(18px,70px)rotate(25deg)}}@keyframes flap-open{49%{z-index:6}50%,to{z-index:1;transform:rotateX(180deg)}}@keyframes ticket-rise{0%{transform:translateY(0)}50%{transform:translateY(-130px)}80%,to{transform:translateY(-100px)scale(1.12);box-shadow:0 25px 45px #49301e35}}@keyframes envelope-away{to{opacity:0;transform:translateY(70px)}}@keyframes fade-away{to{opacity:0}}@keyframes gold-glimmer{50%{opacity:.3}}.train-hero{isolation:isolate;background:var(--forest);text-align:center;height:max(850px,100svh);color:var(--warm-ivory);padding:35px 25px 25px;position:relative;overflow:hidden}.hero-scenery{object-fit:cover;object-position:center 60%;z-index:-3;width:100%;max-width:none;height:100%;position:absolute;inset:0}.hero-shade{z-index:-2;background:linear-gradient(#102c25b8 0%,#102c2580 40%,#102c2500 72%,#102c259c 100%);position:absolute;inset:0}.hero-content{flex-direction:column;align-items:center;height:100%;display:flex}.hero-masthead{border-bottom:1px solid #eed9b070;justify-content:space-between;align-items:center;width:100%;margin-bottom:35px;padding:0 0 18px;display:flex}.hero-masthead .railway-mark{color:#ecd2a0;width:39px;height:39px;margin:0}.hero-masthead>span{letter-spacing:.2em;text-transform:uppercase;font-size:9px}.train-hero .eyebrow{color:#f0d7ab;font-size:10px}.train-hero h1{letter-spacing:.11em;text-transform:uppercase;margin:13px 0 23px;font-size:26px}.hero-names{font:70px/1.05 var(--script);text-shadow:0 2px 25px #102c2580}.hero-names>span{display:block}.hero-names i{font:italic 30px/1.2 var(--serif);margin:8px 0;display:block}.hero-details{margin-top:24px}.hero-subtitle{font:italic 20px/1.4 var(--serif);max-width:260px;margin:auto}.hero-details time,.hero-details .hero-teaser{letter-spacing:.15em;text-transform:uppercase;margin-top:22px;font-size:12px;display:block}.hero-destination{margin-top:8px;font-size:13px}.hero-scroll{text-transform:uppercase;letter-spacing:.16em;text-shadow:0 1px 7px #000;margin-top:auto;padding-top:35px;font-size:9px;text-decoration:none}.hero-scroll span{margin-top:6px;font-size:22px;display:block}.hero-steam{filter:blur(12px);z-index:-1;pointer-events:none;background:radial-gradient(#fff9e438,#0000 65%);width:300px;height:160px;animation:9s ease-out steam-drift;position:absolute;bottom:24%;left:15%}@keyframes steam-drift{0%{opacity:0;transform:translateY(20px)}40%{opacity:.8}to{opacity:0;transform:translate(70px,-90px)}}.ticket-section{background:var(--parchment)}.ticket-section h2{font-size:43px}.wedding-ticket{background:#fbf4e5;border:1px solid #b79861;position:relative;transform:rotate(-1deg);box-shadow:6px 8px #cdb99240,0 15px 30px #4c301b20}.wedding-ticket:before,.wedding-ticket:after{content:"";background:var(--parchment);z-index:1;border:1px solid #b79861;border-radius:50%;width:20px;height:20px;position:absolute;bottom:87px;left:-11px}.wedding-ticket:after{left:auto;right:-11px}.ticket-topline{background:var(--forest);color:var(--warm-ivory);justify-content:space-between;align-items:center;gap:8px;padding:14px 17px;display:flex}.ticket-topline .railway-mark{width:33px;height:33px;margin:0}.ticket-topline p{font:20px var(--serif)}.ticket-topline>span{font:italic 17px var(--serif);color:var(--antique-gold);white-space:nowrap}.ticket-main{padding:30px 23px 25px}.ticket-main h3{font:42px/1.1 var(--script);color:var(--burgundy);justify-content:center;align-items:center;gap:10px;margin:20px 0 30px;display:flex}.ticket-main h3 i{font:italic 23px var(--serif)}.ticket-route-row{border-block:1px solid var(--line);justify-content:space-between;align-items:center;padding:15px 0;display:flex}.ticket-route-row small{text-transform:uppercase;letter-spacing:.08em;font-size:10px;display:block}.ticket-route-row strong{font:28px var(--serif);color:var(--burgundy);margin-top:4px;display:block}.ticket-route-row>span{color:var(--antique-gold);font-size:32px}.ticket-details{text-align:left;margin-top:23px}.ticket-details>div{padding:10px 0}.ticket-details dt{letter-spacing:.12em;text-transform:uppercase;color:#725a39;font-size:9px}.ticket-details dd{margin-top:3px;font-size:17px}.ticket-message{margin-top:22px;font-size:15px;font-style:italic;line-height:1.5}.ticket-stub{text-align:left;border-top:1px dashed #b79861;justify-content:space-between;align-items:center;gap:12px;padding:18px 21px;display:flex}.ticket-stub small{text-transform:uppercase;letter-spacing:.08em;font-size:8px;display:block}.ticket-stub>span{color:var(--burgundy);font-size:15px}.ticket-stub b{letter-spacing:.08em;white-space:nowrap;color:var(--burgundy);border:2px solid #681c3266;padding:8px;font-size:10px;font-weight:400;transform:rotate(-8deg)}.ticket-disclaimer{letter-spacing:.06em;text-transform:uppercase;color:#725a39;padding:0 15px 12px;font-size:9px}.couple-section .invitation-copy{font-size:21px}.couple-portrait{max-width:330px;margin:38px auto 30px;position:relative}.couple-portrait>div{border:1px solid var(--antique-gold);border-radius:160px 160px 0 0;padding:9px}.couple-portrait img{object-fit:cover;filter:sepia(.12);border-radius:150px 150px 0 0;width:100%;height:370px}.couple-portrait figcaption{font:italic 18px var(--serif);margin-top:16px}.couple-section>.section-inner>.railway-mark{width:42px;height:42px;margin-bottom:18px}.couple-section:after{content:"";background:var(--line);height:1px;position:absolute;bottom:0;left:25%;right:25%}.railway-journey{text-align:center;background:#e8dbc2;padding:80px 24px 65px}.railway-journey header{margin:auto}.railway-journey h2{font-size:46px}.railway-journey header>p:last-child{font-size:18px}.route-canvas{height:1150px;margin:45px auto 0;position:relative}.railway-map{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.parallel-rail{fill:none;stroke:#806b48;stroke-width:2px}.rail-sleepers{stroke:#8e7852;stroke-width:4px;opacity:.5}.route-progress{fill:none;stroke:var(--antique-gold);stroke-width:3px;stroke-linecap:round}.route-locomotive,.train-carriage{filter:drop-shadow(2px 3px 2px #30251f40)}.station-milestones{pointer-events:none;flex-direction:column;justify-content:space-between;margin:0;padding:0;list-style:none;display:flex;position:absolute;inset:0}.station-milestones li{text-align:left;align-items:center;width:41%;min-height:140px;display:flex}.station-milestones li:nth-child(2n){text-align:right;align-self:flex-end}.station-milestones a{pointer-events:auto;text-decoration:none;display:block}.station-milestones a>span{text-transform:uppercase;letter-spacing:.12em;color:var(--burgundy);background:#f7efe080;border:1px solid #b59b6e;padding:3px 8px;font-size:9px;display:inline-block}.station-milestones h3{margin:10px 0 8px;font-size:28px}.station-milestones small{font:italic 15px/1.35 var(--serif);display:block}.railway-journey .handwritten{margin-top:30px}.countdown-section{background:var(--burgundy);color:var(--warm-ivory);text-align:center;padding:80px 24px}.countdown-section .eyebrow{color:#e4c38b}.countdown-section h2{font-size:43px}.station-clock{color:#e4c38b;width:78px;height:78px;margin:0 auto 26px}.departure-board{text-align:left;background:#182721;border:5px double #a38753;margin-top:35px;padding:16px 17px;box-shadow:0 10px 20px #240c182b}.board-top{color:#dec28f;letter-spacing:.09em;text-transform:uppercase;border-bottom:1px solid #c39b5750;justify-content:space-between;gap:12px;padding-bottom:16px;font-size:9px;display:flex}.countdown-dials{grid-template-columns:repeat(4,1fr);gap:8px;padding:22px 0;display:grid}.countdown-dials>div{text-align:center;perspective:500px;min-width:0}.countdown-dials span{font:43px/1.4 var(--serif);font-variant-numeric:tabular-nums;color:#f2dfb9;background:linear-gradient(#091b16 49.5%,#2c3930 50%,#0a2019 51%);border:1px solid #c39b572e;display:block;position:relative;box-shadow:0 3px 2px #0003}.countdown-dials small{letter-spacing:.07em;text-transform:uppercase;color:#d1b989;margin-top:9px;font-size:8px;display:block}.board-status{letter-spacing:.09em;color:#d5c4a8;border-top:1px solid #c39b5750;padding-top:14px;font-size:10px}.board-status>span{background:#c39b57;border-radius:50%;width:5px;height:5px;margin-right:5px;display:inline-block}.stations-section{background:var(--warm-ivory)}.event-stations{text-align:left;margin:45px 0 0;padding-left:43px;position:relative}.event-stations:before{content:"";background:repeating-linear-gradient(#0000 0 11px,#b49b726e 11px 14px);border-inline:1px solid #a68e65;width:9px;position:absolute;top:20px;bottom:60px;left:8px}.event-station{padding:0 0 48px;position:relative}.event-station:last-child{padding-bottom:0}.station-stop{background:var(--forest);color:#e6c991;border:3px double var(--antique-gold);z-index:1;border-radius:50%;place-items:center;width:33px;height:33px;font-size:10px;display:grid;position:absolute;top:37px;left:-47px}.event-station>.eyebrow{letter-spacing:.13em;margin-bottom:10px;font-size:8px}.station-sign{width:100%;color:var(--warm-ivory);font:32px/1.1 var(--serif);border:3px double var(--antique-gold);background:var(--forest);text-align:left;justify-content:space-between;align-items:center;gap:8px;padding:14px 17px;display:flex;box-shadow:0 5px 10px #30251f16}.station-sign>span{font:21px var(--body);color:#dec28f}.station-1 .station-sign{background:#8a632a}.station-2 .station-sign{background:var(--burgundy)}.event-description{font:italic 20px/1.4 var(--serif);margin-top:20px}.event-schedule,.event-venue,.event-attire{margin-top:14px;font-size:16px;line-height:1.5}.event-venue{color:#786249}.event-attire{font-style:italic}.station-expanded{overflow:hidden}.station-expanded p{color:var(--burgundy);padding:15px 0 0;font-size:15px}.event-station>a{margin-top:17px;display:inline-block}.destination-section{background:var(--parchment)}.destination-art{color:var(--forest);background:#f2e6cf;border:1px solid #b99d6c;margin:35px auto;padding:12px}.destination-art svg{width:100%;display:block}.destination-art img{object-fit:cover;width:100%;max-height:350px}.destination-art figcaption{font:italic 13px var(--serif);margin:12px 0 5px}.destination-section h3{max-width:320px;margin:25px auto 20px;font-size:31px}.destination-section address{margin-bottom:18px;font-style:normal}.destination-section time{margin:23px 0;font-size:15px;display:block}.destination-section .button{margin-top:28px}.destination-section iframe{border:1px solid var(--antique-gold);width:100%;height:300px;margin-top:30px}.dress-section{background:#efe5d2}.suitcase{background:var(--burgundy);border:5px double var(--antique-gold);border-radius:6px;width:165px;height:113px;margin:45px auto 35px;position:relative;transform:rotate(-7deg);box-shadow:5px 7px #c9b38b55}.suitcase-handle{border:5px solid #8c6636;border-radius:7px 7px 0 0;width:55px;height:19px;margin:auto;position:absolute;top:-23px;left:0;right:0}.suitcase-stripe{border-inline:1px solid var(--antique-gold);background:#956a3a;width:10px;position:absolute;top:0;bottom:0;left:25px}.suitcase-stripe:last-child{left:auto;right:25px}.luggage-tag{z-index:1;color:var(--burgundy);border:1px solid var(--antique-gold);font:italic 17px var(--serif);background:#ecd8b2;padding:7px 12px;position:absolute;top:10px;right:-30px;transform:rotate(25deg)}.attire-list{margin:28px auto 0}.attire-list>div{border-bottom:1px solid var(--line);text-align:left;justify-content:space-between;gap:20px;padding:14px 0;font-size:18px;display:flex}.attire-list dd{color:var(--burgundy);font-style:italic}.dress-colors{flex-wrap:wrap;justify-content:center;gap:20px;padding:0;list-style:none;display:flex}.dress-colors span{border:1px solid var(--line);border-radius:50%;width:32px;height:32px;margin:auto;display:block}.guest-section article{border-bottom:1px solid var(--line);padding:25px 0}.guest-section h3{margin-bottom:15px;font-size:27px}.forever-station{isolation:isolate;background:var(--forest);color:var(--warm-ivory);text-align:center;align-items:center;min-height:1040px;padding:75px 25px 50px;display:flex;position:relative;overflow:hidden}.closing-scenery{z-index:-3;object-fit:cover;object-position:center;width:100%;max-width:none;height:100%;position:absolute;inset:0}.closing-shade{z-index:-2;background:linear-gradient(#102c2585,#102c25b0 45%,#102c25ed);position:absolute;inset:0}.closing-content{padding:20px 0}.closing-content .eyebrow{color:#e1c18a;margin-top:20px}.closing-content h2{max-width:300px;margin:20px auto 30px;font-size:49px}.closing-message{font:italic 23px/1.5 var(--serif);max-width:340px;margin:auto}.closing-content>.handwritten{margin-top:35px;font-size:17px}.closing-content .script-names{margin:20px 0 28px}.closing-content .date-line{color:#e8d1a9}.closing-content>.button{color:#30251f;background:#c39b57;border-color:#e6c487;margin-top:35px;box-shadow:inset 0 0 0 4px #c39b57,inset 0 0 0 5px #30251f55}.demo-footnote{color:#e6d8c1;max-width:280px;margin:18px auto 0;font-size:12px;line-height:1.5}.back-link{text-underline-offset:5px;margin-top:30px;font-size:12px;display:inline-block}@media (width<=600px){.railway-map{width:145%;left:-22.5%}.route-canvas{height:1120px}.station-milestones h3{font-size:25px}.station-milestones small{font-size:15px}.station-milestones li{width:40%;min-height:140px}.railway-journey h2{font-size:43px}}@media (width<=350px){.opening-content h1{margin-bottom:55px;font-size:38px}.opening-content>.railway-mark{width:40px;height:40px;margin-bottom:18px}.envelope-button{height:185px}.wax-seal{width:58px;height:58px;top:76px}.intro-foot{font-size:9px}.train-hero{padding-inline:22px}.hero-names{font-size:63px}.hero-masthead{margin-bottom:33px}.train-hero h1{font-size:23px}.invitation-section{padding:70px 22px}.ticket-main{padding-inline:17px}.ticket-main h3{gap:8px;font-size:35px}.ticket-route-row strong{font-size:24px}.ticket-stub{padding-inline:15px}.ticket-stub b{padding:6px;font-size:9px}.couple-portrait img{height:325px}.railway-journey{padding-inline:22px}.station-milestones h3{font-size:23px}.station-milestones a>span{padding:3px 6px;font-size:8px}.station-milestones small{font-size:14px}.countdown-section{padding-inline:22px}.countdown-section h2{font-size:38px}.departure-board{padding:14px 12px}.countdown-dials{gap:6px}.countdown-dials span{font-size:35px}.countdown-dials small{letter-spacing:0;font-size:7px}.board-top{font-size:8px}.event-stations{padding-left:38px}.station-stop{left:-41px}.station-sign{padding:12px;font-size:29px}.forever-station{padding-inline:22px}.closing-content h2{font-size:44px}}@media (height<=720px){.opening-content h1{margin-bottom:40px;font-size:36px}.opening-content>.railway-mark{width:35px;height:35px;margin-bottom:15px}.opening-content>.eyebrow{font-size:9px}.envelope-button{height:185px}.wax-seal{top:76px}.intro-prompt{margin-top:28px}.intro-foot{margin-top:18px}}@media (width>=900px){.train-hero{height:max(900px,100svh)}.hero-scenery{object-position:center 65%}.hero-masthead{margin-bottom:40px}.hero-names{font-size:80px}.hero-details{margin-top:28px}.hero-shade{background:linear-gradient(#102c259c,#102c2570 60%,#102c259c)}.forever-station{min-height:1120px}.closing-shade{background:#102c25a8}.invitation-section{padding-block:95px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}.hero-steam{display:none}}.opening-map circle{fill:var(--warm-ivory);stroke:currentColor;stroke-width:1px}.hero-details{text-shadow:0 2px 7px #102c25,0 0 20px #102c25}.hero-video{z-index:-2}.hero-shade{z-index:-1}.hero-steam{z-index:0}.hero-content{z-index:1}.scratch-station{background:var(--parchment)}.scratch-station h2{font-size:45px}.scratch-station>.section-inner>.eyebrow{letter-spacing:.16em;font-size:9px}.scratch-subtitle{max-width:350px;font:italic 22px/1.4 var(--serif);margin:0 auto 35px}.golden-ticket{isolation:isolate;background:#fcf4e3;border:1px solid #af8748;position:relative;box-shadow:6px 8px #c9af7f4d,0 16px 30px #49331f1a}.golden-ticket:before,.golden-ticket:after{content:"";z-index:2;background:var(--parchment);border:1px solid #af8748;border-radius:50%;width:20px;height:20px;position:absolute;bottom:41px;left:-11px}.golden-ticket:after{left:auto;right:-11px}.golden-ticket-header{background:var(--forest);color:var(--warm-ivory);border-bottom:3px double var(--antique-gold);justify-content:space-between;align-items:center;gap:9px;padding:15px 18px;display:flex}.golden-ticket-header .railway-mark{flex:none;width:32px;height:32px;margin:0}.golden-ticket-header h3{font:23px/1.2 var(--serif)}.golden-ticket-header>span{font:italic 18px var(--serif);color:#e6cb96;white-space:nowrap}.golden-ticket-body{padding:26px 22px 20px}.golden-ticket-body>.eyebrow{letter-spacing:.13em;font-size:9px}.golden-ticket-initials{font:italic 40px/1.2 var(--serif);color:var(--burgundy);margin:15px 0 23px}.scratch-surface{isolation:isolate;background:#f9edcf;border:1px solid #ad8649;width:100%;height:186px;position:relative;box-shadow:inset 0 0 0 5px #e9d7ad}.scratch-date{color:var(--burgundy);flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:14px 10px}.scratch-date p{text-transform:uppercase;letter-spacing:.14em;font-size:10px}.scratch-date time,.scratch-date strong{font:500 clamp(22px,5.3vw,31px)/1.2 var(--serif);text-transform:uppercase;font-variant-numeric:lining-nums;text-wrap:balance;margin:14px 0 15px;display:block}.scratch-date>span{font:italic 18px var(--serif)}.scratch-cover{touch-action:none;cursor:crosshair;-webkit-user-select:none;user-select:none;opacity:1;z-index:1;width:100%;height:100%;transition:opacity .65s;display:block;position:absolute;inset:0}.is-revealed .scratch-cover{opacity:0;pointer-events:none;touch-action:auto}.scratch-help{color:#6b5535;max-width:300px;margin:18px auto 0;font-size:13px;line-height:1.5}.scratch-actions{justify-content:center;align-items:center;gap:20px;margin-top:22px;display:flex}.scratch-reveal-button{min-height:46px;padding:11px 22px;font-size:14px}.scratch-reveal-button:disabled{background:var(--forest);box-shadow:inset 0 0 0 4px var(--forest),inset 0 0 0 5px #c39b5750;opacity:1;cursor:default}.scratch-reset{color:var(--burgundy);background:0 0;border:0;border-bottom:1px solid #95733b;min-height:44px;padding:8px 2px;font-size:14px}.scratch-status{font:italic 18px/1.4 var(--serif);color:var(--burgundy);justify-content:center;align-items:center;max-width:310px;min-height:76px;margin:24px auto 0;display:flex}.scratch-venue{margin-top:18px;font-size:16px}.golden-ticket-stub{color:#735325;letter-spacing:.05em;border-top:1px dashed #b59156;justify-content:space-between;gap:12px;padding:15px 20px;font-size:10px;display:flex}.golden-ticket-stub>span:last-child{white-space:nowrap}.scratch-sparkles{pointer-events:none;z-index:3;position:absolute;inset:0;overflow:hidden}.scratch-sparkles>span{left:var(--spark-x);color:#c09643;text-shadow:0 0 10px #f5db91;opacity:0;animation:ticket-sparkle 1.2s var(--spark-delay) ease-out both;font-size:17px;position:absolute;top:55%}@keyframes ticket-sparkle{0%{opacity:0;transform:translateY(10px)scale(.4)}25%{opacity:1}to{opacity:0;transform:translate(var(--spark-drift),-95px) scale(.7) rotate(50deg)}}@media (width<=350px){.scratch-station h2{font-size:38px}.scratch-subtitle{font-size:20px}.golden-ticket-header{gap:7px;padding:14px 12px}.golden-ticket-header h3{font-size:21px}.golden-ticket-header>span{font-size:16px}.golden-ticket-body{padding:24px 16px 18px}.scratch-date time{font-size:24px}.scratch-actions{gap:17px}.scratch-reveal-button{padding:11px 18px}.golden-ticket-stub{padding-inline:15px;font-size:9px}}@media (prefers-reduced-motion:reduce){.scratch-cover{transition:none}.scratch-sparkles{display:none}}.rsvp-modal{border:5px double var(--antique-gold);width:min(100% - 28px,530px);max-height:calc(100dvh - 28px);color:var(--ink);overscroll-behavior:contain;background:linear-gradient(90deg,#e1cfad,#f7efe0 7% 94%,#e1cfad);border-radius:0;margin:auto;padding:0;position:fixed;overflow-y:auto;box-shadow:0 30px 100px #0007}.rsvp-modal::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#101c16c9}.modal-close{float:right;z-index:2;background:var(--burgundy);color:var(--warm-ivory);border:1px solid var(--antique-gold);place-items:center;width:42px;height:42px;margin:12px 12px 0 0;display:grid;position:sticky;top:12px}.rsvp-modal__body{clear:both;padding:16px 25px 30px}.rsvp-modal h2{margin:15px 0 20px;font-size:39px}.demo-note{border-left:2px solid var(--antique-gold);background:#c39b5712;padding:10px 12px;font-size:14px;line-height:1.6}.field{border:0;min-width:0;margin:23px 0 0;padding:0}.field>label:not(.radio-label),.field legend{margin-bottom:8px;font-size:16px;display:block}.field input:not([type=radio]),.field textarea{width:100%;min-height:47px;color:var(--ink);background:#fffcf566;border:1px solid #ad9470;border-radius:0;padding:10px 12px;font-size:17px;line-height:1.5;display:block}.field textarea{resize:vertical;min-height:90px}.radio-label{align-items:center;gap:12px;min-height:44px;font-size:17px;display:flex}.radio-label input{width:19px;height:19px;accent-color:var(--burgundy)}.field input:disabled{opacity:.4}.field [aria-invalid=true]{border-color:var(--burgundy)}.field-error{color:var(--burgundy);margin-top:8px;font-size:14px}.rsvp-modal form>.button{width:100%;margin-top:25px}.reply-preview{overflow-wrap:anywhere;padding-top:25px}.reply-preview h3{font-size:30px}.reply-preview dl>div{border-bottom:1px solid var(--line);padding:13px 0}.reply-preview dt{color:var(--burgundy);font-size:13px}.reply-preview dd{white-space:pre-wrap;font-size:20px}.reply-preview>.button{margin-top:25px}.music-controls{bottom:max(18px,env(safe-area-inset-bottom));z-index:30;gap:6px;display:flex;position:fixed;right:18px}.music-controls button{border:1px solid var(--antique-gold);background:var(--forest);width:42px;height:42px;color:var(--warm-ivory);place-items:center;display:grid}.music-error{z-index:30;background:var(--warm-ivory);max-width:250px;padding:10px;font-size:14px;position:fixed;bottom:70px;right:18px}
