@font-face{font-family:Montserrat;src:url(fonts/Montserrat-Regular.woff2) format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Montserrat;src:url(fonts/Montserrat-Medium.woff2) format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:Montserrat;src:url(fonts/Montserrat-SemiBold.woff2) format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:OpenSans;src:url(fonts/OpenSans-Regular.woff2) format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:OpenSans;src:url(fonts/OpenSans-SemiBold.woff2) format('woff2');font-weight:600;font-style:normal;font-display:swap}
:root {
  --ink:#405361; --deep:#304653; --paper:#f3f4f5; --white:#fcfcfc;
  --orange:#e96e1e; --blue:#0078b4; --muted:#627380; --line:#cdd4d9;
  --heading:Montserrat,OpenSans,sans-serif; --body:OpenSans,Montserrat,sans-serif;
  --type-main:20px; --type-small:12px;
  color-scheme:light; scroll-behavior:smooth;
}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:var(--type-small);line-height:1.6;-webkit-font-smoothing:antialiased}
button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
a{color:inherit}button{font:inherit;color:inherit}button,a,svg{flex-shrink:0}
button:focus-visible,a:focus-visible{outline:2px solid var(--orange);outline-offset:6px}
h1,h2,p{margin:0}h1,h2{font-family:var(--heading);font-weight:500}img{max-width:100%;height:auto}
button[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.wrap{width:min(1200px,calc(100% - 112px));margin-inline:auto}
.brand{width:300px;display:block}.brand-dark{filter:brightness(0) saturate(100%) invert(29%) sepia(17%) saturate(729%) hue-rotate(159deg) brightness(93%) contrast(88%)}
.eyebrow{display:flex;align-items:center;gap:14px;font-family:var(--heading);font-size:var(--type-small);font-weight:500;line-height:1.6;text-transform:uppercase;letter-spacing:.16em}
.edition{font-family:var(--heading);font-size:var(--type-small);font-weight:500;letter-spacing:.12em;text-transform:uppercase}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;min-height:58px;padding:17px 23px;border:1px solid transparent;cursor:pointer;font-family:var(--heading);font-size:var(--type-small);font-weight:600;text-decoration:none;line-height:1.6;transition:background .2s,box-shadow .2s}
.button svg,.text-link svg,.details-anchor svg{width:22px;height:22px;stroke:currentColor;stroke-width:1.3;fill:none;transition:transform .25s}
.button-primary{background:var(--orange);color:#233a48;box-shadow:0 8px 30px #1d2f3b18}
.button-primary:hover{background:#ff982b;box-shadow:0 10px 32px #172f3933}.button:hover svg,.text-link:hover svg{transform:translate(2px,-2px)}
.button[aria-disabled=true]{cursor:default}.button[aria-disabled=true] svg{transform:none}
.button-dark{background:var(--ink);color:#fff}.button-dark:hover{background:var(--deep)}
.title-dot{color:var(--orange)}.muted{color:var(--muted)}
/* The anniversary seal is the only opening action. */
.intro{display:none;position:fixed;inset:0;z-index:20;isolation:isolate;min-height:100svh;overflow:auto;color:var(--paper);background:var(--ink);grid-template-rows:auto 1fr auto}
.intro::before{content:'';position:absolute;inset:0;z-index:-2;background:radial-gradient(ellipse at 68% 42%,#72889555,transparent 63%),linear-gradient(120deg,#263d493d,transparent 60%);pointer-events:none}
.intro::after{content:'';position:absolute;inset:0;z-index:-1;background:url(grain.svg);opacity:.12;pointer-events:none}
.intro-header,.main-header{display:flex;align-items:center;justify-content:space-between;gap:28px;padding-block:35px;border-bottom:1px solid #ffffff24}
.intro-header .edition{color:#d3dce2}.intro-header .edition span{margin-inline:14px;color:#9eafb9}
.intro-layout{display:grid;grid-template-columns:1fr 1.13fr;grid-template-rows:auto;column-gap:40px;align-content:center;align-items:center;padding-block:55px 70px}
.intro-copy{grid-area:1/1}.intro-copy .eyebrow{color:#d0dae0;margin-bottom:26px}
.intro-copy h1{font-size:var(--type-main);line-height:1.04;letter-spacing:-.065em;font-weight:500}
.intro-copy h1>span{color:#b7c5ce}.intro-description{font-size:var(--type-small);line-height:1.8;margin-top:28px;color:#e1e8ec}

.envelope-stage{grid-area:1/2;position:relative;isolation:isolate;display:flex;align-items:center;justify-content:center;min-width:0;min-height:400px;padding:30px 8px 30px 0;perspective:1500px}
.envelope-guides{position:absolute;inset:-10px 20px -10px 10px;z-index:-1;transform:rotate(-8deg);border:1px solid #c1d0d31a;pointer-events:none}
.envelope-guides::before{content:'';position:absolute;inset:16px;border:1px solid #c1d0d312}
.envelope-guides>span{position:absolute;left:-4px;top:-4px;width:7px;height:7px;background:#a5b8c1}
.envelope-guides>span+span{inset:auto -4px -4px auto;background:var(--orange)}
.envelope{position:relative;width:100%;max-width:540px;aspect-ratio:1.53;filter:drop-shadow(1px 32px 25px #1b2f3e69);transform:rotate(-8deg);text-align:center}
.envelope-back{position:absolute;inset:0;border-radius:2px;background:#c3ced6;border:1px solid #e5ebef}
.letter{position:absolute;inset:13px 19px 12px;z-index:2;display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:20px 24px;background:#fdfdfd;color:var(--ink);box-shadow:0 0 5px #40536130;transform-origin:center bottom;font-family:var(--heading)}
.letter-top{display:flex;justify-content:space-between;align-items:center;width:100%;font-size:var(--type-small);font-weight:600;letter-spacing:.08em}
.letter-title{font-size:var(--type-main);font-weight:500;letter-spacing:-.035em;margin-top:5px}.letter-date{display:flex;justify-content:space-between;width:100%;font-size:var(--type-small);font-weight:500;padding-top:12px;margin-top:auto;border-top:1px solid var(--line)}
.pocket{position:absolute;inset:0;z-index:4;pointer-events:none}
.pocket-left{background:linear-gradient(110deg,#d8e0e5,#eff3f5);clip-path:polygon(0 0,57% 55%,0 100%)}
.pocket-right{background:linear-gradient(260deg,#c8d4dc,#f1f5f7);clip-path:polygon(100% 0,43% 55%,100% 100%)}
.pocket-bottom{background:linear-gradient(0deg,#dbe3e9,#f6f8f9);clip-path:polygon(0 100%,0 99%,50% 44%,100% 99%,100% 100%)}
.pocket-bottom::after{content:'';position:absolute;inset:0;background:url(grain.svg);opacity:.13}
.flap{position:absolute;inset:0;z-index:5;transform-origin:center top;background:linear-gradient(171deg,#fcfdfd,#d3dee6 69%);clip-path:polygon(0 0,100% 0,50% 61%);filter:drop-shadow(0 2px 1px #8a9da9);backface-visibility:visible}
.seal{padding:0;appearance:none;-webkit-appearance:none;cursor:pointer;user-select:none;transition:transform .2s,box-shadow .2s;position:absolute;z-index:6;left:50%;top:55%;transform:translate(-50%,-50%) rotate(8deg);width:79px;height:79px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,#ffb567,#f78a24 42%,#dd6812);border:1px solid #ffae5b;box-shadow:0 4px 7px #35495630,inset 0 0 0 3px #ed7d22,inset 0 0 0 4px #ffc485;color:#67330d}
.seal:focus-visible{outline:3px solid var(--ink);outline-offset:6px}.seal[aria-disabled=true]{cursor:default}
@media(hover:hover){.seal:not([aria-disabled=true]):hover{transform:translate(-50%,-50%) rotate(8deg) scale(1.06)}}
.seal-ring{width:62px;height:62px;border:1px solid #bc620b;border-radius:50%;display:flex;flex-direction:column;justify-content:center;align-items:center;box-shadow:0 1px 0 #ffc990,inset 0 1px 0 #ffc990}
.seal-number{font-family:var(--heading);font-weight:600;font-size:var(--type-main);letter-spacing:-.07em;line-height:1.1;margin-right:2px;text-shadow:0 1px #ffc886}
.seal-years{font-family:var(--heading);font-size:var(--type-small);font-weight:600;letter-spacing:.18em;margin-top:3px}
.envelope-caption{position:absolute;z-index:5;bottom:26px;left:30px;right:30px;display:flex;justify-content:space-between;font-family:var(--heading);font-size:var(--type-small);font-weight:500;letter-spacing:.08em;color:#647b8a}
.envelope-note{position:absolute;bottom:-16px;left:0;right:0;text-align:center;font-size:var(--type-small);color:#ccd7de;letter-spacing:.035em}
.intro-footer{display:flex;justify-content:space-between;gap:20px;padding-block:24px;border-top:1px solid #ffffff24;font-family:var(--heading);font-size:var(--type-small);font-weight:500;color:#d4dfe6;letter-spacing:.035em}
.status-dot{display:inline-block;width:5px;height:5px;background:var(--orange);margin:0 12px 2px 0}.footer-divider{margin-inline:10px;opacity:.5}
[data-intro] body{overflow:hidden}[data-intro] main{visibility:hidden}[data-intro] .intro{display:grid}
[data-intro="opening"] .flap{animation:flap-open .65s .16s ease-in-out forwards}
[data-intro="opening"] .seal{animation:seal-release .3s ease-in forwards}
[data-intro="opening"] .letter{animation:letter-rise .85s .65s cubic-bezier(.22,.61,.36,1) forwards}
[data-intro="opening"] .envelope{animation:envelope-straighten 1.5s ease forwards}
[data-intro="opening"] .intro{animation:scene-exit .5s 1.55s ease forwards}
[data-intro="opening"] .envelope-caption{opacity:0;transition:opacity .2s}

@keyframes flap-open{0%{transform:rotateX(0);z-index:5}50%{z-index:5}51%{z-index:1}100%{transform:rotateX(180deg);z-index:1}}
@keyframes seal-release{to{opacity:0;transform:translate(-50%,-35%) rotate(14deg) scale(1.08)}}
@keyframes letter-rise{to{transform:translateY(-45%) scale(1.02)}}
@keyframes envelope-straighten{to{transform:rotate(0) translateY(24px)}}
@keyframes scene-exit{to{opacity:0}}
/* The invitation remains available without JavaScript. */
.main-header{border-color:var(--line);padding-block:34px}.main-header .edition{display:flex;align-items:center;gap:15px;color:var(--muted)}.edition-dot{width:4px;height:4px;background:var(--orange)}
.hero{display:grid;grid-template-columns:1fr 1fr;column-gap:70px;align-items:center;padding-top:52px}
.hero-copy{padding-block:14px 44px}.hero-copy .eyebrow{margin-bottom:26px;color:var(--muted)}
.hero h1{font-size:var(--type-main);font-weight:500;line-height:.98;letter-spacing:-.07em}
.hero-subtitle{font-size:var(--type-small);line-height:1.8;margin-top:27px;color:var(--muted)}.hero-subtitle strong{font-weight:600;color:var(--ink)}
.jubilee{position:relative;align-self:stretch;isolation:isolate;min-width:0;display:flex;align-items:center;justify-content:center;flex-direction:column;overflow:hidden;margin-bottom:42px;background:linear-gradient(130deg,#e6ebee,#eef1f3 70%)}
.jubilee::before{content:'';position:absolute;inset:20px;border:1px solid #bdc9d15c;z-index:-1}
.jubilee::after{content:'';position:absolute;top:20px;bottom:20px;left:45%;width:1px;background:#bdc9d12e;z-index:-1}
.jubilee-dates{position:absolute;top:37px;left:39px;font-family:var(--heading);font-size:var(--type-small);letter-spacing:.06em;font-weight:500}.jubilee-dates>span{margin-inline:10px;color:#8799a5}
.jubilee-caption{z-index:2;font-family:var(--heading);font-size:var(--type-small);font-weight:600;text-transform:uppercase;letter-spacing:.3em;margin-top:1px;margin-bottom:14px}
.jubilee-corner{position:absolute;right:16px;top:16px;width:8px;height:8px;background:var(--orange)}
.event-strip{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr auto;gap:40px;align-items:center;border-block:1px solid var(--line);padding:22px 0}
.event-strip>div{display:flex;flex-direction:column;gap:7px;font-family:var(--heading);font-weight:500;font-size:var(--type-main)}.event-strip time>span{color:#8f9da7;padding-inline:9px}
.strip-label{font-size:var(--type-small);font-weight:400;text-transform:uppercase;letter-spacing:.15em;color:var(--muted)}.strip-city{font-size:var(--type-small);color:var(--muted);margin-left:8px}
.details-anchor{display:grid;place-items:center;width:48px;height:48px;border:1px solid #c3cdd3;text-decoration:none;transition:border-color .2s,background .2s}.details-anchor:hover{background:#e8edf0;border-color:var(--ink)}
.welcome{display:grid;grid-template-columns:1fr 2fr;gap:55px;padding-block:100px 80px;align-items:start}.welcome>.eyebrow{padding-top:10px;line-height:1.8;color:var(--muted);font-size:var(--type-small);max-width:190px}
.welcome h2{font-size:var(--type-main);line-height:1.25;letter-spacing:-.045em}.welcome div>p{font-size:var(--type-small);line-height:1.85;color:var(--muted);margin-top:24px;max-width:530px}
.details{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);padding-bottom:80px;scroll-margin-top:26px}
.detail-block{padding:30px 52px 20px 0}.detail-block+.detail-block{border-left:1px solid var(--line);padding-left:52px;padding-right:0}
.detail-heading{display:flex;justify-content:space-between;align-items:center;gap:15px}.detail-heading h2{font-size:var(--type-small);font-weight:500;line-height:1.6}.detail-heading>span{font-family:var(--heading);font-size:var(--type-small);color:#718592}
.date-full{font-size:var(--type-main);line-height:1.6;margin-top:14px}.time-row{display:flex;align-items:center;gap:20px;border-top:1px solid var(--line);padding-top:22px;margin-top:30px}.time-value{font-family:var(--heading);font-size:var(--type-main);font-weight:500;letter-spacing:-.04em}.time-row>span+span{font-size:var(--type-small);line-height:1.8}
.venue-name{font-family:var(--heading);font-size:var(--type-main);font-weight:500;line-height:1.2;letter-spacing:-.055em;margin-top:33px}.hall-name{font-size:var(--type-main);line-height:1.6;margin-top:16px}.venue-block address{font-size:var(--type-small);line-height:1.8;font-style:normal;color:var(--muted);margin-top:18px}
.text-link{display:inline-flex;align-items:center;gap:27px;font-family:var(--heading);font-size:var(--type-small);font-weight:500;min-height:44px;margin-top:18px;border-bottom:1px solid var(--orange);text-decoration:none}.text-link svg{width:18px;height:18px}
.dress-section{position:relative;background:var(--ink);color:#fff;overflow:hidden}
.dress-inner{position:relative;display:flex;justify-content:space-between;align-items:center;gap:50px;padding-block:60px}
.dress-copy .eyebrow{color:#d0dae0;font-size:var(--type-small)}.dress-copy h2{font-size:var(--type-main);font-weight:400;line-height:1.2;letter-spacing:-.06em;margin-top:25px}.dress-copy h2>span{color:var(--orange)}
.dress-copy>p:last-child{font-size:var(--type-small);line-height:1.8;color:#d0dbe2;margin-top:18px}
.dress-art{width:280px;height:280px;margin-right:7%;opacity:.95}.dress-index{position:absolute;right:0;top:35px;font-family:var(--heading);font-size:var(--type-small);color:#cedae2}
.closing{padding-block:84px 80px;text-align:center}.closing h2{font-size:var(--type-main);line-height:1.12;letter-spacing:-.06em}.closing>p{font-size:var(--type-small);line-height:1.8;color:var(--muted);margin-top:25px}.closing>p>span{margin-inline:10px;color:#8b9ba5}.closing .button{margin-top:30px}
.main-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid var(--line);padding-block:21px;font-family:var(--heading);font-size:var(--type-small);color:var(--muted)}
.replay-button{min-height:44px;padding:10px 0;border:0;background:none;color:var(--muted);font-size:var(--type-small);cursor:pointer}.replay-button:hover{color:var(--ink)}.replay-button>span{font-size:var(--type-small);margin-left:14px}
#invitation-title:focus{outline:none}.is-revealed .hero{animation:page-enter .6s ease both}@keyframes page-enter{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media(min-width:1600px){.intro-layout{column-gap:70px}.envelope-stage{min-height:460px}}
@media(max-width:1100px){
  .wrap{width:calc(100% - 72px)}.brand{width:265px}.intro-layout{column-gap:32px}.intro-copy h1{font-size:var(--type-main)}.envelope-stage{min-height:350px}.intro-description{font-size:var(--type-small)}.envelope-note{bottom:0}
  .hero{column-gap:36px}.hero h1{font-size:var(--type-main)}.jubilee{margin-bottom:36px}.hero-subtitle{font-size:var(--type-small)}.strip-city{display:block;font-size:var(--type-small);margin-left:0;margin-top:4px}.event-strip>div{font-size:var(--type-main)}
  .detail-block{padding-right:35px}.detail-block+.detail-block{padding-left:35px}.venue-name{font-size:var(--type-main)}.welcome{gap:35px;grid-template-columns:1fr 2.2fr}.dress-art{margin-right:2%}
}
@media(max-width:800px){
  .wrap{width:calc(100% - 48px)}.intro-header,.main-header{padding-block:26px}.brand{width:250px}.edition{font-size:var(--type-small)}.intro-header .edition span{margin-inline:7px}
  .intro-layout{grid-template-columns:1fr;grid-template-rows:auto;justify-items:center;padding-block:38px 35px;gap:0}.intro-copy{grid-area:auto;text-align:center}.intro-copy .eyebrow{justify-content:center;font-size:var(--type-small);margin-bottom:19px}.intro-copy h1{font-size:var(--type-main);line-height:1.03;letter-spacing:-.065em}.intro-copy h1 br{display:none}.intro-copy h1>span{display:block}.intro-description{font-size:var(--type-small);line-height:1.7;margin-top:17px}.intro-description br{display:none}
  .envelope-stage{grid-area:auto;width:min(410px,92%);min-height:0;padding:0;margin-block:50px 65px;aspect-ratio:1.53}.envelope-guides{inset:-16px 0 -16px}.envelope-note{display:block;bottom:-45px;line-height:1.7;font-size:var(--type-small)}.envelope{width:100%}
  .intro-footer{font-size:var(--type-small);padding-block:22px;flex-wrap:wrap;justify-content:center;gap:8px 24px}.intro-footer>span{white-space:nowrap}.status-dot{margin-right:8px}.footer-divider{margin-inline:6px}
  .hero{column-gap:28px;padding-top:38px}.hero h1{font-size:var(--type-main)}.hero-copy .eyebrow{font-size:var(--type-small);gap:11px}.hero-subtitle{font-size:var(--type-small)}.jubilee-dates{top:28px;left:28px;font-size:var(--type-small)}.jubilee::before{inset:15px}.jubilee-caption{font-size:var(--type-small)}.jubilee-corner{top:12px;right:12px;width:6px;height:6px}
  .event-strip{gap:20px;padding-block:20px}.event-strip>div{font-size:var(--type-main)}.event-strip time>span{padding-inline:4px}.strip-label{font-size:var(--type-small)}.details-anchor{width:42px;height:42px}
  .welcome{padding-block:65px 55px;grid-template-columns:1fr;gap:22px}.welcome>.eyebrow{max-width:none;padding-top:0}.welcome h2{font-size:var(--type-main)}.welcome div>p{font-size:var(--type-small);max-width:540px;margin-top:20px}
  .detail-block{padding-right:25px}.detail-block+.detail-block{padding-left:25px}.venue-name{font-size:var(--type-main)}.hall-name{font-size:var(--type-main)}.date-full{font-size:var(--type-main)}.time-row{gap:14px}.time-value{font-size:var(--type-main)}.time-row>span+span{font-size:var(--type-small)}.detail-heading h2{font-size:var(--type-small)}.details{padding-bottom:55px}
  .dress-art{width:220px;height:220px;margin-right:0}.dress-inner{padding-block:50px;gap:20px}.dress-copy h2{font-size:var(--type-main)}.closing{padding-block:65px}.closing h2{font-size:var(--type-main)}
}
@media(max-width:560px){
  .wrap{width:calc(100% - 40px)}.intro-header{padding-top:max(26px,env(safe-area-inset-top));padding-bottom:24px}.brand{width:225px}.intro-header .edition{font-size:var(--type-small);letter-spacing:0}.intro-header .edition span{margin-inline:3px}.intro-header{gap:12px}
  .intro-layout{padding-top:30px;padding-bottom:30px}.intro-copy h1{font-size:var(--type-main)}.intro-copy .eyebrow{font-size:var(--type-small);letter-spacing:.13em;gap:12px}.intro-description{font-size:var(--type-small);max-width:240px;margin-inline:auto}.intro-description br{display:block}
  .envelope-stage{width:88%;margin-block:40px 60px}.envelope-guides{inset:-12px -2px}.envelope-guides::before{inset:10px}.envelope-guides>span{width:5px;height:5px;left:-3px;top:-3px}.envelope-guides>span+span{inset:auto -3px -3px auto}.seal{width:62px;height:62px}.seal-ring{width:48px;height:48px}.seal-number{font-size:var(--type-main)}.seal-years{font-size:var(--type-small)}.envelope-caption{font-size:var(--type-small);bottom:18px;left:20px;right:20px}
  .letter{inset:9px 12px;padding:12px 15px}.letter-top{font-size:var(--type-small)}.letter-title{font-size:var(--type-main);margin-top:2px}.letter-date{font-size:var(--type-small);padding-top:8px}
  .intro-footer{font-size:var(--type-small);padding-block:18px;padding-bottom:max(18px,env(safe-area-inset-bottom));gap:7px}.intro-footer>span{width:100%;text-align:center}
  .main-header{padding-block:25px}.main-header .brand{width:230px}.main-header .edition{display:none}
  .hero{grid-template-columns:1fr;padding-top:31px;gap:0}.hero-copy{padding:0 0 28px;position:relative}.hero-copy .eyebrow{font-size:var(--type-small);margin-bottom:22px;letter-spacing:.14em}.hero h1{font-size:var(--type-main);line-height:.94;letter-spacing:-.075em}.hero-subtitle{font-size:var(--type-small);line-height:1.75;margin-top:22px}
  .jubilee{height:257px;min-height:0;margin-bottom:26px;align-items:center}.jubilee-caption{margin-top:14px;font-size:var(--type-small);margin-bottom:0}.jubilee-dates{font-size:var(--type-small);top:25px;left:27px;writing-mode:vertical-rl}.jubilee-dates>span{margin-inline:7px}.jubilee::after{left:50%}
  .event-strip{grid-template-columns:1fr auto;grid-row:2;gap:17px;padding-block:18px;margin-bottom:26px}.jubilee{grid-row:3}.event-strip>div{font-size:var(--type-main);gap:4px}.event-strip>div:nth-child(2){grid-area:2/1}.strip-city{display:inline;font-size:var(--type-small);margin-left:3px}.details-anchor{grid-area:1/2/3/3;align-self:center;width:43px;height:53px}.strip-label{font-size:var(--type-small)}.event-strip time>span{padding-inline:5px}
  .welcome{padding-block:52px 38px;gap:18px}.welcome>.eyebrow{font-size:var(--type-small)}.welcome h2{font-size:var(--type-main);line-height:1.3;letter-spacing:-.05em}.welcome div>p{font-size:var(--type-small);line-height:1.9;margin-top:17px;max-width:330px}
  .details{grid-template-columns:1fr;padding-bottom:42px}.detail-block{padding:24px 0 30px}.detail-block+.detail-block{padding:26px 0 0;border-left:0;border-top:1px solid var(--line)}.detail-heading h2{font-size:var(--type-small)}.date-full{font-size:var(--type-main);margin-top:9px}.time-row{padding-top:18px;margin-top:21px;gap:22px}.time-value{font-size:var(--type-main)}.time-row>span+span{font-size:var(--type-small)}
  .venue-name{font-size:var(--type-main);margin-top:26px}.hall-name{font-size:var(--type-main);margin-top:12px}.venue-block address{font-size:var(--type-small);margin-top:17px}.text-link{font-size:var(--type-small);margin-top:18px}
  .dress-inner{padding-block:38px;gap:0;min-height:255px}.dress-copy{z-index:1}.dress-copy .eyebrow{font-size:var(--type-small);gap:11px}.dress-copy h2{font-size:var(--type-main);line-height:1.1;letter-spacing:-.07em;margin-top:23px}.dress-copy>p:last-child{font-size:var(--type-small);line-height:1.7;margin-top:18px}.dress-art{position:absolute;right:-18px;bottom:25px;width:147px;height:147px;opacity:.8}.dress-index{top:25px;font-size:var(--type-small)}
  .closing{padding-block:51px 44px}.closing h2{font-size:var(--type-main);line-height:1.13}.closing>p{font-size:var(--type-small);margin-top:23px}.closing>p>span{margin-inline:4px}.closing .button{margin-top:24px;font-size:var(--type-small);min-height:54px;padding:15px 20px}
  .main-footer{flex-wrap:wrap;font-size:var(--type-small);padding-block:20px;gap:8px;justify-content:space-between}.main-footer>span:last-child{order:1}.replay-button{order:2;width:100%;margin-top:4px;text-align:center;font-size:var(--type-small)}
}
@media(max-width:360px){
  .intro-header .brand{width:202px}.intro-header .edition{font-size:var(--type-small)}.intro-copy h1{font-size:var(--type-main)}.intro-copy .eyebrow{font-size:var(--type-small)}.hero h1{font-size:var(--type-main)}.jubilee{height:230px}.welcome h2{font-size:var(--type-main)}.dress-copy h2{font-size:var(--type-main)}.dress-art{width:120px;height:120px;right:-12px}.closing h2{font-size:var(--type-main)}.closing>p{font-size:var(--type-small)}
}
@media(max-height:760px) and (min-width:801px){.intro-layout{padding-block:34px 42px}.intro-copy h1{font-size:var(--type-main)}.intro-copy .eyebrow{margin-bottom:22px}.intro-description{margin-top:23px}.envelope-stage{min-height:330px}}
@media(max-height:700px) and (max-width:800px){.intro-layout{padding-top:23px;padding-bottom:24px}.intro-copy h1{font-size:var(--type-main)}.intro-copy .eyebrow{margin-bottom:13px}.intro-description{font-size:var(--type-small);margin-top:12px}.envelope-stage{width:min(260px,76%);margin-block:31px 55px}.intro-header{padding-block:21px}.intro-footer{padding-block:14px}}
@media(max-height:500px) and (min-width:561px){.intro-layout{grid-template-columns:1fr 1fr;grid-template-rows:auto;column-gap:45px;padding-block:27px}.intro-copy{grid-area:1/1;text-align:left}.intro-copy .eyebrow{justify-content:flex-start}.intro-copy h1{font-size:var(--type-main)}.intro-description{font-size:var(--type-small)}.intro-description br{display:none}.envelope-stage{grid-area:1/2;width:100%;margin:0;min-height:0}.intro-header{padding-block:21px}.intro-footer{font-size:var(--type-small)}.envelope-note{display:block;bottom:-45px;line-height:1.7;font-size:var(--type-small)}}
@media(max-height:600px) and (max-width:560px){.intro-header{padding-block:17px}.intro-layout{padding-top:17px;padding-bottom:18px}.intro-copy h1{font-size:var(--type-main)}.intro-description{margin-top:10px}.intro-footer{padding-block:11px}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Fixed type scale: primary information 20 px, all supporting copy 12 px. */
.brand-slashes{display:inline-block;flex-shrink:0;width:38px;height:auto;vertical-align:middle}
.letter-top .brand-slashes{width:28px;height:auto}
.closing>.brand-slashes{margin-bottom:24px}
.jubilee-mark{position:absolute;right:25px;bottom:25px;width:76px;height:auto}
.intro-copy h1,.hero h1,.welcome h2,.closing h2,.dress-copy h2{font-size:var(--type-main);line-height:1.5;letter-spacing:normal;font-weight:500}
.date-full,.time-value,.venue-name,.hall-name,.event-strip>div{font-family:var(--heading);font-size:var(--type-main);font-weight:500;line-height:1.5;letter-spacing:normal}
.date-full,.venue-name{margin-top:28px}
.time-row{align-items:center;gap:20px}
.intro-copy h1{margin-bottom:0}.intro-description{margin-top:20px}
.jubilee{min-height:240px}
.jubilee-caption{font-size:var(--type-small);letter-spacing:.08em}
.hero h1{white-space:normal}.hero-subtitle{margin-top:20px}
.welcome h2,.closing h2{max-width:100%}
.welcome{padding-block:64px 48px}.welcome h2{line-height:1.6}
.welcome>.eyebrow{max-width:none;letter-spacing:.08em}
.dress-art{width:180px;height:180px}.dress-copy h2{margin-top:24px}
.dress-inner{padding-block:44px}.closing{padding-block:56px}
.envelope-caption{left:20px;right:20px;bottom:23px;letter-spacing:0}
.letter-title{margin-top:16px;letter-spacing:normal}.letter-top{letter-spacing:0}
.letter-date{letter-spacing:0}.seal-number{letter-spacing:0;margin-right:0}
.seal-years{letter-spacing:0;margin-top:0;line-height:1.2}
.main-footer{line-height:1.6}.edition{letter-spacing:.04em}
.intro-footer{font-size:var(--type-small);letter-spacing:0}
@media(max-width:800px){.hero{column-gap:24px}.jubilee-dates{left:24px;top:24px}.envelope-caption{font-size:var(--type-small)}.intro-header .edition{font-size:var(--type-small)}.envelope-note{top:calc(100% + 28px);bottom:auto}.envelope-stage{margin-bottom:84px}}
@media(max-width:560px){
  .intro-header{flex-wrap:wrap;justify-content:center;gap:12px}.intro-header .edition{display:none}
  .intro-copy h1>span{display:inline}.intro-copy h1{font-size:var(--type-main)}
  .intro-description{font-size:var(--type-small);margin-top:16px}.intro-copy .eyebrow{margin-bottom:16px}
  .envelope-stage{width:88%;margin-top:36px}.envelope-caption{left:16px;right:16px;bottom:14px}.envelope-caption>span{display:none}
  .letter{padding:10px 12px}.letter-top .brand-slashes{width:24px}.letter-title{margin-top:8px;line-height:1.3}.letter-date{font-size:var(--type-small);padding-top:8px}
  .jubilee{height:240px;margin-bottom:20px}.jubilee-dates{writing-mode:horizontal-tb;font-size:var(--type-small)}.jubilee-mark{width:57px;right:22px;bottom:22px}
  .event-strip>div{font-size:var(--type-main)}.strip-city{display:block;margin-left:0;font-size:var(--type-small)}
  .event-strip{grid-template-columns:minmax(0,1fr) auto;gap:12px}.event-strip time>span{padding-inline:0}
  .welcome{padding-block:40px}.welcome h2{font-size:var(--type-main)}.welcome div>p{font-size:var(--type-small)}
  .dress-inner{min-height:230px;padding-block:36px}.dress-art{width:120px;height:120px;right:0;bottom:30px}
  .dress-copy h2{font-size:var(--type-main)}.dress-copy>p:last-child{font-size:var(--type-small)}
  .closing h2{font-size:var(--type-main)}.closing>p{font-size:var(--type-small)}.closing>p>span{margin-inline:3px}
  .main-footer{justify-content:center}.main-footer>span:last-child{display:none}
}

/* Original anniversary artwork: CSS clips the left 568 × 617 px of hero5.png.
   The source file and the aspect ratio of the mark remain unchanged. */
.anniversary-mark{display:block;overflow:hidden;aspect-ratio:568/617;flex-shrink:0}
.anniversary-mark>img{display:block;width:364.9647887323944%;max-width:none;height:auto;pointer-events:none}
.jubilee{height:280px;min-height:280px}.jubilee-emblem{width:130px;margin:32px 0 12px}
.jubilee-caption{margin-top:0;margin-bottom:0}.jubilee-mark{width:57px;right:24px;bottom:24px}
.seal{width:86px;height:86px;background:linear-gradient(145deg,#fff,#e6edf1);border:1px solid #e96e1e;box-shadow:0 4px 8px #35495630,inset 0 0 0 3px #edf2f5,inset 0 0 0 4px #e96e1e}
.seal-ring{width:67px;height:67px;border:1px solid #c8d2da;box-shadow:none}
.seal .anniversary-mark{width:38px}
@media(max-width:560px){.jubilee{height:280px;min-height:280px}.seal{width:68px;height:68px}.seal-ring{width:52px;height:52px}.seal .anniversary-mark{width:30px}}
@media(max-height:500px) and (min-width:561px){
  .intro-layout{padding-block:16px}
  .envelope-stage{height:max(100px,calc(100svh - 240px));padding:0;margin:0 0 48px;aspect-ratio:auto}
  .envelope{height:100%;width:auto;max-width:100%;aspect-ratio:1.53}
  .envelope-note{top:calc(100% + 24px);bottom:auto}
  .envelope-caption{display:none}
  .seal{width:68px;height:68px}.seal-ring{width:52px;height:52px}.seal .anniversary-mark{width:30px}
}
