.eko-public .hero-video{position:absolute;inset:0;z-index:0;overflow:hidden;background:#073d2b}
.eko-public .video-mount,.eko-public .video-cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.eko-public .hero-video:after{content:'';position:absolute;inset:0;background:#031b16b8;pointer-events:none}
.eko-public .video-mount video,.eko-public .video-mount iframe{width:100%;height:100%;border:0;object-fit:cover}
.eko-public .hero-video iframe{position:absolute;top:50%;left:50%;width:max(100%,177.78vh);height:max(100%,56.25vw);transform:translate(-50%,-50%);pointer-events:none}
.eko-public .hero-video .video-toggle{position:absolute;bottom:10px;right:12%;z-index:2;font-size:11px;padding:7px 10px;background:#ffffff;color:#073d2b}
.eko-public .hero:has(.hero-video){padding-bottom:52px}
.eko-public .video-section{text-align:center}
.eko-public .feature-video{position:relative;aspect-ratio:16/9;min-height:220px;background:linear-gradient(130deg,#073d2b,#003594 60%,#be302f);border-radius:16px;overflow:hidden;box-shadow:0 16px 40px #073d2b20}
.eko-public .feature-video .video-toggle{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;background:#fff;color:#073d2b;border-radius:40px;font-size:17px;min-height:48px}
.eko-public .feature-video.is-playing{padding-bottom:48px;overflow:visible;margin-bottom:48px}
.eko-public .feature-video.is-playing .video-toggle{top:100%;transform:translateX(-50%);font-size:13px;margin-top:4px}
.eko-public .video-error{position:absolute;bottom:12px;left:12px;color:#fff;z-index:2}
.eko-public.eko-colour-motion .hero:before{content:'';position:absolute;inset:15% -10%;pointer-events:none;background:radial-gradient(ellipse at 20% 30%,#007a3338,transparent 45%),radial-gradient(ellipse at 80% 65%,#ffca1726,transparent 45%);z-index:1;animation:eko-glow 4s ease-out both}
.eko-public.eko-colour-motion .strip{border-bottom:4px solid transparent;border-image:linear-gradient(90deg,#d71920 25%,#003594 25% 50%,#ffca17 50% 75%,#007a33 75%) 1}
.eko-public.eko-colour-motion .style-board,.eko-public.eko-colour-motion .pill,.eko-public.eko-colour-motion .contact-call{transition:transform .2s ease,box-shadow .2s ease}
@media(hover:hover){.eko-public.eko-colour-motion .style-board:hover{transform:translateY(-5px);box-shadow:0 18px 40px #00359425}.eko-public.eko-colour-motion .pill:hover,.eko-public.eko-colour-motion .contact-call:hover{transform:translateY(-3px);box-shadow:0 5px 0 #ffca17}}
@keyframes eko-glow{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.eko-public.eko-colour-motion *,.eko-public.eko-colour-motion .hero:before{animation:none!important;transition:none!important;transform:none}}
/* Colour lives in two composited layers, with no animation library or image downloads. */
.eko-public.eko-colour-motion .hero:before{inset:-15%;background:radial-gradient(ellipse at 20% 30%,#007a3360,transparent 48%),radial-gradient(ellipse at 80% 65%,#ffca1740,transparent 45%);animation:eko-colour-drift 16s ease-in-out infinite alternate;transform:translate(var(--eko-x,0px),var(--eko-y,0px))}
.eko-public.eko-colour-motion .hero:after{content:'';position:absolute;inset:-15%;pointer-events:none;z-index:1;background:radial-gradient(ellipse at 70% 30%,#00359465,transparent 50%),radial-gradient(ellipse at 20% 75%,#d7192045,transparent 45%);animation:eko-colour-drift 21s ease-in-out infinite alternate-reverse}
.eko-public .motion-toggle{position:absolute;bottom:10px;left:12%;z-index:6;background:#ffffff;color:#073d2b;font-size:11px;padding:7px 10px}
.eko-public.eko-colour-motion .hero{padding-bottom:52px}
.eko-public.eko-motion-paused .hero:before,.eko-public.eko-motion-paused .hero:after{animation-play-state:paused!important}
@keyframes eko-colour-drift{from{opacity:.6;transform:translate(calc(-2% + var(--eko-x,0px)),calc(-1% + var(--eko-y,0px))) scale(1)}to{opacity:1;transform:translate(calc(2% + var(--eko-x,0px)),calc(2% + var(--eko-y,0px))) scale(1.06)}}
@media(prefers-reduced-motion:reduce){.eko-public.eko-colour-motion .hero:before,.eko-public.eko-colour-motion .hero:after{animation:none!important;transform:none!important}.eko-public .motion-toggle{display:none}}
.eko-public .eko-enter{animation:eko-text-enter .65s cubic-bezier(.2,.7,.2,1) both;animation-delay:var(--enter-delay,0ms)}
@keyframes eko-text-enter{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
.eko-public .eko-reveal{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.7,.2,1)}
.eko-public .eko-reveal.eko-revealed{opacity:1;transform:none}
.eko-public .story h2,.eko-public .style-guide h2,.eko-public .guest-help h2{transition:color .2s ease}
.eko-public .style-board{transition:transform .25s ease,box-shadow .25s ease}
.eko-public .style-board img{transition:transform .45s ease}
.eko-public .guest-help summary{display:flex;justify-content:space-between;gap:20px;align-items:center;list-style:none;transition:color .2s ease,padding .2s ease}
.eko-public .guest-help summary::-webkit-details-marker{display:none}
.eko-public .guest-help summary:after{content:'+';font-size:25px;font-weight:400;transition:transform .2s ease}
.eko-public .guest-help details[open] summary:after{transform:rotate(45deg)}
.eko-public .guest-help details[open]{border-bottom-color:var(--green)}
.eko-public .text-link{display:inline-block;transition:transform .2s ease;text-decoration-thickness:1px}
@media(hover:hover){.eko-public .style-board:hover{transform:translateY(-5px);box-shadow:0 18px 36px #073d2b22}.eko-public .style-board:hover img{transform:scale(1.025)}.eko-public .guest-help summary:hover{color:var(--red);padding-left:6px}.eko-public .text-link:hover{transform:translateX(4px);text-decoration-thickness:2px}}
.eko-public .style-board:focus-within{outline:2px solid var(--gold);outline-offset:4px}
@media(prefers-reduced-motion:reduce){.eko-public .eko-enter{animation:none!important}.eko-public .eko-reveal{opacity:1;transform:none;transition:none}.eko-public .style-board,.eko-public .style-board img,.eko-public summary,.eko-public .text-link{transition:none!important}}

/* Plain green hero: no coloured overlays or ambient colour animation. */
.eko-public .hero,.eko-public.eko-colour-motion .hero{background:#073d2b}
.eko-public .hero:before,.eko-public .hero:after,.eko-public.eko-colour-motion .hero:before,.eko-public.eko-colour-motion .hero:after{display:none!important;background:none!important;animation:none!important}
.eko-public .motion-toggle{display:none!important}

/* Soft neutral stage lighting; the base remains deep green. */
.eko-public .hero .stage-light{z-index:1;pointer-events:none;clip-path:none;inset:-12% -15%;opacity:1;background:radial-gradient(ellipse at 50% 36%,#fff8e51f 0%,#ffffff0d 28%,transparent 64%);transform:none}
.eko-public .hero .stage-light-left{background:radial-gradient(ellipse at 50% 38%,#fff8e526 0%,#ffffff0d 32%,transparent 65%)}
.eko-public .hero .stage-light-right{background:linear-gradient(115deg,transparent 25%,#fff8e503 38%,#fff8e519 48%,#ffffff08 55%,transparent 68%);opacity:.55;transform:translateX(12%)}
@media(prefers-reduced-motion:no-preference){.eko-public:not(.eko-no-motion) .hero .stage-light-right{animation:eko-soft-light 5s ease-out both}}
@keyframes eko-soft-light{from{opacity:0;transform:translateX(-22%)}50%{opacity:.7}to{opacity:.55;transform:translateX(12%)}}
@media(prefers-reduced-motion:reduce){.eko-public .hero .stage-light-right{animation:none!important}}
/* Celebration details, keeping the stage green and the page white. */
.eko-public .invitation-content .section{position:relative}
.eko-public .invitation-content .section:before{content:'';display:block;width:76px;height:13px;margin:0 auto 32px;background:radial-gradient(circle at 50% 50%,var(--gold) 0 3px,transparent 4px),linear-gradient(var(--gold),var(--gold)) left center/27px 1px no-repeat,linear-gradient(var(--gold),var(--gold)) right center/27px 1px no-repeat}
.eko-public .invitation-content .section h2{letter-spacing:-.8px}
.eko-public .story img{border-radius:3px;transform:rotate(1.5deg);transition:transform .4s ease,box-shadow .4s ease}
.eko-public .details article{border-left:2px solid var(--gold);padding-left:20px}
.eko-public .style-board{border-radius:120px 120px 8px 8px;padding-top:20px;overflow:hidden}
.eko-public .style-board .board-art{border:0;border-radius:100px 100px 3px 3px}
.eko-public .rsvp{position:relative;overflow:hidden;background:radial-gradient(ellipse at 0 0,#ffffff0d,transparent 55%),var(--green)}
.eko-public .rsvp:before,.eko-public .rsvp:after{content:'';position:absolute;width:280px;height:280px;border:1px solid #c6a45666;border-radius:50%;pointer-events:none;box-shadow:0 0 0 20px #ffffff04,0 0 0 40px #c6a4560d}
.eko-public .rsvp:before{left:-180px;top:45px}.eko-public .rsvp:after{right:-180px;bottom:45px}
.eko-public .ticket{border-radius:16px;box-shadow:0 24px 60px #001b1640}
.eko-public .countdown>div{min-width:64px;padding:14px 10px;border-top:1px solid #c6a45680;border-bottom:1px solid #c6a45680}
.eko-public .countdown strong{color:#fff}.eko-public .countdown small{color:#ead9ab}
.eko-public .confirmation{border-radius:16px;background:radial-gradient(circle at 10% 0,#c6a45625,transparent 40%),radial-gradient(circle at 100% 100%,#073d2b14,transparent 45%),#fff}
.eko-public .eko-revealed h2{animation:eko-celebrate-heading .65s ease-out both}
@keyframes eko-celebrate-heading{from{opacity:.35;transform:translateY(12px)}to{opacity:1;transform:none}}
.eko-celebration{position:fixed;inset:0;pointer-events:none;z-index:2147483647;overflow:hidden}
.eko-celebration i{position:absolute;left:var(--x);top:-20px;width:7px;height:13px;background:var(--piece);border-radius:1px;animation:eko-confetti 2.6s cubic-bezier(.2,.6,.3,1) var(--delay) both}
@keyframes eko-confetti{0%{opacity:0;transform:translate3d(0,-20px,0) rotate(0)}10%{opacity:1}100%{opacity:0;transform:translate3d(var(--drift),80vh,0) rotate(var(--spin))}}
@media(hover:hover){.eko-public .story a:hover img{transform:rotate(0);box-shadow:0 24px 60px #073d2b25}}
@media(max-width:650px){.eko-public .countdown{gap:12px}.eko-public .countdown>div{min-width:52px;padding:12px 6px}.eko-public .style-board{border-radius:70px 70px 8px 8px}.eko-public .style-board .board-art{border-radius:60px 60px 3px 3px}}
@media(prefers-reduced-motion:reduce){.eko-public .eko-revealed h2{animation:none}.eko-celebration{display:none}.eko-public .story img{transform:none;transition:none}}
/* Small stage bulbs: slow pulses rather than full-screen flashes. */
.eko-public .eko-stage-bulbs{position:absolute;inset:0;z-index:6;pointer-events:none}
.eko-public .eko-stage-bulbs span{position:absolute;left:var(--lx);top:var(--ly);width:5px;height:5px;border-radius:50%;background:#fff9e6;box-shadow:0 0 8px 3px #fff4cc88,0 0 22px 8px #c6a45633;opacity:.55;animation:eko-bulb-blink 4.8s ease-in-out var(--ld) infinite}
.eko-public .eko-stage-bulbs span:nth-child(3n){width:7px;height:7px;background:#e9cc80;animation-duration:6s}
.eko-public .hero .stage-light-right{animation:eko-stage-flash 7s ease-in-out infinite}
.eko-public .hero .stage-light-left{animation:eko-stage-glow 9s ease-in-out infinite}
.eko-public .eko-lights-toggle{position:absolute;bottom:10px;left:12%;z-index:7;font-size:11px;padding:7px 10px;background:#fff;color:#073d2b}
.eko-public .hero{padding-bottom:52px}
@keyframes eko-bulb-blink{0%,100%{opacity:.2}40%,60%{opacity:.95}50%{opacity:.5}}
@keyframes eko-stage-flash{0%,100%{opacity:.12;transform:translateX(-8%)}45%{opacity:.75;transform:translateX(8%)}65%{opacity:.25;transform:translateX(12%)}}
@keyframes eko-stage-glow{0%,100%{opacity:.4}50%{opacity:1}}
.eko-public .eko-lights-paused .eko-stage-bulbs span,.eko-public .eko-lights-paused .stage-light{animation-play-state:paused!important}
.eko-public.eko-no-motion .eko-stage-bulbs span,.eko-public.eko-no-motion .stage-light{animation:none!important}
@media(max-width:650px){.eko-public .eko-stage-bulbs span{left:calc(var(--lx));width:4px;height:4px;box-shadow:0 0 7px 2px #fff4cc66}.eko-public .eko-stage-bulbs span:nth-child(2n){display:none}}
@media(prefers-reduced-motion:reduce){.eko-public .eko-stage-bulbs span,.eko-public .hero .stage-light{animation:none!important;opacity:.4}.eko-public .eko-lights-toggle{display:none}}

/* White light on the inner stage, behind the invitation and below the curtains. */
.eko-public .eko-stage-bulbs{inset:0 12%;z-index:1;overflow:hidden}
.eko-public .eko-stage-bulbs span,.eko-public .eko-stage-bulbs span:nth-child(3n){width:5px;height:5px;background:#ffffff;box-shadow:0 0 12px 4px #ffffff80,0 0 38px 14px #ffffff22}
.eko-public .hero .stage-light-left{background:radial-gradient(ellipse at 50% 38%,#ffffff26 0%,#ffffff0d 32%,transparent 65%)}
.eko-public .hero .stage-light-right{background:linear-gradient(115deg,transparent 25%,#ffffff03 38%,#ffffff19 48%,#ffffff08 55%,transparent 68%)}
@media(max-width:650px){.eko-public .eko-stage-bulbs span,.eko-public .eko-stage-bulbs span:nth-child(3n){width:4px;height:4px;box-shadow:0 0 10px 3px #ffffff66,0 0 24px 8px #ffffff18}}

/* Decorative hero media has no guest-facing controls. */
.eko-public .hero-video .video-toggle,.eko-public .eko-lights-toggle{display:none!important}
.eko-public .eko-stage-bulbs span,.eko-public .eko-stage-bulbs span:nth-child(3n){animation-duration:4.8s;animation-iteration-count:1;animation-fill-mode:forwards;animation-delay:0s}
.eko-public .hero .stage-light-right,.eko-public .hero .stage-light-left{animation-duration:5s;animation-iteration-count:1;animation-fill-mode:forwards}
.eko-public .video-section{display:block;float:none;clear:both;width:100%;max-width:1120px;margin-left:auto!important;margin-right:auto!important;text-align:center;box-sizing:border-box}
.eko-public .video-section h2,.eko-public .video-section p{margin-left:auto;margin-right:auto;max-width:760px;text-align:center}
.eko-public .feature-video{float:none;width:100%;max-width:960px;margin-left:auto!important;margin-right:auto!important;box-sizing:border-box}
.eko-public .feature-video .video-mount{left:0;right:0;width:100%}
@media(max-width:650px){.eko-public .video-section{padding:40px 18px}.eko-public .feature-video{min-height:200px;border-radius:10px}.eko-public .feature-video .video-toggle{max-width:calc(100% - 32px);white-space:nowrap}}

/* Continuous stage scene: overhead beams, drifting particles and a four-second flare. */
.eko-public .hero .stage-light{inset:0;clip-path:polygon(48% 0,52% 0,100% 100%,0 100%);background:linear-gradient(180deg,#ffffff24,#ffffff08 75%,transparent);transform-origin:50% 0;opacity:.6;animation-iteration-count:infinite;animation-fill-mode:both}
.eko-public .hero .stage-light-left{left:-25%;right:25%;animation:eko-sweep-left 12s ease-in-out infinite alternate}
.eko-public .hero .stage-light-right{left:25%;right:-25%;animation:eko-sweep-right 15s ease-in-out infinite alternate}
@keyframes eko-sweep-left{from{transform:rotate(-24deg);opacity:.45}to{transform:rotate(24deg);opacity:.75}}
@keyframes eko-sweep-right{from{transform:rotate(24deg);opacity:.65}to{transform:rotate(-26deg);opacity:.4}}
.eko-public .eko-live-stage{position:absolute;inset:24px 13% 28px;z-index:2;pointer-events:none;overflow:hidden}
.eko-public .eko-floating-light{position:absolute;left:var(--px);top:var(--py);width:var(--size);height:var(--size);border-radius:50%;background:#fff;box-shadow:0 0 6px #ffffff88;animation:eko-particle-drift var(--duration) ease-in-out var(--delay) infinite alternate}
@keyframes eko-particle-drift{0%{opacity:.15;transform:translate3d(0,20px,0)}50%{opacity:.85}100%{opacity:.3;transform:translate3d(var(--travel),-40px,0)}}
.eko-public .eko-white-starburst{position:absolute;left:87%;top:66%;width:130px;height:130px;margin:-65px;background:radial-gradient(circle,#fff 0 2%,#ffffffdd 3%,#ffffff55 10%,#ffffff12 30%,transparent 65%);animation:eko-white-flash 4s ease-in-out infinite;transform-origin:center}
.eko-public .eko-white-starburst:before,.eko-public .eko-white-starburst:after{content:'';position:absolute;left:50%;top:50%;background:linear-gradient(90deg,transparent,#ffffff66 35%,#fff 50%,#ffffff66 65%,transparent);transform:translate(-50%,-50%);width:130px;height:2px}
.eko-public .eko-white-starburst:after{transform:translate(-50%,-50%) rotate(90deg);width:170px}
@keyframes eko-white-flash{0%,70%,100%{opacity:0;transform:scale(.65)}80%{opacity:1;transform:scale(1)}88%{opacity:.25;transform:scale(1.12)}}
.eko-public .eko-stage-suspended .stage-light,.eko-public .eko-stage-suspended .eko-live-stage *{animation-play-state:paused!important}
@media(max-width:650px){.eko-public .eko-live-stage{left:12%;right:12%}.eko-public .eko-floating-light:nth-child(2n){display:none}.eko-public .eko-white-starburst{left:90%;top:72%;width:90px;height:90px;margin:-45px}.eko-public .eko-white-starburst:before{width:90px}.eko-public .eko-white-starburst:after{width:120px}}
@media(prefers-reduced-motion:reduce){.eko-public .hero .stage-light,.eko-public .eko-floating-light{animation:none!important;opacity:.3}.eko-public .eko-white-starburst{display:none}}
.eko-public.eko-no-motion .eko-floating-light{animation:none!important;opacity:.3}.eko-public.eko-no-motion .eko-white-starburst{display:none}

.eko-public .eko-white-starburst{left:var(--flare-x);top:var(--flare-y);rotate:var(--flare-angle)}
@media(max-width:650px){.eko-public .eko-white-starburst{left:var(--flare-x);top:var(--flare-y);width:70px;height:70px;margin:-35px}.eko-public .eko-white-starburst:before{width:70px}.eko-public .eko-white-starburst:after{width:95px}}

.eko-public .hero .stage-light-centre{left:0;right:0;background:linear-gradient(180deg,#ffffff20,#ffffff07 75%,transparent);animation:eko-sweep-centre 17s ease-in-out -5s infinite alternate}
@keyframes eko-sweep-centre{from{transform:rotate(-17deg);opacity:.35}to{transform:rotate(19deg);opacity:.65}}
@media(prefers-reduced-motion:reduce){.eko-public .hero .stage-light-centre{animation:none!important;opacity:.3}}

/* Mobile-first invitation typography, after all older size rules. */
.eko-public .hero .eyebrow{font-weight:700;font-size:14px;line-height:1.4;color:#ffffff}
.eko-public .hero .intro{font-weight:600;font-size:20px;line-height:1.4;color:#ffffff}
.eko-public .hero .hero-event-details{font-family:Georgia,'Times New Roman',serif;font-size:25px;font-weight:700;letter-spacing:.3px;line-height:1.25;gap:8px 24px;padding:16px 10px;border-top:1px solid #ffffff66;border-bottom:1px solid #ffffff66;width:min(100%,690px);color:#ffffff}
.eko-public .hero .hero-event-details .hero-event-time{border-left:1px solid #ffffff66;padding-left:24px}
.eko-public .hero .hero-event-details .hero-event-venue{flex-basis:100%;font-style:italic;font-size:29px}
@media(max-width:650px){.eko-public .hero{gap:12px;padding:30px 26px 32px}.eko-public .hero .hero-logo{width:clamp(68px,11svh,94px);margin:0;padding:6px}.eko-public .hero .eyebrow{font-size:13px;letter-spacing:1px;font-weight:700}.eko-public .hero .intro{font-size:18px;font-weight:600;line-height:1.35}.eko-public .hero h1{font-size:clamp(39px,11vw,56px);line-height:1.03}.eko-public .hero .hero-event-details{font-size:21px;gap:7px 12px;padding:12px 0}.eko-public .hero .hero-event-details .hero-event-date{flex-basis:100%}.eko-public .hero .hero-event-details .hero-event-time{border:0;padding:0;font-size:23px}.eko-public .hero .hero-event-details .hero-event-venue{font-size:25px}.eko-public .hero .pill{font-size:16px;font-weight:700;padding:14px 22px}}
@media(max-height:620px) and (max-width:650px){.eko-public .hero{gap:8px;padding-top:26px;padding-bottom:20px}.eko-public .hero .hero-logo{width:62px}.eko-public .hero .eyebrow{font-size:12px}.eko-public .hero .intro{font-size:17px}.eko-public .hero .hero-event-details{font-size:20px;padding:9px 0;gap:4px}.eko-public .hero .hero-event-details .hero-event-venue{font-size:23px}.eko-public .hero .pill{padding:12px 18px}}
.eko-public{position:relative}
.eko-public .eko-envelope-entry{position:absolute;top:0;left:0;right:0;min-height:100svh;z-index:20;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:20px;padding:35px 24px;text-align:center;color:#fff;background:radial-gradient(ellipse at 50% 20%,#ffffff16,transparent 55%),repeating-linear-gradient(90deg,#041d16 0%,#174b34 6%,#0b2e20 12%,#041a13 18%);overflow:hidden}
.eko-public .eko-envelope-entry h2{color:#fff;font:italic 36px Georgia;margin:0}
.eko-public .entry-kicker{color:#e5cf99;font-size:12px;letter-spacing:3px;text-transform:uppercase;margin:0}
.eko-public .entry-instruction{color:#fff;font-size:14px;margin:0}
.eko-public .eko-envelope{position:relative;width:min(330px,80vw);height:220px;background:#154b37;border:1px solid #c6a45666;border-radius:4px;margin:30px 0 16px;padding:0;box-shadow:0 20px 60px #0005;perspective:900px;overflow:visible}
.eko-public .envelope-pocket{position:absolute;inset:0;z-index:3;background:linear-gradient(33deg,#0c3526 49%,transparent 50%),linear-gradient(-33deg,#164b36 49%,transparent 50%)}
.eko-public .envelope-flap{position:absolute;inset:0 0 auto;height:120px;clip-path:polygon(0 0,100% 0,50% 100%);background:#225b43;transform-origin:top;z-index:4;transition:transform .7s ease}
.eko-public .envelope-seal{position:absolute;z-index:5;left:50%;top:95px;transform:translateX(-50%);width:54px;height:54px;display:grid;place-items:center;border:3px double #f1dea4;border-radius:50%;background:#b99548;color:#173e2c;font:bold 21px Georgia;box-shadow:0 3px 16px #0003;transition:opacity .25s}
.eko-public .envelope-card{position:absolute;left:8%;top:12%;width:84%;height:78%;display:grid;place-content:center;gap:12px;background:#fff;color:#073d2b;border:5px double #c6a456;font:22px Georgia;z-index:2;transition:transform .9s .55s ease}
.eko-public .envelope-card em{font-size:27px}.eko-public .is-opening .envelope-flap{transform:rotateX(180deg);z-index:1}.eko-public .is-opening .envelope-seal{opacity:0}.eko-public .is-opening .envelope-card{transform:translateY(-100px)}
.eko-public.eko-awaiting .hero{opacity:0}.eko-public.eko-awaiting .hero .stage-curtain,.eko-public.eko-awaiting .hero .eko-enter{animation:none!important}
.eko-public .hero .hero-kicker-line{display:block}
.eko-public .hero .hero-event-details{display:grid!important;grid-template-columns:auto auto;justify-content:center;column-gap:24px;row-gap:10px}
.eko-public .hero .hero-event-details .hero-event-venue{grid-column:1/-1;color:#e8d6a7}
.eko-public .hero .hero-event-details .hero-event-date,.eko-public .hero .hero-event-details .hero-event-time{color:#fff}
.eko-public .hero .eyebrow{color:#e8d6a7!important}.eko-public .hero .intro{color:#e1eae4!important}
.eko-public .rsvp:before,.eko-public .rsvp:after{display:none!important}
@media(max-width:650px){.eko-public .hero .eyebrow{font-size:clamp(9px,2.65vw,13px);letter-spacing:.6px;line-height:1.6}.eko-public .hero-kicker-line{white-space:nowrap}.eko-public .hero .hero-event-details{grid-template-columns:1fr;row-gap:7px}.eko-public .hero .hero-event-details .hero-event-time{border:0;padding:0}.eko-public .eko-envelope{height:200px}.eko-public .eko-envelope-entry h2{font-size:30px}}

.eko-public .eko-music-toggle{position:fixed;bottom:16px;right:16px;z-index:30;background:#073d2b;color:#fff;border:1px solid #ffffff80;border-radius:24px;padding:10px 15px;min-height:44px;font:600 12px Arial;box-shadow:0 3px 14px #0002}

/* Engraved stationery, folded emerald paper and a floral wax seal. */
.eko-public .eko-envelope{height:235px;background:repeating-linear-gradient(45deg,#ffffff03 0 1px,transparent 1px 5px),linear-gradient(145deg,#2a654d,#0b3023);border:1px solid #d5ba78;border-radius:8px;box-shadow:0 24px 55px #0006,inset 0 0 0 7px #0c3225,inset 0 0 0 8px #c6a45666}
.eko-public .envelope-pocket{inset:5px;border-radius:3px;background:linear-gradient(33deg,#123f2e 49%,#c6a45680 49.4%,transparent 50%),linear-gradient(-33deg,#1c513b 49%,#c6a45680 49.4%,transparent 50%)}
.eko-public .envelope-flap{height:132px;background:repeating-linear-gradient(135deg,#ffffff04 0 1px,transparent 1px 5px),linear-gradient(160deg,#34765a,#184b35);filter:drop-shadow(0 2px 1px #0005)}
.eko-public .envelope-seal{top:104px;width:64px;height:64px;border:4px double #f5dfa4;border-radius:46% 54% 48% 52% / 52% 45% 55% 48%;background:radial-gradient(circle at 35% 25%,#f0d68e,#c5a052 58%,#977037);color:#70501e;box-shadow:0 5px 9px #0005,inset 0 0 0 3px #e6c77d,inset 0 0 8px #6f4c2755}
.eko-public .envelope-seal svg{filter:drop-shadow(0 1px 0 #fff1c5)}
.eko-public .envelope-card{top:10%;height:84%;gap:10px;border:6px double #c6a456;padding:20px 14px;background:radial-gradient(ellipse at top,#eaf2ed,#fff 65%);box-shadow:0 2px 12px #0002}
.eko-public .save-date-title{font:italic 700 29px/1.15 Georgia;color:#073d2b}
.eko-public .save-date-date{font:700 16px/1.4 Georgia;color:#234a38;border-top:1px solid #c6a456;padding-top:12px}
.eko-public .save-date-time{font:700 22px/1.2 Georgia;color:#234a38}
.eko-public .is-opening .envelope-card{transform:translateY(-145px)}
.eko-public .eko-envelope-entry{gap:26px}
.eko-public .is-opening .entry-kicker,.eko-public .is-opening>h2{opacity:0;transition:opacity .35s}
@media(max-width:650px){.eko-public .eko-envelope{height:220px}.eko-public .envelope-card{padding:14px 10px;gap:8px}.eko-public .save-date-title{font-size:27px}.eko-public .save-date-date{font-size:15px}.eko-public .save-date-time{font-size:21px}}

/* Keep music clear of theme back-to-top controls on phones. */
@media(max-width:767px){.eko-public .eko-music-toggle{left:calc(16px + env(safe-area-inset-left,0px));right:auto;bottom:calc(16px + env(safe-area-inset-bottom,0px));min-height:48px;min-width:112px;padding:12px 16px;z-index:1000;touch-action:manipulation}}

/* Engraved-style date composition with distinct typographic hierarchy. */
.eko-public .hero .intro{font-size:16px;font-weight:400;line-height:1.45;max-width:540px}
.eko-public .hero .hero-event-details{display:flex!important;flex-direction:column;align-items:center;gap:10px;border:0;padding:4px 0;width:100%;font-family:Georgia,'Times New Roman',serif;font-weight:400}
.eko-public .hero .hero-date-layout{display:grid;grid-template-columns:1fr 1.3fr 1fr;align-items:center;width:min(100%,340px);color:#e8d6a7}
.eko-public .hero .date-weekday{text-transform:uppercase;font-size:23px;font-weight:400;letter-spacing:3px;text-align:center}
.eko-public .hero .date-centrepiece{display:flex;flex-direction:column;align-items:center;gap:2px;border-left:1px solid #c6a45699;border-right:1px solid #c6a45699;padding:3px 16px}
.eko-public .hero .date-centrepiece strong{font:italic 400 46px/1 Georgia}
.eko-public .hero .date-centrepiece>span{text-transform:uppercase;font-size:12px;letter-spacing:2px}
.eko-public .hero .date-year{font:italic 400 23px Georgia;text-align:center;letter-spacing:2px}
.eko-public .hero .hero-event-details .hero-event-time{font:italic 400 29px/1.15 Georgia;border:0;padding:0;margin-top:3px;color:#fff}
.eko-public .hero .hero-event-details .hero-event-venue{font:400 13px/1.4 Arial,sans-serif;letter-spacing:2px;text-transform:uppercase;color:#e8d6a7}
@media(max-width:650px){.eko-public .hero .intro{font-size:14px;font-weight:400;line-height:1.4;max-width:310px}.eko-public .hero .hero-event-details{gap:7px;padding:2px 0}.eko-public .hero .hero-date-layout{max-width:290px}.eko-public .hero .date-weekday,.eko-public .hero .date-year{font-size:19px}.eko-public .hero .date-centrepiece strong{font-size:39px}.eko-public .hero .date-centrepiece>span{font-size:11px}.eko-public .hero .hero-event-details .hero-event-time{font-size:26px}.eko-public .hero .hero-event-details .hero-event-venue{font-size:12px;letter-spacing:1.5px}}

/* Keep the title's two-tone editorial treatment on every screen. */
.eko-public .hero h1 .hero-title-first{display:block;color:#ffffff;font-family:Georgia,'Times New Roman',serif;font-weight:400;font-style:normal}
.eko-public .hero h1 em{display:block;color:#e7c880!important;font-family:Georgia,'Times New Roman',serif;font-weight:400;font-style:italic;line-height:1.05;letter-spacing:-2px}
@media(max-width:650px){.eko-public .hero h1{font-size:clamp(39px,11vw,56px)}.eko-public .hero h1 em{color:#e7c880!important;font-style:italic;font-size:1.12em}}

/* Audio reaction changes light intensity only; text and controls stay stationary. */
.eko-public .hero.eko-beat-running .stage-light{filter:brightness(calc(.8 + var(--beat-energy,0) * .65));transition:filter .12s linear}
.eko-public .hero.eko-beat-running .eko-white-starburst{animation:none!important;opacity:0}
@media(prefers-reduced-motion:reduce){.eko-public .hero.eko-beat-running .stage-light{filter:none;transition:none}}

.eko-public .story-headline{font-size:clamp(25px,3.4vw,43px);line-height:1.2;letter-spacing:-.7px}.eko-public .story-headline>span{display:block;white-space:nowrap}@media(max-width:650px){.eko-public .story-headline{font-size:clamp(23px,7.2vw,39px);line-height:1.25}}

@media(max-width:650px){.eko-public .hero .intro{max-width:100%;font-size:clamp(12px,3.45vw,15px)}.eko-public .hero .intro-sentence{display:block;white-space:nowrap;line-height:1.5}}

.eko-public .video-preview-frame{pointer-events:none}.eko-public .feature-video .video-toggle{z-index:3}.eko-public .feature-video.video-ready .video-cover{visibility:hidden}

.eko-public .hero-video:after{background:var(--hero-overlay,#000000);opacity:var(--hero-overlay-opacity,.45)}.eko-public .hero-video .video-mount video,.eko-public .hero-video .video-cover{object-fit:var(--hero-fit,cover)}.eko-public .hero-video{background:#000}.eko-public .hero-video iframe{width:var(--hero-frame-width,100%);height:var(--hero-frame-height,100%);max-width:none}

.eko-public .feature-video.is-playing:not(.video-ready) .video-cover{z-index:2;visibility:visible}.eko-public .feature-video.is-playing:not(.video-ready) .video-toggle{top:50%;transform:translate(-50%,-50%);margin:0}
