@font-face{font-family:Barlow;src:url('assets/heading.ttf') format('truetype');font-weight:800;font-display:swap}
:root{--paper:#f5f5f5;--ink:#080808;--red:#ad1113;--pad:clamp(22px,3.52vw,48px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font:20px/1.4 Arial,Helvetica,sans-serif}button{font:inherit}button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}a{color:inherit;text-underline-offset:4px}img{display:block;max-width:100%;height:auto}h1,h2,h3,p,figure{margin:0}h1,h2{font-family:Barlow,'Arial Narrow',Impact,sans-serif;font-weight:800;line-height:1.02;text-transform:uppercase;letter-spacing:-.035em;font-size:clamp(48px,7.4vw,101px)}h3{font-size:inherit;line-height:1.4;margin-bottom:26px}p+p{margin-top:28px}a:focus-visible,button:focus-visible{outline:3px solid var(--red);outline-offset:5px}[hidden]{display:none!important}.section{padding:var(--pad);max-width:1366px;margin-inline:auto}.split{display:grid;grid-template-columns:1fr 1fr;gap:48px}.split>*,.accommodation-columns>*,.memory-top>*,.gallery>*{min-width:0}.button{display:inline-flex;justify-content:center;align-items:center;min-height:44px;padding:9px 28px;border:1px solid transparent;border-radius:999px;text-decoration:none;font-size:16px;line-height:1.2;text-align:center;cursor:pointer;transition:background .18s,transform .18s}.button:hover{transform:translateY(-2px)}.button.red{background:var(--red);color:white}.button.red:hover{background:#860a0c}
.hero{padding-top:20px}.hero-heading{width:65%;margin:0 auto 42px}.hero h1,.hero h2{font-size:clamp(62px,10.6vw,145px);white-space:nowrap;letter-spacing:-.042em}.hero-meta{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:22px}.hero-meta p{text-transform:uppercase;font-size:16px;line-height:1.2}.hero-meta .button{width:32%}.hero-photo{width:100%;aspect-ratio:1269/431;object-fit:cover}.intro{position:relative;min-height:min(56.22vw,768px);padding-top:33px;overflow:hidden}.intro-copy{position:relative;z-index:2;width:36%}.intro-copy p{font-size:clamp(16px,2.05vw,28px);margin-top:14px;max-width:450px}.portrait-main{position:absolute;right:0;top:20px;width:52%;height:auto}.portrait-small{position:absolute;left:7.1%;top:34%;width:45.2%;height:auto}
.venue-section{padding-top:70px;padding-bottom:55px;align-items:start}.venue-copy{font-size:clamp(18px,1.9vw,26px)}.venue-copy>p{margin-top:48px}.parking{margin-top:70px}.map-link{overflow-wrap:anywhere;font-size:.93em}.venue-photo{width:100%;margin-top: 90px}.accommodation{padding-top:42px;padding-bottom:75px}.accommodation-note{font-size:clamp(17px,1.8vw,24px);margin-top:34px;max-width:1160px}.accommodation-columns{display:grid;grid-template-columns:1fr 1fr;gap:54px;max-width:1160px;margin-top:54px;font-size:clamp(17px,1.8vw,24px)}.rsvp{position:relative;min-height:min(56.22vw,768px);border-top:0px solid white;padding-top:34px}.rsvp-text{position:relative;width:43%;z-index:1}.rsvp-copy{padding-top:25px;font-size:clamp(18px,1.95vw,27px)}.rsvp-photo{position:absolute;width:65%;right:2%;top:60px;pointer-events:none}.rsvp-link{margin-top:30px}.schedule{min-height:768px;padding-top:33px}.schedule-list{margin:110px 0 0 4%;max-width:850px;font-size:clamp(18px,2.1vw,29px)}.schedule-list>div{display:grid;grid-template-columns:280px 1fr;gap:40px;margin-bottom:26px}.schedule-list dt{white-space:nowrap}.schedule-list dd{margin:0}
#memories{border-top:0px solid white}.memory-top{display:grid;grid-template-columns:1.28fr 1fr;gap:40px;padding-top:48px;min-height:768px}.memory-top h2{overflow-wrap:anywhere}.memory-top figure{max-width:324px;margin-top:90px}.memory-top figcaption{font-size:16px;margin-top:18px}.photo-button{display:block;border:0;padding:0;background:transparent;cursor:zoom-in;align-self:start}.photo-button img{width:100%;object-fit:cover}.photo-button:hover img{filter:brightness(.95)}.tall img{aspect-ratio:547/672}.gallery{display:grid;grid-template-columns:303fr 415fr 505fr;gap:24px;min-height:768px}footer{border-top:1px solid #ccc;padding-block:35px!important}footer nav{display:flex;flex-wrap:wrap;gap:28px;font-size:14px}.skip-link{position:fixed;z-index:10;left:12px;top:12px;transform:translateY(-160%);background:white;padding:12px}.skip-link:focus{transform:none}dialog{padding:20px;border:0;background:var(--paper);max-width:min(90vw,720px);max-height:90vh}dialog::backdrop{background:#000b}dialog>img{max-height:72vh;max-width:100%;margin:auto;object-fit:contain;min-width:200px}dialog p{margin-top:14px}.lightbox-close{display:block;margin:0 0 12px auto;width:44px;height:44px;border:1px solid #777;border-radius:50%;font-size:28px;cursor:pointer;background:white}
@media(max-width:1000px){.hero-heading{width:72%}.hero-meta p{font-size:14px}.intro{min-height:58vw}.venue-section{gap:30px;padding-top:48px}.venue-copy>p{margin-top:28px}.parking{margin-top:35px}.accommodation-columns{gap:35px}.schedule{min-height:580px}.schedule-list{margin-top:70px}.schedule-list>div{grid-template-columns:210px 1fr;gap:25px}.memory-top,.gallery{min-height:560px}.memory-top figure{width:65%;margin-top:50px}.rsvp{min-height:60vw}.rsvp-copy{font-size:20px}.rsvp-photo{top:65px}}
@media(max-width:640px){:root{--pad:22px}.hero{padding-top:30px}.hero-heading{width:100%;margin-bottom:28px}.hero h1,.hero h2{font-size:clamp(45px,12.2vw,78px);text-align:center}.hero-meta{margin-top:20px;gap:12px}.hero-meta p{font-size:12px}.hero-meta .button{width:auto;min-width:100px;padding-inline:14px;font-size:14px}.hero-photo{aspect-ratio:1.85;object-position:50% 48%}h1,h2{font-size:clamp(44px,12vw,62px)}.intro{min-height:calc(230px + 58vw);padding-top:15px}.intro-copy{width:75%}.intro-copy p{font-size:18px}.portrait-main{top:225px;width:56%;right:0}.portrait-small{top:auto;bottom:10px;left:2%;width:51%}.split{grid-template-columns:1fr;gap:24px}.venue-section{padding-top:35px;padding-bottom:25px}.venue-copy{font-size:18px}.venue-copy>p{margin-top:24px}.parking{margin-top:35px}.parking p+p{margin-top:22px}.venue-photo{width:80%;margin:5px 0 0 auto;max-width:390px}.accommodation{padding-top:25px;padding-bottom:40px}.accommodation-note{font-size:18px;margin-top:22px}.accommodation-columns{grid-template-columns:1fr;gap:36px;font-size:18px;margin-top:32px}h3{margin-bottom:18px}.accommodation p+p{margin-top:22px}.rsvp{min-height:0;padding-top:35px;padding-bottom:25px}.rsvp-text{width:100%}.rsvp-copy{font-size:18px;padding-top:20px;max-width:480px}.rsvp-copy p+p{margin-top:22px}.rsvp-photo{position:static;width:100%;margin:28px 0 0 auto}.schedule{min-height:0;padding-top:30px;padding-bottom:80px}.schedule-list{margin:38px 0 0;font-size:18px}.schedule-list>div{grid-template-columns:120px 1fr;gap:16px;margin-bottom:23px}.memory-top{min-height:0;grid-template-columns:1fr 1fr;gap:20px;padding-top:30px}.memory-top h2{font-size:clamp(36px,9vw,50px)}.memory-top figure{width:100%;margin-top:34px}.memory-top figcaption{font-size:14px}.memory-top .tall{margin-top:85px}.gallery{min-height:0;gap:12px;padding-top:15px;padding-bottom:30px}footer nav{gap:18px;font-size:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Paragraph font preview; headings, navigation and buttons keep their design. */
p{font-family:var(--paragraph-font,Arial,Helvetica,sans-serif);overflow-wrap:anywhere}
.hero-meta p{min-width:0}.hero-meta .button{flex-shrink:0}
.button.rsvp-link{min-height:58px;padding:16px 38px;font-size:20px;font-weight:700;margin-top:30px;max-width:100%}
.rsvp-link[aria-disabled="true"]{cursor:default}.rsvp-link[aria-disabled="true"]:hover{transform:none;background:var(--red)}
.rsvp-unavailable{display:block;margin-top:12px;font-size:14px;color:#555}
.font-picker{ display: none !important; position:fixed;right:20px;bottom:20px;z-index:8;font:14px/1.45 Arial,Helvetica,sans-serif}
.font-picker summary{display:flex;align-items:center;gap:10px;min-height:46px;padding:10px 18px;border:1px solid #ddd;border-radius:999px;background:var(--paper);box-shadow:0 3px 18px #0002;cursor:pointer;list-style:none}
.font-picker summary::-webkit-details-marker{display:none}.font-picker-icon{font-family:Georgia,serif;font-size:22px;line-height:1;color:var(--red)}
.font-picker[open] summary{border-color:var(--red)}
.font-picker-panel{position:absolute;right:0;bottom:calc(100% + 10px);width:min(340px,calc(100vw - 32px));max-height:calc(100dvh - 100px);overflow:auto;padding:22px;background:var(--paper);border:1px solid #ddd;border-radius:18px;box-shadow:0 8px 32px #0002;display:grid;gap:12px}
.font-picker-panel>label:first-child{font-size:16px;font-weight:700}
.font-picker input,.font-picker select{width:100%;min-width:0;min-height:44px;padding:10px 12px;border:1px solid #aaa;border-radius:8px;background:white;color:var(--ink);font:16px/1.3 Arial,Helvetica,sans-serif}
.font-picker-note{display:block;color:#555;font-size:14px}.font-reset{justify-self:start;border:0;padding:5px 0;background:none;text-decoration:underline;text-underline-offset:4px;color:var(--red);cursor:pointer;min-height:36px}
.font-picker :is(summary,input,select,button):focus-visible{outline:3px solid var(--red);outline-offset:3px}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
footer{padding-bottom:95px!important}
@media(max-width:640px){.font-picker{right:16px;bottom:16px}.button.rsvp-link{min-height:56px;font-size:19px;padding:15px 30px}}
@media print{.font-picker{display:none}}

.accommodation-columns{align-items:start;gap:28px}
.accommodation-accordion{border:1px solid var(--red);border-radius:0;background:var(--paper);overflow:hidden; }
.accommodation-accordion summary{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:100px;padding:22px 24px;list-style:none;background:var(--red);color:#fff;cursor:pointer;touch-action:manipulation;transition:background .18s}
.accommodation-accordion summary::-webkit-details-marker{display:none}
.accommodation-accordion summary:hover{background:#860a0c}
.accommodation-accordion summary:focus-visible{outline:3px solid #fff;outline-offset:-7px}
.accommodation-accordion summary h3{margin:0;font-size:clamp(18px,1.65vw,23px);line-height:1.35}
.accommodation-accordion summary::after{content:'+';flex:0 0 28px;text-align:center;font-size:30px;font-weight:400;line-height:1}
.accommodation-accordion[open] summary::after{content:'−'}
.accommodation-content{padding:28px 24px;overflow-wrap:anywhere}
.hotel-links{margin:12px 0 0;padding-left:1.1em;font-size:inherit}
.hotel-links li+li{margin-top:10px}.hotel-links li::marker{color:var(--red)}.hotel-links a{color:var(--red);text-decoration:none}
@media(max-width:640px){.accommodation-columns{gap:18px}.accommodation-accordion summary{min-height:76px;padding:20px}.accommodation-content{padding:24px 20px}}

