@font-face{font-family:Invitation;src:url('assets/serif.ttf') format('truetype');font-display:swap;font-weight:400}
:root{--navy:#031522;--gold:#e7b579;--ink:#f6f0e7}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#000;color:var(--ink);font-family:Arial,sans-serif}body.modal-open{overflow:hidden}button,input,select{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:6px}::selection{background:var(--gold);color:var(--navy)}[hidden]{display:none!important}.skip{position:fixed;top:-80px;left:20px;z-index:20;background:var(--gold);color:var(--navy);padding:16px}.skip:focus{top:10px}
.scroll-story{height:360svh;position:relative}.hero{position:sticky;top:0;height:100svh;min-height:600px;overflow:hidden;isolation:isolate;background:var(--navy)}#scene,.shade{position:absolute;inset:0;width:100%;height:100%;z-index:-2}.shade{z-index:-1;background:linear-gradient(90deg,#00101c66,transparent 64%)}
.header{position:absolute;left:6.5%;right:6.5%;top:28px;display:flex;align-items:center;justify-content:space-between;gap:40px;z-index:4;will-change:opacity}.brand{display:block;width:170px;flex-shrink:0}.brand img{display:block;width:100%;height:auto}nav{display:flex;gap:38px;align-items:center}nav a,.nav-rsvp{font-size:12px;letter-spacing:.03em;padding:12px 0;color:#ece6dc;transition:color .2s}nav a:hover{color:var(--gold)}nav a span{margin-left:8px;color:var(--gold)}nav .active{color:var(--gold)}.nav-rsvp{border:1px solid #e7b57966;border-radius:50px;background:transparent;padding:12px 19px;display:flex;gap:20px;align-items:center}.nav-rsvp:hover{background:var(--gold);color:var(--navy)}.menu-toggle{display:none}
.hero-copy{position:absolute;left:6.5%;top:30%;width:40%;max-width:680px;will-change:transform,opacity}.eyebrow{margin:0 0 24px;display:flex;gap:18px;align-items:center;color:var(--gold);font-size:10px;letter-spacing:.38em;text-transform:uppercase}.eyebrow span{width:34px;height:1px;background:var(--gold)}.hero h1{font-family:Didot,Invitation,'Times New Roman',serif;font-weight:400;font-size:clamp(43px,4.05vw,82px);line-height:1.04;letter-spacing:-.045em;margin:0 0 24px}.hero h1 em,h2 em{font-style:normal;color:var(--gold)}.hero-description{font-family:Invitation,'Times New Roman',serif;font-size:clamp(19px,1.48vw,29px);line-height:1.4;margin:0 0 30px;max-width:530px;letter-spacing:.003em}.desktop-break{display:none}.actions{display:flex;align-items:center;gap:15px}.button{min-height:44px;border-radius:100px;padding:0 24px;display:inline-flex;justify-content:center;align-items:center;gap:18px;white-space:nowrap;letter-spacing:.08em;text-transform:uppercase;font-size:10px;border:1px solid var(--gold);transition:background .25s,transform .25s,color .25s}.button span{font-size:22px;line-height:1;transition:transform .25s;font-family:Arial,sans-serif;letter-spacing:0}.primary{background:#e9bf87;color:#08141d}.secondary{color:#f6f0e7;background:transparent;border-color:#e7b57955}.secondary span{color:var(--gold);font-size:18px}.button:hover{transform:translateY(-2px);background:#f3d2a5;color:#08141d}.button:active{transform:translateY(0)}.scroll-cue{position:absolute;left:6.5%;bottom:5%;display:flex;align-items:center;gap:18px;color:#e4c49b;font-size:9px;letter-spacing:.12em;text-transform:uppercase}.scroll-line{width:35px;height:1px;background:#e4c49b;transform-origin:left;animation:breathe 2.5s ease-in-out infinite}.story-progress{position:absolute;bottom:0;left:0;right:0;height:1px}.story-progress span{display:block;width:100%;height:100%;background:#e7b57966;transform:scaleX(0);transform-origin:left}
.chapter-story{position:relative;height:320svh;background:#000}.chapter-stage{position:sticky;top:0;min-height:600px;height:100svh;display:grid;place-items:center;overflow:hidden;background:#000}.chapter-title,.chapter-passage{grid-area:1/1;text-align:center;width:100%;padding:70px 7%;will-change:transform,opacity}.chapter-label{font-size:12px;font-weight:400;color:#cfb895;letter-spacing:.12em;margin:0 0 34px}.chapter-title h2{font-family:Didot,Invitation,'Times New Roman',serif;font-size:clamp(55px,6.4vw,112px);font-weight:400;line-height:1.05;letter-spacing:-.04em;margin:0}.chapter-title h2 em{font-style:italic;font-weight:400;color:#dcb27d}.chapter-rule{display:block;width:68px;height:1px;background:#aa875c;margin:38px auto 0}.chapter-passage{opacity:0;visibility:hidden}.chapter-passage p{font-family:Didot,Invitation,'Times New Roman',serif;font-size:clamp(29px,3.1vw,55px);font-weight:400;line-height:1.43;letter-spacing:-.02em;max-width:1030px;margin:0 auto;text-wrap:pretty;color:#e8e1d8}
.kicker{color:var(--gold);font-size:12px;letter-spacing:.19em;text-transform:uppercase;line-height:1.6;margin:0 0 25px}h2{font-family:Didot,Invitation,serif;font-weight:400}dialog{border:1px solid #b8915d;background:#061b28;color:var(--ink);padding:50px;width:min(560px,calc(100% - 32px));max-height:90svh}dialog::backdrop{background:#000b}dialog h2{font-size:46px;line-height:1.05;margin:0}dialog .close{position:absolute;right:18px;top:12px;background:none;border:0;color:var(--gold);font-size:30px}dialog .kicker{margin-bottom:20px}.modal-description{font-size:15px;line-height:1.6;margin:25px 0}form{display:flex;flex-direction:column}label{font-size:13px;margin:0 0 10px}input,select{min-height:48px;background:#0c2735;border:1px solid #8e7858;color:var(--ink);padding:12px;margin-bottom:23px;border-radius:0}form .button{margin-top:8px;min-height:50px;font-size:11px;gap:20px}.local-note{font-size:11px;line-height:1.6;color:#c8bdaa;margin:20px 0 0}#rsvp-result p{line-height:1.6}.text-link{border:0;background:none;padding:10px 0;color:var(--gold)}@keyframes breathe{50%{transform:scaleX(.5);opacity:.4}}
@media(min-aspect-ratio:2/1){.hero-copy{top:27%}.hero h1{font-size:8vh}.hero-description{font-size:3.2vh}.hero-description{margin-bottom:22px}}
@media(min-width:641px) and (max-width:1050px){.header{left:6%;right:6%;top:24px}.brand{width:145px}nav{gap:24px}.hero-copy{left:6%;top:29%;width:42%}.hero h1{font-size:4.2vw}.hero-description{font-size:20px}.actions{align-items:flex-start;flex-direction:column;gap:12px}.button{min-height:41px}.chapter-title h2{font-size:9vw}}
@media(max-width:640px){.hero{min-height:700px}.scroll-story{height:320svh}.header{left:6%;right:6%;top:24px;gap:20px}.brand{width:138px}.menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:6px;background:none;border:0;width:40px;height:40px;padding:10px;z-index:5}.menu-toggle span{height:1px;width:20px;background:var(--gold);transition:transform .2s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}nav{display:none;position:absolute;top:75px;left:0;right:0;background:#061b28;padding:22px;gap:8px;flex-direction:column;align-items:stretch;border:1px solid #e8bb8033}nav.open{display:flex}nav a{font-size:13px;padding:14px 0}.nav-rsvp{justify-content:space-between;margin-top:5px}.hero-copy{left:6%;top:22%;width:88%;max-width:440px}.hero h1{font-size:clamp(36px,9.1vw,55px);line-height:1.05;letter-spacing:-.045em;margin-bottom:21px}.hero h1 br{display:none}.hero h1 em{display:block}.eyebrow{font-size:8px;letter-spacing:.28em;gap:12px;margin-bottom:21px}.eyebrow span{width:25px}.hero-description{font-size:19px;line-height:1.4;margin-bottom:23px;max-width:345px}.actions{flex-direction:row;align-items:center;gap:9px;flex-wrap:wrap}.button{min-height:40px;font-size:8px;gap:10px;padding:0 16px;letter-spacing:.06em}.button span{font-size:18px}.secondary{border:0;padding-left:7px;padding-right:7px}.secondary span{font-size:15px}.scroll-cue{left:6%;font-size:8px;bottom:26px}.shade{background:none}.chapter-story{height:300svh}.chapter-stage{min-height:600px}.chapter-title,.chapter-passage{padding:50px 7%}.chapter-label{font-size:10px;letter-spacing:.08em;margin-bottom:28px}.chapter-title h2{font-size:clamp(43px,12vw,68px);line-height:1.1}.chapter-rule{width:50px;margin-top:30px}.chapter-passage p{font-size:clamp(27px,7.1vw,36px);line-height:1.45;max-width:490px}dialog{padding:38px 26px}dialog h2{font-size:38px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
@media(min-width:641px) and (max-width:900px) and (orientation:portrait){.hero-copy{top:22%;width:70%;max-width:560px}.hero h1{font-size:6.3vw}.hero-description{font-size:22px;max-width:520px}.actions{flex-direction:row;gap:14px}.shade{background:none}}
/* The entire film and both copy beats share one pinned hero. */
.scroll-story{height:620svh}
.chapter-story{position:absolute;inset:0;height:100%;background:#000;opacity:0;visibility:hidden;pointer-events:none;z-index:6;will-change:opacity}
.chapter-stage{position:absolute;inset:0;height:100%;min-height:0;background:transparent}
@media(min-width:901px){.chapter-passage p{font-size:clamp(26px,2.25vw,38px);line-height:1.55;max-width:870px}}
@media(max-width:640px){.scroll-story{height:580svh}.chapter-story{height:100%}.chapter-stage{height:100%;min-height:0}}
/* The next invitation beat rises into the same pinned stage. */
.scroll-story{height:1040svh}
.venue-story{position:absolute;inset:0;z-index:8;background:#06152e;opacity:0;visibility:hidden;pointer-events:none;overflow:hidden;will-change:opacity}
.venue-heading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:7%;will-change:transform,opacity}
.venue-heading h2{font-family:Didot,Invitation,'Times New Roman',serif;font-size:clamp(60px,6.8vw,116px);line-height:1.05;letter-spacing:-.04em;margin:0;font-weight:400}
.venue-heading h2 em{font-weight:400;font-style:italic}
.venue-film{position:absolute;inset:0;transform:translateY(110%);will-change:transform;background:#06152e}
#door-scene{display:block;width:100%;height:100%;background:url('assets/door-frames/frame-0000.webp') center/cover}
@media(max-width:640px){.scroll-story{height:1040svh}.venue-heading h2{font-size:clamp(48px,13vw,74px)}}
.scroll-story{height:1200svh}
.venue-heading h2{font-size:clamp(58px,5.8vw,100px);line-height:1.14;letter-spacing:-.025em}
.venue-heading h2 em{display:inline-block;margin-top:.09em}
.venue-heading .chapter-rule{margin-top:42px;width:54px;background:#b49163}
.venue-details{position:absolute;inset:0;display:grid;place-items:center;padding:7%;background:rgba(3,15,34,.96);opacity:0;visibility:hidden;pointer-events:none;will-change:opacity;text-align:center}
.venue-details-content{width:100%;max-width:1000px}
.venue-details-label{font-size:13px;font-weight:400;letter-spacing:.2em;color:#d2b68f;margin:0 0 25px}
.venue-details h2{font-family:Didot,Invitation,'Times New Roman',serif;font-size:clamp(66px,7.6vw,128px);font-weight:400;line-height:1.1;letter-spacing:-.035em;margin:0 0 32px;color:#edc895}
.venue-details address{font-family:Arial,sans-serif;font-size:15px;font-weight:400;font-style:normal;line-height:1.9;letter-spacing:.025em;color:#e0d8cb;margin:0 auto 38px;max-width:760px;text-wrap:balance}
.venue-details address span{color:#baa58a}
.venue-details .button{min-height:48px;padding:0 29px;font-size:10px;letter-spacing:.11em;gap:27px}
.venue-details-content>*{will-change:transform,opacity}
@media(max-width:640px){.scroll-story{height:1200svh}.venue-heading h2{font-size:clamp(44px,11.8vw,68px);line-height:1.16;letter-spacing:-.025em}.venue-heading .chapter-rule{margin-top:32px}.venue-details{padding:8%}.venue-details-label{font-size:11px;margin-bottom:23px}.venue-details h2{font-size:clamp(47px,12.5vw,72px);letter-spacing:-.04em;margin-bottom:28px}.venue-details address{font-size:13px;line-height:1.9;max-width:330px;margin-bottom:32px}.venue-details .button{font-size:10px;min-height:46px;padding:0 26px}}
/* Venue details continue the light of the final door frame. */
.venue-details{background:#fff;color:#102137}
.venue-details-label{color:#71604a}
.venue-details h2{color:#14243a}
.venue-details address{color:#364252}
.venue-details address span{color:#71604a}
.venue-details .button{background:#14243a;border-color:#14243a;color:#fff}
.venue-details .button:hover{background:#263d59;border-color:#263d59;color:#fff}
.venue-details .button:focus-visible{outline-color:#14243a}

/* Approved minimal Didot identity, 19 October 2026. */
@font-face{font-family:GraduationDidot;src:url('assets/didot-regular.ttf') format('truetype');font-display:swap;font-weight:400;font-style:normal}
:root{--navy:#172033;--gold:#c6a86a;--ink:#f5f1ea;--display:GraduationDidot,Didot,'Times New Roman',serif}
.hero{background:#101d2f;min-height:600px}
#scene{background:url('assets/diploma-frames/frame-0000.webp') center/cover}
.shade{display:none}
.header{left:6%;right:6%;top:5.5%;gap:0}
.brand{width:auto;display:inline-flex;flex-direction:column;align-items:flex-start;color:var(--ink)}
.brand-top{display:flex;align-items:baseline;gap:14px;white-space:nowrap}
.brand-word{font-family:var(--display);font-size:clamp(40px,3.85vw,74px);line-height:.88;letter-spacing:-.065em}
.brand-year{font-family:'Times New Roman',serif;font-size:clamp(13px,1.3vw,24px);letter-spacing:.18em;color:var(--gold)}
.brand-school{font-family:'Times New Roman',serif;font-size:clamp(10px,.94vw,18px);letter-spacing:.07em;margin:7px 0 0 6px;line-height:1}
.hero-copy{left:6%;top:21.5%;width:47%;max-width:none}
.eyebrow{display:block;font-family:Arial,sans-serif;font-size:clamp(10px,.85vw,16px);letter-spacing:.35em;line-height:1.5;margin:0 0 27px;color:#e3bc76}
.hero h1{font-family:var(--display);font-size:clamp(64px,6.6vw,144px);font-weight:400;line-height:.915;letter-spacing:-.055em;margin:0 0 36px}
.hero h1>span,.hero h1>em{display:block;white-space:nowrap;font-style:normal;font-weight:400}
.hero h1 em{color:#e4bb76}
.hero-description{font-family:'Times New Roman',serif;font-size:clamp(18px,1.45vw,29px);font-weight:400;line-height:1.35;letter-spacing:.08em;max-width:95%;margin:0 0 38px;text-wrap:pretty}
.actions{gap:3.1vw}
.hero-copy .button{font-family:'Times New Roman',serif;text-transform:none;letter-spacing:0;font-size:clamp(16px,1.35vw,25px);gap:24px;min-height:clamp(44px,3.6vw,68px);padding:0 2vw;font-weight:400}
.hero-copy .primary{background:#e3bd7a;border:1px solid #d8af6b;color:#172033}
.hero-copy .primary:hover{background:#f0d3a0}
.hero-copy .secondary{border:0;background:transparent;color:var(--ink);padding:0;gap:20px}
.hero-copy .secondary:hover{background:transparent;color:var(--gold)}
.hero-copy .button span{font-size:1.2em;color:inherit}
.chapter-title h2,.chapter-passage p,.venue-heading h2,.venue-details h2,dialog h2{font-family:var(--display)}
@media(min-aspect-ratio:2/1) and (min-width:901px){.hero-copy{top:23%}.eyebrow{margin-bottom:3vh}.hero h1{font-size:12.5vh;margin-bottom:4vh}.hero-description{font-size:2.7vh;margin-bottom:4vh}.hero-copy .button{min-height:6vh;font-size:2.6vh}}
@media(min-width:641px) and (max-width:1050px){.hero-copy{width:49%;top:24%}.hero h1{font-size:7.25vw}.hero-description{font-size:clamp(16px,1.8vw,20px);letter-spacing:.035em;margin-bottom:26px}.eyebrow{font-size:9px;letter-spacing:.24em;margin-bottom:24px}.actions{flex-direction:row;gap:22px}.hero-copy .button{font-size:15px;padding:0 18px;gap:12px}.hero-copy .secondary{padding:0}.brand-word{font-size:45px}}
@media(min-width:641px) and (max-width:900px) and (orientation:portrait){.hero-copy{top:20%;width:80%}.hero h1{font-size:9.5vw}.hero-description{font-size:22px;max-width:82%}.actions{gap:30px}.hero-copy .button{font-size:19px}}
@media(max-width:640px){.hero{min-height:760px}.header{top:28px;left:6%;right:6%}.brand-word{font-size:42px}.brand-year{font-size:14px}.brand-top{gap:12px}.brand-school{font-size:11px;margin-top:7px;margin-left:3px}.hero-copy{top:17.5%;left:6%;width:88%;max-width:none}.eyebrow{font-size:8px;letter-spacing:.25em;margin-bottom:24px}.hero h1{font-size:10.5vw;line-height:.97;letter-spacing:-.055em;margin-bottom:22px}.hero h1>span,.hero h1>em{display:block;white-space:nowrap}.hero-description{font-size:17px;line-height:1.4;letter-spacing:.035em;max-width:100%;margin-bottom:23px}.actions{flex-wrap:nowrap;gap:22px}.hero-copy .button{font-size:14px;gap:12px;min-height:43px;padding:0 18px}.hero-copy .secondary{padding:0;gap:9px}.hero-copy .secondary span{font-size:17px}}

@font-face{font-family:GraduationText;src:url('assets/times-regular.ttf') format('truetype');font-display:swap;font-weight:400;font-style:normal}
.brand-year,.brand-school,.hero-description,.hero-copy .button{font-family:GraduationText,'Times New Roman',serif}
@media(min-width:641px) and (max-width:900px) and (orientation:portrait){.hero-copy{top:17%;width:80%}.hero h1{font-size:9vw}.hero-description{font-size:20px;line-height:1.35;margin-bottom:25px}}

/* The date is a dedicated beat between the memories and the venue. */
.scroll-story{height:1380svh}
.date-story{position:absolute;inset:0;z-index:7;display:grid;place-items:center;text-align:center;background:#101d2f;opacity:0;visibility:hidden;pointer-events:none;padding:7%;will-change:opacity}
.date-content{width:100%;will-change:transform}
.date-label{font-family:Arial,sans-serif;font-size:12px;letter-spacing:.2em;line-height:1.6;color:var(--gold);margin:0 0 44px;text-transform:uppercase}
.date-story h2{font-family:var(--display);font-size:clamp(60px,7.2vw,125px);font-weight:400;letter-spacing:-.045em;line-height:1.05;margin:0;color:var(--ink)}
.date-story h2 span{display:block;color:var(--gold);font-size:.65em;letter-spacing:.08em;margin:16px 0 0}
.date-time{font-family:GraduationText,'Times New Roman',serif;font-size:clamp(26px,2.4vw,40px);font-weight:400;line-height:1.4;letter-spacing:.02em;margin:36px 0 0;color:var(--ink)}
@media(max-width:640px){.date-label{font-size:9px;letter-spacing:.15em;margin-bottom:32px}.date-story h2{font-size:clamp(42px,10.5vw,65px);letter-spacing:-.05em}.date-time{font-size:27px;margin-top:28px}}

/* Unified graduation identity and longer date-reading interval. */
.scroll-story{height:1650svh}
.chapter-title h2,.venue-heading h2,.date-story h2,.venue-details h2{font-family:var(--display);font-weight:400;font-style:normal;letter-spacing:-.045em}
.chapter-title h2{font-size:clamp(55px,6.6vw,112px);line-height:1.08;color:var(--ink)}
.chapter-title h2 em,.venue-heading h2 em{font-style:normal;font-weight:400;color:var(--gold)}
.chapter-label,.date-label,.venue-details-label{font-family:Arial,sans-serif;font-size:11px;line-height:1.7;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.chapter-label{margin-bottom:32px}
.chapter-rule{display:none}
.chapter-passage p{color:var(--ink);font-family:var(--display);font-weight:400;letter-spacing:-.018em}
.date-story,.venue-story,.venue-film{background:var(--navy)}
.date-label{margin-bottom:48px}
.date-story h2{font-size:clamp(60px,7.2vw,125px);line-height:1.12}
.date-story h2 span{font-family:GraduationText,'Times New Roman',serif;font-size:.52em;line-height:1.2;letter-spacing:.18em;margin:23px 0 0;color:var(--gold)}
.date-time{font-family:var(--display);font-size:clamp(30px,3vw,46px);font-weight:400;letter-spacing:-.02em;margin-top:40px;color:var(--ink)}
.venue-heading h2{font-size:clamp(58px,6.4vw,108px);line-height:1.12;color:var(--ink)}
.venue-details{background:#fff;color:var(--navy)}
.venue-details-label{color:#8a7042;margin-bottom:26px}
.venue-details h2{color:var(--navy);font-size:clamp(66px,7.5vw,128px);line-height:1.1;margin-bottom:30px}
.venue-details address{font-family:GraduationText,'Times New Roman',serif;font-size:21px;letter-spacing:.015em;line-height:1.6;color:var(--navy);max-width:730px}
.venue-details address span{color:#796039}
.venue-details .button{font-family:GraduationText,'Times New Roman',serif;font-size:18px;text-transform:none;letter-spacing:0;gap:24px;min-height:50px;padding:0 30px;background:var(--navy);border-color:var(--navy)}
@media(max-width:640px){.chapter-title h2{font-size:clamp(43px,12vw,68px)}.chapter-label,.date-label,.venue-details-label{font-size:9px;letter-spacing:.15em}.date-label{margin-bottom:35px}.date-story h2{font-size:clamp(42px,10.5vw,65px)}.date-story h2 span{font-size:.6em;margin-top:20px}.date-time{font-size:32px;margin-top:32px}.venue-heading h2{font-size:clamp(44px,12vw,70px)}.venue-details h2{font-size:clamp(47px,12.5vw,72px)}.venue-details address{font-size:17px;line-height:1.65}.venue-details .button{font-size:17px;min-height:46px;padding:0 25px}}

.scroll-story{height:1400svh}

/* Two final scroll chapters: a closing thought, then the invitation to respond. */
.scroll-story{height:1800svh}
.closing-story,.confirmation-story{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:7%;opacity:0;visibility:hidden;pointer-events:none;will-change:opacity}
.closing-story{z-index:9;background:var(--navy);color:var(--ink)}
.confirmation-story{z-index:10;background:var(--ink);color:var(--navy)}
.closing-content,.confirmation-content{width:100%;max-width:1050px;will-change:transform,opacity}
.ending-label{font-family:Arial,sans-serif;font-size:11px;font-weight:400;line-height:1.7;letter-spacing:.2em;text-transform:uppercase;margin:0 0 34px;color:var(--gold)}
.closing-story h2,.confirmation-story h2{font-family:var(--display);font-size:clamp(58px,6.6vw,112px);line-height:1.09;letter-spacing:-.045em;font-weight:400;margin:0}
.closing-story h2 em,.confirmation-story h2 em{font-style:normal;font-weight:400;color:var(--gold)}
.ending-copy{font-family:GraduationText,'Times New Roman',serif;font-size:clamp(20px,1.75vw,27px);font-weight:400;line-height:1.5;letter-spacing:.005em;max-width:620px;margin:35px auto 0;text-wrap:pretty}
.confirmation-story .ending-label,.confirmation-story h2 em{color:#8a7042}
.confirmation-story h2{font-size:clamp(58px,6.1vw,104px)}
.confirmation-story .ending-copy{max-width:650px;margin-top:28px}
.confirmation-event{font-family:Arial,sans-serif;font-size:12px;letter-spacing:.04em;line-height:1.9;margin:27px 0 30px;color:#615642}
.confirmation-story .button{font-family:GraduationText,'Times New Roman',serif;font-size:19px;text-transform:none;letter-spacing:0;min-height:52px;padding:0 30px;gap:24px;background:var(--navy);border-color:var(--navy);color:var(--ink)}
.confirmation-story .button:hover{background:#2e3b51;border-color:#2e3b51;color:var(--ink)}
.confirmation-story .button:focus-visible{outline-color:var(--navy)}
@media(max-width:640px){.closing-story,.confirmation-story{padding:8%}.ending-label{font-size:9px;letter-spacing:.15em;margin-bottom:29px}.closing-story h2,.confirmation-story h2{font-size:clamp(40px,11vw,64px);line-height:1.12}.ending-copy,.confirmation-story .ending-copy{font-size:19px;line-height:1.5;margin-top:26px;max-width:360px}.confirmation-event{font-size:11px;margin:24px 0 27px;line-height:1.8}.confirmation-story .button{font-size:17px;min-height:48px;padding:0 25px}}
.scroll-story{height:max(1800svh,10800px)}
@media(max-width:640px){.scroll-story{height:max(1800svh,13680px)}}

/* The mobile film ends edge to edge, including on shorter phone screens. */
@media(max-width:640px){.hero{min-height:0;height:100svh}}
