/* NovrixOn açılış animasyonu — sürüm 1.0
   Hız: --nx-k (1 = temel, büyükse daha yavaş). Vurgu rengi: --nx-accent */
.nx-intro{
  --nx-k: 2.22;
  --nx-accent: #0098FF;
  --nx-ink: #05080c;
  position: fixed; inset: 0; z-index: 9999;
  background: var(--nx-ink);
  overflow: hidden;
  font-family: Archivo, "Helvetica Neue", Arial, sans-serif;
  color: #e8eef4;
}
.nx-intro[hidden]{ display: none; }
.nx-scene{ position:absolute; inset:0; z-index:1; overflow:hidden;
  animation: nxHide .01s linear calc(5.6s * var(--nx-k)) forwards; }
.nx-grid{ position:absolute; inset:0; display:grid; grid-template-columns:repeat(5,1fr); }
.nx-grid span{ border-right:1px solid rgba(255,255,255,.08); transform-origin:top;
  animation: nxDown calc(.85s * var(--nx-k)) cubic-bezier(.7,0,.2,1) both; }
.nx-grid span:nth-child(2){ animation-delay: calc(.08s * var(--nx-k)); }
.nx-grid span:nth-child(3){ border-right-color: rgba(0,152,255,.28); animation-delay: calc(.16s * var(--nx-k)); }
.nx-grid span:nth-child(4){ animation-delay: calc(.24s * var(--nx-k)); }
.nx-grid span:last-child{ border-right: 0; animation: none; }
.nx-rule{ position:absolute; top:0; left:0; right:0; height:2px; background:var(--nx-accent);
  animation: nxWipeR calc(1s * var(--nx-k)) cubic-bezier(.7,0,.2,1) calc(.35s * var(--nx-k)) both; }
.nx-body{ position:absolute; inset:0; display:flex; flex-direction:column; justify-content:center;
  gap:clamp(20px,3.4vh,44px); padding:0 clamp(32px,7vw,140px); }
.nx-status{ display:flex; align-items:center; gap:14px; font-size:clamp(11px,1vw,14px);
  letter-spacing:.22em; color:#8fb6d6;
  animation: nxFade calc(.6s * var(--nx-k)) ease calc(1.5s * var(--nx-k)) both; }
.nx-status i{ width:9px; height:9px; background:var(--nx-accent); display:block;
  animation: nxBlink calc(1.6s * var(--nx-k)) steps(1) calc(2s * var(--nx-k)) infinite; }
.nx-logo{ overflow:hidden; width:min(48vw,620px); min-width:280px; }
.nx-logo img{ display:block; width:100%; height:auto;
  animation: nxUp calc(1.15s * var(--nx-k)) cubic-bezier(.16,.84,.28,1) calc(.95s * var(--nx-k)) both; }
.nx-claim{ display:flex; flex-wrap:wrap; gap:0 .34em; font-weight:800;
  font-size:clamp(24px,3.4vw,58px); line-height:1.15; letter-spacing:-.015em; }
.nx-claim > span{ overflow:hidden; display:inline-block; padding-bottom:.06em; }
.nx-claim > span > span{ display:inline-block;
  animation: nxUp calc(.85s * var(--nx-k)) cubic-bezier(.16,.84,.28,1) both; }
.nx-claim > span:nth-child(1) > span{ animation-delay: calc(2s * var(--nx-k)); }
.nx-claim > span:nth-child(2) > span{ animation-delay: calc(2.16s * var(--nx-k)); }
.nx-claim > span:nth-child(3) > span{ animation-delay: calc(2.32s * var(--nx-k)); }
.nx-claim > span:nth-child(4) > span{ animation-delay: calc(2.48s * var(--nx-k)); }
.nx-claim > span:nth-child(5) > span{ animation-delay: calc(2.64s * var(--nx-k)); }
.nx-claim > span:nth-child(6) > span{ animation-delay: calc(2.8s * var(--nx-k)); }
.nx-hl{ color: var(--nx-accent); }
.nx-meter{ position:absolute; left:clamp(32px,7vw,140px); bottom:clamp(40px,7vh,84px);
  animation: nxFade calc(.5s * var(--nx-k)) ease calc(1.2s * var(--nx-k)) both; }
.nx-meter b{ display:block; font-size:11px; letter-spacing:.22em; color:#5d7f9c;
  margin-bottom:6px; font-weight:400; }
.nx-meter strong{ font-weight:800; font-size:clamp(38px,5vw,88px); line-height:.9;
  letter-spacing:-.03em; font-variant-numeric:tabular-nums; }
