@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Manrope:wght@500;600;700;800&display=swap');

:root{--bg:#080d1a;--surface:#0f172a;--surface-2:#111c31;--line:rgba(148,163,184,.16);--text:#f8fafc;--muted:#9aa9bd;--blue:#2563eb;--cyan:#38bdf8;--green:#4ade80;--max:1160px;--radius:22px;--shadow:0 24px 70px rgba(0,0,0,.3)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 75% 0,rgba(37,99,235,.12),transparent 32rem),var(--bg);color:var(--text);font:400 16px/1.7 Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased}body::before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.22;background-image:linear-gradient(rgba(148,163,184,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.04) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(to bottom,#000,transparent 72%)}a{color:inherit;text-decoration:none}img,svg{max-width:100%}button,a{ -webkit-tap-highlight-color:transparent}.container{width:min(calc(100% - 40px),var(--max));margin:auto}.skip{position:fixed;left:16px;top:-60px;z-index:100;padding:10px 14px;background:#fff;color:#000;border-radius:8px}.skip:focus{top:16px}.site-header{position:sticky;top:0;z-index:50;background:rgba(8,13,26,.78);border-bottom:1px solid transparent;backdrop-filter:blur(18px)}.site-header.scrolled{border-color:var(--line)}.nav{height:76px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:12px;font-family:Manrope;font-weight:800;letter-spacing:-.03em}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border:1px solid rgba(56,189,248,.5);border-radius:10px;background:linear-gradient(145deg,rgba(37,99,235,.28),rgba(56,189,248,.08));color:var(--cyan)}.nav-links{display:flex;align-items:center;gap:28px;color:#c6d0de;font-size:14px}.nav-links a:hover,.nav-links a[aria-current=page]{color:#fff}.nav-cta{padding:9px 15px;border:1px solid rgba(56,189,248,.35);border-radius:10px}.menu-button{display:none;border:0;background:none;color:#fff;padding:8px}.hero{min-height:calc(100vh - 76px);display:grid;align-items:center;padding:90px 0}.eyebrow{display:flex;align-items:center;gap:9px;color:var(--cyan);font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.eyebrow::before{content:"";width:24px;height:1px;background:currentColor}.hero-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);gap:70px;align-items:center}.hero h1,.page-hero h1{font:800 clamp(48px,7.2vw,92px)/.98 Manrope,sans-serif;letter-spacing:-.065em;margin:22px 0 28px;max-width:940px}.gradient-text{color:transparent;background:linear-gradient(110deg,#f8fafc 30%,#67d5fa 68%,#5b86ff);background-clip:text;-webkit-background-clip:text}.lead{max-width:700px;color:#b7c2d2;font-size:clamp(17px,2vw,21px);line-height:1.65}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:13px 19px;border-radius:12px;border:1px solid var(--line);font-weight:600;font-size:14px;transition:.2s ease}.button.primary{background:#fff;color:#07101e;border-color:#fff}.button.primary:hover{background:#dff6ff;transform:translateY(-2px)}.button.secondary:hover{border-color:rgba(56,189,248,.55);background:rgba(56,189,248,.06);transform:translateY(-2px)}.terminal{position:relative;padding:20px;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(145deg,rgba(17,24,39,.96),rgba(9,15,28,.92));box-shadow:var(--shadow);overflow:hidden}.terminal::after{content:"";position:absolute;inset:auto -40px -70px auto;width:180px;height:180px;background:var(--blue);filter:blur(80px);opacity:.2}.terminal-head{display:flex;gap:7px;padding-bottom:18px;border-bottom:1px solid var(--line)}.terminal-head i{width:8px;height:8px;border-radius:50%;background:#475569}.terminal-body{padding:24px 4px 10px;font:13px/1.9 ui-monospace,SFMono-Regular,Consolas,monospace;color:#7dd3fc}.terminal-body .dim{color:#64748b}.terminal-body .white{color:#e2e8f0}.terminal-body .green{color:var(--green)}.status{display:inline-flex;align-items:center;gap:8px;margin-top:22px;color:#b8c5d5;font-size:13px}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 5px rgba(74,222,128,.1)}.trust{border-block:1px solid var(--line);background:rgba(15,23,42,.34)}.trust-grid{display:grid;grid-template-columns:repeat(5,1fr)}.trust-item{padding:30px 20px;border-right:1px solid var(--line);text-align:center}.trust-item:first-child{border-left:1px solid var(--line)}.trust-item strong{display:block;font:700 18px Manrope}.trust-item span{display:block;margin-top:5px;color:var(--muted);font-size:12px}.section{padding:120px 0}.section.compact{padding:80px 0}.section-head{display:grid;grid-template-columns:.7fr 1.3fr;gap:50px;margin-bottom:55px}.section-head h2{font:700 clamp(34px,5vw,58px)/1.05 Manrope;margin:0;letter-spacing:-.045em}.section-head p{margin:4px 0 0;color:var(--muted);max-width:620px;font-size:17px}.kicker{color:var(--cyan);font-size:12px;text-transform:uppercase;letter-spacing:.15em;font-weight:700;margin-bottom:15px}.card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.card{position:relative;padding:28px;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(145deg,rgba(17,28,49,.72),rgba(10,16,30,.75));transition:.25s ease;overflow:hidden}.card:hover{transform:translateY(-5px);border-color:rgba(56,189,248,.35);box-shadow:0 20px 55px rgba(0,0,0,.18)}.card-index{color:#63738b;font:600 12px ui-monospace,monospace}.card h3{font:700 20px Manrope;margin:38px 0 10px}.card p{color:var(--muted);margin:0;font-size:14px}.timeline{position:relative;margin-top:25px}.timeline::before{content:"";position:absolute;left:18px;top:0;bottom:0;width:1px;background:linear-gradient(var(--cyan),rgba(56,189,248,.05))}.timeline-item{position:relative;display:grid;grid-template-columns:60px 1fr;gap:22px;padding-bottom:42px}.timeline-dot{width:37px;height:37px;border-radius:50%;border:1px solid rgba(56,189,248,.4);background:var(--bg);display:grid;place-items:center;color:var(--cyan);font-size:11px;z-index:1}.timeline-content{padding:6px 0 0}.timeline-meta{color:var(--cyan);font:600 12px ui-monospace,monospace}.timeline-content h3{font:700 24px Manrope;margin:8px 0 2px}.timeline-content h4{font:500 15px Inter;color:#bcc8d8;margin:0 0 12px}.timeline-content p{color:var(--muted);max-width:760px;margin:0}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.project-card{display:flex;min-height:430px;flex-direction:column;justify-content:space-between;padding:36px;border:1px solid var(--line);border-radius:28px;background:radial-gradient(circle at 90% 0,rgba(37,99,235,.17),transparent 50%),var(--surface);transition:.25s}.project-card:nth-child(2){background:radial-gradient(circle at 90% 0,rgba(56,189,248,.12),transparent 50%),var(--surface)}.project-card:hover{transform:translateY(-5px);border-color:rgba(56,189,248,.35)}.tags{display:flex;flex-wrap:wrap;gap:7px}.tag{padding:5px 9px;border:1px solid var(--line);border-radius:999px;color:#aebbd0;font-size:11px}.project-card h3{font:700 clamp(28px,4vw,42px)/1.05 Manrope;letter-spacing:-.035em;margin:25px 0 15px}.project-card p{color:var(--muted);max-width:520px}.project-link{display:flex;align-items:center;justify-content:space-between;padding-top:25px;border-top:1px solid var(--line);font-weight:600}.project-link span:last-child{color:var(--cyan);font-size:21px}.cta-panel{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:center;padding:55px;border:1px solid rgba(56,189,248,.2);border-radius:28px;background:linear-gradient(135deg,rgba(37,99,235,.16),rgba(56,189,248,.04))}.cta-panel h2{font:700 clamp(30px,5vw,52px)/1.08 Manrope;letter-spacing:-.04em;margin:0 0 12px}.cta-panel p{color:var(--muted);margin:0}.site-footer{border-top:1px solid var(--line);padding:34px 0;color:var(--muted);font-size:13px}.footer-inner{display:flex;justify-content:space-between;gap:25px}.footer-links{display:flex;gap:20px}.footer-links a:hover{color:#fff}.page-hero{padding:100px 0 75px;border-bottom:1px solid var(--line)}.page-hero h1{font-size:clamp(44px,7vw,80px);max-width:880px}.page-hero .lead{max-width:780px}.case-list{display:grid;gap:24px}.case-row{display:grid;grid-template-columns:1.1fr .9fr;gap:50px;padding:44px;border:1px solid var(--line);border-radius:28px;background:var(--surface)}.case-row h2{font:700 clamp(30px,4vw,48px) Manrope;margin:12px 0}.case-row p{color:var(--muted)}.case-facts{display:grid;grid-template-columns:1fr 1fr;gap:12px}.fact{padding:18px;border:1px solid var(--line);border-radius:14px;background:rgba(8,13,26,.45)}.fact span{display:block;color:#76869c;font-size:11px;text-transform:uppercase;letter-spacing:.1em}.fact strong{display:block;margin-top:6px;font-size:14px}.article-layout{display:grid;grid-template-columns:220px minmax(0,760px);gap:70px;align-items:start}.toc{position:sticky;top:105px;font-size:13px}.toc strong{display:block;margin-bottom:12px}.toc a{display:block;color:var(--muted);padding:7px 0;border-left:1px solid var(--line);padding-left:13px}.toc a:hover{color:#fff;border-color:var(--cyan)}.prose h2{font:700 clamp(28px,4vw,42px) Manrope;letter-spacing:-.035em;margin:75px 0 18px;scroll-margin-top:110px}.prose h3{font:700 21px Manrope;margin:38px 0 12px}.prose p,.prose li{color:#b3bfd0}.prose strong{color:#f1f5f9}.prose ul{padding-left:20px}.callout{margin:28px 0;padding:20px 22px;border-left:3px solid var(--cyan);background:rgba(56,189,248,.06);border-radius:0 14px 14px 0}.decision{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:25px 0}.decision>div{padding:20px;border:1px solid var(--line);border-radius:15px}.decision small{color:var(--cyan);text-transform:uppercase;letter-spacing:.1em}.architecture{margin:32px 0;padding:25px;border:1px solid var(--line);border-radius:20px;background:#090f1c;overflow:auto}.flow{display:flex;align-items:stretch;min-width:650px;gap:8px}.node{flex:1;display:grid;place-items:center;min-height:95px;padding:14px;text-align:center;border:1px solid rgba(56,189,248,.24);border-radius:12px;background:#101a2d;font-size:12px}.arrow{display:grid;place-items:center;color:var(--cyan)}.metric-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:25px 0}.metric{padding:22px;border:1px solid var(--line);border-radius:16px}.metric strong{display:block;color:#fff;font:700 30px Manrope}.metric span{color:var(--muted);font-size:12px}.notes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.note-card{display:flex;flex-direction:column;min-height:300px;padding:27px;border:1px solid var(--line);border-radius:20px;background:var(--surface)}.note-card:hover{border-color:rgba(56,189,248,.35)}.note-card .note-meta{color:var(--cyan);font:600 11px ui-monospace,monospace;text-transform:uppercase}.note-card h2{font:700 22px/1.25 Manrope;margin:28px 0 12px}.note-card p{color:var(--muted);font-size:14px}.note-card .read{margin-top:auto;padding-top:20px;font-size:13px;font-weight:600}.resume-layout{display:grid;grid-template-columns:250px 1fr;gap:70px}.resume-aside{position:sticky;top:105px}.resume-section{padding-bottom:60px}.resume-section h2{font:700 28px Manrope;margin:0 0 30px}.role{padding:0 0 34px 24px;border-left:1px solid var(--line);position:relative}.role::before{content:"";position:absolute;left:-5px;top:7px;width:9px;height:9px;border-radius:50%;background:var(--cyan)}.role-header{display:flex;justify-content:space-between;gap:30px}.role h3{font:700 20px Manrope;margin:0}.role h4{color:var(--cyan);font-size:14px;margin:5px 0}.role time{color:var(--muted);font-size:12px;white-space:nowrap}.role ul{color:#aebace;padding-left:18px}.skill-list{display:flex;flex-wrap:wrap;gap:8px}.skill-list span{padding:8px 11px;border:1px solid var(--line);border-radius:8px;color:#c2ccda;font-size:12px}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px}.portrait-abstract{min-height:520px;border:1px solid var(--line);border-radius:28px;background:radial-gradient(circle at 50% 38%,rgba(56,189,248,.25) 0 3%,transparent 3.5%),radial-gradient(circle at 50% 38%,transparent 0 18%,rgba(56,189,248,.22) 18.5% 19%,transparent 19.5% 30%,rgba(37,99,235,.16) 30.5% 31%,transparent 31.5%),linear-gradient(145deg,#111c31,#090f1c);position:relative;overflow:hidden}.portrait-abstract::after{content:"NK / BACKEND";position:absolute;bottom:28px;left:30px;font:600 12px ui-monospace,monospace;letter-spacing:.15em;color:#788ba5}.contact-list{display:grid;gap:14px;margin-top:35px}.contact-link{display:flex;align-items:center;justify-content:space-between;padding:20px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.contact-link:hover{border-color:rgba(56,189,248,.4)}.contact-link span{color:var(--muted);font-size:13px}.reveal{opacity:0;transform:translateY(20px);transition:opacity .65s ease,transform .65s ease}.reveal.visible{opacity:1;transform:none}
@media(max-width:900px){.nav-links{display:none;position:absolute;left:20px;right:20px;top:68px;padding:20px;flex-direction:column;align-items:stretch;gap:4px;border:1px solid var(--line);border-radius:16px;background:#0c1424;box-shadow:var(--shadow)}.nav-links.open{display:flex}.nav-links a{padding:10px}.menu-button{display:block}.hero{padding:70px 0;min-height:auto}.hero-grid,.section-head,.case-row,.resume-layout,.about-grid{grid-template-columns:1fr}.hero-grid{gap:45px}.trust-grid{grid-template-columns:repeat(2,1fr)}.trust-item{border-bottom:1px solid var(--line)}.trust-item:last-child{grid-column:1/-1}.card-grid,.notes-grid{grid-template-columns:1fr 1fr}.project-grid{grid-template-columns:1fr}.article-layout{grid-template-columns:1fr}.toc,.resume-aside{position:static}.toc{display:none}.section{padding:90px 0}.resume-layout{gap:35px}}
@media(max-width:600px){.container{width:min(calc(100% - 28px),var(--max))}.hero h1,.page-hero h1{font-size:43px}.lead{font-size:16px}.card-grid,.notes-grid,.metric-row,.decision,.case-facts{grid-template-columns:1fr}.project-card{min-height:380px;padding:26px}.section{padding:72px 0}.page-hero{padding:70px 0 55px}.cta-panel{grid-template-columns:1fr;padding:30px}.footer-inner,.role-header{flex-direction:column}.role-header{gap:4px}.footer-links{flex-wrap:wrap}.case-row{padding:25px}.terminal{padding:15px}.trust-grid{grid-template-columns:1fr}.trust-item:last-child{grid-column:auto}.trust-item{border-left:1px solid var(--line)}}
@media(max-width:900px){.hero-grid>*,.article-layout>*,.prose{min-width:0}.menu-button{flex:0 0 auto}.hero-grid,.section-head,.case-row,.resume-layout,.about-grid,.article-layout{grid-template-columns:minmax(0,1fr)}}
@media(max-width:600px){.hero h1,.page-hero h1{font-size:clamp(37px,10.8vw,43px)}.lead{overflow-wrap:anywhere}.actions{display:grid;grid-template-columns:minmax(0,1fr)}.button{width:100%}.terminal{min-width:0}.terminal-body{font-size:12px;overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}*{animation:none!important;transition:none!important}}

/* Page-state and portfolio imagery refinements. */
.nav-links a[aria-current=page],
.nav-links a[aria-current=page]:hover {
  color: var(--cyan);
}

.roadmap-head {
  margin-top: 70px;
}

.about-portrait {
  min-height: 520px;
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 28px;
  background:
    radial-gradient(circle at 50% 35%, rgba(56, 189, 248, .14), transparent 42%),
    linear-gradient(145deg, #111c31, #090f1c);
}

.about-portrait img {
  display: block;
  width: min(100%, 480px);
  height: auto;
  max-height: 560px;
  object-fit: contain;
  object-position: center;
}

@media(max-width:600px) {
  .roadmap-head { margin-top: 55px; }
  .about-portrait { min-height: 420px; }
}

/* Personal hero and strengths profile. */
.hero-stack {
  margin: 22px 0 0;
  color: #7dd3fc;
  font: 600 12px/1.5 ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.hero-portrait {
  position: relative;
  isolation: isolate;
  min-height: 520px;
  margin: 0;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 28px;
  background:
    radial-gradient(circle at 50% 38%, rgba(56,189,248,.22) 0 3%, transparent 3.5%),
    radial-gradient(circle at 50% 38%, transparent 0 18%, rgba(56,189,248,.16) 18.5% 19%, transparent 19.5% 31%, rgba(37,99,235,.12) 31.5% 32%, transparent 32.5%),
    linear-gradient(145deg, #111c31, #090f1c);
  box-shadow: var(--shadow);
}

.hero-portrait img {
  position: relative;
  z-index: 1;
  display: block;
  width: min(92%, 390px);
  max-height: 500px;
  object-fit: contain;
  object-position: center bottom;
}

.hero-portrait figcaption {
  position: absolute;
  z-index: 2;
  right: 18px;
  bottom: 18px;
  left: 18px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  border: 1px solid rgba(148,163,184,.2);
  border-radius: 12px;
  background: rgba(8,13,26,.82);
  color: #c7d2e1;
  font-size: 12px;
  backdrop-filter: blur(12px);
}

.strengths-section {
  border-top: 1px solid var(--line);
  background: rgba(15,23,42,.25);
}

.strengths-report-link {
  margin-top: 22px;
}

.strengths-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 14px;
}

.strength-card {
  min-height: 230px;
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(17,28,49,.86), rgba(10,16,30,.82));
}

.strength-card > span {
  color: var(--cyan);
  font: 600 11px ui-monospace, SFMono-Regular, Consolas, monospace;
}

.strength-card h3 {
  margin: 44px 0 12px;
  font: 700 20px Manrope, sans-serif;
}

.strength-card p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.65;
}

.strengths-credit {
  margin: 24px 0 0;
  color: #718198;
  font-size: 11px;
}

@media(max-width:900px) {
  .hero-portrait { min-height: 500px; }
  .strengths-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .strength-card:last-child { grid-column: 1 / -1; }
}

@media(max-width:600px) {
  .hero-portrait { min-height: 450px; }
  .hero-portrait img { max-height: 430px; }
  .strengths-grid { grid-template-columns: minmax(0, 1fr); }
  .strength-card,
  .strength-card:last-child { grid-column: auto; min-height: 0; }
  .strength-card h3 { margin-top: 28px; }
}
