:root{--forest:#123f31;--deep:#092c23;--cream:#f7f2e8;--gold:#e6b963;--ink:#1d332a;--muted:#56685e}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--cream);color:var(--ink);font:16px/1.65 system-ui,-apple-system,"Segoe UI",sans-serif}img{max-width:100%;display:block}a{color:inherit}button{font:inherit}h1,h2,h3,p{margin-top:0}h1,h2{font-family:Georgia,serif;font-weight:400;text-wrap:balance}h1{font-size:clamp(2.9rem,5.2vw,4.9rem);line-height:1.06;letter-spacing:-.045em;margin-bottom:26px}h2{font-size:clamp(2.3rem,4vw,3.6rem);line-height:1.12;letter-spacing:-.035em;margin-bottom:22px}h3{font-size:1.15rem;line-height:1.4}.shell{width:min(1180px,calc(100% - 48px));margin:auto}section{padding:88px 0}.tag{display:block;font-size:.74rem;font-weight:800;letter-spacing:.19em;text-transform:uppercase;color:#79581d;margin-bottom:18px}.dark{background:var(--forest);color:var(--cream)}.dark .tag{color:var(--gold)}.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;border:1px solid transparent;border-radius:6px;padding:13px 22px;background:var(--gold);color:var(--deep);text-decoration:none;font-size:.8rem;font-weight:850;letter-spacing:.05em;text-transform:uppercase;text-align:center}.button:hover{background:#f1cb83}.button.secondary{background:transparent;border-color:#ffffff70;color:#fff}.button.secondary:hover{background:#ffffff12}.button.outline{background:transparent;border-color:#98a69b}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}a:focus-visible,button:focus-visible{outline:3px solid #bd7f1b;outline-offset:5px}.text-link{font-weight:750;text-underline-offset:5px}.site-header{background:var(--deep);color:var(--cream)}.nav{min-height:96px;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;line-height:1.3}.brand img{width:45px;height:52px;object-fit:cover;border-radius:3px}.brand strong{font-family:Georgia,serif;font-size:1.15rem;font-weight:400}.brand span{display:block;font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;margin-top:4px}.links{display:flex;gap:24px;font-size:.86rem;font-weight:650}.links a{text-decoration:none}.links a:hover{color:var(--gold)}.menu{display:none;background:transparent;color:#fff;border:1px solid #ffffff70;padding:8px 12px;border-radius:5px}.hero{padding:64px 0 80px;background:linear-gradient(120deg,#123f31,#092c23);overflow:hidden}.hero-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:60px;align-items:center}.hero h1 em{color:var(--gold);font-style:normal}.hero .date{font-size:1.02rem;font-weight:700;color:#f2d7a2}.hero .motto{color:#d5e1d9;font-size:1.12rem;max-width:440px}.hero .note{font-size:.8rem;color:#d5e1d9;margin:12px 0 0}.hero-photo{position:relative;margin:0;padding:0 0 22px 20px}.hero-photo:before{content:"";position:absolute;inset:24px 18px 0 0;border:1px solid #d8aa5880}.hero-photo img{position:relative;width:100%;height:500px;object-fit:cover;object-position:center 38%;border-radius:100px 6px 6px 6px}.hero-photo figcaption{position:absolute;bottom:0;right:16px;background:var(--cream);color:var(--forest);padding:12px 22px;font:italic 1.25rem Georgia;box-shadow:0 10px 25px #0002}.countdown{padding:38px 0;background:#eadeca;border-bottom:1px solid #c9bca4}.countdown-inner{display:flex;justify-content:space-between;align-items:center;gap:36px}.countdown .tag{margin-bottom:7px}.countdown p{margin:0;font-size:.87rem}.clock{display:flex;align-items:center;gap:25px}.clock div{text-align:center;min-width:82px}.clock strong{display:block;font:400 clamp(2.4rem,4vw,3.8rem)/1.1 Georgia;font-variant-numeric:tabular-nums}.clock span{font-size:.65rem;letter-spacing:.16em;text-transform:uppercase}.clock b{font:2rem Georgia;color:#927c54}.section-head{max-width:740px;margin:0 auto 40px;text-align:center}.section-head p{color:var(--muted)}.highlights{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.highlight{display:flex;flex-direction:column;padding:28px 24px;background:#fffdf8;border:1px solid #dfdfd0;border-radius:9px}.highlight .number{font:italic 1.9rem Georgia;color:#92703a;margin-bottom:24px}.highlight h3{font-size:.8rem;letter-spacing:.08em}.highlight p{color:var(--muted);font-size:.92rem}.highlight a{margin-top:auto;font-size:.86rem}.hotel-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:70px;align-items:center}.save-card{margin:0;background:#fff;padding:10px;border-radius:10px;box-shadow:0 20px 50px #001b1740;transform:rotate(-2deg);max-width:450px}.save-card img{width:100%}.save-card figcaption{color:var(--forest);text-align:center;padding:10px 0 3px;font-size:.7rem;letter-spacing:.13em;text-transform:uppercase}.hotel h3{font:400 1.9rem/1.2 Georgia}.hotel p{color:#d5e1d9}.hotel-dates{display:flex;gap:40px;border-top:1px solid #ffffff30;border-bottom:1px solid #ffffff30;padding:20px 0;margin:24px 0}.hotel-dates span{display:block;text-transform:uppercase;font-size:.68rem;letter-spacing:.13em;color:var(--gold);margin-bottom:5px}.hotel-dates strong{font-size:1rem}.registration{padding:45px 0;background:#eadeca}.registration .shell{display:flex;justify-content:space-between;align-items:center;gap:30px}.registration h2{font-size:2rem;margin-bottom:10px}.registration p{max-width:700px;margin-bottom:0;color:var(--muted)}.registration .button{flex-shrink:0}.legacy-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:85px;align-items:center}.portrait{margin:0}.portrait img{width:100%;height:470px;object-fit:cover;object-position:center 20%;border-radius:6px}.portrait figcaption{font-size:.8rem;color:var(--muted);margin-top:12px}.legacy p{color:var(--muted);max-width:580px}.legacy-links{display:flex;flex-wrap:wrap;gap:18px;margin-top:24px;font-size:.9rem}.memories{background:#e7ece3}.memory-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:24px}.memory-grid figure{margin:0;background:#fffdf8;padding:10px 10px 16px;box-shadow:0 8px 25px #123f3110}.memory-grid img{width:100%;height:270px;object-fit:cover}.memory-grid figure:last-child img{object-fit:contain;background:#fff}.memory-grid figcaption{padding:14px 8px 0;font:italic 1.15rem Georgia}.center{text-align:center}.signup{background:var(--forest);text-align:center;color:#fff}.signup .shell{max-width:760px}.signup p{color:#d5e1d9;font-size:1.07rem}.signup .tag{color:var(--gold)}.signup .actions{justify-content:center}.signup small{display:block;color:#d5e1d9;font-size:.77rem;margin-top:18px}.contact{padding:58px 0}.contact .shell{display:flex;align-items:center;justify-content:space-between;gap:30px}.contact h2{font-size:2.4rem;margin-bottom:8px}.contact p{margin:0;color:var(--muted)}footer{background:var(--deep);color:#d5e1d9;padding:42px 0 25px}footer strong{color:#fff;font:1.3rem Georgia}.footer-top{display:flex;justify-content:space-between;gap:35px}.footer-links{display:flex;gap:16px;flex-wrap:wrap;max-width:550px;font-size:.8rem}.copyright{display:flex;justify-content:space-between;gap:20px;margin-top:30px;padding-top:20px;border-top:1px solid #ffffff25;font-size:.75rem}.footer-top p{font-size:.83rem;margin-top:10px}
@media(max-width:1000px){.links{gap:14px}.hero-grid{gap:30px}.hero-photo img{height:440px}.highlights{grid-template-columns:1fr 1fr}.hotel-grid,.legacy-grid{gap:40px}.brand strong{font-size:1rem}.links{font-size:.78rem}}
@media(max-width:760px){.shell{width:calc(100% - 36px)}section{padding:60px 0}.nav{min-height:82px;position:relative}.brand strong{font-size:.98rem}.brand img{width:35px;height:44px}.menu{display:block}.links{display:none;position:absolute;top:72px;left:0;right:0;background:var(--deep);z-index:10;padding:22px;border:1px solid #ffffff30;flex-direction:column;font-size:1rem}.links.open{display:flex}.hero-grid,.hotel-grid,.legacy-grid{grid-template-columns:1fr}.hero{padding:40px 0 52px}.hero h1{max-width:570px}.hero-photo{max-width:550px;width:100%;margin:10px auto 0}.hero-photo img{height:400px}.countdown-inner{flex-direction:column;text-align:center;gap:22px}.clock{gap:16px}.clock div{min-width:68px}.hotel-grid{gap:46px}.save-card{max-width:360px;margin:auto}.hotel-dates{gap:28px}.registration .shell,.contact .shell{align-items:flex-start;flex-direction:column}.portrait{max-width:420px}.portrait img{height:430px}.memory-grid{gap:14px;grid-template-columns:1fr}.memory-grid img{height:auto;max-height:440px;object-fit:contain}.memory-grid figure{max-width:520px;margin:auto;width:100%}.footer-top,.copyright{flex-direction:column}.signup h2{font-size:2.5rem}}
@media(max-width:420px){.highlights{grid-template-columns:1fr}.hero-photo img{height:330px}.hero .actions .button{width:100%}.brand strong{font-size:.88rem}.brand span{font-size:.58rem}.clock{gap:9px}.clock div{min-width:64px}.hotel-dates{gap:20px}.hotel .actions .button{width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Preserve every family member in the reunion photograph. */
.hero-photo img{height:auto;object-fit:contain}
