*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:#0b1020;color:#edf2ff;font:14px/1.7 Manrope,sans-serif;overflow-x:hidden}a{color:inherit;text-decoration:none}.glow{position:absolute;z-index:-1;filter:blur(110px);opacity:.15;border-radius:50%;pointer-events:none}.g1{width:420px;height:420px;background:#2563eb;top:80px;left:-220px}.g2{width:400px;height:400px;background:#0d9488;top:950px;right:-240px}.wrap,header{width:min(1160px,calc(100% - 48px));margin:auto}header{height:82px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #263249;position:relative;z-index:4}.brand{display:flex;align-items:center;gap:12px}.brand b{font-size:26px;letter-spacing:-2px}.brand b span{color:#65a8ff}.brand small,.eyebrow,.kicker,label,time,.scroll,footer>a:last-child{font:10px 'DM Mono',monospace;letter-spacing:1.3px;color:#9aa8c1}nav{display:flex;gap:30px;align-items:center;font-size:12px;color:#c5cee0}nav a:hover{color:white}.nav-cta{padding:9px 14px;border:1px solid #3a5d8d;border-radius:4px}.menu{display:none;background:none;border:0;color:white;font-size:22px}.hero{min-height:680px;padding-top:100px;display:grid;grid-template-columns:1.1fr .9fr;gap:35px;align-items:center;position:relative}.eyebrow{display:flex;gap:10px;align-items:center;color:#a9bad4}.eyebrow i,.availability i{width:7px;height:7px;border-radius:50%;background:#61e0d0;box-shadow:0 0 12px #61e0d0;display:inline-block}.hero h1{font-size:clamp(43px,6vw,72px);line-height:1.08;letter-spacing:-4px;margin:28px 0 24px}.hero h1 em,.teaching h2 em,.contact h2 em{font-style:normal;background:linear-gradient(100deg,#75b7ff,#7ce2d5);background-clip:text;color:transparent}.lead{font-size:17px;color:#d7e0f1;max-width:610px;line-height:1.8}.sub{font-size:13px;color:#9aa8c1;max-width:570px}.actions{display:flex;gap:12px;margin-top:30px}.btn{display:inline-block;padding:12px 17px;border:1px solid #40516e;border-radius:5px;font-size:12px;font-weight:700}.btn:hover{border-color:#65a8ff;transform:translateY(-2px)}.btn.primary{background:#dcecff;color:#0b1830;border-color:#dcecff}.availability{display:flex;gap:24px;margin-top:27px;font:10px 'DM Mono',monospace;color:#9aa8c1}.availability span{display:flex;align-items:center;gap:8px}.visual{height:460px;display:grid;place-items:center;position:relative;margin-bottom:30px}.orbit{position:absolute;border:1px solid #6aa0e633;border-radius:50%}.o1{width:410px;height:300px;transform:rotate(-25deg)}.o2{width:330px;height:410px;transform:rotate(48deg)}.code{width:340px;background:linear-gradient(145deg,#17243b,#0e1729);border:1px solid #2b4263;border-radius:9px;box-shadow:0 25px 80px #0008;z-index:2;overflow:hidden}.code-top,.code-bottom{height:42px;display:flex;justify-content:space-between;align-items:center;padding:0 16px;color:#8295b3;font:10px 'DM Mono',monospace;border-bottom:1px solid #ffffff18}.code-top span{color:#6883a9;letter-spacing:3px}.code pre{padding:18px 24px;color:#d5deef;font:12px/2 'DM Mono',monospace}.code pre b{color:#c4a5ff;font-weight:400}.code pre span{color:#7dc3ff}.code pre i{color:#75dfc6;font-style:normal}.code-bottom{border:0;border-top:1px solid #ffffff18;color:#6e88a9}.chip{position:absolute;z-index:3;padding:10px 13px;background:#17243b;border:1px solid #334a6c;border-radius:5px;box-shadow:0 12px 30px #0005;font-size:11px;color:#d9e5f7}.chip b{font:14px 'DM Mono',monospace;color:#61e0d0;margin-right:7px}.c1{top:58px;left:20px}.c2{right:0;top:130px}.c3{bottom:80px;left:15px}.visual-label{position:absolute;right:5px;bottom:35px;font:9px/1.7 'DM Mono',monospace;letter-spacing:2px;color:#6f85a5;text-align:right}.visual-label strong{color:#b5c9e9}.scroll{position:absolute;bottom:22px;left:0;display:flex;gap:15px;align-items:center}.scroll span{height:1px;width:55px;background:#526986}.stats{display:grid;grid-template-columns:repeat(4,1fr);padding:28px 0;border-top:1px solid #263249;border-bottom:1px solid #263249}.stats div{padding:5px 24px;border-right:1px solid #263249}.stats div:first-child{padding-left:0}.stats div:last-child{border:0}.stats b{display:block;font-size:30px;letter-spacing:-1.5px}.stats b span{color:#61e0d0}.stats small{font:9px 'DM Mono',monospace;letter-spacing:1px;color:#9aa8c1}.section{padding-top:115px}.kicker{color:#61e0d0}.heading{display:grid;grid-template-columns:1.1fr .9fr;gap:45px;align-items:end;margin:20px 0 45px}.heading h2,.teaching h2,.contact h2{font-size:clamp(34px,4vw,52px);letter-spacing:-2.5px;line-height:1.15;margin:0}.heading h2 span{color:#73829d}.heading>p{font-size:13px;color:#9aa8c1;max-width:420px;margin:0 0 5px}.profile{display:grid;grid-template-columns:1.15fr .85fr;gap:75px}.big{font-size:21px;line-height:1.7;color:#e3ebfa;margin-top:0}.profile>div:first-child>p:last-child{font-size:13px;color:#9aa8c1}.principles{border-top:1px solid #263249}.principles article{display:grid;grid-template-columns:38px 1fr;gap:5px;padding:16px 0;border-bottom:1px solid #263249}.principles i,.topics i{font:10px 'DM Mono',monospace;color:#61e0d0;grid-row:span 2}.principles b{font-size:13px}.principles small{font-size:11px;color:#9aa8c1}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.card{background:linear-gradient(145deg,#121d31,#0e1728);border:1px solid #263249;padding:24px;border-radius:8px;min-height:245px}.card:hover{border-color:#42658f;transform:translateY(-3px)}.card.featured{border-color:#385b80;background:linear-gradient(145deg,#172944,#101a2d)}.card label{color:#8295b3;font-size:9px}.symbol{font:25px 'DM Mono',monospace;color:#61e0d0;margin:17px 0 8px}.card h3{font-size:17px;margin:0 0 8px}.card p{font-size:11px;color:#9aa8c1;line-height:1.8}.tags{font:9px 'DM Mono',monospace;color:#a9bedb;line-height:2.2}.timeline{border-top:1px solid #263249}.timeline article{display:grid;grid-template-columns:210px 1fr;gap:35px;padding:26px 0;border-bottom:1px solid #263249}.timeline time{padding-top:5px;color:#7f93b2}.timeline h3{font-size:16px;margin:0 0 4px}.timeline h4{font:10px 'DM Mono',monospace;color:#61e0d0;letter-spacing:.5px;margin:0 0 10px}.timeline p{font-size:11px;color:#9aa8c1;line-height:1.8;margin:0;max-width:760px}.timeline small{display:block;font:9px 'DM Mono',monospace;color:#a9bedb;margin-top:12px}.education{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding:30px 0;border-bottom:1px solid #263249}.education article{display:grid;gap:7px}.education label{color:#61e0d0}.education b{font-size:14px}.education small{font-size:11px;color:#9aa8c1}.teaching,.contact{display:grid;grid-template-columns:.9fr 1.1fr;gap:65px;padding:45px;background:linear-gradient(130deg,#14243b,#10192b);border:1px solid #304866;border-radius:10px}.teaching h2,.contact h2{margin:18px 0}.teaching>div:first-child>p,.contact>div:first-child>p{font-size:12px;color:#9aa8c1;max-width:390px;margin-bottom:25px}.topics{display:grid;grid-template-columns:1fr 1fr;gap:20px}.topics article{border-top:1px solid #3b506e;padding-top:14px}.topics i{display:block;margin-bottom:9px}.topics b{font-size:12px;display:block}.topics small{font-size:10px;color:#9aa8c1;display:block;margin-top:7px;line-height:1.7}.contact-section{padding-bottom:95px}.contact{grid-template-columns:1fr 1fr}.links{border-top:1px solid #3b506e}.links a{display:grid;grid-template-columns:1fr auto;gap:3px;padding:13px 0;border-bottom:1px solid #3b506e}.links small{grid-column:1;font:10px 'DM Mono',monospace;color:#8297b6}.links b{font-size:12px;font-weight:600}.links i{grid-column:2;grid-row:1/3;align-self:center;color:#61e0d0;font-style:normal}footer{border-top:1px solid #263249;padding:22px 0 30px;display:flex;align-items:center;justify-content:space-between}footer>small{font-size:10px;color:#9aa8c1}footer>a:last-child{color:#9fb2cf}
@media(max-width:850px){.hero{grid-template-columns:1fr;padding-top:70px}.visual{height:390px}.heading{grid-template-columns:1fr;gap:14px}.profile{gap:30px}.cards{grid-template-columns:repeat(2,1fr)}.teaching,.contact{gap:35px;padding:30px}.timeline article{grid-template-columns:155px 1fr}}
@media(max-width:600px){.wrap,header{width:calc(100% - 36px)}header{height:70px}.brand small{font-size:8px}.menu{display:block}nav{display:none;position:absolute;top:69px;left:0;right:0;background:#111a2d;border:1px solid #263249;padding:18px;flex-direction:column;align-items:stretch;gap:17px}nav.open{display:flex}.nav-cta{text-align:center}.hero{padding-top:55px;min-height:auto}.hero h1{font-size:43px;letter-spacing:-2.5px}.lead{font-size:15px}.availability{flex-direction:column;gap:9px}.visual{height:340px;transform:scale(.88);margin:-5px -20px 18px}.code{width:300px}.o1{width:330px}.o2{height:340px}.c1{left:0}.c2{right:0}.c3{left:0}.scroll{position:relative;bottom:auto;margin:8px 0 22px}.stats{grid-template-columns:1fr 1fr;gap:17px}.stats div{padding:5px 12px;border:0}.stats div:first-child{padding-left:12px}.stats b{font-size:25px}.section{padding-top:82px}.heading{margin-bottom:30px}.heading h2,.teaching h2,.contact h2{font-size:37px}.profile,.teaching,.contact{grid-template-columns:1fr}.profile{gap:24px}.cards{grid-template-columns:1fr}.card{min-height:0}.timeline article{grid-template-columns:1fr;gap:8px;padding:21px 0}.education{grid-template-columns:1fr;gap:20px}.teaching,.contact{padding:25px;gap:30px}.topics{grid-template-columns:1fr 1fr;gap:17px}footer{flex-wrap:wrap;gap:12px}footer>small{order:3;width:100%}}


/* Portfolio v2.0 — accessibility and project storytelling */
:focus-visible{outline:3px solid #7ce2d5;outline-offset:4px;border-radius:3px}
.skip-link{position:absolute;left:12px;top:-60px;z-index:20;padding:10px 14px;background:#dcecff;color:#0b1830;border-radius:4px;font-weight:800}
.skip-link:focus{top:12px}
.portrait-card{position:absolute;z-index:4;left:50%;top:6px;transform:translateX(-50%);width:178px;padding:10px;background:#17243b;border:1px solid #3c5a7e;border-radius:8px;text-align:center;box-shadow:0 18px 45px #0008}
.portrait-card img{display:block;width:100%;height:150px;object-fit:cover;border-radius:4px;background:#0b1020}
.portrait-card span{display:block;margin-top:8px;font:10px 'DM Mono',monospace;letter-spacing:1px;color:#e5efff}
.portrait-card small{display:block;font:8px 'DM Mono',monospace;color:#8fa5c4;margin-top:3px}
.visual .code{margin-top:115px}
.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.project-card{padding:26px;background:linear-gradient(145deg,#14223a,#0e1728);border:1px solid #293b58;border-radius:8px;transition:transform .2s,border-color .2s}
.project-card:hover{transform:translateY(-3px);border-color:#527aa8}
.project-meta{display:flex;justify-content:space-between;font:9px 'DM Mono',monospace;letter-spacing:1px;color:#8295b3}
.project-icon{font:28px 'DM Mono',monospace;color:#61e0d0;margin:22px 0 8px}
.project-card h3{font-size:18px;line-height:1.35;margin:0 0 10px}
.project-card p,.project-card li{font-size:11px;line-height:1.8;color:#9eacc3}
.project-stack{margin:16px 0;padding:10px 0;border-top:1px solid #293b58;border-bottom:1px solid #293b58;font:9px/1.8 'DM Mono',monospace;color:#a9bedb}
.project-card ul{padding-left:17px;margin:12px 0 18px}
.project-kind{font:9px 'DM Mono',monospace;color:#61e0d0}
@media(max-width:850px){.portrait-card{top:-12px;left:50%;}.visual .code{margin-top:140px}.project-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.portrait-card{width:135px;top:-5px}.portrait-card img{height:112px}.portrait-card span{font-size:8px}.portrait-card small{font-size:7px}.visual .code{margin-top:120px}.project-grid{grid-template-columns:1fr}.project-card{padding:21px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
