/* home page — shared by the Arabic and English mockups. */
/* ============================================================ hero */
.hero{position:relative;min-height:max(680px,100svh);color:#fff;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;isolation:isolate;background:var(--brand-deep)}
.hero-media{position:absolute;inset:-4% 0 0;z-index:-2;will-change:transform}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:50% 55%;animation:kenburns 22s var(--ease-out) both}
@keyframes kenburns{from{transform:scale(1.16)}to{transform:scale(1.02)}}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;
  background:
   radial-gradient(120% 90% at 85% 100%,color-mix(in srgb,var(--shade-c) 92%,transparent) 0%,transparent 60%),
   linear-gradient(to top,var(--shade-c) 0%,color-mix(in srgb,var(--shade-c) 70%,transparent) 32%,transparent 70%),
   linear-gradient(to left,color-mix(in srgb,var(--shade-c) 75%,transparent) 0%,transparent 55%),
   linear-gradient(to bottom,rgb(0 0 0 / .35),transparent 22%)}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;opacity:.07;mix-blend-mode:overlay;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.hero-grid{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:end;padding-top:150px;padding-bottom:36px}
.kicker{margin-bottom:22px}
.hero .hero-title{font-size:clamp(42px,6.2vw,88px);line-height:1.12;font-weight:700;letter-spacing:-.5px;max-width:880px;text-wrap:balance;text-shadow:0 2px 30px rgb(0 0 0 / .25)}
.hero .hero-title .accent{color:var(--accent-300)}
.hero-meta{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:22px;font-size:18px;color:rgb(255 255 255 / .9)}
.hero-meta span{display:inline-flex;align-items:center;gap:8px}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.countdown{width:340px;padding:24px;border-radius:var(--r-lg);background:var(--glass-dark);border:1px solid var(--glass-dark-line);
  backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);box-shadow:0 30px 60px -30px rgb(0 0 0 / .6);position:relative;overflow:hidden}
.countdown::before{content:"";position:absolute;inset:-40% -40% auto auto;width:220px;height:220px;border-radius:50%;background:radial-gradient(closest-side,color-mix(in oklab,var(--accent) 55%,transparent),transparent);filter:blur(10px);opacity:.7;animation:float 9s ease-in-out infinite alternate}
@keyframes float{to{transform:translate(-40px,40px)}}
.countdown h3{font-size:15px;font-weight:500;color:rgb(255 255 255 / .8);display:flex;justify-content:space-between;align-items:center}
.cd{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px}
.cd div{background:rgb(255 255 255 / .08);border:1px solid transparent;border-radius:14px;padding:10px 0 8px;text-align:center}
.cd b{display:block;font-size:30px;line-height:1.1;font-weight:600}
.cd small{font-size:12.5px;color:rgb(255 255 255 / .75)}
.cd b.tick{animation:tick .5s var(--ease-out)}
@keyframes tick{from{transform:translateY(-30%);opacity:.2;filter:blur(3px)}}
.countdown .btn{--h:44px;width:100%;justify-content:center;margin-top:14px;font-size:15px}
.facts{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:34px;border-radius:var(--r);background:rgb(255 255 255 / .08);border:1px solid transparent);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur)}
.facts>div{display:flex;align-items:center;gap:14px;padding:18px 22px}
.facts>div+div{border-inline-start:1px solid rgb(255 255 255 / .14)}
.facts .icon{width:22px;height:22px;color:var(--accent-300)}
.facts small{display:block;font-size:13px;color:rgb(255 255 255 / .7);line-height:1.4}
.facts strong{font-weight:600;font-size:16px;line-height:1.5;white-space:nowrap}
.scroll-cue{position:absolute;bottom:14px;inset-inline-start:50%;translate:50% 0;width:26px;height:42px;border:2px solid rgb(255 255 255 / .5);border-radius:14px;display:none}

