/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@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{.visible{visibility:visible}.relative{position:relative}.start{inset-inline-start:var(--spacing)}.block{display:block}.hidden{display:none}.table{display:table}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}:root,html[data-theme=dark]{--bg:#070b12;--bg-elevated:#0c121c;--bg-panel:#101826;--bg-deep:#081018;--bg-header:#070b12eb;--text:#e8eef7;--text-muted:#b7c3d4;--text-soft:#9aabc0;--line:#9ab4d229;--line-strong:#9ab4d247;--accent:#3ec8ff;--accent-strong:#7ddcff;--accent-dim:#3ec8ff1f;--accent-ink:#06202b;--logo-mark:#102033;--logo-letter:#e8eef7;--backdrop:#03070c9e;--portrait-bg:#152033;--header-h:4.25rem;--gutter:clamp(1.15rem, 4.6vw, 2rem);--wrap:70rem;--radius:.85rem;--font:"Segoe UI", "Helvetica Neue", ui-sans-serif, system-ui, -apple-system, sans-serif;--mono:ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--shadow:0 18px 40px #00000047;--focus:0 0 0 2px var(--bg), 0 0 0 4px var(--accent-strong)}html[data-theme=light]{--bg:#f4f7fb;--bg-elevated:#e8eef5;--bg-panel:#fff;--bg-deep:#e4ebf3;--bg-header:#f4f7fbeb;--text:#102033;--text-muted:#3d4f63;--text-soft:#5a6d82;--line:#1020331f;--line-strong:#10203338;--accent:#0b6f99;--accent-strong:#095a7c;--accent-dim:#0b6f991f;--accent-ink:#f4f7fb;--logo-mark:#102033;--logo-letter:#f4f7fb;--backdrop:#10203373;--portrait-bg:#d7e0ea;--shadow:0 18px 40px #10203314}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + env(safe-area-inset-top,0px) + .75rem);background:var(--bg);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}body{background:var(--bg);min-width:320px;color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:1rem;line-height:1.65}body.menu-open{overflow:hidden}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}p,h1,h2,h3,ul,ol,dl,dd{margin:0}h1,h2,h3{overflow-wrap:break-word;text-wrap:balance;letter-spacing:-.03em;font-weight:650;line-height:1.15}:focus-visible{outline:2px solid var(--accent-strong);outline-offset:3px}::selection{background:var(--accent);color:var(--accent-ink)}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{left:max(1rem, env(safe-area-inset-left));z-index:1000;background:var(--accent);color:var(--accent-ink);min-height:44px;padding:.75rem 1rem;font-weight:700;position:fixed;top:-5rem}.skip-link:focus{top:max(.75rem, env(safe-area-inset-top))}.wrap{width:min(var(--wrap), calc(100% - (2 * var(--gutter))));margin-inline:auto}.icon{flex:none}.eyebrow{color:var(--accent);font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;margin:0 0 .85rem;font-size:.75rem;font-weight:650}.section{scroll-margin-top:calc(var(--header-h) + env(safe-area-inset-top,0px) + .75rem);padding-block:4.5rem}.section-heading{max-width:42rem;margin-bottom:2rem}.section-heading h2,.about-grid h2,.achievement h2,.contact-copy h2{margin-bottom:.85rem;font-size:clamp(1.5rem,3.4vw,2.05rem)}.section-lede,.about-copy p,.contact-intro{color:var(--text-muted);font-size:1rem;line-height:1.7}.site-header{z-index:50;background:var(--bg-header);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top,0px);position:sticky;top:0}.topbar{height:var(--header-h);width:min(var(--wrap), calc(100% - (2 * var(--gutter))));align-items:center;gap:1rem;margin:auto;display:flex}.brand-link{align-items:center;min-height:44px;margin-right:auto;display:inline-flex}.site-logo{align-items:center;gap:.7rem;display:inline-flex}.site-logo-mark{width:36px;height:36px;fill:var(--logo-mark)}.site-logo-letter{fill:var(--logo-letter)}.site-logo-accent{fill:none;stroke:var(--accent);stroke-width:4px}.site-logo-wordmark{letter-spacing:-.03em;font-size:1.05rem;font-weight:750}.nav-links{align-items:center;gap:.15rem;margin:0;padding:0;list-style:none;display:none}.nav-links a,.nav-cta,.text-link,.menu-close,.footer a{align-items:center;gap:.4rem;min-height:44px;display:inline-flex}.nav-links a,.nav-cta,.text-link{color:var(--text-muted);padding:0 .7rem;font-size:.92rem;font-weight:600}.nav-links a:hover,.nav-cta:hover,.text-link:hover,.nav-links a:focus-visible,.nav-cta:focus-visible,.text-link:focus-visible{color:var(--text)}.nav-cta{border:1px solid var(--line-strong);color:var(--text);border-radius:999px;display:none}.theme-toggle{border:1px solid var(--line-strong);width:44px;height:44px;color:var(--text);cursor:pointer;background:0 0;border-radius:.7rem;flex:none;justify-content:center;align-items:center;display:inline-flex}.theme-toggle:hover,.theme-toggle:focus-visible{background:var(--accent-dim);color:var(--text)}.theme-toggle-labeled{gap:.5rem;width:auto;min-height:44px;padding:0 .9rem;font-weight:650}.mobile-theme{border-top:1px solid var(--line);margin-top:.55rem;padding-top:.85rem}.menu-toggle{border:1px solid var(--line-strong);cursor:pointer;background:0 0;border-radius:.7rem;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex}.menu-toggle-bars{gap:5px;width:18px;display:grid}.menu-toggle-bars span{background:var(--text);height:2px;transition:transform .2s,opacity .2s;display:block}.menu-toggle[aria-expanded=true] .menu-toggle-bars span:first-child{transform:translateY(7px)rotate(45deg)}.menu-toggle[aria-expanded=true] .menu-toggle-bars span:nth-child(2){opacity:0}.menu-toggle[aria-expanded=true] .menu-toggle-bars span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.nav-backdrop{z-index:40;background:var(--backdrop);cursor:pointer;border:0;position:fixed;inset:0}img[hidden],div[hidden],section[hidden],.mobile-nav[hidden]{display:none!important}.mobile-nav{left:var(--gutter);right:var(--gutter);top:calc(var(--header-h) + env(safe-area-inset-top,0px) + .55rem);z-index:45;position:absolute}.mobile-nav-panel{background:var(--bg-panel);border:1px solid var(--line-strong);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem 1rem 1.1rem}.mobile-nav-top{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.4rem;display:flex}.mobile-nav-label{color:var(--text-soft);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;font-size:.75rem}.menu-close{color:var(--text);cursor:pointer;background:0 0;border:0;font-weight:650}.mobile-nav ul{margin:0;padding:0;list-style:none}.mobile-nav a{border-top:1px solid var(--line);align-items:center;min-height:48px;padding:0 .35rem;font-weight:650;display:flex}.mobile-nav-contact{color:var(--accent-strong)}.hero{scroll-margin-top:calc(var(--header-h) + env(safe-area-inset-top,0px) + .75rem);gap:2.2rem;padding-block:2.4rem 3.2rem;display:grid}.availability{color:var(--text-muted);align-items:center;gap:.55rem;margin-bottom:1.1rem;font-size:.92rem;display:inline-flex}.availability-dot{background:#5ee0a0;border-radius:50%;width:.55rem;height:.55rem;box-shadow:0 0 0 5px #5ee0a024}.hero h1{margin:.15rem 0 1rem;font-size:clamp(2.05rem,8vw,3.4rem)}.hero-intro{max-width:40rem;color:var(--text-muted);font-size:1.05rem;line-height:1.7}.tech-row{flex-wrap:wrap;gap:.5rem;margin:1.2rem 0 0;padding:0;list-style:none;display:flex}.tech-row li,.chips li,.skill-list li{border:1px solid var(--line);color:var(--text-muted);white-space:nowrap;border-radius:999px;padding:.4rem .7rem;font-size:.84rem;font-weight:600}.hero-actions{flex-wrap:wrap;align-items:center;gap:.65rem .85rem;margin-top:1.4rem;display:flex}.button{border-radius:999px;justify-content:center;align-items:center;gap:.55rem;min-height:44px;padding:0 1.05rem;font-size:.95rem;font-weight:700;transition:background .18s,border-color .18s,transform .18s;display:inline-flex}.button-primary{background:var(--accent);color:var(--accent-ink)}.button-primary:hover,.button-primary:focus-visible{background:var(--accent-strong)}.button-secondary{border:1px solid var(--line-strong);color:var(--text);background:0 0}.button-secondary:hover,.button-secondary:focus-visible{border-color:var(--accent);background:var(--accent-dim)}.hero-card{background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--radius);max-width:22rem;padding:.7rem}.portrait-wrap{aspect-ratio:1;background:var(--portrait-bg);border-radius:calc(var(--radius) - .35rem);overflow:hidden}.portrait-wrap img{object-fit:cover;object-position:center 12%;width:100%;height:100%}.profile-meta{padding:.2rem .35rem .15rem}.profile-meta>div{border-top:1px solid var(--line);justify-content:space-between;gap:1rem;padding:.8rem 0;display:flex}.profile-meta dt{color:var(--text-soft);letter-spacing:.06em;text-transform:uppercase;font-size:.78rem}.profile-meta dd{text-align:right;font-size:.92rem;font-weight:700}.facts{border-block:1px solid var(--line);background:var(--bg-elevated)}.fact-grid{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.fact-grid>div{min-width:0;padding:1.35rem .9rem 1.35rem 0}.fact-grid>div:nth-child(2n){border-left:1px solid var(--line);padding-left:.95rem}.fact-grid>div:nth-child(n+3){border-top:1px solid var(--line)}.fact-grid dd{color:var(--text);letter-spacing:-.04em;margin-bottom:.25rem;font-size:1.55rem;font-weight:700;display:block}.fact-grid dt{color:var(--text-muted);font-size:.88rem}.company-logo{border:1px solid var(--line);background:#fffffff0;border-radius:.7rem;flex:none;place-items:center;width:48px;height:48px;display:grid;overflow:hidden}.company-logo img{object-fit:contain;width:100%;height:100%;padding:.4rem}.company-logo>span{color:#1b2738;letter-spacing:-.04em;font-size:.82rem;font-weight:800}.brand-showcase{border-bottom:1px solid var(--line);padding:2.1rem 0 2.4rem}.brand-showcase-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem .8rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.showcase-brand{align-items:center;gap:.7rem;min-width:0;display:flex}.showcase-logo{width:40px;height:40px}.hero-copy,.project-content,.about-copy,.contact-copy,.experience-row>div{min-width:0}.showcase-brand>span{color:var(--text-muted);overflow-wrap:break-word;font-size:.9rem;font-weight:650}.about-grid{gap:1.4rem;display:grid}.about-copy{gap:1rem;max-width:42rem;display:grid}.expertise-section{background:var(--bg-deep);border-block:1px solid var(--line)}.expertise-grid{gap:.9rem;display:grid}.expertise-card,.project,.education-card,.achievement,.contact-card{background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--radius)}.expertise-card{padding:1.3rem 1.2rem 1.35rem}.expertise-card h3,.project h3,.experience-row h3,.education-card h3{letter-spacing:-.03em;margin-bottom:.45rem;font-size:1.15rem}.expertise-card p,.project-content>p,.job-summary,.education-card p,.achievement p{color:var(--text-muted)}.skill-list,.chips{flex-wrap:wrap;gap:.45rem;margin:1rem 0 0;padding:0;list-style:none;display:flex}.project-list,.education-list,.timeline{gap:.9rem;padding:0;list-style:none;display:grid}.project{gap:.85rem;padding:1.25rem 1.15rem 1.35rem;transition:border-color .18s,transform .18s;display:grid}.project:hover,.project:focus-within{border-color:var(--line-strong);transform:translateY(-2px)}.project-number{color:var(--accent);font-family:var(--mono);letter-spacing:.08em;font-size:.78rem}.project-heading,.job-heading{align-items:center;gap:.85rem;margin-bottom:.7rem;display:flex}.project-logo,.job-logo,.achievement-logo{width:44px;height:44px}.project-type,.role,.education-detail,.education-status,.job-period span,.job-location,.contact-card-label{color:var(--text-soft);font-size:.86rem}.project-type{text-transform:none;margin-bottom:.2rem}.achievement-section{padding:1rem 0 .25rem}.achievement{gap:1.1rem;margin-top:.4rem;padding:1.4rem 1.2rem 1.5rem;display:grid}.achievement-brands{align-items:center;gap:.7rem;display:flex}.achievement-brands>span{color:var(--text-soft)}.timeline{border-left:2px solid var(--line);gap:0}.experience-row{border-bottom:1px solid var(--line);gap:.7rem;padding:1.25rem 0 1.35rem 1.15rem;display:grid;position:relative}.experience-row:before{content:"";background:var(--accent);border-radius:50%;width:8px;height:8px;position:absolute;top:1.55rem;left:-5px}.job-period{gap:.2rem;display:grid}.job-period span{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-size:.75rem}.job-period strong,.education-status{font-weight:650}.education-card{grid-template-columns:3rem 1fr;align-items:start;gap:.9rem 1rem;padding:1.15rem;display:grid}.education-mark{background:var(--accent-dim);width:3rem;height:3rem;color:var(--accent-strong);border-radius:.7rem;place-items:center;font-weight:800;display:grid}.education-status{grid-column:2}.contact-section{background:var(--bg-elevated);border-top:1px solid var(--line);scroll-margin-top:calc(var(--header-h) + env(safe-area-inset-top,0px) + .75rem);padding-block:4.2rem 3.4rem}.contact-grid{gap:1.6rem;display:grid}.contact-card{gap:.65rem;padding:1.3rem 1.2rem 1.4rem;font-style:normal;display:grid}.contact-card a{color:var(--text);overflow-wrap:anywhere;align-items:center;min-height:44px;font-weight:700;display:inline-flex}.contact-card a:hover,.contact-card a:focus-visible{color:var(--accent-strong)}.social-links{border-top:1px solid var(--line);flex-wrap:wrap;gap:.4rem 1rem;margin-top:.5rem;padding-top:.85rem;display:flex}.social-links a{color:var(--text-muted);font-weight:650}.footer{border-top:1px solid var(--line);padding:1.1rem 0 calc(1.2rem + env(safe-area-inset-bottom,0px))}.footer-bar{color:var(--text-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.65rem 1.2rem;font-size:.9rem;display:flex}@media (width>=640px){.brand-showcase-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.hero-card{max-width:24rem}}@media (width>=768px){.hero{grid-template-columns:minmax(0,1.3fr) minmax(16rem,.7fr);align-items:center;gap:3rem;padding-block:3.4rem 4rem}.fact-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.fact-grid>div,.fact-grid>div:nth-child(2n),.fact-grid>div:nth-child(n+3){border-top:0;border-left:1px solid var(--line);padding:1.6rem 1.1rem}.fact-grid>div:first-child{border-left:0;padding-left:0}.brand-showcase-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.expertise-grid,.project-list{grid-template-columns:1fr}.education-card{grid-template-columns:3.4rem 1fr auto;align-items:center}.education-status{grid-column:auto}.contact-grid{grid-template-columns:minmax(0,1.3fr) minmax(16rem,.7fr);align-items:start;gap:2.5rem}}@media (width>=900px){.nav-links{display:flex}.nav-cta{display:inline-flex}.menu-toggle,.mobile-nav,.nav-backdrop{display:none}}@media (width>=1024px){.section{padding-block:5.5rem}.section-heading{margin-bottom:2.4rem}.about-grid{grid-template-columns:minmax(16rem,.8fr) minmax(0,1.2fr);align-items:start;gap:3rem}.expertise-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.experience-row{grid-template-columns:10.5rem minmax(0,1fr) 10rem;align-items:start;gap:1.4rem}.job-location{text-align:right}.hero-card{justify-self:end;width:100%}}@media (width>=1280px){.project{grid-template-columns:3.5rem minmax(0,1fr);align-items:start;padding:1.5rem 1.6rem}}@media (width<=380px){.hero-actions .button{width:100%}.tech-row li,.chips li,.skill-list li{white-space:normal}.brand-showcase-grid{grid-template-columns:1fr;gap:.8rem}}.achievement-link{margin-top:1rem;padding-left:0}.case-brands{margin:.4rem 0 1rem}.resume-page h1,.case-page h1,.not-found h1{margin-bottom:.55rem;font-size:clamp(2rem,6vw,3rem)}.resume-role,.resume-meta{color:var(--text-soft);margin-bottom:.85rem}.resume-actions{margin-bottom:2.4rem}.resume-block{border-top:1px solid var(--line);margin-top:2rem;padding-top:1.4rem}.resume-block h2{margin-bottom:.9rem;font-size:1.2rem}.resume-list{gap:1.15rem;margin:0;padding:0;list-style:none;display:grid}.resume-list h3{margin-bottom:.25rem;font-size:1.05rem}.resume-contact{flex-wrap:wrap;gap:.4rem 1.2rem;margin:0;padding:0;list-style:none;display:flex}.resume-contact a{align-items:center;min-height:44px;font-weight:650;display:inline-flex}@media print{.skip-link,.site-header,.footer,.resume-actions,.theme-toggle,.menu-toggle,.nav-backdrop,.mobile-nav{display:none!important}html,body,.resume-page,.wrap,.resume-shell,.resume-block{color:#111!important;box-shadow:none!important;background:#fff!important}a{color:inherit!important}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}
