@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');:root{--bg:#0a101b;--panel:#111c2b;--panel2:#152334;--text:#f0f3f5;--muted:#a1b1c1;--cyan:#82e5e4;--line:#2a3a4b}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:'DM Sans',sans-serif;line-height:1.65}button,a{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}.wrap{width:min(1160px,calc(100% - 48px));margin:auto}.nav{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:16px max(24px,calc((100vw - 1160px)/2));background:#0a101be8;backdrop-filter:blur(18px);border-bottom:1px solid #263445}.brand{font-family:Manrope,sans-serif;font-size:24px;font-weight:800;letter-spacing:-2px}.brand span,.period{color:var(--cyan)}nav{display:flex;align-items:center;gap:25px}nav a{font-size:12px;font-weight:700;color:#c5d0d9}nav a:hover,.text-link:hover{color:var(--cyan)}.nav-cta{border:1px solid var(--cyan);padding:10px 16px;border-radius:50px;color:var(--cyan)}.menu{display:none;background:transparent;border:0;color:white;font-size:24px}.hero{padding-top:115px}.eyebrow,.kicker{font-size:11px;letter-spacing:2.2px;font-weight:800;color:var(--cyan)}.dot{display:inline-block;background:var(--cyan);width:7px;height:7px;border-radius:50%;margin-right:10px;box-shadow:0 0 20px var(--cyan)}.hero-grid{display:grid;grid-template-columns:1.5fr .65fr;gap:30px;align-items:center}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Manrope,sans-serif;line-height:1.08;letter-spacing:-.055em}h1{font-size:clamp(52px,7.4vw,106px);margin:27px 0 28px}h1 em,h2 em{font-style:normal;color:var(--cyan)}.lede{font-size:18px;max-width:640px;color:#c2cbd5}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}.btn{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;padding:14px 19px;border-radius:6px;font-weight:700;font-size:13px}.primary{background:var(--cyan);color:#0a101b}.outline{border:1px solid #526577}.btn:hover{transform:translateY(-2px)}.hero-aside{text-align:center}.orb{width:min(290px,100%);aspect-ratio:1;border-radius:50%;display:grid;place-items:center;margin:auto;background:radial-gradient(circle at 38% 30%,#2e5d73,#172f43 43%,#091522 70%);box-shadow:0 0 85px #42d4d71c,inset 0 0 55px #4dc8d82b;border:1px solid #4b89918c}.orb span{font-size:13px;letter-spacing:3px;line-height:2.2;font-weight:800;color:#d8fcff}.hero-aside p{color:var(--muted);font-size:12px;line-height:1.9;margin-top:26px}.metrics{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-top:95px;padding:28px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.metrics div{display:flex;flex-direction:column}.metrics strong{font:800 37px Manrope;letter-spacing:-2px}.metrics strong span{color:var(--cyan)}.metrics small{color:var(--muted);font-size:11px}.section{padding-top:135px;padding-bottom:125px;scroll-margin-top:65px}.section-head{margin-bottom:50px}h2{font-size:clamp(44px,6vw,76px);margin:18px 0 0}.split{display:grid;grid-template-columns:1fr 1fr;gap:85px}.large{font-size:clamp(20px,2.4vw,29px);font-weight:600;line-height:1.45;letter-spacing:-.035em}.muted,.timeline p,.timeline li{color:var(--muted)}.portfolio-section,.expertise-section{background:#0d1724}.section-title-row{display:flex;justify-content:space-between;align-items:end;gap:40px}.section-title-row p{max-width:360px;color:var(--muted)}.filters{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 28px}.filters button{background:transparent;color:#afbfcb;border:1px solid #35485a;padding:9px 16px;border-radius:100px;font-size:12px}.filters button.active,.filters button:hover{background:var(--cyan);border-color:var(--cyan);color:#0a101b}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.project{background:#142132;border:1px solid #293c50;text-align:left;padding:0;color:var(--text);border-radius:9px;overflow:hidden;transition:transform .2s,border-color .2s}.project:hover{transform:translateY(-5px);border-color:var(--cyan)}.project-visual{height:230px;position:relative;background:radial-gradient(circle at 80% 20%,#28667a,#162d44 40%,#0b1828 85%);display:grid;place-items:center;overflow:hidden}.project-visual img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.project:hover img{transform:scale(1.04)}.project-visual .placeholder{font:800 46px Manrope;letter-spacing:-3px;color:#c4f4f5;text-align:center;line-height:1.05;padding:24px}.project-visual .index{position:absolute;top:15px;left:17px;font-size:10px;letter-spacing:1.5px;color:#f1f7f9;background:#0b1424a9;padding:5px 8px;border-radius:3px}.project-body{padding:24px}.project-body .cat{color:var(--cyan);font-size:10px;letter-spacing:1.4px;text-transform:uppercase;font-weight:800}.project-body h3{font-size:22px;margin:10px 0 7px}.project-body p{font-size:13px;color:var(--muted);margin-bottom:17px}.project-body .more{font-size:12px;font-weight:700}.gallery-note{font-size:11px;color:#91a4b4;margin-top:22px}.timeline article{display:grid;grid-template-columns:190px 1fr;gap:35px;padding:35px 0;border-top:1px solid var(--line)}.timeline article>span{font-size:12px;color:var(--cyan);letter-spacing:1.3px;font-weight:700}.timeline h3{font-size:27px;margin:0 0 9px}.timeline .role{font-weight:700;color:#d7e5ee;font-size:13px}.timeline ul{padding-left:19px}.timeline li{margin-bottom:7px}.skill-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.skill-grid>div{background:#142132;padding:30px;border:1px solid #293b4d;border-radius:7px}.skill-grid span{font-size:11px;color:var(--cyan)}.skill-grid h3{font-size:21px;margin:23px 0 12px}.skill-grid p{color:var(--muted);font-size:13px}.pharo-card{padding:65px;background:linear-gradient(120deg,#13283a,#111d2c 70%);border:1px solid #346070;border-radius:12px;display:grid;grid-template-columns:1.3fr .7fr;gap:20px}.pharo-card h2{font-size:clamp(40px,5vw,70px)}.pharo-card p:not(.large){color:#aebdcb;max-width:650px}.tags{display:flex;gap:9px;flex-wrap:wrap;margin:28px 0}.tags span{font-size:11px;padding:7px 12px;border:1px solid #496574;border-radius:20px}.text-link{color:var(--cyan);font-size:14px;font-weight:700}.pharo-mark{display:grid;place-items:center;font:800 190px Manrope;color:#b9f7f7;text-shadow:0 0 75px #57bfc077}.pharo-mark span{font-size:30px;color:var(--cyan)}.contact{text-align:center}.contact h2{margin:20px 0}.contact p{color:var(--muted);max-width:650px;margin:0 auto 35px}.email{display:inline-block;font:700 clamp(21px,3.7vw,42px) Manrope;letter-spacing:-1.5px;color:var(--cyan);border-bottom:1px solid var(--cyan);padding-bottom:9px}.contact-actions{display:flex;justify-content:center;gap:30px;margin-top:45px;font-size:13px;color:#c6d4dd}footer{display:flex;justify-content:space-between;padding:30px max(24px,calc((100vw - 1160px)/2));border-top:1px solid var(--line);color:#8da1b0;font-size:12px}dialog{width:min(850px,calc(100% - 28px));max-height:90vh;overflow:auto;background:#101d2c;color:white;border:1px solid #446174;border-radius:12px;padding:35px;box-shadow:0 30px 100px #000a}dialog::backdrop{background:#03080dd9;backdrop-filter:blur(8px)}dialog .close{position:sticky;top:0;float:right;background:#213449;border:0;color:white;border-radius:50%;width:38px;height:38px;font-size:24px;z-index:2}dialog h2{font-size:clamp(34px,5vw,58px);margin:15px 0}dialog h3{font-size:18px;margin-top:27px}dialog p{color:#b9c8d3}dialog .modal-meta{color:var(--cyan);font-size:11px;letter-spacing:1.4px;text-transform:uppercase}dialog .gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:25px 0}dialog .gallery button{border:1px solid #3a5265;background:#152536;padding:0;overflow:hidden;border-radius:6px;color:white}dialog .gallery img{display:block;width:100%;height:230px;object-fit:contain;background:#0b1420}dialog .gallery small{display:block;padding:8px;color:#b6c9d4}dialog .empty{border:1px dashed #3c5365;border-radius:6px;padding:32px;color:#99b0bf;font-size:13px;text-align:center;margin:20px 0}dialog .tags{margin:16px 0}dialog .source-link{color:var(--cyan);font-weight:700;font-size:13px}#lightbox{position:fixed;inset:0;background:#03060bf2;z-index:100;display:grid;place-items:center;padding:50px 20px}#lightbox img{max-width:95vw;max-height:85vh;object-fit:contain}#lightbox button{position:absolute;top:12px;right:20px;color:white;background:none;border:0;font-size:35px}@media(max-width:850px){nav{display:none;position:absolute;top:63px;left:0;right:0;padding:25px;background:#0b1422;flex-direction:column;align-items:stretch}nav.open{display:flex}.menu{display:block}.hero{padding-top:75px}.hero-grid{grid-template-columns:1fr}.hero-aside{display:none}.metrics{grid-template-columns:repeat(3,1fr)}.project-grid,.skill-grid{grid-template-columns:repeat(2,1fr)}.pharo-card{grid-template-columns:1fr}.pharo-mark{display:none}}@media(max-width:600px){.wrap{width:calc(100% - 32px)}.hero{padding-top:60px}h1{font-size:clamp(43px,12vw,70px)}.metrics{grid-template-columns:repeat(2,1fr);margin-top:60px}.section{padding-top:85px;padding-bottom:75px}.split,.section-title-row{display:block}.section-title-row p{margin-top:20px}.project-grid,.skill-grid{grid-template-columns:1fr}.timeline article{grid-template-columns:1fr;gap:8px}.timeline h3{font-size:24px}.pharo-card{padding:30px 22px}.contact-actions{gap:15px}footer{flex-direction:column;gap:8px}dialog{padding:20px}dialog .gallery{grid-template-columns:1fr}}