/* stats */
.stats{background:var(--brand-deep);color:#fff;overflow:hidden;isolation:isolate}
.stats::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.09;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120' fill='none' stroke='white' stroke-width='1.2'%3E%3Cpath d='M60 18 72 48 102 60 72 72 60 102 48 72 18 60 48 48Z'/%3E%3Crect x='38' y='38' width='44' height='44' transform='rotate(45 60 60)'/%3E%3Crect x='38' y='38' width='44' height='44'/%3E%3C/svg%3E");background-size:120px}
.stats::after{content:"";position:absolute;width:700px;height:700px;inset-inline-start:-200px;top:-300px;z-index:-1;border-radius:50%;background:radial-gradient(closest-side,color-mix(in oklab,var(--accent) 35%,transparent),transparent);filter:blur(20px)}
.stats-grid{display:grid;grid-template-columns:1.1fr repeat(4,1fr);gap:0;align-items:stretch}
.stats-grid .intro{padding-inline-end:40px}
.stats h2{font-size:clamp(28px,3vw,42px)}
.stats .eyebrow{color:var(--accent-300)}
.stat{padding:8px 28px;border-inline-start:1px solid rgb(255 255 255 / .14)}
.stat b{display:block;white-space:nowrap;font-size:clamp(40px,4.4vw,64px);line-height:1.05;font-weight:600;background:linear-gradient(180deg,#fff,color-mix(in oklab,#fff 55%,var(--accent)));-webkit-background-clip:text;background-clip:text;color:transparent}
.stat span{display:block;margin-top:10px;color:rgb(255 255 255 / .78);font-size:16px}
.note{font-size:13px;color:rgb(255 255 255 / .5);margin-top:26px}

/* archive */
.archive{display:grid;grid-template-columns:1.25fr 1fr;gap:64px;align-items:center}
.mosaic{display:grid;grid-template-columns:1.2fr 1fr;grid-template-rows:260px 220px;gap:16px;position:relative}
.mosaic figure{margin:0;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-2);position:relative}
.mosaic figure:first-child{grid-row:span 2}
.mosaic img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease-out)}
.mosaic figure:hover img{transform:scale(1.06)}
.mosaic .glass-tag{position:absolute;inset-inline-start:16px;bottom:16px;display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:14px;color:#fff;font-size:14px;font-weight:600;
  background:var(--glass-dark);border:1px solid var(--glass-dark-line);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur)}
.mosaic .badge-float{position:absolute;inset-inline-end:-26px;top:-26px;width:132px;height:132px;border-radius:50%;display:grid;place-items:center;text-align:center;
  background:var(--glass-light);border:1px solid var(--glass-light-line);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);box-shadow:var(--shadow-2);animation:bob 6s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(-10px) rotate(-4deg)}}
