/* Evolution Education: site-wide experience layer (public pages only).
   Loaded by Base.astro. Everything here is additive: depth, light and motion on top of the house system.
   Respects prefers-reduced-motion. */

/* Gold reading progress line */
.ee-progress{position:fixed;left:0;top:0;height:2px;width:100%;transform-origin:0 50%;transform:scaleX(0);z-index:9999;pointer-events:none;
  background:linear-gradient(90deg,#9a6f22,#ddb96f 55%,#f7eed8);box-shadow:0 0 12px rgba(221,185,111,.55)}

/* Homepage hero: layered depth (room, headline, player) */
.ee-depth-fg{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.ee-depth-fg svg{display:block;width:100%;height:100%;filter:brightness(.82) saturate(.95) contrast(1.02)}
.ee-depth-hero .hero-stage{position:relative;z-index:0}
.ee-depth-hero .hero-photo-fade,.ee-depth-fg{will-change:transform;transform:translate3d(var(--ee-bx,0),var(--ee-by,0),0) scale(var(--ee-bs,1))}
.ee-depth-fg{transform:translate3d(var(--ee-fx,0),var(--ee-fy,0),0) scale(var(--ee-fs,1));transform-origin:var(--ee-fo,88% 58%)}
.ee-depth-hero .hero-stage>*{will-change:transform}
.ee-depth-hero::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(105deg,transparent 30%,rgba(255,236,190,.10) 45%,transparent 60%);transform:translateX(-120%);animation:ee-sweep 3.2s 1.2s cubic-bezier(.6,0,.2,1) forwards}
@keyframes ee-sweep{to{transform:translateX(120%)}}

/* Inner page heroes: depth and a single light sweep */
.ee-hero-3d{perspective:1400px}
.ee-hero-3d>div:first-child{transform:translate3d(0,var(--ee-hy,0),0) scale(var(--ee-hs,1.06)) rotateX(var(--ee-rx,0)) rotateY(var(--ee-ry,0));transform-origin:50% 40%;will-change:transform}
.ee-hero-3d .hero-stage{transform:translate3d(0,var(--ee-ty,0),0);opacity:var(--ee-to,1);will-change:transform,opacity}
.ee-hero-3d::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(105deg,transparent 35%,rgba(255,236,190,.09) 48%,transparent 60%);transform:translateX(-120%);animation:ee-sweep 2.6s .5s cubic-bezier(.6,0,.2,1) forwards}

/* Particle journey canvas in the films header */
.film-programme__header{position:relative}
.ee-journey{position:absolute;right:0;top:50%;width:min(46vw,640px);height:min(130%,560px);transform:translateY(-50%);pointer-events:none;z-index:0;opacity:0;transition:opacity 1.2s}
.ee-journey.is-on{opacity:1}
.film-programme__header>div{position:relative;z-index:1}
@media (max-width:899px){.ee-journey{display:none}}

/* Scroll-linked 3D entrance for photography */
.ee-rise{transform:perspective(1200px) translate3d(0,var(--ee-y,0),0) rotateX(var(--ee-r,0)) scale(var(--ee-s,1));transform-origin:50% 100%;will-change:transform}
.ee-pan>img,.ee-pan>picture img{transform:translate3d(0,var(--ee-p,0),0) scale(1.12);will-change:transform}

/* Word-by-word heading entrance */
.ee-split .ee-w{display:inline-block;transform:translate3d(0,.55em,0) rotateX(-40deg);opacity:0;filter:blur(6px);transform-origin:50% 100%;
  transition:transform .9s cubic-bezier(.16,1,.3,1),opacity .9s,filter .9s;transition-delay:calc(var(--i,0) * 55ms)}
.ee-split.is-in .ee-w{transform:none;opacity:1;filter:none}

/* Card tilt with a soft gold glare */
.ee-tilt{transform:perspective(1000px) rotateX(var(--ee-tx,0)) rotateY(var(--ee-ty2,0)) translateZ(0);transition:transform .7s cubic-bezier(.2,.8,.2,1),box-shadow .5s;transform-style:preserve-3d;position:relative}
.ee-tilt.is-tilting{transition:transform .1s linear,box-shadow .5s;box-shadow:0 30px 60px -32px rgba(16,14,56,.55)}
.ee-glare{position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:5;opacity:0;transition:opacity .45s;mix-blend-mode:soft-light;
  background:radial-gradient(420px circle at var(--ee-gx,50%) var(--ee-gy,50%),rgba(255,240,205,.55),transparent 45%)}
.ee-tilt.is-tilting .ee-glare{opacity:1}

/* Magnetic buttons */
.ee-mag{transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.ee-mag.is-pull{transition:transform .12s linear}

/* Cursor spotlight on dark bands */
.ee-spot{position:relative}
.ee-spot>.ee-spot-l{position:absolute;inset:0;pointer-events:none;z-index:0;opacity:0;transition:opacity .6s;
  background:radial-gradient(520px circle at var(--ee-sx,50%) var(--ee-sy,50%),rgba(221,185,111,.10),transparent 60%)}
.ee-spot.is-lit>.ee-spot-l{opacity:1}

@media (prefers-reduced-motion:reduce){
  .ee-depth-hero::after,.ee-hero-3d::after{display:none}
  .ee-rise,.ee-pan>img,.ee-hero-3d>div:first-child,.ee-hero-3d .hero-stage,.ee-depth-fg,.ee-depth-hero .hero-photo-fade{transform:none!important}
  .ee-split .ee-w{transform:none;opacity:1;filter:none}
}

/* ===== v2: films, page transitions, cursor ===== */
/* Films behind closing bands and the footer */
.ee-filmhost{position:relative;isolation:isolate}
.ee-filmbg{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.ee-filmbg video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.6s ease;transform:scale(1.04)}
.ee-filmbg video[src]{opacity:.62}
.ee-filmbg::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(5,5,15,.9) 0%,rgba(10,9,31,.6) 50%,rgba(10,9,31,.25) 100%),radial-gradient(80% 70% at 95% 0%,rgba(212,175,55,.16),transparent 55%)}
.ee-filmbg--foot video[src]{opacity:.3}
.ee-filmbg--foot::after{background:linear-gradient(180deg,rgba(5,5,15,.7),rgba(5,5,15,.94) 55%)}
.ee-filmhost>.hero-photo{opacity:0}

