@charset "UTF-8";

/* ==========================================================================
   VQLAB — Design Tokens
   ========================================================================== */
:root{
  --bg-main:#0D0B18;
  --surface:#181626;
  --surface-2:#211E33;
  --primary:#8B3FBF;
  --secondary:#1FB7FF;
  --accent:#C63D91;
  --highlight:#DCC44B;
  --text-primary:#FFFFFF;
  --text-secondary:#C7C7D1;
  --text-tertiary:#8B899C;
  --border-subtle:rgba(255,255,255,0.08);
  --border-strong:rgba(255,255,255,0.16);

  --font-heading:'Space Grotesk', sans-serif;
  --font-body:'Inter', sans-serif;
  --font-mono:'JetBrains Mono', monospace;

  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px;
  --space-6:24px; --space-8:32px; --space-12:48px; --space-16:64px;
  --space-20:80px; --space-24:96px; --space-30:120px;

  --radius-s:4px; --radius-m:10px; --radius-l:20px; --radius-full:999px;

  --ease-out: cubic-bezier(.16,1,.3,1);
  --dur-s:180ms; --dur-m:420ms; --dur-l:900ms;

  --grad-primary: linear-gradient(135deg, var(--primary) 0%, var(--accent) 55%, var(--secondary) 100%);
  --grad-surface: linear-gradient(180deg, rgba(139,63,191,0.10) 0%, rgba(13,11,24,0) 60%);
  --container: 1280px;
}

/* ==========================================================================
   Reset
   ========================================================================== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:0.001ms !important;animation-iteration-count:1 !important;transition-duration:0.001ms !important;scroll-behavior:auto !important;}
}
body{
  background:var(--bg-main);
  color:var(--text-primary);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,svg{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;}
button,input,textarea{font:inherit;color:inherit;background:none;border:none;}
h1,h2,h3,h4{font-family:var(--font-heading);font-weight:600;line-height:1.1;letter-spacing:-0.01em;}

/* Focus visibility — WCAG */
:focus{outline:none;}
:focus-visible{
  outline:2px solid var(--secondary);
  outline-offset:4px;
  border-radius:var(--radius-s);
}

.skip-link{
  position:absolute; top:-100px; left:var(--space-4);
  background:var(--highlight); color:var(--bg-main);
  padding:var(--space-2) var(--space-4); border-radius:var(--radius-s);
  font-family:var(--font-mono); font-size:0.85rem; z-index:999;
  transition:top var(--dur-s) var(--ease-out);
}
.skip-link:focus{top:var(--space-4);}

.container{max-width:var(--container); margin-inline:auto; padding-inline:var(--space-8);}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}

/* Eyebrow / label utility */
.eyebrow{
  font-family:var(--font-mono); font-size:1.05rem; letter-spacing:0.14em;
  text-transform:uppercase; color:var(--secondary);
  align-items:center;
}


/* Section rhythm */
section{ padding-block:var(--space-30); position:relative; }
.section-head{ margin-bottom:var(--space-16); max-width:640px; }
.section-head h2{ font-size:clamp(2rem,3.4vw,2.75rem); margin-top:var(--space-3); }
.section-head p{ color:var(--text-secondary); margin-top:var(--space-4); font-size:1.05rem; }

/* Reveal-on-scroll (progressive enhancement, JS toggles .is-visible) */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity var(--dur-l) var(--ease-out), transform var(--dur-l) var(--ease-out); }
.reveal.is-visible{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ .reveal{ opacity:1; transform:none; } }

/* ==========================================================================
   Navigation
   ========================================================================== */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:100;
  padding:var(--space-4) var(--space-8);
  display:flex; align-items:center; justify-content:space-between;
  background:rgba(13,11,24,0.55);
  backdrop-filter:blur(14px) saturate(140%);
  -webkit-backdrop-filter:blur(14px) saturate(140%);
  border-bottom:1px solid var(--border-subtle);
  transition:background var(--dur-m) var(--ease-out), padding var(--dur-m) var(--ease-out);
}
.nav.is-scrolled{ padding-block:var(--space-3); background:rgba(13,11,24,0.82); }

