#gala-recap{--recap-gold:#e4bd62;--recap-ivory:#faf5e5;background:#080807;color:var(--recap-ivory);font-family:'DM Sans',Arial,sans-serif;width:100%;isolation:isolate}
#gala-recap *{box-sizing:border-box}
#gala-recap .recap-stage{position:relative}
#gala-recap .recap-media{position:relative;aspect-ratio:16/9;background:#080807;overflow:hidden}
#gala-recap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
#gala-recap .recap-shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(0,0,0,.86),rgba(0,0,0,.46) 46%,rgba(0,0,0,.08) 80%),linear-gradient(0deg,rgba(0,0,0,.7),transparent 30%)}
#gala-recap .recap-copy{position:absolute;left:5.5%;top:50%;transform:translateY(-50%);width:52%;max-width:810px;pointer-events:none;transition:opacity .3s}
#gala-recap .recap-eyebrow{font-size:clamp(10px,1vw,14px);letter-spacing:.19em;line-height:1.7;color:var(--recap-gold);font-weight:600;margin:0 0 20px;text-transform:uppercase}
#gala-recap h2{font-family:'Bodoni Moda',Georgia,serif;font-size:clamp(44px,5.8vw,96px);font-weight:400;line-height:1.04;letter-spacing:-.045em;margin:0 0 24px;text-transform:none;color:var(--recap-ivory)}
#gala-recap .recap-message{font-size:clamp(16px,1.65vw,25px);line-height:1.45;max-width:640px;margin:0 0 24px;color:var(--recap-ivory)}
#gala-recap .recap-event{font-size:clamp(11px,1vw,15px);letter-spacing:.12em;color:var(--recap-gold);font-weight:600;margin:0}
#gala-recap button{font:600 12px/1.3 'DM Sans',Arial,sans-serif;letter-spacing:.08em;border:1px solid var(--recap-gold);background:rgba(8,8,7,.84);color:var(--recap-ivory);cursor:pointer;min-height:44px;padding:12px 18px;display:inline-flex;align-items:center;justify-content:center;gap:10px}
#gala-recap button:hover{background:#302817}
#gala-recap button:focus-visible,#gala-recap a:focus-visible{outline:3px solid #fff;outline-offset:5px}
#gala-recap button:disabled{opacity:.55;cursor:wait}
#gala-recap svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;flex-shrink:0}
#gala-recap .recap-start-wrap{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:3;text-align:center;max-width:calc(100% - 32px)}
#gala-recap .recap-start{border-radius:30px;text-transform:uppercase;min-height:56px;padding:14px 24px;font-size:13px}
#gala-recap .recap-start-help{display:block;font-size:12px;color:#fff;text-shadow:0 1px 5px #000;margin:8px 0 0}
#gala-recap .recap-controls{position:absolute;bottom:0;left:0;right:0;padding:38px 24px 16px;background:linear-gradient(transparent,rgba(0,0,0,.92));display:flex;align-items:center;gap:12px;z-index:4}
#gala-recap .recap-controls button{border-color:transparent;padding:10px;background:rgba(0,0,0,.45)}
#gala-recap .recap-caption{font-size:11px;letter-spacing:.15em;white-space:nowrap}
#gala-recap progress{flex:1;min-width:20px;height:3px;border:0;background:#777;accent-color:var(--recap-gold)}
#gala-recap progress::-webkit-progress-bar{background:#777}
#gala-recap progress::-webkit-progress-value{background:var(--recap-gold)}
#gala-recap .recap-status{font-size:13px;color:#fff;margin:0;padding:8px 24px;background:#17120a}
#gala-recap .recap-status:empty{display:none}
#gala-recap .recap-next{border-top:1px solid var(--recap-gold);border-bottom:1px solid #51452a;padding:42px 5.5%;display:grid;grid-template-columns:130px minmax(0,1fr) auto;align-items:center;gap:36px;background:radial-gradient(ellipse at center,#19160e 0,#080807 70%)}
#gala-recap .recap-date-tile{border:1px solid var(--recap-gold);padding:16px 22px;text-align:center;color:var(--recap-gold);font-size:20px;line-height:1.25;letter-spacing:.08em}
#gala-recap .recap-date-tile strong{display:block;font:400 70px/1.05 'Bodoni Moda',Georgia,serif;letter-spacing:-.05em}
#gala-recap .recap-next-copy{text-align:center}
#gala-recap .recap-next .recap-eyebrow{margin-bottom:10px}
#gala-recap h3{font:400 clamp(30px,3.6vw,58px)/1.1 'Bodoni Moda',Georgia,serif;letter-spacing:-.035em;margin:0 0 12px;color:var(--recap-ivory);text-transform:none}
#gala-recap .recap-next-details{margin:0;font-size:clamp(15px,1.5vw,22px);line-height:1.5;color:var(--recap-ivory)}
#gala-recap .recap-rsvp{display:inline-flex;justify-content:center;align-items:center;min-height:60px;padding:18px 26px;background:linear-gradient(110deg,#f0d17d,#d9ab4e);border:1px solid #f2d789;color:#090807;font-size:13px;font-weight:700;letter-spacing:.08em;text-decoration:none;white-space:nowrap}
#gala-recap .recap-rsvp:hover{background:#f3d88f}
#gala-recap.is-active .recap-copy,#gala-recap.is-active .recap-shade{opacity:0}
#gala-recap [hidden]{display:none!important}
#gala-recap .recap-tap{display:none}
#gala-recap .recap-media:fullscreen{aspect-ratio:auto;width:100vw;height:100vh}
@media(max-width:900px){#gala-recap .recap-next{grid-template-columns:100px minmax(0,1fr);gap:24px}#gala-recap .recap-rsvp{grid-column:1/-1;width:100%}#gala-recap .recap-date-tile{padding:12px}#gala-recap .recap-date-tile strong{font-size:60px}}
@media(max-width:700px){#gala-recap .recap-copy{position:relative;left:auto;top:auto;transform:none;width:auto;max-width:none;padding:32px 24px 36px}#gala-recap h2{font-size:clamp(36px,10vw,58px);margin-bottom:20px}#gala-recap .recap-message{font-size:17px}#gala-recap .recap-eyebrow{font-size:10px;margin-bottom:14px}#gala-recap .recap-event{font-size:11px;line-height:1.6}#gala-recap .recap-shade{background:linear-gradient(0deg,rgba(0,0,0,.55),transparent 60%)}#gala-recap .recap-start-wrap{top:50%;right:auto;left:50%;transform:translate(-50%,-50%)}#gala-recap .recap-start{font-size:10px;padding:10px 13px}#gala-recap .recap-start-help{font-size:10px}#gala-recap .recap-controls{padding:22px 10px 8px;gap:6px}#gala-recap .recap-caption{display:none}#gala-recap .recap-click{display:none}#gala-recap .recap-tap{display:inline}#gala-recap .recap-next{padding:30px 24px;gap:20px}#gala-recap h3{font-size:30px}#gala-recap .recap-date-tile{font-size:16px}#gala-recap .recap-next-details{font-size:15px}#gala-recap.is-active .recap-copy{opacity:1}}
@media(prefers-reduced-motion:reduce){#gala-recap .recap-copy{transition:none}}

.recap-lightbox{position:fixed;inset:0;margin:auto;width:min(94vw,1200px);max-width:none;padding:0;border:1px solid #e4bd62;background:#080807;color:#faf5e5;overflow:visible;z-index:1000;box-shadow:0 24px 90px rgba(0,0,0,.7)}
.recap-lightbox:not([open]){display:block;left:-10000px;top:0;inset:auto;margin:0;opacity:0;pointer-events:none}
.recap-lightbox[open]{left:50%;top:50%;inset:auto;transform:translate(-50%,-50%);margin:0;opacity:1;pointer-events:auto}
.recap-lightbox::backdrop{background:rgba(0,0,0,.88)}
.recap-lightbox-frame{aspect-ratio:16/9;background:#000;overflow:hidden}
.recap-lightbox-frame iframe{display:block;width:100%;height:100%;border:0}
.recap-lightbox-close{position:absolute;right:0;top:-52px;width:44px;height:44px;border:1px solid #e4bd62;border-radius:50%;background:#080807;color:#faf5e5;font:32px/1 Arial;cursor:pointer}
.recap-lightbox-close:focus-visible{outline:3px solid white;outline-offset:3px}
@media(max-width:700px){.recap-lightbox{width:100vw;margin:0}.recap-lightbox[open]{left:50%;top:50%}.recap-lightbox-close{right:12px;top:-54px}}
