
:root{
  --bg:#f7f8fb;--surface:#fff;--surface-2:#eef2f7;--ink:#111827;--muted:#5f6b7a;
  --line:#dfe5ec;--brand:#1261ff;--brand-2:#0b1220;--radius:22px;--shadow:0 18px 55px rgba(15,23,42,.08);
  --max:1180px
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);line-height:1.65}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit}
.container{width:min(var(--max),calc(100% - 40px));margin:auto}
.skip-link{position:fixed;left:12px;top:-50px;z-index:999;background:#fff;padding:8px 12px;border-radius:8px}.skip-link:focus{top:12px}
.site-header{position:sticky;top:0;z-index:100;background:rgba(247,248,251,.9);backdrop-filter:blur(16px);border-bottom:1px solid rgba(223,229,236,.7)}
.nav-wrap{height:72px;display:flex;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:.05em}
.brand-mark{display:grid;place-items:center;width:38px;height:38px;background:var(--brand-2);color:#fff;border-radius:12px;font-size:13px}
.nav-menu{display:flex;align-items:center;gap:25px;font-size:14px;font-weight:650;color:#3b4654}
.nav-menu a:hover{color:var(--brand)}
.menu-btn{display:none;border:0;background:transparent;width:42px;height:42px;padding:9px}
.menu-btn span{display:block;height:2px;background:#111827;margin:5px 0}
.hero{padding:78px 0 76px;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(330px,.85fr);gap:72px;align-items:center}
.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.16em;font-weight:800;color:var(--brand);margin:0 0 12px}
h1,h2,h3,p{margin-top:0}
h1{font-size:clamp(43px,6vw,76px);line-height:1.02;letter-spacing:-.055em;margin-bottom:24px;max-width:800px}
h1 span{color:var(--brand)}
h2{font-size:clamp(32px,4vw,52px);letter-spacing:-.04em;line-height:1.06;margin-bottom:18px}
h3{letter-spacing:-.02em}
.hero-text{font-size:18px;max-width:710px;color:var(--muted);margin-bottom:30px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.btn{padding:13px 20px;border-radius:14px;font-weight:750;border:1px solid var(--line);transition:.2s transform,.2s background}
.btn:hover{transform:translateY(-2px)}
.btn.primary{background:var(--brand-2);color:#fff;border-color:var(--brand-2)}
.btn.secondary{background:#fff}
.quick-links{display:flex;gap:20px;margin-top:24px;font-size:14px;font-weight:700;color:#536071}
.quick-links a:hover{color:var(--brand)}
.hero-photo{position:relative;max-width:470px;justify-self:end}
.photo-frame{background:#e4e9f0;border-radius:34px;overflow:hidden;box-shadow:var(--shadow);aspect-ratio:4/5}
.photo-frame img{width:100%;height:100%;object-fit:cover}
.status-card{position:absolute;bottom:24px;left:-44px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:13px 17px;box-shadow:var(--shadow);display:flex;gap:11px;align-items:center}
.status-card strong,.status-card small{display:block}.status-card small{color:var(--muted);font-size:12px}
.status-dot{width:10px;height:10px;background:#19a463;border-radius:50%;box-shadow:0 0 0 5px rgba(25,164,99,.12)}
.section{padding:92px 0}.section.alt{background:#fff;border-block:1px solid var(--line)}
.two-col,.split{display:grid;grid-template-columns:.85fr 1.15fr;gap:72px;align-items:start}
.section-heading.narrow{max-width:740px;margin-bottom:42px}.section-heading p.muted{max-width:720px}
.prose{font-size:17px;color:#3e4a58}.prose>p{margin-bottom:20px}
.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:30px}
.facts div{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px}.facts span,.facts strong{display:block}.facts span{font-size:12px;color:var(--muted);margin-bottom:3px}.facts strong{font-size:15px}
.timeline{position:relative}.timeline:before{content:"";position:absolute;left:214px;top:0;bottom:0;width:1px;background:var(--line)}
.timeline-item{display:grid;grid-template-columns:185px 1fr;gap:58px;padding:0 0 46px;position:relative}
.timeline-item:before{content:"";position:absolute;left:207px;top:7px;width:15px;height:15px;background:var(--brand);border:4px solid #fff;border-radius:50%;box-shadow:0 0 0 1px var(--line)}
.timeline-date{font-size:13px;font-weight:800;color:#647080;text-transform:uppercase;letter-spacing:.08em}
.timeline-body h3{font-size:22px;margin-bottom:4px}.timeline-body h3 span{font-weight:650;color:var(--muted)}.timeline-body>p{color:var(--muted);font-size:14px}
.timeline-body ul{padding-left:18px;margin-bottom:0;color:#414d5c}
.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}
.project-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px;min-height:255px;display:flex;flex-direction:column;transition:.22s transform,.22s box-shadow}
.project-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.project-card h3{font-size:20px;margin:12px 0 10px}.project-card p{color:var(--muted);font-size:14.5px}.stack{margin-top:auto;border-top:1px solid var(--line);padding-top:14px;font-size:12px;font-weight:750;color:#4f5c6b}
.tag{align-self:flex-start;background:#eef4ff;color:#135ad4;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.more-work{margin-top:22px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px 20px}.more-work summary{cursor:pointer;font-weight:800}.chip-list{display:flex;flex-wrap:wrap;gap:9px;margin-top:15px}.chip-list span{border:1px solid var(--line);background:var(--surface-2);padding:8px 11px;border-radius:999px;font-size:12px;font-weight:650}
.skills-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.skills-grid div{background:#fff;border:1px solid var(--line);padding:20px;border-radius:18px}.skills-grid h3{font-size:16px;margin-bottom:6px}.skills-grid p{font-size:14px;color:var(--muted);margin-bottom:0}
.education-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.edu{background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px}.edu span{font-size:12px;font-weight:800;color:var(--brand);letter-spacing:.06em}.edu h3{font-size:18px;margin:9px 0 8px}.edu p{color:var(--muted);font-size:14px;margin-bottom:8px}
.training{margin-top:20px;border-left:3px solid var(--brand);padding:22px 24px;background:#eef4ff;border-radius:0 18px 18px 0}.training p{margin-bottom:10px;color:#485465}.training p:last-child{margin-bottom:0}
.gallery-head{display:flex;justify-content:space-between;gap:24px;align-items:end;margin-bottom:28px}.gallery-head>div:first-child{max-width:700px}
.gallery-filter{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.gallery-filter button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 13px;font-size:12px;font-weight:750;cursor:pointer}.gallery-filter button.active{background:var(--brand-2);color:#fff;border-color:var(--brand-2)}
.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.gallery-card{position:relative;border-radius:20px;overflow:hidden;background:#e8edf3;aspect-ratio:4/3;cursor:zoom-in}.gallery-card img{width:100%;height:100%;object-fit:cover;transition:.3s transform}.gallery-card:hover img{transform:scale(1.035)}.gallery-overlay{position:absolute;inset:auto 0 0;padding:50px 16px 14px;background:linear-gradient(transparent,rgba(0,0,0,.72));color:#fff}.gallery-overlay strong,.gallery-overlay small{display:block}.gallery-overlay small{opacity:.8}
.gallery-note{font-size:12px;color:var(--muted);margin:17px 0 0}.gallery-note code{background:#e8edf3;padding:2px 5px;border-radius:5px}
.contact-section{background:var(--brand-2);color:#fff}.contact-section .eyebrow{color:#83adff}.contact-section .muted{color:#a9b4c2}.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;align-items:center}
.contact-card{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.contact-card a{padding:17px;border:1px solid #303a49;border-radius:15px;background:#121b2a}.contact-card span,.contact-card strong{display:block}.contact-card span{font-size:11px;color:#8f9aaa;margin-bottom:4px;text-transform:uppercase;letter-spacing:.08em}.contact-card strong{font-size:14px;word-break:break-word}
footer{background:#070c14;color:#8d98a7;padding:24px 0}.footer-grid{display:flex;justify-content:space-between;gap:20px;font-size:12px}.footer-grid p{margin:0}
.muted{color:var(--muted)}
.lightbox{border:0;padding:0;background:#090d14;color:#fff;border-radius:20px;max-width:min(92vw,1100px);box-shadow:0 30px 100px rgba(0,0,0,.45)}.lightbox::backdrop{background:rgba(5,8,13,.86);backdrop-filter:blur(5px)}.lightbox img{max-height:78vh;max-width:88vw;object-fit:contain;margin:auto}.lightbox-caption{padding:13px 18px;color:#c8d0db}.lightbox-close{position:absolute;right:10px;top:10px;border:0;background:rgba(0,0,0,.6);color:#fff;border-radius:50%;width:38px;height:38px;font-size:25px;cursor:pointer}
.reveal{opacity:0;transform:translateY(14px);transition:.55s ease}.reveal.visible{opacity:1;transform:none}
@media(max-width:950px){
  .menu-btn{display:block}.nav-menu{display:none;position:absolute;top:72px;left:20px;right:20px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:12px;box-shadow:var(--shadow);flex-direction:column;align-items:stretch}.nav-menu.open{display:flex}.nav-menu a{padding:9px 10px}
  .hero-grid,.two-col,.split,.contact-grid{grid-template-columns:1fr}.hero{padding-top:50px}.hero-grid{gap:40px}.hero-photo{justify-self:center;max-width:420px}.status-card{left:12px}
  .project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.education-grid{grid-template-columns:1fr}.timeline:before{left:7px}.timeline-item{grid-template-columns:1fr;gap:5px;padding-left:34px}.timeline-item:before{left:0}.gallery-head{display:block}.gallery-filter{justify-content:flex-start;margin-top:15px}
}
@media(max-width:650px){
  .container{width:min(100% - 28px,var(--max))}.section{padding:68px 0}.nav-wrap{height:64px}.nav-menu{top:64px;left:14px;right:14px}
  h1{font-size:45px}.hero-text{font-size:16px}.project-grid,.gallery-grid,.skills-grid,.facts,.contact-card{grid-template-columns:1fr}
  .hero-photo{max-width:330px}.status-card{bottom:12px;padding:10px 12px}.status-card small{font-size:11px}
  .gallery-grid{gap:12px}.footer-grid{display:block}.footer-grid a{display:inline-block;margin-top:7px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.project-card,.gallery-card img,.btn{transition:none}}