.badge-float b{display:block;font-size:34px;line-height:1;color:var(--brand)}
.badge-float small{font-size:13px;font-weight:600;color:var(--ink-2)}
.archive-list{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-block:26px 30px}
.archive-list a{padding:16px;border-radius:16px;background:var(--canvas);border:1px solid var(--line);display:flex;flex-direction:column;gap:6px;transition:all .4s var(--ease)}
.archive-list a:hover{border-color:var(--brand);background:#fff;box-shadow:var(--shadow-1);transform:translateY(-3px)}
.archive-list .icon{color:var(--brand);width:24px;height:24px}
.archive-list b{font-size:15.5px}
.archive-list small{color:var(--ink-3);font-size:13.5px}

/* news */
.news-wrap{background:var(--canvas)}
.news{display:grid;grid-template-columns:1.3fr 1fr;gap:24px}
.news-lead{position:relative;border-radius:var(--r-xl);overflow:hidden;min-height:520px;color:#fff;display:flex;align-items:flex-end;box-shadow:var(--shadow-2)}
.news-lead img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease-out)}
.news-lead:hover img{transform:scale(1.05)}
.news-lead::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(to top,rgb(0 0 0 / .8),transparent 65%)}
.news-lead .inner{position:relative;z-index:2;padding:34px}
.news-lead h3{font-size:30px;line-height:1.4;margin-block:12px 10px;max-width:24ch}
.news-lead p{color:rgb(255 255 255 / .85)}
.news-list{display:flex;flex-direction:column;gap:14px}
.news-item{display:grid;grid-template-columns:128px 1fr;gap:18px;align-items:center;padding:14px;border-radius:var(--r);background:#fff;border:1px solid var(--line);transition:all .5s var(--ease-out)}
.news-item:hover{transform:translateX(-6px);box-shadow:var(--shadow-1);border-color:transparent}
.news-item .thumb{aspect-ratio:1;border-radius:14px;overflow:hidden}
.news-item .thumb img{width:100%;height:100%;object-fit:cover}
.news-item time,.news-lead time{font-size:13.5px;font-weight:600;color:var(--ink-3)}
.news-lead time{color:rgb(255 255 255 / .8)}
.news-item h4{font-size:17px;line-height:1.55;margin-top:4px}
.kind{font-size:12.5px;font-weight:700;color:var(--brand);background:var(--primary-50);padding:2px 10px;border-radius:999px;margin-inline-start:8px}

/* venue */
.venue{color:#fff;isolation:isolate;overflow:hidden}
.venue-bg{position:absolute;inset:-10% 0;z-index:-2}
.venue-bg img{width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.venue::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to left,color-mix(in srgb,var(--shade-c) 96%,transparent) 30%,color-mix(in srgb,var(--shade-c) 55%,transparent))}
.venue .eyebrow{color:var(--accent-300)}
.venue .sec-lead{color:rgb(255 255 255 / .8)}
.halls{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:48px}
.hall{padding:26px;border-radius:var(--r-lg);background:var(--glass-dark);border:1px solid var(--glass-dark-line);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);
  transition:transform .6s var(--ease-out),background .4s;position:relative;overflow:hidden}
.hall:hover{transform:translateY(-6px);background:linear-gradient(135deg,rgb(255 255 255 / .22),rgb(255 255 255 / .08))}
.hall .ic{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:color-mix(in oklab,var(--accent) 22%,transparent);color:var(--accent-300);margin-bottom:18px}
.hall .ic .icon{width:26px;height:26px}
.hall h3{font-size:22px}
.hall p{color:rgb(255 255 255 / .75);font-size:15.5px;margin-top:6px}
.hall dl{display:flex;gap:26px;margin:20px 0 0}
.hall dt{font-size:12.5px;color:rgb(255 255 255 / .6)}
.hall dd{margin:0;font-size:20px;font-weight:600}


.logo-ph{width:170px;height:72px;border-radius:14px;border:1px dashed var(--neutral-300);display:grid;place-items:center;color:var(--neutral-400);font-size:13.5px;font-weight:600;background:var(--canvas)}

/* cta */
.cta{margin-block:clamp(72px,8vw,112px)}
.cta-box{position:relative;border-radius:var(--r-xl);overflow:hidden;padding:clamp(36px,5vw,64px);color:#fff;isolation:isolate;display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap;
  background:radial-gradient(80% 140% at 0% 100%,color-mix(in oklab,var(--accent) 55%,transparent),transparent 55%),linear-gradient(120deg,var(--brand),var(--brand-deep))}
.cta-box::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.1;background-image:inherit}
.cta-box h2{font-size:clamp(28px,3vw,42px);max-width:22ch;line-height:1.3}
.cta-box p{color:rgb(255 255 255 / .82);margin-top:10px;max-width:52ch}
.cta-box .btns{display:flex;gap:12px;flex-wrap:wrap}

