/* ===================================================
   SOUS-MARIN — Transport Maritime
   Style : Abyssal / Militaire Classifié / Sonar
   =================================================== */

@import url('https://fonts.googleapis.com/css2?family=Russo+One&family=Mulish:wght@300;400;500;600&family=JetBrains+Mono:wght@400;500&display=swap');

:root {
  --abyss:    #020810;
  --deep:     #040c18;
  --hull:     #071525;
  --panel:    #091e30;
  --sonar:    #00ff7f;
  --sonar-dim:#006b35;
  --sonar-glow:rgba(0,255,127,.18);
  --steel:    #1a3a5c;
  --alert:    #ff3030;
  --amber:    #ffb000;
  --white:    #cce8ff;
  --text:     #7aadcc;
  --muted:    #2a4a6a;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}

body{
  font-family:'Mulish',sans-serif;
  background:var(--abyss);
  color:var(--text);
  overflow-x:hidden;
}

/* ── Pressure bubbles bg ── */
body::before{
  content:'';
  position:fixed;inset:0;
  background:
    radial-gradient(ellipse 80% 60% at 50% 100%,rgba(0,255,127,.04) 0%,transparent 70%),
    radial-gradient(ellipse 40% 30% at 20% 80%,rgba(0,80,200,.06) 0%,transparent 60%);
  pointer-events:none;z-index:0;
}

/* ── Progress ── */
#prog{position:fixed;top:0;left:0;height:2px;background:linear-gradient(to right,var(--sonar-dim),var(--sonar));z-index:1000;width:0%;transition:width .1s;}

/* ── Top nav ── */
.nav{
  position:relative;z-index:10;
  background:rgba(2,8,16,.95);
  border-bottom:1px solid rgba(0,255,127,.15);
  padding:10px 28px;
  display:flex;align-items:center;justify-content:space-between;
  backdrop-filter:blur(8px);
}
.nav .bc{font-family:'JetBrains Mono',monospace;font-size:.65rem;color:var(--sonar-dim);letter-spacing:.1em;}
.nav .bc .s{color:rgba(0,255,127,.2);margin:0 8px;}
.nav .cl{
  font-family:'JetBrains Mono',monospace;font-size:.6rem;
  color:var(--alert);letter-spacing:.15em;
  animation:blink-cl 2s step-end infinite;
}
@keyframes blink-cl{0%,100%{opacity:1;}50%{opacity:.3;}}

/* ── Hero ── */
.hero{
  position:relative;min-height:560px;
  display:flex;align-items:flex-end;overflow:hidden;
  background:var(--abyss);
}

/* Deep ocean gradient */
.ocean-bg{
  position:absolute;inset:0;
  background:linear-gradient(180deg,
    #020810 0%,#030d1a 20%,#041220 40%,
    #051828 60%,#040f1e 80%,#020810 100%);
}

/* Bioluminescent particles */
.particles{position:absolute;inset:0;pointer-events:none;}
.p{
  position:absolute;border-radius:50%;
  background:var(--sonar);
  animation:p-float linear infinite;
}

@keyframes p-float{
  0%{transform:translateY(100vh) scale(0);opacity:0;}
  10%{opacity:.6;}
  90%{opacity:.2;}
  100%{transform:translateY(-10px) scale(1);opacity:0;}
}

/* Sonar ring animation */
.sonar-ring{
  position:absolute;
  top:50%;left:50%;transform:translate(-50%,-50%);
  width:600px;height:600px;
  pointer-events:none;
}
.sonar-ring circle{
  fill:none;stroke:var(--sonar);stroke-width:.5;
  animation:sonar-expand 4s ease-out infinite;
  transform-origin:50% 50%;
}
.sonar-ring circle:nth-child(2){animation-delay:1.3s;}
.sonar-ring circle:nth-child(3){animation-delay:2.6s;}
@keyframes sonar-expand{
  0%{r:20;opacity:.8;}
  100%{r:290;opacity:0;}
}

/* Submarine SVG */
.sub-svg{
  position:absolute;
  bottom:160px;left:50%;transform:translateX(-50%);
  width:min(700px,88vw);
  filter:drop-shadow(0 0 20px rgba(0,255,127,.15)) drop-shadow(0 8px 30px rgba(0,0,0,.8));
  animation:sub-patrol 20s ease-in-out infinite;
}

@keyframes sub-patrol{
  0%,100%{transform:translateX(-50%) translateY(0) rotate(-.3deg);}
  25%{transform:translateX(calc(-50% + 20px)) translateY(-8px) rotate(.3deg);}
  50%{transform:translateX(-50%) translateY(-14px) rotate(-.2deg);}
  75%{transform:translateX(calc(-50% - 20px)) translateY(-6px) rotate(.2deg);}
}

/* Depth indicator */
.depth-meter{
  position:absolute;right:5%;top:50%;transform:translateY(-50%);
  display:flex;flex-direction:column;align-items:center;gap:4px;
  pointer-events:none;
}
.dm-label{font-family:'JetBrains Mono',monospace;font-size:.58rem;color:var(--sonar-dim);letter-spacing:.12em;text-transform:uppercase;}
.dm-value{font-family:'JetBrains Mono',monospace;font-size:1.4rem;color:var(--sonar);font-weight:500;text-shadow:0 0 12px rgba(0,255,127,.5);}
.dm-unit{font-family:'JetBrains Mono',monospace;font-size:.6rem;color:var(--sonar-dim);}
.dm-bar{width:4px;height:120px;background:rgba(0,255,127,.1);border-radius:2px;position:relative;overflow:hidden;margin:4px 0;}
.dm-fill{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,var(--sonar),rgba(0,255,127,.2));border-radius:2px;animation:depth-fill 8s ease-in-out infinite alternate;}
@keyframes depth-fill{0%{height:40%;}100%{height:85%;};}

/* Water pressure grid */
.pressure-grid{
  position:absolute;bottom:0;left:0;right:0;height:200px;
  background:
    repeating-linear-gradient(90deg,rgba(0,255,127,.03) 0px,transparent 1px,transparent 60px,rgba(0,255,127,.03) 60px),
    linear-gradient(to top,rgba(0,255,127,.06) 0%,transparent 100%);
}

/* Hero text */
.hero-txt{
  position:relative;z-index:2;width:100%;
  padding:44px 44px 48px;
  background:linear-gradient(to top,rgba(2,8,16,.99) 0%,rgba(2,8,16,.7) 55%,transparent 100%);
}
.hero-eyebrow{
  font-family:'JetBrains Mono',monospace;font-size:.62rem;color:var(--sonar);
  letter-spacing:.25em;text-transform:uppercase;margin-bottom:10px;
}
.hero-eyebrow::before{content:'▶ ';}
.hero h1{
  font-family:'Russo One',sans-serif;
  font-size:clamp(3rem,7vw,5.8rem);color:var(--white);
  line-height:.95;letter-spacing:.04em;
  text-shadow:0 0 40px rgba(0,255,127,.15);
}
.hero h1 em{
  display:block;font-size:.32em;font-style:normal;
  color:var(--sonar);letter-spacing:.2em;margin-bottom:8px;
  font-family:'JetBrains Mono',monospace;
}
.hero-sub{margin-top:14px;font-size:1rem;color:var(--text);max-width:560px;line-height:1.8;font-weight:300;}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;}
.chip{padding:5px 14px;border:1px solid;border-radius:2px;font-family:'JetBrains Mono',monospace;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;}
.ch-g{border-color:var(--sonar-dim);color:var(--sonar);}
.ch-r{border-color:rgba(255,48,48,.4);color:var(--alert);}
.ch-a{border-color:rgba(255,176,0,.4);color:var(--amber);}