.nx-meter em{ font-style:normal; color:var(--nx-accent); }
.nx-lines{ position:absolute; right:clamp(32px,7vw,140px); bottom:clamp(40px,7vh,84px);
  display:flex; flex-direction:column; gap:10px; font-size:clamp(11px,1.05vw,15px);
  letter-spacing:.04em; color:#7fa6c8; max-width:min(46vw,520px); }
.nx-lines div{ display:flex; align-items:center; gap:12px;
  animation: nxWipeR calc(.5s * var(--nx-k)) ease both; }
.nx-lines div:nth-child(1){ animation-delay: calc(3.2s * var(--nx-k)); }
.nx-lines div:nth-child(2){ animation-delay: calc(3.5s * var(--nx-k)); }
.nx-lines div:nth-child(3){ animation-delay: calc(3.8s * var(--nx-k)); }
.nx-lines i{ width:6px; height:6px; background:var(--nx-accent); display:block; }
.nx-progress{ position:absolute; left:0; right:0; bottom:0; height:3px; background:var(--nx-accent);
  transform-origin:left; animation: nxFill calc(3.7s * var(--nx-k)) cubic-bezier(.35,.85,.3,1) calc(1s * var(--nx-k)) both; }
/* Varsayılan konum ekran dışı — animasyon onları içeri getirir.
   Böylece animasyon çalışmadığında (reduced motion) ekran siyah kalmaz. */
.nx-curtain{ position:absolute; left:0; right:0; height:50.2%; z-index:3; background:var(--nx-ink); }
.nx-curtain.top{ top:0; transform:translateY(-100%); border-bottom:2px solid var(--nx-accent);
  animation: nxCurtainTop calc(.78s * var(--nx-k)) cubic-bezier(.7,0,.2,1) calc(4.8s * var(--nx-k)) both; }
.nx-curtain.bottom{ bottom:0; transform:translateY(100%);
  animation: nxCurtainBot calc(.78s * var(--nx-k)) cubic-bezier(.7,0,.2,1) calc(4.8s * var(--nx-k)) both; }
.nx-btn{ position:fixed; z-index:10001; display:inline-flex; align-items:center; gap:10px;
  padding:11px 18px; border:2px solid rgba(255,255,255,.55); background:transparent;
  color:rgba(255,255,255,.9); font-family:inherit; font-weight:800; font-size:13px;
  letter-spacing:.1em; border-radius:0; cursor:pointer;
  transition:background .2s ease, color .2s ease, border-color .2s ease, opacity .3s ease; }
.nx-btn:hover{ background:#fff; border-color:#fff; color:var(--nx-ink); }
.nx-btn:focus-visible{ outline:2px solid var(--nx-accent); outline-offset:2px; }
.nx-sound{ right:clamp(20px,3vw,40px); top:clamp(20px,3vh,40px); }
.nx-sound i{ width:9px; height:9px; display:block; background:var(--nx-accent); opacity:.35; }
.nx-sound.on i{ opacity:1; }
.nx-replay{ left:clamp(20px,3vw,40px); top:clamp(20px,3vh,40px); opacity:0; pointer-events:none; }
.nx-replay.show{ opacity:1; pointer-events:auto; }
@keyframes nxDown{ from{ transform:scaleY(0) } to{ transform:scaleY(1) } }
@keyframes nxWipeR{ from{ clip-path:inset(0 100% 0 0) } to{ clip-path:inset(0 0 0 0) } }
@keyframes nxUp{ from{ transform:translateY(118%) } to{ transform:translateY(0) } }
@keyframes nxFade{ from{ opacity:0 } to{ opacity:1 } }
@keyframes nxFill{ from{ transform:scaleX(0) } to{ transform:scaleX(1) } }
@keyframes nxCurtainTop{ from{ transform:translateY(-100%) } to{ transform:translateY(0) } }
@keyframes nxCurtainBot{ from{ transform:translateY(100%) } to{ transform:translateY(0) } }
@keyframes nxHide{ to{ opacity:0 } }
@keyframes nxBlink{ 50%{ opacity:.25 } }
/* Hareketi azalt: animasyon yok, kompozisyon doğrudan görünür halde durur.
   (Süreleri .01s'e indirmek sahneyi gizleyip boş ekran bırakıyordu.) */
@media (prefers-reduced-motion: reduce){
  .nx-intro .nx-scene, .nx-intro .nx-scene *, .nx-intro .nx-curtain{ animation:none !important; }
  .nx-intro .nx-scene{ opacity:1 !important; }
}