.nav__brand{ display:flex; align-items:center; gap:var(--space-3); font-family:var(--font-heading); font-weight:700; font-size:1.1rem; }
.nav__mark{ width:32px; height:32px; object-fit:contain; }

.nav__links{ display:flex; align-items:center; gap:var(--space-8); }
.nav__link{
  font-size:0.92rem; color:var(--text-secondary); position:relative;
  padding-block:var(--space-1); transition:color var(--dur-s) var(--ease-out);
}
.nav__link::after{
  content:""; position:absolute; left:0; bottom:-4px; width:0; height:1px;
  background:var(--secondary); transition:width var(--dur-s) var(--ease-out);
}
.nav__link:hover, .nav__link:focus-visible{ color:var(--text-primary); }
.nav__link:hover::after, .nav__link:focus-visible::after, .nav__link[aria-current="true"]::after{ width:100%; }
.nav__link[aria-current="true"]{ color:var(--text-primary); }

.nav__cta{
  font-family:var(--font-mono); font-size:0.82rem; padding:var(--space-2) var(--space-6);
  border:1px solid var(--border-strong); border-radius:var(--radius-full);
  display:inline-flex; align-items:center; gap:var(--space-2);
  transition:border-color var(--dur-s) var(--ease-out), background var(--dur-s) var(--ease-out), transform var(--dur-s) var(--ease-out);
}
.nav__cta:hover, .nav__cta:focus-visible{ border-color:var(--secondary); background:rgba(31,183,255,0.08); transform:translateY(-1px); }

.nav__toggle{ display:none; width:40px; height:40px; align-items:center; justify-content:center; }
.nav__toggle span, .nav__toggle::before, .nav__toggle::after{
  content:""; display:block; width:20px; height:1px; background:var(--text-primary);
  position:relative; transition:transform var(--dur-s) var(--ease-out), opacity var(--dur-s) var(--ease-out);
}
.nav__toggle::before{ position:absolute; transform:translateY(-6px); }
.nav__toggle::after{ position:absolute; transform:translateY(6px); }
.nav.is-open .nav__toggle span{ opacity:0; }
.nav.is-open .nav__toggle::before{ transform:rotate(45deg); }
.nav.is-open .nav__toggle::after{ transform:rotate(-45deg); }

/* ==========================================================================
   Hero — Banner matching reference design
   ========================================================================== */
.hero{
  min-height:92vh;
  display:flex;
  align-items:center;
  position:relative;
  padding-top:calc(var(--space-20) + var(--space-8));
  padding-bottom:var(--space-16);
  background:var(--bg-main);
  overflow:hidden;
}
.hero::before{
  content:""; position:absolute; inset:0; z-index:0;
  background:
    radial-gradient(45% 45% at 50% 50%, rgba(139,63,191,0.18), transparent 70%),
    radial-gradient(35% 35% at 85% 20%, rgba(31,183,255,0.10), transparent 70%),
    radial-gradient(35% 35% at 15% 80%, rgba(198,61,145,0.12), transparent 70%);
}

.hero__container{
  position:relative;
  z-index:1;
  width:100%;
}

.hero__grid{
  display:grid;
  grid-template-columns: 1.1fr 340px 1.1fr;
  align-items:center;
  gap:var(--space-6);
}

/* Left Column */
.hero__col--left{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}

.hero__name{
  font-family:var(--font-heading);
  font-size:clamp(1.9rem, 3.6vw, 3.1rem);
  font-weight:700;
  line-height:1.06;
  letter-spacing:-0.01em;
}
.hero__name-purple{ color:var(--primary); }
.hero__name-yellow{ color:var(--highlight); }

.hero__subtitle-label{
  font-family:var(--font-heading);
  font-size:clamp(0.85rem, 1.3vw, 1.15rem);
  font-weight:400;
  letter-spacing:0.18em;
  color:var(--text-secondary);
  margin-top:var(--space-2);
  margin-bottom:var(--space-6);
  text-transform:uppercase;
}

