@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500&display=swap');
@font-face{font-family:Editorial;src:url('assets/serif.ttf');font-display:swap}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f6f5f1;color:#282725;font:16px/1.65 Manrope,Arial,sans-serif}h1,h2,p,figure{margin:0}h1,h2,.date,.venue-name{font-family:Editorial,Georgia,serif;font-weight:400}h2{font-size:clamp(42px,5.2vw,76px);line-height:1.05;letter-spacing:-.025em}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit}.review{padding:14px 5%;background:#e6e4de;display:flex;gap:18px;align-items:center;flex-wrap:wrap;font-size:12px}.review>span:first-child{margin-right:auto}.review button{border:0;border-bottom:1px solid #999;padding:5px 0;background:transparent;font:inherit;cursor:pointer}.review button[aria-pressed=true]{border-bottom:2px solid #222}.cover{position:relative;min-height:820px;height:94svh;max-height:1100px;overflow:hidden}.cover h1{position:absolute;left:9%;top:14%;z-index:2;font-size:clamp(100px,10.2vw,160px);line-height:.87;letter-spacing:-.04em}.cover h1 span{font-size:.45em;vertical-align:middle}.sphere{position:absolute;right:-6%;top:10%;width:69%}.sphere img{display:block;width:100%;height:auto}.sphere canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.sphere i{position:absolute;left:28%;top:9%;width:44%;height:59%;border-radius:50%;overflow:hidden;pointer-events:none}.sphere i:after{content:'';position:absolute;inset:-50%;background:linear-gradient(110deg,transparent 44%,#ffffff90 50%,transparent 55%);transform:translateX(-100%);opacity:0}.sphere.glint i:after{animation:glint 7s ease-in-out forwards}@keyframes glint{25%{opacity:.5}75%{opacity:.3}100%{transform:translateX(100%);opacity:0}}.date-block{position:absolute;left:9%;bottom:13%;font-size:16px}.date{font-size:clamp(48px,4.5vw,68px);line-height:1.3;letter-spacing:.055em;margin:12px 0}.scroll{position:absolute;right:9%;bottom:9%;font-size:12px;text-decoration:none;line-height:1.5}.scroll span{position:absolute;right:-30px;bottom:0;font-size:25px}.invitation{max-width:1200px;margin:auto;padding:90px 6% 180px;display:grid;grid-template-columns:1.4fr 1fr;gap:14%;align-items:center}.invitation h2{margin-bottom:32px}.invitation p{max-width:490px}.invitation figure{width:100%;max-width:280px;justify-self:end}.invitation img{display:block;width:100%;height:auto}.transition{position:relative;isolation:isolate;overflow:clip}.candelabra{position:absolute;z-index:2;width:530px;left:-130px;top:135px;pointer-events:none;transform:rotate(-13deg)}.venue{min-height:430px;padding:0 10% 130px 45%}.venue h2{margin-bottom:30px}.venue-name{font-size:32px;margin-bottom:12px}.route{margin-top:24px;display:inline-flex;gap:45px;text-decoration:none;border-bottom:1px solid;padding-bottom:9px;font-size:14px}.program{background:#282725;color:#f4f2ed;padding:115px 10% 110px 45%}.program h2{margin-bottom:40px;white-space:nowrap}dl{margin:0}dl>div{display:grid;grid-template-columns:110px 1fr;border-top:1px solid #ffffff35;padding:25px 0;align-items:center}dt{font-family:Editorial;font-size:38px;line-height:1.1;font-variant-numeric:tabular-nums}dd{margin:0;font-size:16px}.dress{padding:100px 0 90px;background:#f6f5f1}.dress-heading{max-width:1150px;margin:0 auto 40px;padding:0 6%;display:grid;grid-template-columns:1fr 1fr;column-gap:10%;align-items:center}.dress-heading h2{grid-column:1;grid-row:1}.swatches{display:flex;gap:12px;margin:28px 0;grid-column:1;grid-row:2}.swatches span{display:block;width:30px;height:30px;border-radius:50%;background:var(--c);border:1px solid #0000000c}.swatches .silver{background:linear-gradient(120deg,#8b8c8f,#eeeeed 42%,#aaa 70%,#d3d3d2)}.swatches .pearl{background:radial-gradient(circle at 30% 30%,#fff,#e7e4dc 75%,#d4d0c8)}.dress-heading p{grid-column:2;grid-row:1/3;font-size:16px}.gallery{display:flex;gap:22px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;padding:20px max(6%,calc((100vw - 1100px)/2)) 25px;scrollbar-width:thin;scrollbar-color:#8b8880 #e4e1da;align-items:center}.gallery figure{flex:none;width:300px;height:420px;scroll-snap-align:center}.gallery figure.detail{width:225px;height:300px}.gallery figure.wide{width:370px;height:350px}.gallery img{width:100%;height:100%;object-fit:cover;display:block}.gallery-controls{display:flex;justify-content:center;align-items:center;gap:25px;margin:20px 0 35px;font-size:13px}.gallery-controls button{width:44px;height:44px;border:1px solid #b8b4ab;border-radius:50%;background:transparent;font-size:22px;cursor:pointer}.gallery-controls button:disabled{opacity:.3}.dress-copy{max-width:620px;padding:0 25px;margin:auto;text-align:center}.review-note{padding:28px 6%;background:#e6e4de;font-size:13px}.gallery:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid #8a7354;outline-offset:5px}
@media(max-width:700px){body{font-size:15px}.review{gap:12px;padding:12px 6%;font-size:11px}.review>span:first-child{width:100%}.cover{height:auto;min-height:790px}.cover h1{top:55px;left:7%;font-size:clamp(84px,24vw,116px)}.sphere{width:142%;right:-31%;top:230px}.date-block{left:7%;bottom:70px;font-size:14px}.date{font-size:46px;margin:8px 0;letter-spacing:.03em}.scroll{font-size:11px;bottom:22px;right:12%}.scroll span{right:-24px}.invitation{padding:55px 7% 85px;gap:30px;grid-template-columns:1fr}.invitation h2{font-size:44px;margin-bottom:23px}.invitation p{font-size:15px}.invitation figure{max-width:190px;justify-self:end;margin-right:6%;margin-top:5px}.venue{padding:0 7% 110px 7%;min-height:390px}.venue h2{font-size:44px;margin-bottom:24px}.venue-name{font-size:29px}.venue p:not(.venue-name){max-width:260px}.candelabra{width:310px;left:auto;right:-150px;top:95px;transform:rotate(-20deg)}.program{padding:100px 7% 65px}.program h2{font-size:44px;margin-bottom:32px;white-space:normal;position:relative;z-index:3}.program dl{position:relative;z-index:3}.program dl>div{grid-template-columns:84px 1fr;padding:23px 0}.program dt{font-size:31px}.program dd{font-size:14px}.dress{padding:65px 0}.dress-heading{display:block;padding:0 7%;margin-bottom:18px}.dress-heading h2{font-size:44px}.dress-heading p{font-size:15px}.swatches{gap:14px;margin:25px 0}.swatches span{width:27px;height:27px}.gallery{gap:14px;padding:20px 7% 20px}.gallery figure{width:70vw;height:94vw;max-height:420px}.gallery figure.detail{width:53vw;height:71vw}.gallery figure.wide{width:80vw;height:78vw}.gallery-controls{margin:14px 0 25px}.dress-copy{font-size:15px;text-align:left;padding:0 7%}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.sphere.glint i:after{animation:none}}

