/* ===== David Dimech · portfolio-3 · Modern Studio ===== */
:root{
  --bg:#08080a;
  --bg-2:#0e0e11;
  --panel:#111114;
  --ink:#f1f1ec;
  --muted:#83837c;
  --line:#1e1e23;
  --accent:#e6f44a;      /* electric signal-yellow */
  --accent-2:#0a0a0b;
  --maxw:1140px;
  --display:'Space Grotesk',system-ui,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--display);line-height:1.6;
  -webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
strong{font-weight:600;color:var(--ink)}
.mono{font-family:var(--mono);font-weight:400}
.hl{color:var(--accent)}
.dim{color:var(--muted)}
section{padding:clamp(4.5rem,9vw,7.5rem) clamp(1.25rem,5vw,3rem)}
h1,h2,h3{font-family:var(--display);font-weight:600;line-height:1.05;letter-spacing:-.02em}
.idx{display:block;font-size:.75rem;letter-spacing:.12em;color:var(--accent);margin-bottom:1rem;text-transform:uppercase}

/* ---- nav ---- */
.nav{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;align-items:center;justify-content:space-between;
  padding:1rem clamp(1.25rem,5vw,3rem);transition:background .3s,border-color .3s;border-bottom:1px solid transparent}
.nav.scrolled{background:rgba(8,8,10,.82);backdrop-filter:blur(12px);border-bottom-color:var(--line)}
.brand{display:flex;align-items:center;gap:.6rem}
.brand-mark{display:grid;place-items:center;width:2rem;height:2rem;background:var(--accent);color:var(--accent-2);
  border-radius:6px;font-weight:700;font-size:1.05rem}
.brand-word{font-weight:600;letter-spacing:.06em;font-size:.95rem}
.brand-sub{color:var(--muted);font-weight:400;font-size:.7rem;letter-spacing:.02em;margin-left:.35rem}
.nav-right{display:flex;align-items:center;gap:1.8rem}
.status{display:flex;align-items:center;gap:.5rem;font-family:var(--mono);font-size:.72rem;color:var(--muted)}
.status i{width:.55rem;height:.55rem;border-radius:50%;background:var(--accent);box-shadow:0 0 0 0 var(--accent);
  animation:pulse 2.4s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(230,244,74,.5)}70%{box-shadow:0 0 0 8px rgba(230,244,74,0)}100%{box-shadow:0 0 0 0 rgba(230,244,74,0)}}
.nav-links{display:flex;align-items:center;gap:1.5rem}
.nav-links a{font-size:.9rem;color:var(--muted);transition:color .2s}
.nav-links a:hover{color:var(--ink)}
.nav-cta{color:var(--accent)!important}

/* ---- hero ---- */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:center;
  padding-top:7rem;overflow:hidden}
.hero-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0;opacity:.5}
.hero-inner{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto;width:100%}
.tag{color:var(--muted);font-size:.8rem;letter-spacing:.06em;margin-bottom:1.4rem}
.hero h1{font-size:clamp(2.7rem,8vw,6rem);margin-bottom:1.7rem;letter-spacing:-.03em}
.hero-lede{max-width:46ch;font-size:clamp(1.05rem,2vw,1.28rem);color:#c9c9c1}
.hero-actions{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2.3rem}
.hero-ticker{position:absolute;bottom:0;left:0;right:0;z-index:2;white-space:nowrap;overflow:hidden;
  border-top:1px solid var(--line);padding:.8rem 0;color:var(--muted);font-size:.72rem;letter-spacing:.18em}
.hero-ticker-inner{display:inline-block;will-change:transform;animation:scroll 38s linear infinite}
@keyframes scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--display);font-weight:500;font-size:.95rem;
  padding:.85rem 1.5rem;border-radius:7px;transition:.2s;border:1px solid transparent;cursor:pointer}
.btn-fill{background:var(--accent);color:var(--accent-2);font-weight:600}
.btn-fill:hover{filter:brightness(1.1);transform:translateY(-2px)}
.btn-line{border-color:var(--line);color:var(--ink)}
.btn-line:hover{border-color:var(--accent);color:var(--accent)}
.btn-lg{font-size:1.1rem;padding:1.05rem 2rem}