/* Skills Bar */
.hero__skills-bar{
  display:inline-flex;
  align-items:center;
  gap:var(--space-4);
  background:rgba(255,255,255,0.02);
  border:1px solid var(--border-subtle);
  padding:var(--space-3) var(--space-6);
  border-radius:var(--radius-m);
  margin-left: var(--space-24);
  margin-right: auto;
  margin-bottom:var(--space-6);
}
.hero__skill-item{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:var(--space-1);
}
.hero__skill-item span{
  font-family:var(--font-mono);
  font-size:0.7rem;
  letter-spacing:0.1em;
  color:var(--text-primary);
  font-weight:500;
}
.hero__skill-icon{ width:20px; height:20px; }
.hero__skill-icon.icon--purple{ color:var(--primary); }
.hero__skill-icon.icon--cyan{ color:var(--secondary); }
.hero__skill-icon.icon--yellow{ color:var(--highlight); }
.hero__skill-icon.icon--magenta{ color:var(--accent); }

.hero__skill-sep{
  color:var(--border-strong);
  font-family:var(--font-mono);
  font-size:1.1rem;
  opacity:0.5;
}

/* Exploring Tagline */
.hero__exploring{
  font-family:var(--font-heading);
  font-size:clamp(0.82rem, 1.1vw, 1rem);
  letter-spacing:0.12em;
  color:var(--text-secondary);
  font-weight:500;
  text-transform:uppercase;
  line-height:1.4;
}
.text-cyan{ color:var(--secondary); font-weight:600; }
.text-magenta{ color:var(--accent); font-weight:600; }
.text-yellow{ color:var(--highlight); font-weight:600; }
.text-white{ color:var(--text-primary); }

.hero__actions{
  margin-top:var(--space-6);
  display:flex;
  align-items:center;
  gap:var(--space-4);
  flex-wrap:wrap;
}

.btn{
  font-family:var(--font-heading); font-weight:600; font-size:0.95rem;
  padding:var(--space-4) var(--space-8); border-radius:var(--radius-full);
  display:inline-flex; align-items:center; gap:var(--space-3); cursor:pointer;
  transition:transform var(--dur-s) var(--ease-out), box-shadow var(--dur-s) var(--ease-out), background var(--dur-s) var(--ease-out), border-color var(--dur-s) var(--ease-out);
}
.btn--primary{ background:var(--grad-primary); color:var(--text-primary); border:1px solid transparent; }
.btn--primary:hover, .btn--primary:focus-visible{ transform:translateY(-2px); box-shadow:0 12px 30px -10px rgba(139,63,191,0.55); }
.btn--primary:active{ transform:translateY(0); }
.btn--ghost{ border:1px solid var(--border-strong); color:var(--text-primary); }
.btn--ghost:hover, .btn--ghost:focus-visible{ border-color:var(--secondary); background:rgba(31,183,255,0.06); transform:translateY(-2px); }
.btn__icon{ width:16px; height:16px; transition:transform var(--dur-s) var(--ease-out); }
.btn:hover .btn__icon{ transform:translate(3px,-3px); }

/* Center Column — Emblem SVG */
.hero__col--center{
  display:flex;
  justify-content:center;
  align-items:center;
}
.hero__mark-wrap{
  width:100%;
  max-width:320px;
  aspect-ratio:1/1;
  display:flex;
  align-items:center;
  justify-content:center;
  perspective:1000px;
}
.hero__mark{
  width:100%;
  height:100%;
  transition:transform 0.12s ease-out;
}
.hero__emblem-svg,
.hero__emblem-img{
  width:100%;
  height:100%;
  object-fit:contain;
  filter:drop-shadow(0 0 30px rgba(139,63,191,0.35));
}
.mark-rotator-slow{
  transform-origin:center center;
  animation:emblemFloat 14s ease-in-out infinite alternate;
}
@keyframes emblemFloat{
  0%{ transform: rotate(0deg) scale(1); }
  50%{ transform: rotate(5deg) scale(1.02); }
  100%{ transform: rotate(-4deg) scale(0.98); }
}
@media (prefers-reduced-motion: reduce){
  .mark-rotator-slow{ animation:none; }
}

