:root{--font-sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--brand:#1b847c;--step--1:clamp(.83rem, .8rem + .15vw, .9rem);--step-0:clamp(1rem, .96rem + .2vw, 1.08rem);--step-1:clamp(1.2rem, 1.12rem + .4vw, 1.4rem);--step-2:clamp(1.45rem, 1.3rem + .75vw, 1.85rem);--step-3:clamp(1.8rem, 1.5rem + 1.4vw, 2.6rem);--step-4:clamp(2.4rem, 1.7rem + 3.2vw, 4.4rem);--space-2xs:.375rem;--space-xs:.625rem;--space-sm:1rem;--space-md:1.5rem;--space-lg:2.5rem;--space-xl:4rem;--space-2xl:6rem;--radius-sm:8px;--radius-md:14px;--radius-lg:22px;--radius-pill:999px;--container:1080px;--container-wide:1200px;--ease:cubic-bezier(.22, .61, .36, 1);scroll-behavior:smooth;scroll-padding-top:6rem}html,html[data-theme=dark]{color-scheme:dark;--bg:#0b0f0e;--bg-subtle:#111716;--surface:#141b19;--surface-hover:#1a2320;--text:#e9efec;--text-muted:#97a5a0;--heading:#fff;--border:#ffffff17;--border-strong:#ffffff29;--accent:#35b0a4;--accent-contrast:#04120f;--accent-tint:#35b0a41f;--shadow:0 18px 40px -24px #000000e6;--glow:radial-gradient(60% 60% at 50% 0%, #1b847c38, transparent 70%)}html[data-theme=light]{color-scheme:light;--bg:#fbfcfb;--bg-subtle:#f2f5f4;--surface:#fff;--surface-hover:#f7faf9;--text:#17211f;--text-muted:#5c6a66;--heading:#0a1210;--border:#0a1e1a1a;--border-strong:#0a1e1a2e;--accent:#14766e;--accent-contrast:#fff;--accent-tint:#1b847c1a;--shadow:0 18px 40px -28px #0a282373;--glow:radial-gradient(60% 60% at 50% 0%, #1b847c1f, transparent 70%)}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%}body{min-height:100dvh;font-family:var(--font-sans);font-size:var(--step-0);color:var(--text);background-color:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;line-height:1.65}img,svg{max-width:100%;display:block}img{height:auto}a{color:var(--accent);transition:color .2s var(--ease);text-decoration:none}a:hover{color:color-mix(in srgb, var(--accent), var(--text) 30%)}h1,h2,h3,h4{color:var(--heading);letter-spacing:-.02em;text-wrap:balance;font-weight:600;line-height:1.15}h1{font-size:var(--step-4);letter-spacing:-.035em}h2{font-size:var(--step-3)}h3{font-size:var(--step-1)}p{text-wrap:pretty}ul{padding:0;list-style:none}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}::selection{background:var(--accent);color:var(--accent-contrast)}.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:clamp(1.15rem,5vw,2rem)}.container-wide{width:100%;max-width:var(--container-wide);margin-inline:auto;padding-inline:clamp(1.15rem,5vw,2rem)}.section{padding-block:var(--space-2xl)}.section--tight{padding-block:var(--space-xl)}.section-head{margin-bottom:var(--space-lg);max-width:60ch}.eyebrow{font-size:var(--step--1);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:var(--space-xs);align-items:center;gap:.5rem;font-weight:500;display:inline-flex}.eyebrow:before{content:"";opacity:.6;background:currentColor;width:1.75rem;height:1px}.lead{color:var(--text-muted);font-size:var(--step-1);max-width:62ch;font-weight:400}.muted{color:var(--text-muted)}.skip-link{z-index:2000;border-radius:var(--radius-sm);background:var(--accent);color:var(--accent-contrast);transition:translate .2s var(--ease);padding:.6rem 1rem;font-weight:500;position:absolute;top:.5rem;left:50%;translate:-50% -150%}.skip-link:focus-visible{color:var(--accent-contrast);translate:-50%}.btn{border-radius:var(--radius-pill);font:inherit;font-size:var(--step--1);letter-spacing:.01em;cursor:pointer;transition:background-color .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease), translate .2s var(--ease);border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.4rem;font-weight:500;display:inline-flex}.btn:hover{translate:0 -2px}.btn-primary{background:var(--accent);color:var(--accent-contrast)}.btn-primary:hover{background:color-mix(in srgb, var(--accent), var(--text) 12%);color:var(--accent-contrast)}.btn-ghost{border-color:var(--border-strong);color:var(--text);background:0 0}.btn-ghost:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-tint)}.icon-btn{border:1px solid var(--border);border-radius:var(--radius-sm);width:40px;height:40px;color:var(--text);cursor:pointer;transition:background-color .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease);background:0 0;place-items:center;display:inline-grid}.icon-btn:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-tint)}.chip-list{flex-wrap:wrap;gap:.5rem;display:flex}.chip{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg-subtle);color:var(--text-muted);font-size:var(--step--1);padding:.3rem .7rem;line-height:1.4}.header{z-index:1000;transition:background-color .3s var(--ease), border-color .3s var(--ease);border-bottom:1px solid #0000;padding-block:.85rem;position:fixed;inset:0 0 auto}body.scrolled .header{background:color-mix(in srgb, var(--bg), transparent 25%);backdrop-filter:blur(14px);border-bottom-color:var(--border)}.header-inner{justify-content:space-between;align-items:center;gap:var(--space-sm);display:flex}.logo{letter-spacing:-.01em;color:var(--heading);align-items:center;gap:.55rem;font-size:1.05rem;font-weight:600;display:inline-flex}.logo:hover{color:var(--accent)}.logo-mark{background:var(--accent);width:30px;height:30px;color:var(--accent-contrast);letter-spacing:0;border-radius:9px;place-items:center;font-size:.8rem;font-weight:700;display:grid}.header-actions{align-items:center;gap:.4rem;display:flex}.navmenu ul{margin:0;display:none}.navmenu a{color:var(--text-muted);font-size:var(--step--1);padding:.4rem .15rem;font-weight:500;display:block;position:relative}.navmenu a:after{content:"";background:var(--accent);transform-origin:0;width:100%;height:1.5px;transition:scale .25s var(--ease);position:absolute;bottom:.1rem;left:0;scale:0 1}.navmenu a:hover,.navmenu a[aria-current=page]{color:var(--text)}.navmenu a:hover:after,.navmenu a[aria-current=page]:after{scale:1}.lang-switch{border:1px solid var(--border);border-radius:var(--radius-pill);gap:2px;padding:3px;display:inline-flex}.lang-switch a{border-radius:var(--radius-pill);letter-spacing:.04em;color:var(--text-muted);padding:.25rem .6rem;font-size:.75rem;font-weight:600}.lang-switch a:hover{color:var(--text)}.lang-switch a[aria-current=true]{background:var(--accent);color:var(--accent-contrast)}.mobile-nav-toggle{border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:0 0;place-items:center;gap:5px;width:40px;height:40px;padding:0;display:inline-grid}.mobile-nav-toggle .toggle-bar{background:var(--text);width:17px;height:1.5px;transition:translate .25s var(--ease), rotate .25s var(--ease), opacity .2s var(--ease);border-radius:2px;display:block}body.mobile-nav-active{overflow:hidden}body.mobile-nav-active .mobile-nav-toggle{z-index:10002;position:fixed;top:.85rem;right:clamp(1.15rem,5vw,2rem)}body.mobile-nav-active .toggle-bar:first-child{translate:0 6.5px;rotate:45deg}body.mobile-nav-active .toggle-bar:nth-child(2){opacity:0}body.mobile-nav-active .toggle-bar:nth-child(3){translate:0 -6.5px;rotate:-45deg}body.mobile-nav-active .navmenu{z-index:10001;background:color-mix(in srgb, var(--bg), transparent 2%);backdrop-filter:blur(6px);place-items:center;display:grid;position:fixed;inset:0}body.mobile-nav-active .navmenu ul{text-align:center;gap:.35rem;width:min(90%,22rem);display:grid}body.mobile-nav-active .navmenu a{border-radius:var(--radius-md);font-size:var(--step-1);color:var(--text);padding:.9rem 1rem}body.mobile-nav-active .navmenu a:hover{background:var(--surface)}body.mobile-nav-active .navmenu a:after{display:none}@media (width>=900px){.mobile-nav-toggle{display:none}.navmenu ul{align-items:center;gap:var(--space-md);display:flex}}.hero{min-height:min(78svh,760px);padding-block:calc(var(--space-2xl) + 2.5rem) var(--space-xl);align-items:center;display:flex;position:relative;overflow:hidden}.hero:before{content:"";background:var(--glow);pointer-events:none;position:absolute;inset:0}.hero-media{z-index:-1;position:absolute;inset:0}.hero-media img{object-fit:cover;opacity:.16;filter:grayscale(.4);width:100%;height:100%}.hero-media:after{content:"";background:linear-gradient(to bottom, color-mix(in srgb, var(--bg), transparent 25%), var(--bg) 85%);position:absolute;inset:0}.hero-inner{max-width:46rem;position:relative}.hero-role{margin-top:var(--space-sm);font-size:var(--step-2);color:var(--text-muted);font-weight:400;display:block}.typed{color:var(--accent);font-weight:500}.typed:after{content:"";background:var(--accent);width:2px;height:1em;margin-left:2px;animation:1s steps(2,end) infinite caret;display:inline-block;translate:0 .12em}@keyframes caret{50%{opacity:0}}.hero-actions{align-items:center;gap:var(--space-sm);margin-top:var(--space-lg);flex-wrap:wrap;display:flex}.social-links{flex-wrap:wrap;gap:.5rem;display:flex}.social-links a{border:1px solid var(--border);border-radius:var(--radius-pill);width:40px;height:40px;color:var(--text-muted);transition:color .2s var(--ease), border-color .2s var(--ease), background-color .2s var(--ease), translate .2s var(--ease);place-items:center;display:grid}.social-links a:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-tint);translate:0 -2px}.card{padding:var(--space-md);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);transition:border-color .25s var(--ease), background-color .25s var(--ease)}.card:hover{border-color:var(--border-strong)}.grid{gap:var(--space-md);display:grid}@media (width>=720px){.grid--2{grid-template-columns:repeat(2,1fr)}}@media (width>=960px){.grid--3{grid-template-columns:repeat(3,1fr)}}.about-grid{gap:var(--space-lg);display:grid}@media (width>=900px){.about-grid{align-items:start;gap:var(--space-xl);grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}}.about-body p+p{margin-top:var(--space-sm)}.about-body{color:var(--text-muted);font-size:var(--step-0)}.skill-card h3{font-size:var(--step--1);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:.6rem;font-weight:600}.skill-card p{color:var(--text);font-size:var(--step-0)}.resume-columns{gap:var(--space-md);display:grid}@media (width>=860px){.resume-columns{grid-template-columns:repeat(2,1fr)}}.info-list{margin-top:var(--space-sm);color:var(--text-muted);font-size:var(--step--1);gap:.35rem;display:grid}.info-list a{color:var(--text-muted)}.info-list a:hover{color:var(--accent)}.timeline{gap:var(--space-md);display:grid;position:relative}.timeline-item{padding-left:var(--space-md);border-left:1px solid var(--border);position:relative}.timeline-item:before{content:"";background:var(--accent);border-radius:50%;width:8px;height:8px;position:absolute;top:.55rem;left:-4.5px}.timeline-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.timeline-role{font-size:var(--step-1)}.timeline-period{font-size:var(--step--1);font-variant-numeric:tabular-nums;color:var(--text-muted);white-space:nowrap}.timeline-place{font-size:var(--step--1);color:var(--text-muted);margin-top:.15rem}.bullet-list{margin-top:var(--space-sm);color:var(--text-muted);font-size:var(--step--1);gap:.5rem;display:grid}.bullet-list li{padding-left:1.1rem;position:relative}.bullet-list li:before{content:"";background:var(--accent);width:5px;height:1px;position:absolute;top:.62em;left:0}.cta-card{justify-content:space-between;align-items:center;gap:var(--space-sm);margin-top:var(--space-lg);padding:var(--space-md);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-subtle);flex-wrap:wrap;display:flex}.project-grid{gap:var(--space-md);display:grid}@media (width>=860px){.project-grid{grid-template-columns:repeat(2,1fr)}}.project-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);color:inherit;transition:border-color .25s var(--ease), translate .25s var(--ease), box-shadow .25s var(--ease);flex-direction:column;display:flex;overflow:hidden}.project-card:hover{border-color:var(--accent);box-shadow:var(--shadow);color:inherit;translate:0 -4px}.project-thumb{aspect-ratio:16/10;background:var(--bg-subtle);overflow:hidden}.project-thumb img{object-fit:cover;width:100%;height:100%;transition:scale .5s var(--ease)}.project-card:hover .project-thumb img{scale:1.04}.project-body{gap:var(--space-sm);padding:var(--space-md);flex-direction:column;flex:1;display:flex}.project-title{font-size:var(--step-1);align-items:center;gap:.4rem;display:flex}.project-title svg{color:var(--text-muted);transition:color .2s var(--ease), translate .2s var(--ease);flex-shrink:0}.project-card:hover .project-title svg{color:var(--accent);translate:2px -2px}.project-body p{color:var(--text-muted);font-size:var(--step--1);flex:1}.footer{border-top:1px solid var(--border);background:var(--bg-subtle);padding-block:var(--space-xl) var(--space-md);margin-top:var(--space-xl)}.footer-top{gap:var(--space-md);text-align:center;justify-items:center;display:grid}.footer-contact{justify-content:center;gap:.5rem var(--space-md);color:var(--text-muted);font-size:var(--step--1);flex-wrap:wrap;display:flex}.footer-contact a{color:var(--text-muted)}.footer-contact a:hover{color:var(--accent)}.footer-bottom{margin-top:var(--space-lg);padding-top:var(--space-md);border-top:1px solid var(--border);color:var(--text-muted);font-size:var(--step--1);flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;display:flex}.scroll-top{z-index:990;border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface);width:42px;height:42px;color:var(--text);opacity:0;visibility:hidden;transition:opacity .25s var(--ease), translate .25s var(--ease), visibility .25s, border-color .2s var(--ease), color .2s var(--ease);place-items:center;display:grid;position:fixed;bottom:clamp(1rem,4vw,2rem);right:clamp(1rem,4vw,2rem);translate:0 8px}.scroll-top.visible{opacity:1;visibility:visible;translate:0}.scroll-top:hover{color:var(--accent);border-color:var(--accent)}@media (prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}html[data-theme=dark] .icon-sun[data-astro-cid-l6lhmie6],html[data-theme=light] .icon-moon[data-astro-cid-l6lhmie6]{display:none}
