:root{--purple:#99258b;--gold:#fed982;--terracotta:#e58b75;--plum:#46223f;--cream:#faf7f2;--body:Montserrat,Arial,sans-serif}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--purple)}body{font-family:var(--body);color:var(--plum);-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid #fff8de;outline-offset:6px}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.intro{height:100svh;min-height:650px;width:100%;overflow:hidden;overflow:clip;isolation:isolate;position:relative;background:linear-gradient(180deg,#fed982 0%,#fbc48a 21%,#e58b75 45%,#cf548f 68%,#99258b 89%,#7e1b79 100%)}.colour-atmosphere{position:absolute;inset:-10%;z-index:-1;background:radial-gradient(ellipse at 50% 1%,#fff8c9b0 0%,#ffe9ad55 21%,transparent 46%),radial-gradient(ellipse at 95% 45%,#ec9a7c80,transparent 45%),radial-gradient(ellipse at 9% 85%,#b8249c99,transparent 50%);background-size:110% 110%;pointer-events:none}.sunlight{position:absolute;inset:0;pointer-events:none;z-index:0;mix-blend-mode:screen}.sun-core{position:absolute;width:65vw;height:50vh;top:-22vh;left:50%;transform:translateX(-50%);border-radius:50%;background:radial-gradient(ellipse,#fff9dc 0%,#fff2b987 24%,#ffe6a140 50%,transparent 73%);filter:blur(5px)}.sunbeams{position:absolute;width:116%;height:110%;left:-8%;top:-2%;transform-origin:50% 0;opacity:.85}.clouds{position:absolute;pointer-events:none;border-radius:50%;opacity:.25;background:radial-gradient(ellipse at 26% 54%,#fff7dc 0%,transparent 50%),radial-gradient(ellipse at 57% 25%,#fff6df 0%,transparent 45%),radial-gradient(ellipse at 72% 70%,#fff8e7 0%,transparent 48%);filter:blur(18px);width:45vw;height:24vh;z-index:0}.cloud-one{top:2%;left:-10%;transform:rotate(7deg)}.cloud-two{top:9%;right:-18%;transform:rotate(-9deg)}.gold-dust{position:absolute;inset:0;pointer-events:none;z-index:4;overflow:hidden}.dust{position:absolute;left:var(--x);top:var(--y);width:var(--size);height:var(--size);border-radius:50%;background:#fff2ac;box-shadow:0 0 6px #fff7bf,0 0 15px #fed982b0;opacity:var(--opacity);transform:translate3d(0,0,0);will-change:transform,opacity}.dust.star{border-radius:0;background:transparent;box-shadow:none;width:14px;height:14px}.dust.star:before,.dust.star:after{content:'';position:absolute;background:linear-gradient(transparent,#fffbed,transparent);width:1px;height:100%;left:50%}.dust.star:after{transform:rotate(90deg)}.sky{position:absolute;inset:0;pointer-events:none;z-index:3}.dove-arrival{position:absolute;width:clamp(150px,17vw,265px);aspect-ratio:1}.dove-left{top:7%;left:14%}.dove-right{top:4%;right:12%;width:clamp(140px,15vw,235px)}.dove-sprite{width:100%;height:100%;background-image:url('/assets/intro/dove-flight-sprite.png');background-size:300% 200%;background-position:0 0;background-repeat:no-repeat;filter:drop-shadow(0 7px 10px #c07a2d20)}.dove-drift,.dove-heading{height:100%;width:100%}.dove-heading{transform:scaleX(-1)}.floral-frame{position:absolute;inset:0;z-index:5;pointer-events:none}.floral-group{position:absolute;aspect-ratio:1;transform-origin:bottom center;filter:drop-shadow(0 15px 17px #752e5420)}.floral-group img{width:100%;height:auto;display:block}.floral-sway{width:100%;height:100%;transform-origin:50% 90%}.floral-left{width:clamp(300px,30vw,500px);left:-15%;top:12%;--rotation:24deg;--mirror:1;--arrive-x:-90px;--arrive-y:35px;--delay:1.4s;transform:rotate(24deg)}.floral-right{width:clamp(300px,28vw,470px);right:-13%;top:15%;--rotation:-17deg;--mirror:-1;--arrive-x:90px;--arrive-y:30px;--delay:1.8s;transform:scaleX(-1) rotate(-17deg)}.floral-bottom-left{width:clamp(380px,37vw,600px);left:-9%;bottom:-23%;--rotation:7deg;--mirror:1;--arrive-x:-60px;--arrive-y:100px;--delay:1.1s;transform:rotate(7deg)}.floral-bottom-right{width:clamp(390px,38vw,630px);right:-9%;bottom:-24%;--rotation:-2deg;--mirror:-1;--arrive-x:50px;--arrive-y:100px;--delay:2.1s;transform:scaleX(-1) rotate(-2deg)}.gold-ribbons{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:6}.portal{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;z-index:7;padding:30px 20px 40px;pointer-events:none}.logo-scene{position:relative;width:clamp(280px,43vmin,430px);aspect-ratio:1;margin-top:0}.logo-entrance,.official-logo{width:100%;height:100%}.official-logo{object-fit:contain;display:block;filter:drop-shadow(0 14px 30px #6a20492b)}.logo-halo{position:absolute;inset:-22%;background:radial-gradient(ellipse,#ffe9a763 0%,#ffdf9a30 38%,transparent 70%);border-radius:50%;pointer-events:none;mix-blend-mode:screen}.welcome-copy{margin-top:20px;pointer-events:auto}.ministry-motto{font-family:var(--body);font-size:12px;letter-spacing:2.1px;line-height:1.85;text-transform:uppercase;color:#fff9e9;text-shadow:0 1px 12px #762b5840;margin:0 0 25px;font-weight:500}.ministry-motto span{font-size:14px;letter-spacing:2.7px}.enter-button{display:inline-flex;align-items:center;gap:25px;min-height:54px;background:#532043df;color:#fff6dd;border:1px solid #fed982c7;padding:13px 15px 13px 25px;font-size:10px;letter-spacing:1.1px;text-transform:uppercase;box-shadow:0 8px 30px #7025531a;transition:background .25s,box-shadow .25s;position:relative;overflow:hidden}.enter-button:hover{background:#6e245ce8;box-shadow:0 8px 35px #fed98220}.enter-button>svg{width:29px;height:29px;padding:5px;border:1px solid #fed98270;border-radius:50%;stroke:var(--gold);fill:none;stroke-width:1.3;transition:transform .25s}.enter-button:hover>svg{transform:translateX(3px)}.intro-top{position:absolute;left:38px;right:38px;top:max(22px,env(safe-area-inset-top));display:flex;justify-content:space-between;align-items:center;gap:20px;z-index:10;pointer-events:none}.intro-caption{font-size:8px;letter-spacing:2px;font-weight:500;color:#64283e}.motion-controls{display:flex;gap:6px;pointer-events:auto}.motion-controls button{border:1px solid #8b4a3438;background:#fff5d934;border-radius:30px;min-height:38px;padding:9px 13px;display:flex;align-items:center;gap:7px;color:#59273a;font-size:9px;font-weight:500;transition:background .2s}.motion-controls button:hover{background:#fff5d978}.motion-controls button:focus-visible{outline-color:var(--purple)}.motion-controls svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round}.play-icon{display:none}.motion-paused .pause-icon{display:none}.motion-paused .play-icon{display:block}.motion-controls button:disabled{opacity:.7;cursor:default}.intro-bottom{position:absolute;z-index:8;bottom:max(27px,env(safe-area-inset-bottom));left:0;right:0;display:flex;flex-direction:column;align-items:center;pointer-events:none;color:#fff1cf}.intro-bottom p{font-size:8px;letter-spacing:2.5px;margin:0;text-shadow:0 1px 8px #46223f30}.intro-bottom p span{padding:0 12px;color:var(--gold)}.bottom-line{display:block;width:1px;height:25px;background:linear-gradient(#fed982a0,transparent);margin-top:15px}.has-js .intro:not(.ready) .portal,.has-js .intro:not(.ready) .floral-group,.has-js .intro:not(.ready) .dove-arrival{opacity:0}.ready .colour-atmosphere{animation:atmosphere-breathe 15s ease-in-out infinite alternate}.ready .sunbeams{animation:beams-move 19s ease-in-out infinite alternate}.ready .sun-core{animation:sun-glow 10s ease-in-out infinite alternate}.ready .cloud-one{animation:cloud-drift 30s ease-in-out infinite alternate}.ready .cloud-two{animation:cloud-drift 24s ease-in-out infinite alternate-reverse}.ready .logo-entrance{animation:logo-zoom-out 3.3s cubic-bezier(.16,1,.3,1) both}.ready .logo-halo{animation:halo-glow 8s ease-in-out 1s infinite alternate}.ready .welcome-copy{animation:welcome-appear 1.7s ease 2.3s both}.ready .intro-bottom{animation:welcome-appear 2s ease 3s both}.ready .floral-group{animation:flowers-emerge 2.1s cubic-bezier(.18,.8,.28,1) var(--delay) both}.ready .floral-sway{animation:floral-breathe 13s ease-in-out 4s infinite alternate}.ready .floral-right .floral-sway,.ready .floral-bottom-left .floral-sway{animation-direction:alternate-reverse;animation-duration:16s}.ready .dove-left{animation:dove-enter-left 4.8s cubic-bezier(.2,.8,.3,1) .5s both}.ready .dove-right{animation:dove-enter-right 5.2s cubic-bezier(.2,.8,.3,1) 1.2s both}.ready .dove-drift{animation:dove-drift 13s ease-in-out 4s infinite alternate}.ready .dove-right .dove-drift{animation-direction:alternate-reverse;animation-duration:16s}.ready .dove-sprite{animation:wingbeat 1.2s step-end infinite}.ready .dust{animation:gold-float var(--duration) linear var(--delay) infinite,twinkle var(--twinkle) ease-in-out var(--delay) infinite alternate}.ready .ribbon-highlight{animation:ribbon-travel 19s linear infinite}.motion-paused *,.motion-paused *:before,.motion-paused *:after{animation-play-state:paused!important}.intro.leaving .portal{animation:depart .7s ease both}.intro.leaving .colour-atmosphere{animation:depart-glow .7s ease both}@keyframes logo-zoom-out{0%{opacity:0;transform:scale(1.8);filter:blur(8px)}18%{opacity:1}100%{opacity:1;transform:scale(1);filter:blur(0)}}@keyframes flowers-emerge{0%{opacity:0;transform:translate(var(--arrive-x),var(--arrive-y)) scaleX(var(--mirror)) rotate(var(--rotation)) scale(.48)}70%{opacity:1;transform:translate(0,0) scaleX(var(--mirror)) rotate(var(--rotation)) scale(1.025)}100%{opacity:1;transform:translate(0,0) scaleX(var(--mirror)) rotate(var(--rotation)) scale(1)}}@keyframes floral-breathe{from{transform:rotate(-.7deg) translateY(0)}to{transform:rotate(.8deg) translateY(-5px)}}@keyframes welcome-appear{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes atmosphere-breathe{to{transform:scale(1.06) translateY(-1%)}}@keyframes beams-move{from{transform:rotate(-4deg);opacity:.62}to{transform:rotate(4deg);opacity:1}}@keyframes sun-glow{to{opacity:.6;transform:translateX(-50%) scale(1.16)}}@keyframes halo-glow{from{opacity:.5;transform:scale(.95)}to{opacity:1;transform:scale(1.06)}}@keyframes cloud-drift{to{transform:translate(7vw,1vh)}}@keyframes dove-enter-left{from{opacity:0;transform:translate(-32vw,8vh) rotate(8deg) scale(.7)}20%{opacity:1}to{opacity:1;transform:translate(0,0) rotate(-5deg) scale(1)}}@keyframes dove-enter-right{from{opacity:0;transform:translate(32vw,12vh) rotate(-8deg) scale(.7)}20%{opacity:1}to{opacity:1;transform:translate(0,0) rotate(4deg) scale(1)}}@keyframes dove-drift{0%{transform:translate(0,0) rotate(0)}45%{transform:translate(2.5vw,-1.4vh) rotate(-3deg)}100%{transform:translate(5vw,2vh) rotate(2deg)}}@keyframes wingbeat{0%,100%{background-position:0% 0%}20%{background-position:50% 0%}40%{background-position:100% 0%}60%{background-position:50% 0%}80%{background-position:0% 0%}}@keyframes gold-float{0%{transform:translate3d(0,15px,0)}100%{transform:translate3d(var(--drift),-90px,0)}}@keyframes twinkle{from{opacity:.12}to{opacity:var(--opacity)}}@keyframes ribbon-travel{to{stroke-dashoffset:-1400}}@keyframes depart{to{opacity:0;transform:scale(.97)}}@keyframes depart-glow{to{opacity:0;transform:scale(1.3)}}
@media(min-width:1800px){.logo-scene{width:min(46vmin,510px)}.floral-left{left:-12%}.floral-right{right:-10%}.floral-bottom-left{bottom:-19%}.floral-bottom-right{bottom:-20%}.ministry-motto{font-size:14px}.ministry-motto span{font-size:16px}}
@media(max-width:1100px){.logo-scene{width:clamp(280px,47vmin,390px)}.dove-left{top:9%;left:9%}.dove-right{top:6%;right:7%}.floral-left{left:-21%;top:19%;width:38vw}.floral-right{right:-20%;top:20%;width:38vw}.floral-bottom-left{width:47vw;left:-13%;bottom:-13%}.floral-bottom-right{width:48vw;right:-13%;bottom:-13%}.intro-top{left:25px;right:25px}.intro-caption{font-size:7px;letter-spacing:1.4px}}
@media(max-width:650px){.intro{min-height:670px}.portal{padding:25px 18px 55px}.logo-scene{width:min(75vw,350px);margin-top:2vh}.welcome-copy{margin-top:30px}.ministry-motto{font-size:10px;letter-spacing:1.7px;margin-bottom:24px;line-height:2}.ministry-motto span{font-size:12px;letter-spacing:2px}.enter-button{font-size:9px;padding:12px 13px 12px 20px;gap:18px;min-height:50px}.intro-top{left:17px;right:17px;top:max(16px,env(safe-area-inset-top));gap:8px;align-items:flex-start}.intro-caption{font-size:6px;letter-spacing:1.2px;max-width:110px;line-height:1.8;padding-top:9px}.motion-controls{gap:5px}.motion-controls button{padding:9px 10px;min-height:35px;font-size:8px;gap:5px}.motion-controls svg{width:13px;height:13px}.intro-bottom{bottom:max(22px,env(safe-area-inset-bottom))}.intro-bottom p{font-size:6px;letter-spacing:1.65px}.intro-bottom p span{padding:0 7px}.bottom-line{height:19px;margin-top:13px}.dove-arrival{width:37vw;max-width:170px}.dove-left{left:1%;top:10%}.dove-right{right:0;top:9%;width:34vw;max-width:155px}.floral-left{width:56vw;left:-35%;top:28%;--rotation:28deg;transform:rotate(28deg)}.floral-right{width:56vw;right:-34%;top:32%;--rotation:-22deg;transform:scaleX(-1) rotate(-22deg)}.floral-bottom-left{width:72vw;left:-24%;bottom:-5%;--rotation:4deg;transform:rotate(4deg)}.floral-bottom-right{width:75vw;right:-26%;bottom:-4%;--rotation:-3deg;transform:scaleX(-1) rotate(-3deg)}.gold-ribbons{height:100%;width:180%;left:-40%}.sunbeams{width:210%;left:-55%;height:95%}.sun-core{width:135vw;height:47vh;top:-18vh}.clouds{width:80vw;height:20vh;filter:blur(14px)}.cloud-one{top:3%;left:-35%}.cloud-two{top:10%;right:-45%}.logo-halo{inset:-30%}}
@media(max-height:720px) and (min-width:651px){.intro{min-height:590px}.logo-scene{width:320px}.portal{padding-bottom:30px}.welcome-copy{margin-top:15px}.ministry-motto{font-size:10px;margin-bottom:15px}.ministry-motto span{font-size:12px}.dove-left{top:8%;left:14%;width:160px}.dove-right{top:5%;right:13%;width:150px}.floral-bottom-left{width:440px;bottom:-34%}.floral-bottom-right{width:450px;bottom:-34%}}
@media(max-width:380px){.logo-scene{width:76vw}.portal{padding-bottom:65px}.ministry-motto{font-size:9px;letter-spacing:1.4px}.ministry-motto span{font-size:11px}.intro-caption{max-width:90px;font-size:5.5px}.motion-controls button{font-size:7px;padding:8px}.intro-bottom p{font-size:5.5px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.intro .portal,.intro .floral-group,.intro .dove-arrival,.intro .welcome-copy,.intro .intro-bottom,.intro .logo-entrance{opacity:1!important}.has-js .intro:not(.ready) .portal{opacity:1}.dust{opacity:.3}.sunbeams{transform:rotate(0)}.intro.leaving .portal{opacity:1}.intro.leaving .colour-atmosphere{opacity:1}}
@media(max-width:650px) and (max-height:740px){.intro{min-height:600px}.portal{padding:60px 18px}.logo-scene{width:min(72vw,32vh);margin-top:16px}.welcome-copy{margin-top:20px}.ministry-motto{margin-bottom:18px}.dove-arrival{width:30vw;top:7%}.dove-right{width:28vw;top:6%}.floral-left{top:24%}.floral-right{top:28%}.floral-bottom-left{width:66vw;bottom:-12%}.floral-bottom-right{width:68vw;bottom:-12%}.intro-bottom{bottom:16px}.bottom-line{height:12px;margin-top:10px}}

/* Refined intro: botanicals stay at the perimeter; light flows through the scene. */
.floral-group{--arrive-x:0px;--arrive-y:0px;filter:drop-shadow(0 5px 10px #752e5417)}
.floral-left{width:clamp(210px,22vw,330px);left:-14vw;top:19%;--rotation:8deg;--mirror:1;--delay:1.1s;transform:rotate(8deg)}
.floral-right{width:clamp(210px,22vw,330px);right:-14vw;top:35%;--rotation:-7deg;--mirror:-1;--delay:1.3s;transform:scaleX(-1) rotate(-7deg)}
.floral-bottom-left{width:clamp(230px,25vw,360px);left:-14vw;bottom:-14vh;--rotation:0deg;--mirror:1;--delay:1.4s;transform:none}
.floral-bottom-right{width:clamp(240px,26vw,380px);right:-15vw;bottom:-12vh;--rotation:0deg;--mirror:-1;--delay:1.5s;transform:scaleX(-1)}
.floral-top-left{width:clamp(180px,20vw,300px);left:-10vw;top:-15vh;--rotation:90deg;--mirror:1;--delay:.8s;transform:rotate(90deg)}
.floral-top-right{width:clamp(180px,20vw,300px);right:-10vw;top:-15vh;--rotation:90deg;--mirror:-1;--delay:1s;transform:scaleX(-1) rotate(90deg)}
.ready .floral-group{animation:flowers-reveal 1.8s ease var(--delay) both}
.ready .floral-sway{animation:floral-subtle-breathe 16s ease-in-out 3s infinite alternate}
.ready .floral-right .floral-sway,.ready .floral-bottom-left .floral-sway{animation-direction:alternate-reverse}
.welcome-arch{position:absolute;width:122%;height:auto;left:-11%;top:-27%;overflow:visible;z-index:2;pointer-events:none}
.welcome-arch text{font-family:Montserrat,Arial,sans-serif;font-weight:500;font-size:38px;letter-spacing:3px;fill:var(--plum)}
.ready .welcome-arch{animation:welcome-appear 1.7s ease 1.25s both}
.ready .logo-entrance{animation:logo-emerge 3.1s cubic-bezier(.17,.7,.25,1) both}
.ministry-motto{font-size:clamp(12px,1.05vw,17px);font-weight:700;letter-spacing:1.7px;line-height:1.9;margin:0 0 24px}
.ministry-motto strong{display:block;font-size:inherit;font-weight:700;letter-spacing:inherit;line-height:inherit}
.welcome-copy .motion-controls{justify-content:center;margin:19px auto 0;gap:8px}
.welcome-copy .motion-controls button{background:#46223f19;color:#fff2cf;border-color:#fed98270;min-height:34px;font-size:8px;padding:8px 12px}
.welcome-copy .motion-controls button:hover{background:#46223f38}
.welcome-copy .motion-controls button:focus-visible{outline-color:#fff2cf}
.gold-ribbons{z-index:2;mix-blend-mode:screen}
.ribbon-guide{stroke-width:.8;opacity:.18}
.light-stream{stroke-linecap:round;stroke-dashoffset:1100}
.stream-glow{stroke-width:12;stroke-dasharray:110 1200;opacity:.38}
.stream-core{stroke-width:1.8;stroke-dasharray:180 1130;opacity:.86}
.stream-spark{stroke-width:3;stroke-dasharray:5 1305;opacity:1;stroke:#fff7d0}
.ready .light-stream{animation:streak-flow 14s linear infinite}
.ready .route-upper .light-stream{animation-duration:18s;animation-delay:-7s}
.ready .route-middle .light-stream{animation-duration:16s;animation-delay:-3s;animation-direction:reverse}
.ready .route-lower .light-stream{animation-duration:14s;animation-delay:-9s}
.ready .ribbon-route{animation:route-drift 24s ease-in-out infinite alternate;transform-origin:center}
.ready .route-middle{animation-duration:28s;animation-direction:alternate-reverse}
@keyframes flowers-reveal{from{opacity:0;transform:translateY(7px) scaleX(var(--mirror)) rotate(var(--rotation)) scale(.98)}to{opacity:1;transform:translateY(0) scaleX(var(--mirror)) rotate(var(--rotation)) scale(1)}}
@keyframes floral-subtle-breathe{from{transform:rotate(-.18deg)}to{transform:rotate(.18deg)}}
@keyframes logo-emerge{0%{opacity:0;transform:scale(.12);clip-path:circle(8% at 50% 50%);filter:blur(7px)}20%{opacity:1}100%{opacity:1;transform:scale(1);clip-path:circle(72% at 50% 50%);filter:blur(0)}}
@keyframes streak-flow{from{stroke-dashoffset:1100}to{stroke-dashoffset:-1520}}
@keyframes route-drift{from{transform:translateY(-16px) rotate(-1deg)}to{transform:translateY(24px) rotate(1deg)}}
@media(min-width:1800px){.floral-top-left{left:-7vw;top:-11vh}.floral-top-right{right:-7vw;top:-11vh}.floral-left{left:-10vw}.floral-right{right:-10vw}.floral-bottom-left{left:-10vw;bottom:-10vh}.floral-bottom-right{right:-10vw;bottom:-9vh}}
@media(max-width:1100px){.floral-top-left{width:230px;left:-110px;top:-120px}.floral-top-right{width:230px;right:-110px;top:-120px}.floral-left{left:-130px;top:22%}.floral-right{right:-130px;top:36%}.floral-bottom-left{left:-130px;bottom:-90px}.floral-bottom-right{right:-140px;bottom:-90px}.ministry-motto{font-size:13px}}
@media(max-width:650px){.logo-scene{width:min(72vw,340px);margin-top:34px}.portal{padding:35px 18px 55px}.welcome-arch{top:-29%;width:124%;left:-12%}.welcome-arch text{font-size:38px;letter-spacing:2px}.welcome-copy{margin-top:25px}.ministry-motto{font-size:12px;line-height:1.9;letter-spacing:1.2px;margin-bottom:22px}.floral-top-left{width:155px;left:-77px;top:-77px}.floral-top-right{width:155px;right:-77px;top:-77px}.floral-left{width:190px;left:-132px;top:21%;--rotation:6deg;transform:rotate(6deg)}.floral-right{width:190px;right:-135px;top:36%;--rotation:-5deg;transform:scaleX(-1) rotate(-5deg)}.floral-bottom-left{width:210px;left:-128px;bottom:-52px}.floral-bottom-right{width:220px;right:-134px;bottom:-48px}.welcome-copy .motion-controls{margin-top:17px}.dove-left{width:30vw;top:8%;left:0}.dove-right{width:29vw;top:7%;right:0}.gold-ribbons{width:180%;left:-40%}.stream-glow{stroke-width:10}.stream-core{stroke-width:1.5}}
@media(max-width:650px) and (max-height:740px){.logo-scene{width:min(70vw,30vh);margin-top:32px}.portal{padding:50px 18px 55px}.welcome-copy{margin-top:18px}.ministry-motto{font-size:11px;margin-bottom:17px}.welcome-copy .motion-controls{margin-top:13px}.dove-left{width:26vw;top:8%}.dove-right{width:25vw;top:7%}.floral-left{top:25%}.floral-right{top:40%}.floral-bottom-left{width:185px;left:-115px;bottom:-55px}.floral-bottom-right{width:195px;right:-120px;bottom:-50px}.floral-top-left{width:145px;left:-72px;top:-72px}.floral-top-right{width:145px;right:-72px;top:-72px}}
@media(max-height:720px) and (min-width:651px){.logo-scene{width:270px;margin-top:28px}.welcome-copy{margin-top:15px}.ministry-motto{font-size:12px;margin-bottom:17px}.welcome-copy .motion-controls{margin-top:13px}.floral-top-left{width:190px;top:-100px;left:-95px}.floral-top-right{width:190px;top:-100px;right:-95px}.floral-bottom-left{width:245px;bottom:-90px;left:-150px}.floral-bottom-right{width:250px;bottom:-85px;right:-150px}}
@media(prefers-reduced-motion:reduce){.intro .welcome-arch{animation:none!important;opacity:1!important;transform:none!important}.intro .logo-entrance{clip-path:none;filter:none}.light-stream{stroke-dashoffset:0}.stream-glow,.stream-core{stroke-dasharray:none;opacity:.2}.stream-spark{display:none}}
/* Corner ornaments rotate around their center, staying close to the border. */
.floral-top-left,.floral-top-right{transform-origin:50% 50%}

/* Reference-matched single blooms and fixed ribbon curves. */
.floral-group{aspect-ratio:2/3;transform-origin:50% 50%;--rotation:0deg;filter:drop-shadow(0 2px 9px #fed98215)}
.floral-group img{width:100%;height:100%;object-fit:contain}
.floral-left{--floral-size:clamp(210px,26vmin,330px);width:var(--floral-size);left:calc(var(--floral-size)*-.48);top:calc(24% - var(--floral-size)*.82);bottom:auto;--mirror:1;transform:none}
.floral-right{--floral-size:clamp(210px,26vmin,330px);width:var(--floral-size);right:calc(var(--floral-size)*-.48);top:calc(39% - var(--floral-size)*.82);bottom:auto;--mirror:-1;transform:scaleX(-1)}
.floral-bottom-left{--floral-size:clamp(220px,27vmin,350px);width:var(--floral-size);left:calc(var(--floral-size)*-.47);top:calc(85% - var(--floral-size)*.82);bottom:auto;--mirror:1;transform:none}
.floral-bottom-right{--floral-size:clamp(250px,31vmin,390px);width:var(--floral-size);right:calc(var(--floral-size)*-.43);top:calc(95% - var(--floral-size)*.82);bottom:auto;--mirror:-1;transform:scaleX(-1)}
.floral-top-left{--floral-size:clamp(130px,16vmin,190px);width:var(--floral-size);left:calc(var(--floral-size)*-.43);top:calc(var(--floral-size)*-.84);bottom:auto;--mirror:1;transform:none}
.floral-top-right{--floral-size:clamp(130px,16vmin,190px);width:var(--floral-size);right:calc(var(--floral-size)*-.43);top:calc(var(--floral-size)*-.84);bottom:auto;--mirror:-1;transform:scaleX(-1)}
.flower-sparkles{position:absolute;inset:-5%;z-index:2;pointer-events:none}
.botanical-glint,.botanical-speck{position:absolute;left:var(--sx);top:var(--sy);width:var(--ss);height:var(--ss);opacity:.35;border-radius:50%;background:#fff5bd;box-shadow:0 0 5px #fff8d9,0 0 13px #fed982a0;transform:scale(.55)}
.botanical-glint{background:transparent;box-shadow:none;border-radius:0}
.botanical-glint:before,.botanical-glint:after{content:'';position:absolute;left:50%;top:50%;width:1px;height:100%;transform:translate(-50%,-50%);background:linear-gradient(transparent,#fffdf1 40%,#fffdf1 60%,transparent);filter:drop-shadow(0 0 3px #fff4b8)}
.botanical-glint:after{transform:translate(-50%,-50%) rotate(90deg)}
.ready .botanical-glint,.ready .botanical-speck{animation:botanical-twinkle var(--spark-duration) ease-in-out var(--spark-delay) infinite}
.reference-ribbons.gold-ribbons{width:100%;height:100%;left:0;top:0;inset:0;z-index:2;mix-blend-mode:screen}
.ready .reference-route{animation:none;transform:none}
.ribbon-silk{stroke-width:25;opacity:.23}
.ribbon-gold-edge{stroke-width:1.15;opacity:.75}
.ribbon-fine-dust{stroke-width:10;stroke-dasharray:.2 3 .35 6;opacity:.24}
.reference-crown .ribbon-silk{stroke-width:18;opacity:.3}
.reference-crown .ribbon-gold-edge{stroke-width:1.4}
.reference-bottom-two .ribbon-silk{stroke-width:31;opacity:.26}
.reference-middle-two .ribbon-silk{stroke-width:19;opacity:.18}
.reference-stream{stroke-linecap:round;stroke-dasharray:130 1170;stroke-dashoffset:1000}
.reference-stream-glow{stroke-width:7;opacity:.65}
.reference-stream-core{stroke-width:1.9;stroke:#fff2b2;opacity:.9;stroke-dasharray:55 1245}
.ready .reference-stream{animation:reference-ribbon-flow 17s linear infinite}
.ready .reference-crown .reference-stream{animation-duration:20s;animation-delay:-6s}
.ready .reference-middle-one .reference-stream{animation-duration:19s;animation-delay:-4s}
.ready .reference-middle-two .reference-stream{animation-duration:22s;animation-delay:-13s;animation-direction:reverse}
.ready .reference-bottom-one .reference-stream{animation-duration:18s;animation-delay:-11s}
.ready .reference-bottom-two .reference-stream{animation-duration:21s;animation-delay:-4s;animation-direction:reverse}
@keyframes botanical-twinkle{0%,100%{opacity:.12;transform:scale(.45)}42%{opacity:1;transform:scale(1)}65%{opacity:.35;transform:scale(.7)}}
@keyframes reference-ribbon-flow{from{stroke-dashoffset:1000}to{stroke-dashoffset:-1600}}
@media(max-width:650px){.floral-left,.floral-right{--floral-size:clamp(155px,43vw,210px)}.floral-bottom-left{--floral-size:clamp(170px,46vw,225px)}.floral-bottom-right{--floral-size:clamp(195px,53vw,255px)}.floral-top-left,.floral-top-right{--floral-size:clamp(110px,30vw,150px)}.ribbon-silk{stroke-width:30}.ribbon-fine-dust{stroke-width:9;opacity:.3}.reference-stream-glow{stroke-width:6}.reference-stream-core{stroke-width:1.6}}
@media(prefers-reduced-motion:reduce){.botanical-glint,.botanical-speck{animation:none!important;opacity:.5;transform:scale(.65)}.reference-stream{animation:none!important;stroke-dashoffset:0;stroke-dasharray:none;opacity:.25}}
/* Warm gold edges, translucent ribbon widths, and pinpoints like the reference. */
.reference-ribbons.gold-ribbons{mix-blend-mode:normal}
.ribbon-silk{stroke-width:48;opacity:.2}
.ribbon-gold-edge{stroke:#fed982;stroke-width:1.25;opacity:.85}
.ribbon-fine-dust{stroke-width:25;opacity:.32}
.reference-crown .ribbon-silk{stroke-width:27;opacity:.29}
.reference-middle-two .ribbon-silk{stroke-width:36;opacity:.16}
.reference-bottom-two .ribbon-silk{stroke-width:55;opacity:.24}
.botanical-glint{filter:drop-shadow(0 0 4px #fff9ce);background:#fff9d9;clip-path:polygon(50% 0,57% 42%,100% 50%,57% 58%,50% 100%,43% 58%,0 50%,43% 42%)}
@media(max-width:650px){.ribbon-silk{stroke-width:48}.ribbon-fine-dust{stroke-width:23;opacity:.34}}

/* Bottom-up paired arrangements and a clear sky for both complete doves. */
.sky{z-index:6}
.dove-left{top:6%;left:16%;width:clamp(160px,16vw,245px)}
.dove-right{top:5%;right:16%;width:clamp(155px,15vw,230px)}
.ready .dove-left,.ready .dove-right{animation:dove-sky-arrival 2.5s ease .5s both}
.ready .dove-right{animation-delay:.9s}
.ready .dove-drift{animation:dove-clear-drift 14s ease-in-out 3s infinite alternate}
.ready .dove-right .dove-drift{animation-direction:alternate-reverse;animation-duration:17s}
.floral-bottom-left{--floral-size:clamp(220px,27vmin,350px);top:calc(89% - var(--floral-size)*.82);--delay:.7s}
.floral-bottom-right{--floral-size:clamp(240px,29vmin,370px);top:calc(93% - var(--floral-size)*.82);--delay:.9s}
.floral-bottom-left-companion{--floral-size:clamp(175px,22vmin,275px);width:var(--floral-size);left:clamp(35px,5.5vw,100px);top:calc(96% - var(--floral-size)*.82);bottom:auto;--mirror:1;--rotation:-8deg;--delay:1.2s;transform:rotate(-8deg)}
.floral-bottom-right-companion{--floral-size:clamp(175px,22vmin,275px);width:var(--floral-size);right:clamp(35px,5.5vw,100px);top:calc(91% - var(--floral-size)*.82);bottom:auto;--mirror:-1;--rotation:-9deg;--delay:1.4s;transform:scaleX(-1) rotate(-9deg)}
.ready .floral-bottom-left,.ready .floral-bottom-right,.ready .floral-bottom-left-companion,.ready .floral-bottom-right-companion{animation:botanicals-rise 2.6s cubic-bezier(.2,.7,.3,1) var(--delay) both}
.ribbon-artwork{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden}
.ribbon-artwork img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;display:block}
.ribbon-base{opacity:.8}
.ribbon-shine{mix-blend-mode:screen;opacity:.55;filter:brightness(1.7);mask-image:linear-gradient(105deg,transparent 38%,#000 48%,#000 52%,transparent 62%);mask-size:300% 100%;mask-position:150% 0;-webkit-mask-image:linear-gradient(105deg,transparent 38%,#000 48%,#000 52%,transparent 62%);-webkit-mask-size:300% 100%;-webkit-mask-position:150% 0}
.ready .ribbon-base{animation:organza-luminance 10s ease-in-out infinite alternate}
.ready .ribbon-shine{animation:organza-shimmer 15s linear infinite}
.welcome-arch text{font-weight:700}
@keyframes botanicals-rise{from{opacity:0;transform:translateY(100%) scaleX(var(--mirror)) rotate(var(--rotation))}to{opacity:1;transform:translateY(0) scaleX(var(--mirror)) rotate(var(--rotation))}}
@keyframes dove-sky-arrival{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@keyframes dove-clear-drift{from{transform:translate(-1vw,0) rotate(-2deg)}to{transform:translate(1vw,-.5vh) rotate(2deg)}}
@keyframes organza-luminance{from{filter:brightness(.94);opacity:.76}to{filter:brightness(1.08);opacity:.88}}
@keyframes organza-shimmer{from{mask-position:150% 0;-webkit-mask-position:150% 0}to{mask-position:-50% 0;-webkit-mask-position:-50% 0}}
@media(max-width:1100px){.dove-left{left:13%;top:6%;width:165px}.dove-right{right:13%;top:5%;width:155px}.floral-bottom-left-companion{left:35px}.floral-bottom-right-companion{right:35px}}
@media(max-width:650px){.dove-left{top:1.5%;left:8%;width:24vw;max-width:110px}.dove-right{top:1.5%;right:8%;width:23vw;max-width:105px}.floral-bottom-left{--floral-size:clamp(155px,43vw,205px);top:calc(89% - var(--floral-size)*.82)}.floral-bottom-right{--floral-size:clamp(175px,47vw,225px);top:calc(94% - var(--floral-size)*.82)}.floral-bottom-left-companion{--floral-size:clamp(108px,31vw,150px);left:25px;top:calc(97% - var(--floral-size)*.82)}.floral-bottom-right-companion{--floral-size:clamp(108px,31vw,150px);right:25px;top:calc(94% - var(--floral-size)*.82)}.ribbon-base{opacity:.72}}
@media(max-width:650px) and (max-height:740px){.dove-left{top:1%;width:22vw;left:8%}.dove-right{top:1%;width:21vw;right:8%}.floral-bottom-left{--floral-size:150px}.floral-bottom-right{--floral-size:165px}.floral-bottom-left-companion,.floral-bottom-right-companion{--floral-size:100px}.floral-bottom-left-companion{left:20px}.floral-bottom-right-companion{right:20px}}
@media(prefers-reduced-motion:reduce){.ready .floral-bottom-left{transform:none!important}.ready .floral-bottom-right{transform:scaleX(-1)!important}.ready .floral-bottom-left-companion{transform:rotate(-8deg)!important}.ready .floral-bottom-right-companion{transform:scaleX(-1) rotate(-9deg)!important}.ribbon-shine{display:none}.ribbon-base{animation:none!important;filter:none}}
.ministry-motto{text-shadow:0 1px 3px #46223fba,0 0 12px #46223f65}

/* A gentle breeze moves the existing artwork without changing its composition. */
.floral-sway{--breeze-duration:19s;--breeze-delay:-3s;--breeze-lean:1.35deg;--breeze-lift:-3px;transform-origin:50% 91%}
.ready .floral-group .floral-sway{animation:flowers-in-the-breeze var(--breeze-duration) ease-in-out var(--breeze-delay) infinite;animation-direction:normal}
.floral-right .floral-sway{--breeze-duration:22s;--breeze-delay:-10s;--breeze-lean:1.1deg}
.floral-bottom-left .floral-sway{--breeze-duration:23s;--breeze-delay:-7s;--breeze-lean:1.5deg}
.floral-bottom-right .floral-sway{--breeze-duration:21s;--breeze-delay:-14s;--breeze-lean:1.4deg}
.floral-bottom-left-companion .floral-sway{--breeze-duration:18s;--breeze-delay:-11s;--breeze-lean:1.8deg;--breeze-lift:-4px}
.floral-bottom-right-companion .floral-sway{--breeze-duration:20s;--breeze-delay:-4s;--breeze-lean:1.65deg;--breeze-lift:-4px}
.ribbon-orbit,.ribbon-wave{position:absolute;transform-origin:50% 76%}
.ribbon-orbit{inset:-1.5%;--orbit-x:clamp(6px,.7vw,12px);--orbit-y:clamp(6px,1.1vh,11px)}
.ribbon-wave{inset:0}
.ready .ribbon-orbit{animation:ribbons-on-the-breeze 32s linear -7s infinite}
.ready .ribbon-wave{animation:organza-wave 18s ease-in-out -4s infinite}
.heaven-sparkles{position:absolute;inset:0;overflow:hidden;z-index:4;pointer-events:none}
.heaven-sparkle{position:absolute;left:var(--fall-x);top:0;width:var(--fall-size);height:100%;opacity:0}
.heaven-glimmer{position:absolute;top:-24px;left:0;width:var(--fall-size);height:var(--fall-size);border-radius:50%;background:#fff8da;box-shadow:0 0 5px #fff6cd,0 0 11px #fed98280}
.heaven-glint{border-radius:0;background:linear-gradient(#fffdf3,#ffe3a4);clip-path:polygon(50% 0,59% 40%,100% 50%,59% 60%,50% 100%,41% 60%,0 50%,41% 40%);filter:drop-shadow(0 0 3px #fff0ac)}
.ready .heaven-sparkle{animation:light-from-heaven var(--fall-duration) linear var(--fall-delay) infinite}
.ready .heaven-glimmer{animation:heaven-glimmer var(--glimmer-duration) ease-in-out var(--fall-delay) infinite}
@keyframes flowers-in-the-breeze{
 0%,100%{transform:rotate(calc(var(--breeze-lean)*-.65)) translate3d(-1px,0,0)}
 50%{transform:rotate(var(--breeze-lean)) translate3d(2px,var(--breeze-lift),0)}
}
@keyframes ribbons-on-the-breeze{
 0%,100%{transform:translate3d(var(--orbit-x),0,0) rotate(.35deg)}
 12.5%{transform:translate3d(calc(var(--orbit-x)*.707),calc(var(--orbit-y)*-.707),0) rotate(.15deg)}
 25%{transform:translate3d(0,calc(var(--orbit-y)*-1),0) rotate(-.15deg)}
 37.5%{transform:translate3d(calc(var(--orbit-x)*-.707),calc(var(--orbit-y)*-.707),0) rotate(-.35deg)}
 50%{transform:translate3d(calc(var(--orbit-x)*-1),0,0) rotate(-.4deg)}
 62.5%{transform:translate3d(calc(var(--orbit-x)*-.707),calc(var(--orbit-y)*.707),0) rotate(-.15deg)}
 75%{transform:translate3d(0,var(--orbit-y),0) rotate(.15deg)}
 87.5%{transform:translate3d(calc(var(--orbit-x)*.707),calc(var(--orbit-y)*.707),0) rotate(.35deg)}
}
@keyframes organza-wave{
 0%,100%{transform:translate3d(0,3px,0) scale(1.016,1.012) skewY(-.35deg)}
 50%{transform:translate3d(0,-5px,0) scale(1.008,1.035) skewY(.35deg)}
}
@keyframes light-from-heaven{
 0%{opacity:0;transform:translate3d(0,0,0)}
 8%{opacity:var(--fall-opacity)}
 25%{transform:translate3d(var(--fall-drift),25%,0)}
 50%{transform:translate3d(calc(var(--fall-drift)*.3),50%,0)}
 75%{transform:translate3d(calc(var(--fall-drift)*-.5),75%,0)}
 85%{opacity:var(--fall-opacity)}
 100%{opacity:0;transform:translate3d(0,calc(100% + 48px),0)}
}
@keyframes heaven-glimmer{0%,100%{opacity:.4;transform:scale(.75)}50%{opacity:1;transform:scale(1.1)}}
@media(max-width:650px){.floral-sway{--breeze-lift:-2px}.ribbon-orbit{--orbit-x:5px;--orbit-y:7px}}
@media(prefers-reduced-motion:reduce){.intro .floral-sway,.intro .ribbon-orbit,.intro .ribbon-wave{animation:none!important;transform:none!important}.heaven-sparkles{display:none}}

/* Local petal and leaf flex replaces the earlier rigid botanical sway. */
.wind-filter-definitions{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
.floral-flex-active .floral-sway>img{filter:var(--botanical-filter)}
.intro.floral-flex-active .floral-group .floral-sway{animation:none;transform:none}
@media(prefers-reduced-motion:reduce){.intro .floral-sway>img{filter:none!important}}

/* Only the original gold rim turns after the inside-out entrance completes. */
.logo-entrance{position:relative}
.logo-ring-motion{position:absolute;inset:0;display:block;pointer-events:none;transform-origin:50% 50%}
.logo-gold-ring{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block;mask-image:radial-gradient(circle closest-side,transparent 86%,#000 87.5%,#000 94.8%,transparent 95.8%);-webkit-mask-image:radial-gradient(circle closest-side,transparent 86%,#000 87.5%,#000 94.8%,transparent 95.8%)}
.logo-ring-light{position:absolute;inset:0;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 0 .6px #ffe7a0)}
.logo-ring-light circle{fill:none;stroke:#fff4bd;stroke-width:.35;stroke-linecap:round;stroke-dasharray:2.7 97.3;opacity:.8}
.ready .logo-ring-motion{animation:gold-ring-turn 28s linear 3.1s infinite}
@keyframes gold-ring-turn{from{transform:rotate(0)}to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.intro .logo-ring-motion{display:none}}

/* Intro ministry pillars. */
.intro-bottom p,.intro-bottom p strong{font-weight:700}
