/* Kurzbach Spectroscopy Studio — effects layer */
#fx-field{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:.9}
#fx-spot{position:fixed;left:0;top:0;width:620px;height:620px;margin:-310px 0 0 -310px;border-radius:50%;pointer-events:none;z-index:1;
  background:radial-gradient(circle,rgba(79,227,224,.10) 0%,rgba(79,227,224,.04) 35%,transparent 70%);transition:opacity 1.2s;opacity:0;will-change:transform}
body.fx-has-pointer #fx-spot{opacity:1}
body>div:not(#fx-boot):not(#fx-spot),body>main{position:relative;z-index:2}
body>div:not(#fx-boot){background:transparent!important}
body{background:#06080C}

/* HUD corners on hero */
.fx-corner{position:absolute;width:28px;height:28px;border-color:#4FE3E0;border-style:solid;opacity:.7;z-index:2;pointer-events:none}
.fx-corner.tl{top:18px;left:18px;border-width:2px 0 0 2px}.fx-corner.tr{top:18px;right:18px;border-width:2px 2px 0 0}
.fx-corner.bl{bottom:18px;left:18px;border-width:0 0 2px 2px}.fx-corner.br{bottom:18px;right:18px;border-width:0 2px 2px 0}
.fx-on .fx-corner{animation:fxCorner 6s ease-in-out infinite}
@keyframes fxCorner{0%,100%{opacity:.35;transform:scale(1)}50%{opacity:.9;transform:scale(1.15)}}

/* Holographic accent text */
.fx-holo{background:linear-gradient(100deg,#4FE3E0 0%,#9DB4FF 22%,#E8EEF2 34%,#4FE3E0 46%,#FFB547 70%,#4FE3E0 100%);background-size:300% 100%;
  -webkit-background-clip:text;background-clip:text;color:transparent!important;-webkit-text-fill-color:transparent}
.fx-on .fx-holo{animation:fxHolo 10s linear infinite}
@keyframes fxHolo{to{background-position:-300% 0}}
.fx-on h1{text-shadow:0 0 40px rgba(79,227,224,.12)}

/* Card glare + holographic edge */
.fx-glare{--mx:50%;--my:50%}
.fx-glare::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;transition:opacity .9s;
  background:radial-gradient(420px circle at var(--mx) var(--my),rgba(79,227,224,.13),rgba(255,181,71,.05) 40%,transparent 65%)}
.fx-glare:hover::before{opacity:1}
.fx-glare{position:relative}
.fx-glare>*{position:relative;z-index:2}

/* Scroll reveal */
.fx-rv{opacity:0;transform:translateY(36px);filter:blur(6px);transition:opacity 1.6s cubic-bezier(.16,1,.3,1),transform 1.6s cubic-bezier(.16,1,.3,1),filter 1.6s}
.fx-rv.fx-in{opacity:1;transform:none;filter:none}

/* Nav: chromatic hover + live readout */
nav a{transition:color .6s,text-shadow .6s}
nav a:hover{text-shadow:-1.5px 0 rgba(255,181,71,.7),1.5px 0 rgba(79,227,224,.7)}
.fx-status{display:flex;align-items:center;gap:8px;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.14em;color:#93A3AE;text-transform:uppercase;white-space:nowrap}
.fx-status i{width:6px;height:6px;border-radius:50%;background:#4FE3E0;box-shadow:0 0 10px #4FE3E0;display:inline-block}
.fx-on .fx-status i{animation:fxBlink 3s ease-in-out infinite}
@keyframes fxBlink{50%{opacity:.25}}
@media (max-width:1100px){.fx-status{display:none}}
header::after{content:"";position:absolute;left:0;bottom:-1px;height:1px;width:30%;background:linear-gradient(90deg,transparent,#4FE3E0,transparent);opacity:.8}
.fx-on header::after{animation:fxHeader 9s cubic-bezier(.45,0,.55,1) infinite}
@keyframes fxHeader{0%{transform:translateX(-100%)}100%{transform:translateX(430%)}}

/* Magnetic pill buttons */
.fx-mag{transition:transform .9s cubic-bezier(.16,1,.3,1),box-shadow .9s}
.fx-mag:hover{box-shadow:0 0 28px rgba(79,227,224,.35)}

/* Boot sequence */
#fx-boot{position:fixed;inset:0;z-index:100;background:#06080C;display:flex;align-items:center;justify-content:center;
  font-family:'IBM Plex Mono',monospace;color:#93A3AE;transition:clip-path 1.4s cubic-bezier(.77,0,.18,1);clip-path:inset(0 0 0 0)}
#fx-boot.fx-out{clip-path:inset(0 0 100% 0)}
#fx-boot .b{width:min(560px,86vw);display:flex;flex-direction:column;gap:10px;font-size:13px;letter-spacing:.12em}
#fx-boot .l{opacity:0;transform:translateX(-10px);transition:opacity .5s,transform .5s}
#fx-boot .l.on{opacity:1;transform:none}
#fx-boot .l b{color:#4FE3E0;font-weight:500}
#fx-boot .bar{height:2px;background:rgba(140,200,220,.15);margin-top:14px;overflow:hidden}
#fx-boot .bar span{display:block;height:100%;width:0;background:linear-gradient(90deg,#4FE3E0,#FFB547);transition:width 2.2s cubic-bezier(.4,0,.2,1)}
#fx-boot .t{font-family:'Space Grotesk',sans-serif;font-size:clamp(28px,4vw,44px);color:#E8EEF2;letter-spacing:-.02em;margin-bottom:12px}
#fx-boot button{position:absolute;right:24px;bottom:24px;background:none;border:1px solid rgba(140,200,220,.3);color:#93A3AE;border-radius:999px;
  padding:12px 18px;font:inherit;font-size:12px;letter-spacing:.14em;cursor:pointer}

@media (prefers-reduced-motion:reduce){#fx-field,#fx-spot,#fx-boot{display:none!important}.fx-rv{opacity:1!important;transform:none!important;filter:none!important}}