/* Right Column */
.hero__col--right{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  padding-left:var(--space-4);
}

.hero__stack-box{
  width:100%;
  max-width:420px;
}
.hero__divider{
  height:1px;
  width:90px;
  background:var(--border-strong);
  margin-block:var(--space-4);
}
.hero__role{
  font-family:var(--font-heading);
  font-size:clamp(0.95rem, 1.4vw, 1.25rem);
  letter-spacing:0.16em;
  color:var(--text-primary);
  font-weight:600;
  text-transform:uppercase;
  margin-bottom:var(--space-2);
}
.hero__tech-line{
  font-family:var(--font-heading);
  font-size:clamp(0.9rem, 1.25vw, 1.1rem);
  letter-spacing:0.04em;
  color:var(--text-secondary);
  margin-bottom:var(--space-1);
}
.hero__tech-line .dot{
  color:var(--secondary);
  margin-inline:var(--space-2);
}

.hero__mission{
  margin-top:var(--space-6);
  max-width:420px;
}
.hero__mission-title{
  font-family:var(--font-heading);
  font-size:clamp(0.82rem, 1.1vw, 1rem);
  letter-spacing:0.12em;
  color:var(--text-secondary);
  line-height:1.4;
  text-transform:uppercase;
  font-weight:500;
}
.hero__mission-accent{
  font-family:var(--font-heading);
  font-size:clamp(0.9rem, 1.25vw, 1.1rem);
  letter-spacing:0.14em;
  margin-top:var(--space-1);
  font-weight:600;
}

/* Responsive adjustments */
@media (max-width: 1024px){
  .hero__grid{
    grid-template-columns: 1fr;
    gap:var(--space-10);
    text-align:center;
  }
  .hero__col--center{
    display:none;
  }
  .hero__col--left, .hero__col--right{
    align-items:center;
    padding-left:0;
  }
  .hero__actions{
    justify-content:center;
  }
  .hero__divider{
    margin-inline:auto;
  }
  .hero__mark-wrap{
    max-width:260px;
    margin-inline:auto;
  }
}

.scroll-cue{
  position:absolute; bottom:var(--space-6); left:50%; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:var(--space-2);
  font-family:var(--font-mono); font-size:0.7rem; color:var(--text-tertiary); letter-spacing:0.12em;
}
.scroll-cue__line{ width:1px; height:32px; background:linear-gradient(var(--secondary), transparent); animation:scrollCue 2.4s ease-in-out infinite; }
@keyframes scrollCue{ 0%,100%{ opacity:0.2; } 50%{ opacity:1; } }
@media (prefers-reduced-motion: reduce){ .scroll-cue__line{ animation:none; opacity:0.6; } }

/* ==========================================================================
   Manifesto
   ========================================================================== */
.manifesto{ border-top:1px solid var(--border-subtle); }
.manifesto__grid{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:var(--space-16); align-items:start; }
.manifesto__statement{ font-family:var(--font-heading); font-size:clamp(1.6rem,2.6vw,2.3rem); line-height:1.28; font-weight:500; }
.manifesto__statement em{ font-style:normal; background:var(--grad-primary); -webkit-background-clip:text; background-clip:text; color:transparent; }
.manifesto__aside{ display:flex; flex-direction:column; gap:var(--space-8); }
.manifesto__note{ padding-left:var(--space-6); border-left:2px solid var(--border-strong); color:var(--text-secondary); }
.manifesto__note b{ display:block; color:var(--text-primary); font-family:var(--font-heading); font-weight:600; margin-bottom:var(--space-1); }

/* ==========================================================================
   Lab Experiments — Masonry
   ========================================================================== */
