/* Cinematic animation layer. No custom cursor styles. */
:root{
  --cinema-ease:cubic-bezier(.16,1,.3,1);
  --cinema-hard:cubic-bezier(.8,0,.2,1);
}

.cinema-loader{
  position:fixed;
  inset:0;
  z-index:5000;
  display:grid;
  place-items:center;
  background:#030303;
  color:#fff;
  overflow:hidden;
  transition:opacity .85s ease,visibility 0s .85s;
}
.cinema-loader::before{
  content:"";
  position:absolute;
  inset:-20%;
  background:
    radial-gradient(circle at 50% 42%,rgba(255,255,255,.13),transparent 16%),
    radial-gradient(circle at 50% 50%,rgba(255,255,255,.07),transparent 28%),
    linear-gradient(115deg,transparent 0%,rgba(255,255,255,.045) 42%,transparent 58%);
  animation:cinemaGlow 4.8s ease-in-out infinite alternate;
}
.cinema-loader::after{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  width:34%;
  left:-40%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.09),transparent);
  transform:skewX(-18deg);
  animation:cinemaSweep 2.8s var(--cinema-hard) infinite;
}
.cinema-mark{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:18px;
  text-align:center;
  font-family:'Space Grotesk',sans-serif;
  letter-spacing:.28em;
  text-transform:uppercase;
  font-size:11px;
}
.cinema-seal{
  position:relative;
  width:112px;
  height:112px;
  display:grid;
  place-items:center;
}
.cinema-seal::before,
.cinema-seal::after{
  content:"";
  position:absolute;
  inset:0;
  border:1px solid rgba(255,255,255,.25);
  border-radius:50%;
}
.cinema-seal::before{animation:cinemaSpin 5.5s linear infinite}
.cinema-seal::after{inset:10px;border-color:rgba(255,255,255,.14);animation:cinemaPulse 1.8s ease-in-out infinite}
.cinema-seal img{
  position:relative;
  z-index:2;
  width:72px;
  filter:invert(1);
  opacity:.94;
  animation:cinemaSeal 1.9s ease-in-out infinite alternate;
}
.cinema-word{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.cinema-word strong{font-weight:700}
.cinema-word span{font-family:'Newsreader',serif;font-style:italic;font-size:15px;letter-spacing:.08em;text-transform:none;color:rgba(255,255,255,.72)}
.cinema-progress{
  width:210px;
  height:1px;
  background:rgba(255,255,255,.18);
  overflow:hidden;
}
.cinema-progress i{
  display:block;
  height:100%;
  width:45%;
  background:#fff;
  animation:cinemaLoadLine 1.05s var(--cinema-hard) infinite;
}
.cinema-smoke{
  position:absolute;
  inset:auto 0 12%;
  height:170px;
  pointer-events:none;
  opacity:.38;
  background:
    radial-gradient(ellipse at 44% 70%,rgba(255,255,255,.12),transparent 30%),
    radial-gradient(ellipse at 56% 60%,rgba(255,255,255,.10),transparent 34%),
    radial-gradient(ellipse at 50% 45%,rgba(255,255,255,.08),transparent 38%);
  filter:blur(18px);
  animation:cinemaSmoke 5.8s ease-in-out infinite alternate;
}
html.cinema-loaded .cinema-loader{opacity:0;visibility:hidden}

.cinema-grain,
.cinema-vignette{
  position:fixed;
  inset:0;
  pointer-events:none;
}
.cinema-grain{
  z-index:4;
  opacity:.045;
  mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='190' height='190'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.75'/%3E%3C/svg%3E");
  animation:cinemaGrain 6s steps(6) infinite;
}
.cinema-vignette{
  z-index:3;
  background:radial-gradient(circle at 50% 45%,transparent 0%,transparent 52%,rgba(0,0,0,.08) 100%);
}

html.js .cinema-reveal{
  opacity:0;
  transform:translate3d(0,46px,0) scale(.985);
  filter:blur(8px);
  transition:opacity .9s ease,transform 1s var(--cinema-ease),filter .9s ease;
  transition-delay:var(--cinema-delay,0ms);
  will-change:opacity,transform,filter;
}
html.js .cinema-reveal.in,
html.js .rv.in,
html.js .reveal.in{
  opacity:1;
  transform:none;
  filter:none;
}

html.js body:not(.loaded) .page-hero .meta,
html.js body:not(.loaded) .page-hero h1,
html.js body:not(.loaded) .page-hero .lede,
html.js body:not(.loaded) .page-hero .cta,
html.js body:not(.loaded) .page-hero .sidecard,
html.js body:not(.loaded) .hero .meta,
html.js body:not(.loaded) .hero h1,
html.js body:not(.loaded) .hero .lead,
html.js body:not(.loaded) .hero .below,
html.js body:not(.loaded) .auth-intro .content,
html.js body:not(.loaded) .authcard{
  opacity:0;
}
html.cinema-loaded .page-hero .meta{animation:cinemaDrop .8s .08s var(--cinema-ease) both}
html.cinema-loaded .page-hero h1{animation:cinemaTitle .95s .18s var(--cinema-ease) both}
html.cinema-loaded .page-hero .lede{animation:cinemaRise .85s .34s var(--cinema-ease) both}
html.cinema-loaded .page-hero .cta{animation:cinemaRise .85s .48s var(--cinema-ease) both}
html.cinema-loaded .page-hero .sidecard{animation:cinemaPanel .9s .56s var(--cinema-ease) both}
html.cinema-loaded .hero .meta{animation:cinemaDrop .8s .08s var(--cinema-ease) both}
html.cinema-loaded .hero h1{animation:cinemaTitle .95s .18s var(--cinema-ease) both}
html.cinema-loaded .hero .lead,
html.cinema-loaded .hero .below{animation:cinemaRise .85s .38s var(--cinema-ease) both}
html.cinema-loaded .auth-intro .content{animation:cinemaTitle .9s .18s var(--cinema-ease) both}
html.cinema-loaded .authcard{animation:cinemaPanel .9s .36s var(--cinema-ease) both}

.nav{animation:cinemaNav .75s .35s var(--cinema-ease) both}
.nav a,.btn,.action,.linkline,.chip{transition:transform .32s var(--cinema-ease),letter-spacing .32s ease,opacity .32s ease,background .32s ease,color .32s ease,border-color .32s ease,box-shadow .32s ease}
.btn,.action,.chip{position:relative;overflow:hidden}
.btn::after,.action::after,.chip::after{
  content:"";
  position:absolute;
  inset:-80% auto -80% -55%;
  width:36%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent);
  transform:skewX(-18deg) translateX(-120%);
  transition:transform .72s ease;
  pointer-events:none;
}
.btn:hover::after,.action:hover::after,.chip:hover::after{transform:skewX(-18deg) translateX(520%)}

