:root{--paper:#f2f0e9;--ink:#181a17;--muted:#686b63;--line:rgba(24,26,23,.18);--green:#c9ff5e}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Manrope",sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit}.skip-link{position:fixed;top:-50px;left:20px;z-index:100;background:var(--ink);color:white;padding:12px}.skip-link:focus{top:20px}.section{padding:clamp(90px,10vw,150px) clamp(24px,8vw,130px);scroll-margin-top:20px}h1,h2,h3{font-weight:500;letter-spacing:-.055em}h2{margin:0 0 65px;font-size:clamp(3rem,6vw,6.5rem);line-height:1}
.section-nav{position:fixed;right:24px;top:50%;z-index:10;transform:translateY(-50%);display:flex;flex-direction:column;align-items:flex-end;gap:6px;padding:14px;background:rgba(242,240,233,.88);border:1px solid var(--line);backdrop-filter:blur(10px)}.section-nav a{padding:5px 8px;color:var(--muted);font-family:"DM Mono",monospace;font-size:.65rem;letter-spacing:.08em;text-decoration:none;text-transform:uppercase;transition:.2s}.section-nav a:hover,.section-nav a.active{color:var(--ink)}.section-nav a.active:before{content:"— ";color:#ef6544}
.hero{min-height:100svh;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(330px,.72fr);align-items:center;gap:clamp(50px,8vw,130px)}.eyebrow{margin:0 0 25px;font-family:"DM Mono",monospace;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}h1{margin:0;font-size:clamp(4rem,7.5vw,8.2rem);line-height:.94}.intro-text{max-width:730px;margin:42px 0 32px;color:#454842;font-size:clamp(1rem,1.3vw,1.22rem);line-height:1.72}.social-links{display:flex;gap:12px}.social-links a{display:grid;place-items:center;width:45px;height:45px;border:1px solid var(--line);border-radius:50%;transition:.2s}.social-links svg{width:20px;height:20px;fill:currentColor}.social-links a:hover{background:var(--ink);color:var(--paper);transform:translateY(-3px)}.hero-photo{margin:0}.hero-photo figcaption{margin:0 0 14px;font-family:"DM Mono",monospace;font-size:.7rem;letter-spacing:.08em;text-transform:lowercase}.hero-photo>div{aspect-ratio:4/5;overflow:hidden;clip-path:polygon(7% 0,100% 5%,94% 100%,0 95%)}.hero-photo img{width:100%;height:100%;display:block;object-fit:cover;object-position:center 68%}
.skills{background:var(--ink);color:var(--paper)}.stack-grid{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid rgba(255,255,255,.2)}.stack-card{padding:42px 40px 50px 0;border-bottom:1px solid rgba(255,255,255,.2)}.stack-card:nth-child(odd){border-right:1px solid rgba(255,255,255,.2)}.stack-card:nth-child(even){padding-left:40px}.stack-card h3{margin:0 0 32px;font-size:clamp(1.7rem,2.7vw,3rem)}.skill-list{display:grid;grid-template-columns:repeat(3,minmax(110px,1fr));gap:10px}.skill-list span{display:flex;align-items:center;gap:11px;min-height:52px;padding:9px 12px;border:1px solid rgba(255,255,255,.17);font-size:.78rem;transition:.2s}.skill-list span:hover{border-color:var(--green);background:rgba(201,255,94,.08)}.skill-list img{width:25px;height:25px;object-fit:contain;flex:none}
.projects{padding-bottom:160px}.project-list{border-top:1px solid var(--line)}.project-row{position:relative;display:grid;grid-template-columns:minmax(190px,1fr) minmax(180px,.8fr) minmax(260px,1.1fr);gap:35px;align-items:start;min-height:145px;padding:39px 45px 36px 0;border-bottom:1px solid var(--line);text-decoration:none;transition:.2s}.project-row h3{margin:0;font-size:clamp(1.8rem,3vw,3.1rem);line-height:1}.project-row p{margin:6px 0;font-size:.95rem}.project-row div{display:flex;flex-direction:column;gap:13px;margin-top:7px}.project-row span,.project-row strong{font-family:"DM Mono",monospace;font-size:.67rem;line-height:1.5;letter-spacing:.06em;text-transform:uppercase}.project-row span{color:var(--muted);font-weight:400}.project-row strong{font-weight:500}.project-row i{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-style:normal}.project-row[href]:hover{padding-left:18px;background:var(--green)}
.experience{background:#dce4d7}.timeline{max-width:1050px;margin-left:auto;border-top:1px solid var(--line)}.timeline article{display:grid;grid-template-columns:180px 1fr;gap:50px;padding:45px 0;border-bottom:1px solid var(--line)}.when,.timeline article>div:last-child>p:first-child{font-family:"DM Mono",monospace;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.timeline article>div:last-child>p:first-child{margin:0 0 9px;color:var(--ink)}.timeline h3{margin:0 0 18px;font-size:clamp(2rem,4vw,4.2rem)}.timeline article>div:last-child>p:last-child{max-width:720px;margin:0;color:#50554d;font-size:1rem;line-height:1.7}
@media(max-width:900px){.section-nav{display:none}.hero{grid-template-columns:minmax(0,1fr) minmax(250px,.72fr);gap:35px;padding-top:100px}.stack-grid{grid-template-columns:1fr}.stack-card:nth-child(odd){border-right:0}.stack-card:nth-child(even){padding-left:0}.project-row{grid-template-columns:1fr 1fr}.project-row div{grid-column:2}.timeline{margin:0}}
@media(max-width:680px){.hero{grid-template-columns:1fr}.hero-photo{width:min(100%,550px)}}
@media(max-width:560px){.section{padding:85px 21px}h2{margin-bottom:40px}.hero{padding-top:70px}.intro-text{margin-top:30px;font-size:.95rem}.hero-photo>div{aspect-ratio:1/1.15}.skill-list{grid-template-columns:repeat(2,1fr)}.stack-card{padding-right:0}.project-row{grid-template-columns:1fr;padding:30px 30px 30px 0;gap:7px}.project-row div{grid-column:1;margin-top:10px}.project-row i{right:6px}.timeline article{grid-template-columns:1fr;gap:18px}}
.skill-list img.invert{filter:invert(1)}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}
