:root{color-scheme:light;--bg: #eceff4;--bg-soft: #e5e9f0;--surface: rgba(255, 255, 255, .9);--surface-strong: #ffffff;--text: #2e3440;--heading: #3b4252;--muted: #4c566a;--border: rgba(46, 52, 64, .18);--accent: #88c0d0;--accent-strong: #5e9aab;--accent-soft: rgba(136, 192, 208, .15);--shadow: 0 3px 6px 0 rgba(184, 194, 215, .35);--radius: .5em;--radius-sm: .25em;--container: 1160px;font-family:Rubik,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.5}:root[data-theme=dark]{color-scheme:dark;--bg: #3b4252;--bg-soft: #434c5e;--surface: rgba(67, 76, 94, .9);--surface-strong: #434c5e;--text: #eceff4;--heading: #eceff4;--muted: #d8dee9;--border: rgba(216, 222, 233, .18);--accent: #88c0d0;--accent-strong: #8fbcbb;--accent-soft: rgba(136, 192, 208, .13);--shadow: 0 3px 6px 0 rgba(15, 17, 21, .2)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);min-width:320px}body,button,input,textarea{font:inherit}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button,a{transition:border-color .18s ease,background .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app-shell{min-height:100vh;display:flex;flex-direction:column}main{flex:1}.container{width:min(100% - 40px,var(--container));margin:0 auto}.container.narrow{width:min(100% - 40px,860px)}.site-header{position:sticky;top:0;z-index:20;background:var(--bg);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.nav{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand,.nav-links,.nav-panel,.nav-actions,.theme-toggle,.hero-actions,.social-links,.chip-list,.footer-links{display:flex;align-items:center}.nav-actions{gap:4px;margin-left:auto}.brand{gap:12px;font-weight:600;font-size:1.05rem;letter-spacing:-.01em}.brand-mark{display:grid;width:36px;height:36px;place-items:center;border-radius:.25em;background:var(--accent);color:#2e3440;font-weight:700;font-size:.85rem}.nav-panel{gap:18px}.nav-links{gap:6px}.nav-links a{border-radius:.25em;color:var(--muted);font-size:.95rem;font-weight:500;padding:.5em .85em}.nav-links a:hover,.nav-links a.active{background:var(--accent-soft);color:var(--accent)}.theme-toggle,.menu-toggle{border:0;background:transparent;color:var(--muted);cursor:pointer;border-radius:.25em;display:inline-flex;align-items:center;justify-content:center;transition:background-color .1s ease-in-out,color .1s ease-in-out}.theme-toggle:hover,.menu-toggle:hover{background:var(--accent-soft);color:var(--accent)}.theme-toggle{width:40px;height:40px;padding:0;font-size:1.2rem}.theme-toggle span:not(.sr-only){display:none}.theme-toggle:before{content:"";width:20px;height:20px;background-color:currentColor;-webkit-mask:var(--theme-toggle-icon) no-repeat center / contain;mask:var(--theme-toggle-icon) no-repeat center / contain}:root{--theme-toggle-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z'/%3E%3C/svg%3E")}:root[data-theme=dark]{--theme-toggle-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='5'/%3E%3Cline x1='12' y1='1' x2='12' y2='3'/%3E%3Cline x1='12' y1='21' x2='12' y2='23'/%3E%3Cline x1='4.22' y1='4.22' x2='5.64' y2='5.64'/%3E%3Cline x1='18.36' y1='18.36' x2='19.78' y2='19.78'/%3E%3Cline x1='1' y1='12' x2='3' y2='12'/%3E%3Cline x1='21' y1='12' x2='23' y2='12'/%3E%3Cline x1='4.22' y1='19.78' x2='5.64' y2='18.36'/%3E%3Cline x1='18.36' y1='5.64' x2='19.78' y2='4.22'/%3E%3C/svg%3E")}.menu-toggle{display:none;width:40px;height:40px;padding:10px;flex-direction:column;gap:4px}.menu-toggle span:not(.sr-only){display:block;width:20px;height:2px;border-radius:1px;background:currentColor}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.hero-section{position:relative;display:flex;align-items:center;min-height:calc(100svh - 76px);overflow:hidden;background:var(--bg);padding:88px 0 74px}.hero-section:before{content:none}.hero-grid{position:relative;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:56px;align-items:center}.eyebrow{color:var(--accent);display:inline-block;font-size:.78rem;font-weight:700;letter-spacing:.12em;margin-bottom:14px;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.02em;line-height:1.15;font-weight:700;color:var(--heading)}h1{font-size:clamp(2.4rem,5.5vw,4.4rem);margin-bottom:18px}.hero-copy h1{font-size:clamp(2.4rem,5.5vw,4.4rem)}h2{font-size:clamp(1.5rem,2.8vw,2.2rem);margin-bottom:16px}h3{font-size:1.25rem;margin-bottom:12px}p{color:var(--muted);line-height:1.72}.hero-title{color:var(--text);font-size:clamp(1.35rem,2.4vw,2rem);font-weight:750;line-height:1.35;max-width:760px}.hero-summary{max-width:680px;font-size:1.08rem}.hero-actions,.social-links{flex-wrap:wrap;gap:14px;margin-top:28px}.centered{justify-content:center}.button{border:1px solid transparent;border-radius:.25em;display:inline-flex;align-items:center;justify-content:center;padding:.55em 1em;font-weight:500;font-size:1rem;font-family:inherit;line-height:1.15;white-space:nowrap;cursor:pointer;transition:background-color .2s ease-in,border-color .2s ease-in,color .2s ease-in}.button-primary{background:var(--accent);border-color:var(--accent);color:#3b4252}.button-primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.button-secondary{background:transparent;border-color:var(--muted);color:var(--text)}.button-secondary:hover{border-color:var(--accent);color:var(--accent)}.button[disabled]{cursor:not-allowed;opacity:.65;transform:none}.social-links a,.text-link{color:var(--accent-strong);font-weight:800}.social-links a:hover,.text-link:hover{color:var(--accent)}.hero-portrait-wrap{aspect-ratio:.86;justify-self:end;width:min(100%,430px);border-radius:.5em;overflow:hidden;padding:8px;background:var(--surface-strong);box-shadow:var(--shadow)}.hero-portrait{width:100%;height:100%;object-fit:cover;object-position:center top;border-radius:.35em;background:var(--bg-soft)}.section,.page-section{padding:82px 0}.home-section{background:var(--bg)}.home-section:nth-of-type(2n){background:color-mix(in srgb,var(--surface) 32%,transparent)}.page-section{padding-top:64px}.section-muted{background:color-mix(in srgb,var(--surface) 58%,transparent)}.section-heading{max-width:760px;margin-bottom:34px}.section-heading h2{font-size:clamp(2rem,4vw,3.2rem)}.section-heading-center{margin-inline:auto;text-align:center}.surface-card{border:0;border-radius:.5em;background:var(--surface-strong);box-shadow:var(--shadow)}.badge-row,.certification-grid,.project-grid,.skill-grid{display:grid;gap:18px}.badge-row{grid-template-columns:repeat(5,minmax(0,1fr))}.badge-tile{border:0;border-radius:.5em;background:var(--surface-strong);box-shadow:var(--shadow);min-height:196px;padding:22px 18px 18px;display:grid;grid-template-rows:82px 1fr;align-items:start;gap:14px;transition:box-shadow .2s ease-in-out,transform .2s ease-in-out}.badge-tile:hover,.certification-badge-link:hover{transform:translateY(-2px);box-shadow:0 6px 14px #2e34402e}.badge-tile img{justify-self:center;align-self:center;width:72px;height:72px;object-fit:contain}.badge-tile div{width:100%}.badge-tile strong,.badge-tile span{display:block}.badge-tile span{color:var(--muted);font-size:.9rem;margin-top:6px}.tech-headliners-section{padding-top:72px}.tech-headliner-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px}.tech-headliner-card{display:grid;min-height:178px;place-items:center;gap:16px;border-radius:.5em;background:var(--surface-strong);box-shadow:var(--shadow);padding:28px 18px 24px;text-align:center}.tech-headliner-card img{width:82px;height:82px;object-fit:contain}.tech-headliner-card h3{margin-bottom:0;font-size:1.05rem}.skill-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.skill-card,.project-card,.certification-card,.cv-section,.empty-state{padding:26px}.chip-list,.tech-logo-list{flex-wrap:wrap;gap:10px}.chip,.tech-logo-missing{border:1px solid var(--border);border-radius:.25em;background:var(--surface-strong);color:var(--text);font-size:.82rem;font-weight:500;font-family:inherit;line-height:1.2;padding:.35em .7em}.tech-logo{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:.25em;background:#fff;border:1px solid var(--border);padding:4px}.tech-logo img{width:100%;height:100%;object-fit:contain;display:block}.tech-logo-missing{text-transform:capitalize}.split-cta{display:flex;align-items:center;justify-content:space-between;gap:42px;padding:38px}.split-cta>div{flex:1 1 auto;min-width:0}.split-cta .button{flex:0 0 auto;min-height:54px;min-width:190px;margin-inline:8px 18px;padding:10px 24px;font-size:.92rem;line-height:1.2;text-align:center}.split-cta p{max-width:680px;margin-bottom:0}.contact-preview-card{text-align:center}.certification-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.certification-card{display:grid;grid-template-columns:90px 1fr;gap:20px;align-items:center}.certification-card img{width:82px;height:82px;object-fit:contain}.certification-badge-link{border-radius:.25em;display:inline-flex;justify-self:start;width:fit-content;padding:4px}.certification-card span,.project-card time{color:var(--muted);font-size:.9rem}.certification-actions{display:flex;flex-wrap:wrap;gap:12px;grid-column:2}.certification-actions .button{font-size:.9rem;padding:.4em .85em}.credential-placeholder{border:1px solid var(--border);border-radius:.25em;color:var(--muted);display:inline-flex;align-items:center;padding:.4em .85em;font-size:.9rem;font-weight:500}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.project-card{display:flex;min-height:380px;flex-direction:column}.project-card-topline{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.pill{border-radius:.25em;background:var(--accent);color:#2e3440;font-size:.72rem;font-weight:700;letter-spacing:.08em;padding:.3em .6em;text-transform:uppercase}.tech-logo-list{display:flex;margin:18px 0 24px}.project-card .text-link{margin-top:auto}.back-link{display:inline-block;margin-bottom:24px}.project-hero{padding:36px;margin-bottom:34px}.repo-link{align-self:flex-start;gap:10px;padding:.65em 1.1em;font-weight:600}.repo-link img{width:20px;height:20px}.tech-logo-list{margin:18px 0}.project-card-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto}.project-hero h1{font-size:clamp(2rem,4vw,3.2rem)}.markdown-body{border:0;border-radius:.5em;background:var(--surface-strong);box-shadow:var(--shadow);padding:clamp(28px,5vw,54px)}.markdown-body h1,.markdown-body h2,.markdown-body h3{margin-top:32px}.markdown-body h1:first-child,.markdown-body h2:first-child,.markdown-body h3:first-child{margin-top:0}.markdown-body ul,.markdown-body ol{color:var(--muted);line-height:1.75;padding-left:22px}.markdown-body a{color:var(--accent-strong);font-weight:800}.markdown-body code{border:1px solid var(--border);border-radius:.25em;background:var(--bg-soft);color:var(--accent);font-family:Source Code Pro,SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:.9em;padding:.15em .4em}.markdown-figure{margin:30px 0}.markdown-figure img{width:100%}.markdown-figure figcaption{color:var(--muted);font-size:.9rem;margin-top:10px;text-align:center}.cv-hero{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:38px;margin-bottom:28px}.cv-hero p{max-width:780px}.cv-title{color:var(--accent-strong);font-size:1.1rem;font-weight:900;margin-bottom:14px}.cv-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end}.cv-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:28px}.cv-main,.cv-side{display:grid;gap:28px;align-content:start}.cv-section .section-heading{margin-bottom:22px}.timeline-item{border-top:1px solid var(--border);padding-top:22px;margin-top:22px}.timeline-item:first-of-type{border-top:0;padding-top:0;margin-top:0}.timeline-item>span{color:var(--accent-strong);display:inline-block;font-weight:800;margin-bottom:10px}.timeline-item ul{color:var(--muted);line-height:1.7;padding-left:20px}.cv-side .badge-row{grid-template-columns:1fr}.cv-side .badge-tile{box-shadow:none}.education-item{border-top:1px solid var(--border);padding-top:22px}.education-item p{margin-bottom:6px}.education-item span,.language-item span{color:var(--muted)}.cv-skill-list{display:grid;gap:24px}.cv-skill-list h3{font-size:1rem;margin-bottom:12px}.language-list{display:grid;gap:12px}.language-item{align-items:center;border-radius:.25em;display:grid;gap:16px;grid-template-columns:56px minmax(0,1fr);padding:7px 0}.language-item div{display:grid;gap:2px;min-width:0}.language-flag{border-radius:4px;box-shadow:0 0 0 1px var(--border);display:block;height:40px;object-fit:cover;width:56px}.empty-state{text-align:center}.site-footer{border-top:1px solid var(--border);padding:34px 0;background:color-mix(in srgb,var(--surface) 70%,transparent)}.footer-grid{display:flex;align-items:center;justify-content:space-between;gap:28px}.footer-grid p{margin-bottom:0}.footer-links{flex-wrap:wrap;gap:16px}.footer-links a{color:var(--muted);font-weight:800}.footer-links a:hover{color:var(--accent-strong)}@media(max-width:980px){.hero-grid,.cv-layout{grid-template-columns:1fr}.hero-portrait-wrap{justify-self:start;margin-inline:0;max-width:430px}.badge-row,.tech-headliner-grid,.skill-grid,.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.certification-grid{grid-template-columns:1fr}}@media(max-width:760px){.container,.container.narrow{width:min(100% - 28px,var(--container))}.menu-toggle{display:inline-flex}.nav-panel{position:absolute;inset:76px 14px auto;border-radius:.5em;background:var(--surface-strong);box-shadow:var(--shadow);display:none;padding:16px}.nav-panel.is-open{display:grid;gap:14px}.nav-links{align-items:stretch;flex-direction:column}.hero-section,.section,.page-section{padding-block:54px}.hero-section{min-height:calc(100svh - 76px);padding-block:54px}.hero-grid{gap:42px}.hero-portrait-wrap{justify-self:start;margin-inline:0;width:min(100%,430px)}h1{font-size:clamp(3rem,16vw,4.4rem)}.badge-row,.tech-headliner-grid,.skill-grid,.project-grid{grid-template-columns:1fr}.split-cta,.cv-hero,.footer-grid{align-items:flex-start;flex-direction:column}.split-cta .button{margin-inline:0}.certification-card{grid-template-columns:1fr}.certification-actions{grid-column:1}.certification-card img{width:92px;height:92px}.project-card,.badge-tile{min-height:auto}}
