*{ margin:0; padding:0; box-sizing:border-box; }

:root{
  --bg:#04070d;
  --card:rgba(0,229,255,.025);
  --card-hover:rgba(0,229,255,.06);
  --border:rgba(0,229,255,.15);
  --ink:#e6f7ff;
  --ink-soft:#7a9aab;
  --blue:#00e5ff;
  --purple:#8b5cf6;
  --pink:#06b6d4;
  --green:#00ff9d;
  --yellow:#fbbf24;
  --glow-blue:rgba(0,229,255,.5);
  --glow-purple:rgba(139,92,246,.5);
  --scanline:rgba(0,229,255,.03);
  --ease:cubic-bezier(.22,1,.36,1);
}

body.light{
  --bg:#e8eef5;
  --card:rgba(30,60,90,.04);
  --card-hover:rgba(30,60,90,.08);
  --border:rgba(30,60,90,.15);
  --ink:#0a1520;
  --ink-soft:#5a7285;
  --blue:#0ea5e9;
  --purple:#7c3aed;
  --pink:#06b6d4;
  --green:#059669;
  --yellow:#d97706;
  --glow-blue:rgba(14,165,233,.35);
  --glow-purple:rgba(124,58,237,.35);
  --scanline:rgba(14,165,233,.02);
}

html{ scroll-behavior:smooth; }

body{
  font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  background:var(--bg);
  color:var(--ink);
  line-height:1.6;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  transition:background .6s var(--ease), color .6s var(--ease);
}