/* ---- section heads ---- */
.caps-head{max-width:var(--maxw);margin:0 auto 2.8rem}
.caps-head h2{font-size:clamp(1.9rem,5vw,3.2rem)}

/* ---- capabilities ---- */
.caps{background:linear-gradient(180deg,var(--bg),var(--bg-2))}
.caps-list{max-width:var(--maxw);margin:0 auto;list-style:none;display:grid;gap:0;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.caps-list li{border:1px solid var(--line);margin:-.5px;padding:2rem 1.8rem;transition:.25s;background:var(--bg)}
.caps-list li:hover{background:var(--panel)}
.caps-list .mono{color:var(--accent);font-size:.85rem}
.caps-list h3{font-size:1.25rem;margin:.7rem 0 .6rem}
.caps-list p{color:var(--muted);font-size:.95rem}

/* ---- index table ---- */
.index{background:var(--bg-2)}
.table{max-width:var(--maxw);margin:0 auto;border-top:1px solid var(--line)}
.row{display:grid;grid-template-columns:2.4fr 1fr 1.4fr .5fr;gap:1rem;align-items:center;
  padding:1.15rem .4rem;border-bottom:1px solid var(--line);color:var(--muted);font-size:.95rem;transition:.2s}
a.row:hover{color:var(--ink);background:var(--panel);padding-left:1rem}
.row-head{color:var(--muted);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase}
.cell-title{color:var(--ink);font-weight:500;font-size:1.05rem}
.cell-title i{color:var(--accent);font-style:normal;font-size:.8rem;margin-left:.3rem}
.studies-note{max-width:var(--maxw);margin:1.8rem auto 0;font-size:.82rem;color:var(--muted);line-height:1.7}

/* ---- edge ---- */
.edge-grid{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,5vw,4rem)}
.edge-l h2{font-size:clamp(1.9rem,4.5vw,3rem);margin-top:.5rem}
.edge-r p{color:#c9c9c1;margin-bottom:1.1rem;max-width:56ch}
.edge-stats{display:flex;flex-wrap:wrap;gap:2rem;margin-top:2rem;border-top:1px solid var(--line);padding-top:1.8rem}
.edge-stats .num{display:block;font-size:2rem;color:var(--accent);line-height:1}
.edge-stats p{font-size:.85rem;color:var(--muted);max-width:18ch;margin-top:.5rem}

/* ---- listen ---- */
.listen{background:var(--bg-2)}
.soundcloud{max-width:var(--maxw);margin:0 auto}
.soundcloud iframe{width:100%;height:320px;border:1px solid var(--line);border-radius:10px}

/* ---- contact ---- */
.contact{text-align:center;background:radial-gradient(120% 100% at 50% 0%,#131317,var(--bg))}
.contact h2{font-size:clamp(2.4rem,7vw,4.5rem);margin:.3rem 0 1rem}
.contact-lede{max-width:46ch;margin:0 auto 2rem;color:var(--muted)}
.contact-grid{max-width:760px;margin:2.4rem auto 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:0;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.contact-grid a{padding:1.1rem;border:.5px solid var(--line);font-size:.85rem;transition:.2s;text-align:left}
.contact-grid a:hover{background:var(--panel);color:var(--accent)}
.contact-grid .dim{display:inline-block;width:2rem;color:var(--accent)}

/* ---- footer ---- */
.foot{display:flex;flex-wrap:wrap;gap:.6rem 1.5rem;justify-content:space-between;
  padding:2.2rem clamp(1.25rem,5vw,3rem);border-top:1px solid var(--line);color:var(--muted);font-size:.78rem}

/* ---- reveal ---- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s,transform .7s}
.reveal.in{opacity:1;transform:none}

/* ---- responsive ---- */
@media(max-width:820px){
  .edge-grid{grid-template-columns:1fr}
  .row{grid-template-columns:2fr 1fr;gap:.4rem 1rem}
  .row span:nth-child(4){display:none}
  .row-head span:nth-child(4){display:none}
}
@media(max-width:620px){
  .nav-links,.status{display:none}
  .row span:nth-child(3){display:none}
  .row-head span:nth-child(3){display:none}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto}.reveal{opacity:1;transform:none}
  .hero-canvas{display:none}}
