@font-face{font-family:Cormorant;src:url('/assets/cormorant.ttf') format('truetype');font-display:swap;font-weight:300 700}
:root{--paper:#f8f5ed;--ink:#343c2d;--olive:#515c41;--muted:#636852;--line:#d6d8c8;--accent:#794735;--serif:'Cormorant',Georgia,serif;--sans:'Trebuchet MS',Arial,sans-serif;color-scheme:light;scroll-behavior:smooth;scroll-padding-top:2rem}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.75 var(--sans)}::selection{background:#d7dec9;color:var(--ink)}a{color:inherit;text-underline-offset:5px}a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:7px}a:hover{color:var(--accent)}svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.3}.skip-link{position:absolute;top:-80px;left:20px;background:var(--paper);z-index:5;padding:12px}.skip-link:focus{top:12px}.site-header{max-width:1440px;margin:auto;padding:25px 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:25px}.monogram{font-family:var(--serif);font-size:30px;line-height:1;text-decoration:none;letter-spacing:-1px;position:relative;padding-bottom:13px}.monogram>span:first-child{font-size:23px;font-style:italic;margin:0 3px}.monogram-year{position:absolute;bottom:0;left:0;width:100%;text-align:center;font:9px var(--sans);letter-spacing:4px}.site-header nav{display:flex;gap:38px}.site-header nav a,.header-link{font-size:12px;text-decoration:none}.header-link{border-bottom:1px solid var(--olive);padding-bottom:3px}.header-link span{padding-left:13px}.hero{max-width:1440px;margin:auto;position:relative;display:grid;grid-template-columns:1.15fr 1fr;align-items:center;padding:55px 7% 90px;gap:7%;min-height:730px}.hero-copy{text-align:center;padding:20px 0}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.04;text-wrap:balance}h1{font-size:clamp(60px,6.4vw,92px);letter-spacing:-.035em}h1 .ampersand{display:block;color:var(--accent);font-style:italic;font-size:.67em;line-height:.92;margin:7px 0}h2{font-size:clamp(40px,4.4vw,62px);letter-spacing:-.025em}h2 em{font-weight:400;color:var(--olive)}.hero-announcement{margin-top:26px;font:21px/1.5 var(--serif)}.date-line{display:flex;align-items:center;justify-content:center;gap:17px;margin-top:27px}.date-line p{font-size:12px;letter-spacing:1px}.date-line strong{font-weight:400}.small-rule{width:30px;height:1px;background:var(--line)}.hero-note{font-size:11px;color:var(--muted);margin-top:7px}.button{display:inline-flex;gap:20px;align-items:center;justify-content:center;background:var(--olive);color:var(--paper);font-size:12px;text-decoration:none;padding:14px 21px;margin-top:26px;transition:background .2s}.button:hover{background:var(--ink);color:var(--paper)}.hero-photo{position:relative;width:100%;max-width:480px;margin-left:auto}.hero-photo img{display:block;width:100%;height:510px;object-fit:cover;border-radius:48% 48% 0 0;object-position:50% 50%;background:#d8d6c4}.hero-photo figcaption{font:italic 14px/1.5 var(--serif);color:var(--muted);text-align:center;margin-top:13px}.photo-stamp{position:absolute;bottom:48px;left:-45px;background:var(--paper);width:148px;height:148px;border:1px solid var(--line);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(-12deg);font:23px/1.2 var(--serif)}.photo-stamp i{font-size:20px}.scroll-cue{position:absolute;bottom:26px;left:7%;font-size:10px;letter-spacing:1px;text-decoration:none}.scroll-cue span{margin-left:18px}.section{max-width:1200px;margin:auto;padding:110px 6%}.introduction{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1.7fr;gap:70px}.section-aside{font:italic 23px var(--serif);padding-top:10px;color:var(--muted)}.introduction h2{margin-bottom:30px}.introduction p:not(.signature,.section-aside){font-size:14px;max-width:64ch;margin-top:16px}.signature{font:italic 28px var(--serif);margin-top:27px;color:var(--accent)}.year-banner{background:var(--olive);color:var(--paper);display:flex;gap:40px;align-items:center;justify-content:center;padding:48px 6%}.year-banner>span{font:96px/1 var(--serif);letter-spacing:-.035em}.year-banner p{font-size:12px;max-width:220px}.year-banner p:last-child{border-left:1px solid #9ca48b;padding-left:32px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:45px}.section-heading>p{font-size:13px;max-width:45ch}.programme-list{display:grid;grid-template-columns:repeat(3,1fr);gap:45px;margin-top:56px;border-top:1px solid var(--line)}.programme-list article{position:relative;padding-top:35px}.line-mark{position:absolute;top:-5px;width:9px;height:9px;border:1px solid var(--olive);border-radius:50%;background:var(--paper)}h3{font-size:29px}.programme-list p{font-size:13px;line-height:1.8;margin-top:16px;max-width:31ch}.programme-note{font-size:11px;color:var(--muted);margin-top:35px}.practical{background:#eeeee3;max-width:none;display:grid;grid-template-columns:1fr 1.2fr;gap:80px;padding-left:max(6%,calc((100vw - 1056px)/2));padding-right:max(6%,calc((100vw - 1056px)/2))}.practical>div p{font-size:13px;margin-top:25px;max-width:30ch}dl{margin:0}dl>div{padding:23px 0;border-bottom:1px solid #cbcfbd}dl>div:first-child{padding-top:0}dt{font:27px/1.2 var(--serif)}dd{margin:12px 0 0;font-size:13px;max-width:60ch}.questions{display:grid;grid-template-columns:1fr 1.2fr;gap:80px}.faq details{border-bottom:1px solid var(--line);padding:22px 0}.faq details:first-child{padding-top:0}.faq summary{font-size:14px;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:20px}.faq summary::-webkit-details-marker{display:none}.faq summary::after{content:'+';font:23px/1 var(--serif)}.faq details[open] summary::after{content:'−'}.faq p{font-size:13px;color:var(--muted);padding:16px 20px 0 0}.closing{text-align:center;padding:70px 6% 85px;border-top:1px solid var(--line)}.closing>p{font:italic 23px var(--serif);margin-bottom:20px}.closing h2{font-size:clamp(44px,6vw,80px)}.closing a{display:inline-block;margin-top:30px;font-size:12px}footer{background:var(--ink);color:var(--paper);padding:30px 6%;display:flex;align-items:center;justify-content:space-between;gap:20px}footer p{font-size:10px}.footer-names{font:25px var(--serif);text-decoration:none}footer a:hover{color:#e6cfb8}
@media(prefers-reduced-motion:no-preference){.hero-copy{animation:invitation 1s cubic-bezier(.16,1,.3,1) both}@keyframes invitation{from{transform:translateY(15px);filter:blur(3px)}to{transform:translateY(0);filter:blur(0)}}}
@media(min-width:1600px){.hero{min-height:800px}.hero-photo img{height:560px}}
@media(max-width:800px){.site-header{padding:22px 6%}.site-header nav{gap:20px}.header-link{display:none}.hero{gap:5%;padding:40px 6% 75px;min-height:620px}.hero-photo img{height:430px}.photo-stamp{width:110px;height:110px;left:-25px;font-size:19px}.photo-stamp i{font-size:16px}.section{padding:75px 7%}.introduction{gap:30px;grid-template-columns:1fr 2fr}.section-heading{display:block}.section-heading>p{margin-top:25px}.programme-list{gap:22px}.practical,.questions{gap:40px;grid-template-columns:1fr 1.2fr}.year-banner{gap:25px}.year-banner>span{font-size:75px}}
@media(max-width:560px){.site-header{padding:20px 6%;gap:14px}.site-header nav{gap:17px}.site-header nav a{font-size:10px}.monogram{font-size:25px;flex-shrink:0}.hero{display:flex;flex-direction:column;padding:35px 8% 70px;gap:40px}.hero-copy{padding:6px 0 0}h1{font-size:74px}.hero-announcement{margin-top:20px;font-size:21px}.hero-photo{max-width:310px;margin:0 auto}.hero-photo img{height:340px}.photo-stamp{left:-20px;bottom:37px}.hero-photo figcaption{font-size:13px}.scroll-cue{bottom:22px;left:8%}.introduction{display:block}.section-aside{margin-bottom:26px}.section{padding:65px 8%}.year-banner{flex-wrap:wrap;gap:15px 25px;padding:36px 8%}.year-banner p:first-child{width:100%;max-width:none;text-align:center}.year-banner p:last-child{padding-left:22px}.programme-list{display:block;margin-top:35px;border-top:none}.programme-list article{padding:24px 0 24px 26px;border-left:1px solid var(--line)}.line-mark{top:34px;left:-5px}.programme-list p{max-width:none;margin-top:9px}.programme-note{margin-top:15px}.practical,.questions{display:block}.practical dl,.faq{margin-top:35px}.practical>div p{max-width:none}.closing{padding:60px 8%}footer{flex-direction:column;gap:10px;text-align:center}}