/* ============================================================ responsive */
@media (max-width:1180px){
  .nav,.bar .btn,.actions .lang{display:none}
  .menu-btn{display:grid}
  .bar{justify-content:space-between}
  .hero-grid{grid-template-columns:1fr}
  .countdown{width:100%;max-width:520px}
  .events{grid-template-columns:1fr 1fr}
  .ev.featured{grid-column:span 2;grid-row:auto;min-height:520px}
  .stats-grid{grid-template-columns:repeat(2,1fr);gap:28px 0}
  .stats-grid .intro{grid-column:span 2;padding:0}
  .stat:nth-child(2n){border-inline-start:0}
  .archive,.news{grid-template-columns:1fr}
  .halls{grid-template-columns:1fr 1fr}
  .f-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:720px){
  body{font-size:16px}
  .bar{height:64px}
  .brand-logo{height:40px;width:170px}
  .hero-grid{padding-top:120px;gap:24px}
  .hero .hero-title{font-size:clamp(32px,9vw,38px)}
  .hero-meta{font-size:15.5px}
  .hero-cta .btn{flex:1;justify-content:center}
  .facts{grid-template-columns:1fr 1fr}
  .facts>div{padding:14px}
  .facts>div:nth-child(3){border-inline-start:0}
  .facts>div:nth-child(n+3){border-top:1px solid rgb(255 255 255 / .14)}
  .events{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;margin-inline:calc(-1 * var(--gutter));padding-inline:var(--gutter);padding-bottom:10px;scrollbar-width:none}
  .ev{flex:0 0 84%;scroll-snap-align:start}
  .ev.featured{min-height:500px}
  .stats-grid{grid-template-columns:1fr 1fr}
  .stat{padding:4px 16px}
  .mosaic{grid-template-rows:200px 170px}
  .mosaic .badge-float{width:104px;height:104px;inset-inline-end:-8px;top:-18px}
  .badge-float b{font-size:26px}
  .archive-list{grid-template-columns:1fr}
  .news-lead{min-height:420px}
  .news-lead h3{font-size:23px}
  .news-item{grid-template-columns:92px 1fr}
  .halls{grid-template-columns:1fr}
  .f-grid{grid-template-columns:1fr}
  .ds .name,.ds b{display:none}
}

/* ============================================================ English (LTR) */
[dir="ltr"] .hero::before{background:
   radial-gradient(120% 90% at 15% 100%,color-mix(in srgb,var(--shade-c) 92%,transparent) 0%,transparent 60%),
   linear-gradient(to top,var(--shade-c) 0%,color-mix(in srgb,var(--shade-c) 70%,transparent) 32%,transparent 70%),
   linear-gradient(to right,color-mix(in srgb,var(--shade-c) 75%,transparent) 0%,transparent 55%),
   linear-gradient(to bottom,rgb(0 0 0 / .35),transparent 22%)}
[dir="ltr"] .hero .hero-title{letter-spacing:-1.5px}
[dir="ltr"] .news-item:hover{transform:translateX(6px)}
[dir="ltr"] .venue::before{background:linear-gradient(to right,color-mix(in srgb,var(--shade-c) 96%,transparent) 30%,color-mix(in srgb,var(--shade-c) 55%,transparent))}
[dir="ltr"] .cta-box{background:radial-gradient(80% 140% at 100% 100%,color-mix(in oklab,var(--accent) 55%,transparent),transparent 55%),linear-gradient(240deg,var(--brand),var(--brand-deep))}

/* ============================================================ the exhibition face */
/* The top of the home page: the Exhibition itself (pages/includes/face.html). Layers,
   back to front: media (slides or video, moved by the pointer) · shade · aurora ·
   grain · content. The event hero follows it unchanged. (A white light that followed the
   pointer was removed on 1 Oct 2026: Zaid found it visually disturbing.) */
.face{position:relative;min-height:max(700px,100svh);display:flex;flex-direction:column;color:#fff;overflow:hidden;isolation:isolate;
  background:var(--brand-deep)}
