:root{--paper:#efefef;--ink:#151515;--blue:#55b5d6}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:25px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.7 -apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo",sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}a:focus-visible,button:focus-visible{outline:3px solid #1786ac;outline-offset:5px}img{display:block;max-width:100%}.skip{position:absolute;top:-100px;z-index:100;background:white;padding:15px}.skip:focus{top:0}.topbar{height:56px;display:flex;align-items:center;justify-content:center;gap:30px;background:#e3e3e3;font-size:13px}header{height:114px;margin:auto;padding:0 48px;display:flex;align-items:center;justify-content:space-between}.logo{display:flex;align-items:center;gap:12px}.logo img{width:31px;height:42px}.logo b{font-size:22px;letter-spacing:-1.3px}header>div{display:flex;gap:32px;align-items:center}.pill{display:inline-flex;align-items:center;justify-content:center;background:var(--blue);border-radius:28px;padding:12px 26px;font-size:13px;min-height:42px;transition:background .2s,transform .2s}.pill:hover{background:#70c4de;transform:translateY(-2px)}.menu{display:flex;flex-direction:column;gap:8px;border:0;background:none;padding:8px 0}.menu span{height:2px;width:32px;background:#111}aside{position:fixed;inset:0 0 0 auto;background:#dbe5e8;width:min(540px,100%);z-index:100;padding:90px 55px;box-shadow:-20px 0 80px #0003}aside[hidden]{display:none}aside p{letter-spacing:3px;font-size:12px}aside a{display:block;font-size:clamp(25px,4vw,40px);font-weight:700;letter-spacing:-1.5px;padding:8px 0}.close{position:absolute;right:35px;top:25px;border:0;background:none;font-size:38px}.hero{margin:0 40px;min-height:690px;height:calc(100vh - 170px);position:relative;border-radius:18px;overflow:hidden;color:white}.hero>img{width:100%;height:100%;position:absolute;object-fit:cover}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#0009,#0001 75%)}.hero-content{position:relative;padding:20px 64px 50px;max-width:800px}.hero h1{font-size:clamp(43px,5.5vw,76px);line-height:1.17;letter-spacing:-4.5px;margin:0 0 22px;font-weight:800}.hero p{font-size:16px;line-height:1.6;color:#eee;margin:0 0 32px}.hero .pill{color:#141414;min-width:185px}.sample{position:absolute;right:20px;top:18px;font-size:10px;background:#0003;border-radius:20px;padding:4px 10px}.scroll{position:absolute;right:30px;bottom:25px;font-size:30px}.eyebrow{display:block;font-size:11px;letter-spacing:2.2px;text-transform:uppercase}.gather,.equip,.serve{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;margin:110px 7%}.gather h2,.equip h2,.serve h2{font-size:clamp(37px,4.8vw,65px);line-height:1.15;letter-spacing:-3px;margin:20px 0 28px}.gather>img{height:560px;width:100%;object-fit:cover;border-radius:16px}.gather p,.equip p,.serve p{color:#626262;max-width:420px}.times{margin:30px 0}.times>div{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid #c9c9c9;font-size:13px}.times span{color:#737373}.community{background:#dededc;padding:75px 7% 90px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:48px}.section-heading h2{font-size:clamp(34px,4.7vw,62px);line-height:1.17;letter-spacing:-3px;margin:0}.section-heading p{font-size:11px;letter-spacing:1px}.story-carousel{display:grid;grid-template-columns:1.1fr 1fr;gap:90px;align-items:center}.story-image img{height:510px;width:100%;object-fit:cover;border-radius:17px}.story-copy h3{font-size:36px;letter-spacing:-1.8px;line-height:1.3;margin:20px 0}.story-copy p{color:#555;margin-bottom:30px;max-width:420px}.text-link{font-size:12px;border-bottom:1px solid #444;padding-bottom:6px}.arrows{display:flex;align-items:center;gap:24px;margin-top:70px}.arrows button{border:1px solid #777;border-radius:50%;width:45px;height:45px;background:none;font-size:20px}.arrows span{font-size:11px;letter-spacing:2px}.equip>img{height:540px;width:100%;object-fit:cover;border-radius:16px}.serve{margin:0;padding:80px 7%;background:#e5edf0}.serve>img{height:500px;width:100%;object-fit:cover;border-radius:16px}.events{padding:100px 7%}.section-heading>a{font-size:12px;white-space:nowrap}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.card-art{height:310px;border-radius:14px;position:relative;overflow:hidden;padding:30px;font-size:clamp(28px,3.8vw,49px);line-height:1.05;font-weight:850;letter-spacing:-2px}.card-art>span{display:block;position:absolute;left:30px;bottom:25px;letter-spacing:2px;font-size:10px;font-weight:400}.blue{background:#54b4d4}.lime{background:#d5deae}.photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.65)}.photo b{position:relative;color:white}.cards h3{font-size:20px;margin:18px 0 5px;letter-spacing:-.6px}.cards p{color:#777;font-size:13px;margin:0}.visit{background:#54b4d4;padding:80px 7%}.visit h2{font-size:clamp(45px,7vw,92px);line-height:1.08;letter-spacing:-5px;margin:25px 0 35px}.visit>div{display:flex;justify-content:space-between;align-items:center;gap:30px}.visit p{font-size:14px}.visit .pill{background:#efefef;flex-shrink:0}footer{padding:70px 7% 30px;background:#dededc}.footer-top{display:grid;grid-template-columns:2fr 1fr 1fr;gap:30px;margin-bottom:60px}.footer-top h3{font-size:12px;margin:0 0 18px}.footer-top>div a{display:block;font-size:14px;margin:7px 0}footer>p{font-size:10px;color:#666;border-top:1px solid #bababa;padding-top:22px}.reveal{transition:opacity .8s ease,transform .8s ease}.reveal.pending{opacity:0;transform:translateY(25px)}@media(max-width:800px){.topbar{gap:18px;font-size:11px;height:45px}.topbar a:nth-child(4){display:none}header{height:90px;padding:0 24px}header>div{gap:18px}.logo b{font-size:20px}header .pill{padding:8px 18px;min-height:36px;font-size:11px}.hero{margin:0 18px;min-height:620px;height:75vh}.hero-content{padding:30px 28px}.hero h1{font-size:49px;letter-spacing:-2.8px}.hero p{font-size:14px}.gather,.equip{grid-template-columns:1fr;gap:35px;margin:65px 24px}.gather>img,.equip>img{height:370px}.gather h2,.equip h2,.serve h2{font-size:42px;letter-spacing:-2px}.community,.serve,.events,.visit{padding:60px 24px}.section-heading{display:block;margin-bottom:30px}.section-heading h2{font-size:38px;letter-spacing:-2px}.section-heading>a{display:inline-block;margin-top:15px}.story-carousel{grid-template-columns:1fr;gap:35px}.story-image img{height:360px}.story-copy h3{font-size:30px}.arrows{margin-top:30px}.serve{grid-template-columns:1fr;gap:35px}.serve>img{height:340px}.cards{grid-template-columns:1fr;gap:35px}.card-art{height:330px;font-size:60px}.visit h2{font-size:64px;letter-spacing:-3px}.visit>div{display:block}.visit .pill{margin-top:18px}.footer-top{grid-template-columns:1fr 1fr}.footer-top>.logo{grid-column:1/-1}footer{padding:45px 24px 25px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}.reveal.pending{opacity:1;transform:none}}
/* Full-width angled navigation, staggered entrance and scroll-linked images. */
body.menu-open{overflow:hidden}aside{inset:0;width:100%;height:min(740px,100dvh);padding:35px 40px 85px;background:#101418;color:#fff;box-shadow:none;clip-path:polygon(0 0,100% 0,100% 92%,0 100%);transform:translateY(-105%);transition:transform .75s cubic-bezier(.76,0,.24,1);overflow-y:auto}aside.open{transform:translateY(0)}aside.closing{transform:translateY(-105%)}.menu-top{display:flex;justify-content:space-between;align-items:center}.menu-top .close{position:static;color:white;font-size:48px;line-height:1}.menu-body{display:grid;grid-template-columns:.9fr 1.2fr;gap:85px;margin-top:75px}.menu-feature img{height:275px;width:100%;object-fit:cover}.menu-feature h3{font-size:21px;letter-spacing:-.6px}.menu-feature h3 span{float:right}.menu-directory>h2{font-size:32px;letter-spacing:-1px;margin:0}.menu-directory>p{font-size:14px;color:#b7bbbe;border-bottom:1px solid #75797b;padding-bottom:25px;margin:8px 0 30px}.menu-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.menu-columns h3{font-size:19px;color:#777d81;margin:0 0 10px}.menu-columns a{font-size:15px;letter-spacing:-.3px;padding:5px 0}.menu-body>*{opacity:0;transform:translateY(30px);transition:opacity .5s ease .25s,transform .65s ease .25s}aside.open .menu-body>*{opacity:1;transform:none}aside.open .menu-body>*:nth-child(2){transition-delay:.35s}header{transition:opacity .7s,transform .7s}.hero h1>span{display:block;animation:hero-line-in .9s cubic-bezier(.2,.8,.2,1) both}.hero h1>span:nth-child(2){animation-delay:.12s}.hero h1>span:nth-child(3){animation-delay:.24s}.hero h1>span:nth-child(4){animation-delay:.36s}.hero-content>p{animation:hero-line-in .8s ease .45s both}.hero-content>.pill{animation:hero-line-in .8s ease .6s both}@keyframes hero-line-in{from{opacity:0;transform:translateY(35px)}to{opacity:1;transform:none}}.hero>img{height:115%;top:-7.5%;will-change:transform;transform:translate3d(0,var(--photo-shift,0px),0) scale(1.04)}.gather>img,.equip>img,.serve>img{transform:translate3d(0,var(--photo-shift,0px),0);will-change:transform}.hero-content{transform:translate3d(0,var(--copy-shift,0px),0);will-change:transform}.reveal{transition:opacity .9s ease,transform 1s cubic-bezier(.16,1,.3,1)}.reveal.pending{transform:translateY(55px)}.story-image{overflow:hidden;border-radius:17px}.story-image img{transition:opacity .3s,transform .65s cubic-bezier(.2,.8,.2,1)}.story-copy>h3,.story-copy>p,.story-copy>.eyebrow{transition:opacity .25s,transform .35s}.arrows button,.events-controls button{transition:background .2s,transform .2s}.arrows button:hover,.events-controls button:hover{background:#55b5d6;transform:scale(1.08)}.cards{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:24px;scrollbar-width:none;padding-bottom:15px}.cards::-webkit-scrollbar{display:none}.cards>a{flex:0 0 calc((100% - 48px)/3);scroll-snap-align:start}.card-art{transition:transform .55s cubic-bezier(.2,.8,.2,1)}.events-controls{display:flex;align-items:center;justify-content:center;gap:24px;margin-top:30px}.events-controls button{border:1px solid #888;background:none;border-radius:50%;height:43px;width:43px;font-size:20px}.events-position{font-size:11px;letter-spacing:2px}@media(max-width:800px){aside{padding:24px 24px 65px;height:100dvh;clip-path:polygon(0 0,100% 0,100% 97%,0 100%)}.menu-body{grid-template-columns:1fr;gap:25px;margin-top:35px}.menu-feature img{height:180px}.menu-feature h3{font-size:17px;margin:10px 0}.menu-directory>h2{font-size:25px}.menu-directory>p{padding-bottom:15px;margin-bottom:20px}.menu-columns{gap:14px}.menu-columns h3{font-size:15px}.menu-columns a{font-size:13px}.cards>a{flex:0 0 85%}.cards{margin-right:-24px;padding-right:24px}.card-art{font-size:50px}.gather>img,.equip>img,.serve>img{transform:none}}
@media(prefers-reduced-motion:reduce){aside,.hero h1>span,.hero-content>p,.hero-content>.pill{animation:none!important;transition:none!important}.hero>img,.hero-content,.gather>img,.equip>img,.serve>img{transform:none!important}.reveal.pending{opacity:1;transform:none}}
@media(min-width:801px){.cards>a{flex-basis:38%}}
/* Match the reference's broad photo cards and full-width feature banner. */
.gather{display:block;margin:95px 48px}.gather-heading{display:flex;justify-content:space-between;align-items:center;gap:40px;margin-bottom:48px}.gather-heading h2{font-size:68px;line-height:1.05;margin:0;letter-spacing:-3.8px}.gather-heading p{font-size:17px;max-width:460px}.gather-options{display:grid;grid-template-columns:1fr 1fr;gap:32px}.gather-photo{position:relative;overflow:hidden;border-radius:12px}.gather-photo img{width:100%;height:530px;object-fit:cover;transition:transform .85s cubic-bezier(.16,1,.3,1)}.gather-card:hover img{transform:scale(1.045)}.gather-card h3{font-size:32px;line-height:1.2;letter-spacing:-1.5px;margin:28px 0 8px}.gather-card p{font-size:14px;margin:0}.location-arrow{position:absolute;right:25px;bottom:25px;border-radius:50%;width:50px;height:50px;background:#efefef;display:grid;place-items:center;font-size:25px;transform:translateY(12px);opacity:0;transition:transform .35s,opacity .35s}.gather-card:hover .location-arrow,.gather-card:focus-visible .location-arrow{transform:none;opacity:1}.community{margin:0 48px;padding:70px 6%;border-radius:24px;background:#e1e2d8}.community .section-heading>h2{font-size:65px}.story-carousel{grid-template-columns:1fr 1fr;gap:75px}.story-image img{height:470px}.equip{display:block;margin:80px 48px;position:relative;min-height:530px;border-radius:20px;overflow:hidden;background:linear-gradient(110deg,#292f3b,#bfd6e2 62%,#bfc1fa);padding:80px 8%;color:white}.equip>img{display:none}.equip>div:not(.equip-glow){position:relative;z-index:1;max-width:530px}.equip h2{font-size:72px;letter-spacing:-3px;margin:28px 0 14px}.equip p{color:white;max-width:465px;font-size:17px;margin-bottom:38px}.equip .eyebrow{font:18px/1.5 Georgia,serif;letter-spacing:0}.equip-glow{position:absolute;inset:-20%;background:radial-gradient(ellipse at 75% 30%,#d2e8fb99,transparent 50%);animation:ambient-drift 13s ease-in-out infinite alternate;pointer-events:none}@keyframes ambient-drift{to{transform:translate(-4%,5%) scale(1.12)}}.serve{background:transparent;padding:10px 9% 70px;gap:70px;grid-template-columns:1fr 1fr}.serve>div{order:2}.serve>img{order:1;height:570px}.events{padding:55px 48px 100px;overflow:hidden}.events .section-heading h2{font-size:60px;letter-spacing:-3px}.cards{overflow:auto;margin-right:-48px;padding-right:48px;gap:28px}.cards>a{flex-basis:40%}.card-art{height:390px;border-radius:13px}.events-controls{justify-content:flex-end}.visit{margin:0 48px 80px;border-radius:20px;padding:70px 8%;background:#e1e2d8}.visit h2{font-size:86px}.visit .pill{background:#55b5d6}.locations-toggle{font:inherit;border:0;background:transparent;padding:0}.locations-toggle:hover{text-decoration:underline}#locations-dialog{border:0;border-radius:18px;width:min(760px,90vw);padding:60px;background:#efefef;color:#151515}#locations-dialog::backdrop{background:#10141899;backdrop-filter:blur(6px)}#locations-dialog[open]{animation:location-in .45s cubic-bezier(.16,1,.3,1)}#locations-dialog h2{font-size:36px;line-height:1.25;letter-spacing:-1.5px}#locations-dialog>a{display:flex;justify-content:space-between;gap:20px;padding:22px 0;border-bottom:1px solid #aaa;font-size:20px;font-weight:700}#locations-dialog>a span{font-size:13px;font-weight:400}#locations-dialog>p{font-size:12px;color:#666}.locations-close{position:absolute;right:22px;top:15px;border:0;background:none;font-size:34px}@keyframes location-in{from{opacity:0;transform:translateY(25px) scale(.97)}to{opacity:1;transform:none}}footer{position:relative;overflow:hidden}footer:after{content:'PULPPURI';display:block;font-size:clamp(70px,16vw,210px);font-weight:850;letter-spacing:-.06em;line-height:1;margin-top:45px;color:#c4c4c0;pointer-events:none}@media(max-width:800px){.gather{margin:60px 24px}.gather-heading{display:block;margin-bottom:30px}.gather-heading h2{font-size:45px;letter-spacing:-2px}.gather-heading p{font-size:15px;margin-top:20px}.gather-options{gap:28px;grid-template-columns:1fr}.gather-photo img{height:370px}.gather-card h3{font-size:28px;margin-top:18px}.location-arrow{opacity:1;transform:none;width:40px;height:40px;right:18px;bottom:18px}.community{margin:0 18px;padding:45px 24px}.community .section-heading>h2{font-size:38px}.story-carousel{grid-template-columns:1fr;gap:30px}.story-image img{height:320px}.equip{margin:45px 18px;padding:55px 30px;min-height:450px}.equip h2{font-size:48px;letter-spacing:-2px}.equip p{font-size:15px}.serve{padding:15px 24px 45px;grid-template-columns:1fr;gap:30px}.serve>div{order:2}.serve>img{height:370px}.events{padding:35px 24px 55px}.events .section-heading h2{font-size:40px;letter-spacing:-2px}.cards{margin-right:-24px;padding-right:24px;gap:20px}.cards>a{flex-basis:86%}.card-art{height:350px}.visit{margin:0 18px 45px;padding:45px 30px}.visit h2{font-size:57px}.topbar .locations-toggle{font-size:11px}#locations-dialog{padding:45px 25px}#locations-dialog h2{font-size:28px}#locations-dialog>a{font-size:18px}#locations-dialog>a span{font-size:11px}}@media(prefers-reduced-motion:reduce){.equip-glow,#locations-dialog[open]{animation:none!important}}
/* Detail motion and accessible site search. */
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.menu-search{display:flex;align-items:center;gap:10px;margin-right:auto;margin-left:32px;border:1px solid #888;width:300px;max-width:40vw;height:40px;padding:0 12px}.menu-search input{border:0;background:none;color:white;min-width:0;width:100%;font:14px inherit;outline:none}.menu-search input::placeholder{color:#a9adb0}.menu-search button{border:0;background:none;color:white;font-size:25px}.menu-search-results{background:#1a2026;margin-top:25px;max-height:180px;overflow:auto;padding:12px 20px}.menu-search-results a{font-size:17px;letter-spacing:0;padding:7px 0}.menu-search-results p{color:#b9bec3;font-size:13px;margin:5px 0}.gather-photo{clip-path:inset(0);transition:clip-path 1.2s cubic-bezier(.16,1,.3,1)}.gather.pending .gather-photo{clip-path:inset(12% 0 12% 0)}.gather-card:nth-child(2) .gather-photo{transition-delay:.13s}.story-image,.serve>img{clip-path:inset(0);transition:clip-path 1.2s cubic-bezier(.16,1,.3,1)}.community.pending .story-image,.serve.pending>img{clip-path:inset(10% 0 10% 0)}.reveal .eyebrow,.reveal h2,.reveal h3,.reveal p,.reveal .pill{transition:opacity .75s ease,translate .9s cubic-bezier(.16,1,.3,1)}.reveal.pending .eyebrow,.reveal.pending h2,.reveal.pending h3,.reveal.pending p,.reveal.pending .pill{opacity:0;translate:0 24px}.reveal h2{transition-delay:.08s}.reveal h3{transition-delay:.13s}.reveal p{transition-delay:.17s}.reveal .pill{transition-delay:.23s}.cards{cursor:grab;touch-action:pan-x pan-y;user-select:none}.cards.dragging{cursor:grabbing;scroll-snap-type:none;scroll-behavior:auto}.cards.dragging>a{pointer-events:none}.cards img{pointer-events:none;-webkit-user-drag:none}.pill:active{transform:scale(.97)}.text-link{position:relative;border-bottom:0}.text-link:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:currentColor;transform-origin:left;transition:transform .35s}.text-link:hover:after{transform:scaleX(.6)}.footer-top a:not(.logo){transition:opacity .25s,translate .25s}.footer-top a:not(.logo):hover{opacity:.6;translate:4px 0}.scroll{animation:scroll-hint 2s ease-in-out infinite}@keyframes scroll-hint{0%,100%{transform:translateY(0)}50%{transform:translateY(8px)}}@media(max-width:800px){.menu-top{flex-wrap:wrap;gap:16px}.menu-top .close{margin-left:auto}.menu-search{order:3;margin:0;width:100%;max-width:none}.menu-body{margin-top:25px}.menu-search-results{margin-top:12px}.menu-directory>p{font-size:12px}.scroll{font-size:25px}}@media(prefers-reduced-motion:reduce){.scroll{animation:none}.reveal.pending .eyebrow,.reveal.pending h2,.reveal.pending h3,.reveal.pending p,.reveal.pending .pill{opacity:1;translate:none}.gather.pending .gather-photo,.community.pending .story-image,.serve.pending>img{clip-path:none}}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .8s ease}.hero-video.is-playing{opacity:1}.hero-video[hidden],.video-control[hidden]{display:none}.video-control{position:absolute;right:28px;top:24px;z-index:4;border:1px solid #ffffff70;border-radius:50%;background:#0004;color:white;width:38px;height:38px;font-size:15px}.hero-shade{pointer-events:none}.menu-columns a{position:relative;width:fit-content}.menu-columns a:after{content:"";position:absolute;bottom:5px;left:0;width:100%;height:1px;background:#ddd;transform:scaleX(0);transform-origin:left;transition:transform .3s ease}.menu-columns a:hover:after{transform:scaleX(1)}.menu-feature{overflow:hidden}.menu-feature img{transition:transform .7s cubic-bezier(.16,1,.3,1)}.menu-feature:hover img{transform:scale(1.035)}.gather-card h3{transition:translate .3s}.gather-card:hover h3{translate:4px 0}.events-controls button:disabled{opacity:.35;cursor:default}.reveal .cards>a:nth-child(2){transition-delay:.12s}.reveal .cards>a:nth-child(3){transition-delay:.24s}.cards>a{transition:opacity .8s,translate .8s cubic-bezier(.16,1,.3,1)}.events.pending .cards>a{opacity:0;translate:0 35px}@media(prefers-reduced-motion:reduce){.events.pending .cards>a{opacity:1;translate:none}.hero-video{display:none}}
/* Cinematic photo fallback when no church video is available. */
.hero-media-content>.hero-photo-layer{position:absolute;inset:-6%;width:112%;height:112%;object-fit:cover;opacity:0;transform:scale(1.04);transition:opacity 1.4s ease;will-change:opacity,transform;pointer-events:none;top:-6%}.hero-media-content>.hero-photo-layer.active{opacity:1;animation:photo-pan 7.5s ease-in-out both}.hero.photo-paused .hero-media-content>.hero-photo-layer{animation-play-state:paused}.hero.photo-banner .hero-media-content>.hero-photo-layer{translate:0 var(--photo-shift,0px)}@keyframes photo-pan{from{transform:scale(1.045) translate(-.5%,0)}to{transform:scale(1.11) translate(.6%,-.5%)}}.photo-banner .video-control{top:24px;right:24px}.photo-banner .sample{right:77px;top:30px}.hero-photo-progress{position:absolute;bottom:28px;left:64px;display:flex;gap:9px;z-index:3}.hero-photo-progress span{width:28px;height:2px;background:#ffffff55}.hero-photo-progress span.active{background:white}@media(max-width:800px){.hero-photo-progress{left:28px;bottom:20px}}@media(prefers-reduced-motion:reduce){.hero-media-content>.hero-photo-layer.active{animation:none;transform:none}.hero-media-content>.hero-photo-layer{transition:none}}
/* Browser scrolling is eased in JavaScript on desktop only. */
html.smooth-wheel{scroll-behavior:auto}body.menu-open main,body.menu-open header{pointer-events:none}.menu-top .close{transition:transform .3s ease}.menu-top .close:hover{transform:rotate(90deg)}#locations-dialog>a{transition:padding-left .3s,background .3s}#locations-dialog>a:hover{padding-left:8px;background:#e7e7e4}.gather-card:focus-visible .location-arrow{opacity:1;transform:none}.video-control{transition:background .25s,transform .25s}.video-control:hover{background:#0008;transform:scale(1.06)}.menu-search:focus-within{border-color:#55b5d6;box-shadow:0 0 0 1px #55b5d6}.menu-search-results a:hover{color:#55b5d6}@media(prefers-reduced-motion:reduce){.menu-top .close:hover{transform:none}}
.interior-hero{margin:0 40px;border-radius:18px;overflow:hidden;min-height:520px;position:relative;color:white;display:flex;align-items:center}.interior-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.interior-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#000a,#0002)}.interior-hero>div{position:relative;z-index:1;padding:65px;max-width:950px}.interior-hero h1{font-size:clamp(40px,5.3vw,72px);line-height:1.17;letter-spacing:-3.5px;margin:20px 0}.interior-hero p{max-width:600px;color:#eee}.interior-hero>small{position:absolute;right:22px;top:20px;z-index:2;font-size:10px}.interior-content{padding:85px 7%}.interior-content h2{font-size:50px;line-height:1.25;letter-spacing:-2px;margin:20px 0}.interior-content>p{max-width:650px;color:#626262}.value-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin:50px 0}.value-grid article{border-top:1px solid #999;padding-top:25px}.value-grid span{font-size:11px;letter-spacing:1px}.value-grid h3{font-size:25px;letter-spacing:-1px}.value-grid p{font-size:15px;color:#666}.interior-note{font-size:12px!important;color:#777!important;margin-top:40px}.schedule{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin:40px 0}.schedule article{background:#deded8;padding:35px;border-radius:16px}.schedule h3{font-size:27px;margin:0}.schedule p{font-size:22px;margin:10px 0}.schedule span{font-size:12px;color:#777}.visit-faq{max-width:850px;margin:35px 0}.visit-faq details{border-bottom:1px solid #aaa;padding:23px 0}.visit-faq summary{cursor:pointer;font-size:22px;font-weight:700}.visit-faq p{color:#666;max-width:720px}.interior-next{padding:55px 7%;background:#e1e2d8;display:flex;align-items:center;gap:30px;flex-wrap:wrap}.interior-next h2{font-size:35px;margin-right:auto}.interior-next>a:last-child{font-size:13px}.interior-menu{padding-top:45px;display:grid;grid-template-columns:1fr 1fr;gap:15px}.interior-menu a{font-size:35px}.visit-faq details[open] p{animation:hero-line-in .3s ease}.interior-content{animation:hero-line-in .65s ease both}@media(max-width:800px){.interior-hero{margin:0 18px;min-height:460px}.interior-hero>div{padding:35px 26px}.interior-hero h1{font-size:42px;letter-spacing:-2px}.interior-content{padding:55px 24px}.interior-content h2{font-size:36px}.value-grid,.schedule{grid-template-columns:1fr}.interior-next{padding:35px 24px;gap:20px}.interior-next h2{width:100%;font-size:30px}.interior-menu{grid-template-columns:1fr}.interior-menu a{font-size:28px}.visit-faq summary{font-size:19px}}@media(prefers-reduced-motion:reduce){.interior-content,.visit-faq details[open] p{animation:none}}
.news-links{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;margin-top:40px}.news-links>a{background:#e0e2d8;border-radius:15px;padding:32px;display:flex;flex-direction:column;min-height:260px;transition:transform .3s}.news-links>a:nth-child(2){background:#d9e6ec}.news-links>a:nth-child(3){background:#e6dfd2}.news-links>a:hover{transform:translateY(-5px)}.news-links span{font-size:11px;letter-spacing:2px}.news-links h3{font-size:27px;letter-spacing:-1px;margin:22px 0 8px}.news-links p{font-size:14px;color:#626262}.news-links b{font-size:13px;margin-top:auto;padding-top:20px}@media(max-width:800px){.news-links{grid-template-columns:1fr}}
body{transition:opacity .22s ease}body.page-leaving{opacity:0;pointer-events:none}a[aria-current="page"]:not(.logo){color:#258aae}.menu-columns a[aria-current="page"]{color:#55b5d6}.visit-faq summary{list-style:none;position:relative;padding-right:35px}.visit-faq summary::-webkit-details-marker{display:none}.visit-faq summary:after{content:'+';position:absolute;right:2px;top:0;font-size:27px;font-weight:400;transition:transform .25s}.visit-faq details[open] summary:after{transform:rotate(45deg)}.visit-faq details[open] p{animation:hero-line-in .35s ease}.interior-hero>div{animation:hero-line-in .8s cubic-bezier(.16,1,.3,1) both}.interior-hero img{animation:interior-image-settle 1.4s cubic-bezier(.16,1,.3,1) both}@keyframes interior-image-settle{from{transform:scale(1.035)}to{transform:scale(1)}}@media(prefers-reduced-motion:reduce){body{transition:none}.interior-hero>div,.interior-hero img,.visit-faq details[open] p{animation:none}}

/* Compact layouts retain readable navigation and generous touch targets. */
@media(max-width:800px){
 aside{height:100dvh;max-height:100dvh;clip-path:none;padding:24px 24px max(32px,env(safe-area-inset-bottom));overscroll-behavior:contain}
 .menu-body{display:flex;flex-direction:column-reverse;gap:28px}
 .menu-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 18px}
 .menu-columns a{padding:10px 0;min-height:44px;font-size:16px}
 .menu-columns h3{font-size:15px;margin-bottom:4px}
 .menu-directory>h2{font-size:28px}.menu-directory>p{margin-bottom:22px;padding-bottom:18px}
 .menu-feature img{height:180px;border-radius:12px}.menu-feature h3{font-size:17px}
 .menu-top .logo b{font-size:20px}.menu-top .logo img{width:26px;height:35px}
 .menu-top .close,.menu-search button{min-width:44px;min-height:44px}
 .arrows button,.events-controls button{min-width:44px;min-height:44px}
 .hero{min-height:590px;height:auto}.hero-content{padding-top:50px;padding-bottom:95px}
 .hero h1{font-size:clamp(35px,6.6vw,49px);letter-spacing:-2px}
 .story-image img{height:clamp(240px,65vw,390px)}
 .gather-photo img,.serve>img{height:clamp(280px,80vw,440px)}
 .card-art{height:clamp(280px,75vw,350px)}
 .visit h2{font-size:clamp(43px,9vw,64px)}
}
@media(max-width:380px){header{padding:0 18px}header>div{gap:12px}header .pill{padding:8px 12px}.logo b{font-size:18px}.hero-content{padding-left:22px;padding-right:22px}.menu-columns{gap:18px 12px}.menu-columns a{font-size:14px}}
.detail-reveal{transition:opacity .75s ease,translate .9s cubic-bezier(.16,1,.3,1)}
.detail-reveal.pending{opacity:0;translate:0 28px}
@media(hover:hover){.news-links>a:hover b{translate:5px 0}.news-links b{transition:translate .3s}.gather-card:focus-visible h3{translate:4px 0}}
@media(prefers-reduced-motion:reduce){.detail-reveal.pending{opacity:1;translate:none}}

.hero-photo-progress{bottom:16px;gap:4px}.hero-photo-progress button{position:relative;width:40px;height:44px;border:0;background:transparent;padding:0;color:white}.hero-photo-progress button:after{content:"";position:absolute;left:6px;right:6px;top:21px;height:2px;background:#ffffff55;transition:background .3s,transform .3s}.hero-photo-progress button.active:after{background:white;transform:scaleY(2)}.hero-photo-progress button:hover:after{background:white}.hero-photo-progress button:focus-visible{outline:2px solid white;outline-offset:-2px;border-radius:5px}@media(max-width:800px){.hero-photo-progress{bottom:8px}}

.hero.photo-banner{touch-action:pan-y pinch-zoom}.hero-photo-progress button:focus-visible:after{background:white;transform:scaleY(2)}

/* Worship: broad photo cards and an uncluttered first-visit guide. */
.worship-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin-bottom:50px}.worship-heading h2{margin-bottom:0}.worship-heading>p{max-width:420px;color:#666}.worship-services{display:grid;grid-template-columns:1fr 1fr;gap:32px}.worship-services article{min-width:0}.service-photo{position:relative;overflow:hidden;border-radius:16px}.service-photo img{width:100%;height:390px;object-fit:cover;transition:transform 1s cubic-bezier(.16,1,.3,1)}.service-photo>span{position:absolute;right:16px;bottom:14px;color:white;background:#0005;padding:3px 10px;border-radius:20px;font-size:10px}.service-copy{padding:30px 5px}.service-copy h3{font-size:36px;letter-spacing:-1.5px;line-height:1.2;margin:16px 0}.service-copy .service-time{font-size:23px;color:#151515;margin:0 0 8px}.service-example{display:inline-block;font-size:11px;padding:4px 10px;background:#deded8;border-radius:20px}.service-copy>p:not(.service-time){max-width:460px;color:#666;margin:24px 0}.worship-welcome{margin:0 40px 80px;border-radius:18px;background:#e1e2d8;padding:70px 6%;display:grid;grid-template-columns:1fr 1fr;gap:70px}.worship-welcome h2{font-size:54px;line-height:1.2;letter-spacing:-2px;margin:20px 0}.worship-welcome p{color:#626262}.worship-welcome .pill{margin-top:15px}.worship-welcome ol{list-style:none;padding:0;margin:0}.worship-welcome li{display:flex;gap:22px;border-top:1px solid #b9bbb1;padding:22px 0}.worship-welcome li>span{font-size:12px;padding-top:7px}.worship-welcome h3{font-size:23px;margin:0;letter-spacing:-.8px}.worship-welcome li p{font-size:14px;margin:10px 0 0}@media(hover:hover){.worship-services article:hover img{transform:scale(1.035)}}@media(max-width:800px){.worship-heading{display:block;margin-bottom:32px}.worship-heading>p{margin-top:24px;font-size:14px}.worship-services{grid-template-columns:1fr;gap:25px}.service-photo img{height:clamp(260px,75vw,420px)}.service-copy{padding:24px 2px}.service-copy h3{font-size:30px}.service-copy .service-time{font-size:21px}.worship-welcome{margin:0 18px 45px;padding:42px 26px;grid-template-columns:1fr;gap:35px}.worship-welcome h2{font-size:40px}.worship-welcome h3{font-size:21px}}

/* First visit: warm imagery, preparation cards and a two-column FAQ. */
.visit-introduction{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.visit-introduction>div>p{max-width:460px;color:#666;margin:25px 0 32px}.visit-photo{position:relative;border-radius:16px;overflow:hidden}.visit-photo img{width:100%;height:460px;object-fit:cover}.visit-photo>span{position:absolute;bottom:18px;right:18px;color:white;background:#0005;padding:3px 10px;border-radius:20px;font-size:10px}.visit-planning{margin:0 40px;padding:65px 6%;background:#e1e2d8;border-radius:18px}.visit-section-title h2{font-size:clamp(36px,4vw,56px);line-height:1.2;letter-spacing:-2px;margin:18px 0 30px}.visit-plan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:35px;margin-top:45px}.visit-plan-grid article{border-top:1px solid #acafa3;padding-top:24px;display:flex;flex-direction:column;align-items:flex-start}.visit-plan-grid h3{font-size:27px;letter-spacing:-1px;margin:18px 0 0}.visit-plan-grid p{color:#626262;font-size:15px;margin:16px 0 25px}.visit-plan-grid small{display:block;font-size:11px;color:#626262;margin-top:18px}.visit-questions{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px;padding:90px 7%}.visit-questions .visit-faq{margin:0;width:100%;min-width:0}.visit-questions .visit-section-title p{color:#666;font-size:14px}.visit-questions .visit-faq details:first-child{border-top:1px solid #aaa}.visit-questions .visit-faq summary{font-size:20px}.visit-questions .visit-faq p{font-size:15px;padding-right:24px}@media(max-width:800px){.visit-introduction{grid-template-columns:1fr;gap:35px}.visit-photo img{height:clamp(260px,70vw,400px)}.visit-planning{margin:0 18px;padding:42px 26px}.visit-plan-grid{grid-template-columns:1fr;gap:30px;margin-top:30px}.visit-plan-grid h3{font-size:25px}.visit-questions{padding:55px 24px;grid-template-columns:1fr;gap:25px}.visit-questions .visit-faq summary{font-size:18px}}

/* Alternating community and serving stories. */
.feature-intro>p{max-width:680px}.feature-index-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:45px}.feature-index{position:relative;background:#e1e2d8;border-radius:15px;padding:30px;min-height:175px;transition:background .3s}.feature-index:nth-child(2){background:#dbe5eb}.feature-index:nth-child(3){background:#e5dfd4}.feature-index h3{font-size:27px;letter-spacing:-1px;margin:25px 25px 0 0}.feature-index-arrow{position:absolute;right:25px;bottom:25px;font-size:24px;transition:translate .3s}.feature-rows{padding:0 7% 90px}.feature-row{display:grid;grid-template-columns:1.1fr 1fr;gap:80px;align-items:center;margin-bottom:85px;scroll-margin-top:35px}.feature-row:last-child{margin-bottom:0}.feature-row:nth-child(even){grid-template-columns:1fr 1.1fr}.feature-row:nth-child(even) .feature-row-photo{order:2}.feature-row-photo{position:relative;border-radius:18px;overflow:hidden}.feature-row-photo img{width:100%;height:460px;object-fit:cover}.feature-row-photo small{position:absolute;right:18px;bottom:16px;font-size:10px;color:white;background:#0005;padding:3px 10px;border-radius:20px}.feature-row-copy h2{font-size:clamp(34px,3.7vw,53px);line-height:1.2;letter-spacing:-2px;margin:22px 0}.feature-row-copy p{color:#666;margin:0 0 30px;max-width:450px}@media(hover:hover){.feature-index:hover{background:#cddde1}.feature-index:hover .feature-index-arrow{translate:0 5px}}@media(max-width:800px){.feature-index-grid{grid-template-columns:1fr;gap:14px;margin-top:30px}.feature-index{min-height:125px;padding:24px}.feature-index h3{font-size:24px;margin-top:16px}.feature-rows{padding:0 24px 55px}.feature-row,.feature-row:nth-child(even){grid-template-columns:1fr;gap:28px;margin-bottom:55px}.feature-row:nth-child(even) .feature-row-photo{order:0}.feature-row-photo img{height:clamp(260px,75vw,400px)}.feature-row-copy h2{font-size:36px}.feature-row-copy p{font-size:15px}}

.about-opening>p{max-width:730px}.about-statement{margin:0 40px;background:linear-gradient(115deg,#3b65bb,#7fa8d5 65%,#b4bbdb);color:white;border-radius:18px;padding:75px 7%;overflow:hidden}.about-statement h2{font-size:clamp(43px,5.8vw,80px);line-height:1.15;letter-spacing:-3px;margin:25px 0}.about-statement p{color:#ffffffd9}.about-values{display:grid;grid-template-columns:1fr 1fr;gap:80px;padding:90px 7%;align-items:center}.about-values-photo{position:relative;border-radius:18px;overflow:hidden}.about-values-photo img{width:100%;height:620px;object-fit:cover}.about-values-photo small{position:absolute;bottom:18px;right:18px;background:#0005;color:white;border-radius:20px;padding:3px 10px;font-size:10px}.about-values h2{font-size:48px;line-height:1.2;letter-spacing:-2px;margin:20px 0 30px}.about-values article{display:flex;gap:22px;border-top:1px solid #bbb;padding:20px 0}.about-values article>span{font-size:11px;padding-top:7px}.about-values h3{font-size:24px;margin:0}.about-values article p{font-size:15px;color:#666;margin:8px 0 0}.about-values .text-link{display:inline-block;margin-top:20px}.editorial-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:45px}.editorial-photo{position:relative;border-radius:15px;overflow:hidden;margin-bottom:24px}.editorial-photo img{width:100%;height:320px;object-fit:cover;transition:transform .9s cubic-bezier(.16,1,.3,1)}.editorial-photo small{position:absolute;top:16px;left:16px;background:#0005;color:white;font-size:10px;border-radius:20px;padding:3px 10px}.editorial-photo>span{position:absolute;right:18px;bottom:18px;background:white;border-radius:50%;width:44px;height:44px;display:grid;place-items:center;font-size:22px;transition:translate .3s}.editorial-card h3{font-size:26px;line-height:1.3;letter-spacing:-1px;margin:15px 0}.editorial-card p{font-size:14px;color:#666}.news-status{margin-top:65px;border-top:1px solid #bbb;padding-top:30px}.news-status h3{font-size:27px;letter-spacing:-1px}.news-status p{color:#666;font-size:15px}@media(hover:hover){.editorial-card:hover img{transform:scale(1.04)}.editorial-card:hover .editorial-photo>span{translate:3px -3px}}@media(max-width:800px){.about-statement{margin:0 18px;padding:45px 28px}.about-statement h2{letter-spacing:-2px}.about-values{grid-template-columns:1fr;padding:55px 24px;gap:35px}.about-values-photo img{height:clamp(280px,85vw,430px)}.about-values h2{font-size:37px}.editorial-grid{grid-template-columns:1fr;gap:35px}.editorial-photo img{height:clamp(260px,75vw,420px)}.editorial-card h3{font-size:25px}.news-status{margin-top:40px}}

/* Shared closing section and image reveals across all pages. */
.footer-invitation{display:flex;justify-content:space-between;align-items:center;gap:40px;padding-bottom:50px;margin-bottom:50px;border-bottom:1px solid #bcbcb6}.footer-invitation h2{font-size:clamp(32px,4vw,54px);line-height:1.2;letter-spacing:-2px;margin:18px 0 0}.footer-invitation .pill{flex-shrink:0}.footer-brand>p{font-size:13px;color:#626262;margin-top:22px}.footer-top nav h3{font-size:12px;margin:0 0 18px}.footer-top nav a{display:block;font-size:14px;margin:7px 0;width:fit-content;transition:translate .25s,opacity .25s}.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:25px;border-top:1px solid #bababa;padding-top:22px}.footer-bottom p{font-size:10px;color:#666;margin:0}.back-to-top{font-size:12px;white-space:nowrap;min-height:44px;display:flex;align-items:center}.footer-top{margin-bottom:40px}.service-photo,.feature-row-photo,.visit-photo,.about-values-photo,.editorial-photo{clip-path:inset(0 round 16px);transition:clip-path 1.1s cubic-bezier(.16,1,.3,1)}.detail-reveal.pending .service-photo,.feature-row-photo.pending,.visit-photo.pending,.about-values-photo.pending,.detail-reveal.pending .editorial-photo{clip-path:inset(8% 0 round 16px)}@media(hover:hover){.footer-top nav a:hover{translate:4px 0;opacity:.65}.back-to-top:hover{color:#258aae}}@media(max-width:800px){.footer-invitation{display:block;padding-bottom:35px;margin-bottom:35px}.footer-invitation .pill{margin-top:25px}.footer-top{grid-template-columns:1fr 1fr;gap:30px}.footer-brand{grid-column:1/-1}.footer-bottom{align-items:flex-start}.footer-bottom p{max-width:230px;line-height:1.7}.back-to-top{min-height:30px}}@media(prefers-reduced-motion:reduce){.detail-reveal.pending .service-photo,.feature-row-photo.pending,.visit-photo.pending,.about-values-photo.pending,.detail-reveal.pending .editorial-photo{clip-path:none}}

.service-shortcuts{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 32px}.service-shortcuts a{border:1px solid #bfc0b9;border-radius:30px;padding:10px 20px;min-height:44px;font-size:13px;transition:background .25s,border-color .25s}.service-shortcuts a:hover,.service-shortcuts a:focus-visible{background:#dce8ec;border-color:#76b2c5}#sunday-service,#midweek-service,#first-visit{scroll-margin-top:35px}.service-shortcuts a[aria-current="location"]{background:#55b5d6;border-color:#55b5d6;color:#151515}@media(max-width:800px){.service-shortcuts{gap:8px}.service-shortcuts a{padding:10px 15px;font-size:12px}}

/* Page orientation and compact landscape screens. */
.page-location{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 40px;padding:0 8px 20px;font-size:12px;color:#666}.page-location ol{list-style:none;display:flex;align-items:center;gap:14px;padding:0;margin:0}.page-location li+li:before{content:'/';color:#999;margin-right:14px}.page-location span[aria-current]{color:#151515}.page-location a{display:inline-flex;align-items:center;min-height:35px}.page-location a:hover{color:#258aae}.menu{min-height:44px;min-width:44px;justify-content:center;align-items:center}.menu span{transition:width .3s ease}.menu span:nth-child(2){width:24px;align-self:flex-end;margin-right:6px}.menu:focus-visible span:nth-child(2){width:32px}.interior-hero>img{object-position:center}.menu-search input{font-family:inherit;font-size:16px}.menu-search-results a{min-height:44px}.menu-search-results{overscroll-behavior:contain}@media(hover:hover){.menu:hover span:nth-child(2){width:32px}}@media(max-width:800px){.page-location{margin:0 18px;padding:0 6px 15px;font-size:11px}.page-location .location-next{font-size:11px}.interior-hero{min-height:420px}}@media(max-height:550px) and (orientation:landscape){aside{height:100dvh;clip-path:none;padding:18px 28px 35px}.menu-body{margin-top:25px;gap:30px}.menu-feature img{height:150px}.menu-directory>p{margin-bottom:15px;padding-bottom:12px}.hero{height:auto;min-height:460px}.hero-content{padding-top:35px;padding-bottom:70px}.hero h1{font-size:42px;letter-spacing:-2px}.hero-content>p{font-size:13px;margin-bottom:20px}.interior-hero{min-height:330px}.interior-hero>div{padding:35px}.interior-hero h1{font-size:40px}.interior-hero p{font-size:14px}}@media(prefers-reduced-motion:reduce){.menu span{transition:none}}

.feature-section-nav{position:sticky;top:0;z-index:20;display:flex;justify-content:center;gap:8px;margin:0 7% 35px;padding:12px 16px;background:#efefeff2;backdrop-filter:blur(12px);border-top:1px solid #d0d0c9;border-bottom:1px solid #d0d0c9}.feature-section-nav a{display:inline-flex;align-items:center;gap:10px;justify-content:center;border-radius:25px;padding:10px 22px;min-height:44px;font-size:14px;transition:background .25s,color .25s}.feature-section-nav a span{font-size:10px;color:#666}.feature-section-nav a[aria-current="location"]{background:#55b5d6;color:#151515}.feature-index[aria-current="location"]{box-shadow:inset 0 0 0 2px #55b5d6}.feature-row{scroll-margin-top:105px}@media(hover:hover){.feature-section-nav a:hover{background:#dce8ec}}@media(max-width:800px){.feature-section-nav{margin:0 18px 30px;gap:4px;padding:10px 4px;justify-content:space-between}.feature-section-nav a{font-size:12px;padding:10px 9px;gap:5px}.feature-section-nav a span{font-size:9px}.feature-row{scroll-margin-top:95px}}@media(max-width:360px){.feature-section-nav a span{display:none}}

/* Related pages keep the next step close to the story. */
.related-pages{margin:0 40px 70px;padding:60px 5%;background:#e1e2d8;border-radius:18px}.related-heading h2{font-size:clamp(34px,4vw,54px);line-height:1.2;letter-spacing:-2px;margin:18px 0 35px}.related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.related-card{display:flex;flex-direction:column;border-radius:14px;background:#efefef;overflow:hidden}.related-photo{position:relative;overflow:hidden}.related-photo img{width:100%;height:220px;object-fit:cover;transition:transform .8s cubic-bezier(.16,1,.3,1)}.related-photo small{position:absolute;right:14px;bottom:12px;background:#0005;color:white;padding:3px 10px;border-radius:20px;font-size:10px}.related-copy{padding:25px}.related-copy h3{display:flex;justify-content:space-between;gap:16px;font-size:23px;line-height:1.3;letter-spacing:-1px;margin:16px 0}.related-copy h3 span{transition:translate .3s}.related-copy p{font-size:14px;color:#666;margin:0}.related-card:focus-visible{outline-offset:5px}@media(hover:hover){.related-card:hover img{transform:scale(1.045)}.related-card:hover h3 span{translate:3px -3px}}@media(max-width:800px){.related-pages{margin:0 18px 45px;padding:40px 24px}.related-grid{grid-template-columns:1fr;gap:22px}.related-photo img{height:clamp(210px,60vw,330px)}.related-copy{padding:24px}.related-copy h3{font-size:24px}.related-heading h2{font-size:35px}}

/* Reserve photo space while local assets are decoded. */
.service-photo,.feature-row-photo,.visit-photo,.about-values-photo,.editorial-photo,.related-photo,.gather-photo,.story-image{background:#d8dad5}.service-photo img,.feature-row-photo img,.visit-photo img,.about-values-photo img,.editorial-photo img,.related-photo img{display:block}.feature-row[tabindex="-1"]:focus,#main[tabindex="-1"]:focus,.worship-welcome[tabindex="-1"]:focus,.worship-services article[tabindex="-1"]:focus{outline:none}.feature-row:focus-visible .feature-row-copy h2,.worship-services article:focus-visible h3{color:#258aae}@media(prefers-reduced-motion:reduce){.hero h1>span,.hero-content>p,.hero-content>.pill{animation:none!important}.hero>img,.hero-content{transform:none!important;translate:none!important}.equip-glow{animation:none!important}}

.menu-search .search-clear[hidden]{display:none}.menu-search .search-clear{font-size:23px;color:#b7c0c5;min-width:28px;padding:0;flex-shrink:0}.menu-search button[type="submit"]{flex-shrink:0}.menu-search-results a:focus-visible{outline:2px solid #55b5d6;outline-offset:-2px;background:#25333d;color:#85d6ef}.menu-search-results a{padding-left:8px;padding-right:8px;border-radius:4px}

/* Gentle depth on desktop photos; keep mobile imagery still. */
@media(min-width:801px) and (prefers-reduced-motion:no-preference){.interior-hero>img{translate:0 var(--interior-photo-offset,0px);scale:1.06}.feature-row-photo img,.about-values-photo img,.visit-photo img{translate:0 var(--interior-photo-offset,0px);scale:1.085}.related-card,.editorial-card{isolation:isolate}.related-card .related-photo,.editorial-card .editorial-photo{transform:translateZ(0)}}
@media(prefers-reduced-motion:reduce){.interior-hero>img,.feature-row-photo img,.about-values-photo img,.visit-photo img{translate:none;scale:none}}

.events-controls[hidden]{display:none}

.footer-top nav:nth-child(2){transition-delay:.08s}.footer-top nav:nth-child(3){transition-delay:.16s}.footer-invitation .pill{transition:background .25s,transform .3s}.footer-top nav a{position:relative;padding-bottom:3px}.footer-top nav a:after{content:"";position:absolute;bottom:0;left:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s}.footer-top nav a:focus-visible:after{transform:scaleX(1)}@media(hover:hover){.footer-top nav a:hover:after{transform:scaleX(1)}}@media(prefers-reduced-motion:reduce){.footer-top nav{transition-delay:0}}

html{scrollbar-gutter:stable}.story-carousel{touch-action:pan-y pinch-zoom}.menu-search input::-webkit-search-cancel-button{display:none}.menu-search input:focus-visible{outline:none}.menu-search:focus-within{outline:2px solid #55b5d6;outline-offset:3px}.service-shortcuts a,.feature-section-nav a{-webkit-tap-highlight-color:transparent}.pill,.menu,.arrows button,.events-controls button{touch-action:manipulation}@media(prefers-reduced-motion:reduce){.gather,.equip,.serve{--photo-shift:0px!important}.hero{--photo-shift:0px!important;--copy-shift:0px!important}.gather>img,.equip>img,.serve>img{transform:none!important}}

.visit-contact{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px;padding:70px 7% 0}.visit-contact h2{font-size:clamp(36px,4vw,56px);line-height:1.2;letter-spacing:-2px;margin:18px 0 25px}.visit-contact p{font-size:14px;color:#666}.visit-contact dl{margin:0;min-width:0}.visit-contact dl>div{display:grid;grid-template-columns:110px 1fr;gap:24px;border-top:1px solid #bbb;padding:24px 0}.visit-contact dt{font-size:13px;font-weight:700}.visit-contact dd{font-size:15px;color:#626262;margin:0;white-space:pre-line;overflow-wrap:anywhere}.visit-contact dd a{text-decoration:underline;text-underline-offset:4px}@media(max-width:800px){.visit-contact{grid-template-columns:1fr;gap:25px;padding:55px 24px 0}.visit-contact dl>div{grid-template-columns:85px 1fr;gap:15px}.visit-contact dd{font-size:14px}}

/* Menu items follow the panel entrance, with a quicker exit. */
#menu .menu-columns>div{opacity:0;translate:0 12px;transition:opacity .28s ease,translate .35s cubic-bezier(.16,1,.3,1)}
#menu.open .menu-columns>div{opacity:1;translate:0 0;transition-duration:.55s,.65s;transition-delay:.3s}
#menu.open .menu-columns>div:nth-child(2){transition-delay:.38s}
#menu.open .menu-columns>div:nth-child(3){transition-delay:.46s}
#menu .menu-feature h3{transition:opacity .3s,translate .4s;opacity:0;translate:0 10px}
#menu.open .menu-feature h3{opacity:1;translate:0 0;transition-delay:.4s}
#menu .menu-columns a:focus-visible{outline-color:#8ad5ee;border-radius:3px}
#menu .menu-top .close{width:48px;height:48px;display:grid;place-items:center;border-radius:50%}
#menu .menu-top .close:focus-visible{outline-color:#8ad5ee}
@media(max-width:800px){#menu.open .menu-columns>div{transition-delay:.2s}#menu.open .menu-columns>div:nth-child(2){transition-delay:.26s}#menu.open .menu-columns>div:nth-child(3){transition-delay:.32s}}
@media(prefers-reduced-motion:reduce){#menu .menu-columns>div,#menu .menu-feature h3{opacity:1;translate:none;transition:none}}

/* The navigation retains its rising diagonal lower edge. */
#menu{height:min(740px,100dvh);max-height:100dvh;clip-path:polygon(0 0,100% 0,100% 92%,0 100%);border-radius:0;padding-bottom:max(85px,env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain}

/* Reference-style giving and updates sections, with connection status visible. */
.giving-intro{display:grid;grid-template-columns:1.05fr 1fr;gap:80px;align-items:center;padding:30px 7% 70px}.giving-photo{position:relative;overflow:hidden;border-radius:18px}.giving-photo img{width:100%;height:500px;object-fit:cover}.giving-photo small{position:absolute;bottom:18px;right:18px;background:#0005;color:white;padding:3px 10px;border-radius:20px;font-size:10px}.giving-intro h2,.updates-intro h2{font-size:clamp(38px,4.8vw,65px);line-height:1.15;letter-spacing:-2.5px;margin:22px 0 28px}.giving-intro p{max-width:470px;color:#626262}.connection-note{display:inline-block;color:#626262;font-size:12px;padding:10px 0;border-bottom:1px solid #aaa;margin-top:14px}.updates-intro{padding:80px 7%;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.updates-intro p{color:#626262}.updates-panel{border-top:1px solid #aaa;border-bottom:1px solid #aaa;padding:35px 0}.updates-panel h3{font-size:28px;letter-spacing:-1px;line-height:1.3;margin:22px 0}.updates-panel p{font-size:15px;max-width:400px}
#menu{height:min(740px,100dvh);clip-path:polygon(0 0,100% 0,100% calc(100% - 58px),0 100%);transition:transform .75s cubic-bezier(.76,0,.24,1)}
@media(max-width:800px){.giving-intro{grid-template-columns:1fr;gap:32px;padding:20px 24px 45px}.giving-photo img{height:clamp(280px,75vw,420px)}.giving-intro h2,.updates-intro h2{font-size:42px;letter-spacing:-2px}.updates-intro{padding:45px 24px;grid-template-columns:1fr;gap:35px}.updates-panel h3{font-size:25px}#menu{height:100dvh;clip-path:polygon(0 0,100% 0,100% calc(100% - 30px),0 100%);padding-bottom:70px}}
@media(prefers-reduced-motion:reduce){#menu{transition:none}}

.optional-link[hidden],.connection-note[hidden]{display:none}.giving-intro .optional-link,.updates-panel .optional-link{margin-top:18px}

.contact-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:25px}.contact-actions[hidden],.contact-actions [hidden]{display:none}.address-copy{border:1px solid #aaa;border-radius:28px;padding:10px 22px;min-height:44px;font-size:13px;background:transparent;transition:background .25s}.address-copy:hover{background:#dce8ec}.contact-feedback:empty{display:none}.contact-feedback{font-size:12px!important;margin-top:14px}

/* First arrival: photo reveal, masked title lines, then supporting copy. */
@media(prefers-reduced-motion:no-preference){
 .entrance-pending .hero,.entrance-pending .interior-hero{opacity:0}
 .entrance-pending header,.entrance-pending .topbar,.entrance-pending .page-location{opacity:0}
 .entrance-playing header,.entrance-playing .topbar,.entrance-playing .page-location{animation:entry-header .7s cubic-bezier(.16,1,.3,1) both}
 .entrance-playing .hero,.entrance-playing .interior-hero{animation:entry-banner 1.15s cubic-bezier(.16,1,.3,1) both}
 .entrance-playing .hero-content,.entrance-playing .interior-hero>div{animation:none}
 .entrance-playing h1>span{display:block;animation:entry-title .95s cubic-bezier(.16,1,.3,1) var(--line-delay,350ms) both}
 .entrance-playing .hero-content>p,.entrance-playing .interior-hero>div>p{animation:entry-copy .75s ease .8s both}
 .entrance-playing .hero-content>.pill{animation:entry-copy .75s ease 1s both}
 .entrance-playing .interior-hero>div>.eyebrow{animation:entry-copy .7s ease .25s both}
}
@keyframes entry-header{from{opacity:0;translate:0 -12px}to{opacity:1;translate:0 0}}
@keyframes entry-banner{from{opacity:0;clip-path:inset(7% 3% round 30px);translate:0 28px}to{opacity:1;clip-path:inset(0 round 18px);translate:0 0}}
@keyframes entry-title{from{opacity:0;clip-path:inset(100% 0 0);transform:translateY(32px)}to{opacity:1;clip-path:inset(0);transform:translateY(0)}}
@keyframes entry-copy{from{opacity:0;translate:0 18px}to{opacity:1;translate:0 0}}

/* Persist the final title layout and suppress older entrance animations. */
.interior-hero h1>span{display:block}
.entrance-managed .hero h1>span,.entrance-managed .hero-content>p,.entrance-managed .hero-content>.pill,.entrance-managed .interior-hero>div,.entrance-managed .interior-hero>img{animation:none}
.entrance-managed.entrance-playing .hero h1>span,.entrance-managed.entrance-playing .interior-hero h1>span{animation:entry-title .95s cubic-bezier(.16,1,.3,1) var(--line-delay,350ms) both}
.entrance-managed.entrance-playing .hero-content>p,.entrance-managed.entrance-playing .interior-hero>div>p{animation:entry-copy .75s ease .8s both}
.entrance-managed.entrance-playing .hero-content>.pill{animation:entry-copy .75s ease 1s both}
@media(prefers-reduced-motion:reduce){.entrance-managed.entrance-playing .hero h1>span,.entrance-managed.entrance-playing .interior-hero h1>span,.entrance-managed.entrance-playing .hero-content>p,.entrance-managed.entrance-playing .interior-hero>div>p,.entrance-managed.entrance-playing .hero-content>.pill{animation:none}}

.visit-faq details[open] p{animation:none}.visit-faq summary{transition:color .25s}.visit-faq summary:hover,.visit-faq summary:focus-visible{color:#258aae}.visit-faq details[open] summary{color:#258aae}.visit-faq p{line-height:1.8}
/* Smooth content expansion where native details animation is supported. */
@supports(interpolate-size:allow-keywords){.visit-faq{interpolate-size:allow-keywords}.visit-faq details::details-content{block-size:0;overflow:clip;transition:block-size .35s cubic-bezier(.16,1,.3,1),content-visibility .35s;transition-behavior:allow-discrete}.visit-faq details[open]::details-content{block-size:auto}}
@media(prefers-reduced-motion:reduce){.visit-faq details::details-content{transition:none}}

.worship-content .service-shortcuts{position:sticky;top:0;z-index:20;background:#efefeff2;backdrop-filter:blur(12px);padding:12px 0;border-bottom:1px solid #d0d0c9}.worship-content .worship-services article{scroll-margin-top:95px}.worship-welcome{scroll-margin-top:95px}.worship-services article:target .service-photo{box-shadow:0 0 0 3px #55b5d6}.service-photo{transition:clip-path 1.1s cubic-bezier(.16,1,.3,1),box-shadow .3s}

/* Align entrance pacing with the reference's shorter circular easing. */
@media(prefers-reduced-motion:no-preference){
 .entrance-managed.entrance-playing .hero h1>span,.entrance-managed.entrance-playing .interior-hero h1>span{animation-duration:.8s;animation-timing-function:cubic-bezier(.65,0,.35,1)}
 .entrance-playing .hero,.entrance-playing .interior-hero{animation-duration:.9s;animation-timing-function:cubic-bezier(.65,0,.35,1)}
 .entrance-managed.entrance-playing .hero-content>p,.entrance-managed.entrance-playing .interior-hero>div>p{animation-duration:.55s;animation-delay:.65s}
 .entrance-managed.entrance-playing .hero-content>.pill{animation-duration:.55s;animation-delay:.8s}
 .detail-reveal,.reveal{transition-duration:.6s,.8s;transition-timing-function:ease,cubic-bezier(.65,0,.35,1)}
 .gather-photo,.story-image,.serve>img,.service-photo,.feature-row-photo,.visit-photo,.about-values-photo,.editorial-photo{transition-duration:.8s;transition-timing-function:cubic-bezier(.65,0,.35,1)}
}

/* About-page statement lines follow the section reveal. */
.statement-lines>span{display:block;transition:opacity .6s,translate .8s cubic-bezier(.65,0,.35,1),clip-path .8s cubic-bezier(.65,0,.35,1)}.statement-lines>span:nth-child(2){transition-delay:.06s}.statement-lines>span:nth-child(3){transition-delay:.12s}.about-statement.pending .statement-lines>span{opacity:0;translate:0 28px;clip-path:inset(100% 0 0)}.about-values article:nth-of-type(2){transition-delay:.06s}.about-values article:nth-of-type(3){transition-delay:.12s}.about-values-photo{clip-path:inset(0 round 18px)}.about-values-photo.pending{clip-path:inset(9% 0 round 18px)}@media(prefers-reduced-motion:reduce){.statement-lines>span{transition:none}.about-statement.pending .statement-lines>span{opacity:1;translate:none;clip-path:none}.about-values-photo.pending{clip-path:none}}

/* Reveal images through a mask without also sliding the entire image frame. */
.detail-reveal.photo-reveal{translate:none;opacity:1;transition:clip-path .8s cubic-bezier(.65,0,.35,1)}.detail-reveal.photo-reveal.pending{translate:none;opacity:1;clip-path:inset(9% 0 round 18px)}.detail-reveal.photo-reveal:not(.pending){clip-path:inset(0 round 18px)}.about-statement.detail-reveal{translate:none}.about-statement.pending>p{opacity:0;translate:0 18px}.about-statement>p{transition:opacity .55s ease .22s,translate .7s cubic-bezier(.65,0,.35,1) .22s}.about-statement>.eyebrow{transition:opacity .4s}.about-statement.pending>.eyebrow{opacity:0}@media(prefers-reduced-motion:reduce){.detail-reveal.photo-reveal.pending{clip-path:none}.about-statement.pending>p,.about-statement.pending>.eyebrow{opacity:1;translate:none}}

/* Home sections use a stable frame with staggered copy and photo reveals. */
.gather.reveal,.community.reveal,.serve.reveal,.giving-intro.reveal,.events.reveal,.updates-intro.reveal{transform:none}.gather.reveal.pending,.community.reveal.pending,.serve.reveal.pending,.giving-intro.reveal.pending,.events.reveal.pending,.updates-intro.reveal.pending{opacity:1;transform:none}.gather-heading h2,.community .section-heading h2,.serve h2,.giving-intro h2,.events .section-heading h2,.updates-intro h2{transition:opacity .6s ease,translate .8s cubic-bezier(.65,0,.35,1),clip-path .8s cubic-bezier(.65,0,.35,1)}.reveal.pending h2{clip-path:inset(100% 0 0)}.reveal:not(.pending) h2{clip-path:inset(0)}.gather.pending .gather-photo{clip-path:inset(9% 0 round 16px)}.gather-card h3{transition-delay:.16s}.gather-card:nth-child(2) h3{transition-delay:.22s}.gather-card:nth-child(2) p{transition-delay:.28s}.community.pending .story-copy{opacity:0;translate:0 20px}.story-copy{transition:opacity .6s ease .15s,translate .8s cubic-bezier(.65,0,.35,1) .15s}.giving-photo{clip-path:inset(0 round 18px);transition:clip-path .8s cubic-bezier(.65,0,.35,1)}.giving-intro.pending .giving-photo{clip-path:inset(9% 0 round 18px)}.updates-panel{transition:opacity .6s ease .2s,translate .8s cubic-bezier(.65,0,.35,1) .2s}.updates-intro.pending .updates-panel{opacity:0;translate:0 24px}@media(prefers-reduced-motion:reduce){.reveal.pending h2,.gather.pending .gather-photo,.giving-intro.pending .giving-photo{clip-path:none}.community.pending .story-copy,.updates-intro.pending .updates-panel{opacity:1;translate:none}}

/* Keep the outgoing photo's scale during the complete crossfade. */
.hero-media-content>.hero-photo-layer.active{animation:none}.hero-media-content>.hero-photo-layer.photo-moving{animation:photo-continuous-pan 9s linear both}.hero.photo-paused .hero-media-content>.hero-photo-layer.photo-moving{animation-play-state:paused}@keyframes photo-continuous-pan{from{transform:scale(1.045) translate(-.5%,0)}to{transform:scale(1.105) translate(.5%,-.4%)}}@media(prefers-reduced-motion:reduce){.hero-media-content>.hero-photo-layer.photo-moving{animation:none}}

/* A diagonal curtain joins page changes to the navigation panel's shape. */
body{transition:none}body.page-leaving{opacity:1;pointer-events:none}body:before{content:"";position:fixed;inset:-60px 0;z-index:250;background:#101418;clip-path:polygon(0 0,100% 60px,100% 100%,0 100%);translate:0 110%;pointer-events:none;visibility:hidden}body.page-leaving:before{visibility:visible;animation:page-curtain-in .45s cubic-bezier(.65,0,.35,1) both}@keyframes page-curtain-in{from{translate:0 110%}to{translate:0 0}}@media(prefers-reduced-motion:reduce){body:before{display:none}body.page-leaving:before{animation:none}}

/* Sky-blue opening curtain, shown before the first rendered page content. */
html:after{content:"";position:fixed;inset:-70px 0;z-index:350;background:#55b5d6;pointer-events:none;visibility:hidden;translate:0 -110%;clip-path:polygon(0 0,100% 0,100% calc(100% - 60px),0 100%)}
html.entrance-pending:after{visibility:visible;translate:0 0}
html.entrance-cover-leaving:after{visibility:visible;animation:opening-blue-curtain .8s cubic-bezier(.65,0,.35,1) both}
@keyframes opening-blue-curtain{from{translate:0 0}to{translate:0 -110%}}
@media(prefers-reduced-motion:reduce){html:after{display:none}}

/* Both navigation and first arrival use the same sky-blue curtain. */
body:before{background:#55b5d6}body.page-leaving:before{animation-duration:.55s}

/* Prepare the page underneath the opening curtain to avoid exposed blank frames. */
.entrance-managed.entrance-playing .hero,.entrance-managed.entrance-playing .interior-hero{animation-name:entry-banner-ready;animation-duration:.8s}
@keyframes entry-banner-ready{from{opacity:1;clip-path:inset(0 round 18px);translate:0 14px}to{opacity:1;clip-path:inset(0 round 18px);translate:0 0}}

html.entrance-cover-leaving:after{animation-duration:var(--opening-cover-duration,800ms)}.entrance-managed.entrance-playing .hero-content>p,.entrance-managed.entrance-playing .interior-hero>div>p{animation-delay:.85s}.entrance-managed.entrance-playing .hero-content>.pill{animation-delay:1s}

.entrance-managed.entrance-playing .hero-content>p,.entrance-managed.entrance-playing .interior-hero>div>p{animation-delay:var(--opening-copy-delay,850ms)}.entrance-managed.entrance-playing .hero-content>.pill{animation-delay:var(--opening-button-delay,1000ms)}

/* Interrupting the opening leaves fully visible, usable content. */
.entrance-managed:not(.entrance-pending):not(.entrance-playing) .hero,.entrance-managed:not(.entrance-pending):not(.entrance-playing) .interior-hero{opacity:1}.entrance-managed:not(.entrance-pending):not(.entrance-playing) h1>span{clip-path:none}

/* Matching diagonal edges on the covering and uncovering curtains. */
body:before{inset:-70px 0;clip-path:polygon(0 60px,100% 0,100% 100%,0 100%)}
html:after{clip-path:polygon(0 0,100% 0,100% calc(100% - 60px),0 100%)}
@media(max-width:800px){body:before{inset:-40px 0;clip-path:polygon(0 30px,100% 0,100% 100%,0 100%)}html:after{inset:-40px 0;clip-path:polygon(0 0,100% 0,100% calc(100% - 30px),0 100%)}}

/* Final entrance timings are supplied by the shared motion configuration. */
@media(prefers-reduced-motion:no-preference){.entrance-managed.entrance-playing .hero h1>span,.entrance-managed.entrance-playing .interior-hero h1>span{animation-duration:var(--opening-title-duration,800ms)}.entrance-managed.entrance-playing .hero-content>p,.entrance-managed.entrance-playing .interior-hero>div>p,.entrance-managed.entrance-playing .hero-content>.pill{animation-duration:var(--opening-copy-duration,550ms)}}

/* Direct section links bypass legacy first-load animations as well. */
.entrance-managed:not(.entrance-playing) .interior-hero>div,.entrance-managed:not(.entrance-playing) .interior-hero>img{animation:none}

/* Follow the visitor's chosen direction when changing a story. */
@media(prefers-reduced-motion:no-preference){}


.story-carousel .arrows button[aria-disabled="true"]{opacity:.45;cursor:wait}

/* Reference audit: first-load blue screen fades, rather than sliding away. */
html:after{inset:0;clip-path:none;translate:none;background:#00b7e3;opacity:0}
html.entrance-pending:after{opacity:1;translate:none}
html.entrance-cover-leaving:after{translate:none;animation:opening-reference-fade calc(var(--opening-cover-duration,500ms)*.5) cubic-bezier(.65,0,.35,1) var(--opening-cover-hold,1000ms) both}
html:before{content:"";position:fixed;inset:0;z-index:351;background:url('images/brand/pulppuri-logo.svg') center/64px 86px no-repeat;opacity:0;visibility:hidden;pointer-events:none}
html.entrance-pending:before{visibility:visible;opacity:1}
html.entrance-cover-leaving:before{visibility:visible;animation:opening-reference-fade calc(var(--opening-cover-duration,500ms)*.5) cubic-bezier(.65,0,.35,1) calc(var(--opening-cover-hold,1000ms) + var(--opening-cover-duration,500ms)*.5) both}
@keyframes opening-reference-fade{from{opacity:1}to{opacity:0}}
body:before{inset:0;clip-path:none;translate:none;background:#00b7e3;opacity:0}
body.page-leaving:before{animation:page-reference-fade .4s cubic-bezier(.65,0,.35,1) both}
@keyframes page-reference-fade{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){html:before,html:after,body:before{display:none}}

/* Internal navigation uncovers promptly; a fresh visit keeps the opening hold. */
html.entrance-from-navigation:before{background:none}html.entrance-from-navigation.entrance-cover-leaving:after{animation-duration:.4s;animation-delay:0s}

/* The church mark remains visible while the shared blue screen changes pages. */
body:after{content:"";position:fixed;inset:0;z-index:251;background:url('images/brand/pulppuri-logo.svg') center/64px 86px no-repeat;opacity:0;visibility:hidden;pointer-events:none}
body.page-leaving:after{visibility:visible;animation:page-reference-fade .3s cubic-bezier(.65,0,.35,1) .15s both}
html.entrance-from-navigation:before{background:url('images/brand/pulppuri-logo.svg') center/64px 86px no-repeat}
@media(max-width:800px){html:before,body:after{background-size:52px 70px}}
@media(prefers-reduced-motion:reduce){body:after{display:none}}

/* Reference arrival uses the blue fade without moving the banner frame. */
.entrance-managed.entrance-playing .hero,.entrance-managed.entrance-playing .interior-hero{animation:none;opacity:1;translate:none;clip-path:inset(0 round 18px)}
.entrance-playing header,.entrance-playing .topbar,.entrance-playing .page-location{animation:reference-header-in .3s ease 1s both}
.entrance-from-navigation.entrance-playing header,.entrance-from-navigation.entrance-playing .topbar,.entrance-from-navigation.entrance-playing .page-location{animation-delay:.4s}
@keyframes reference-header-in{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.entrance-playing header,.entrance-playing .topbar,.entrance-playing .page-location{animation:none}}

/* Hero title characters use the reference's 0.01-second stagger. */
.entry-character{display:inline-block}.entrance-managed.entrance-playing h1.entry-character-title>span{animation:none;clip-path:none}.entrance-playing .entry-character{animation:reference-character-in .4s cubic-bezier(.65,0,.35,1) var(--character-delay,1400ms) both}@keyframes reference-character-in{from{opacity:0;transform:translateY(25%)}to{opacity:1;transform:translateY(0)}}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.pill{transform:translate(var(--magnet-x,0px),var(--magnet-y,0px));transition:transform .22s ease,background .25s}.pill:hover{transform:translate(var(--magnet-x,0px),var(--magnet-y,0px))}.topbar:has(a:hover) a:not(:hover){opacity:.35}.topbar a{transition:opacity .3s}}
.entrance-playing .topbar a{animation:reference-header-in .3s ease 1.4s both}.entrance-playing .topbar a:nth-child(2){animation-delay:1.5s}.entrance-playing .topbar a:nth-child(3){animation-delay:1.6s}.entrance-playing .topbar a:nth-child(4){animation-delay:1.7s}
@media(prefers-reduced-motion:reduce){.entrance-playing .entry-character,.entrance-playing .topbar a{animation:none}.pill{transform:none!important}}

/* Retain readable title wrapping while character spans animate. */
.entry-character-title>span{white-space:normal;overflow-wrap:normal;word-break:keep-all}.entry-character{vertical-align:baseline}.entrance-playing .entry-character-title{overflow:visible}.entrance-managed:not(.entrance-playing) .entry-character{opacity:1;transform:none}

/* Compact translucent navigation appears after the opening section. */
.header-spacer[hidden]{display:none}.header-pinned>header{position:fixed;top:0;left:0;width:100%;margin:0;z-index:40;height:80px;background:#efefeff0;backdrop-filter:blur(14px);border-bottom:1px solid #d4d5ce;animation:pinned-header-in .35s cubic-bezier(.16,1,.3,1) both}.header-pinned .feature-section-nav,.header-pinned .worship-content .service-shortcuts{top:80px}.header-pinned .feature-row,.header-pinned #sunday-service,.header-pinned #midweek-service,.header-pinned #first-visit{scroll-margin-top:175px}@keyframes pinned-header-in{from{opacity:0;translate:0 -100%}to{opacity:1;translate:0 0}}@media(max-width:800px){.header-pinned>header{height:72px}.header-pinned .feature-section-nav,.header-pinned .worship-content .service-shortcuts{top:72px}.header-pinned .feature-row,.header-pinned #sunday-service,.header-pinned #midweek-service,.header-pinned #first-visit{scroll-margin-top:165px}}@media(prefers-reduced-motion:reduce){.header-pinned>header{animation:none}}

/* Keep anchored content below the compact navigation. */
html{scroll-padding-top:100px}#main{scroll-margin-top:0}.header-pinned .page-location{scroll-margin-top:100px}@media(max-width:800px){html{scroll-padding-top:90px}}

@media(prefers-reduced-motion:no-preference){.entrance-playing .entry-character{animation-duration:var(--opening-character-duration,400ms)}}

/* Supporting copy follows the reference's 0.03-second word stagger. */
.entry-copy-word{display:inline-block}.entrance-managed.entrance-playing .hero-content>p.entry-copy-words,.entrance-managed.entrance-playing .interior-hero>div>p.entry-copy-words{animation:none}.entrance-playing .entry-copy-word{animation:reference-word-in var(--opening-copy-duration,550ms) cubic-bezier(.65,0,.35,1) var(--word-delay,1800ms) both}@keyframes reference-word-in{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.entrance-playing .entry-copy-word{animation:none}}

/* Scroll padding and target margins must not count the header twice. */
html{scroll-padding-top:0px}.hero~section[id]{scroll-margin-top:100px}#main{scroll-margin-top:0px}.feature-row{scroll-margin-top:105px}.header-pinned .feature-row{scroll-margin-top:175px}.header-pinned #sunday-service,.header-pinned #midweek-service,.header-pinned #first-visit{scroll-margin-top:175px}@media(max-width:800px){html{scroll-padding-top:0px}.hero~section[id]{scroll-margin-top:90px}.feature-row{scroll-margin-top:95px}.header-pinned .feature-row,.header-pinned #sunday-service,.header-pinned #midweek-service,.header-pinned #first-visit{scroll-margin-top:165px}}

/* A permanent rounded mask clips moving photo layers, including WebKit composites. */
#main>.hero,#main>.interior-hero{border-radius:18px;overflow:hidden;isolation:isolate;clip-path:inset(0 round 18px);-webkit-mask-image:-webkit-radial-gradient(white,black)}
.entrance-managed.entrance-playing #main>.hero,.entrance-managed.entrance-playing #main>.interior-hero{clip-path:inset(0 round 18px)}

/* Reference audit: corner logo, clipped text rise and a second media reveal. */
@media(min-width:768px){html:before,body:after{background-position:48px calc(100% - 48px);background-size:96px 110px}}
@media(min-width:1024px){html:before,body:after{background-position:96px calc(100% - 96px)}}
.entry-character-title>span{overflow:hidden;padding-bottom:.09em;margin-bottom:-.09em}
@keyframes reference-character-in{from{opacity:1;transform:translateY(132%)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:no-preference){
 .entrance-playing .hero-media-content>.hero-photo-layer.photo-moving{animation:photo-continuous-pan 9s linear both,reference-media-reveal .6s cubic-bezier(.65,0,.35,1) 1.7s both}
 .entrance-playing .hero-media-content>.hero-video{animation:reference-media-reveal .6s cubic-bezier(.65,0,.35,1) 1.7s both}
}
@keyframes reference-media-reveal{from{scale:.6;translate:0 -12%}to{scale:1;translate:0 0}}

/* A second curtain belongs to the hero, distinct from the full-screen loader. */
.hero{background:#20252a}
.hero:before{content:"";position:absolute;inset:0;z-index:1;background:#00b7e3;pointer-events:none;translate:0 -101%;visibility:hidden}
@media(prefers-reduced-motion:no-preference){
 .entrance-pending .hero:before{visibility:visible;translate:0 0}
 .entrance-playing .hero:before{visibility:visible;animation:reference-hero-cover .8s cubic-bezier(.65,0,.35,1) var(--opening-media-cover-delay,1100ms) both}
 .entrance-playing .hero-media-content>.hero-photo-layer.photo-moving{animation:photo-continuous-pan 9s linear both,reference-media-reveal .6s cubic-bezier(.65,0,.35,1) var(--opening-media-delay,1700ms) both}
 .entrance-playing .hero-media-content>.hero-video{animation:reference-media-reveal .6s cubic-bezier(.65,0,.35,1) var(--opening-media-delay,1700ms) both}
}
.hero-content{z-index:2}.hero>.sample,.hero>.scroll{z-index:3}
@keyframes reference-hero-cover{from{translate:0 0}to{translate:0 -101%}}
@media(prefers-reduced-motion:reduce){.hero:before{display:none}}

/* Entry scale is independent of the continuous photo pan, avoiding a restart. */
@media(prefers-reduced-motion:no-preference){.entrance-playing .hero-media-content>.hero-photo-layer.photo-moving{animation:photo-continuous-pan 9s linear both}.entrance-playing .hero-media-content>.hero-video{animation:none}.entrance-playing .hero.photo-paused .hero-media-content>.hero-photo-layer.photo-moving{animation-play-state:paused}}

/* Reference proportions: centered hero copy and a single-column city introduction. */
#main>.hero{display:flex;align-items:center;min-height:620px;height:calc(100svh - 202px)}.hero-content{padding-top:45px;padding-bottom:65px;max-width:820px}.hero-content>p{max-width:390px;font-size:18px;line-height:1.4}.gather-heading{display:block;max-width:760px}.gather-heading>p{max-width:650px;margin-top:25px;font-size:18px;line-height:1.5}.giving-intro{grid-template-columns:1.25fr 1fr}.giving-intro h2{font-size:clamp(54px,7vw,96px);line-height:1.02;letter-spacing:-3px}.giving-photo img{height:580px}.updates-intro{border-top:1px solid #d0d0c9;margin:0 48px;padding-left:0;padding-right:0}@media(max-width:800px){#main>.hero{height:auto;min-height:620px}.hero-content{padding:50px 28px 95px}.hero-content>p{font-size:15px;max-width:330px}.gather-heading>p{font-size:15px}.giving-intro{grid-template-columns:1fr}.giving-intro h2{font-size:54px;letter-spacing:-2px}.giving-photo img{height:clamp(280px,75vw,420px)}.updates-intro{margin:0 24px}}@media(max-height:550px) and (orientation:landscape){#main>.hero{min-height:460px}.hero-content{padding-top:35px;padding-bottom:70px}}

/* Reference sequencing: base rises, blue cover passes, media expands. */
.hero:after{content:"";position:absolute;inset:0;z-index:0;background:#20252a;pointer-events:none;visibility:hidden}
@media(prefers-reduced-motion:no-preference){.entrance-playing .hero:after{visibility:visible;animation:reference-hero-base .7s cubic-bezier(.65,0,.35,1) var(--opening-base-delay,1000ms) both}.entrance-playing .hero:before{animation:reference-hero-cover .8s cubic-bezier(.65,0,.35,1) var(--opening-media-cover-delay,1100ms) both}}
@keyframes reference-hero-base{from{translate:0 101%}to{translate:0 0}}
@keyframes reference-hero-cover{0%{translate:0 101%}50%{translate:0 0}100%{translate:0 -101%}}
.hero-media-content>.hero-photo-layer,.hero-media-content>.hero-video{z-index:0}.hero>.hero-shade{z-index:1}.hero:before{z-index:2}.hero-content{z-index:3}.hero>.sample,.hero>.scroll,.hero-photo-progress,.hero>.video-control{z-index:4}
/* The base is behind the media; the entry base must not conceal the photograph. */
.hero:after{z-index:-1}
@media(prefers-reduced-motion:reduce){.hero:after{display:none}}


/* The curtain remains visible while the separate photographic content is hidden. */
.hero-media{position:absolute;inset:0;z-index:1;overflow:hidden;border-radius:inherit;isolation:isolate}
.hero-media-content{position:absolute;inset:0;overflow:hidden;border-radius:inherit}
.hero-media-content>img:not(.hero-photo-layer){position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-media-content>.hero-photo-layer{max-width:none}
.hero-media-content>.hero-shade{position:absolute;inset:0;z-index:1;pointer-events:none}
.hero-media-curtain{position:absolute;inset:0;z-index:2;background:#00b7e3;pointer-events:none;display:none}
.hero:before{content:none!important}.hero:after{z-index:0}.hero-content{z-index:3}
@media(prefers-reduced-motion:no-preference){
 .entrance-pending .hero,.entrance-playing .hero{background:transparent}
 .entrance-pending .hero-media{scale:.6;translate:0 -12%}
 .entrance-pending .hero-media-content{opacity:0}
 .entrance-playing .hero-media-content{opacity:0}
 .entrance-playing .hero-media-curtain{display:block;animation:entry-curtain-in .4s var(--opening-circ-ease,cubic-bezier(.785,0,.215,1)) calc(var(--opening-base-delay,1000ms) + 100ms) both,entry-curtain-out .4s var(--opening-circ-ease,cubic-bezier(.785,0,.215,1)) calc(var(--opening-base-delay,1000ms) + 500ms) forwards}
 .entrance-playing .hero:after,.entrance-playing .entry-character{animation-timing-function:var(--opening-circ-ease,cubic-bezier(.785,0,.215,1))}
}
@keyframes entry-frame-visible{from{opacity:0}to{opacity:1}}
@keyframes entry-curtain-in{from{translate:0 101%}to{translate:0 0}}
@keyframes entry-curtain-out{from{translate:0 0}to{translate:0 -101%}}

/* The reference supporting copy and action fade without vertical displacement. */
@keyframes reference-copy-fade{from{opacity:0}to{opacity:.7}}
@keyframes reference-action-fade{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:no-preference){
 .entrance-managed.entrance-playing .entry-copy-word{animation:reference-copy-fade .3s cubic-bezier(.455,.03,.515,.955) var(--word-delay,1550ms) both}
 .entrance-managed.entrance-playing .hero-content>.pill{animation:reference-action-fade .3s cubic-bezier(.455,.03,.515,.955) var(--opening-button-delay,1900ms) both}
}

.hero:after{background:#262626}
@media(prefers-reduced-motion:no-preference){.entrance-playing .hero>.sample,.entrance-playing .hero>.video-control,.entrance-playing .hero>.scroll,.entrance-playing .hero>.hero-photo-progress{animation:reference-action-fade .3s ease 2.3s both}}

.hero-media-curtain,.hero:after{border-radius:inherit}

/* Fine polish: continuous acceleration through the curtain and frame handoff. */
@media(prefers-reduced-motion:no-preference){
 .entrance-playing .hero-media{will-change:scale,translate;backface-visibility:hidden}
 .entrance-playing .hero-media-curtain{animation-duration:.44s,.44s;animation-delay:calc(var(--opening-base-delay,1000ms) + 100ms),calc(var(--opening-base-delay,1000ms) + 540ms);animation-timing-function:cubic-bezier(.76,0,.24,1),cubic-bezier(.76,0,.24,1)}
 .entrance-managed.entrance-playing .entry-character{animation-duration:var(--opening-character-duration,400ms);animation-timing-function:var(--opening-circ-ease,cubic-bezier(.785,0,.215,1))}
 .entrance-managed.entrance-playing .entry-copy-word,.entrance-managed.entrance-playing .hero-content>.pill{animation-duration:.3s}
}

/* Preserve the final text tone when temporary entrance classes are removed. */
.entry-copy-word{opacity:.7}

/* Menu comparison: a unified panel over the reference's 25-percent scrim. */
.menu-backdrop{position:fixed;inset:0;z-index:99;background:rgb(0 0 0 / 25%);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .5s ease,visibility 0s .5s}
body.menu-open .menu-backdrop{opacity:1;visibility:visible;transition-delay:0s}
#menu{background:#101316;transition:transform .7s cubic-bezier(.87,0,.13,1)}
#menu:not(.open){transition-timing-function:cubic-bezier(.16,1,.3,1)}
#menu .menu-body>*{opacity:1;transform:none;transition:none}
@media(min-width:1024px){
 #menu{height:calc(80svh + 28px);padding-top:32px}
 #menu .menu-body{grid-template-columns:40% minmax(0,1fr);gap:96px;align-items:center;margin-top:96px}
 #menu .menu-feature img{height:auto;aspect-ratio:16/9}
 #menu .menu-feature h3{margin-top:24px}
 #menu .menu-directory>p{letter-spacing:0}
}
@media(prefers-reduced-motion:reduce){.menu-backdrop,#menu{transition:none}}

/* The reference city cards are visible immediately and zoom on hover. */
.gather-photo{border-radius:12px;clip-path:inset(0 round 12px);transition:none}
.gather-photo img{height:400px;transition:transform .5s cubic-bezier(.785,0,.215,1)}
@media(min-width:1024px){.gather-photo img{height:640px}}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.gather-card:hover .gather-photo img{transform:scale(1.1)}}

/* Direct comparison of the leadership-shaped church story panel. */
.community{position:relative;border-radius:20px;background:#e3e4db}
@media(min-width:1024px){
 .community{padding:48px 24px 100px 88px;min-height:720px}
 .community .section-heading{margin-left:-64px}
 .community .section-heading>h2{font-size:72px;line-height:1.05;letter-spacing:-4px}
 .story-carousel{grid-template-columns:minmax(0,.76fr) minmax(0,1fr);gap:64px;align-items:center}
 .story-copy{order:1}.story-image{order:2;border-radius:8px}
 .story-image img{height:auto;aspect-ratio:16/9;object-fit:cover}
 .story-copy h3{font-size:32px;line-height:1.15;margin-bottom:20px}
 .story-copy p{font-size:18px;line-height:1.55}
 .community>.arrows{position:absolute;right:24px;bottom:18px;margin:0;gap:24px}
 .community>.arrows button{border:0;background:transparent;border-radius:0;font-size:38px;width:48px;height:40px}
 .equip{margin-top:96px;margin-bottom:96px;padding:96px;border-radius:20px;min-height:520px}
 .equip h2{font-size:60px;line-height:1.05;letter-spacing:-3px}
 .equip p{font-size:18px;line-height:1.4;max-width:465px}
}

/* About reference: editorial copy beside a tall photograph. */
.about-page .page-location{display:none}
#main>.about-hero{display:grid;grid-template-columns:40% 60%;margin:0 48px 96px;min-height:860px;border-radius:0;clip-path:none;-webkit-mask-image:none;overflow:visible;color:var(--ink);background:transparent;isolation:auto}
.about-hero>img{position:relative;inset:auto;order:2;width:100%;height:100%;min-height:860px;object-fit:cover;border-radius:12px;translate:none;scale:none;transform:none}
.about-hero:after,.about-hero:before{display:none}
.about-hero>div{order:1;position:relative;padding:0 56px 60px 0;align-self:start}
.about-hero>div>.eyebrow{display:none}
.about-hero h1{font-size:clamp(64px,7vw,100px);line-height:1.05;letter-spacing:-5px;margin:12px 0 28px}
.about-hero h2{font-family:Georgia,'AppleMyungjo','Batang',serif;font-size:clamp(40px,4.8vw,64px);line-height:1.3;font-weight:400;letter-spacing:-2px;margin:0 0 32px}
.about-hero p{font-size:18px;line-height:1.5;max-width:350px;color:var(--ink)}
.about-hero>small{left:auto;right:24px;bottom:24px;top:auto;z-index:2}
@media(max-width:800px){#main>.about-hero{grid-template-columns:1fr;margin:0 24px 64px;min-height:0;gap:32px}.about-hero>div{padding:0}.about-hero>img{min-height:0;height:480px}.about-hero h1{font-size:64px;letter-spacing:-3px}.about-hero h2{font-size:40px}.about-hero p{font-size:16px;max-width:100%}}

/* Keep the sample caption attached to the photo on stacked layouts. */
.about-hero>small{position:absolute;color:white;background:#0007;border-radius:20px;padding:4px 10px;font-size:10px}
.about-value{border-bottom:1px solid #777;padding:24px 0}
.about-value summary{display:grid;grid-template-columns:48px 1fr 24px;gap:16px;align-items:center;cursor:pointer;list-style:none}
.about-value summary::-webkit-details-marker{display:none}
.about-value summary>span{font-family:Georgia,serif;font-size:36px;color:#888}
.about-value summary h3{margin:0;font-size:24px}
.about-value summary i{width:20px;height:20px;border:1px solid currentColor;border-radius:50%;position:relative}
.about-value summary i:before,.about-value summary i:after{content:"";position:absolute;background:currentColor;left:5px;right:5px;top:9px;height:1px}
.about-value summary i:after{transform:rotate(90deg);transition:transform .3s}
.about-value[open] summary i:after{transform:rotate(0)}
.about-value>p{margin:20px 40px 0 64px;font-size:16px;line-height:1.6;color:#626262}
.about-value summary:focus-visible{outline:2px solid var(--blue);outline-offset:6px}

.about-value{box-sizing:border-box}
.about-value.value-expanded summary i:before{transform:rotate(45deg)}
.about-value.value-expanded summary i:after{transform:rotate(-45deg)}
.about-value summary i:before{transition:transform .3s}
@media(hover:hover){.about-value summary:hover h3{color:var(--blue);transition:color .2s}}

/* The reference About hero is static under the shared opening cover. */
#main>.about-hero{grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:24px;min-height:0;align-items:start}
.about-hero>img{height:576px;min-height:0}
.about-hero>div{padding-right:0}
.about-hero h2,.about-hero p{margin-left:64px}
.about-hero>small{top:540px;bottom:auto}
.entrance-managed.entrance-playing #main>.about-hero{animation:none;clip-path:none;opacity:1;translate:none}
.entrance-managed.entrance-playing .about-hero>div>p{animation:none;opacity:1;translate:none}
@media(max-width:1023px){
 #main>.about-hero{grid-template-columns:1fr;margin:0 24px 64px;gap:24px}
 .about-hero>img{order:0;height:400px}
 .about-hero>div{order:1;padding:0}
 .about-hero>small{top:364px;bottom:auto}
 .about-hero h2,.about-hero p{margin-left:0}
}
@media(max-width:767px){.about-hero>img{height:320px}.about-hero>small{top:284px}}

.about-hero h2{word-break:keep-all;overflow-wrap:normal}

@media(max-width:1023px){.about-hero p{max-width:none}.about-value summary{grid-template-columns:40px minmax(0,1fr) 24px;gap:12px}.about-value>p{margin-left:52px;margin-right:0}}
@media(prefers-reduced-motion:reduce){.about-value summary i:before,.about-value summary i:after,.about-value summary h3{transition:none}}

.story-carousel{position:relative;overflow:hidden}
.story-carousel>.story-snapshot{position:absolute;z-index:3;margin:0;pointer-events:none;transition:none;opacity:1;translate:none;animation:none}
.story-snapshot.story-copy{background:#e3e4db}

.community>.arrows{position:absolute;right:24px;bottom:18px}

@media(max-width:1023px){.community{padding-bottom:90px}.community>.arrows{margin:0;gap:24px}}

/* Reference story artwork uses square frames and 32px slide spacing. */
.events .cards{gap:32px}
.events .cards>a{flex-basis:100%}
.events .card-art{height:auto;min-height:0;aspect-ratio:1;border-radius:12px;font-size:clamp(28px,4vw,48px)}
@media(min-width:640px){.events .cards>a{flex-basis:calc((100% - 32px)/2)}}
@media(min-width:1000px){.events .cards>a{flex-basis:calc((100% - 64px)/3)}}

@media(max-width:1023px){.pill{--magnet-x:0px;--magnet-y:0px}}

@media(min-width:1024px) and (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.pill{transition:transform .3s cubic-bezier(.25,.46,.45,.94),background .25s}}

/* Opening cover and its standalone logo removed at user request. */
html:before,html:after{display:none!important}

/* Page navigation cover and its logo removed at user request. */
body:before,body:after{display:none!important}
