/* ===== IRM.CSS ===== */
@import url('https://fonts.googleapis.com/css2?family=Exo+2:ital,wght@0,200;0,400;0,600;0,800;1,200&family=Source+Serif+4:ital,wght@0,300;0,400;1,300&family=Fira+Code:wght@300;400;500&display=swap');

:root {
  --void:       #02050f;
  --deep:       #050c1e;
  --panel:      #080f28;
  --card:       #0c1533;
  --electric:   #4fc3f7;
  --blue:       #1565c0;
  --arc:        #82b1ff;
  --silver:     #b0bec5;
  --glow:       rgba(79,195,247,.14);
  --glow-s:     rgba(79,195,247,.06);
  --text:       #e3eaf5;
  --muted:      #4a6080;
  --border:     rgba(79,195,247,.16);
  --warm:       #ffb300;
  --safe:       #26c6a0;
  --danger:     #ef5350;
  --font-h:     'Exo 2', sans-serif;
  --font-b:     'Source Serif 4', serif;
  --font-m:     'Fira Code', monospace;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font-b);background:var(--void);color:var(--text);line-height:1.75;overflow-x:hidden}

/* Magnetic field lines bg */
body::before{
  content:'';position:fixed;inset:0;
  background-image:
    repeating-linear-gradient(90deg,transparent,transparent 59px,rgba(79,195,247,.03) 59px,rgba(79,195,247,.03) 60px),
    repeating-linear-gradient(0deg,transparent,transparent 59px,rgba(79,195,247,.03) 59px,rgba(79,195,247,.03) 60px);
  pointer-events:none;z-index:0;
}

#progress-bar{position:fixed;top:0;left:0;height:2px;background:linear-gradient(90deg,var(--electric),var(--arc));width:0%;z-index:200;box-shadow:0 0 12px var(--electric);transition:width .1s}

/* NAV */
nav{position:fixed;top:0;left:0;right:0;z-index:100;height:62px;display:flex;align-items:center;justify-content:space-between;padding:0 3rem;background:rgba(2,5,15,.9);backdrop-filter:blur(20px);border-bottom:1px solid var(--border)}
.nav-logo{display:flex;align-items:center;gap:.8rem;text-decoration:none}
.nav-ring{width:32px;height:32px;border-radius:50%;border:2px solid var(--electric);display:grid;place-items:center;box-shadow:0 0 10px var(--glow);position:relative}
.nav-ring::before{content:'';position:absolute;width:18px;height:18px;border-radius:50%;border:1px solid rgba(79,195,247,.4)}
.nav-title{font-family:var(--font-h);font-size:.95rem;font-weight:600;color:var(--text);letter-spacing:.06em}
.nav-links{display:flex;gap:2rem;list-style:none}
.nav-links a{font-family:var(--font-m);font-size:.72rem;color:var(--muted);text-decoration:none;letter-spacing:.08em;transition:color .2s}
.nav-links a:hover{color:var(--electric)}
.nav-tesla{font-family:var(--font-m);font-size:.68rem;color:var(--electric);background:var(--glow);border:1px solid var(--border);padding:.28rem .8rem;border-radius:100px}

/* HERO */
.hero{position:relative;z-index:1;min-height:100vh;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:3rem;padding:8rem 3rem 4rem;overflow:hidden}
.hero-tag{font-family:var(--font-m);font-size:.7rem;color:var(--electric);letter-spacing:.22em;text-transform:uppercase;margin-bottom:1.2rem;display:flex;align-items:center;gap:.7rem}
.hero-tag::before{content:'';width:24px;height:1px;background:var(--electric)}
.hero h1{font-family:var(--font-h);font-size:clamp(2.8rem,6vw,5.5rem);font-weight:800;line-height:1;letter-spacing:-.01em;color:var(--text);margin-bottom:1.2rem}
.hero h1 em{font-style:italic;color:var(--electric);font-family:var(--font-b)}
.hero-desc{font-size:.95rem;color:var(--muted);max-width:470px;line-height:1.85;margin-bottom:2.5rem;font-weight:300}
.hero-kpis{display:flex;gap:2.5rem;flex-wrap:wrap}
.kpi{display:flex;flex-direction:column}
.kpi-n{font-family:var(--font-h);font-size:2rem;font-weight:800;color:var(--electric);line-height:1}
.kpi-l{font-family:var(--font-m);font-size:.64rem;color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin-top:.3rem}

/* Torus SVG */
.torus-wrap{display:flex;align-items:center;justify-content:center}

/* SEC */
.sec{position:relative;z-index:1;max-width:1160px;margin:0 auto;padding:5rem 3rem}
.shead{display:flex;align-items:center;gap:1rem;margin-bottom:3rem}
.snum{font-family:var(--font-m);font-size:.7rem;color:var(--electric);letter-spacing:.18em;flex-shrink:0}
.stitle{font-family:var(--font-h);font-size:clamp(1.4rem,2.5vw,2.2rem);font-weight:700}
.sline{flex:1;height:1px;background:var(--border);margin-left:.8rem}