.bg-layer{ position:fixed; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
.blob{ position:absolute; border-radius:50%; filter:blur(90px); opacity:.4; will-change:transform; }
.blob.b1{ width:800px; height:800px; top:-20%; left:-15%; background:radial-gradient(circle, rgba(0,229,255,.40), transparent 65%); animation:float1 18s ease-in-out infinite; }
.blob.b2{ width:900px; height:900px; bottom:-25%; right:-20%; background:radial-gradient(circle, rgba(139,92,246,.40), transparent 65%); animation:float2 24s ease-in-out infinite; }
.blob.b3{ width:700px; height:700px; top:30%; left:30%; background:radial-gradient(circle, rgba(6,182,212,.30), transparent 65%); animation:float3 28s ease-in-out infinite; }
body.light .blob{ opacity:.35; }
body.light .blob.b1{ background:radial-gradient(circle, rgba(14,165,233,.55), transparent 65%); }
body.light .blob.b2{ background:radial-gradient(circle, rgba(124,58,237,.45), transparent 65%); }
body.light .blob.b3{ background:radial-gradient(circle, rgba(6,182,212,.40), transparent 65%); }
@keyframes float1{ 0%,100%{ transform:translate(0,0) scale(1); } 33%{ transform:translate(100px,50px) scale(1.12); } 66%{ transform:translate(-50px,90px) scale(.94); } }
@keyframes float2{ 0%,100%{ transform:translate(0,0) scale(1); } 50%{ transform:translate(-120px,-70px) scale(1.18); } }
@keyframes float3{ 0%,100%{ transform:translate(0,0) scale(1); } 50%{ transform:translate(-90px,70px) scale(1.22); } }

.grid-bg{ position:absolute; inset:0;
  background-image: linear-gradient(rgba(0,229,255,.10) 1px, transparent 1px), linear-gradient(90deg, rgba(139,92,246,.10) 1px, transparent 1px);
  background-size:50px 50px;
  mask-image:radial-gradient(ellipse at 50% 50%, black 40%, transparent 85%);
  -webkit-mask-image:radial-gradient(ellipse at 50% 50%, black 40%, transparent 85%);
  animation:gridPulse 8s ease-in-out infinite;
}
body.light .grid-bg{
  background-image: linear-gradient(rgba(14,165,233,.15) 1px, transparent 1px), linear-gradient(90deg, rgba(124,58,237,.15) 1px, transparent 1px);
}
@keyframes gridPulse{ 0%,100%{ opacity:.6; } 50%{ opacity:1; } }

.bg-layer::after{
  content:""; position:absolute; inset:0;
  background:repeating-linear-gradient(0deg, var(--scanline) 0px, var(--scanline) 1px, transparent 1px, transparent 3px);
  pointer-events:none;
  animation:scanlineScroll 8s linear infinite;
  opacity:.5;
}
@keyframes scanlineScroll{ 0%{ transform:translateY(0); } 100%{ transform:translateY(3px); } }

.particles{ position:absolute; inset:0; }
.particle{ position:absolute; width:3px; height:3px; border-radius:50%; background:var(--blue); opacity:.5; box-shadow:0 0 8px currentColor; animation:rise linear infinite; }
@keyframes rise{ 0%{ transform:translateY(100vh) scale(0); opacity:0; } 10%{ opacity:.7; } 90%{ opacity:.7; } 100%{ transform:translateY(-10vh) scale(1); opacity:0; } }

.spotlight{ position:fixed; width:500px; height:500px; border-radius:50%; background:radial-gradient(circle, var(--glow-blue), transparent 70%); pointer-events:none; z-index:1; transform:translate(-50%,-50%); transition:opacity .3s; opacity:0; }
@media (hover:hover){ body:hover .spotlight{ opacity:1; } }

.container{ max-width:1180px; margin:0 auto; padding:0 48px; position:relative; z-index:2; }

/* NAV */
nav{ position:fixed; top:0; left:0; right:0; z-index:100; padding:20px 0; transition:all .4s var(--ease); }
nav.scrolled{ padding:12px 0; background:rgba(4,7,13,.78); backdrop-filter:blur(20px) saturate(180%); -webkit-backdrop-filter:blur(20px) saturate(180%); border-bottom:1px solid var(--border); }
body.light nav.scrolled{ background:rgba(232,238,245,.85); }
.nav-inner{ max-width:1180px; margin:0 auto; padding:0 48px; display:flex; align-items:center; justify-content:space-between; }
.nav-logo{ font-weight:800; font-size:1.3rem; letter-spacing:-.02em; background:linear-gradient(90deg,var(--blue),var(--purple)); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; filter:drop-shadow(0 0 12px var(--glow-blue)); }
body.light .nav-logo{ filter:none; }
.nav-links{ display:flex; gap:28px; list-style:none; align-items:center; }
.nav-links a{ color:var(--ink-soft); text-decoration:none; font-size:1rem; font-weight:500; transition:color .2s; position:relative; }
.nav-links a:hover{ color:var(--blue); text-shadow:0 0 12px var(--glow-blue); }
.nav-links a::after{ content:""; position:absolute; bottom:-6px; left:0; right:0; height:1px; background:var(--blue); box-shadow:0 0 8px var(--glow-blue); transform:scaleX(0); transform-origin:right; transition:transform .3s var(--ease); }
.nav-links a:hover::after{ transform:scaleX(1); transform-origin:left; }
.theme-toggle{ width:44px; height:44px; border-radius:50%; border:1px solid var(--border); background:var(--card); color:var(--ink); cursor:pointer; font-size:1.15rem; display:grid; place-items:center; transition:all .3s var(--ease); }
.theme-toggle:hover{ border-color:var(--blue); box-shadow:0 0 20px var(--glow-blue); transform:rotate(20deg); }
@media (max-width:820px){ .nav-links a:not(.theme-toggle){ display:none; } }

/* HERO */
.hero{ padding:180px 0 100px; min-height:100vh; display:flex; flex-direction:column; justify-content:center; position:relative; }

.status-badge{ display:inline-flex; align-items:center; gap:10px; padding:10px 20px; width:fit-content; background:rgba(0,255,157,.06); border:1px solid rgba(0,255,157,.3); border-radius:100px; font-size:.95rem; color:var(--green); font-weight:600; letter-spacing:.02em; margin-bottom:40px; backdrop-filter:blur(10px); animation:fadeSlideUp .8s var(--ease) both; box-shadow:0 0 20px rgba(0,255,157,.2); }
body.light .status-badge{ background:rgba(5,150,105,.08); border-color:rgba(5,150,105,.35); }
.status-badge .dot{ width:9px; height:9px; background:var(--green); border-radius:50%; position:relative; box-shadow:0 0 12px var(--green); }
.status-badge .dot::after{ content:""; position:absolute; inset:0; border-radius:50%; background:var(--green); animation:pulseRing 2s ease-out infinite; }
@keyframes pulseRing{ 0%{ transform:scale(1); opacity:.8; } 100%{ transform:scale(3); opacity:0; } }

.hero-profile{ display:flex; align-items:center; gap:48px; margin-bottom:24px; animation:fadeSlideUp .8s .1s var(--ease) both; }
.profile-photo{ width:200px; height:200px; border-radius:50%; background-image:url("raphael.jpg"); background-size:cover; background-position:center 25%; flex-shrink:0; position:relative;
  box-shadow: 0 0 0 3px var(--blue), 0 0 40px var(--glow-blue), 0 0 80px var(--glow-purple), 0 15px 40px rgba(0,0,0,.5);
  animation:photoGlow 4s ease-in-out infinite;
}
@keyframes photoGlow{
  0%,100%{ box-shadow: 0 0 0 3px var(--blue), 0 0 40px var(--glow-blue), 0 0 80px var(--glow-purple), 0 15px 40px rgba(0,0,0,.5); }
  50%{ box-shadow: 0 0 0 3px var(--purple), 0 0 60px var(--glow-purple), 0 0 100px var(--glow-blue), 0 15px 40px rgba(0,0,0,.5); }
}

.hero-profile h1{ font-size:clamp(2.5rem, 6vw, 5rem); font-weight:800; letter-spacing:-.035em; line-height:1.1; }
.hero-profile h1 .grad{
  background:linear-gradient(120deg,#00e5ff 0%,#8b5cf6 45%,#06b6d4 100%);
  background-size:200% 200%;
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
  animation:gradientShift 6s ease infinite;
  display:block;
  position:relative;
  filter:drop-shadow(0 0 24px var(--glow-blue));
}
@keyframes gradientShift{ 0%,100%{ background-position:0% 50%; } 50%{ background-position:100% 50%; } }
body.light .hero-profile h1 .grad{ filter:none; }

.hero .sub{ color:var(--ink-soft); font-size:1.35rem; max-width:800px; margin-top:28px; line-height:1.7; animation:fadeSlideUp .8s .2s var(--ease) both; }
.hero .sub strong{ color:var(--ink); font-weight:600; }
@keyframes fadeSlideUp{ from{ opacity:0; transform:translateY(24px); } to{ opacity:1; transform:translateY(0); } }

.stats-bar{ display:grid; grid-template-columns:repeat(4, 1fr); gap:18px; margin-top:56px; animation:fadeSlideUp .8s .45s var(--ease) both; }
.stat-box{ padding:28px 24px; background:var(--card); border:1px solid var(--border); border-radius:16px; backdrop-filter:blur(10px); transition:all .35s var(--ease); text-align:center; position:relative; overflow:hidden; }
.stat-box:hover{ border-color:var(--blue); box-shadow:0 0 30px var(--glow-blue); transform:translateY(-4px); }
.stat-num{ font-family:'JetBrains Mono', monospace; font-size:2.5rem; font-weight:700; background:linear-gradient(120deg,var(--blue),var(--purple)); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; line-height:1; filter:drop-shadow(0 0 12px var(--glow-blue)); }
body.light .stat-num{ filter:none; }
.stat-lbl{ font-size:.85rem; color:var(--ink-soft); letter-spacing:.1em; text-transform:uppercase; margin-top:12px; }

.facts{ display:flex; flex-wrap:wrap; gap:14px; margin-top:40px; animation:fadeSlideUp .8s .5s var(--ease) both; }
.fact{ display:inline-flex; align-items:center; gap:8px; padding:12px 22px; background:var(--card); border:1px solid var(--border); border-radius:100px; font-size:1rem; color:var(--ink); backdrop-filter:blur(10px); transition:all .3s var(--ease); }
.fact:hover{ background:var(--card-hover); border-color:var(--blue); box-shadow:0 0 25px var(--glow-blue); transform:translateY(-2px); }
.fact strong{ color:var(--blue); font-weight:600; }

.links{ display:flex; flex-wrap:wrap; gap:16px; margin-top:48px; animation:fadeSlideUp .8s .55s var(--ease) both; }
.btn{ display:inline-flex; align-items:center; gap:10px; padding:16px 28px; border-radius:12px; font-size:1rem; font-weight:600; text-decoration:none; transition:all .3s var(--ease); position:relative; overflow:hidden; cursor:pointer; font-family:inherit; border:none; }
.btn-primary{ background:linear-gradient(135deg,#00e5ff,#8b5cf6); color:#04070d; box-shadow:0 10px 30px var(--glow-blue); }
body.light .btn-primary{ color:#fff; }
.btn-primary:hover{ transform:translateY(-3px); box-shadow:0 15px 40px var(--glow-purple); }
.btn-ghost{ background:var(--card); border:1px solid var(--border); color:var(--ink); backdrop-filter:blur(10px); }
.btn-ghost:hover{ background:var(--card-hover); border-color:var(--blue); box-shadow:0 0 25px var(--glow-blue); transform:translateY(-3px); }

.scroll-hint{ position:absolute; bottom:40px; left:50%; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:10px; color:var(--ink-soft); font-size:.85rem; letter-spacing:.15em; animation:fadeSlideUp 1s .8s var(--ease) both; }
.scroll-mouse{ width:26px; height:42px; border:2px solid var(--ink-soft); border-radius:14px; position:relative; box-shadow:0 0 12px var(--glow-blue); }
.scroll-mouse::after{ content:""; position:absolute; top:8px; left:50%; transform:translateX(-50%); width:3px; height:8px; background:var(--blue); border-radius:2px; animation:scrollDot 1.8s ease-in-out infinite; }
@keyframes scrollDot{ 0%{ opacity:0; transform:translate(-50%,0); } 50%{ opacity:1; } 100%{ opacity:0; transform:translate(-50%,14px); } }

section.content-sec{ padding:130px 0; border-bottom:1px solid var(--border); position:relative; }
.section-head{ margin-bottom:56px; opacity:0; transform:translateY(30px); transition:all .9s var(--ease); }
.section-head.visible{ opacity:1; transform:translateY(0); }
.section-label{ display:inline-flex; align-items:center; gap:10px; font-family:'JetBrains Mono', monospace; font-size:.9rem; color:var(--blue); letter-spacing:.18em; text-transform:uppercase; margin-bottom:18px; text-shadow:0 0 12px var(--glow-blue); }
.section-label::before{ content:""; width:32px; height:1px; background:var(--blue); box-shadow:0 0 8px var(--blue); }
.section-head h2{ font-size:clamp(2rem,4vw,3rem); font-weight:700; letter-spacing:-.03em; line-height:1.2; margin:0; }
.section-head h2 .grad-2{ background:linear-gradient(120deg,var(--blue),var(--purple)); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; filter:drop-shadow(0 0 12px var(--glow-blue)); }
body.light .section-head h2 .grad-2{ filter:none; }
.section-head p{ color:var(--ink-soft); font-size:1.1rem; margin-top:16px; max-width:700px; }

.reveal{ opacity:0; transform:translateY(30px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.visible{ opacity:1; transform:translateY(0); }
.reveal.d1{ transition-delay:.08s; }
.reveal.d2{ transition-delay:.16s; }
.reveal.d3{ transition-delay:.24s; }

.info-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:16px; }
.info-item{ padding:24px 28px; background:var(--card); border:1px solid var(--border); border-radius:14px; backdrop-filter:blur(10px); transition:all .4s var(--ease); position:relative; overflow:hidden; display:flex; flex-direction:column; justify-content:center; min-height:100px; }
.info-item:hover{ background:var(--card-hover); border-color:var(--blue); transform:translateY(-4px); box-shadow:0 0 30px var(--glow-blue); }
.info-item .label{ font-family:'JetBrains Mono', monospace; font-size:.78rem; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.14em; margin-bottom:8px; }
.info-item .value{ font-size:1.1rem; font-weight:500; color:var(--ink); word-break:break-word; line-height:1.4; }

.about-card{ padding:44px 52px; background:var(--card); border:1px solid var(--border); border-radius:20px; backdrop-filter:blur(10px); position:relative; overflow:hidden; transition:all .4s var(--ease); }
.about-card p{ color:var(--ink-soft); font-size:1.15rem; line-height:1.85; margin:0; padding:0; }
.about-card p strong{ color:var(--ink); font-weight:500; }

.timeline{ position:relative; padding-left:48px; }
.timeline::before{ content:""; position:absolute; left:14px; top:10px; bottom:10px; width:2px; background:linear-gradient(180deg,var(--blue),var(--purple),transparent); box-shadow:0 0 12px var(--glow-blue); }
.tl-item{ position:relative; padding-bottom:44px; opacity:0; transform:translateX(-20px); transition:all .7s var(--ease); }
.tl-item.visible{ opacity:1; transform:translateX(0); }
.tl-item:last-child{ padding-bottom:0; }
.tl-item::before{ content:""; position:absolute; left:-41px; top:6px; width:18px; height:18px; border-radius:50%; background:var(--bg); border:3px solid var(--blue); box-shadow:0 0 20px var(--glow-blue); }
.tl-item.current::before{ border-color:var(--green); box-shadow:0 0 24px var(--green); animation:pulseGreen 2s ease-in-out infinite; }
@keyframes pulseGreen{ 0%,100%{ box-shadow:0 0 20px var(--green); } 50%{ box-shadow:0 0 36px var(--green); } }
.tl-year{ font-family:'JetBrains Mono', monospace; font-size:.95rem; color:var(--blue); letter-spacing:.1em; margin-bottom:6px; text-shadow:0 0 10px var(--glow-blue); }
.tl-title{ font-size:1.3rem; font-weight:600; margin-bottom:8px; }
.tl-desc{ color:var(--ink-soft); font-size:1.05rem; line-height:1.75; }

.focus-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); gap:20px; }
.focus-card{ padding:36px; background:var(--card); border:1px solid var(--border); border-radius:18px; backdrop-filter:blur(10px); transition:all .45s var(--ease); position:relative; overflow:hidden; }
.focus-card:hover{ background:var(--card-hover); transform:translateY(-6px); box-shadow:0 25px 60px rgba(0,0,0,.5), 0 0 30px var(--glow-blue); }
.focus-card .emoji{ font-size:2.5rem; margin-bottom:18px; display:inline-block; }
.focus-card h3{ font-size:1.25rem; font-weight:600; margin-bottom:10px; }
.focus-card p{ color:var(--ink-soft); font-size:1rem; line-height:1.7; }

.project{ padding:36px; background:var(--card); border:1px solid var(--border); border-radius:18px; margin-bottom:20px; position:relative; overflow:hidden; backdrop-filter:blur(10px); transition:all .45s var(--ease); }
.project:hover{ background:var(--card-hover); border-color:var(--blue); transform:translateX(8px); box-shadow:0 25px 60px rgba(0,0,0,.5), 0 0 30px var(--glow-blue); }
.project-top{ display:flex; align-items:center; gap:18px; margin-bottom:16px; }
.project-icon{ width:52px; height:52px; border-radius:12px; background:linear-gradient(135deg,rgba(0,229,255,.15),rgba(139,92,246,.15)); border:1px solid var(--blue); display:grid; place-items:center; font-size:1.4rem; flex-shrink:0; box-shadow:0 0 15px var(--glow-blue); }
.project h3{ font-size:1.3rem; font-weight:600; }
.project .desc{ color:var(--ink-soft); font-size:1.05rem; line-height:1.75; }
.tags{ margin-top:20px; display:flex; flex-wrap:wrap; gap:10px; }
.tag{ font-family:'JetBrains Mono', monospace; font-size:.8rem; font-weight:500; padding:6px 14px; background:rgba(0,229,255,.08); color:var(--blue); border-radius:100px; border:1px solid rgba(0,229,255,.3); }

.project-actions{ margin-top:20px; display:flex; flex-wrap:wrap; gap:12px; }

.skills-bars{ display:flex; flex-direction:column; gap:24px; }
.skill-row{ display:flex; flex-direction:column; gap:10px; opacity:0; transform:translateX(-20px); transition:all .7s var(--ease); }
.skill-row.visible{ opacity:1; transform:translateX(0); }
.skill-top{ display:flex; justify-content:space-between; align-items:center; font-size:1.05rem; font-weight:500; }
.skill-name{ font-family:'JetBrains Mono', monospace; }
.skill-pct{ color:var(--ink-soft); font-family:'JetBrains Mono', monospace; font-size:.95rem; }
.skill-track{ height:10px; background:var(--card); border:1px solid var(--border); border-radius:100px; overflow:hidden; }
.skill-fill{ height:100%; width:0; border-radius:100px; background:linear-gradient(90deg,var(--blue),var(--purple)); transition:width 1.6s var(--ease); box-shadow:0 0 12px var(--glow-blue); }

.exp-card{ padding:32px 36px; background:var(--card); border:1px solid var(--border); border-radius:18px; backdrop-filter:blur(10px); margin-bottom:18px; transition:all .4s var(--ease); position:relative; }
.exp-card:hover{ background:var(--card-hover); border-color:var(--pink); transform:translateX(8px); box-shadow:0 0 30px var(--glow-purple); }
.exp-top{ display:flex; justify-content:space-between; gap:18px; flex-wrap:wrap; margin-bottom:12px; }
.exp-role{ font-size:1.3rem; font-weight:600; }
.exp-org{ color:var(--blue); font-size:1.05rem; font-weight:500; }
.exp-date{ font-family:'JetBrains Mono', monospace; font-size:.9rem; color:var(--ink-soft); }
.exp-desc{ color:var(--ink-soft); font-size:1.05rem; line-height:1.75; margin-top:12px; }

.contact-wrap{ display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.contact-form{ padding:44px; background:var(--card); border:1px solid var(--border); border-radius:20px; backdrop-filter:blur(10px); }
.field{ margin-bottom:24px; }
.field label{ display:block; font-size:.9rem; color:var(--ink-soft); font-weight:600; margin-bottom:10px; letter-spacing:.05em; text-transform:uppercase; font-family:'JetBrains Mono', monospace; }
.field input, .field textarea{ width:100%; padding:16px 20px; background:var(--bg); border:1px solid var(--border); border-radius:12px; color:var(--ink); font-family:inherit; font-size:1.05rem; outline:none; resize:vertical; }
.field input:focus, .field textarea:focus{ border-color:var(--blue); box-shadow:0 0 20px var(--glow-blue); }
.field textarea{ min-height:160px; }
.contact-submit{ width:100%; padding:18px 28px; border:none; border-radius:12px; background:linear-gradient(135deg,#00e5ff,#8b5cf6); color:#04070d; font-size:1.1rem; font-weight:700; cursor:pointer; box-shadow:0 10px 30px var(--glow-blue); }
body.light .contact-submit{ color:#fff; }
.contact-info{ padding:44px; background:var(--card); border:1px solid var(--border); border-radius:20px; backdrop-filter:blur(10px); display:flex; flex-direction:column; gap:20px; }
.contact-item{ display:flex; gap:18px; align-items:center; padding:18px; border-radius:14px; background:rgba(0,229,255,.04); border:1px solid var(--border); text-decoration:none; color:inherit; transition:all .3s var(--ease); }
.contact-item:hover{ background:rgba(0,229,255,.1); border-color:var(--blue); transform:translateX(4px); }
.contact-icon{ width:54px; height:54px; border-radius:14px; background:linear-gradient(135deg,rgba(0,229,255,.15),rgba(139,92,246,.15)); border:1px solid var(--blue); display:grid; place-items:center; font-size:1.4rem; flex-shrink:0; }
.contact-text{ flex:1; min-width:0; }
.contact-text .lbl{ font-size:.85rem; color:var(--ink-soft); text-transform:uppercase; font-family:'JetBrains Mono', monospace; }
.contact-text .val{ font-size:1.1rem; font-weight:500; color:var(--ink); word-break:break-all; }

footer{ padding:80px 0 50px; text-align:center; color:var(--ink-soft); font-size:.95rem; position:relative; z-index:2; }
.footer-inner{ max-width:1180px; margin:0 auto; padding:0 48px; }
.footer-social{ display:flex; justify-content:center; gap:16px; margin-bottom:28px; }
.footer-social a{ width:50px; height:50px; border-radius:14px; display:grid; place-items:center; background:var(--card); border:1px solid var(--border); color:var(--ink-soft); text-decoration:none; font-size:1.25rem; transition:all .3s var(--ease); }
.footer-social a:hover{ color:var(--blue); border-color:var(--blue); transform:translateY(-4px); }
.footer-inner .name{ font-weight:600; color:var(--ink); }
.heart{ color:var(--pink); display:inline-block; animation:heartbeat 1.4s ease-in-out infinite; }
@keyframes heartbeat{ 0%,100%{ transform:scale(1); } 25%{ transform:scale(1.25); } 50%{ transform:scale(1); } 75%{ transform:scale(1.15); } }

.back-top{ position:fixed; bottom:36px; right:36px; width:56px; height:56px; border-radius:50%; border:1px solid var(--border); background:rgba(6,10,20,.9); backdrop-filter:blur(20px); color:var(--ink); cursor:pointer; font-size:1.5rem; display:grid; place-items:center; transition:all .4s var(--ease); opacity:0; pointer-events:none; z-index:99; }
body.light .back-top{ background:rgba(255,255,255,.9); }
.back-top.show{ opacity:1; pointer-events:auto; }
.back-top:hover{ transform:translateY(-4px) scale(1.08); border-color:var(--blue); color:var(--blue); }

@media (max-width:1024px){
  .info-grid{ grid-template-columns:repeat(2, 1fr); }
}
@media (max-width:900px){
  .contact-wrap{ grid-template-columns:1fr; }
  .stats-bar{ grid-template-columns:repeat(2, 1fr); }
}
@media (max-width:640px){
  .container{ padding:0 22px; }
  .nav-inner{ padding:0 22px; }
  .hero{ padding:130px 0 70px; }
  .hero-profile{ flex-direction:column; align-items:flex-start; gap:24px; }
  .profile-photo{ width:130px; height:130px; }
  .hero-profile h1{ font-size:2.2rem; }
  .hero .sub{ font-size:1rem; max-width:100%; }
  .info-grid{ grid-template-columns:1fr; }
  .info-item{ padding:20px; min-height:auto; }
  .focus-card, .project, .about-card{ padding:26px; }
  .about-card{ padding:32px 26px; }
  .contact-form, .contact-info{ padding:26px; }
  section.content-sec{ padding:80px 0; }
  .scroll-hint{ display:none; }
  .timeline{ padding-left:36px; }
  .tl-item::before{ left:-30px; }
  .back-top{ bottom:20px; right:20px; width:48px; height:48px; font-size:1.25rem; }
  .footer-inner{ padding:0 22px; }
}

.sm-gallery{
  position:fixed; inset:0;
  z-index:9999;
  display:none;
  background:rgba(4,7,13,.94);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  overflow-y:auto;
  padding:60px 24px 40px;
  animation:smFadeIn .25s ease;
}
body.light .sm-gallery{ background:rgba(232,238,245,.96); }

.sm-gallery.open{ display:block; }

@keyframes smFadeIn{
  from{ opacity:0; }
  to{ opacity:1; }
}

.sm-gallery-inner{
  max-width:1200px;
  margin:0 auto;
  animation:smSlideUp .35s cubic-bezier(.22,1,.36,1);
}

@keyframes smSlideUp{
  from{ opacity:0; transform:translateY(20px); }
  to{ opacity:1; transform:translateY(0); }
}

.sm-gallery-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:36px;
  padding-bottom:20px;
  border-bottom:1px solid var(--border);
}

.sm-gallery-header h2{
  font-size:1.9rem;
  font-weight:700;
  letter-spacing:-.02em;
  background:linear-gradient(120deg, var(--blue), var(--purple));
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
  filter:drop-shadow(0 0 12px var(--glow-blue));
}
body.light .sm-gallery-header h2{ filter:none; }

.sm-gallery-close{
  width:46px; height:46px;
  border-radius:50%;
  border:1px solid var(--border);
  background:var(--card);
  color:var(--ink);
  cursor:pointer;
  font-size:1.5rem;
  line-height:1;
  display:grid;
  place-items:center;
  transition:all .25s var(--ease);
}
.sm-gallery-close:hover{
  border-color:var(--blue);
  box-shadow:0 0 24px var(--glow-blue);
  transform:rotate(90deg);
}

.sm-gallery-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(340px, 1fr));
  gap:24px;
}

.sm-gallery-fig{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:16px;
  overflow:hidden;
  transition:all .3s var(--ease);
  margin:0;
}
.sm-gallery-fig:hover{
  border-color:var(--blue);
  box-shadow:0 0 30px var(--glow-blue);
  transform:translateY(-4px);
}
.sm-gallery-fig img{
  width:100%;
  display:block;
  background:var(--bg);
}
.sm-gallery-fig figcaption{
  padding:14px 18px;
  font-size:.95rem;
  color:var(--ink-soft);
  line-height:1.5;
}

.sm-gallery-hint{
  text-align:center;
  color:var(--ink-soft);
  font-size:.9rem;
  margin-top:40px;
  font-family:'JetBrains Mono', monospace;
  letter-spacing:.05em;
}

.sm-gallery-hint kbd{
  display:inline-block;
  padding:2px 8px;
  border:1px solid var(--border);
  border-radius:6px;
  background:var(--card);
  font-family:'JetBrains Mono', monospace;
  font-size:.85rem;
}

@media (max-width:640px){
  .sm-gallery{ padding:40px 16px; }
  .sm-gallery-header h2{ font-size:1.4rem; }
  .sm-gallery-grid{ grid-template-columns:1fr; }
}

@media (prefers-reduced-motion:reduce){
  *, *::before, *::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
  .reveal, .section-head, .tl-item, .skill-row{ opacity:1 !important; transform:none !important; }
}

/* v2 recruiter-focused polish */
.nav-logo{display:flex;align-items:center;gap:8px}.nav-logo span{font-family:'JetBrains Mono',monospace;font-size:.62rem;color:var(--blue);letter-spacing:.16em;border:1px solid var(--border);padding:4px 7px;border-radius:6px}.menu-toggle{display:none}
.profile-card{display:grid;grid-template-columns:1.7fr 1fr;gap:28px;align-items:center}.profile-points{display:grid;gap:12px;color:var(--ink);font-family:'JetBrains Mono',monospace;font-size:.9rem}.profile-points span{padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:rgba(255,255,255,.02)}
.project .tags{margin-top:22px}.project .tag{transition:transform .2s ease}.project .tag:hover{transform:translateY(-2px)}
html{scroll-behavior:smooth}.nav-links a{position:relative}.nav-links a::after{content:'';position:absolute;left:0;right:0;bottom:-7px;height:2px;transform:scaleX(0);transform-origin:center;background:var(--blue);transition:transform .2s ease}.nav-links a:hover::after{transform:scaleX(1)}
@media(max-width:760px){.nav-inner{padding:12px 18px}.menu-toggle{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--border);background:var(--card);color:var(--ink);border-radius:10px;font-size:1.2rem}.nav-links{display:none;position:absolute;top:68px;left:16px;right:16px;padding:12px;flex-direction:column;gap:4px;background:rgba(7,10,18,.96);border:1px solid var(--border);border-radius:14px;backdrop-filter:blur(18px)}body.light .nav-links{background:rgba(245,248,252,.98)}.nav-links.open{display:flex}.nav-links li{width:100%}.nav-links a{display:block;padding:12px 14px}.profile-card{grid-template-columns:1fr}.stats-bar{grid-template-columns:repeat(2,1fr)}.hero{padding-top:130px}.facts{gap:8px}.fact{font-size:.88rem;padding:10px 14px}}
@media print{body{background:#fff!important;color:#111!important}.bg-layer,.spotlight,nav,.scroll-hint,.links,.theme-toggle{display:none!important}.container{max-width:900px}.hero{min-height:auto;padding:30px 0}.hero-profile h1 .grad,.section-head h2 .grad-2,.stat-num{background:none;-webkit-text-fill-color:initial;color:#111;filter:none}.content-sec{padding:35px 0!important}.reveal,.section-head,.tl-item,.skill-row{opacity:1!important;transform:none!important}.card,.about-card,.project,.focus-card,.info-item{background:#fff!important;border:1px solid #ddd!important;box-shadow:none!important}.profile-card{grid-template-columns:1fr}.btn{display:none!important}}