/* ── Main layout ── */
.main{max-width:1100px;margin:0 auto;padding:0 24px 80px;position:relative;z-index:1;}

/* Intro band */
.intro{
  background:linear-gradient(135deg,rgba(0,255,127,.04),rgba(0,100,200,.04));
  border:1px solid rgba(0,255,127,.1);border-top:2px solid var(--sonar-dim);
  padding:28px 40px;margin-bottom:36px;
}
.intro p{font-size:1.05rem;color:var(--text);line-height:1.82;font-weight:300;}
.intro strong{color:var(--white);font-weight:600;}

/* Grid */
.grid{display:grid;grid-template-columns:1fr 320px;gap:32px;}

/* Section headings */
.sh{
  font-family:'Russo One',sans-serif;
  font-size:1.15rem;color:var(--sonar);letter-spacing:.06em;
  margin:44px 0 16px;text-transform:uppercase;
  display:flex;align-items:center;gap:12px;
  padding-bottom:8px;border-bottom:1px solid rgba(0,255,127,.12);
}
.sh:first-child{margin-top:0;}
.sh::before{content:'';width:3px;height:1.1em;background:var(--sonar);box-shadow:0 0 8px var(--sonar);flex-shrink:0;}

/* Body text */
.mc p{font-size:1rem;color:var(--text);line-height:1.82;margin-bottom:16px;font-weight:300;}
.mc strong{color:var(--white);font-weight:600;}

