:root{--bg:#0b1120;--surface:#111b2d;--text:#edf2fa;--muted:#a5b2c8;--accent:#75ead4;--border:#273348;--radius:12px;color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.7 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:inherit;text-decoration:none}button{font:inherit}a,button{touch-action:manipulation}a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:5px}::selection{background:var(--accent);color:var(--bg)}.container{width:min(1120px,calc(100% - 64px));margin-inline:auto}.header{position:sticky;top:0;z-index:10;background:rgba(11,17,32,.96);border-bottom:1px solid var(--border)}.nav{height:86px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{font-weight:700;letter-spacing:-.04em;display:flex;align-items:center;font-size:1.2rem}.brand-mark{color:var(--accent);margin-right:12px;font-family:monospace}.brand-dot{color:var(--accent)}.nav-links{display:flex;align-items:center;gap:30px;font-size:.875rem}.nav-links a{color:var(--muted);transition:color .2s}.nav-links a:hover,.nav-links a[aria-current]{color:var(--accent)}.nav-links .nav-contact{border:1px solid var(--border);padding:9px 17px;border-radius:6px;color:var(--text)}.menu-toggle{display:none;background:none;border:0;color:var(--text);padding:12px}.menu-toggle span{display:block;width:24px;height:2px;background:currentColor;margin:6px 0}.hero{display:grid;grid-template-columns:1.12fr 1fr;gap:62px;align-items:center;min-height:720px;padding-block:90px 100px}.eyebrow{font-size:.75rem;letter-spacing:.15em;font-weight:700;color:var(--accent);margin:0 0 25px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(2.7rem,4.4vw,3.7rem);line-height:1.14;letter-spacing:-.05em;margin-bottom:25px;font-weight:750}em{font-style:normal;color:var(--accent)}.hero-description{font-size:1.2rem;font-weight:600;margin-bottom:12px}.hero-detail{color:var(--muted);max-width:460px;margin-bottom:30px}.actions{display:flex;gap:12px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;padding:13px 21px;border:1px solid transparent;border-radius:6px;font-size:.875rem;font-weight:650;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px)}.primary{background:var(--accent);color:#0b2023}.primary:hover{background:#a0f5e5}.secondary{border-color:var(--border);background:transparent}.secondary:hover{background:var(--surface)}.cv-note{color:var(--muted);font-size:.75rem;margin:12px 0 25px}.socials{display:flex;gap:18px;align-items:center;font-size:.875rem}.socials a{border-bottom:1px solid var(--border);padding-bottom:2px}.socials a:hover{color:var(--accent);border-color:var(--accent)}.socials>span{color:#47556d}.code-panel{border:1px solid #34445e;border-radius:var(--radius);background:#101a2b;box-shadow:0 25px 80px #0003;min-width:0;transform:rotate(1deg)}.window-bar{padding:16px;display:flex;align-items:center;gap:18px;border-bottom:1px solid var(--border);font:12px ui-monospace,Consolas,monospace;color:var(--muted)}.window-dots{display:flex;gap:5px}.window-dots i{width:8px;height:8px;background:#54627a;border-radius:50%}.window-dots i:first-child{background:#e48686}.window-dots i:nth-child(2){background:#dab675}.window-dots i:nth-child(3){background:#78ba9b}.file-type{margin-left:auto;color:var(--accent)}.code-body{padding:25px 22px;font:12px/1.9 ui-monospace,Consolas,monospace}.code-comment{color:#8d9cb3}pre{margin:18px 0 0;white-space:pre-wrap;overflow-wrap:anywhere;font:inherit}.purple{color:#c9a3f5}.blue{color:#92c7fa}.green{color:#9ee0bd}.terminal{padding:18px 22px;border-top:1px solid var(--border);font:12px/2 ui-monospace,Consolas,monospace;color:var(--muted)}.terminal>span:first-child{color:var(--accent);padding-right:8px}.terminal strong{font-weight:400;color:var(--accent)}.cursor{display:inline-block;width:6px;height:12px;background:var(--accent);vertical-align:middle;margin-left:6px;animation:blink 1.3s step-end infinite}.panel-caption{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--border);padding:12px 22px;font-size:.75rem;color:var(--muted)}.section{padding-block:90px;border-top:1px solid var(--border)}h2{font-size:clamp(2rem,3.5vw,2.8rem);letter-spacing:-.04em;line-height:1.2;margin-bottom:24px}h3{font-size:1.2rem;line-height:1.4;letter-spacing:-.02em}.about{display:grid;grid-template-columns:1fr 1.25fr;gap:100px}.about-content p{color:var(--muted)}.about-content .lead{font-size:1.2rem;color:var(--text);line-height:1.6}.principles{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.principles span{padding:6px 12px;border-left:2px solid var(--accent);font-size:.875rem;background:var(--surface)}.section-heading{display:flex;justify-content:space-between;gap:30px;align-items:center;margin-bottom:30px}.section-heading h2{margin-bottom:0}.section-heading>p{color:var(--muted);font-size:.875rem;margin:0}.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.skill-card{border:1px solid var(--border);border-radius:var(--radius);padding:30px;background:var(--surface)}.card-number{display:block;font:14px ui-monospace,Consolas,monospace;color:var(--accent);margin-bottom:28px}.skill-card p{color:var(--muted);font-size:.9375rem}.tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:24px}.tags span{font-size:.75rem;border:1px solid #344057;border-radius:4px;padding:3px 8px;color:#becbe0}.project-list{display:grid;gap:24px;margin-top:30px}.project-card{display:grid;grid-template-columns:.9fr 1.2fr;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--surface)}.project-visual{display:flex;flex-direction:column;justify-content:space-between;padding:30px;min-height:300px;border-right:1px solid var(--border)}.visual-python{background:#132d34}.visual-ai{background:#232342}.visual-web{background:#172c45}.visual-label{font:12px ui-monospace,Consolas,monospace;letter-spacing:.08em;color:#c4d5e7}.visual-title{font-size:2rem;font-weight:650;line-height:1.2;letter-spacing:-.04em}.visual-code{font:14px ui-monospace,Consolas,monospace;color:var(--accent);padding:12px 16px;border:1px solid #ffffff20;background:#0002;border-radius:6px;display:flex;justify-content:space-between}.project-content{padding:35px 40px}.project-status{font-size:.75rem;color:var(--accent);letter-spacing:.1em}.project-content h3{margin:12px 0;font-size:1.5rem}.project-content>p{color:var(--muted);font-size:.9375rem}.text-link{display:inline-block;color:var(--accent);font-size:.875rem;border-bottom:1px solid var(--accent);margin-top:22px}.learning{display:grid;grid-template-columns:1fr 1.15fr;gap:110px}.learning>div>p:not(.eyebrow){color:var(--muted);max-width:330px}.timeline{border-left:1px solid var(--border);padding-left:30px}.timeline article{position:relative;padding-bottom:30px}.timeline article:last-child{padding-bottom:0}.timeline article:before{content:"";position:absolute;left:-36px;top:8px;width:9px;height:9px;background:var(--bg);border:2px solid var(--accent);border-radius:50%}.timeline-label{font-size:.75rem;color:var(--accent);letter-spacing:.1em}.timeline h3{margin:10px 0}.timeline p{color:var(--muted);font-size:.9375rem;margin-bottom:0}.contact{text-align:center;padding-block:95px;background:radial-gradient(ellipse at bottom,#14322f55,transparent 65%)}.contact h2{font-size:clamp(2.4rem,5vw,3.8rem)}.contact>p:not(.eyebrow){color:var(--muted)}.contact .button{margin-top:12px}.contact .contact-email{font-size:.875rem;margin-top:16px}.contact .socials{justify-content:center;margin-top:25px}.footer{border-top:1px solid var(--border);padding-block:26px;display:flex;justify-content:space-between;gap:20px;font-size:.75rem;color:var(--muted)}.footer p{margin:0}.footer a:hover{color:var(--accent)}.skip-link{position:absolute;left:15px;top:-80px;background:var(--accent);color:var(--bg);padding:12px 20px;z-index:20}.skip-link:focus{top:12px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.reveal{transition:opacity .6s,transform .6s}.reveal.pending{opacity:0;transform:translateY(16px)}@keyframes blink{50%{opacity:0}}
@media(min-width:1500px){.hero{min-height:780px}}
@media(max-width:950px){.hero{gap:30px}.code-body{font-size:11px;padding:20px 15px}.about,.learning{gap:45px}.skills-grid{gap:12px}.skill-card{padding:22px}.nav-links{gap:20px}.project-content{padding:28px}.hero{min-height:650px}.panel-caption{font-size:12px}}
@media(max-width:760px){.container{width:calc(100% - 40px)}.nav{height:72px}.menu-toggle{display:block}.nav-links{flex-wrap:wrap;gap:12px 22px;font-size:.875rem}.js .nav-links{display:none;position:absolute;top:72px;left:0;right:0;background:var(--bg);border-bottom:1px solid var(--border);padding:22px;flex-direction:column;align-items:stretch}.js .nav-links.open{display:flex}.js .nav-links a{padding:8px}.hero{grid-template-columns:1fr;padding-block:65px;gap:45px;min-height:auto}h1{font-size:clamp(2.5rem,8.5vw,3.7rem)}.hero-detail{max-width:520px}.code-panel{transform:none;width:100%;max-width:530px}.code-body{font-size:12px;padding:24px}.about,.learning{grid-template-columns:1fr;gap:22px}.section{padding-block:60px}.section-heading{align-items:flex-start}.section-heading>p{display:none}.skills-grid{grid-template-columns:1fr}.skill-card{padding:26px}.card-number{margin-bottom:15px}.project-card{grid-template-columns:1fr}.project-visual{min-height:245px;border-right:0;border-bottom:1px solid var(--border);gap:25px}.project-content{padding:28px}.learning>div>p:not(.eyebrow){max-width:none}.timeline{margin-top:12px}.footer{flex-wrap:wrap;gap:10px 20px}.footer p:nth-child(2){order:3;width:100%}.footer a{margin-left:auto}.contact{padding-block:65px}.eyebrow{font-size:12px}}
@media(max-width:400px){.container{width:calc(100% - 32px)}.code-body{font-size:11px;padding:18px 12px}.terminal{padding:16px 12px;font-size:11px}.panel-caption{padding-inline:12px}.actions{flex-direction:column;align-items:stretch}.nav:not(.js .nav){height:auto;padding-block:15px;flex-wrap:wrap}.visual-title{font-size:1.8rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal.pending{opacity:1;transform:none}}

.profile-photo{display:block;width:100%;max-width:350px;height:310px;object-fit:cover;object-position:50% 40%;border-radius:12px;border:1px solid var(--border);margin-top:30px}@media(max-width:760px){.profile-photo{max-width:350px;height:300px;margin-bottom:12px}}

/* Refinements: retain the incumbent palette, layout and section rhythm. */
.socials .social-unavailable{display:inline-flex;align-items:center;min-height:44px;padding:0 0 2px;background:none;border:0;border-bottom:1px solid var(--border);color:inherit;font:inherit;cursor:pointer}.socials .social-unavailable:hover{color:var(--accent);border-color:var(--accent)}
:root{--control-min:44px;--ease-out:cubic-bezier(.16,1,.3,1)}
h1{letter-spacing:-.04em}h1,h2,h3{text-wrap:balance}
.button{min-height:var(--control-min);cursor:pointer}
.button:active:not(:disabled){transform:translateY(0)}
.button:disabled{background:var(--surface);color:var(--muted);border-color:var(--border);cursor:not-allowed;transform:none}
.button:disabled:hover{background:var(--surface);transform:none}
.project-content .actions{margin-top:20px}
.project-content .project-stack,.project-content [id$="-link-note"]{font-size:.875rem;margin:16px 0;color:var(--muted)}
.project-content [id$="-link-note"]{margin-bottom:0}
.project-content p{max-width:65ch}
.project-content strong{color:var(--text);font-weight:600}
.tags span{font-size:.875rem}
.socials a,.footer a{display:inline-flex;align-items:center;min-height:var(--control-min)}
.nav-links a{display:inline-flex;align-items:center;min-height:var(--control-min)}
.nav-links a[aria-current="location"]{text-decoration:underline;text-underline-offset:7px}
.menu-toggle{min-height:var(--control-min);min-width:var(--control-min)}
.cursor{animation:blink 1.3s step-end 3}
.reveal{transition-timing-function:var(--ease-out)}
:focus-visible{scroll-margin-top:120px}
body{scrollbar-color:var(--border) var(--bg);scrollbar-width:thin}
@media(max-width:760px){.project-visual{min-height:200px}.js .nav-links{max-height:calc(100dvh - 72px);overflow-y:auto}.js .nav-links a{min-height:var(--control-min)}.code-body{font-size:12px}.cv-note,.contact-email{overflow-wrap:anywhere}}
@media(max-width:400px){.code-body{font-size:12px;line-height:1.8}.terminal{font-size:12px}.panel-caption{flex-wrap:wrap}.brand{font-size:1.1rem}}
@media(scripting:none){.nav{height:auto;min-height:72px;flex-wrap:wrap;padding-block:12px}.menu-toggle{display:none}.nav-links{display:flex;flex-wrap:wrap}}