html.shot .face{min-height:900px}
.face-media{position:absolute;inset:0;z-index:-5;overflow:hidden}
.face-stage{position:absolute;inset:-4%;transform:translate3d(var(--px,0px),var(--py,0px),0);transition:transform 1.4s var(--ease-out);will-change:transform}
.face.still .face-stage{transform:translate3d(0,0,0)}   /* the film holds still (site.js still()) */
.face-slide{position:absolute;inset:0;opacity:0;transition:opacity 2s var(--ease)}
.face-slide.on{opacity:1}
/* an event with no picture yet shows its drawing; dimmed, so the title over it stays easy to read */
.face-slide .ill>svg{opacity:.55!important}
.face-slide img{width:100%;height:100%;object-fit:cover;object-position:50% 50%;animation:face-drift 24s ease-in-out infinite alternate}
.face-slide:nth-child(even) img{animation-name:face-drift-2}
@keyframes face-drift{from{transform:scale(1.16) translate3d(1.5%,0,0)}to{transform:scale(1.03) translate3d(-1.5%,-1%,0)}}
@keyframes face-drift-2{from{transform:scale(1.04) translate3d(-1%,1%,0)}to{transform:scale(1.15) translate3d(1.5%,-1%,0)}}
.face-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.6s var(--ease)}
.face-video.playing{opacity:1}
.face.no-media .face-media{background:
  radial-gradient(90% 70% at 80% 10%,color-mix(in oklab,var(--primary-700) 70%,transparent),transparent 70%),
  radial-gradient(70% 60% at 10% 90%,color-mix(in oklab,var(--accent) 22%,transparent),transparent 70%),var(--brand-deep)}