.experiments__toolbar{ display:flex; justify-content:space-between; align-items:flex-end; gap:var(--space-6); flex-wrap:wrap; margin-bottom:var(--space-12); }
.filter-group{ display:flex; gap:var(--space-3); flex-wrap:wrap; }
.chip{
  font-family:var(--font-mono); font-size:0.78rem; padding:var(--space-2) var(--space-4);
  border:1px solid var(--border-subtle); border-radius:var(--radius-full); color:var(--text-secondary);
  cursor:pointer; transition:all var(--dur-s) var(--ease-out);
}
.chip:hover, .chip:focus-visible{ border-color:var(--secondary); color:var(--text-primary); }
.chip[aria-pressed="true"]{ background:var(--secondary); border-color:var(--secondary); color:var(--bg-main); font-weight:500; }

.masonry{
  display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:14px; gap:var(--space-6);
}
.card{
  grid-column:span 1; background:var(--surface); border:1px solid var(--border-subtle); border-radius:var(--radius-l);
  padding:var(--space-6); display:flex; flex-direction:column; justify-content:space-between; gap:var(--space-8);
  position:relative; overflow:hidden; transition:transform var(--dur-m) var(--ease-out), border-color var(--dur-m) var(--ease-out), box-shadow var(--dur-m) var(--ease-out);
}
.card::before{
  content:""; position:absolute; inset:0; opacity:0; background:var(--grad-surface); transition:opacity var(--dur-m) var(--ease-out); pointer-events:none;
}
.card:hover, .card:focus-within{ transform:translateY(-6px); border-color:var(--border-strong); box-shadow:0 24px 48px -24px rgba(0,0,0,0.6); }
.card:hover::before{ opacity:1; }
.card--sm{ grid-row:span 20; }
.card--md{ grid-row:span 24; }
.card--lg{ grid-row:span 30; grid-column:span 2; }