/* SEQUENCE CARDS */
.seq-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.5px;background:var(--border);border:1px solid var(--border)}
.seq-card{background:var(--card);padding:2rem;transition:background .25s;position:relative;overflow:hidden}
.seq-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--electric),var(--arc));transform:scaleX(0);transform-origin:left;transition:transform .4s}
.seq-card:hover::after{transform:scaleX(1)}
.seq-card:hover{background:var(--panel)}
.seq-code{font-family:var(--font-m);font-size:.64rem;color:var(--electric);letter-spacing:.2em;text-transform:uppercase;margin-bottom:.7rem}
.seq-name{font-family:var(--font-h);font-size:1.05rem;font-weight:700;margin-bottom:.6rem}
.seq-desc{font-size:.85rem;color:var(--muted);line-height:1.75}
.seq-tag{margin-top:1rem;font-family:var(--font-m);font-size:.66rem;color:var(--arc);background:rgba(130,177,255,.08);border:1px solid rgba(130,177,255,.18);padding:.2rem .55rem;border-radius:2px;display:inline-block}

/* TABLE */
.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:4px}
table{width:100%;border-collapse:collapse;font-size:.86rem}
thead{background:var(--panel)}
th{font-family:var(--font-m);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--electric);padding:.9rem 1.2rem;text-align:left;border-bottom:1px solid var(--border)}
td{padding:.9rem 1.2rem;border-bottom:1px solid rgba(79,195,247,.06);color:var(--text);vertical-align:top}
tr:hover td{background:var(--glow-s)}
tr:last-child td{border-bottom:none}
.ci-r{font-family:var(--font-m);font-size:.63rem;padding:.18rem .55rem;border-radius:2px;text-transform:uppercase;letter-spacing:.06em}
.ci-abs{background:rgba(239,83,80,.12);color:#ef9a9a;border:1px solid rgba(239,83,80,.25)}
.ci-rel{background:rgba(255,179,0,.1);color:#ffe082;border:1px solid rgba(255,179,0,.22)}
.ci-ok{background:rgba(38,198,160,.1);color:#80cbc4;border:1px solid rgba(38,198,160,.22)}

/* PHYSIQUE STEPS */
.phys-steps{display:flex;flex-direction:column;gap:.6rem;margin-top:2rem}
.phys-step{background:var(--card);border:1px solid var(--border);padding:1.4rem 1.6rem;display:grid;grid-template-columns:52px 1fr;gap:1.2rem;align-items:start;opacity:0;transform:translateX(-12px);transition:opacity .5s,transform .5s,border-color .2s}
.phys-step.visible{opacity:1;transform:translateX(0)}
.phys-step:hover{border-color:var(--electric)}
.phys-n{width:38px;height:38px;border-radius:50%;border:2px solid var(--electric);box-shadow:0 0 8px var(--glow);display:grid;place-items:center;font-family:var(--font-m);font-size:.75rem;color:var(--electric);font-weight:500}
.phys-title{font-family:var(--font-h);font-size:.95rem;font-weight:700;margin-bottom:.35rem}
.phys-desc{font-size:.84rem;color:var(--muted);line-height:1.72}

/* TESLA BAND */
.tesla-band{background:linear-gradient(135deg,var(--deep),#0a1840);border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:3.5rem 3rem}
.tesla-inner{max-width:1160px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;text-align:center}
.tb-n{font-family:var(--font-h);font-size:2.8rem;font-weight:800;color:var(--electric);line-height:1;text-shadow:0 0 20px rgba(79,195,247,.3)}
.tb-l{font-family:var(--font-m);font-size:.68rem;color:var(--muted);letter-spacing:.1em;margin-top:.4rem}

/* ARTEFACTS */
.art-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:1rem;margin-top:2rem}
.art-card{background:var(--card);border:1px solid var(--border);padding:1.4rem;transition:border-color .25s,transform .25s}
.art-card:hover{border-color:var(--electric);transform:translateY(-2px)}
.art-name{font-family:var(--font-h);font-size:.92rem;font-weight:700;margin-bottom:.5rem}
.art-cause{font-family:var(--font-m);font-size:.64rem;color:var(--arc);margin-bottom:.4rem}
.art-desc{font-size:.8rem;color:var(--muted);line-height:1.65}

/* ALERT */
.alert-danger{background:rgba(239,83,80,.07);border:1px solid rgba(239,83,80,.22);border-left:3px solid var(--danger);padding:1.2rem 1.5rem;font-size:.87rem;color:#ef9a9a;line-height:1.75;margin-top:1rem}
.alert-info{background:var(--glow);border:1px solid var(--border);border-left:3px solid var(--electric);padding:1.2rem 1.5rem;font-size:.87rem;color:var(--text);line-height:1.75;margin-top:1rem}

/* FI */
.fi{opacity:0;transform:translateY(16px);transition:opacity .6s,transform .6s}
.fi.visible{opacity:1;transform:translateY(0)}

footer{border-top:1px solid var(--border);padding:2rem 3rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;z-index:1;position:relative}
.ft{font-family:var(--font-m);font-size:.7rem;color:var(--muted)}

@media(max-width:900px){
  .hero{grid-template-columns:1fr;padding:7rem 1.2rem 3rem}
  .torus-wrap{display:none}
  .tesla-inner{grid-template-columns:repeat(2,1fr)}
  nav{padding:0 1.2rem}
  .nav-links{display:none}
  .sec{padding:3rem 1.2rem}
}