/* Data table */
.dt{width:100%;border-collapse:collapse;margin:18px 0;font-size:.85rem;}
.dt thead th{background:rgba(0,255,127,.07);color:var(--sonar);padding:9px 14px;text-align:left;font-family:'JetBrains Mono',monospace;font-size:.68rem;letter-spacing:.1em;border-bottom:1px solid rgba(0,255,127,.18);}
.dt td{padding:8px 14px;border-bottom:1px solid rgba(0,255,127,.05);color:var(--text);}
.dt tr:hover td{background:rgba(0,255,127,.03);}
.dt td:first-child{font-family:'JetBrains Mono',monospace;color:var(--sonar);font-size:.78rem;}

/* Type cards */
.type-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:16px 0;}
.tc{
  background:rgba(7,21,37,.8);border:1px solid rgba(0,255,127,.1);
  border-left:3px solid var(--sonar-dim);border-radius:3px;padding:16px;
  opacity:0;transform:translateY(12px);transition:opacity .5s,transform .5s,border-color .2s;
}
.tc.on{opacity:1;transform:translateY(0);}
.tc:hover{border-color:rgba(0,255,127,.4);}
.tc .ti{font-size:1.4rem;margin-bottom:6px;}
.tc h4{font-family:'Russo One',sans-serif;font-size:.85rem;color:var(--white);margin-bottom:5px;letter-spacing:.05em;}
.tc p{font-size:.82rem!important;color:var(--muted)!important;line-height:1.5!important;margin:0!important;color:#5a8aaa!important;}

/* System items */
.sys-list{list-style:none;margin:12px 0;}
.sys-list li{display:flex;align-items:flex-start;gap:10px;padding:8px 0;border-bottom:1px solid rgba(0,255,127,.06);opacity:0;transform:translateX(-8px);transition:opacity .4s,transform .4s;}
.sys-list li.on{opacity:1;transform:translateX(0);}
.sys-list li:last-child{border-bottom:none;}
.sys-list .sk{font-family:'JetBrains Mono',monospace;font-size:.72rem;color:var(--sonar);min-width:130px;flex-shrink:0;}
.sys-list .sv{font-size:.9rem;color:var(--text);font-weight:300;}

/* Timeline */
.tl{position:relative;padding-left:28px;margin:16px 0;}
.tl::before{content:'';position:absolute;left:8px;top:0;bottom:0;width:1px;background:linear-gradient(to bottom,var(--sonar),rgba(0,255,127,.05));}
.tl-item{position:relative;margin-bottom:18px;opacity:0;transform:translateX(-10px);transition:opacity .45s,transform .45s;}
.tl-item.on{opacity:1;transform:translateX(0);}
.tl-item::before{content:'';position:absolute;left:-24px;top:5px;width:8px;height:8px;background:var(--sonar-dim);box-shadow:0 0 6px var(--sonar);transform:rotate(45deg);}
.tl-yr{font-family:'JetBrains Mono',monospace;font-size:.67rem;color:var(--sonar);letter-spacing:.15em;margin-bottom:2px;}
.tl-item p{font-size:.95rem!important;margin:0!important;line-height:1.6!important;}

/* Alert box */
.alert-box{
  background:rgba(255,48,48,.04);border:1px solid rgba(255,48,48,.25);
  border-left:3px solid var(--alert);border-radius:3px;padding:18px 22px;margin:20px 0;
}
.alert-box h4{color:#ff6666;font-family:'Russo One',sans-serif;font-size:1rem;letter-spacing:.05em;margin-bottom:8px;}
.alert-box p{font-size:.93rem!important;margin:0!important;line-height:1.65!important;}

/* Sidebar */
.scard{
  background:rgba(7,21,37,.95);border:1px solid rgba(0,255,127,.12);
  border-radius:3px;padding:20px 18px;margin-bottom:18px;position:relative;overflow:hidden;
}
.scard::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(to right,var(--sonar-dim),transparent);}
.scard h3{font-family:'Russo One',sans-serif;font-size:.85rem;color:var(--sonar);margin-bottom:14px;padding-bottom:8px;border-bottom:1px solid rgba(0,255,127,.1);letter-spacing:.05em;}

/* Sonar ping widget */
.sonar-widget{
  position:relative;width:160px;height:160px;margin:0 auto;
  background:radial-gradient(circle,rgba(0,255,127,.06) 0%,rgba(0,255,127,.01) 50%,transparent 70%);
  border-radius:50%;border:1px solid rgba(0,255,127,.15);
}
.sw-line{
  position:absolute;top:50%;left:50%;width:50%;height:1px;
  background:linear-gradient(to right,rgba(0,255,127,.8),transparent);
  transform-origin:left center;
  animation:sweep 3s linear infinite;
}
@keyframes sweep{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}
.sw-rings circle{fill:none;stroke:rgba(0,255,127,.08);stroke-width:.8;}
.sw-dot{position:absolute;width:6px;height:6px;background:var(--sonar);border-radius:50%;box-shadow:0 0 6px var(--sonar);top:35%;left:62%;animation:sw-blink 3s ease infinite;}
@keyframes sw-blink{0%,80%{opacity:0;}85%{opacity:1;}100%{opacity:0;};}
.sw-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:6px;height:6px;background:var(--sonar);border-radius:50%;box-shadow:0 0 8px var(--sonar);}

