:root{
  --red:#CB2055; --black:#000; --white:#fff;
  --muted-dark:#4a4a4a; --muted-light:rgba(255,255,255,.72); --line-dark:rgba(0,0,0,.14); --line-light:rgba(255,255,255,.22);
  --font:"Helvetica Neue",Helvetica,Arial,sans-serif;
  --ease:cubic-bezier(.2,.8,.2,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:76px}
body{font-family:var(--font);background:var(--white);color:var(--black);line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:3px solid var(--red);outline-offset:3px}
.wrap{width:min(1180px,92%);margin:auto}
.center{text-align:center}
.section{padding:clamp(70px,10vw,130px) 0;position:relative;background:var(--white);color:var(--black)}
.dark{background:var(--black);color:var(--white)}
.grey{background:#E6E6E6;color:var(--black)}
h1,h2,h3{font-family:var(--font)}
h2{font-weight:700;font-size:clamp(2rem,5vw,3.5rem);line-height:1.08;letter-spacing:-.03em;margin-bottom:1rem}
.lead{font-size:1.15rem;color:var(--muted-dark);margin-bottom:2.5rem;max-width:56ch}
.dark .lead{color:var(--muted-light)}
.lead.center{margin-inline:auto}

/* Buttons: #CB2055 */
.btn{display:inline-block;background:var(--red);color:#fff;padding:1.05rem 2.6rem;border-radius:999px;font:700 1rem var(--font);text-decoration:none;border:0;cursor:pointer;
  transition:background .3s,color .3s,box-shadow .3s;position:relative;overflow:hidden;box-shadow:0 12px 30px -10px rgba(203,32,85,.8)}
.btn::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.3) 50%,transparent 70%);transform:translateX(-120%);transition:transform .7s var(--ease)}
.btn:hover::after{transform:translateX(120%)}
.btn:hover{background:var(--black);color:#fff}
.dark .btn:hover,.hero .btn:hover{background:#fff;color:var(--red)}
.btn.small{padding:.7rem 1.4rem;font-size:.9rem}
.btn.large{padding:1.3rem 3.4rem;font-size:1.15rem}

/* Nav */
.nav{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;justify-content:space-between;align-items:center;padding:1rem 4%;transition:background .4s,padding .4s,box-shadow .4s}
.nav.solid{background:rgba(255,255,255,.96);backdrop-filter:blur(12px);padding:.6rem 4%;box-shadow:0 1px 0 var(--line-dark)}
.logo{display:block;position:relative;height:46px;aspect-ratio:900/339;flex:none;transition:height .4s}
.nav.solid .logo{height:40px}
.logo img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transition:opacity .4s}
.logo .on-light{opacity:0}
.nav.solid .logo .on-light{opacity:1}
.nav.solid .logo .on-dark{opacity:0}
.nav nav{display:flex;gap:1.8rem;align-items:center}
.nav nav a{text-decoration:none;color:#fff;font-weight:500;font-size:.95rem;transition:color .3s}
.nav.solid nav a{color:var(--black)}
.nav nav a:hover{color:var(--red)}
.nav nav .pill{background:var(--red);color:#fff!important;padding:.55rem 1.3rem;border-radius:999px;font-weight:700}
.nav nav .pill:hover{background:var(--black)}
.nav:not(.solid) nav .pill:hover{background:#fff;color:var(--red)!important}
.menu-btn{display:none;background:none;border:0;width:40px;height:40px;position:relative;cursor:pointer}
.menu-btn span{position:absolute;left:8px;right:8px;height:2px;background:#fff;transition:.3s}
.nav.solid .menu-btn span{background:var(--black)}
.menu-btn span:first-child{top:15px}.menu-btn span:last-child{top:23px}
.menu-btn[aria-expanded=true] span:first-child{top:19px;transform:rotate(45deg)}
.menu-btn[aria-expanded=true] span:last-child{top:19px;transform:rotate(-45deg)}

/* Hero */
.hero{min-height:100svh;display:grid;place-items:center;position:relative;color:#fff;text-align:center;overflow:hidden;background:#000 url(assets/hero-poster.jpg) center/cover}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.55),rgba(0,0,0,.3) 45%,rgba(0,0,0,.78))}
#embers{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.hero-content{position:relative;z-index:2;padding:7rem 1rem 5rem;width:min(1100px,100%)}
.hero-sub{font-size:1.05rem;letter-spacing:.02em;color:#fff;margin-bottom:1rem;opacity:0;animation:fade 1s .2s forwards}
#heroTitle{font-weight:500;font-size:clamp(3rem,10vw,8rem);line-height:.95;letter-spacing:-.045em;margin-bottom:1.2rem;color:#fff;text-shadow:0 6px 40px rgba(0,0,0,.45)}
#heroTitle .word{display:inline-block;white-space:nowrap}
#heroTitle .ch{display:inline-block;opacity:0;transform:translateY(.6em) rotate(6deg);filter:blur(8px);animation:rise 1s var(--ease) forwards}
.hero-date{font-weight:500;font-size:clamp(1.3rem,2.8vw,2rem);letter-spacing:-.01em;margin-bottom:2rem;color:#fff;opacity:0;animation:fade 1s 1.4s forwards}
.hero-date::after{content:"";display:block;width:64px;height:4px;background:var(--red);margin:.9rem auto 0;border-radius:2px}

/* Countdown: no boxes, big numbers */
.countdown{display:flex;justify-content:center;align-items:flex-start;gap:clamp(.8rem,3vw,2.4rem);margin-bottom:2.8rem;opacity:0;animation:fade 1s 1.7s forwards}
.unit{text-align:center;min-width:0}
.unit > span{display:block;margin-top:.5rem;font-size:clamp(.8rem,1.4vw,1rem);font-weight:500;letter-spacing:.04em;color:#fff;opacity:.85}
.digits{display:flex;justify-content:center}
.digit{overflow:hidden;font:700 clamp(2.3rem,8vw,5.2rem)/1 var(--font);letter-spacing:-.04em;font-variant-numeric:tabular-nums;color:#fff;text-shadow:0 4px 30px rgba(0,0,0,.55);padding:0 .02em}
.digit .num{display:block}
.digit.flip .num{animation:flip .55s var(--ease)}
.sep{font:700 clamp(1.9rem,6vw,3.9rem)/1 var(--font);color:var(--red);animation:blink 1s infinite;padding-top:.04em}
.scroll-cue{position:absolute;bottom:1.5rem;left:50%;width:24px;height:40px;border:2px solid rgba(255,255,255,.7);border-radius:14px;transform:translateX(-50%);z-index:2}
.scroll-cue::after{content:"";position:absolute;top:7px;left:50%;width:4px;height:8px;margin-left:-2px;background:var(--red);border-radius:2px;animation:cue 1.6s infinite}
@keyframes rise{to{opacity:1;transform:none;filter:none}}
@keyframes fade{to{opacity:1}}
@keyframes flip{0%{transform:translateY(-60%) rotateX(70deg);opacity:0}100%{transform:none;opacity:1}}
@keyframes blink{50%{opacity:.35}}
@keyframes cue{0%{transform:translateY(0);opacity:1}100%{transform:translateY(14px);opacity:0}}

/* Vision */
.vision-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,6vw,5rem);align-items:start}
.vision-text p{margin-bottom:1.1rem;color:var(--muted-dark);font-size:1.08rem}
blockquote{margin:1.6rem 0;padding-left:1.4rem;border-left:4px solid var(--red);font-weight:700;font-size:1.15rem;line-height:1.5;letter-spacing:-.01em}
.vision-text .eyebrow,.eyebrow{color:var(--red);font-weight:700;font-size:.95rem;margin-bottom:.7rem}
.vision-text h2{margin-bottom:1.5rem}
.vision-text .sub{font:700 1.5rem var(--font);letter-spacing:-.02em;margin:2.2rem 0 1rem}
.defs{display:grid;gap:1rem}
.def{border:1.5px solid var(--line-dark);border-left:4px solid var(--red);border-radius:14px;padding:1.1rem 1.3rem}
.def h3{font:700 1.1rem var(--font);line-height:1.35}
.ipa{color:var(--red);font-weight:500;margin:0 .25rem}
.def p{margin:.5rem 0 0;font-size:.98rem}
cite{display:block;font:500 .9rem var(--font);color:var(--red);margin-top:.5rem}
/* Vision video (vertical / Shorts shape on every device) */
[hidden]{display:none!important}
.vision-media{position:sticky;top:96px;display:flex;flex-direction:column;align-items:center;gap:1.1rem}
.vid-glow{position:absolute;inset:6% 10% 14%;background:radial-gradient(circle,rgba(203,32,85,.42),transparent 70%);filter:blur(40px);z-index:0}
.vid-frame{position:relative;z-index:1;aspect-ratio:9/16;width:min(100%,max(300px,calc((100vh - 120px)*9/16)));border-radius:18px;overflow:hidden;background:#000;box-shadow:0 40px 80px -30px rgba(0,0,0,.55)}
.vid-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;pointer-events:none}
.vid-placeholder{position:absolute;inset:0;display:grid;place-content:center;gap:.8rem;justify-items:center;text-align:center;color:#fff;background:linear-gradient(160deg,var(--red),#000)}
.vid-placeholder strong{font:700 1.5rem var(--font);letter-spacing:-.02em}
.vid-placeholder span{opacity:.85}
.vid-progress{position:absolute;left:0;right:0;bottom:0;height:4px;background:rgba(255,255,255,.25);z-index:2}
.vid-progress span{display:block;height:100%;width:0;background:var(--red);transition:width .3s linear}
.vid-bar{position:absolute;left:0;right:0;bottom:0;z-index:3;display:flex;align-items:center;justify-content:center;gap:.6rem;padding:2.6rem .8rem 1.1rem;background:linear-gradient(transparent,rgba(0,0,0,.65))}
.vid-bar button{width:44px;height:44px;border-radius:50%;border:1.5px solid rgba(255,255,255,.45);background:rgba(0,0,0,.5);backdrop-filter:blur(6px);color:#fff;display:grid;place-items:center;cursor:pointer;transition:background .25s,color .25s,border-color .25s,transform .25s var(--ease)}
.vid-bar button:hover{background:var(--red);border-color:var(--red);color:#fff;transform:translateY(-2px)}
.vid-bar button svg{width:21px;height:21px}
.vid-bar .main{width:54px;height:54px;background:var(--red);border-color:var(--red)}
.vid-bar .main svg{width:24px;height:24px}
.vid-bar .main:hover{background:#fff;border-color:#fff;color:var(--red)}


/* Word conference details strip */
.details{background:var(--red);color:#fff;padding:clamp(1.6rem,3vw,2.4rem) 0}
.details-title{font:700 clamp(1.4rem,2.6vw,1.9rem) var(--font);letter-spacing:-.02em;text-align:center;margin:0 0 1.6rem;color:#fff}
.details-grid{display:grid;grid-template-columns:1.1fr .8fr 1.7fr;gap:0;align-items:stretch}
.detail{display:grid;align-content:center;grid-template-columns:auto 1fr;grid-template-areas:"i l" "i v" "i h";column-gap:1rem;align-items:center;text-decoration:none;color:#fff;padding:.4rem clamp(1rem,2.4vw,1.8rem);position:relative;transition:transform .35s var(--ease)}
.detail + .detail::before{content:"";position:absolute;left:0;top:12%;bottom:12%;width:1px;background:rgba(255,255,255,.4)}
.d-icon{grid-area:i;width:64px;height:64px;border-radius:50%;border:1.5px solid rgba(255,255,255,.75);display:grid;place-items:center;transition:background .3s,color .3s}
.d-icon svg{width:30px;height:30px}
.d-label{grid-area:l;font-size:1.05rem;font-weight:500;opacity:.95}
.d-value{grid-area:v;font:700 clamp(1.3rem,2vw,1.65rem)/1.2 var(--font);letter-spacing:-.01em}
.d-hint{grid-area:h;font-size:1rem;opacity:.95;margin-top:.25rem}
a.detail .d-hint::after{content:" →"}
.details-grid .detail:nth-child(2) .d-value{white-space:nowrap}
a.detail:hover{transform:translateY(-3px)}
a.detail:hover .d-icon{background:#fff;color:var(--red)}
a.detail:hover .d-value{text-decoration:underline;text-underline-offset:4px}
.details :focus-visible{outline-color:#fff;border-radius:12px}
@media(max-width:900px){
  .details-grid{grid-template-columns:1fr;gap:.9rem}
  .detail{padding:.5rem 0}
  .detail + .detail::before{left:0;right:0;top:-.45rem;bottom:auto;width:auto;height:1px}
}

/* Ministers: every tile identical */
.tiles{display:flex;flex-wrap:wrap;justify-content:center;gap:1.3rem;margin:3rem auto 0;max-width:1040px}
.tile{perspective:900px;flex:0 0 calc((100% - 2.6rem)/3)}
.group-title{font:700 clamp(1.7rem,3.4vw,2.5rem) var(--font);letter-spacing:-.03em;text-align:center;margin:clamp(3.5rem,7vw,5.5rem) 0 0}
.group-title + .tiles{margin-top:2rem}
.tile-inner{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:3/4;background:var(--grad);border:2px solid var(--black);transform-style:preserve-3d;transition:transform .2s ease-out,border-color .4s,box-shadow .4s}
.tile:hover .tile-inner,.tile:focus-within .tile-inner{border-color:var(--red)}
.tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.tile:hover img{transform:scale(1.08)}
.tile .initials{position:absolute;inset:0;display:grid;place-items:center;font:700 5rem var(--font);letter-spacing:-.04em;color:rgba(255,255,255,.5)}
.tile-inner::before{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.28),transparent 50%);opacity:0;transition:opacity .3s}
.tile:hover .tile-inner::before{opacity:1}
.tile-info{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:2.2rem 1.2rem 1.1rem;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.6))}
.tile-info h3{font:700 1.2rem var(--font);line-height:1.2;letter-spacing:-.01em}
.tile-info p{font-size:.88rem;color:#fff;max-height:0;opacity:0;overflow:hidden;transition:max-height .5s var(--ease),opacity .4s}
.tile:hover .tile-info p,.tile:focus-within .tile-info p{max-height:3em;opacity:1}

/* Register: single call-to-action */
.register{text-align:center;overflow:hidden}
.register .wrap{max-width:820px}
.register h2{margin-bottom:1.2rem}
.register p{color:var(--muted-dark);font-size:1.15rem;margin:0 auto 2rem;max-width:52ch}
.register .btn{margin-top:.5rem}
.ticks{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem 2rem;margin:0 0 2.4rem;padding:0}
.ticks li{position:relative;padding-left:1.8rem;font-weight:500}
.ticks li::before{content:"";position:absolute;left:0;top:.4em;width:1rem;height:.55rem;border-left:3px solid var(--red);border-bottom:3px solid var(--red);transform:rotate(-45deg) scale(.85)}

/* Testimonies */
.t-stage{max-width:820px;margin:3rem auto 0;text-align:center;position:relative}
.t-stage::before{content:"“";position:absolute;top:-3.5rem;left:50%;transform:translateX(-50%);font:700 11rem/1 var(--font);color:var(--red);opacity:.9;pointer-events:none}
.t-slides{display:grid;position:relative}
.t-slide{grid-area:1/1;opacity:0;transform:translateY(24px);transition:opacity .7s,transform .7s var(--ease);pointer-events:none}
.t-slide.on{opacity:1;transform:none;pointer-events:auto}
.t-slide p{font:400 clamp(1.25rem,2.6vw,1.7rem)/1.5 var(--font);position:relative;margin-bottom:1.5rem;letter-spacing:-.01em}
.t-slide strong{display:block;font-family:var(--font)}
.t-slide span{color:var(--muted-dark);font-size:.9rem}
.t-dots{display:flex;justify-content:center;gap:.6rem;margin-top:2rem}
.t-dots button{width:10px;height:10px;border-radius:99px;border:0;background:rgba(0,0,0,.28);cursor:pointer;transition:width .4s var(--ease),background .3s}
.t-dots button.on{width:34px;background:var(--red)}

/* Schedule */
.tabs{display:flex;justify-content:center;gap:.6rem;margin:2.5rem 0;flex-wrap:wrap}
.tabs button{padding:.7rem 1.6rem;border-radius:999px;border:2px solid var(--black);background:transparent;color:var(--black);font:700 .95rem var(--font);cursor:pointer;transition:.3s}
.tabs button:hover{border-color:var(--red);color:var(--red)}
.tabs button.on{background:var(--red);color:#fff;border-color:var(--red)}
.timeline{list-style:none;max-width:760px;margin:auto;position:relative;padding-left:2.2rem}
.timeline::before{content:"";position:absolute;left:7px;top:6px;bottom:6px;width:2px;background:var(--red)}
.timeline li{position:relative;background:#fff;padding:1.2rem 1.5rem;border-radius:14px;margin-bottom:1rem;display:grid;grid-template-columns:150px 1fr;gap:1rem;border:1.5px solid var(--line-dark);
  opacity:0;transform:translateX(-30px);animation:slidein .6s var(--ease) forwards}
.timeline li::before{content:"";position:absolute;left:-2.2rem;top:1.5rem;width:16px;height:16px;border-radius:50%;background:#fff;border:3px solid var(--red)}
.timeline time{font:700 1.05rem var(--font);color:var(--red)}
.timeline h3{font:700 1.05rem var(--font)}
.timeline p{color:var(--muted-dark);font-size:.93rem}
@keyframes slidein{to{opacity:1;transform:none}}

/* Sermons */
.sermons{padding-bottom:clamp(60px,8vw,110px)}
.carousel-wrap{position:relative}
.carousel{display:flex;gap:1.3rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:1rem max(4%,calc((100vw - 1180px)/2)) 2rem;scrollbar-width:none;scroll-behavior:smooth}
.carousel::-webkit-scrollbar{display:none}
.card{flex:0 0 min(420px,80vw);scroll-snap-align:center;color:inherit;text-align:left;transition:transform .5s var(--ease)}
.card-play{display:block;width:100%;cursor:pointer;background:none;border:0;color:inherit;text-align:left;font:inherit;padding:0}
.card-play:disabled{cursor:default}
.watch-all{margin-top:1rem}
.card.active{transform:scale(1.04)}
.thumb{position:relative;aspect-ratio:16/9;border-radius:16px;overflow:hidden;background:var(--grad)}
.thumb img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.card-play:not(:disabled):hover .thumb img{transform:scale(1.08)}
.play{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(transparent 65%,rgba(0,0,0,.25))}
.play i{width:64px;height:64px;border-radius:50%;background:var(--red);display:grid;place-items:center;transition:transform .4s var(--ease),background .3s}
.play i::after{content:"";margin-left:5px;border:solid transparent;border-width:11px 0 11px 18px;border-left-color:#fff}
.card-play:not(:disabled):hover .play i{transform:scale(1.15);background:#fff}
.card-play:not(:disabled):hover .play i::after{border-left-color:var(--red)}
.card-play:disabled .play{display:none}
.card h3{font:700 1.2rem var(--font);margin-top:.9rem;letter-spacing:-.01em}
.card p{font-size:.88rem;color:var(--muted-dark)}
.dark .card p{color:var(--muted-light)}
.dark .watch-all:hover{background:#fff;color:var(--red)}
.arrow{position:absolute;top:40%;z-index:5;width:52px;height:52px;border-radius:50%;border:0;background:#fff;color:#000;font-size:2rem;line-height:1;cursor:pointer;box-shadow:0 10px 30px rgba(0,0,0,.25);transition:.3s}
.arrow:hover{background:var(--red);color:#fff}
.prev{left:2%}.next{right:2%}

/* Gallery: masonry, each photo keeps its own landscape/portrait shape */
.grid{columns:4;column-gap:1rem;margin-top:3rem}
.shot{display:block;width:100%;break-inside:avoid;margin:0 0 1rem;padding:0;border:0;border-radius:14px;overflow:hidden;position:relative;background:var(--grad);aspect-ratio:var(--ar,3/2);cursor:default}
.shot.has{cursor:zoom-in}
.shot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.shot.has:hover img{transform:scale(1.06)}
.shot.has::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 55%,rgba(203,32,85,.55));opacity:0;transition:opacity .4s}
.shot.has:hover::after,.shot.has:focus-visible::after{opacity:1}
.lightbox{position:fixed;inset:0;z-index:120;display:grid;place-items:center;background:rgba(0,0,0,.94);visibility:hidden;opacity:0;transition:opacity .3s,visibility .3s}
.lightbox.open{visibility:visible;opacity:1}
.lightbox img{max-width:min(92vw,1400px);max-height:84vh;width:auto;height:auto;border-radius:10px;box-shadow:0 30px 80px rgba(0,0,0,.6)}
.lb-close,.lb-nav{position:absolute;border:0;background:rgba(255,255,255,.14);color:#fff;border-radius:50%;cursor:pointer;display:grid;place-items:center;transition:background .25s}
.lb-close:hover,.lb-nav:hover{background:var(--red)}
.lb-close{top:16px;right:16px;width:46px;height:46px;font-size:1.8rem;line-height:1}
.lb-nav{top:50%;width:52px;height:52px;margin-top:-26px;font-size:2rem;line-height:1}
.lb-prev{left:16px}.lb-next{right:16px}
.lb-count{position:absolute;bottom:16px;left:0;right:0;text-align:center;color:rgba(255,255,255,.8);font-size:.9rem}

/* Footer */
.footer{background:var(--red);color:#fff;padding:4rem 0 1.5rem}
.footer .logo{height:64px;margin-bottom:1.2rem}
.foot-grid{display:grid;grid-template-columns:minmax(0,300px) auto auto auto;justify-content:center;gap:1.5rem 4.5rem}
.footer p{color:rgba(255,255,255,.95);margin-bottom:.7rem;line-height:1.55;max-width:34ch}
.footer a{text-decoration:none}
.footer p a{border-bottom:1px solid rgba(255,255,255,.55)}
.footer h4{font:700 1.05rem var(--font);margin-bottom:1rem;color:#fff}
.foot-menu,.socials{display:flex;flex-direction:column;gap:.55rem;align-items:flex-start}
.foot-menu a,.socials a{color:#fff;font-weight:500;border-bottom:2px solid transparent;transition:border-color .3s}
.foot-menu a:hover,.socials a:hover,.footer p a:hover{border-color:#fff}
.footer .copy{max-width:none;text-align:center;margin-top:3rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.3);font-size:.85rem;color:rgba(255,255,255,.9)}

/* Modal */
.modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;visibility:hidden;opacity:0;transition:opacity .35s,visibility .35s}
.modal.open{visibility:visible;opacity:1}
.modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.88);backdrop-filter:blur(6px)}
.modal-box{position:relative;width:min(960px,94vw);background:#fff;border-radius:18px;overflow:hidden;transform:translateY(30px) scale(.95);transition:transform .5s var(--ease);box-shadow:0 50px 100px rgba(0,0,0,.6)}
.modal.open .modal-box{transform:none}
.player{aspect-ratio:16/9;background:#000}
.player iframe{width:100%;height:100%;border:0}
.player-fallback{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.2rem;text-align:center;padding:2rem;color:#fff;background:#000}
.player-fallback p{max-width:44ch;color:rgba(255,255,255,.9)}
.modal-close{position:absolute;top:10px;right:12px;z-index:3;width:40px;height:40px;border-radius:50%;border:0;background:rgba(0,0,0,.65);color:#fff;font-size:1.6rem;cursor:pointer}
.modal-bar{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.1rem 1.4rem;flex-wrap:wrap}
.modal-bar h3{font:700 1.2rem var(--font)}
.modal-bar p{color:var(--muted-dark);font-size:.88rem}

/* Reveal */
.reveal{opacity:0;transform:translateY(40px);transition:opacity .9s,transform .9s var(--ease)}
.reveal.in{opacity:1;transform:none}

/* Responsive */
@media(max-width:900px){
  .vision-media{position:relative;top:0}
  .foot-grid{grid-template-columns:1fr 1fr 1fr;gap:1.5rem 2rem}.foot-brand{grid-column:1/-1}
  .tile{flex-basis:calc((100% - 1.3rem)/2)}
  .vision-grid{grid-template-columns:1fr}
  .vid-frame{width:min(100%,460px)}
}
@media(max-width:1000px){.grid{columns:3}}
@media(max-width:700px){.grid{columns:2}}
@media(max-width:700px){
  .menu-btn{display:block}
  .nav nav{position:fixed;inset:0 0 0 30%;background:var(--red);box-shadow:-20px 0 50px rgba(0,0,0,.25);flex-direction:column;justify-content:center;gap:1.6rem;transform:translateX(100%);transition:transform .5s var(--ease)}
  .nav nav.open{transform:none}.nav nav a{color:#fff!important;font-size:1.2rem}
  .nav nav .pill,.nav:not(.solid) nav .pill{background:#fff;color:var(--red)!important}
  .nav nav .pill:hover,.nav:not(.solid) nav .pill:hover{background:var(--black);color:#fff!important}
  .nav nav a:not(.pill):hover{color:var(--black)!important}
  .menu-btn{z-index:60}.menu-btn[aria-expanded=true] span{background:#fff}
  .logo{height:38px}.nav.solid .logo{height:34px}
  .timeline li{grid-template-columns:1fr;gap:.2rem}
  .tile .initials{font-size:3.2rem}.tile-info h3{font-size:1rem}.tile-info p{max-height:3em;opacity:1;font-size:.75rem}
  .arrow{display:none}
  .lb-nav{width:42px;height:42px;margin-top:-21px}.lb-prev{left:8px}.lb-next{right:8px}
  .sep{font-size:1.8rem}.countdown{gap:.5rem}
}
@media(max-width:560px){.foot-grid{grid-template-columns:1fr 1fr}.socials{grid-column:1/-1}}
@media(max-width:480px){.digit{font-size:clamp(2.1rem,10.5vw,2.9rem)}}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-delay:0s!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .reveal,.timeline li,#heroTitle .ch,.hero-sub,.hero-date,.countdown{opacity:1;transform:none;filter:none}
}