.card__top{ display:flex; justify-content:space-between; align-items:flex-start; gap:var(--space-3); }
.badge{
  font-family:var(--font-mono); font-size:0.68rem; letter-spacing:0.06em; text-transform:uppercase;
  padding:var(--space-1) var(--space-3); border-radius:var(--radius-full); border:1px solid var(--border-subtle);
  white-space:nowrap;
}
.badge--experiment{ color:var(--secondary); border-color:rgba(31,183,255,0.35); }
.badge--prototype{ color:var(--highlight); border-color:rgba(220,196,75,0.35); }
.badge--released{ color:#7CE0A8; border-color:rgba(124,224,168,0.35); }
.badge--research{ color:var(--accent); border-color:rgba(198,61,145,0.4); }

.card__glyph{ width:36px; height:36px; opacity:0.9; }
.card__body h3{ font-size:1.25rem; margin-bottom:var(--space-2); }
.card--lg .card__body h3{ font-size:1.6rem; }
.card__body p{ color:var(--text-secondary); font-size:0.92rem; }
.card__tags{ display:flex; flex-wrap:wrap; gap:var(--space-2); margin-top:var(--space-4); }
.tag{
  font-family:var(--font-mono); font-size:0.7rem; padding:var(--space-1) var(--space-3);
  border-radius:var(--radius-full); background:rgba(31, 183, 255, 0.12);
  border:1px solid rgba(31, 183, 255, 0.28); color:#7CE0FF;
  transition:all var(--dur-s) var(--ease-out);
}
.tag:hover{
  background:rgba(31, 183, 255, 0.22);
  border-color:rgba(31, 183, 255, 0.5);
  color:#FFFFFF;
}
.card__link{ display:inline-flex; align-items:center; gap:var(--space-2); font-family:var(--font-mono); font-size:0.78rem; color:var(--text-primary); margin-top:var(--space-2); }
.card__link svg{ width:12px; height:12px; transition:transform var(--dur-s) var(--ease-out); }
.card:hover .card__link svg{ transform:translate(2px,-2px); }

/* ==========================================================================
   Journey — Timeline
   ========================================================================== */
.timeline{ position:relative; max-width:920px; margin-inline:auto; }
.timeline__track{
  position:absolute; left:50%; top:28px; bottom:28px; width:2px; transform:translateX(-50%);
  background:rgba(255,255,255,0.18); z-index:1;
}
.timeline__progress{
  position:absolute; left:0; top:0; width:100%; height:0%;
  background:linear-gradient(var(--secondary), var(--primary));
  transition:height 0.1s linear; z-index:1;
}
.timeline__item{
  display:grid; grid-template-columns:1fr 60px 1fr; gap:var(--space-8); align-items:start;
  grid-auto-flow:dense; margin-bottom:var(--space-16); position:relative;
}
.timeline__item:last-child{ margin-bottom:0; }
.timeline__card,
.timeline__node,
.timeline__spacer{ grid-row:1; }
.timeline__node{
  grid-column:2; width:14px; height:14px; border-radius:50%; background:var(--bg-main);
  border:2px solid var(--secondary); margin-top:24px; justify-self:center; align-self:start; position:relative; z-index:2;
  box-shadow:0 0 0 6px var(--bg-main);
}
.timeline__item.is-active .timeline__node{ background:var(--secondary); box-shadow:0 0 0 6px var(--bg-main), 0 0 20px var(--secondary); }
.timeline__card{ background:var(--surface); border:1px solid var(--border-subtle); border-radius:var(--radius-m); padding:var(--space-6); }
.timeline__item:nth-child(odd) .timeline__card{ grid-column:1; text-align:right; }
.timeline__item:nth-child(even) .timeline__card{ grid-column:3; }
.timeline__item:nth-child(odd) .timeline__spacer{ grid-column:3; }
.timeline__item:nth-child(even) .timeline__spacer{ grid-column:1; }
.timeline__year{ font-family:var(--font-mono); color:var(--highlight); font-size:0.85rem; }
.timeline__card h3{ font-size:1.2rem; margin-top:var(--space-1); }
.timeline__org{ color:var(--text-tertiary); font-size:0.85rem; margin-top:var(--space-1); font-family:var(--font-mono); }
.timeline__card p{ color:var(--text-secondary); margin-top:var(--space-3); font-size:0.92rem; }
.timeline__item:nth-child(odd) .timeline__card{ margin-left:auto; }
.timeline__item:nth-child(odd) .card__tags{ justify-content:flex-end; }

/* ==========================================================================
   Skills Labs
   ========================================================================== */
.skills__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--space-6); }
.skill-lab{
  background:var(--surface); border:1px solid var(--border-subtle); border-radius:var(--radius-l);
  padding:var(--space-8); display:flex; flex-direction:column; gap:var(--space-6);
  transition:border-color var(--dur-m) var(--ease-out), transform var(--dur-m) var(--ease-out);
}
.skill-lab:hover{ transform:translateY(-4px); border-color:var(--border-strong); }
.skill-lab__icon{ width:40px; height:40px; }
.skill-lab__icon path,.skill-lab__icon circle,.skill-lab__icon rect{ stroke:var(--lab-color, var(--secondary)); }
.skill-lab[data-lab="code"]{ --lab-color:var(--secondary); }
.skill-lab[data-lab="motion"]{ --lab-color:var(--accent); }
.skill-lab[data-lab="ai"]{ --lab-color:var(--primary); }
.skill-lab[data-lab="design"]{ --lab-color:var(--highlight); }
.skill-lab h3{ font-size:1.15rem; }
.skill-lab__desc{ color:var(--text-secondary); font-size:0.88rem; }
.skill-lab__caps{ display:flex; flex-wrap:wrap; gap:var(--space-2); margin-top:auto; }
.cap-pill{
  font-family:var(--font-mono); font-size:0.72rem; padding:var(--space-1) var(--space-3);
  border-radius:var(--radius-full); background:rgba(31, 183, 255, 0.12);
  border:1px solid rgba(31, 183, 255, 0.28); color:#7CE0FF;
  transition:all var(--dur-s) var(--ease-out);
}
.cap-pill:hover{
  background:rgba(31, 183, 255, 0.22);
  border-color:rgba(31, 183, 255, 0.5);
  color:#FFFFFF;
}



/* ==========================================================================
   Contact
   ========================================================================== */
