/* =========================================================================
   FLIGHT FX  -  additivt 3D/interaktivt effekt-lag til Flight 4000
   Kan fjernes helt ved at slette <link>+<script> til flight-fx i index.html.
   Rører IKKE tekst, struktur eller navigation - kun lag ovenpå.
   ========================================================================= */

/* Sky-tint (daggry -> dag -> tusmørke) - blødt farvelag over hele viewporten */
#fx-tint{position:fixed;inset:0;z-index:5;pointer-events:none;mix-blend-mode:soft-light;opacity:.55;transition:background-color .3s linear}

/* Signatur-flyrute (fixed SVG-overlay) */
#fx-route{position:fixed;inset:0;z-index:6;pointer-events:none;opacity:0;transition:opacity 1.2s ease}
#fx-route.on{opacity:1}
#fx-route path.route{fill:none;stroke:rgba(120,185,240,.42);stroke-width:1.4;stroke-dasharray:5 8;stroke-linecap:round;filter:drop-shadow(0 0 4px rgba(27,139,217,.5))}
#fx-route .plane{fill:#fff;filter:drop-shadow(0 0 6px rgba(120,185,240,.9))}
#fx-route .glow{fill:none;stroke:rgba(27,139,217,.28);stroke-width:5;stroke-linecap:round;filter:blur(4px)}

/* Hero WebGL-partikler (contrails / lysstøv) */
#fx-hero{position:absolute;inset:0;z-index:1;pointer-events:none}

/* 3D-globus i stats-sektionen (dekorativt baggrundslag) */
#fx-globe{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.92}

/* Custom cursor: lille fly der peger i bevægelsesretningen (kun desktop) */
/* Ankeret sidder præcist på klik-punktet; flyet centreres om ankeret og drejer
   omkring sit eget centrum -> klik-punktet = midten af flyet. */
#fx-cursor{position:fixed;left:0;top:0;z-index:99998;pointer-events:none;width:0;height:0;opacity:0;transition:opacity .35s ease;will-change:transform;transform-origin:0 0}
#fx-cursor svg{position:absolute;left:-15px;top:-15px;display:block;filter:drop-shadow(0 0 3px rgba(5,9,20,.55))}
#fx-cursor.on{opacity:1}
#fx-cursor.hot svg{filter:drop-shadow(0 0 7px rgba(120,185,240,.95))}
body.fx-cursor-active,
body.fx-cursor-active a,
body.fx-cursor-active button,
body.fx-cursor-active .card,
body.fx-cursor-active label,
body.fx-cursor-active select,
body.fx-cursor-active input,
body.fx-cursor-active textarea{cursor:none !important}
/* Læsbarhed: hold "Flight 4000 i tal" + tal-labels skarpe oven på globussen */
#stats .stats__head{position:relative;z-index:2}
#stats .stats__head .eyebrow{color:#93c6f7;text-shadow:0 1px 2px rgba(5,9,20,.95), 0 0 14px rgba(5,9,20,.85)}
#stats .stats__head .eyebrow::before{background:#93c6f7}
#stats .stat__lbl{position:relative;z-index:2;text-shadow:0 1px 8px rgba(5,9,20,.9)}
#stats .stats__row{position:relative;z-index:2}

@media(max-width:820px){#fx-cursor{display:none}}
@media (prefers-reduced-motion: reduce){#fx-route,#fx-tint{display:none}}

/* Scroll-rute (flyverute i højre side der tegnes mens man scroller) */
:root{--rail-rgb:27,139,217;--rail-dark:#0C1430}
#fxPath{position:fixed;top:0;right:16px;width:44px;height:100vh;z-index:30;pointer-events:none;overflow:visible}
#fxPath .fx-hit{pointer-events:stroke;cursor:ns-resize;touch-action:none}
#fxPath .fx-route-bg{fill:none;stroke:rgba(var(--rail-rgb),.42);stroke-width:2.4;stroke-linecap:round;stroke-dasharray:.5 7}
#fxPath .fx-route-edge{fill:none;stroke:rgb(var(--rail-rgb));stroke-width:7;stroke-linecap:round;filter:drop-shadow(0 0 5px rgba(var(--rail-rgb),.6))}
#fxPath .fx-route{fill:none;stroke:#fff;stroke-width:3.4;stroke-linecap:round}
#fxPath .fx-node{fill:var(--rail-dark);stroke:rgb(var(--rail-rgb));stroke-width:1.8;transition:fill .3s,stroke .3s}
#fxPath .fx-node.is-passed{fill:#fff;stroke:#fff}
#fxPath .fx-label{opacity:0;transition:opacity .4s}
#fxPath .fx-label.is-passed{opacity:.96}
#fxPath .fx-tagbg{fill:rgba(8,14,30,.72);stroke:rgba(var(--rail-rgb),.55);stroke-width:1}
#fxPath .fx-tagtx{fill:#EAF4FF;font-family:'Inter',system-ui,sans-serif;font-size:10px;font-weight:600;letter-spacing:.09em;text-transform:uppercase}
#fxPath .fx-piece{fill:rgb(var(--rail-rgb));stroke:#fff;stroke-width:1.2;stroke-linejoin:round;filter:drop-shadow(0 0 7px rgba(var(--rail-rgb),.9))}
#fxPath.is-dragging .fx-piece{filter:drop-shadow(0 0 11px rgba(var(--rail-rgb),1))}
@media (max-width:1100px){#fxPath{display:none}}
@media (prefers-reduced-motion:reduce){#fxPath{display:none}}
