:root{--flight-accent:#69eee7;--flight-accent-rgb:105,238,231}
#stage canvas{transform-origin:50% 50%;transition:filter .5s ease}
#stage.hollywood-active canvas{transform:scale(calc(1.035 + var(--film-push,0) * .012)) rotate(var(--film-roll,0deg));filter:saturate(1.07) contrast(1.035);will-change:transform}
.hollywood-fx{position:absolute;inset:0;z-index:7;overflow:hidden;pointer-events:none;opacity:0;transition:opacity .45s ease}
#stage.hollywood-active .hollywood-fx{opacity:1}
.film-letterbox{position:absolute;z-index:8;left:0;right:0;height:clamp(20px,5.4vh,62px);background:linear-gradient(#000,rgba(0,0,0,.96));transform:scaleY(0);transition:transform .65s cubic-bezier(.16,1,.3,1)}
.film-letterbox-top{top:0;transform-origin:top}.film-letterbox-bottom{bottom:0;transform-origin:bottom;background:linear-gradient(rgba(0,0,0,.96),#000)}
#stage.hollywood-active .film-letterbox{transform:scaleY(1)}
.film-speed-lines{position:absolute;inset:-20%;opacity:calc(var(--film-speed,0) * .34);background:repeating-conic-gradient(from 0deg at 50% 50%,transparent 0 5deg,rgba(var(--flight-accent-rgb),.18) 5.25deg,transparent 5.7deg 11deg);mask-image:radial-gradient(circle,transparent 0 20%,#000 47%,transparent 78%);transform:scale(calc(.72 + var(--film-speed,0) * .5)) rotate(calc(var(--film-roll,0deg) * -.35));filter:blur(.7px);mix-blend-mode:screen}
.film-atmosphere{position:absolute;inset:0;background:radial-gradient(circle at 50% 55%,transparent 0 25%,rgba(var(--flight-accent-rgb),calc(var(--film-speed,0) * .045)) 47%,rgba(0,3,8,.5) 100%);box-shadow:inset 0 0 15vw rgba(0,0,0,.52);transition:background .3s}
.film-target-lock{position:absolute;left:50%;top:50%;width:112px;height:112px;transform:translate(-50%,-50%) scale(.8) rotate(-12deg);border:1px solid rgba(var(--flight-accent-rgb),.34);border-radius:50%;opacity:0;transition:opacity .4s ease,transform .8s cubic-bezier(.16,1,.3,1);box-shadow:0 0 30px rgba(var(--flight-accent-rgb),.08)}
.film-target-lock::before,.film-target-lock::after{content:"";position:absolute;background:var(--flight-accent);box-shadow:0 0 10px var(--flight-accent)}
.film-target-lock::before{left:50%;top:-9px;width:1px;height:130px}.film-target-lock::after{top:50%;left:-9px;width:130px;height:1px}
.film-target-lock i{position:absolute;inset:20px;border:1px dashed rgba(var(--flight-accent-rgb),.46);border-radius:50%;animation:targetSpin 7s linear infinite}
.film-target-lock span{position:absolute;left:50%;top:50%;width:6px;height:6px;border-radius:50%;background:#fff;transform:translate(-50%,-50%);box-shadow:0 0 16px var(--flight-accent)}
#stage[data-hollywood-phase="approach"] .film-target-lock,#stage[data-hollywood-phase="descent"] .film-target-lock{opacity:.82;transform:translate(-50%,-50%) scale(1) rotate(0)}
.film-kicker{position:absolute;z-index:9;top:max(8vh,72px);left:50%;transform:translate(-50%,-10px);display:grid;justify-items:center;gap:4px;opacity:0;transition:opacity .5s ease,transform .7s cubic-bezier(.16,1,.3,1)}
#stage.hollywood-active .film-kicker{opacity:1;transform:translate(-50%,0)}
.film-kicker small{color:var(--flight-accent);font-size:12px;font-weight:900;letter-spacing:.18em;text-shadow:0 0 10px rgba(0,0,0,0.9)}
.film-kicker strong{font-size:clamp(20px,2.6vw,32px);color:#ffffff;font-weight:900;white-space:nowrap;background:rgba(2,10,16,.85);padding:8px 20px;border-radius:16px;border:1px solid rgba(var(--flight-accent-rgb),.4);backdrop-filter:blur(14px);box-shadow:0 8px 30px rgba(0,0,0,.7),0 0 20px rgba(var(--flight-accent-rgb),.25);text-shadow:0 2px 14px #000}
.skip-flight{position:absolute;z-index:29;left:18px;bottom:max(18px,env(safe-area-inset-bottom));min-height:40px;padding:0 14px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:rgba(0,7,12,.52);backdrop-filter:blur(9px);color:#c8d9dc;font:700 12px/1 system-ui;opacity:0;visibility:hidden;transform:translateY(8px);transition:.3s ease;cursor:pointer}
.skip-flight.show{opacity:.9;visibility:visible;transform:none}.skip-flight:hover{color:#fff;border-color:rgba(var(--flight-accent-rgb),.56)}
#stage.hollywood-finale .film-atmosphere{background:radial-gradient(circle at 50% 50%,rgba(var(--flight-accent-rgb),.3),rgba(var(--flight-accent-rgb),.08) 20%,transparent 52%)}
#stage.hollywood-finale .film-target-lock{opacity:0;transform:translate(-50%,-50%) scale(1.5)}
.flight{top:auto;bottom:max(8vh,72px);transform:translate(-50%,0);width:min(580px,92vw);padding:16px 24px;border:1px solid rgba(var(--flight-accent-rgb),.45);border-radius:20px;background:rgba(2,10,16,.88);backdrop-filter:blur(16px);box-shadow:0 12px 40px rgba(0,0,0,.85),0 0 30px rgba(var(--flight-accent-rgb),.25)}
.flight.show{transform:translate(-50%,0) scale(1)}.flight:not(.show){transform:translate(-50%,10px) scale(.97)}
.flight .phase{color:var(--flight-accent);font-weight:800;font-size:14px;letter-spacing:.05em}
.flight .name{font-size:clamp(26px,3.2vw,36px);color:#ffffff;font-weight:900;text-shadow:0 2px 14px #000,0 0 20px rgba(var(--flight-accent-rgb),.6);margin:6px 0}
.flight .bar i{background:linear-gradient(90deg,rgba(var(--flight-accent-rgb),.55),var(--flight-accent) 70%,#fff)}
@keyframes targetSpin{to{transform:rotate(360deg)}}
@media(max-width:640px){
  #stage.hollywood-active canvas{transform:scale(1.045) rotate(calc(var(--film-roll,0deg) * .6))}
  #stage[data-fx-quality="lite"] .film-speed-lines{display:none}
  .film-letterbox{height:30px}.film-kicker{top:max(58px,calc(env(safe-area-inset-top) + 42px))}
  .film-target-lock{width:84px;height:84px}.film-target-lock::before{height:100px}.film-target-lock::after{width:100px}
  .flight{bottom:max(62px,calc(env(safe-area-inset-bottom) + 48px));width:min(350px,88vw);padding:13px 16px 12px;backdrop-filter:none}
  .flight .name{font-size:26px}.skip-flight{left:12px;bottom:max(12px,env(safe-area-inset-bottom))}
}
@media(prefers-reduced-motion:reduce){
  #stage.hollywood-active canvas{transform:none;filter:none}.film-speed-lines{display:none}.film-target-lock i{animation:none}
  .film-letterbox,.film-kicker,.film-target-lock{transition:none}
}