.contact__grid{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:var(--space-20); align-items:start; }
.contact__direct{ display:flex; flex-direction:column; gap:var(--space-8); margin-top:var(--space-8); }
.contact__email{
  font-family:var(--font-heading); font-size:1.4rem; display:inline-flex; align-items:center; gap:var(--space-3);
  padding-bottom:var(--space-2); border-bottom:1px solid var(--border-strong); width:fit-content;
  transition:color var(--dur-s) var(--ease-out), border-color var(--dur-s) var(--ease-out);
}
.contact__email:hover, .contact__email:focus-visible{ color:var(--secondary); border-color:var(--secondary); }
.contact__socials{ display:flex; gap:var(--space-4); }
.social-link{
  width:44px; height:44px; border-radius:50%; border:1px solid var(--border-subtle);
  display:flex; align-items:center; justify-content:center; transition:all var(--dur-s) var(--ease-out);
}
.social-link:hover, .social-link:focus-visible{ border-color:var(--secondary); background:rgba(31,183,255,0.08); transform:translateY(-2px); }
.social-link svg{ width:18px; height:18px; }

.form{ background:var(--surface); border:1px solid var(--border-subtle); border-radius:var(--radius-l); padding:var(--space-8); }
.field{ position:relative; margin-bottom:var(--space-8); }
.field label{
  display:block; font-family:var(--font-mono); font-size:0.75rem; text-transform:uppercase; letter-spacing:0.08em;
  color:var(--text-tertiary); margin-bottom:var(--space-2);
}
.field input, .field textarea{
  width:100%; background:var(--bg-main); border:1px solid var(--border-subtle); border-radius:var(--radius-m);
  padding:var(--space-4); color:var(--text-primary); font-size:0.95rem;
  transition:border-color var(--dur-s) var(--ease-out), background var(--dur-s) var(--ease-out);
}
.field input:hover, .field textarea:hover{ border-color:var(--border-strong); }
.field input:focus, .field textarea:focus{ border-color:var(--secondary); background:rgba(31,183,255,0.03); }
.field textarea{ min-height:130px; resize:vertical; }
.field__error{ display:block; font-size:0.78rem; color:var(--accent); margin-top:var(--space-2); min-height:1.1em; font-family:var(--font-mono); }
.form__submit{ width:100%; justify-content:center; }
.form__status{ margin-top:var(--space-4); font-family:var(--font-mono); font-size:0.85rem; text-align:center; min-height:1.2em; }
.form__status[data-state="success"]{ color:#7CE0A8; }
.form__status[data-state="error"]{ color:var(--accent); }

/* Form Success Card */
.form-success-card{
  background: var(--surface);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-l);
  padding: var(--space-12) var(--space-8);
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-4);
  animation: successFadeIn var(--dur-m) var(--ease-out);
}
@keyframes successFadeIn{
  from{ opacity: 0; transform: translateY(16px); }
  to{ opacity: 1; transform: translateY(0); }
}
.form-success-card__icon{
  width: 72px;
  height: 72px;
  border-radius: var(--radius-full);
  background: rgba(31, 183, 255, 0.12);
  color: var(--secondary);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 32px rgba(31, 183, 255, 0.3);
  margin-bottom: var(--space-2);
}
.form-success-card__icon svg{
  width: 40px;
  height: 40px;
}
.form-success-card h3{
  font-size: 1.75rem;
  color: var(--text-primary);
  font-family: var(--font-heading);
}
.form-success-card p{
  color: var(--text-secondary);
  font-size: 1.05rem;
  max-width: 40ch;
  line-height: 1.6;
}

/* ==========================================================================
   Footer
   ========================================================================== */
