@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/a342834df7752944-s.3hd2l7bm32o7k.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/d3fe2f289711ac3f-s.1l2zhvq5eocqf.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/58c4895d0a0ef7cc-s.2vhvl9vrvk-va.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/bfc7db5c00d21bc5-s.173xwsdme27n8.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/6ab0db14f70d8ed6-s.13hnt-xgp82zk.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/a343f882a40d2cc9-s.p.1sj6eobyi31rd.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope Fallback;src:local(Arial);ascent-override:103.31%;descent-override:29.07%;line-gap-override:0.0%;size-adjust:103.19%}.manrope_9b24f49e-module__hJlnFq__className{font-family:Manrope,Manrope Fallback;font-style:normal}.manrope_9b24f49e-module__hJlnFq__variable{--font-manrope:"Manrope", "Manrope Fallback"}
:root{--bg:#111;--surface:#1a1a1a;--border:#282828;--border-h:#404040;--text:#f2f2f2;--muted:gray;--yellow:#f0c94a;--yellow-dk:#111;--ff:var(--font-manrope), system-ui, sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--ff);-webkit-font-smoothing:antialiased;flex-direction:column;min-height:100%;display:flex}a{color:inherit;text-decoration:none}.animate-in-root{display:contents}.nav{text-align:center;padding:1.75rem 2rem;position:relative}.nav-brand{letter-spacing:.1em;text-transform:uppercase;color:var(--text);font-size:.8rem;font-weight:700}.nav-back{letter-spacing:0;text-transform:none;color:var(--muted);align-items:center;gap:.375rem;font-size:.8rem;font-weight:500;transition:color .15s;display:inline-flex;position:absolute;top:50%;left:2rem;transform:translateY(-50%)}.nav-back:hover{color:var(--text)}.nav-back svg{stroke:currentColor;stroke-width:2px;fill:none;width:14px;height:14px}.hero{flex:1;justify-content:center;align-items:center;padding:2rem clamp(1.5rem,8vw,5rem);display:flex}.hero-grid{grid-template-columns:1fr 1fr;align-items:center;gap:clamp(2.5rem,8vw,6.5rem);width:100%;max-width:1040px;display:grid}.hero-left{flex-direction:column;gap:1.375rem;display:flex}.greeting{color:var(--yellow);letter-spacing:.01em;font-size:.9rem;font-weight:600}.name{letter-spacing:-.03em;color:var(--text);font-size:clamp(2.25rem,3.8vw,3.25rem);font-weight:800;line-height:1.06}.bio{color:var(--muted);max-width:52ch;font-size:.9rem;font-weight:400;line-height:1.75}.bio p+p{margin-top:.85em}.btn-resume{background:var(--yellow);color:var(--yellow-dk);font-family:var(--ff);letter-spacing:.01em;border-radius:5px;align-items:center;width:fit-content;padding:.7rem 1.625rem;font-size:.82rem;font-weight:700;text-decoration:none;transition:opacity .15s;display:inline-flex}.btn-resume:hover{opacity:.82}.card-grid{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.card{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:10px;flex-direction:column;align-items:center;gap:.875rem;padding:clamp(1.75rem,3vw,2.5rem) 1.5rem;text-decoration:none;transition:border-color .18s;display:flex}.card:hover{border-color:var(--border-h)}.card svg{width:40px;height:40px;stroke:var(--text);stroke-width:1.25px;flex-shrink:0}.card-label{color:var(--text);letter-spacing:.01em;font-size:.82rem;font-weight:500}.page-main{flex-direction:column;flex:1;gap:3rem;width:100%;max-width:1040px;margin:0 auto;padding:clamp(2.5rem,6vh,4rem) clamp(1.5rem,8vw,5rem);display:flex}.page-main.resume{gap:3.5rem}.page-header{flex-direction:column;gap:.5rem;display:flex}.page-header.resume{gap:.625rem}.page-header h1{letter-spacing:-.025em;color:var(--text);font-size:clamp(1.75rem,3vw,2.5rem);font-weight:800}.page-header p{color:var(--muted);max-width:50ch;font-size:.9rem;line-height:1.6}.page-header.resume p{max-width:55ch}.btn-download{background:var(--yellow);color:var(--yellow-dk);font-family:var(--ff);letter-spacing:.01em;border-radius:5px;align-items:center;gap:.45rem;width:fit-content;margin-top:.5rem;padding:.65rem 1.5rem;font-size:.82rem;font-weight:700;transition:opacity .15s;display:inline-flex}.btn-download:hover{opacity:.82}.btn-download svg{stroke:currentColor;stroke-width:2.5px;fill:none;width:14px;height:14px}.contact-grid{grid-template-columns:1fr 1.4fr;align-items:start;gap:clamp(2rem,6vw,4rem);display:grid}.info-col{flex-direction:column;gap:1.25rem;display:flex}.info-item{align-items:flex-start;gap:1rem;display:flex}.info-icon-box{background:var(--surface);border:1px solid var(--border);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.info-icon-box svg{width:16px;height:16px;stroke:var(--text);stroke-width:1.75px;fill:none}.info-text{flex-direction:column;gap:.2rem;padding-top:.1rem;display:flex}.info-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:.7rem;font-weight:600}.info-value{color:var(--text);font-size:.875rem;font-weight:500;line-height:1.5}.info-value.dim{color:var(--muted);font-weight:400}.contact-form{flex-direction:column;gap:.75rem;display:flex}.form-row{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.contact-form input,.contact-form textarea{background:var(--surface);border:1px solid var(--border);width:100%;font-family:var(--ff);color:var(--text);resize:none;border-radius:7px;outline:none;padding:.75rem 1rem;font-size:.875rem;font-weight:400;transition:border-color .15s}.contact-form input::placeholder,.contact-form textarea::placeholder{color:var(--muted)}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--yellow)}.contact-form textarea{min-height:130px}.btn-send{background:var(--yellow);color:var(--yellow-dk);font-family:var(--ff);letter-spacing:.01em;cursor:pointer;border:none;border-radius:5px;align-self:flex-start;padding:.7rem 1.625rem;font-size:.82rem;font-weight:700;transition:opacity .15s}.btn-send:hover{opacity:.82}.btn-send:disabled{opacity:.6;cursor:not-allowed}.form-status{font-size:.825rem;font-weight:500;line-height:1.5}.form-status.ok{color:#8fd18f}.form-status.err{color:#e07a7a}.resume-grid{grid-template-columns:1fr 1fr;align-items:start;gap:clamp(2rem,6vw,4rem);display:grid}.resume-col{flex-direction:column;gap:3rem;display:flex}.resume-section{flex-direction:column;gap:1.5rem;display:flex}.section-label{text-transform:uppercase;letter-spacing:.1em;color:var(--yellow);font-size:.7rem;font-weight:700}.timeline{flex-direction:column;gap:1.75rem;display:flex}.timeline-item{border-bottom:1px solid var(--border);flex-direction:column;gap:.3rem;padding-bottom:1.75rem;display:flex}.timeline-item:last-child{border-bottom:none;padding-bottom:0}.timeline-date{color:var(--muted);letter-spacing:.02em;font-size:.75rem;font-weight:600}.timeline-title{color:var(--text);margin-top:.2rem;font-size:.95rem;font-weight:700;line-height:1.3}.timeline-org{color:var(--muted);font-size:.825rem;font-weight:500}.timeline-list{flex-direction:column;gap:.5rem;margin-top:.5rem;list-style:none;display:flex}.timeline-list li{color:var(--muted);padding-left:1rem;font-size:.825rem;line-height:1.6;position:relative}.timeline-list li:before{content:"–";color:var(--border-h);position:absolute;left:0}.skills{flex-direction:column;gap:1.25rem;display:flex}.skill-row{flex-direction:column;gap:.5rem;display:flex}.skill-meta{justify-content:space-between;align-items:baseline;display:flex}.skill-name{color:var(--text);font-size:.825rem;font-weight:600}.skill-pct{color:var(--muted);font-size:.75rem;font-weight:500}.skill-track{background:var(--border);border-radius:99px;height:3px;overflow:hidden}.skill-fill{background:var(--yellow);border-radius:99px;width:0;height:100%;transition:width 1s cubic-bezier(.4,0,.2,1)}.skill-fill.animate{width:var(--target)}.project-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.25rem;display:grid}.project-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;transition:border-color .2s;display:flex;overflow:hidden}.project-card:hover{border-color:var(--border-h)}.card-cover{aspect-ratio:16/9;position:relative;overflow:hidden}.card-cover img{object-fit:cover;object-position:top;transition:transform .45s cubic-bezier(.4,0,.2,1)}.project-card:hover .card-cover img{transform:scale(1.04)}.card-overlay{z-index:1;background:0 0;justify-content:center;align-items:center;transition:background .25s;display:flex;position:absolute;inset:0}.project-card:hover .card-overlay{background:#00000073}.card-overlay svg{stroke:#fff;stroke-width:1.5px;fill:none;opacity:0;width:36px;height:36px;transition:opacity .25s,transform .25s;transform:scale(.85)}.project-card:hover .card-overlay svg{opacity:1;transform:scale(1)}.card-body{flex-direction:column;flex:1;gap:.375rem;padding:1.25rem 1.375rem 1.375rem;display:flex}.project-name{color:var(--text);letter-spacing:-.01em;font-size:.95rem;font-weight:700}.project-desc{color:var(--muted);font-size:.825rem;line-height:1.6}.project-url{color:var(--yellow);letter-spacing:.01em;align-items:center;gap:.3rem;margin-top:.75rem;font-size:.75rem;font-weight:600;display:inline-flex}.project-url svg{stroke:currentColor;stroke-width:2.5px;fill:none;width:11px;height:11px}.footer{justify-content:center;gap:.625rem;padding:1.5rem 2rem;display:flex}.social{background:var(--surface);border:1px solid var(--border);width:38px;height:38px;color:var(--text);border-radius:50%;justify-content:center;align-items:center;text-decoration:none;transition:border-color .18s;display:flex}.social:hover{border-color:var(--border-h)}.social svg{fill:currentColor;stroke:none;width:15px;height:15px}@media (prefers-reduced-motion:no-preference){[data-anim]{opacity:0;transition:opacity .48s,transform .48s;transform:translateY(10px)}[data-anim].in{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.card-cover img,.project-card:hover .card-cover img{transition:none;transform:none}}@media (max-width:720px){.hero-grid{grid-template-columns:1fr;gap:2.5rem}.bio{max-width:100%}.resume-grid{grid-template-columns:1fr}.nav-back{display:none}}@media (max-width:680px){.contact-grid{grid-template-columns:1fr}}@media (max-width:560px){.project-grid{grid-template-columns:1fr}}@media (max-width:420px){.form-row{grid-template-columns:1fr}}@media (max-width:380px){.card-grid{grid-template-columns:1fr}}
