:root{--navy:#162c48;--ink:#203046;--gold:#9b773c;--light-gold:#ddbe81;--paper:#f8f4eb;--white:#fffdf7;--blue:#e6edf3;--muted:#616b76;--line:#d9dce0}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:20px}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.8 Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}h1,h2,h3,h4,p,figure{margin:0}h1,h2,h3{font-weight:800;line-height:1.07;letter-spacing:-.045em}h2{font-size:clamp(2.4rem,4.8vw,3.8rem)}h2 em{font-family:Georgia,serif;font-weight:400;color:var(--gold)}img{display:block;max-width:100%}.wrap{width:min(1120px,calc(100% - 64px));margin-inline:auto}.section-space{padding:90px 0}.eyebrow{display:block;font-size:.59rem;letter-spacing:.17em;font-weight:700;color:var(--gold);line-height:1.7;margin-bottom:20px}.button{display:inline-flex;align-items:center;justify-content:center;gap:22px;min-height:50px;padding:13px 24px;border:1px solid transparent;border-radius:5px;cursor:pointer;font-size:.79rem;font-weight:700;transition:background .2s,transform .2s}.button:hover{transform:translateY(-2px)}.button>span{font-size:1.1rem;line-height:1}.primary{color:white;background:var(--navy)}.primary:hover{background:#294769}.outline{background:transparent;color:var(--navy);border-color:#8d9caf}.outline:hover{background:var(--blue)}.light-outline{background:transparent;color:var(--white);border-color:#a3b1c5}.light-outline:hover{background:#ffffff12}.gold-button{background:var(--light-gold);color:var(--navy)}:focus-visible{outline:3px solid var(--gold);outline-offset:4px}[hidden]{display:none!important}.masthead{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 32px;border-bottom:1px solid var(--line);font-size:.71rem}.masthead>a{display:flex;align-items:center;min-height:44px}.masthead>span{font-size:.53rem;letter-spacing:.15em;color:var(--muted)}.nav-rsvp{color:var(--gold)}
.hero{position:relative;overflow:hidden;background:radial-gradient(ellipse at 5% 30%,#ddbe811f,transparent 60%),var(--paper)}.hero-grid{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:80px;padding-block:64px 70px;min-height:750px}.hero-copy>.eyebrow{display:flex;align-items:center;gap:8px}.hero-copy>.eyebrow>span{font-size:1.2rem}.hero h1{font-size:clamp(5rem,8vw,8rem);line-height:.89;letter-spacing:-.07em;color:var(--navy)}.hero h1>span{color:var(--gold)}.hero-subtitle{font-size:1rem;color:var(--muted);line-height:1.8;margin-top:26px}.hero-subtitle em{font-family:Georgia,serif;font-size:1.2rem;color:var(--ink)}.graduate-name{display:flex;flex-direction:column;border-left:2px solid var(--gold);padding-left:15px;margin:25px 0}.graduate-name strong{font-size:1.4rem;line-height:1.4;letter-spacing:-.04em}.graduate-name>span{font-size:.57rem;letter-spacing:.12em;color:var(--muted);margin-top:4px}.hero-date{display:flex;gap:6px;flex-direction:column;margin-bottom:24px}.hero-date>span{font-size:.56rem;letter-spacing:.15em;color:var(--muted)}.hero-date>strong{font-size:1rem;letter-spacing:.05em}.graduate-photo{position:relative;isolation:isolate;margin:15px 24px 0 0;max-width:415px;width:100%}.photo-offset{position:absolute;inset:18px -22px -18px 22px;background:var(--navy);z-index:-1}.photo-offset:after{content:"";position:absolute;right:10px;top:10px;width:40px;height:40px;border-top:1px solid var(--light-gold);border-right:1px solid var(--light-gold)}.photo-frame{background:var(--white);border:1px solid #c2b394;padding:12px}.photo-frame>img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:center 35%}.photo-frame figcaption{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 4px 7px}.photo-frame figcaption>span{font-size:.47rem;letter-spacing:.1em;color:var(--muted)}.photo-frame figcaption>strong{font:italic 1.05rem Georgia,serif;font-weight:400;white-space:nowrap}.photo-frame figcaption i{color:var(--gold)}.grad-seal{position:absolute;bottom:64px;left:-34px;width:85px;height:85px;background:var(--navy);color:var(--light-gold);border:1px solid var(--light-gold);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(-8deg);box-shadow:0 7px 20px #162c481f}.grad-seal>svg{width:45px;height:34px;fill:none;stroke:var(--light-gold);stroke-width:1.7}.grad-seal>span{font-size:.7rem;letter-spacing:.12em;margin-top:3px}.discover{display:flex;align-items:center;justify-content:center;gap:18px;font-size:.48rem;letter-spacing:.15em;color:var(--muted);min-height:44px;margin:0 auto 20px;width:max-content;max-width:100%}.discover>span{font-size:1rem;color:var(--gold)}.achievement-strip{display:flex;align-items:center;justify-content:space-between;gap:24px;background:var(--navy);color:var(--white);padding:23px 32px;font-size:.57rem;letter-spacing:.12em}.achievement-strip>span:first-child{color:var(--light-gold);font-weight:700;font-size:.72rem}.achievement-strip>span:last-child{font-size:1.5rem;color:var(--light-gold);line-height:1}
.story{background:var(--white)}.story-grid{display:grid;grid-template-columns:1fr 1fr;gap:75px;align-items:center}.story h2{font-size:3.3rem}.story-copy p{font-size:.91rem;line-height:1.9;color:var(--muted);margin-bottom:19px}.story-copy p strong{color:var(--navy)}.signature{border-top:1px solid var(--line);padding-top:24px;margin-top:28px}.signature>span{display:block;font-size:.7rem;color:var(--muted)}.signature>strong{font:italic 1.9rem Georgia,serif;font-weight:400;color:var(--navy)}.signature strong>span{font-size:1.1rem;color:var(--gold);padding-left:8px}
.countdown-section{background:var(--blue);padding:52px 0;border-block:1px solid #ccd5df}.countdown-grid{display:grid;grid-template-columns:1fr 1.1fr;align-items:center;gap:48px}.countdown-section h2{font-size:2.6rem}.countdown-section .eyebrow{font-size:.54rem;margin-bottom:12px}.countdown{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.countdown>div{padding:20px 5px 15px;border:1px solid #becad7;border-radius:6px;background:#fffdf7b3;text-align:center}.countdown strong{display:block;font-size:2.75rem;line-height:1.2;letter-spacing:-.05em;color:var(--navy)}.countdown span{font-size:.5rem;letter-spacing:.12em;color:var(--muted)}.countdown-section noscript{text-align:center;padding:20px;font-size:.8rem}.section-heading{text-align:center;margin:0 auto 40px;max-width:750px}.section-heading>p{font-size:.88rem;line-height:1.9;color:var(--muted);margin-top:24px}.event-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}.event-card{position:relative;padding:38px;background:var(--white);border:1px solid #ccd0d5;border-radius:8px}.event-step{font-size:.55rem;letter-spacing:.12em;display:block;color:var(--muted);margin-bottom:30px}.event-icon{width:52px;height:44px;fill:none;stroke:var(--gold);stroke-width:1.4;margin-bottom:20px}.event-card h3{font-size:2rem;margin-bottom:16px}.event-time{color:var(--gold);font-size:.75rem;font-weight:700;margin-bottom:25px;letter-spacing:.06em}.event-card h4{font-size:.87rem;font-weight:700;margin-bottom:12px}.event-card>p:not(.event-time){font-size:.85rem;line-height:1.9;color:var(--muted);max-width:360px;margin-bottom:25px}.celebration-card{background:var(--navy);color:var(--white);border-color:var(--navy)}.celebration-card .event-step,.celebration-card>p:not(.event-time){color:#c6d0df}.celebration-card .event-time{color:var(--light-gold)}.celebration-card .event-icon{stroke:var(--light-gold)}.demo-location{font-size:.62rem;color:var(--muted);text-align:center;margin-top:24px}
.future-banner{position:relative;min-height:440px;overflow:hidden;isolation:isolate}.future-banner>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 35%;z-index:-2}.future-banner:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#162c48d9,#162c4870 65%,#162c4830);z-index:-1}.future-overlay{width:min(1120px,calc(100% - 64px));margin:auto;padding:105px 0;color:white}.future-overlay .eyebrow{color:var(--light-gold)}.future-overlay h2{font-size:3.6rem;max-width:700px}.future-overlay h2 em{color:#f7d99e}.future-overlay p{color:#e2e7ed;font-size:.88rem;margin-top:25px}.details{background:var(--white);border-bottom:1px solid var(--line);padding-block:52px}.details-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:45px}.details article>span{display:block;font-size:2rem;color:var(--gold);line-height:1;margin-bottom:20px}.details h3{font-size:1.2rem;letter-spacing:-.03em;margin-bottom:15px}.details p{color:var(--muted);font-size:.83rem;line-height:1.9}.rsvp{background:radial-gradient(ellipse at 0% 100%,#ddbe8126,transparent 40%),var(--paper)}.rsvp-grid{display:grid;grid-template-columns:1fr 1fr;gap:85px;align-items:center}.rsvp-copy h2{font-size:3.7rem;margin-bottom:25px}.rsvp-copy>p{font-size:.9rem;line-height:1.9;color:var(--muted);max-width:375px}.rsvp-slogan{display:flex;align-items:center;gap:18px;border-top:1px solid #c8c7c0;margin-top:32px;padding-top:25px}.rsvp-slogan>span{font-size:2.4rem;color:var(--gold)}.rsvp-slogan>strong{font-size:.56rem;letter-spacing:.1em;line-height:1.8;font-weight:600}.rsvp-card{padding:35px;background:var(--white);border:1px solid #ccd0d5;border-radius:8px;box-shadow:0 16px 50px #162c4808}.rsvp-card .eyebrow{font-size:.52rem;margin-bottom:12px}.rsvp-card h3{font-size:2rem;margin-bottom:24px}.rsvp-card label{font-size:.7rem;line-height:1.6;display:block;font-weight:600;margin-bottom:8px}.rsvp-card label>span{font-weight:400;color:var(--muted)}.rsvp-card input,.rsvp-card select,.rsvp-card textarea{width:100%;min-width:0;font-size:16px;padding:12px;border:1px solid #bfc8d3;background:#f8f7f3;border-radius:5px;color:var(--ink);min-height:48px;margin-bottom:19px}.rsvp-card textarea{resize:vertical;max-height:250px}.rsvp-card .button{width:100%;padding-inline:12px;gap:12px}.rsvp-result{margin-top:18px;padding:15px;border:1px dashed #8fa2b7;border-radius:5px;background:var(--blue);white-space:pre-line;overflow-wrap:anywhere;font-size:.76rem}.demo-note{font-size:.61rem;color:var(--muted);line-height:1.8;margin-top:18px}.closing{position:relative;overflow:hidden;text-align:center;padding:70px 20px;background:var(--navy);color:var(--white)}.closing .eyebrow{color:var(--light-gold)}.closing h2{font-size:clamp(2.4rem,5vw,4.2rem);color:var(--light-gold)}.closing>p{font-size:.85rem;color:#d4dce6;margin:20px 0 25px}.closing>.button{font-size:.77rem}.closing>strong{display:block;font:italic 1.25rem Georgia,serif;margin-top:20px;color:#f3e1bf}.confetti-piece{position:fixed;top:-20px;width:9px;height:15px;z-index:1000;pointer-events:none;animation:confetti-fall 1.8s ease-in both}.confetti-piece:nth-child(3n){border-radius:50%;width:9px;height:9px}@keyframes confetti-fall{to{transform:translate(var(--drift),110vh) rotate(var(--spin));opacity:0}}footer{padding:27px 32px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid var(--line);font-size:.64rem}footer>a:first-child{font-size:.92rem;font-weight:700;color:var(--navy)}footer>span{color:var(--muted)}footer>a:last-child{color:var(--gold)}
@media(max-width:900px){.wrap{width:calc(100% - 48px)}.hero-grid{gap:40px;min-height:690px}.hero h1{font-size:6.6rem}.graduate-photo{max-width:330px}.grad-seal{width:70px;height:70px;left:-22px}.grad-seal>svg{width:37px;height:28px}.grad-seal>span{font-size:.58rem}.story-grid{gap:40px}.story h2{font-size:2.75rem}.countdown-grid{gap:30px}.countdown-section h2{font-size:2.3rem}.countdown{gap:8px}.countdown strong{font-size:2.25rem}.event-card{padding:30px}.rsvp-grid{gap:40px}.rsvp-copy h2{font-size:3rem}.rsvp-card{padding:28px}.future-overlay{width:calc(100% - 48px)}.details-grid{gap:26px}.masthead>span{font-size:.47rem}.photo-frame figcaption{gap:8px}.photo-frame figcaption>span{font-size:.4rem}.photo-frame figcaption>strong{font-size:.9rem}}
@media(max-width:640px){.wrap{width:calc(100% - 40px)}.section-space{padding:60px 0}.masthead{padding:10px 20px;font-size:.67rem}.masthead>span{display:none}.hero-grid{grid-template-columns:minmax(0,1fr);gap:35px;padding-block:43px 44px;min-height:0}.hero-copy{text-align:center}.hero-copy>.eyebrow{justify-content:center;font-size:.48rem;gap:7px}.hero h1{font-size:clamp(4.8rem,24vw,6.4rem)}.hero-subtitle{font-size:.94rem;margin-top:24px}.hero-subtitle em{font-size:1.13rem}.graduate-name{border-left:0;margin:22px 0}.graduate-name strong{font-size:1.3rem}.graduate-name>span{font-size:.51rem}.hero-date{margin-bottom:23px}.hero-date>span{font-size:.5rem}.hero-date>strong{font-size:.9rem}.hero .button{font-size:.74rem;gap:16px;padding-inline:22px}.graduate-photo{width:calc(100% - 30px);max-width:330px;margin:15px auto 6px}.photo-offset{inset:13px -13px -13px 13px}.photo-frame{padding:9px}.photo-frame figcaption{padding:15px 1px 6px}.photo-frame figcaption>span{font-size:.38rem}.photo-frame figcaption>strong{font-size:.9rem}.grad-seal{left:-15px;bottom:52px;width:66px;height:66px}.grad-seal>svg{width:35px;height:26px}.grad-seal>span{font-size:.55rem}.discover{font-size:.42rem;margin-bottom:14px;gap:12px}.achievement-strip{padding:18px 20px;gap:10px}.achievement-strip>span:first-child{font-size:.55rem;white-space:nowrap}.achievement-strip>span:nth-child(2){font-size:.41rem;letter-spacing:.08em;line-height:1.8;max-width:165px}.achievement-strip>span:last-child{font-size:1.2rem}.story-grid,.countdown-grid,.event-grid,.rsvp-grid{grid-template-columns:minmax(0,1fr);gap:30px}.story h2{font-size:2.6rem}.story .eyebrow{font-size:.52rem}.story-copy p{font-size:.88rem}.signature{margin-top:22px;padding-top:20px}.signature>strong{font-size:1.8rem}.countdown-section{padding:43px 0}.countdown-grid{text-align:center;gap:25px}.countdown-section h2{font-size:2.3rem}.countdown-section .eyebrow{font-size:.49rem}.countdown strong{font-size:clamp(1.8rem,8vw,2.5rem)}.countdown>div{padding:16px 2px 12px}.countdown span{font-size:.44rem;letter-spacing:.05em}.section-heading .eyebrow{font-size:.48rem;letter-spacing:.13em}.section-heading h2{font-size:clamp(1.9rem,8.6vw,2.7rem)}.section-heading>p{font-size:.83rem;margin-top:20px}.event-card{padding:28px 24px}.event-step{font-size:.5rem;margin-bottom:24px}.event-card h3{font-size:1.9rem}.event-card>p:not(.event-time){font-size:.81rem}.event-card .button{font-size:.74rem}.event-time{font-size:.69rem}.future-banner{min-height:380px}.future-overlay{width:calc(100% - 40px);padding:84px 0}.future-overlay .eyebrow{font-size:.49rem}.future-overlay h2{font-size:2.45rem}.future-overlay p{font-size:.82rem;max-width:240px}.future-banner:after{background:linear-gradient(90deg,#162c48db,#162c48a8)}.details{padding-block:40px}.details-grid{grid-template-columns:minmax(0,1fr);gap:27px}.details-grid>article:not(:last-child){padding-bottom:25px;border-bottom:1px solid var(--line)}.details article>span{font-size:1.8rem;margin-bottom:16px}.details h3{font-size:1.13rem}.details p{font-size:.81rem}.rsvp-copy h2{font-size:2.8rem}.rsvp-copy .eyebrow{font-size:.48rem}.rsvp-copy>p{font-size:.87rem}.rsvp-slogan{margin-top:25px;padding-top:20px;gap:14px}.rsvp-slogan>strong{font-size:.5rem}.rsvp-card{padding:27px 20px}.rsvp-card .eyebrow{font-size:.47rem}.rsvp-card h3{font-size:1.8rem}.rsvp-card label{font-size:.66rem}.rsvp-card .button{font-size:.69rem;gap:8px}.closing{padding:55px 20px}.closing>.eyebrow{font-size:.48rem}.closing h2{font-size:clamp(2rem,9vw,3.2rem)}.closing>.button{font-size:.69rem;gap:10px;padding-inline:16px}.closing>p{font-size:.8rem}.closing>strong{font-size:1.1rem}footer{flex-direction:column;text-align:center;gap:8px;padding:25px 20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}.confetti-piece{display:none}}