.footer{ padding-block:var(--space-16) var(--space-8); border-top:1px solid var(--border-subtle); }
.footer__top{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:var(--space-8); margin-bottom:var(--space-12); }
.footer__brand{ font-family:var(--font-heading); font-weight:700; font-size:1.4rem; }
.footer__tagline{ color:var(--text-tertiary); font-size:0.88rem; margin-top:var(--space-2); max-width:48ch; }
.footer__nav{ display:flex; gap:var(--space-8); flex-wrap:wrap; }
.footer__nav a{ color:var(--text-secondary); font-size:0.9rem; transition:color var(--dur-s) var(--ease-out); }
.footer__nav a:hover, .footer__nav a:focus-visible{ color:var(--text-primary); }
.footer__bottom{
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:var(--space-4);
  padding-top:var(--space-8); border-top:1px solid var(--border-subtle);
  font-family:var(--font-mono); font-size:0.75rem; color:var(--text-tertiary);
}
.footer__socials{ display:flex; gap:var(--space-4); }
.footer__socials a{ transition:color var(--dur-s) var(--ease-out); }
.footer__socials a:hover, .footer__socials a:focus-visible{ color:var(--secondary); }
.back-to-top{
  display:inline-flex; align-items:center; gap:var(--space-2); color:var(--text-tertiary);
  transition:color var(--dur-s) var(--ease-out);
}
.back-to-top:hover, .back-to-top:focus-visible{ color:var(--secondary); }

/* ==========================================================================
   Responsive — Desktop First
   ========================================================================== */
@media (max-width:1440px){
  .container{ max-width:1180px; }
}

@media (max-width:1200px){
  .hero{ grid-template-columns:1fr; text-align:center; padding-top:calc(var(--space-24) + var(--space-8)); }
  .hero__content{ padding-left:0; order:2; }
  .hero__skills-bar{ margin-left: auto; }
  .hero__mark-wrap{ order:1; height:auto; margin-bottom:var(--space-8); }
  .hero__mark{ max-width:340px; margin-inline:auto; }
  .hero__actions, .hero__stats{ justify-content:center; }
  .manifesto__grid{ grid-template-columns:1fr; gap:var(--space-8); }
  .masonry{ grid-template-columns:repeat(3,1fr); }
  .card--lg{ grid-column:span 2; }
  .skills__grid{ grid-template-columns:repeat(2,1fr); }
  .contact__grid{ grid-template-columns:1fr; gap:var(--space-12); }
}

@media (max-width:992px){
  section{ padding-block:var(--space-24); }
  .nav__links{ display:none; }
  .nav__toggle{ display:flex; }
  .masonry{ grid-template-columns:repeat(2,1fr); }
  .card--lg{ grid-column:span 2; }
  .principles{ grid-template-columns:1fr; gap:var(--space-8); }
  .timeline__item{ grid-template-columns:40px 1fr; }
  .timeline__track{ left:20px; }
  .timeline__node{ grid-row:1; grid-column:1; align-self:start; margin-top:28px; }
  .timeline__item:nth-child(odd) .timeline__card,
  .timeline__item:nth-child(even) .timeline__card{ grid-row:1; grid-column:2; text-align:left; margin-left:0; }
  .timeline__item:nth-child(odd) .timeline__spacer, .timeline__item:nth-child(even) .timeline__spacer{ display:none; }
}

@media (max-width:768px){
  .container{ padding-inline:var(--space-6); }
  section{ padding-block:var(--space-20); }
  .nav{ padding:var(--space-4) var(--space-6); }
  .hero__title{ font-size:clamp(2.2rem,9vw,3rem); }
  .hero__stats{ gap:var(--space-8); flex-wrap:wrap; }
  .masonry{ grid-template-columns:1fr; }
  .card--lg{ grid-column:span 1; grid-row:span 24; }
  .skills__grid{ grid-template-columns:1fr; }
  .footer__top{ flex-direction:column; align-items:flex-start; }
}

@media (max-width:576px){
  .hero__actions{ flex-direction:column; align-items:stretch; }
  .btn{ justify-content:center; }
  .experiments__toolbar{ flex-direction:column; align-items:flex-start; }
  .footer__bottom{ flex-direction:column; align-items:flex-start; gap:var(--space-4); }
}

@media (max-width:360px){
  .hero__title{ font-size:1.9rem; }
  .section-head h2{ font-size:1.6rem; }
  .nav__brand span{ display:none; }
}