.page-hero .watermark,
.hero .watermark{
  animation:cinemaWatermark 11s ease-in-out infinite alternate;
  will-change:transform,opacity;
}
.sidecard,.panel,.card,.form-shell,.authcard,.portrait-card,.figure .frame,.map-frame,.schedule .row,.ledger a,.featured a{
  transition:transform .45s var(--cinema-ease),box-shadow .45s ease,border-color .35s ease,filter .45s ease;
}
.sidecard:hover,.panel:hover,.card:hover,.form-shell:hover,.authcard:hover,.portrait-card:hover,.figure .frame:hover,.map-frame:hover,.schedule .row:hover,.ledger a:hover,.featured a:hover{
  transform:translateY(-8px);
  box-shadow:0 30px 70px -42px rgba(0,0,0,.55);
}
.card img,.figure img,.portrait-img,.featured img,.cimg img,.fimg img{
  transition:transform 1s var(--cinema-ease),filter 1s ease,opacity .6s ease;
}
.card:hover img,.figure:hover img,.portrait-card:hover .portrait-img,.featured a:hover img,.cimg:hover img,.fimg:hover img{
  transform:scale(1.045);
}
.kicker::after,.page-hero .meta,.hero .meta{transform-origin:left}
html.cinema-loaded .kicker::after{animation:cinemaRule 1.1s var(--cinema-hard) both}

@keyframes cinemaGlow{from{transform:translate3d(-1%,1%,0) scale(1)}to{transform:translate3d(1%,-1%,0) scale(1.05)}}
@keyframes cinemaSweep{0%{left:-45%}55%,100%{left:115%}}
@keyframes cinemaSpin{to{transform:rotate(360deg)}}
@keyframes cinemaPulse{0%,100%{transform:scale(.96);opacity:.5}50%{transform:scale(1.06);opacity:1}}
@keyframes cinemaSeal{from{transform:translateY(4px) scale(.98);opacity:.82}to{transform:translateY(-4px) scale(1.02);opacity:1}}
@keyframes cinemaLoadLine{0%{transform:translateX(-120%)}100%{transform:translateX(260%)}}
@keyframes cinemaSmoke{from{transform:translateY(20px) scale(.96)}to{transform:translateY(-12px) scale(1.08)}}
@keyframes cinemaGrain{0%,100%{transform:translate(0,0)}20%{transform:translate(-2%,1%)}40%{transform:translate(1%,-2%)}60%{transform:translate(2%,2%)}80%{transform:translate(-1%,-1%)}}
@keyframes cinemaDrop{from{opacity:0;transform:translateY(-18px);filter:blur(7px)}to{opacity:1;transform:none;filter:none}}
@keyframes cinemaTitle{from{opacity:0;transform:translateY(48px) scale(.985);filter:blur(10px)}to{opacity:1;transform:none;filter:none}}
@keyframes cinemaRise{from{opacity:0;transform:translateY(30px);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}
@keyframes cinemaPanel{from{opacity:0;transform:translateY(34px) scale(.97);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}
@keyframes cinemaNav{from{opacity:0;transform:translateY(-18px)}to{opacity:1;transform:none}}
@keyframes cinemaWatermark{from{transform:translateY(-58%) scale(1);opacity:.06}to{transform:translateY(-56%) scale(1.045);opacity:.105}}
@keyframes cinemaRule{from{transform:scaleX(0)}to{transform:scaleX(1)}}

@media (prefers-reduced-motion:reduce){
  .cinema-loader{display:none}
  .cinema-grain,.cinema-vignette{display:none}
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  html.js .cinema-reveal{opacity:1!important;transform:none!important;filter:none!important}
}
