/* =========================================================
   KITE 3D — WebGL viewer (Three.js). Progressive enhancement:
   if WebGL/JS fails, the poster image remains.
   ========================================================= */
.kite3d-sec{position:relative;padding:clamp(80px,10vw,130px) 0 clamp(60px,8vw,100px);border-bottom:1px solid var(--line);
  background:radial-gradient(120% 90% at 50% 30%,#131109,var(--bg) 70%)}
.kite3d-sec .k3-head{max-width:640px;margin-bottom:34px}
.kite3d-sec .k3-head h2{font-size:clamp(2rem,4.6vw,3.4rem);margin-top:14px}
.kite3d-sec .k3-head .lead{color:var(--muted);margin-top:16px;text-transform:none;letter-spacing:0}

.kite3d{position:relative;height:min(78vh,720px);border:1px solid var(--line);overflow:hidden;
  background:
    radial-gradient(60% 60% at 50% 42%,rgba(203,184,132,.10),transparent 70%),
    radial-gradient(120% 100% at 50% 120%,rgba(255,255,255,.04),transparent 60%),
    #0a0906;
  touch-action:none;cursor:grab}
.kite3d:active{cursor:grabbing}
.kite3d canvas{display:block;width:100%;height:100%;position:relative;z-index:1}
.kite3d-poster{position:absolute;inset:0;z-index:0;background:url(/img/kite-rafale.jpg) center/contain no-repeat;
  opacity:.5;filter:saturate(.5);transition:opacity .8s}
.kite3d.is-loaded .kite3d-poster{opacity:0}

.kite3d-spin{position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%);width:34px;height:34px;
  border:2px solid var(--line2);border-top-color:var(--yellow);border-radius:50%;animation:k3spin .8s linear infinite}
.kite3d.is-loaded .kite3d-spin,.kite3d.is-error .kite3d-spin{display:none}
@keyframes k3spin{to{transform:translate(-50%,-50%) rotate(360deg)}}

.kite3d-hint{position:absolute;z-index:2;left:0;right:0;bottom:16px;text-align:center;pointer-events:none;
  font-family:'Space Mono',monospace;font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);
  opacity:0;transition:opacity .6s}
.kite3d.is-loaded .kite3d-hint{opacity:.75}
.kite3d-badge{position:absolute;z-index:2;left:16px;top:14px;font-family:'Space Mono',monospace;font-size:.6rem;
  letter-spacing:.18em;text-transform:uppercase;color:var(--yellow)}

.kite3d-err{position:absolute;inset:0;z-index:2;display:none;place-items:center;text-align:center;padding:24px;
  font-family:'Space Mono',monospace;font-size:.72rem;color:var(--muted)}
.kite3d.is-error .kite3d-err{display:grid}
.kite3d.is-error .kite3d-poster{opacity:.7}

@media(prefers-reduced-motion:reduce){.kite3d-spin{animation:none}}
