:root{--u:calc(min(100vw,1440px)/1440);--ink:#1e1a1a;--bg:#e6ddcb;--wing:'Archivo','Arial Narrow',sans-serif;--season:'Inter Tight','Helvetica Neue',sans-serif}
*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink)}
body{font-family:var(--season);overflow-x:hidden}
.page{position:relative;width:min(100vw,1440px);margin:0 auto;overflow:hidden}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.grain{position:absolute;left:0;width:100%;mix-blend-mode:soft-light;opacity:.4;pointer-events:none;object-fit:cover}
.grain-top{top:calc(-61*var(--u));height:calc(1571*var(--u));object-position:bottom}
.grain-bottom{top:calc(2099*var(--u));height:calc(2160*var(--u))}
p{margin:0}
.corner,.names,.date,.faq h3 button{font-family:var(--wing);font-stretch:112%;text-transform:uppercase;font-weight:400}
.hero{position:relative;height:calc(2214*var(--u))}
.hero>*{position:absolute}
.corner{font-size:calc(25*var(--u));letter-spacing:.02em;line-height:1.76}
.c-l{left:calc(48*var(--u));top:calc(42*var(--u))}.c-c{left:50%;transform:translateX(-50%);top:calc(42*var(--u))}.c-r{right:calc(48*var(--u));top:calc(42*var(--u))}
.names{left:0;right:0;top:calc(224*var(--u));display:flex;flex-direction:column;align-items:center;pointer-events:none}.row{display:flex;align-items:flex-start;gap:calc(14*var(--u))}
.names span{white-space:nowrap}.row+.row{margin-top:calc(-62*var(--u))}.small{margin-top:calc(46*var(--u))}
.big{font-size:calc(90.716*var(--u));letter-spacing:.02em;line-height:1.76}
.small{font-size:calc(17.445*var(--u));line-height:1.02;letter-spacing:.02em}
.date{width:calc(234*var(--u));text-align:center;top:calc(765*var(--u))}
.d-l{left:calc(159*var(--u))}.d-r{left:calc(1048*var(--u))}
.cap{font-size:calc(15*var(--u));letter-spacing:.02em;line-height:1.76;margin:0 auto calc(33*var(--u));width:calc(224*var(--u))}
.day{font-size:calc(35*var(--u));letter-spacing:.02em;line-height:1.76}
.photo-booth{left:calc(505*var(--u));top:calc(552*var(--u));width:calc(427*var(--u));height:calc(562*var(--u));object-fit:cover;object-position:bottom}
.venue-photo{left:calc(57*var(--u));top:calc(1328*var(--u));width:calc(1344*var(--u));height:calc(856*var(--u));overflow:hidden}
.venue-photo img{position:absolute;height:100.02%;width:110.13%;left:-6.55%;top:-.01%;max-width:none}
.venue-photo span,.g-right span{position:absolute;inset:0;background:rgba(0,0,0,.1)}
/* patches: foreground 3D layers anchored to design coords */
.patch{position:absolute;z-index:20;padding:0;border:0;background:none;cursor:grab;touch-action:none;-webkit-tap-highlight-color:transparent;perspective:900px;--x:0px;--y:0px;--lift:0;--rx:0deg;--ry:0deg}
.patch img{display:block;width:100%;height:100%;object-fit:cover;user-select:none;-webkit-user-drag:none;pointer-events:none;
 transform:translate3d(var(--x),var(--y),0) rotate(var(--rot)) rotateX(var(--rx)) rotateY(var(--ry)) translateZ(calc(var(--lift)*30px)) scale(calc(1 + var(--lift)*.06));
 filter:drop-shadow(0 1px 0 rgba(0,0,0,.35)) drop-shadow(0 calc(3px + var(--lift)*10px) calc(4px + var(--lift)*14px) rgba(40,25,10,calc(.35 + var(--lift)*.1)));
 transition:transform .55s cubic-bezier(.34,1.56,.64,1),filter .3s}
