@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.start{inset-inline-start:var(--spacing)}.block{display:block}.h-full{height:100%}.min-h-full{min-height:100%}.grow{flex-grow:1}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}:root{--background:#edebe4;--foreground:#1f2221;--page-gutter:clamp(.9rem, 1.2vw + .5rem, 1.7rem);--surface:#ffffff80;--border:#1418162e;--border-soft:#1418161a;--muted:#5f645f;--accent:#121513;--accent-text:#edebe4;--shadow:0 10px 30px #1014121a;--hero-light:#18306033;--hero-grid-line:#1418160f;--hero-grid-size:72px;--about-tile:min(7.5rem, 42vw);--shell-top-glow:radial-gradient(130% 68% at 50% -18%, #ffffff80 0%, #ffffff17 42%, transparent 76%);--live-demo-navy:#0f3d2e;--live-demo-surface:#0f3d2e24;--live-demo-border:#0f3d2e6b;--live-indicator:#22c55e}[data-theme=dark]{--background:#111312;--foreground:#e8e6df;--surface:#ffffff0f;--border:#e8e6df33;--border-soft:#e8e6df1f;--muted:#b8b5aa;--accent:#e8e6df;--accent-text:#111312;--shadow:0 14px 32px #0000006b;--hero-light:#284c9840;--hero-grid-line:#e8e6df14;--shell-top-glow:radial-gradient(130% 68% at 50% -18%, #ffffff14 0%, #00000047 44%, transparent 78%);--live-demo-navy:#6bb89a;--live-demo-surface:#2d6b5238;--live-demo-border:#6ec8a059;--live-indicator:#34d399}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0;overflow-x:clip}body{background-color:var(--background);background-image:radial-gradient(120% 72% at 50% -8%, var(--hero-light) 0%, #1830601f 34%, #18306000 78%), linear-gradient(var(--hero-grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--hero-grid-line) 1px, transparent 1px);background-size:100% min(68vh, 620px), var(--hero-grid-size) var(--hero-grid-size), var(--hero-grid-size) var(--hero-grid-size);color:var(--foreground);background-position:top,0 0,0 0;background-repeat:no-repeat,repeat,repeat;font-family:Geist,Inter,Segoe UI,sans-serif;line-height:1.5;transition:background-color .18s,color .18s}a{color:inherit;text-decoration:none}.portfolio-page{width:100%;min-height:100vh;padding-block:var(--page-gutter)}.portfolio-shell{width:min(1080px, calc(100% - (var(--page-gutter) * 2)));padding-top:calc(var(--page-gutter) + 2.8rem);gap:clamp(1.3rem,2vw,2rem);margin:0 auto;display:grid}.site-nav{top:var(--page-gutter);width:min(1080px, calc(100% - (var(--page-gutter) * 2)));z-index:50;justify-content:space-between;align-items:center;gap:clamp(.5rem,2vw,1rem);padding:.62rem 0;transition:padding .22s,background-color .22s,border-color .22s,border-radius .22s,box-shadow .22s,-webkit-backdrop-filter .22s,backdrop-filter .22s;display:flex;position:fixed;left:50%;transform:translate(-50%)}.site-nav-leading{flex-shrink:0;align-items:center;display:flex}.nav-menu-toggle{color:var(--foreground);background:0 0;border:1px solid #0000;border-radius:10px;margin:0;padding:.45rem;display:none}@supports (color:color-mix(in lab, red, red)){.nav-menu-toggle{color:color-mix(in srgb, var(--foreground) 84%, var(--muted))}}.nav-menu-toggle{cursor:pointer;-webkit-tap-highlight-color:transparent;transition:border-color .17s,background-color .17s,color .17s}.nav-menu-toggle:hover{border-color:var(--border);background:var(--surface)}@supports (color:color-mix(in lab, red, red)){.nav-menu-toggle:hover{background:color-mix(in srgb, var(--surface) 72%, transparent)}}.nav-menu-toggle:hover{color:var(--foreground)}.nav-menu-toggle-icon{width:22px;height:22px;display:block}.nav-menu-toggle-icon svg{stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;width:100%;height:100%}.site-nav.is-scrolled{border:1px solid var(--border);background:var(--surface);border-radius:14px;padding:.62rem .85rem}@supports (color:color-mix(in lab, red, red)){.site-nav.is-scrolled{background:color-mix(in srgb, var(--surface) 85%, transparent)}}.site-nav.is-scrolled{-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);box-shadow:var(--shadow)}.site-mark{letter-spacing:.04em;min-width:36px;height:36px;color:var(--foreground);border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;font-size:.95rem;font-weight:600;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.site-mark{color:color-mix(in srgb, var(--foreground) 84%, var(--muted))}}.site-mark{transition:border-color .17s,background-color .17s,color .17s}.site-mark:hover{border-color:var(--border);background:var(--surface)}@supports (color:color-mix(in lab, red, red)){.site-mark:hover{background:color-mix(in srgb, var(--surface) 72%, transparent)}}.site-mark:hover{color:var(--foreground)}.site-mark-img{object-fit:contain;width:24px;height:24px;display:block}.site-links{align-items:center;gap:clamp(.25rem,1vw,.9rem);display:inline-flex}.site-links a{min-height:34px;color:var(--foreground);border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;padding:.28rem .7rem;font-size:.92rem;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.site-links a{color:color-mix(in srgb, var(--foreground) 74%, var(--muted))}}.site-links a{transition:border-color .17s,background-color .17s,color .17s}.site-links a:hover{border-color:var(--border);background:var(--surface)}@supports (color:color-mix(in lab, red, red)){.site-links a:hover{background:color-mix(in srgb, var(--surface) 72%, transparent)}}.site-links a:hover{color:var(--foreground)}.theme-toggle{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;padding:0}.site-theme-toggle{justify-content:center;align-items:center;margin-left:.1rem;display:inline-flex}.toggle-track{border:1px solid var(--border);background:var(--surface);border-radius:999px;width:46px;height:26px}@supports (color:color-mix(in lab, red, red)){.toggle-track{background:color-mix(in srgb, var(--surface) 64%, transparent)}}.toggle-track{justify-content:space-between;align-items:center;padding:0 6px;transition:background-color .2s,border-color .2s;display:inline-flex;position:relative}.toggle-icon{width:10px;height:10px;color:var(--muted);justify-content:center;align-items:center;transition:color .2s;display:inline-flex}.toggle-icon svg{fill:none;stroke:currentColor;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;width:10px;height:10px}.toggle-icon-moon svg{fill:currentColor;stroke:none}.toggle-thumb{background:var(--accent);border-radius:999px;width:16px;height:16px;transition:transform .22s cubic-bezier(.4,0,.2,1),background-color .22s;display:block;position:absolute;top:4px;left:4px;box-shadow:0 3px 12px #00000038}.theme-toggle[aria-pressed=true] .toggle-thumb{transform:translate(20px)}.theme-toggle[aria-pressed=false] .toggle-icon-sun,.theme-toggle[aria-pressed=true] .toggle-icon-moon{color:var(--foreground)}.theme-toggle:hover .toggle-track{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.theme-toggle:hover .toggle-track{border-color:color-mix(in srgb, var(--border) 90%, var(--foreground))}}.landing-hero{text-align:center;align-content:center;justify-items:center;min-height:min(85vh,760px);padding:clamp(4.2rem,9vh,7.4rem) clamp(.5rem,2vw,1rem) clamp(4.8rem,10vh,7rem);display:grid;position:relative;overflow:visible}.hero-copy h1{letter-spacing:-.03em;margin:0;font-size:clamp(2.6rem,6vw,5.5rem);line-height:1.05}.hero-copy{flex-direction:column;gap:2rem;display:flex}.hero-lead{max-width:32ch;margin:2rem auto 0;font-size:clamp(1rem,1.15vw,1.65rem)}.hero-scroll{width:36px;height:36px;color:var(--foreground);border-radius:999px;justify-content:center;align-items:center;display:inline-flex;position:absolute;bottom:clamp(1.2rem,1.9vw,2rem);left:50%;transform:translate(-50%)}@supports (color:color-mix(in lab, red, red)){.hero-scroll{color:color-mix(in srgb, var(--foreground) 72%, var(--muted))}}.hero-scroll{border:1px solid #0000;transition:transform .18s,border-color .18s,color .18s,background-color .18s}.hero-scroll:hover{border-color:var(--border);background:var(--surface);transform:translate(-50%,-2px)}@supports (color:color-mix(in lab, red, red)){.hero-scroll:hover{background:color-mix(in srgb, var(--surface) 74%, transparent)}}.hero-scroll:hover{color:var(--foreground)}.content-section{padding:clamp(1rem,1.4vw + .6rem,1.6rem) 0}.content-shell{border:1.5px solid var(--border);width:100%;margin-left:0;position:relative;left:0;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.content-shell{border:1.5px solid color-mix(in srgb, var(--border) 82%, transparent)}}.content-shell{background:var(--background);border-radius:100px 100px 0 0}@supports (color:color-mix(in lab, red, red)){.content-shell{background:color-mix(in srgb, var(--background) 97%, var(--surface))}}.content-shell{box-shadow:none;padding:clamp(1rem,1.4vw + .6rem,1.5rem) 0 clamp(1.6rem,2vw,2rem)}.content-shell:before{content:"";background:var(--shell-top-glow);pointer-events:none;z-index:0;height:min(38vh,400px);position:absolute;top:0;left:0;right:0}.content-inner{z-index:1;width:min(1080px,100%);margin:0 auto;padding-inline:clamp(1rem,2vw,1.7rem);position:relative}.content-section+.content-section{border-top:1px solid var(--border-soft)}.content-section h2{margin:.35rem 0 .86rem;font-size:clamp(1.2rem,1.2vw + .9rem,1.92rem);line-height:1.2}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0;font-size:.78rem}.lead{max-width:66ch;color:var(--muted);margin:0}.content-section .lead+.lead{margin-top:.8rem}.about-section{grid-template-columns:minmax(0,auto) minmax(0,1fr);align-items:start;gap:clamp(.65rem,1vw,.86rem) clamp(1.1rem,2.2vw,2rem);display:grid}.about-section>h2{grid-column:1/-1;margin-bottom:0}.about-media{flex-flow:row;justify-content:center;align-items:stretch;gap:clamp(.65rem,2vw,1rem);width:fit-content;max-width:100%;display:flex}@media (min-width:641px){.about-media{flex-direction:column;justify-content:flex-start;align-items:center}}.about-photo{width:var(--about-tile);height:var(--about-tile);object-fit:cover;border:1px solid var(--border);border-radius:14px;display:block}.about-photo-fallback{width:var(--about-tile);height:var(--about-tile);border:1px solid var(--border);background:var(--surface);border-radius:14px;flex-shrink:0;place-items:center;display:grid}@supports (color:color-mix(in lab, red, red)){.about-photo-fallback{background:color-mix(in srgb, var(--surface) 55%, transparent)}}.about-photo-fallback{letter-spacing:.04em;color:var(--foreground);font-size:clamp(1.5rem,4vw,2rem);font-weight:600}.about-favicon{width:var(--about-tile);height:var(--about-tile);object-fit:contain;border:1px solid var(--border);background:var(--surface);border-radius:14px;flex-shrink:0;display:block}@supports (color:color-mix(in lab, red, red)){.about-favicon{background:color-mix(in srgb, var(--surface) 60%, transparent)}}.about-copy{min-width:0}.about-copy h2{letter-spacing:-.02em;margin:0 0 1rem;font-size:clamp(1.35rem,2vw + 1rem,2.2rem);font-weight:600;line-height:1.25}.cta-group{flex-wrap:wrap;justify-content:center;gap:1.05rem;margin-top:1.85rem;display:flex}.cta-group>.btn{white-space:nowrap;border:1px solid var(--border);border-radius:999px;flex-direction:row;justify-content:center;align-items:center;gap:.5rem;width:auto;min-width:0;height:auto;padding:.78rem 1.45rem;font-size:1.03rem;font-weight:500;line-height:1.1;transition:transform .17s,border-color .17s,background-color .17s,color .17s;display:inline-flex}.cta-group>.btn:hover{transform:translateY(-1px)}@media (max-width:450px){.landing-hero .cta-group{flex-direction:column;align-items:stretch}.landing-hero .cta-group>.btn{justify-content:center;width:100%}}.cta-icon{flex-shrink:0;display:inline-block;width:12px!important;height:12px!important}.cta-icon path{stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;fill:none!important;stroke:currentColor!important}.external-link-icon{vertical-align:-.08em;fill:none;stroke:currentColor;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;width:.9em;height:.9em;display:inline-block}.btn-primary{background:var(--accent);color:var(--accent-text)}.btn-ghost{background:var(--background)}@supports (color:color-mix(in lab, red, red)){.btn-ghost{background:color-mix(in srgb, var(--background) 90%, #fff 10%)}}.skills-layout{flex-direction:column;gap:clamp(1.25rem,2vw,1.85rem);display:flex}.skills-row-top{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:clamp(.75rem,1.5vw,1.25rem);display:grid}.skills-row-certifications,.skills-group-certifications{width:100%}.skills-cert-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(.65rem,1.2vw,1rem);display:grid}.skills-cert-card{border:1px solid var(--border);background:var(--surface);border-radius:18px;justify-content:space-between;align-items:center;gap:.75rem;min-height:4.25rem;padding:1rem 1.15rem;display:flex}@supports (color:color-mix(in lab, red, red)){.skills-cert-card{background:color-mix(in srgb, var(--surface) 82%, transparent)}}.skills-cert-card{color:var(--foreground);font-size:.95rem;font-weight:500;line-height:1.35;text-decoration:none;transition:background-color .18s,border-color .18s,color .18s}.skills-cert-card:hover{background:#7f7f7f1f;border-color:#787d786b}.skills-cert-card-static{cursor:default}.skills-cert-card-text{flex:1;min-width:0}.skills-row-others{justify-content:center;width:100%;display:flex}.skills-group-others{text-align:center;flex-direction:column;align-items:center;width:100%;max-width:100%;display:flex}.skills-list-others{justify-content:center}.skills-group{gap:.38rem;display:grid}.skills-group-label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0;font-size:.76rem}.skills-list{flex-wrap:wrap;gap:.55rem;display:flex}.skills-pill{border:1px solid var(--border);background:var(--surface);border-radius:999px;align-items:center;gap:.45rem;padding:.4rem .75rem;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.skills-pill{background:color-mix(in srgb, var(--surface) 78%, transparent)}}.skills-pill{white-space:nowrap;font-size:.86rem;transition:background-color .18s,border-color .18s,color .18s}.skills-pill:hover{color:var(--foreground);background:#7f7f7f29;border-color:#787d7873}.skills-link{color:inherit;text-decoration:none}.skills-link-icon{color:var(--muted);transition:color .18s}.skills-link:hover .skills-link-icon{color:var(--foreground)}.skills-pill img{width:16px;height:16px}.skills-fallback-icon{width:16px;height:16px;color:var(--foreground);background:#7f7f7f2e;border-radius:999px;justify-content:center;align-items:center;font-size:.75rem;line-height:1;display:inline-flex}.chip{border:1px solid var(--border);border-radius:999px;padding:.4rem .7rem;font-size:.9rem}.cards-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;display:grid}.card{border:1px solid var(--border);background:var(--surface);border-radius:14px;padding:.9rem}@supports (color:color-mix(in lab, red, red)){.card{background:color-mix(in srgb, var(--surface) 72%, transparent)}}.card{transition:transform .18s,border-color .18s,background-color .18s}.card:hover{background:#7f7f7f14;border-color:#787d7873;transform:translateY(-2px)}.card h3{margin:0 0 .4rem;font-size:1rem}.card h3.project-title-row{margin:0 0 .6rem;line-height:1}.card p{color:var(--muted);margin:0 0 .7rem}.card span{color:var(--muted);font-size:.82rem;transition:color .18s}.project-card{color:inherit;text-decoration:none;display:block}.project-title-row{justify-content:space-between;align-items:center;display:flex}.card .project-title{min-width:0;color:var(--foreground);margin:0;padding:0;font-size:1.1rem;line-height:1.15}.project-link-icon{color:var(--muted);flex-shrink:0;justify-content:center;align-items:center;transition:color .18s;display:inline-flex}.project-card:hover .project-link-icon{color:var(--foreground)}.card .project-live-demo{border:1px solid var(--live-demo-border);background:var(--live-demo-surface);color:var(--live-demo-navy);letter-spacing:.01em;border-radius:999px;flex-shrink:0;align-items:center;gap:.2rem;padding:.3rem 1rem;font-size:.53rem;font-weight:600;transition:border-color .18s,background-color .18s,color .18s;display:inline-flex}.project-live-demo-icon{vertical-align:-.1em;width:1.35em;height:1.35em}.card .project-live-demo .project-live-demo-label{color:inherit}.project-live-dot{background:var(--live-indicator);width:5px;height:5px;box-shadow:0 0 0 1px var(--live-indicator);border-radius:50%;flex-shrink:0}@supports (color:color-mix(in lab, red, red)){.project-live-dot{box-shadow:0 0 0 1px color-mix(in srgb, var(--live-indicator) 35%, transparent)}}.project-card:hover .project-live-demo{border-color:var(--live-demo-border)}@supports (color:color-mix(in lab, red, red)){.project-card:hover .project-live-demo{border-color:color-mix(in srgb, var(--live-demo-border) 85%, var(--live-demo-navy))}}.project-card:hover .project-live-demo{background:var(--live-demo-surface)}@supports (color:color-mix(in lab, red, red)){.project-card:hover .project-live-demo{background:color-mix(in srgb, var(--live-demo-surface) 75%, var(--live-demo-navy) 8%)}}.project-card:hover .project-live-demo{color:var(--live-demo-navy)}.project-card:hover .project-title-row>span:first-of-type,.project-card:hover>span{color:var(--foreground)}.experience-list{--timeline-x:12px;--card-offset:32px;--dot-size:10px;gap:1.2rem;padding-left:0;display:grid;position:relative}.experience-list:before{content:"";left:var(--timeline-x);background:linear-gradient(#787d7873,#787d7824);width:1px;position:absolute;top:.3rem;bottom:.3rem}.exp-item{margin-left:var(--card-offset);color:inherit;background:0 0;border:1px solid #0000;border-radius:14px;padding:.9rem;text-decoration:none;transition:border-color .18s,background-color .18s,color .18s;position:relative}.exp-item:hover,.exp-item:focus-visible{border-color:var(--border);background:var(--surface)}@supports (color:color-mix(in lab, red, red)){.exp-item:hover,.exp-item:focus-visible{background:color-mix(in srgb, var(--surface) 70%, transparent)}}.exp-dot{left:calc(var(--timeline-x) - var(--card-offset) - (var(--dot-size) / 2));width:var(--dot-size);height:var(--dot-size);border:2px solid var(--background);background:#828782bf;border-radius:999px;position:absolute;top:1.05rem;box-shadow:0 0 0 1px #82878242}.exp-dot-current{background:var(--accent);box-shadow:0 0 0 1px #82878266}.exp-content h3{margin:.2rem 0 0;font-size:1.2rem;line-height:1.25}.exp-org{color:var(--foreground);font-weight:500}.exp-period-row{justify-content:space-between;align-items:center;gap:.65rem;width:100%;display:flex}.exp-link-icon{color:var(--muted);flex-shrink:0;justify-content:center;align-items:center;transition:color .18s;display:inline-flex}.exp-item:hover .exp-link-icon{color:var(--foreground)}.exp-period{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:.78rem}.exp-location{color:var(--muted);margin:.25rem 0 0;font-size:.96rem}.exp-content p{color:var(--muted);margin:.46rem 0 0;transition:color .18s}.exp-content .exp-period-row .exp-period{flex:1;min-width:0;margin:0}.exp-content h3,.exp-location{transition:color .18s}.exp-item:hover .exp-content h3,.exp-item:hover .exp-link-icon,.exp-item:hover .exp-location,.exp-item:hover .exp-content p{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.exp-item:hover .exp-location,.exp-item:hover .exp-content p{color:color-mix(in srgb, var(--foreground) 72%, var(--muted))}}.exp-skills{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.exp-chip{font-size:.82rem}.contact-section .contact-lead{max-width:52ch;margin-top:.5rem;margin-bottom:0}.contact-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;gap:clamp(1rem,2vw,1.35rem);margin-top:clamp(1.25rem,2vw,1.75rem);display:grid}.contact-column-primary{flex-direction:column;align-items:stretch;gap:clamp(1rem,2.2vw,1.5rem);width:100%;min-width:0;display:flex}.contact-resume-wrap.cta-group{flex-shrink:0;justify-content:flex-start;align-items:flex-start;width:100%;margin-top:0}@media (min-width:901px){.contact-column-primary{align-self:stretch;gap:0;height:100%;min-height:0}.contact-card.contact-card-details{flex:auto;min-height:0}.contact-resume-wrap.cta-group{margin-top:auto;padding-top:clamp(1.1rem,2.4vw,1.75rem)}}.contact-card{border:1px solid var(--border);background:var(--surface);border-radius:18px;padding:clamp(1rem,1.5vw,1.35rem)}@supports (color:color-mix(in lab, red, red)){.contact-card{background:color-mix(in srgb, var(--surface) 65%, transparent)}}.contact-card.contact-card-details{flex-direction:column;width:100%;min-width:0;display:flex}.contact-card-title{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 0 1rem;font-size:.72rem;font-weight:600}.contact-detail-list{gap:1.1rem;margin:0;padding:0;list-style:none;display:grid}.contact-detail-item{align-items:flex-start;gap:.85rem;display:flex}.contact-detail-icon-wrap{border:1px solid var(--border-soft);background:var(--background);border-radius:12px;flex-shrink:0;place-items:center;width:44px;height:44px;display:grid}@supports (color:color-mix(in lab, red, red)){.contact-detail-icon-wrap{background:color-mix(in srgb, var(--background) 85%, var(--surface))}}.contact-detail-icon-wrap{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.contact-detail-icon-wrap{color:color-mix(in srgb, var(--foreground) 72%, var(--muted))}}.contact-detail-icon-wrap svg{display:block}.contact-detail-body{flex:1;gap:.28rem;min-width:0;display:grid}.contact-detail-label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:.72rem}.contact-detail-value{color:var(--foreground);font-size:.98rem;line-height:1.45}.contact-detail-phones{flex-wrap:wrap;align-items:center;gap:.35rem;display:inline-flex}.contact-detail-phones a{color:inherit;border-bottom:1px solid var(--foreground);text-decoration:none}@supports (color:color-mix(in lab, red, red)){.contact-detail-phones a{border-bottom:1px solid color-mix(in srgb, var(--foreground) 25%, transparent)}}.contact-detail-phones a{transition:border-color .15s,color .15s}.contact-detail-phones a:hover{border-bottom-color:var(--foreground)}.contact-detail-sep{color:var(--muted);-webkit-user-select:none;user-select:none}.contact-detail-link{color:var(--foreground);border-bottom:1px solid var(--foreground);text-decoration:none}@supports (color:color-mix(in lab, red, red)){.contact-detail-link{border-bottom:1px solid color-mix(in srgb, var(--foreground) 28%, transparent)}}.contact-detail-link{width:fit-content;transition:border-color .15s}.contact-detail-link:hover{border-bottom-color:var(--foreground)}.contact-social-grid{gap:.5rem;display:grid}.contact-social-main{flex-direction:column;flex:1;align-items:flex-start;gap:.2rem;min-width:0;display:flex}.contact-social-icon-wrap{border:1px solid var(--border-soft);background:var(--background);border-radius:10px;flex-shrink:0;place-items:center;width:40px;height:40px;display:grid}@supports (color:color-mix(in lab, red, red)){.contact-social-icon-wrap{background:color-mix(in srgb, var(--background) 92%, var(--surface))}}.contact-social-icon-wrap svg{display:block}.contact-social-link--github .contact-social-icon-wrap{color:var(--foreground)}.contact-social-link{border:1px solid var(--border-soft);background:var(--background);border-radius:12px;justify-content:flex-start;align-items:center;gap:.75rem;padding:.62rem .85rem;display:flex}@supports (color:color-mix(in lab, red, red)){.contact-social-link{background:color-mix(in srgb, var(--background) 88%, var(--surface))}}.contact-social-link{color:inherit;font-size:.94rem;text-decoration:none;transition:background-color .16s,border-color .16s,transform .16s}.contact-social-link:hover{border-color:var(--border);background:#7f7f7f1a;transform:translateY(-1px)}.contact-social-name{font-weight:600}.contact-social-hint{color:var(--muted);flex-shrink:0;font-size:.85rem}.contact-social-link:hover .contact-social-hint{color:var(--foreground)}.reveal{opacity:0;animation:.58s forwards reveal-up;transform:translateY(8px)}@keyframes reveal-up{to{opacity:1;transform:translateY(0)}}@media (max-width:900px){.site-nav{top:max(.5rem, var(--page-gutter))}.site-links{gap:.2rem}.site-links a{padding:.25rem .55rem;font-size:.84rem}.toggle-track{width:42px;height:24px}.toggle-thumb{width:14px;height:14px;top:4px}.theme-toggle[aria-pressed=true] .toggle-thumb{transform:translate(18px)}.landing-hero{min-height:min(76vh,660px);padding-top:clamp(3.3rem,8vh,4.7rem);padding-bottom:clamp(4rem,8vh,5.2rem)}.content-shell{border-radius:34px 34px 0 0}.content-inner{padding-inline:clamp(.9rem,2.4vw,1.2rem)}.cards-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.skills-row-top,.skills-cert-grid,.contact-layout{grid-template-columns:1fr}.exp-content h3{font-size:1.1rem}}@media (max-width:768px){.nav-menu-toggle{justify-content:center;align-items:center;display:inline-flex}.site-nav{flex-wrap:wrap;align-items:stretch}.site-nav-leading{justify-content:space-between;width:100%}.site-links{border:1px solid var(--border);background:var(--surface);border-radius:12px;flex-direction:column;flex-basis:100%;align-self:stretch;align-items:stretch;gap:.25rem;width:100%;margin:.55rem 0 0;padding:.55rem .65rem;display:none}@supports (color:color-mix(in lab, red, red)){.site-links{background:color-mix(in srgb, var(--surface) 88%, transparent)}}.site-links{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-shadow:var(--shadow)}.site-nav.is-scrolled .site-links{background:var(--surface)}@supports (color:color-mix(in lab, red, red)){.site-nav.is-scrolled .site-links{background:color-mix(in srgb, var(--surface) 92%, transparent)}}.site-nav.nav-open .site-links{display:flex}.site-links a{border-radius:10px;justify-content:flex-start;width:100%;padding:.45rem .65rem}.site-theme-toggle{align-self:center;margin-left:0}}@media (max-width:640px){:root{--page-gutter:.8rem}body{background-size:100% min(56vh, 460px), var(--hero-grid-size) var(--hero-grid-size), var(--hero-grid-size) var(--hero-grid-size)}.hero-lead{font-size:.98rem}.content-inner{padding-inline:.9rem}.about-section{grid-template-columns:1fr}.about-media{margin-inline:auto}.cards-grid{grid-template-columns:1fr}.skills-pill{padding:.36rem .65rem;font-size:.81rem}.skills-pill img,.skills-fallback-icon{width:14px;height:14px}.skills-cert-card{border-radius:16px;min-height:3.65rem;padding:.85rem 1rem;font-size:.88rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important}.site-nav,.site-mark,.site-links a,.nav-menu-toggle,.hero-scroll,.cta-group>.btn,.card,.exp-item{transition:none!important}}