.face.no-media .face-media::after{content:"";position:absolute;inset:0;opacity:.09;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120' fill='none' stroke='white' stroke-width='1.2'%3E%3Cpath d='M60 18 72 48 102 60 72 72 60 102 48 72 18 60 48 48Z'/%3E%3Crect x='38' y='38' width='44' height='44' transform='rotate(45 60 60)'/%3E%3Crect x='38' y='38' width='44' height='44'/%3E%3C/svg%3E");background-size:120px}
/* The shade takes its colour from the picture on show (site.js sets --shade-c from the picture's own
   darkest tones, made very dark and quiet), and glides to the next one's with the slide. Until a picture
   is read, and over the drawing, it is a neutral soft black. It was the brand navy, and a translucent
   blue over warm pictures (dates, lit stands) turned their reds violet and their yellows teal (1 Oct 2026). */
.face-shade{position:absolute;inset:0;z-index:-4;pointer-events:none;background:
  linear-gradient(to top,var(--shade-c) 0%,color-mix(in srgb,var(--shade-c) 60%,transparent) 26%,transparent 58%),
  linear-gradient(to left,color-mix(in srgb,var(--shade-c) 80%,transparent) 0%,color-mix(in srgb,var(--shade-c) 40%,transparent) 42%,transparent 72%),
  radial-gradient(150% 110% at 50% 0%,transparent 55%,rgb(0 0 0 / .42) 100%),
  linear-gradient(to bottom,rgb(0 0 0 / .42),transparent 24%)}
[dir="ltr"] .face-shade{background:
  linear-gradient(to top,var(--shade-c) 0%,color-mix(in srgb,var(--shade-c) 60%,transparent) 26%,transparent 58%),
  linear-gradient(to right,color-mix(in srgb,var(--shade-c) 80%,transparent) 0%,color-mix(in srgb,var(--shade-c) 40%,transparent) 42%,transparent 72%),
  radial-gradient(150% 110% at 50% 0%,transparent 55%,rgb(0 0 0 / .42) 100%),
  linear-gradient(to bottom,rgb(0 0 0 / .42),transparent 24%)}
/* the coloured glow is for the drawing only: over a photograph or the film it would tint it too */
.face-aurora{position:absolute;inset:0;z-index:-3;pointer-events:none;mix-blend-mode:screen;opacity:.5}
.face:not(.no-media) .face-aurora{display:none}
.face.no-media .face-aurora{opacity:.8}
.face-aurora i{position:absolute;border-radius:50%;filter:blur(60px)}
.face-aurora i:nth-child(1){width:46vmax;height:46vmax;top:-20vmax;inset-inline-end:-12vmax;background:radial-gradient(closest-side,color-mix(in oklab,var(--accent) 70%,transparent),transparent);animation:aur-1 26s ease-in-out infinite alternate}
.face-aurora i:nth-child(2){width:52vmax;height:52vmax;bottom:-28vmax;inset-inline-start:-16vmax;background:radial-gradient(closest-side,color-mix(in oklab,var(--primary-500) 80%,transparent),transparent);animation:aur-2 30s ease-in-out infinite alternate}
.face-aurora i:nth-child(3){width:28vmax;height:28vmax;top:34%;left:38%;opacity:.55;background:radial-gradient(closest-side,color-mix(in oklab,var(--accent-300) 70%,transparent),transparent);animation:aur-3 34s ease-in-out infinite alternate}
@keyframes aur-1{to{transform:translate3d(-16vmax,12vmax,0) scale(1.18)}}
@keyframes aur-2{to{transform:translate3d(18vmax,-10vmax,0) scale(.9)}}
@keyframes aur-3{to{transform:translate3d(-22vmax,14vmax,0) scale(1.3)}}
.face::after{content:"";position:absolute;inset:0;z-index:-1;opacity:.07;mix-blend-mode:overlay;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* one column settled at the bottom: the title, the two buttons, then the card of the current slide */
.face-body{flex:1;display:grid;align-items:end;padding-top:170px;padding-bottom:30px}
.face-copy{max-width:880px;display:grid}
/* each slide's own words, stacked in one place; only the current slide's show, and they play their
   entrance again whenever the slide comes back */
.face-copy-item{grid-area:1/1;align-self:end;min-width:0;opacity:0;visibility:hidden;transition:opacity .5s var(--ease),visibility 0s .5s}
.face-copy-item.on{opacity:1;visibility:visible;transition:opacity .7s var(--ease) .15s,visibility 0s}
.face-copy-item:not(.on) .w,.face-copy-item:not(.on) .fade-late{animation:none}
.face-kicker{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}
.face-kicker .chip{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.face-meta{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:20px;font-size:18px;color:rgb(255 255 255 / .9)}
.face-meta span{display:inline-flex;align-items:center;gap:8px}
.face-lead{max-width:640px;margin:16px 0 0;font-size:18.5px;line-height:1.75;color:rgb(255 255 255 / .88);text-shadow:0 2px 20px rgb(0 0 0 / .35)}
.face-countdown{display:inline-grid;gap:4px;margin-top:22px;padding:12px 14px;border-radius:var(--r-lg);background:var(--glass-dark);
  backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur)}
.face-countdown>small{font-size:13.5px;color:rgb(255 255 255 / .8)}
.face-countdown .cd{margin-top:4px;min-width:300px}
.face-countdown .cd b{font-size:24px}
/* the caption cards, stacked in one place beside the pause button: each says what its slide
   is and links to it; the short ones sit against the button */
.face-captions{display:grid;grid-template-columns:minmax(0,1fr);justify-items:end;min-width:0}
.face-caption{grid-area:1/1;display:inline-flex;align-items:center;gap:12px;max-width:100%;min-height:44px;padding:6px 20px 6px 18px;border-radius:24px;font-size:15px;font-weight:600;color:#fff;
  background:rgb(255 255 255 / .08);border:1px solid transparent;backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);
  opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .5s var(--ease),transform .5s var(--ease-out),visibility 0s .5s,background .3s}
.face-caption.on{opacity:1;visibility:visible;transform:none;transition:opacity .7s var(--ease) .2s,transform .7s var(--ease-out) .2s,visibility 0s,background .3s}
.face-caption.empty{display:none}
.face-caption .beacon{flex:none;width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 0 var(--accent);animation:face-beacon 2.6s var(--ease-out) infinite}
@keyframes face-beacon{70%{box-shadow:0 0 0 10px transparent}100%{box-shadow:0 0 0 0 transparent}}
.face-caption small{flex:none;font-size:13px;font-weight:600;color:var(--accent-300);padding-inline-end:12px;border-inline-end:1px solid rgb(255 255 255 / .25)}
.face-caption b{min-width:0;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.face-caption .when{flex:none;font-size:14px;font-weight:500;color:rgb(255 255 255 / .72)}
.face-caption .icon{flex:none;width:16px;height:16px;transition:transform .3s var(--ease-out)}
a.face-caption:hover{background:rgb(255 255 255 / .16)}
a.face-caption:hover .icon{transform:translateX(-3px)}
[dir="ltr"] a.face-caption:hover .icon{transform:translateX(3px)}
.face h1,.face .face-h{font-size:clamp(46px,7vw,108px);line-height:1.08;font-weight:700;letter-spacing:-.5px;text-wrap:balance;text-shadow:0 4px 40px rgb(0 0 0 / .3);margin:0}
.face .face-h-event{font-size:clamp(36px,4.8vw,72px)}   /* an event's name is long */
.face h1 .accent,.face .face-h .accent{color:var(--accent-300);text-shadow:none;padding-block:.12em .3em;margin-block:-.12em -.3em;
  background:linear-gradient(100deg,var(--accent-300) 0%,#fff 45%,var(--accent-300) 70%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.face h1 .accent.w,.face .face-h .accent.w{animation:wordin 1.1s var(--ease-out) forwards,face-shine 7s linear infinite;animation-delay:calc(.45s + var(--i) * .09s),2.4s}
@keyframes face-shine{from{background-position:100% 0}to{background-position:-120% 0}}
.face-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.face-cta .btn{--h:56px;padding-inline:28px;font-size:16px}

/* minmax(0,…): a long caption must shrink into its column, not widen it past the edge */
.face-foot{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:16px;padding-bottom:26px}
.face-dots{display:flex;gap:6px}
.face-dots button{width:46px;height:30px;display:grid;place-items:center}
.face-dots i{position:relative;display:block;width:100%;height:3px;border-radius:3px;overflow:hidden;background:rgb(255 255 255 / .26)}
.face-dots i::after{content:"";position:absolute;inset:0;border-radius:inherit;background:#fff;transform:scaleX(0);transform-origin:right}
[dir="ltr"] .face-dots i::after{transform-origin:left}
.face-dots [aria-current] i::after{animation:face-dot var(--slide-ms,7000ms) linear forwards}
@keyframes face-dot{to{transform:scaleX(1)}}
.face-next{justify-self:center;display:inline-flex;flex-direction:column;align-items:center;gap:10px;font-size:14px;font-weight:500;color:rgb(255 255 255 / .82);transition:color .3s}
.face-next:hover{color:#fff}
.face-next i{position:relative;width:26px;height:42px;border:2px solid rgb(255 255 255 / .5);border-radius:14px}
.face-next i::after{content:"";position:absolute;top:8px;left:50%;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:#fff;animation:face-wheel 1.9s var(--ease-out) infinite}
@keyframes face-wheel{0%{opacity:0;transform:translateY(-4px)}30%{opacity:1}100%{opacity:0;transform:translateY(13px)}}
.face-tools{justify-self:end;display:flex;align-items:center;gap:12px;min-width:0;max-width:100%}
.face-pause{flex:none}
.face-pause{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:#fff;
  background:rgb(255 255 255 / .1);border:1px solid transparent;backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);transition:background .3s}
.face-pause:hover{background:rgb(255 255 255 / .2)}
.face-pause .icon{width:18px;height:18px}
.face-pause .icon+.icon,.face-pause[aria-pressed="true"] .icon:first-child{display:none}
.face-pause[aria-pressed="true"] .icon+.icon{display:block}
.face.paused .face-slide img,.face.paused .face-aurora i,.face.paused .face-dots i::after{animation-play-state:paused}
/* leaving the face: its words drift up and fade (browsers with scroll-driven animations) */
@supports (animation-timeline:view()){
  .face-body{animation:face-exit linear both;animation-timeline:view();animation-range:exit 0% exit 75%}
  @keyframes face-exit{to{opacity:0;transform:translateY(-70px)}}
}
/* the event hero below the face starts its entrance only when it is reached */
.js .hero.defer .words .w,.js .hero.defer .fade-late,.js .hero.defer .hero-media img{animation-play-state:paused}

@media (max-width:720px){
  .face{min-height:max(640px,100svh)}
  .face-body{padding-top:120px;padding-bottom:22px}
  .face h1,.face .face-h{font-size:clamp(38px,11vw,52px)}
  .face .face-h-event{font-size:clamp(30px,8.5vw,40px)}
  .face-meta,.face-lead{font-size:15.5px}
  .face-countdown .cd{min-width:0}
  .face-cta{margin-top:24px}
  .face-cta .btn{--h:52px;flex:1 1 100%;justify-content:center}
  .face-foot{grid-template-columns:auto 1fr auto;row-gap:14px;padding-bottom:18px}
  /* no room beside the button on a phone: the card takes a row of its own above the controls */
  .face-tools{display:contents}
  .face-captions{grid-column:1/-1;grid-row:1;justify-items:stretch}
  .face-pause{justify-self:end}
  .face-caption{flex-wrap:wrap;row-gap:4px;padding:8px 14px;font-size:13.5px;border-radius:18px}
  .face-caption b{white-space:normal}
  .face-dots button{width:26px}
  .face-next{font-size:13px}
}
@media (prefers-reduced-motion:reduce){
  .face-slide img,.face-aurora i,.face-caption .beacon,.face-next i::after,.face h1 .accent.w,.face .face-h .accent.w{animation:none!important}
  .face-stage{transition:none}
  .face-body{animation:none!important}
}

/* ============================================================ the series strip, under the face */
/* The exhibition series' logos part the face from what follows (pages/includes/series_strip.html).
   Fixed places; the logos step from one to the next (site.js [data-series]). As tall as the partners'
   logos (88 px), no frames; grey at rest with a mouse, the one under the pointer in colour and 5%
   larger, the rest unmoved. A touch screen shows them in colour, as the partners strip does. */
.series-strip{padding-block:26px 30px;border-bottom:1px solid var(--line)}
.series-title{margin:0 0 16px;text-align:center;font-size:clamp(19px,1.7vw,23px);line-height:1.4;font-weight:700}   /* as «شركاؤنا» */
.series-track a{display:grid;place-items:center;width:100%;height:100%;border-radius:12px}
.series-track a:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}
.series-view{overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 24px,#000 calc(100% - 24px),transparent);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 24px,#000 calc(100% - 24px),transparent)}
.series-track{display:flex;margin:0;padding:0;list-style:none;will-change:transform}
.series-track li{flex:0 0 var(--slot,280px);height:104px;display:grid;place-items:center;padding-inline:14px}
.series-track img{display:block;max-height:88px;max-width:100%;width:auto;height:auto;object-fit:contain;
  transition:filter .5s var(--ease),opacity .5s var(--ease),transform .5s var(--ease-out)}
.series-strip.still .series-track{justify-content:center}
@media (hover:hover) and (pointer:fine){
  .series-track img{filter:grayscale(1);opacity:.72}
  .series-track li:hover img,.series-track a:focus-visible img{filter:none;opacity:1;transform:scale(1.05)}
}
@media (prefers-reduced-motion:reduce){.series-track li:hover img{transform:none}}
@media (max-width:640px){
  .series-strip{padding-block:20px}
  .series-track li{height:84px;padding-inline:10px}
  .series-track img{max-height:64px}
}
