@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:ital,wght@0,600;0,700;0,900;1,600&display=swap');
:root{--blue:#8ca8bd;--ink:#243a50;--red:#db4c30;--cream:#fff8e9;--lime:#dbff62}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;background:var(--blue);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:17px;line-height:1.65}a{color:inherit;text-underline-offset:5px}a:hover{color:var(--red)}.ticker{background:var(--red);color:var(--cream);border-bottom:2px solid var(--ink);overflow:hidden;font-weight:700;font-size:13px;letter-spacing:2px;padding:10px 0}.ticker div{white-space:nowrap;animation:marquee 45s linear infinite;width:max-content}@keyframes marquee{to{transform:translateX(-35%)}}header{padding:65px 30px 25px;text-align:center}.eyebrow{font-size:12px;letter-spacing:3px;font-weight:700}h1{font-family:Fraunces,Georgia,serif;font-size:clamp(55px,8.5vw,124px);line-height:1.1;letter-spacing:-5px;color:var(--cream);text-shadow:4px 5px 0 var(--red);margin:25px 0 42px}h1 i{color:var(--lime);font-size:.72em}.star{font-size:.55em;color:var(--lime);display:inline-block;vertical-align:middle;text-shadow:2px 2px var(--ink)}nav{display:flex;justify-content:center;flex-wrap:wrap;gap:10px}nav a,nav button{font:700 12px 'DM Sans',sans-serif;letter-spacing:1px;text-decoration:none;border:2px solid var(--ink);padding:13px 18px;background:var(--cream);box-shadow:3px 3px 0 var(--ink);color:var(--ink)}nav a:hover{background:var(--lime);transform:translateY(-2px)}nav button{background:transparent;box-shadow:none;opacity:.65}nav small{display:block;font-size:8px;margin-top:4px}main{max-width:1180px;margin:auto;padding:0 35px}.intro{max-width:820px;margin:48px auto 40px;text-align:center}.intro p{font-size:21px;line-height:1.7}.scribble{font:italic 600 25px Fraunces,Georgia,serif;color:var(--cream)}.events{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin:55px 0 70px}.events article{background:var(--cream);border:2px solid var(--ink);box-shadow:7px 7px 0 var(--ink);padding:26px 18px 30px;text-align:center;transform:rotate(-2deg)}.events article:last-child{transform:rotate(2deg)}.events .main-event{background:var(--lime);transform:rotate(1deg)}.events h2{font:600 29px Fraunces,Georgia,serif;margin:8px 0 20px}.event-icon{font-size:35px;color:var(--red);line-height:1.4}.events p{font-size:13px;letter-spacing:1px;margin:12px 0}.events strong{font-size:20px}.events span{font-size:14px;font-style:italic}.ribbon{text-align:center;font-size:12px;font-weight:700;letter-spacing:2px;border-block:2px solid var(--ink);padding:20px 0}.ribbon span{color:var(--red);font-size:20px;margin-left:15px}section{display:grid;grid-template-columns:1fr 1.75fr;gap:60px;border-bottom:2px solid var(--ink);padding:75px 0}.section-heading>span{font-size:11px;font-weight:700;letter-spacing:2px}.section-heading h2{font:700 clamp(33px,4vw,48px)/1.1 Fraunces,Georgia,serif;letter-spacing:-1px;margin:20px 0;color:var(--cream);text-shadow:2px 2px var(--ink)}.section-body>p:first-child{margin-top:0}.section-body h3{font:600 24px Fraunces,Georgia,serif;margin:30px 0 8px}.section-body p{margin:12px 0 22px}.section-body h3 a{text-decoration-thickness:1px}details{border-bottom:1px solid #243a5060;padding:20px 0}details:first-child{padding-top:0}summary{cursor:pointer;font-size:18px;font-weight:700;list-style:none;padding-right:30px;position:relative}summary:after{content:'+';position:absolute;right:0;color:var(--red);font-size:26px;top:-7px}details[open] summary:after{content:'−'}details p{font-size:16px}footer{text-align:center;padding:70px 20px;background:var(--cream);margin-top:70px}footer>span{font:italic 600 25px Fraunces,Georgia,serif}footer h2{font:700 60px Fraunces,Georgia,serif;color:var(--red);margin:10px}footer p,footer a{font-size:11px;letter-spacing:2px;font-weight:700}footer div{font-size:32px;color:var(--red);margin-top:22px}.heart{position:fixed;pointer-events:none;z-index:10;color:var(--red);animation:fade .9s ease-out forwards;font-size:22px}@keyframes fade{to{opacity:0;transform:translateY(30px) rotate(25deg)}}@media(max-width:700px){header{padding:40px 18px 15px}h1{letter-spacing:-3px;margin-bottom:30px}.star{display:none}main{padding:0 22px}.eyebrow{font-size:9px;letter-spacing:2px}nav{gap:9px}nav a,nav button{padding:10px;font-size:10px}.intro{margin-top:30px}.intro p{font-size:18px}.events{grid-template-columns:1fr;gap:25px;max-width:380px;margin:40px auto 55px}.events article{padding:20px}.events h2{margin-bottom:12px}section{grid-template-columns:1fr;gap:20px;padding:45px 0}.section-heading h2{margin:10px 0}.ribbon{font-size:10px}.section-body{font-size:16px}footer h2{font-size:44px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.ticker div{animation:none}.heart{display:none}}

.airports{padding-left:1.6em;margin-top:-10px;margin-bottom:26px}.airports li{padding-left:4px;margin:6px 0}
/* Our little corner of the World Wide Web */
body{background-color:#8ca8bd;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 64 64'%3E%3Cpath d='M12 5v14M5 12h14M44 39v10M39 44h10' stroke='%23fff8e9' opacity='.45'/%3E%3Ccircle cx='47' cy='14' r='1.5' fill='%23dbff62'/%3E%3Ccircle cx='17' cy='47' r='1' fill='%23243a50'/%3E%3C/svg%3E");font-family:Verdana,Arial,sans-serif;font-size:15px;color:#172c43}header{padding-top:40px}.eyebrow{display:inline-block;background:#fff8e9;padding:7px 14px;border:2px inset #d5dcec;font:700 12px 'Courier New',monospace;letter-spacing:1px}h1{font-family:Georgia,'Times New Roman',serif;font-weight:900;font-size:clamp(55px,8.5vw,116px);font-style:italic;letter-spacing:-4px;color:#fff8e9;-webkit-text-stroke:1px #243a50;text-shadow:3px 3px #db4c30,6px 6px #243a50;margin:24px 0 32px}h1 i{-webkit-text-stroke:1px #243a50}.star{animation:twinkle 1.8s steps(2,end) infinite}.star:last-child{animation-delay:.9s}@keyframes twinkle{50%{color:#db4c30;transform:scale(.85)}}.ticker{border:3px ridge #fff8e9;background:#243a50;color:#dbff62;font:700 14px 'Courier New',monospace;letter-spacing:1px;padding:8px}.ticker div{animation-duration:35s}nav{max-width:1000px;margin:auto;gap:8px}nav a,nav button{font:700 13px 'Courier New',monospace;letter-spacing:0;border:4px outset #fff8e9;background:#e8e8da;color:#233c65;box-shadow:2px 2px #243a50;padding:10px 15px;text-decoration:underline;text-underline-offset:2px}nav a:hover{transform:none;color:#db4c30;background:#dbff62}nav a:active{border-style:inset}nav button{opacity:.8;border-style:inset;background:#91a8ba;text-decoration:none}main{max-width:1080px}.intro{background:#fff8e9;border:5px ridge #c2d1df;padding:22px 30px;box-shadow:5px 5px #243a50;max-width:880px;margin-top:35px}.intro p{font-size:17px;line-height:1.75;margin-bottom:5px}.scribble{font:700 italic 25px Georgia,serif;color:#db4c30}.events{gap:20px;margin:38px 0 45px}.events article,.events article:last-child,.events .main-event{transform:none;border:5px ridge #fff8e9;outline:1px solid #243a50;box-shadow:4px 4px #243a50;background:#fff8e9;padding:20px 12px}.events .main-event{background:#dbff62;border-color:#dbff62}.events h2{font:700 26px 'Times New Roman',serif;text-decoration:underline;text-underline-offset:5px;color:#c43d26}.events p{font:700 12px 'Courier New',monospace;letter-spacing:0}.events strong{font-size:17px}.events span{font:italic 15px Georgia,serif}.event-icon{font-size:32px}.ribbon{background:#243a50;color:#dbff62;border:4px ridge #fff8e9;padding:9px;font:700 13px 'Courier New',monospace;letter-spacing:2px}.ribbon span{color:#ff6850}section{display:block;background:#fff8e9;border:5px ridge #c0ced9;margin:34px 0;padding:0;box-shadow:5px 5px #243a50}.section-heading{background:#243a50;border-bottom:4px ridge #c0ced9;text-align:center;padding:15px 20px}.section-heading>span{font:11px 'Courier New',monospace;letter-spacing:2px;color:#dbff62}.section-heading h2{font:700 31px 'Times New Roman',serif;letter-spacing:1px;color:#fff8e9;text-shadow:2px 2px #db4c30;margin:6px 0}.section-heading h2:before,.section-heading h2:after{content:' ✦ ';color:#dbff62;text-shadow:none}.section-body{padding:24px 34px}.section-body p{line-height:1.8;margin:10px 0 20px}.section-body h3{font:700 23px 'Times New Roman',serif;color:#c43d26;border-bottom:1px dotted #8ca8bd;padding-bottom:5px;margin:25px 0 8px}a{color:#223e92;text-decoration:underline;text-underline-offset:3px}a:visited{color:#694b80}a:hover{color:#d8482d}details{border:2px groove #c0ced9;margin:0 0 12px;padding:0;background:#fffdf5}details:first-child{padding-top:0}summary{padding:12px 40px 12px 13px;font:700 15px/1.5 Verdana,sans-serif;background:#e3ecf2;color:#243a50}summary:after{content:'[+]';font:700 16px 'Courier New',monospace;top:13px;right:12px}details[open] summary:after{content:'[−]'}details[open] summary{border-bottom:2px groove #c0ced9}details>div{padding:6px 16px}details p{font-size:14px}footer{background:#243a50;color:#fff8e9;border-top:5px ridge #c0ced9;padding:35px 20px;margin-top:45px}footer>span{font:italic 23px Georgia,serif;color:#dbff62}footer h2{font:italic 700 50px Georgia,serif;color:#fff8e9;text-shadow:3px 3px #db4c30}footer a{color:#dbff62}footer a:visited{color:#dbff62}footer p{font-family:'Courier New',monospace}.web-badges{display:flex;justify-content:center;gap:9px;flex-wrap:wrap;margin:22px 0!important}.web-badges span{display:inline-flex;align-items:center;justify-content:center;border:3px outset #c0ced9;background:#fff8e9;color:#243a50;font:bold 10px/1.3 'Courier New',monospace;padding:5px 9px;text-align:center;min-width:95px}.web-badges span:nth-child(2){background:#dbff62}.web-welcome{font:700 12px 'Courier New',monospace;color:#db4c30;text-align:center;margin:25px 0 0;letter-spacing:2px}.heart{font-family:Arial,sans-serif}a:focus-visible,summary:focus-visible{outline:3px solid #db4c30;outline-offset:4px}@media(max-width:700px){header{padding-top:28px}main{padding-inline:15px}.intro{padding:19px 17px}.intro p{font-size:15px}.events{gap:20px}.section-body{padding:18px}.section-heading{padding:12px}.section-heading h2{font-size:25px}.section-heading h2:before,.section-heading h2:after{font-size:18px}nav a,nav button{font-size:11px;padding:9px}.section-body h3{font-size:22px}footer h2{font-size:38px}}@media(prefers-reduced-motion:reduce){.star,.ticker div{animation:none}}

/* Two equal copies make the marquee restart at the same visual position. */
.ticker .ticker-track{display:flex;width:max-content;animation:seamless-marquee 60s linear infinite;white-space:nowrap}.ticker-copy{display:block;flex-shrink:0;white-space:pre}.ticker{overflow:hidden}@keyframes seamless-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}@media(prefers-reduced-motion:reduce){.ticker .ticker-track{animation:none}}

.couple-photo{width:min(100%,700px);margin:32px auto 0;padding:7px;background:#fff8e9;border:5px ridge #c0ced9;box-shadow:5px 5px #243a50}.couple-photo img{display:block;width:100%;height:auto}.web-welcome{font-size:19px;letter-spacing:1px;margin-top:23px}@media(max-width:700px){.couple-photo{margin-top:25px;padding:4px}.web-welcome{font-size:17px}}
/* Warmer ivory, with dusty-blue framing instead of navy panels. */
:root{--cream:#fff3d8;--ink:#40566a}body{color:#354b5e}.ticker{background:#db4c30;border-color:#fff3d8;color:#fff3d8}.eyebrow{background:#fff3d8;border-color:#e6d4ad}h1{color:#fff3d8;-webkit-text-stroke:1px #637e93;text-shadow:3px 3px #db4c30,5px 5px #637e93}h1 i{-webkit-text-stroke:1px #637e93}nav a,nav button{background:#fff3d8;border-color:#fff3d8;color:#405b71;box-shadow:2px 2px #637e93}nav button{background:#b4c5cf;border-color:#d9e0db}.intro{background:#fff3d8;border-color:#dfcda8;box-shadow:5px 5px #6f8ba0}.events article,.events article:last-child{background:#fff3d8;border-color:#fff3d8;outline-color:#6f8ba0;box-shadow:4px 4px #6f8ba0}.events .main-event{background:#dbff62;border-color:#dbff62}section{background:#fff3d8;border-color:#dfcda8;box-shadow:5px 5px #6f8ba0}.section-heading{background:#b0c3d0;border-color:#dfcda8}.section-heading h2{color:#b53b26;text-shadow:1px 1px #fff3d8}.section-heading h2:before,.section-heading h2:after{color:#526d82}details{background:#fff7e6;border-color:#e2cfaa}summary{background:#f4e6c8;color:#354b5e}details[open] summary{border-color:#e2cfaa}footer{background:#b0c3d0;color:#354b5e;border-color:#dfcda8}footer>span{color:#a93522}footer h2{color:#fff3d8;text-shadow:2px 2px #db4c30}footer a,footer a:visited{color:#354b5e}.couple-photo{background:#fff3d8;border-color:#dfcda8;box-shadow:5px 5px #6f8ba0}
