/* public/styles.css
   AeroLine Digital — cinematic but restrained, aviation-leaning dark UI
*/

:root{
  /* Studio palette */
  --bg0:#050812;
  --bg1:#070d1b;
  --panel:#0a1226cc;
  --line:#223155;
  --text:#e9eefc;
  --muted:#b8c3e8;
  --muted2:#7d8bb7;

  /* Aviation blue + teal accent */
  --primary:#0B5FFF;
  --teal:#38e7ff;

  --shadow: 0 18px 60px rgba(0,0,0,.45);
  --radius: 22px;
  --max: 1120px;
}

/* ---------- Base ---------- */
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, "Apple Color Emoji", "Segoe UI Emoji";
  color:var(--text);
  background:
    radial-gradient(1200px 600px at 20% 15%, rgba(11,95,255,.18), transparent 60%),
    radial-gradient(900px 520px at 85% 45%, rgba(56,231,255,.10), transparent 55%),
    linear-gradient(180deg, var(--bg0), var(--bg1));
  overflow-x:hidden;
}

a{color:inherit; text-decoration:none}
.wrap{max-width:var(--max); margin:0 auto; padding:0 18px}

/* ---------- Effects ---------- */

/* Subtle film grain */
.grain{
  pointer-events:none;
  position:fixed; inset:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E");
  opacity:.08;
  mix-blend-mode:overlay;
}

/* Radar sweep */
.radar{
  pointer-events:none;
  position:absolute;
  inset:-160px -160px auto auto;
  width:520px; height:520px;
  border-radius:999px;
  opacity:.55;
  filter: blur(0.2px);
  background:
    radial-gradient(circle at center, rgba(56,231,255,.18), transparent 60%),
    radial-gradient(circle at center, rgba(11,95,255,.14), transparent 62%);
  border:1px solid rgba(56,231,255,.10);
  box-shadow: 0 0 0 1px rgba(11,95,255,.08) inset;
  overflow:hidden;
}
.radar:before{
  content:"";
  position:absolute; inset:-60%;
  background: conic-gradient(from 0deg,
    rgba(56,231,255,.0) 0deg,
    rgba(56,231,255,.0) 250deg,
    rgba(56,231,255,.16) 292deg,
    rgba(56,231,255,.0) 340deg,
    rgba(56,231,255,.0) 360deg);
  animation: sweep 5.8s linear infinite;
}
.radar:after{
  content:"";
  position:absolute; inset:0;
  background:
    repeating-radial-gradient(circle at center,
      rgba(56,231,255,.08) 0px,
      rgba(56,231,255,.08) 1px,
      transparent 18px,
      transparent 26px);
  opacity:.22;
  mix-blend-mode: screen;
}

@keyframes sweep{to{transform:rotate(360deg)}}

/* ---------- Top nav ---------- */
header{
  position:sticky; top:0; z-index:10;
  backdrop-filter: blur(10px);
  background: linear-gradient(180deg, rgba(5,8,18,.78), rgba(5,8,18,.35));
  border-bottom:1px solid rgba(34,49,85,.35);
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 0;
}
.brand{
  display:flex; align-items:center; gap:10px;
  font-weight:900;
  letter-spacing:.3px;
}
.brandMark{
  width:34px; height:34px; border-radius:10px;
  background:
    radial-gradient(circle at 30% 25%, rgba(56,231,255,.30), transparent 55%),
    radial-gradient(circle at 70% 60%, rgba(11,95,255,.35), transparent 60%),
    rgba(10,18,38,.9);
  border:1px solid rgba(56,231,255,.12);
  box-shadow: 0 10px 30px rgba(0,0,0,.35);
  position:relative;
  overflow:hidden;
}
.brandMark:after{
  content:"";
  position:absolute; inset:-40%;
  background: conic-gradient(from 120deg, rgba(56,231,255,.0), rgba(56,231,255,.22), rgba(11,95,255,.0));
  animation: sweep 7.5s linear infinite;
  opacity:.55;
}
.navLinks{
  display:flex; align-items:center; gap:14px;
  color:var(--muted);
  font-weight:800;
  font-size:14px;
}
.navLinks a{
  padding:10px 10px;
  border-radius:999px;
}
.navLinks a:hover{
  color:var(--text);
  background: rgba(34,49,85,.30);
  border:1px solid rgba(34,49,85,.45);
  padding:9px 9px; /* compensate border */
}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  padding:60px 0 22px;
}
.heroGrid{
  position:absolute; inset:0;
  background:
    linear-gradient(rgba(34,49,85,.18) 1px, transparent 1px),
    linear-gradient(90deg, rgba(34,49,85,.18) 1px, transparent 1px);
  background-size: 44px 44px;
  mask-image: radial-gradient(600px 260px at 35% 25%, black 40%, transparent 70%);
  opacity:.35;
  transform: translateZ(0);
  animation: drift 12s linear infinite;
}
@keyframes drift{
  0%{background-position:0 0, 0 0}
  100%{background-position: -88px 120px, -88px 120px}
}

.heroInner{
  position:relative;
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap:22px;
  align-items:stretch;
}

.pill{
  display:inline-flex; align-items:center; gap:10px;
  padding:10px 12px;
  border-radius:999px;
  background: rgba(10,18,38,.66);
  border:1px solid rgba(34,49,85,.65);
  color:var(--muted);
  font-weight:900;
  letter-spacing:.2px;
  font-size:13px;
  box-shadow: var(--shadow);
}
.dot{
  width:10px; height:10px; border-radius:99px;
  background: radial-gradient(circle at 30% 30%, rgba(56,231,255,.95), rgba(11,95,255,.55));
  box-shadow: 0 0 0 6px rgba(56,231,255,.10);
}