/* Fourth review: material-led compositions */
.effect-scrub{display:flex;align-items:center;gap:8px}.effect-scrub input{width:100px;accent-color:#575957}.date-block{display:grid;gap:18px}.date-block p{margin:0;line-height:1.4}.date-block .date{font-family:Manrope,Arial,sans-serif;font-size:clamp(38px,3.6vw,54px);font-weight:400;letter-spacing:.025em;line-height:1.1;font-variant-numeric:lining-nums tabular-nums}.date-block>p:not(.date){font-size:15px;letter-spacing:0}.invitation{grid-template-columns:1.15fr 1fr;gap:9%;padding-bottom:100px;align-items:center}.portrait-composition{position:relative;min-height:460px;width:100%;isolation:isolate}.portrait-fabric{position:absolute;inset:20% -10% 0 20%;background:url('assets/fabric.webp') 50% 50% / 160% auto;z-index:-1}.invitation figure{position:relative;max-width:none;width:80%;margin:0}.invitation figure img{width:100%;height:355px;object-fit:cover;object-position:52% 36%}.venue{padding:60px 10% 90px;min-height:0;text-align:center}.venue p{margin-left:auto;margin-right:auto}.fabric-seam{height:220px;background:url('assets/fabric.webp') 50% 62% / 120% auto}.program{position:relative;overflow:hidden;background:#111213;padding:110px 10% 100px 48%;min-height:650px}.program>div{position:relative;z-index:1}.protea{position:absolute;width:43%;max-width:540px;left:-3%;top:45px;mix-blend-mode:screen;mask-image:linear-gradient(to bottom,#000 85%,transparent);pointer-events:none}.gallery figure,.gallery figure.detail,.gallery figure.wide{width:300px;height:400px;max-height:none;aspect-ratio:3/4}.gallery img{object-position:center}.gallery figure:nth-child(2) img{object-position:50% 40%}.gallery figure:nth-child(10) img{object-position:52% 38%}.sphere i{display:none}
@media(max-width:700px){.date-block{left:7%;bottom:83px;gap:15px}.date-block .date{font-size:clamp(32px,9vw,43px);letter-spacing:.015em}.date-block>p:not(.date){font-size:14px}.cover{min-height:820px}.sphere{top:215px}.invitation{display:block;padding:55px 7% 65px}.portrait-composition{width:94%;max-width:380px;margin:38px auto 0;min-height:340px}.portrait-fabric{inset:24% -7% 0 24%;background-size:190% auto}.invitation figure{width:78%;margin:0;max-width:none}.invitation figure img{height:285px;object-position:53% 32%}.venue{padding:35px 7% 65px;min-height:0;text-align:left}.venue p{margin-left:0}.fabric-seam{height:135px;background-size:150% auto;background-position:50% 65%}.program{padding:220px 7% 65px;min-height:0}.protea{width:250px;max-width:none;top:-50px;left:auto;right:-25px;transform:rotate(-15deg);mask-image:linear-gradient(#000 65%,transparent 95%)}.program h2{font-size:44px}.gallery figure,.gallery figure.detail,.gallery figure.wide{width:72vw;height:96vw;max-height:none}.effect-scrub{font-size:11px}.effect-scrub input{width:90px}}
.portrait-fabric,.fabric-seam{filter:saturate(.35)}.invitation figure{height:355px;overflow:hidden}.invitation figure img{transform:scale(1.38);transform-origin:53% 38%}.protea{mix-blend-mode:lighten}.date-block{gap:16px}@media(max-width:700px){.invitation figure{height:285px}.date-block{gap:14px}}
@font-face{font-family:Numerals;src:url('assets/numerals.ttf');font-display:swap}@font-face{font-family:NumeralsAlt;src:url('assets/numerals-alt.ttf');font-display:swap}:root{--numerals:Numerals}.date-block .date,.program dt{font-family:var(--numerals),Georgia,serif;font-weight:400;font-variant-numeric:lining-nums tabular-nums}.date-block .date{font-size:54px;letter-spacing:.035em}.date-block>p:not(.date),.program dd{font-family:Editorial,Georgia,serif;font-size:25px;line-height:1.2}.program dt{font-size:38px}.review select{font:inherit;border:0;background:transparent;border-bottom:1px solid #888;padding:4px}.portrait-drape{position:absolute;width:115%;height:100%;object-fit:contain;right:-10%;top:12%;z-index:-1;filter:saturate(.4) drop-shadow(0 14px 10px #00000020)}.portrait-composition{min-height:490px}.invitation figure{width:72%;margin-left:3%;transform:rotate(-3deg);box-shadow:0 12px 30px #00000020}.transition{overflow:visible}.fabric-seam{height:240px;position:relative;background:none;filter:none;z-index:2;pointer-events:none}.fabric-seam img{position:absolute;width:380px;height:380px;object-fit:contain;left:6%;top:-55px;transform:rotate(-8deg);filter:saturate(.4) drop-shadow(10px 18px 14px #00000035)}.program{overflow:visible;padding-top:130px}.protea{width:32%;max-width:400px;left:8%;top:120px;mix-blend-mode:normal;mask-image:none;transform:rotate(-12deg);filter:saturate(.45) drop-shadow(10px 16px 12px #00000040)}.dress{position:relative;padding-top:130px}.protea-echo{position:absolute;width:130px;height:170px;object-fit:contain;right:9%;top:-65px;transform:rotate(24deg);filter:saturate(.45) drop-shadow(5px 10px 8px #00000025);z-index:2;pointer-events:none}
@media(max-width:700px){.date-block .date{font-size:43px}.date-block>p:not(.date){font-size:22px}.date-block{gap:13px;bottom:85px}.program dt{font-size:32px}.program dd{font-size:22px}.program dl>div{grid-template-columns:85px 1fr}.portrait-composition{min-height:360px}.portrait-drape{width:110%;height:340px;top:30px;right:-3%}.invitation figure{width:73%;margin-left:6%}.fabric-seam{height:190px}.fabric-seam img{width:265px;height:265px;left:5%;top:-30px;transform:rotate(-7deg)}.program{padding:305px 7% 90px}.protea{width:190px;height:255px;object-fit:contain;max-width:none;left:auto;right:7%;top:25px;transform:rotate(13deg)}.dress{padding-top:110px}.protea-echo{width:98px;height:132px;right:8%;top:-56px;transform:rotate(-22deg)}}
@media(max-width:360px){.protea{right:12%;width:175px}.program dd{font-size:20px}}
