:root{color-scheme:dark;--navy:#06142b;--cream:#f5e9d6;--papaya:#ff713d;--blue:#2447a8;--muted:#bcc2cd;--line:rgba(245,233,214,.28)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:76px}body{margin:0;background:var(--navy);color:var(--cream);font-family:Inter,Arial,sans-serif;font-size:15px;-webkit-font-smoothing:antialiased}body.in-journey{overflow:hidden}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--papaya);outline-offset:5px}button:disabled{opacity:.65;cursor:wait}[hidden]{display:none!important}.svg-library{position:absolute;width:0;height:0;overflow:hidden}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.button{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:54px;padding:17px 20px;border:0;border-radius:0;letter-spacing:.12em;font-size:12px;font-weight:500;text-align:left}.button span{font-size:25px;line-height:18px;letter-spacing:0}.primary{background:var(--cream);color:var(--navy)}.papaya{background:var(--papaya);color:#081324}.text-button{border:0;background:none;padding:14px 0;font-size:10px;letter-spacing:.13em;min-height:44px;display:inline-flex;align-items:center;gap:10px;text-align:left}.text-button:hover,a:hover{color:var(--papaya)}.button:hover{color:var(--navy);filter:brightness(1.05)}.once{font-family:'Playfair Display',Georgia,serif;letter-spacing:.18em;font-size:17px;margin:9px 0}.date{font-size:12px;letter-spacing:.22em;text-align:center;line-height:1.7}.small{font-size:12px;color:var(--muted);line-height:1.75}.section{position:relative;overflow:hidden;padding:64px 25px 50px;scroll-margin-top:0}h1,h2,p{margin-top:0}h2{font-family:'Playfair Display',Georgia,serif;font-weight:500;font-size:clamp(43px,12.7vw,66px);line-height:1.12;letter-spacing:-.05em;margin-bottom:30px}.section-kicker{font-size:9px;letter-spacing:.17em;margin-bottom:28px;color:var(--muted)}.wave-art{position:absolute;display:block;pointer-events:none;overflow:visible}.site-header{position:fixed;top:0;left:50%;transform:translateX(-50%);width:100%;max-width:560px;z-index:20;padding:calc(15px + env(safe-area-inset-top)) 25px 14px;display:flex;justify-content:space-between;align-items:center;background:linear-gradient(var(--navy) 65%,rgba(6,20,43,0));height:calc(76px + env(safe-area-inset-top))}.header-identity{font-size:9px;letter-spacing:.15em}.header-controls{display:flex;align-items:center;gap:14px}.header-controls button{border:0;background:none;font-size:9px;letter-spacing:.15em;min-height:44px;padding:0 2px}.header-controls button+button{padding-left:16px;border-left:1px solid var(--line)}.sound-toggle{display:flex;gap:8px;align-items:center}.sound-bars{display:flex;align-items:center;gap:2px;height:13px}.sound-bars i{width:1px;height:5px;background:var(--cream);display:block}.sound-bars i:nth-child(2){height:12px}.sound-bars i:nth-child(3){height:8px}.sound-bars i:nth-child(4){height:4px}.sound-toggle[aria-pressed=false] .sound-bars{opacity:.35}#site{max-width:560px;margin:auto;background:radial-gradient(ellipse at 65% 9%,#082047 0,transparent 28%),var(--navy)}.hero{min-height:100svh;min-height:100dvh;display:flex;flex-direction:column;padding-top:calc(110px + env(safe-area-inset-top));padding-bottom:22px}.hero-title{text-align:center;z-index:2}.hero h1{font-family:'Playfair Display',Georgia,serif;font-size:clamp(29px,9.55vw,52px);font-weight:500;letter-spacing:-.055em;margin:0 -3px;white-space:nowrap;line-height:1.18}.hero-title .once{font-family:Inter,Arial,sans-serif;font-size:12px;letter-spacing:.24em;margin:15px 0 0}.hero-art{position:relative;min-height:310px;flex:1;margin:0 -25px}.hero-symbol{position:absolute;width:90%;left:5%;top:12%;mix-blend-mode:screen;filter:drop-shadow(0 0 24px #143b8725);animation:logo-breathe 7s ease-in-out infinite}.hero-waves{left:0;bottom:0;width:100%;height:160px;transform:translateY(10px)}.hero-actions{z-index:2}.hero-actions .date{margin:4px 0 22px}.explore{width:100%;justify-content:center;letter-spacing:.18em;padding-top:20px}.program{padding-top:88px;padding-bottom:160px;min-height:890px;border-top:1px solid #ffffff08}.program h2{white-space:nowrap}.program>.date{margin:35px 0 24px}.mushroom{position:absolute;width:315px;height:380px;right:-140px;top:270px;opacity:.55;pointer-events:none}.acts{position:relative;z-index:2}details{border-top:1px solid var(--line)}details:last-child{border-bottom:1px solid var(--line)}summary{list-style:none;cursor:pointer;display:flex;align-items:center;min-height:84px;position:relative}summary::-webkit-details-marker{display:none}.act-number{font-size:11px;letter-spacing:.16em;width:42px;flex-shrink:0}.act-title{font-family:'Playfair Display',Georgia,serif;font-size:clamp(25px,7.3vw,39px);letter-spacing:-.05em;line-height:1.2}.plus{position:relative;width:18px;height:18px;margin-left:auto;flex-shrink:0}.plus:before,.plus:after{content:'';position:absolute;background:currentColor;left:0;top:8px;width:18px;height:1px}.plus:after{transform:rotate(90deg);transition:transform .25s}details[open] .plus:after{transform:rotate(0)}.party-act summary{color:var(--papaya)}.act-copy{padding:0 23px 23px 42px;max-width:440px;font-size:14px;line-height:1.7}.act-copy p{margin-bottom:10px}.practical-link{position:relative;z-index:2;margin-top:35px}.program-waves{width:100%;height:100px;left:-90px;bottom:-28px;opacity:.95}.rsvp{padding-top:88px;min-height:900px}.rsvp h2{font-size:clamp(64px,18vw,95px);margin-bottom:19px}.eyebrow{letter-spacing:.2em;font-size:10px;margin-bottom:40px}form{position:relative;z-index:2}input:not([type=radio]):not([type=range]),select,textarea{width:100%;border:1px solid #c6c4c587;background:#06142be8;color:var(--cream);padding:17px 14px;min-height:52px;border-radius:0;font:400 16px Inter,Arial,sans-serif;margin:0 0 12px;outline-offset:2px}input::placeholder,textarea::placeholder{color:#d4d3d9;font-size:13px;letter-spacing:.04em}.attendance{border:0;margin:8px 0 24px;padding:0;display:flex;justify-content:space-between;gap:10px}.attendance label{display:flex;align-items:center;gap:9px;font-size:12px;min-height:44px;cursor:pointer}.attendance input{appearance:none;width:22px;height:22px;margin:0;border:1px solid var(--cream);border-radius:50%;flex-shrink:0;display:grid;place-content:center}.attendance input:checked:before{content:'';width:12px;height:12px;border-radius:50%;background:var(--papaya)}.form-note{font-size:12px;line-height:1.6;margin:18px 0 0}.demo-note{font-size:10px;line-height:1.6;color:#b4bbca;margin:18px 0;max-width:280px}.field-label{display:block;font-size:13px;line-height:1.6;margin:8px 0 10px}.step-label{font-size:11px;letter-spacing:.14em;color:var(--papaya);margin-bottom:24px}.rsvp-art{position:relative;height:140px;margin:5px -25px 14px;pointer-events:none}.rsvp-art svg{width:100%;height:110px;bottom:0;transform:scaleX(-1)}.rsvp>.date{margin:15px 0 4px}.couple{font-size:9px;letter-spacing:.2em;text-align:center}.result-title{font:500 43px 'Playfair Display',Georgia,serif;margin-bottom:20px}.rsvp-result p{line-height:1.7}#result-copy{font-size:17px;line-height:1.6}.information{padding-top:90px;padding-bottom:70px}.information h2{font-size:52px}.information summary{font-family:'Playfair Display',Georgia,serif;font-size:24px;min-height:70px}.information details p{font-size:14px;line-height:1.8;padding-bottom:15px;max-width:400px}.replay{margin-top:40px}footer{padding:25px 25px 50px;border-top:1px solid var(--line);margin:0 25px;text-align:center;display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}.footer-brand{font-family:'Playfair Display',Georgia,serif;letter-spacing:.12em;font-size:17px}footer .once{font-size:14px}footer button{width:100%;justify-content:center;font-size:9px;color:var(--muted)}
.journey{position:fixed;inset:0;z-index:60;background:#020913;isolation:isolate;overflow:hidden;transition:opacity .55s}.journey video,.arrival-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.journey-shade{position:absolute;inset:0;background:linear-gradient(#01081770,transparent 40%,#010817a0);pointer-events:none}.journey-top{position:absolute;top:env(safe-area-inset-top);left:0;right:0;padding:24px;display:flex;align-items:center;justify-content:space-between;z-index:3;font-size:11px;letter-spacing:.18em}.journey-top>span{font-family:'Playfair Display',Georgia,serif}.journey-top .text-button{padding:0 0 0 20px;text-shadow:0 1px 8px #000}.invitation{position:absolute;inset:0;background:#030c1eeb;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:55px 26px}.invitation-symbol{width:min(75vw,340px);mix-blend-mode:screen;margin-bottom:24px}.invitation h1{font:500 clamp(30px,9vw,47px) 'Playfair Display',Georgia,serif;letter-spacing:.025em;margin-bottom:0}.invitation-actions{width:min(100%,350px);margin-top:70px;text-align:center}.invitation-actions .text-button{margin-top:9px}.invitation-note{position:absolute;bottom:34px;font-size:9px;letter-spacing:.16em}.activation{position:absolute;left:24px;right:24px;bottom:65px;text-align:center;font-size:10px;letter-spacing:.19em;text-shadow:0 2px 9px #000}.activation-line{height:1px;background:#f5e9d666;max-width:260px;margin:19px auto;overflow:hidden}.activation-line:after{content:'';display:block;height:1px;background:var(--cream);width:100%;transform:translateX(-100%);animation:loading 3.2s ease-in-out forwards}.arrival{position:absolute;bottom:24px;left:26px;right:26px;max-width:420px;margin:auto;text-align:center;padding-top:70px;z-index:3}.arrival:before{content:'';position:absolute;inset:-70px -90px -70px;background:linear-gradient(transparent,#031027c9 35%,#031027f2);z-index:-1}.arrival-symbol{width:145px;mix-blend-mode:screen}.arrival-brand{font:500 34px 'Playfair Display',Georgia,serif;letter-spacing:.02em;margin-bottom:0}.arrival .once{font-size:14px;margin:7px 0 27px}.arrival .text-button{margin-top:5px}.curtain{position:absolute;inset:0;z-index:5;pointer-events:none;opacity:0;background:#06142b}.curtain svg{position:absolute;width:190%;height:80%;left:-45%;bottom:-20%;transform:translateY(120%)}.journey.is-transitioning .curtain{animation:curtain-dark 1.15s forwards}.journey.is-transitioning .curtain svg{animation:curtain-wave 1.15s cubic-bezier(.7,0,.2,1) forwards}.journey.is-leaving{opacity:0;pointer-events:none}.party-enter .hero-title,.party-enter .hero-symbol,.party-enter .hero-actions{animation:reveal .75s cubic-bezier(.2,.6,.25,1) both}.party-enter .hero-waves{animation:wave-enter 1.3s cubic-bezier(.2,.6,.25,1) both}.recovery{position:absolute;inset:0;background:#06142bf0;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:28px;z-index:4}.recovery .button{max-width:340px}dialog{background:var(--navy);color:var(--cream);border:1px solid #536175;padding:68px 28px 30px;width:calc(100% - 30px);max-width:480px;max-height:90dvh}dialog::backdrop{background:#010712cc;backdrop-filter:blur(6px)}.dialog-close{position:absolute;top:10px;right:20px;background:none;border:0;font-size:10px;letter-spacing:.15em;min-height:44px}dialog nav{display:flex;flex-direction:column;gap:22px;font-family:'Playfair Display',Georgia,serif;font-size:38px;margin:28px 0 55px}dialog h2{font-size:43px}dialog p{line-height:1.7}dialog input[type=range]{width:100%;accent-color:var(--papaya);margin-bottom:25px}dialog a{text-decoration:underline;text-underline-offset:4px}.resume{position:fixed;z-index:90;bottom:30px;left:50%;transform:translateX(-50%);padding:18px 22px;border:1px solid var(--papaya);background:var(--navy);font-size:10px;letter-spacing:.12em;white-space:nowrap}.status{position:fixed;z-index:100;bottom:18px;left:20px;right:20px;margin:auto;max-width:440px;background:#07152af5;border:1px solid #596278;padding:13px 16px;line-height:1.5;font-size:12px;pointer-events:none;opacity:0;transition:opacity .2s}.status.visible{opacity:1}
@keyframes loading{to{transform:translateX(0)}}@keyframes logo-breathe{50%{filter:drop-shadow(0 0 30px #2447a82b)}}@keyframes curtain-dark{0%{opacity:0}40%{opacity:.25}100%{opacity:1}}@keyframes curtain-wave{to{transform:translateY(-70%) rotate(-8deg)}}@keyframes reveal{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes wave-enter{from{transform:translate(-20px,35px);opacity:.2}to{transform:translate(0,10px);opacity:1}}
@media(min-width:700px){body{background:#010713}#site{box-shadow:0 0 140px #102d5338;border-left:1px solid #ffffff0b;border-right:1px solid #ffffff0b}.journey video,.arrival-poster{object-fit:contain}.journey-top{max-width:560px;margin:auto}.section{padding-left:35px;padding-right:35px}.hero-art{margin:0 -35px}.hero{min-height:900px}.program{min-height:1000px}.act-title{font-size:38px}.hero h1{font-size:53px}}
@media(max-width:359px){.section{padding-left:19px;padding-right:19px}.site-header{padding-left:19px;padding-right:19px}.header-controls{gap:8px}.header-identity{font-size:8px}.hero-art{margin:0 -19px;min-height:260px}.hero h1{font-size:9.5vw}.act-number{width:33px}.act-title{font-size:7.2vw}h2{font-size:12.3vw}.attendance{gap:6px}.attendance label{font-size:10px;gap:6px}.button{letter-spacing:.08em;font-size:11px}.mushroom{right:-173px}}
/* Entry: one deliberate gesture, then the forest. */
.journey:has(.invitation:not([hidden])) .journey-top{visibility:hidden}
.invitation{z-index:4;background:radial-gradient(ellipse at 65% 34%,#10234355,transparent 40%),#030b18;display:grid;grid-template-rows:1fr auto auto 1fr auto auto;padding:calc(27px + env(safe-area-inset-top)) 30px calc(23px + env(safe-area-inset-bottom));justify-content:stretch;justify-items:center;overflow:auto;transition:opacity .7s ease,filter .7s ease;min-height:100%;}
.entry-top{width:100%;max-width:440px;display:flex;justify-content:space-between;gap:16px;align-self:start;font-size:8px;letter-spacing:.15em;color:#b3b8c1}
.entry-emblem{position:relative;width:min(64vw,260px);height:130px;display:grid;place-items:center}
.entry-emblem .invitation-symbol{position:relative;width:100%;margin:0;z-index:1;mix-blend-mode:screen;animation:entry-reveal 1.5s ease both}
.entry-halo{position:absolute;inset:15% -15%;border-radius:50%;background:radial-gradient(ellipse at 25% 50%,#ff713d20,transparent 55%),radial-gradient(ellipse at 75% 50%,#2055ee30,transparent 60%);filter:blur(32px);animation:entry-breathe 7s ease-in-out infinite}
.entry-identity{text-align:center;margin-top:17px}
.entry-identity h1{font-size:clamp(27px,7.8vw,38px);letter-spacing:.09em;font-weight:400}
.entry-identity .once{font-size:13px;letter-spacing:.16em;color:#bdb8af;margin:12px 0 0}
.entry-thread{width:1px;min-height:35px;height:58%;max-height:110px;align-self:center;background:linear-gradient(transparent,#ff713d85,transparent);margin:22px 0}
.invitation-actions{width:100%;max-width:350px;margin:0;text-align:center}
.entry-kicker{font-size:8px;letter-spacing:.25em;color:#a5acb9;margin-bottom:23px}
.entry-start{width:100%;border:1px solid #f5e9d64d;background:#f5e9d605;display:flex;align-items:center;justify-content:space-between;padding:20px 21px;min-height:78px;text-align:left;transition:background .25s,border-color .25s}
.entry-start-copy{font-size:11px;letter-spacing:.16em;line-height:1.5}
.entry-start-copy small{display:block;font-size:8px;letter-spacing:.16em;color:#a5acb9;margin-top:6px}
.entry-play{font-size:27px;font-weight:300;color:var(--papaya)}
.entry-start:hover,.entry-start:active{border-color:#ff713d;background:#ff713d0c}
.entry-start[aria-busy=true]{cursor:progress;opacity:.65}
.invitation-actions .text-button{font-size:11px;letter-spacing:.02em;color:#919aa9;margin-top:8px;min-height:48px;padding:13px 18px}
.invitation-actions .text-button:hover{color:var(--cream)}
.invitation-note{position:static;margin:25px 0 0;font-size:7px;letter-spacing:.16em;color:#798393;display:flex;align-items:center;gap:9px}
.entry-sound{height:12px;display:flex;align-items:center;gap:2px}.entry-sound i{display:block;background:#a4adba;width:1px;height:4px}.entry-sound i:nth-child(2),.entry-sound i:nth-child(4){height:8px}.entry-sound i:nth-child(3){height:12px}
.invitation.is-opening{opacity:0;filter:blur(8px);pointer-events:none}
@keyframes entry-reveal{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@keyframes entry-breathe{50%{opacity:.45;transform:scale(.92)}}
@media(min-width:700px){.invitation{padding-top:35px;padding-bottom:30px}.entry-emblem{width:280px;height:155px}.entry-top{max-width:560px}}
@media(max-height:650px){.invitation{padding-top:20px;padding-bottom:15px;grid-template-rows:auto auto auto 1fr auto auto}.entry-emblem{height:100px;margin-top:28px;width:200px}.entry-identity{margin-top:8px}.entry-thread{min-height:15px;margin:12px 0}.entry-kicker{margin-bottom:12px}.invitation-note{margin-top:10px}}
/* Blend the supplied black-backed symbol against the actual section background. */
.hero-art{isolation:isolate;background:var(--navy)}
.hero-symbol{filter:none;animation:none}
.arrival-symbol{background:none}
#brand-title:focus{outline:none}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.journey.is-transitioning .curtain{opacity:1}.curtain svg{display:none}}

/* Arrival: preserve the official symbol, remove its black matte and boxed tint. */
.arrival::before{display:none}
.arrival-symbol{display:block;margin:0 auto 10px;background:transparent;mix-blend-mode:normal;filter:url(#symbol-transparent);width:145px}
.arrival-brand,.arrival .once,.arrival .text-button{text-shadow:0 2px 12px rgba(0,0,0,.85)}
.journey:has(.arrival:not([hidden])) .journey-shade{background:linear-gradient(to bottom,rgba(0,0,0,.08) 35%,rgba(0,0,0,.18) 58%,rgba(0,0,0,.72) 100%)}

/* Festival poster: readable live typography, restrained perimeter artwork. */
#site{background:#06142b;position:relative}.scroll-progress{display:none}
.hero-art{background:transparent;isolation:auto;overflow:visible;min-height:300px}
.hero-symbol,.entry-emblem .invitation-symbol,.poster-symbol{filter:url(#symbol-transparent);mix-blend-mode:normal;animation:none}
.hero-symbol{width:82%;left:9%;top:16%;z-index:1}
.hero{background:radial-gradient(ellipse at 70% 38%,#19346744,transparent 55%)}
.poster-frame{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:.45}
.hero-art .poster-frame{inset:-150px 0 auto;height:650px;opacity:.25}
.program{padding:58px 26px 54px;min-height:0;isolation:isolate;border-top:0;background:radial-gradient(ellipse at 50% 40%,#10213b,transparent 65%),#06142b;overflow:hidden}
.poster-content{position:relative;z-index:2;text-align:center}
.poster-symbol{width:80px;display:block;margin:0 auto 20px}
.poster-brand{font:400 clamp(27px,7.7vw,42px) 'Playfair Display',Georgia,serif;letter-spacing:.055em;margin:0}
.program h2{font:400 10px Inter,sans-serif;letter-spacing:.45em;margin:15px 0 50px;padding-left:.45em}
.lineup-day{margin:0}.lineup-day+ .lineup-day{margin-top:30px}
.lineup-day h3{font:400 10px Inter,sans-serif;letter-spacing:.28em;color:var(--papaya);margin:0 0 12px}
.poster-act{display:block;width:100%;padding:12px 0;min-height:48px;border:0;background:transparent;color:var(--cream);font:500 clamp(23px,6.7vw,37px) 'Playfair Display',Georgia,serif;letter-spacing:-.035em;white-space:nowrap;cursor:pointer;line-height:1.3;transition:color .25s,text-shadow .25s}
.poster-act:hover,.poster-act:focus-visible{color:var(--papaya);text-shadow:0 0 24px #ff713d38}.poster-act:active{color:#fff}.act-5{color:var(--papaya)}
.poster-footer{margin-top:48px}.poster-footer .date{font-size:11px;letter-spacing:.17em;margin-bottom:12px}.poster-footer .couple{font-size:8px;color:#a5adbc}
.program .mushroom{width:230px;height:275px;top:auto;bottom:60px;right:-95px;opacity:.16;z-index:1;transform:rotate(-12deg);animation:none}
#act-dialog{width:100%;max-width:560px;height:100dvh;max-height:100dvh;border:0;margin:auto;padding:80px 30px 65px;background:radial-gradient(ellipse at 100% 75%,#19356470,transparent 65%),#06142bf7;overflow:auto}
#act-dialog[open]{display:flex;align-items:center}#act-dialog::backdrop{background:#010612e8;backdrop-filter:blur(12px)}
.act-detail{width:100%;padding:30px 0}.act-detail .section-kicker{color:var(--papaya);margin-bottom:28px}
#act-heading{font:400 clamp(30px,8vw,44px) 'Playfair Display',Georgia,serif;letter-spacing:-.04em;line-height:1.15;margin-bottom:32px}
#act-description{font:400 16px/1.9 Inter,sans-serif;color:#d1d4dc;margin:0;max-width:430px}
.act-detail-footer{position:absolute;bottom:25px;left:30px;font-size:8px;letter-spacing:.17em;color:#8a94a4}
body:has(dialog[open]){overflow:hidden}
.button,.entry-start{transition:background .25s,border-color .25s,color .25s}.button:hover{background:#f5e9d612;border-color:var(--papaya)}.button.papaya:hover{background:#e86235}
.button span,.text-button span{transition:transform .25s}.button:hover span{transform:translate(3px,-3px)}
dialog[open]{animation:panel-in .4s cubic-bezier(.2,.7,.2,1) both}dialog[open]::backdrop{animation:light-in .35s ease both}
#act-dialog[open] .act-detail{animation:type-in .55s .08s both}
.is-revealed .poster-content{animation:type-in .9s both}
.program::after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 0 30%,#335dcc14,transparent 50%);animation:light-drift 12s ease-in-out infinite alternate}
@keyframes type-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes panel-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes light-in{from{opacity:0}to{opacity:1}}
@keyframes light-drift{to{opacity:.3;transform:translateY(35px)}}
.rsvp-art{opacity:.45}.rsvp-art svg{height:60px}.entry-halo{animation:entry-breathe 10s ease-in-out infinite}
body.motion-paused *,body.motion-paused *::after{animation-play-state:paused!important}
@media(min-width:700px){.program{padding:75px 45px 70px}.poster-act{font-size:37px}.poster-brand{font-size:42px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
.button.primary:hover{background:#e9d9be;color:#06142b}.hero h1{letter-spacing:.015em;font-size:clamp(28px,8.6vw,48px)}

/* Artwork extracted from the approved poster; animation never affects live type. */
.program{padding:70px 26px 92px;background:#00111d;min-height:760px}
.program::after{display:none}.lineup-atmosphere{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.lineup-atmosphere img{width:100%;height:100%;object-fit:fill;display:block;transform-origin:50% 55%;animation:filament-current 20s cubic-bezier(.45,0,.55,1) infinite alternate;animation-play-state:paused;will-change:transform}
.program.in-view .lineup-atmosphere img{animation-play-state:running}
.poster-symbol{width:126px;margin-bottom:30px}.poster-brand{font-size:clamp(29px,8.5vw,47px);font-weight:500;letter-spacing:-.04em;transform:scaleY(1.65);line-height:1.2;margin:0}
.program h2{font:400 13px 'Playfair Display',Georgia,serif;letter-spacing:.68em;margin:30px 0 34px}
.lineup-day h3{font:400 12px 'Playfair Display',Georgia,serif;letter-spacing:.3em;margin-bottom:13px}
.poster-act{font-size:clamp(25px,7.1vw,40px);font-weight:600;letter-spacing:-.055em;line-height:1.25;padding:13px 0;min-height:54px}
.poster-act span{display:inline-block;transform:scaleY(1.4);transform-origin:center;pointer-events:none}
.lineup-day+.lineup-day{margin-top:30px}.poster-footer{margin-top:42px}
.poster-footer .date{font-family:'Playfair Display',Georgia,serif;font-size:11px;letter-spacing:.3em}.poster-footer .couple{font-family:'Playfair Display',Georgia,serif;letter-spacing:.3em;color:var(--cream)}
@keyframes filament-current{from{transform:scale(1.018) translate3d(-.35%,-.3%,0)}to{transform:scale(1.045) translate3d(.35%,.35%,0)}}
@media(min-width:700px){.program{padding:94px 40px 130px;min-height:970px}.poster-symbol{width:156px}.poster-act{font-size:39px;padding:19px 0}.poster-brand{font-size:46px}.program h2{margin-bottom:48px}.poster-footer{margin-top:58px}}
@media(max-width:359px){.program{padding-left:19px;padding-right:19px;min-height:720px}.poster-act{font-size:7.1vw}}
@media(prefers-reduced-motion:reduce){.lineup-atmosphere img{animation:none!important;transform:none;will-change:auto}}

/* One filament language throughout the site, no flat color ribbons. */
.filament-frame{position:absolute;inset:-150px 0 auto;width:100%;height:calc(100% + 200px);pointer-events:none;opacity:.65;overflow:visible}
.filament-bank{transform-origin:0 50%;animation:bank-flow 18s ease-in-out infinite alternate}.filament-bank-right{animation-delay:-9s;animation-duration:23s}
@keyframes bank-flow{from{transform:translateY(-3px) scaleX(.97)}to{transform:translateY(5px) scaleX(1.045)}}
.rsvp-art{height:150px;opacity:.85;margin-top:35px;overflow:hidden}.rsvp-art .filament-river{height:145px;width:110%;left:-5%;transform:none;animation:river-flow 22s ease-in-out infinite alternate}
@keyframes river-flow{from{transform:translateX(-1%) scaleY(.95)}to{transform:translateX(1%) scaleY(1.05)}}
.curtain svg{opacity:.9}.hero-art{isolation:isolate}.hero-symbol{z-index:2}
@media(prefers-reduced-motion:reduce){.filament-bank,.filament-river{animation:none!important}}
.filament-frame{fill:none;opacity:.85}