/* Homepage: "Scroll to evolve" */
.ee-film{position:relative;height:340vh;background:#05050f;color:#fff}
.ee-film__stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.ee-film__stage video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(var(--ee-fz,1));will-change:transform}
.ee-film__shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,5,15,.88) 0%,rgba(5,5,15,.45) 45%,rgba(5,5,15,.1) 100%),linear-gradient(0deg,rgba(5,5,15,.75),transparent 40%)}
.ee-film__kicker{position:absolute;left:50%;bottom:9vh;transform:translateX(-50%);font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:#ddb96f;white-space:nowrap}
.ee-film__caps{position:absolute;left:max(1rem,calc((100vw - 72rem)/2 + 1.5rem));top:50%;transform:translateY(-50%);width:min(90vw,52rem)}
.ee-film__cap{position:absolute;left:0;top:50%;margin:0;font-family:var(--font-display,inherit);font-weight:800;letter-spacing:-.03em;line-height:.95;font-size:clamp(2.4rem,6.4vw,5.6rem);
  opacity:0;transform:translateY(calc(-50% + 50px)) rotateX(-25deg);filter:blur(10px);transition:opacity .7s,transform .9s cubic-bezier(.16,1,.3,1),filter .7s;text-shadow:0 10px 40px rgba(0,0,0,.45)}
.ee-film__cap span{display:block;font-size:.16em;letter-spacing:.3em;color:#ddb96f;margin-bottom:1.2rem;font-weight:600}
.ee-film__cap.is-on{opacity:1;transform:translateY(-50%);filter:none}
.ee-film__rail{position:absolute;right:max(1rem,calc((100vw - 72rem)/2 + 1.5rem));top:50%;height:34vh;width:2px;transform:translateY(-50%);background:rgba(255,255,255,.14)}
.ee-film__rail i{position:absolute;inset:0;background:linear-gradient(#f7eed8,#ddb96f);transform-origin:50% 0;transform:scaleY(0)}

/* Pointer ring */
.ee-cursor{position:fixed;left:0;top:0;width:34px;height:34px;margin:-17px 0 0 -17px;border-radius:50%;border:1.5px solid rgba(180,131,46,.75);pointer-events:none;z-index:9998;opacity:0;
  transition:opacity .3s,width .35s cubic-bezier(.2,.8,.2,1),height .35s cubic-bezier(.2,.8,.2,1),margin .35s cubic-bezier(.2,.8,.2,1),background-color .3s,border-color .3s}
.ee-cursor.is-on{opacity:1}
.ee-cursor.is-dark{border-color:rgba(221,185,111,.85)}
.ee-cursor.is-hot{width:58px;height:58px;margin:-29px 0 0 -29px;background:rgba(221,185,111,.14)}
.ee-cursor.is-down{width:24px;height:24px;margin:-12px 0 0 -12px}

/* Page hand-over: the old page sinks back, the new one rises in behind a clean wipe */
header[data-header-variant]{view-transition-name:ee-header}
@media (prefers-reduced-motion:no-preference){
  html::view-transition-old(root){animation:ee-vt-out .55s cubic-bezier(.7,0,.3,1) both!important}
  html::view-transition-new(root){animation:ee-vt-in .95s cubic-bezier(.16,1,.3,1) both!important}
  html::view-transition-group(ee-header){animation-duration:.4s!important}
}
@keyframes ee-vt-out{to{opacity:.35;transform:scale(.965);filter:blur(3px) brightness(.6)}}
@keyframes ee-vt-in{from{clip-path:inset(100% 0 0 0);transform:translateY(60px)}to{clip-path:inset(0 0 0 0);transform:none}}

@media (prefers-reduced-motion:reduce){
  .ee-film{height:auto}.ee-film__stage{position:relative;height:70vh}
  .ee-cursor{display:none}
}
@media (hover:none){.ee-cursor{display:none}}
@media (max-width:640px){
  .ee-film__caps{width:calc(100vw - 2.5rem)}
  .ee-film__cap{font-size:9.2vw;line-height:1}
  .ee-film__rail{display:none}
}
