:root{--green:#3b82f6;--green-dark:#1e40af;--mint:#0f172a;--ink:#0f172a;--muted:#6b7280;--surface:#fff;--surface-alt:#f5f7f6;--line:#e2e8e6;--sidebar-bg:#0f172a;--sidebar-border:#3b82f626;--sidebar-pill:#3b82f614;--sidebar-pill-hover:#3b82f629;--sidebar-hover:#3b82f61a;--sidebar-cta:#10b981;--shadow:0 18px 45px #0f172a1f;color:var(--ink);background:var(--surface);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;scroll-behavior:smooth;font-family:DM Sans,sans-serif}:root[data-theme=dark]{--ink:#f1f5f9;--muted:#94a3b8;--surface:#0f172a;--surface-alt:#1a2847;--line:#334155;--mint:#0f172a;--shadow:0 18px 45px #00000040;--sidebar-bg:#030712;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--surface);color:var(--ink);margin:0}button,a{font:inherit}a{color:inherit;text-decoration:none}.icon{flex:none}.sidebar{z-index:20;background:var(--sidebar-bg);color:#ffffffeb;flex-direction:column;align-items:center;width:278px;padding:32px 30px 25px;display:flex;position:fixed;inset:0 auto 0 0;box-shadow:8px 0 30px #00000047}.sidebar-close{display:none}.brand{letter-spacing:-1px;align-self:flex-start;font:700 29px Outfit}.brand span{color:#a9f2d6}.profile-mini{text-align:center;margin-top:28px}.avatar-small{border:1px solid #ffffff8c;border-radius:50%;width:90px;height:90px;margin:0 auto 15px;padding:5px}.avatar-small img{border-radius:inherit;object-fit:cover;width:100%;height:100%;display:block}.profile-mini h1{margin:0;font:600 21px Outfit}.profile-mini p{color:#ffffffc7;margin:10px 0 0;font-size:13px;line-height:1.6}.socials{gap:9px;margin:18px 0 20px;display:flex}.socials a{background:var(--sidebar-pill);border-radius:50%;place-items:center;width:32px;height:32px;transition:all .2s;display:grid}.socials a:hover{background:var(--sidebar-pill-hover);transform:translateY(-2px)}nav{border-top:1px solid var(--sidebar-border);width:100%;padding-top:15px}nav a{color:#ffffffb8;border-radius:8px;align-items:center;gap:13px;padding:9px 12px;font-size:14px;font-weight:600;transition:all .2s;display:flex}nav a:hover,nav a:first-child{color:#fffffff5;background:var(--sidebar-hover)}.hire-button{background:var(--sidebar-cta);color:#fff;border-radius:7px;justify-content:center;align-items:center;gap:8px;width:100%;margin-top:16px;padding:12px;font-size:14px;font-weight:700;display:flex}.theme-switch{border-top:1px solid var(--sidebar-border);align-items:center;gap:9px;width:100%;margin-top:auto;padding-top:18px;font-size:13px;font-weight:600;display:flex}.theme-switch button{cursor:pointer;background:#00000038;border:0;border-radius:20px;width:39px;height:22px;margin-left:auto;padding:3px}.theme-switch button i{background:#fff;border-radius:50%;width:16px;height:16px;transition:all .25s;display:block}.theme-switch button.active i{transform:translate(17px)}main{min-width:0;margin-left:278px}.hero{grid-template-columns:minmax(520px,1.1fr) minmax(360px,.9fr);align-items:center;gap:64px;min-height:520px;padding:86px clamp(48px,7vw,110px);display:grid;overflow:hidden}.hero-brief{background:#0f172a;border-bottom:1px solid #3b82f614}:root[data-theme=dark] .hero-brief{background:#030712}.hero-brief-copy{max-width:650px}.hero-name{color:#fff;letter-spacing:-.04em;margin:0;font:700 clamp(52px,5vw,68px)/1.05 Outfit}.hero-role{color:#ffffff9e;margin:10px 0 22px;font:500 22px Outfit}.hero-desc{color:#ffffffb8;margin:0;font-size:15px;line-height:1.75}.hero-desc a{color:color-mix(in srgb, var(--green) 88%, white);text-underline-offset:3px;text-decoration:underline}.hero-brief-actions{gap:14px;margin-top:28px;display:flex}.hero-secondary{color:#fff;background:#94a3b838;border:0}.hero-secondary:hover{background:#94a3b84d}.hero-secondary .icon{opacity:.95}.hero-brief .button:hover{transform:translateY(-2px)}.button{border-radius:7px;justify-content:center;align-items:center;gap:10px;min-height:49px;padding:0 21px;font-size:14px;font-weight:700;transition:all .2s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button.primary{color:#fff;background:#10b981;box-shadow:0 9px 20px #10b98140}.button.secondary{border:1px solid var(--line);background:var(--surface)}.hero-brief-photo{justify-content:center;display:flex}.hero-photo-frame{aspect-ratio:1;background:#ffffff0f;border-radius:10px;width:min(400px,100%);padding:10px;box-shadow:0 22px 50px #00000059}.hero-photo{object-fit:cover;object-position:center top;border-radius:8px;width:100%;height:100%;display:block}.section{padding:100px clamp(48px,7vw,110px)}.section-heading{max-width:690px}.section-heading>span{color:var(--green);letter-spacing:.13em;text-transform:uppercase;font-size:12px;font-weight:700}.section-heading h2{letter-spacing:-.035em;margin:10px 0 0;font:700 clamp(34px,3vw,46px) Outfit}.section-heading p{color:var(--muted);margin:18px 0 0;font-size:16px;line-height:1.75}.about{color:#f1f5f9;background:#0f172a;border-top:1px solid #3b82f614}:root[data-theme=dark] .about{background:#030712}.about-inner{padding:90px clamp(48px,7vw,110px) 76px}.about-heading{max-width:1080px}.about-title{align-items:center;gap:18px;display:flex}.about-accent{background:var(--green);border-radius:2px;width:4px;height:42px}.about-title h2{letter-spacing:-.03em;color:#fff;margin:0;font:700 clamp(34px,3vw,44px) Outfit}.about-heading p{color:#ffffffa8;max-width:980px;margin:18px 0 0;font-size:15px;line-height:1.8}.about-heading a{color:color-mix(in srgb, var(--green) 88%, white);text-underline-offset:3px;text-decoration:underline}.about-inline-link{color:#ffffffd6}.about-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:46px 58px;margin-top:52px;display:grid}.about-skill h3{color:#fff;letter-spacing:-.01em;margin:14px 0 10px;font:700 16px Outfit}.about-skill p{color:#ffffffa3;margin:0;font-size:13px;line-height:1.75}.about-skill p a{color:#ffffffdb}.tech-icons{flex-wrap:wrap;align-items:center;gap:12px;min-height:36px;display:flex}.tech-icons i[class*=devicon-]{font-size:30px;line-height:1}.tech-badge{letter-spacing:.02em;color:#ffffffbf;background:#ffffff14;border:1px solid #ffffff24;border-radius:6px;align-items:center;padding:3px 9px;font-size:11px;font-weight:700;display:inline-flex}:root:not([data-theme=dark]) .tech-badge{color:#0009;background:#0000000f;border-color:#0000001a}.about-cta-row{justify-content:center;margin-top:56px;display:flex}.about-cta{color:#fff;background:#3b82f6;border-radius:8px;align-items:center;gap:10px;padding:12px 22px;font-size:14px;font-weight:800;transition:all .2s;display:inline-flex;box-shadow:0 12px 30px #3b82f640}.about-cta:hover{background:#2563eb;transform:translateY(-2px)}.about-cta-icon{background:#ffffff29;border-radius:999px;place-items:center;width:26px;height:26px;display:grid}.about-cta .icon{color:#fff}.skill-grid{grid-template-columns:repeat(4,1fr);gap:20px;margin-top:45px;display:grid}.skill-card{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:27px 24px;transition:all .25s}.skill-card:hover{box-shadow:var(--shadow);border-color:#0000;transform:translateY(-5px)}.skill-icon{background:var(--mint);width:50px;height:50px;color:var(--green);border-radius:10px;place-items:center;display:grid}.skill-card h3{margin:21px 0 9px;font:600 18px Outfit}.skill-card p{color:var(--muted);margin:0;font-size:14px;line-height:1.65}.skill-card a{color:var(--green);align-items:center;gap:6px;margin-top:19px;font-size:13px;font-weight:700;display:inline-flex}.projects-section{background:var(--surface-alt)}.project-header{justify-content:space-between;align-items:end;gap:20px;display:flex}.text-link{color:var(--green);align-items:center;gap:7px;font-size:14px;font-weight:700;display:inline-flex}.project-grid{grid-template-columns:repeat(3,1fr);gap:23px;margin-top:45px;display:grid}.project-card{background:var(--surface);border-radius:11px;overflow:hidden;box-shadow:0 7px 25px #17232112}.project-visual{height:210px;padding:38px 25px 0;overflow:hidden}.project-visual.violet{background:linear-gradient(145deg,#bba7f5,#7054bf)}.project-visual.blue{background:linear-gradient(145deg,#8ed9df,#347998)}.project-visual.orange{background:linear-gradient(145deg,#ffd0a2,#d97850)}.mock-window{background:#ffffffe8;border-radius:9px 9px 0 0;height:190px;padding:12px;display:block;box-shadow:0 10px 30px #1c172e33}.mock-window i{vertical-align:top;background:#a7afad;border-radius:50%;width:5px;height:5px;margin-right:3px;display:inline-block}.mock-window b{color:#32413e;letter-spacing:-.03em;place-items:center;height:130px;font:700 26px Outfit;display:grid}.project-copy{padding:24px}.project-copy>span{color:var(--green);text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:700}.project-copy h3{margin:7px 0 9px;font:600 21px Outfit}.project-copy p{min-height:67px;color:var(--muted);margin:0;font-size:14px;line-height:1.6}.project-copy>div{border-top:1px solid var(--line);justify-content:space-between;align-items:center;margin-top:19px;padding-top:16px;display:flex}.project-copy small{color:var(--muted)}.project-copy a{color:var(--green)}.resume-section{background:var(--surface-alt);padding:70px clamp(32px,6vw,90px)}.resume-section-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:28px;display:flex}.resume-section-header h2{letter-spacing:-.03em;margin:0;font:700 clamp(26px,2.5vw,36px) Outfit}.resume-download-btn{gap:7px;min-height:40px;padding:0 16px;font-size:13px}.resume-card{background:var(--surface);box-shadow:var(--shadow);border-radius:12px;padding:36px 40px}.resume-profile{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.resume-profile-info h2{margin:0 0 5px;font:700 22px Outfit}.resume-profile-info p{color:var(--muted);margin:0;font-size:14px}.resume-contact-list{text-align:right;flex-direction:column;gap:7px;margin:0;padding:0;list-style:none;display:flex}.resume-contact-list li{color:var(--muted);justify-content:flex-end;align-items:center;gap:7px;font-size:13px;display:flex}.resume-contact-list a{color:var(--muted);text-underline-offset:2px;text-decoration:underline}.resume-contact-list a:hover{color:var(--green)}.resume-divider{border:none;border-top:1px solid var(--line);margin:24px 0}.resume-summary p{color:var(--muted);margin:0;font-size:14.5px;line-height:1.75}.resume-body{grid-template-columns:1fr 300px;align-items:start;gap:40px;display:grid}.resume-block{margin-bottom:36px}.resume-block:last-child{margin-bottom:0}.resume-block-title{border-left:3px solid var(--green);letter-spacing:.13em;text-transform:uppercase;color:var(--ink);margin:0 0 20px;padding:0 0 0 12px;font:700 11px/1 DM Sans}.resume-entry{margin-bottom:28px}.resume-entry:last-child{margin-bottom:0}.resume-entry-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px;display:flex}.resume-entry-header h4{margin:0;font:600 15px DM Sans}.resume-entry-header span{color:var(--muted);white-space:nowrap;font-size:12.5px}.resume-entry-body p{color:var(--muted);margin:0 0 10px;font-size:13.5px;line-height:1.7}.resume-entry-body ul{margin:8px 0 0;padding-left:18px}.resume-entry-body li{color:var(--muted);margin-bottom:4px;font-size:13px;line-height:1.65}.resume-aside{flex-direction:column;gap:28px;display:flex}.resume-aside-block h4{margin:14px 0 8px;font:600 13px DM Sans}.resume-aside-block ul{margin:0;padding-left:18px}.resume-aside-block li{color:var(--muted);margin-bottom:2px;font-size:13px;line-height:1.7}.resume-aside-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.resume-aside-list li{flex-direction:column;gap:2px;font-size:13px;display:flex}.resume-aside-list li strong{color:var(--ink);font-weight:600}.resume-aside-list li span{color:var(--muted)}.resume-footer-socials{justify-content:center;gap:14px;padding-top:6px;display:flex}.resume-footer-socials a{border:1px solid var(--line);width:36px;height:36px;color:var(--muted);border-radius:50%;place-items:center;transition:all .2s;display:grid}.resume-footer-socials a:hover{color:var(--green);border-color:var(--green);transform:translateY(-2px)}@media (width<=900px){.resume-body{grid-template-columns:1fr}.resume-card{padding:28px 24px}.resume-contact-list{text-align:left}.resume-contact-list li{justify-content:flex-start}}@media (width<=600px){.resume-section{padding:56px 20px}.resume-section-header{flex-direction:column;align-items:flex-start}}.contact{text-align:center;color:#fff;background:#10b981;padding:92px clamp(48px,7vw,110px)}.contact>span{text-transform:uppercase;letter-spacing:.12em;color:#ffffffb8;font-size:12px;font-weight:700}.contact h2{letter-spacing:-.04em;margin:12px 0 28px;font:700 clamp(38px,4.5vw,62px)/1.08 Outfit}.button.light{color:#0f172a;background:#f1f5f9}footer{color:var(--muted);background:var(--surface);justify-content:space-between;padding:24px clamp(35px,7vw,110px);font-size:12px;display:flex}.menu-button,.scrim{display:none}@media (width<=1180px){.sidebar{width:240px;padding-inline:24px}main{margin-left:240px}.hero{grid-template-columns:1fr;padding-top:70px}.about-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.skill-grid{grid-template-columns:repeat(2,1fr)}.project-grid{grid-template-columns:1fr 1fr}.project-card:last-child{display:none}}@media (width<=760px){.sidebar{width:min(290px,86vw);transition:transform .25s;transform:translate(-105%)}.sidebar.is-open{transform:translate(0)}.sidebar-close{color:#fff;cursor:pointer;background:0 0;border:0;font-size:28px;display:block;position:absolute;top:13px;right:17px}main{margin-left:0}.menu-button{z-index:15;color:#fff;background:var(--green);width:44px;height:44px;box-shadow:var(--shadow);cursor:pointer;border:0;border-radius:8px;place-items:center;display:grid;position:fixed;top:18px;right:18px}.scrim{z-index:18;background:#0006;border:0;display:block;position:fixed;inset:0}.hero{min-height:auto;padding:92px 24px 56px}.hero-brief-actions{flex-direction:column;align-items:flex-start}.about-inner{padding:74px 24px 62px}.about-grid{grid-template-columns:1fr;gap:32px}.section{padding:72px 24px}.skill-grid,.project-grid{grid-template-columns:1fr}.project-card:last-child{display:block}.project-header{flex-direction:column;align-items:flex-start}.text-link{margin-top:5px}blockquote{font-size:24px}.contact{padding:72px 24px}footer{gap:10px;padding:22px 24px}}@media (width<=430px){.hero-actions{flex-direction:column;align-items:stretch}.stats{gap:10px}.stats strong{font-size:21px}footer{flex-direction:column;align-items:center}footer p{margin:2px}}@media (prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*{transition:none!important}}