/* KPI list */
.kpi-l{list-style:none;}
.kpi-l li{display:flex;justify-content:space-between;align-items:center;padding:7px 0;border-bottom:1px solid rgba(0,255,127,.07);}
.kpi-l li:last-child{border-bottom:none;}
.kpi-l .kl{font-size:.8rem;color:#4a7a9a;}
.kpi-l .kv{font-family:'JetBrains Mono',monospace;font-size:.85rem;color:var(--sonar);}

/* Notable submarines */
.sub-list{list-style:none;}
.sub-list li{padding:8px;border-bottom:1px solid rgba(0,255,127,.07);cursor:pointer;border-radius:2px;transition:background .2s;}
.sub-list li:hover{background:rgba(0,255,127,.04);}
.sub-list li:last-child{border-bottom:none;}
.sln{font-family:'JetBrains Mono',monospace;font-size:.78rem;color:var(--white);font-weight:500;}
.sld{font-size:.74rem;color:#4a7a9a;font-style:italic;margin-top:1px;}
.sldet{display:none;font-size:.74rem;color:var(--text);margin-top:6px;padding:6px;background:rgba(2,8,16,.6);border-left:2px solid var(--sonar-dim);line-height:1.5;}
.sub-list li.open .sldet{display:block;}

/* Back top */
#bt{position:fixed;bottom:28px;right:28px;width:44px;height:44px;background:var(--hull);border:1px solid var(--sonar-dim);color:var(--sonar);font-size:1rem;border-radius:2px;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .3s,transform .25s;z-index:999;text-decoration:none;}
#bt.on{opacity:1;pointer-events:auto;}
#bt:hover{transform:translateY(-3px);box-shadow:0 0 12px rgba(0,255,127,.2);}

footer{position:relative;z-index:1;background:rgba(2,8,16,.97);border-top:1px solid rgba(0,255,127,.1);padding:22px 44px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;}
.fb{font-family:'Russo One',sans-serif;font-size:.85rem;color:var(--sonar-dim);letter-spacing:.05em;}
.fm{font-family:'JetBrains Mono',monospace;font-size:.6rem;color:#2a4a6a;text-align:right;line-height:1.8;letter-spacing:.06em;text-transform:uppercase;}

@media(max-width:820px){.grid{grid-template-columns:1fr;}.type-grid{grid-template-columns:1fr;}.hero-txt{padding:32px 24px 32px;}}