.patch:hover{--lift:.6;--rx:8deg;--ry:-6deg}
.patch.dragging{cursor:grabbing;--lift:1}.patch.dragging img{transition:filter .2s}
.patch:focus-visible{outline:none}.patch:focus-visible img{outline:3px solid var(--ink);outline-offset:6px;border-radius:6px}
.patch.wiggle img{animation:wiggle .6s cubic-bezier(.34,1.56,.64,1)}
@keyframes wiggle{0%{transform:translate3d(var(--x),var(--y),0) rotate(var(--rot)) scale(1)}30%{transform:translate3d(var(--x),calc(var(--y) - 14px),40px) rotate(calc(var(--rot) - 9deg)) rotateX(14deg) scale(1.08)}60%{transform:translate3d(var(--x),calc(var(--y) - 6px),20px) rotate(calc(var(--rot) + 6deg)) rotateY(12deg) scale(1.04)}100%{transform:translate3d(var(--x),var(--y),0) rotate(var(--rot)) scale(1)}}
.p-michigan{left:calc(999*var(--u));top:calc(327*var(--u));width:calc(346*var(--u));height:calc(346*var(--u));--rot:-5.68deg}
.p-swans{left:calc(316*var(--u));top:calc(981*var(--u));width:calc(265*var(--u));height:calc(265*var(--u));--rot:4.61deg}
.p-night{left:calc(951*var(--u));top:calc(1157*var(--u));width:calc(286*var(--u));height:calc(343*var(--u));--rot:4.3deg}
.p-forever{left:calc(50% + 3*var(--u) - 154*var(--u));top:calc(282*var(--u));width:calc(308*var(--u));height:calc(369*var(--u));--rot:-3.7deg}
/* FAQ */
.faq{position:relative;z-index:5;margin:calc(100*var(--u)) auto 0;width:calc(1212*var(--u))}
.item{border-top:1px solid var(--ink)}.item:last-child{border-bottom:1px solid var(--ink)}
.faq h3{margin:0}
.faq h3 button{all:unset;box-sizing:border-box;display:flex;justify-content:space-between;align-items:center;width:100%;cursor:pointer;font-family:var(--wing);font-stretch:112%;text-transform:uppercase;font-size:max(13px,calc(25*var(--u)));letter-spacing:.02em;line-height:1.76;padding:calc(28*var(--u)) 0;min-height:48px}
.faq h3 button:focus-visible{outline:3px solid var(--ink);outline-offset:4px}
.icon{position:relative;width:19px;height:19px;flex:none;margin-right:calc(10*var(--u))}
.icon::before,.icon::after{content:"";position:absolute;background:var(--ink)}
.icon::before{left:0;right:0;top:9px;height:1px}.icon::after{top:0;bottom:0;left:9px;width:1px;transition:transform .25s}
[aria-expanded=true] .icon::after{transform:scaleY(0)}
.answer{font-size:max(21px,calc(60*var(--u)));letter-spacing:.02em;line-height:1.19;width:min(100%,calc(869*var(--u)));padding:0 0 calc(56*var(--u)) 0;font-weight:300}
.answer p+p,.answer ul+p{margin-top:.6em}.answer ul{margin:.5em 0;padding-left:1.1em}.answer li{margin:.15em 0}
.answer a{color:inherit;text-decoration:underline;text-underline-offset:.12em;text-decoration-thickness:from-font}
/* gallery */
.gallery{position:relative;margin-top:calc(143*var(--u));height:calc(954*var(--u))}
.g-left,.g-right{position:absolute;top:0;height:100%;overflow:hidden}
.g-left{left:calc(48*var(--u));width:calc(651*var(--u))}.g-left img{position:absolute;height:100.04%;left:-7.37%;top:-.02%;width:107.37%;max-width:none}
.g-right{left:calc(699*var(--u));width:calc(693*var(--u))}.g-right img{position:absolute;height:109.69%;left:-.01%;top:0;width:113.14%;max-width:none}
.foot{display:flex;justify-content:space-between;padding:calc(70*var(--u)) calc(48*var(--u)) calc(40*var(--u))}.foot .corner{width:calc(268*var(--u))}.foot .corner:nth-child(2){text-align:center}.foot .corner:last-child{text-align:right}
/* mobile */
@media (max-width:760px){
 .corner{font-size:12px}.c-l,.c-c,.c-r{top:16px}.c-l{left:16px}.c-r{right:16px}
 .hero{height:calc(2300*var(--u) + 140px)}
 .date{top:calc(1140*var(--u) + 24px);width:44%}.d-l{left:3%}.d-r{left:auto;right:3%}
 .cap{font-size:11px;width:auto;margin-bottom:6px}.day{font-size:20px}
 .p-swans{top:calc(1180*var(--u) + 90px)}
 .venue-photo{top:calc(1328*var(--u) + 140px)}.p-night{top:calc(1157*var(--u) + 140px)}
 .faq{width:calc(100% - 32px);margin-top:40px}.answer{padding-bottom:24px}.icon{margin-right:2px}
 .gallery{margin-top:48px}.foot{padding:24px 16px}.foot .corner{width:auto}
}
@media (prefers-reduced-motion:reduce){.patch img,.icon::after{transition:none!important}.patch.wiggle img{animation:none}.patch:hover{--rx:0deg;--ry:0deg}}