h1{
  margin:14px 0 10px;
  font-size: clamp(38px, 4.2vw, 56px);
  line-height:1.05;
  letter-spacing:-.6px;
}
.lead{
  margin:0;
  color:var(--muted);
  font-weight:700;
  font-size:16px;
  line-height:1.6;
  max-width: 56ch;
}

/* ---------- Buttons ---------- */
.ctaRow{
  display:flex; gap:12px; flex-wrap:wrap;
  margin-top:18px;
}
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  gap:10px;
  padding:12px 14px;
  border-radius:14px;
  font-weight:900;
  letter-spacing:.2px;
  border:1px solid rgba(34,49,85,.70);
  background: rgba(10,18,38,.64);
  box-shadow: var(--shadow);
  transition: transform .12s ease, background .12s ease, border-color .12s ease;
}
.btn:hover{transform: translateY(-1px)}
.btnPrimary{
  background: linear-gradient(135deg, rgba(11,95,255,.95), rgba(56,231,255,.55));
  border:1px solid rgba(56,231,255,.25);
  color:#061022;
}
.btnGhost{color:var(--text)}
.btnSmall{
  padding:10px 12px;
  border-radius:12px;
  font-size:13px;
}

/* ---------- Cards / Panels ---------- */
.card{
  border-radius: var(--radius);
  background: linear-gradient(180deg, rgba(10,18,38,.72), rgba(10,18,38,.38));
  border:1px solid rgba(34,49,85,.70);
  box-shadow: var(--shadow);
  overflow:hidden;
  position:relative;
}
.card:before{
  content:"";
  position:absolute; inset:-20%;
  background:
    radial-gradient(circle at 30% 30%, rgba(56,231,255,.12), transparent 55%),
    radial-gradient(circle at 80% 40%, rgba(11,95,255,.12), transparent 60%);
  opacity:.85;
  pointer-events:none;
}

.heroPanel{
  padding:18px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  min-height: 240px;
}
.panelTop{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.miniTitle{
  font-weight:900;
  color:var(--text);
  letter-spacing:.2px;
}
.miniMeta{
  color:var(--muted2);
  font-weight:800;
  font-size:13px;
  margin-top:6px;
  line-height:1.35;
}
.hudLine{
  height:1px;
  background: linear-gradient(90deg, rgba(56,231,255,.0), rgba(56,231,255,.18), rgba(11,95,255,.0));
  margin:14px 0;
}
.statRow{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:10px;
}
.stat{
  padding:12px 12px;
  border-radius:16px;
  background: rgba(5,8,18,.38);
  border:1px solid rgba(34,49,85,.55);
}
.statK{font-weight:900; font-size:13px; color:var(--muted2)}
.statV{font-weight:1000; font-size:18px; margin-top:6px}

.badge{
  display:inline-flex; align-items:center; gap:8px;
  padding:8px 10px;
  border-radius:999px;
  font-weight:900;
  font-size:12px;
  color:var(--muted);
  border:1px solid rgba(34,49,85,.60);
  background: rgba(5,8,18,.25);
}

/* ---------- Sections ---------- */
section{padding: 24px 0}
.sectionTitle{
  font-size: 22px;
  letter-spacing:-.2px;
  margin: 0 0 12px;
}
.sectionSub{
  margin:0 0 16px;
  color:var(--muted);
  font-weight:700;
  line-height:1.6;
  max-width: 74ch;
}

.projects{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:14px;
}
.proj{
  padding:18px;
  min-height: 210px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  position:relative;
}
.projHead{
  display:flex; align-items:flex-start; justify-content:space-between; gap:12px;
}
.projName{
  margin:0;
  font-size: 22px;
  font-weight:1000;
  letter-spacing:-.3px;
}
.projDesc{
  margin:10px 0 0;
  color:var(--muted);
  font-weight:700;
  line-height:1.55;
  max-width: 56ch;
}
.projCtas{
  display:flex; gap:10px; flex-wrap:wrap;
  margin-top:14px;
}

/* ---------- About / Support blocks ---------- */
.aboutCard{
  padding:18px;
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap:14px;
  align-items:stretch;
}
.aboutRight{
  padding:14px;
  border-radius: 18px;
  background: rgba(5,8,18,.35);
  border:1px solid rgba(34,49,85,.55);
}
.aboutRight p{
  margin:0;
  color:var(--muted);
  font-weight:800;
  line-height:1.6;
  font-size:14px;
}

/* ---------- Footer ---------- */
footer{
  padding: 30px 0 40px;
  border-top:1px solid rgba(34,49,85,.35);
  color:var(--muted2);
  font-weight:800;
  font-size:13px;
}

/* ---------- Responsive ---------- */
@media (max-width: 920px){
  .heroInner{grid-template-columns: 1fr; }
  .projects{grid-template-columns: 1fr;}
  .aboutCard{grid-template-columns: 1fr;}
  .radar{inset:-180px -180px auto auto; width:480px; height:480px;}
}

/* ---------- Motion reduction ---------- */
@media (prefers-reduced-motion: reduce){
  .radar:before, .heroGrid {animation:none}
  .btn:hover{transform:none}
}
