/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:"Inter", "Segoe UI", Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--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%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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;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:where(:not(iframe)){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]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance: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}.static{position:static}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.contents{display:contents}.hidden{display:none}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}:root{font-family:var(--font-sans);color:#152b43;font-synthesis:none;-webkit-font-smoothing:antialiased;background:#fff;font-size:15px;font-weight:400;line-height:1.6}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button{color:inherit}button:disabled{cursor:default}button,a{touch-action:manipulation}::selection{background:#d6e5f0}h1,h2,h3,p{margin:0}h1,h2,h3{letter-spacing:-.035em;line-height:1.2}img{max-width:100%;display:block}a,button{outline-offset:5px}a:focus-visible,button:focus-visible{outline:2px solid #628bb0}.container{width:calc(100% - 112px);max-width:1168px;margin-inline:auto}.eyebrow{letter-spacing:.15em;align-items:center;gap:15px;font-size:10px;font-weight:650;line-height:1.6;display:flex}.eyebrow>span:first-child:not(.small-dot):not(.tiny-line){color:#8796a6;letter-spacing:.03em}.section{padding:93px 0}.section-heading{justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:42px;display:flex}.section-heading h2,.about-grid h2{max-width:550px;margin-top:18px;font-size:36px;font-weight:500;line-height:1.25}.section-side-note{color:#77818c;font-size:13px;line-height:1.7}.small-dot{background:#5b8b78;border-radius:50%;flex-shrink:0;width:6px;height:6px;display:inline-block}.site-header{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:30;background:#fffffff7;border-bottom:1px solid #e9edf1;height:82px;position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;height:100%;display:flex}.brand{letter-spacing:-.015em;align-items:center;gap:12px;font-size:14px;font-weight:600;display:flex}.monogram{color:#fff;letter-spacing:-.04em;background:#152b43;border-radius:3px;place-content:center;width:35px;height:35px;font-size:13px;font-weight:600;display:grid;position:relative}.monogram>span{color:#a8c1d2;position:absolute;bottom:5px;right:5px}.desktop-nav{color:#637080;gap:31px;font-size:12px;display:flex}.desktop-nav a{transition:color .2s}.desktop-nav a:hover,.desktop-nav a.active{color:#122c45}.header-actions{align-items:center;gap:14px;display:flex}.header-contact{align-items:center;gap:17px;font-size:12px;font-weight:600;display:flex}.icon-button{background:0 0;border:0;flex-shrink:0;justify-content:center;align-items:center;padding:9px;display:inline-flex}.menu-toggle,.mobile-nav{display:none}.hero{background:linear-gradient(110deg,#fff 30%,#f7f9fb);border-bottom:1px solid #e8edf1;padding-top:73px}.hero-grid{grid-template-columns:1.3fr 1fr;align-items:center;gap:108px;display:grid}.hero-copy{padding-bottom:4px}.tiny-line{background:#72879b;width:26px;height:1px}.hero h1{letter-spacing:-.065em;margin-top:24px;font-size:78px;font-weight:530;line-height:1.14}.hero h1>span{color:#7a98af}.hero h2{letter-spacing:-.025em;max-width:425px;margin-top:18px;font-size:28px;font-weight:400;line-height:1.35}.hero-description{color:#6a7581;max-width:460px;margin-top:21px;font-size:15px;line-height:1.85}.hero-buttons{gap:12px;margin-top:29px;display:flex}.button{white-space:nowrap;border-radius:4px;justify-content:center;align-items:center;gap:12px;min-height:46px;padding:13px 21px;font-size:12px;font-weight:550;transition:transform .2s,background .2s;display:inline-flex}.button:hover{transform:translateY(-2px)}.primary{color:#fff;background:#152b43;border:1px solid #152b43}.primary:hover{background:#274664}.secondary{background:#fff;border:1px solid #dce2e8}.secondary:hover{background:#f1f5f8}.hero-affiliation{color:#708296;align-items:center;gap:12px;margin-top:36px;display:flex}.hero-affiliation strong{color:#34485e;font-size:12px;font-weight:550;display:block}.hero-affiliation span{color:#84909c;margin-top:2px;font-size:11px;display:block}.portrait-area{padding:15px 0 0 15px;position:relative}.portrait-area:before{content:"";border:1px solid #dbe3e9;border-radius:3px;position:absolute;top:0;right:15px;bottom:36px;left:0}.portrait-frame{background:#c2cfe1;border-radius:3px;position:relative;overflow:hidden;box-shadow:0 14px 40px #203b5310}.portrait-frame img{object-fit:cover;object-position:50% 45%;width:100%;height:405px}.portrait-caption{color:#fff;letter-spacing:.14em;background:linear-gradient(#122a3d99,#122a3de8);justify-content:space-between;align-items:center;padding:19px 21px;font-size:8px;display:flex;position:absolute;bottom:0;left:0;right:0}.portrait-caption>span{align-items:center;gap:9px;display:flex}.portrait-caption .small-dot{background:#bdd5c9}.portrait-location{color:#667a8c;align-items:center;gap:6px;margin-top:16px;font-size:9px;display:flex}.portrait-location>span{color:#6e7e8c;letter-spacing:.07em;margin-left:auto;font-size:8px}.portrait-corner{color:#a3b3c1;font-size:22px;font-weight:200;position:absolute;top:-10px;right:-15px}.hero-bottom{color:#8a95a1;border-top:1px solid #e5eaf0;justify-content:space-between;align-items:center;margin-top:63px;padding-top:20px;padding-bottom:21px;font-size:11px;display:flex}.hero-bottom a{color:#4a6075;align-items:center;gap:28px;display:flex}.about-section{padding-bottom:75px}.about-grid{grid-template-columns:1fr 1.2fr;gap:94px;display:grid}.about-grid h2{max-width:380px;font-size:34px}.about-copy{color:#65717e;padding-top:1px;font-size:14px;line-height:1.95}.about-copy>p+p{margin-top:18px}.about-copy .personal-note{color:#7a8793;border-top:1px solid #e8edf1;gap:13px;margin-top:25px;padding-top:20px;font-size:12px;display:flex}.personal-note svg{flex-shrink:0;margin-top:4px}.blueprint-wrap{color:#a8baca;width:270px;margin-top:24px}.blueprint{width:100%;height:128px}.blueprint-wrap>span{text-align:center;letter-spacing:.15em;color:#6e7e8c;margin-top:6px;font-size:7px;display:block}.interest-heading{letter-spacing:.13em;color:#607386;border-bottom:1px solid #dfe6ec;justify-content:space-between;align-items:center;margin-top:58px;padding:0 0 16px;font-size:9px;display:flex}.interest-heading span:last-child{color:#8a96a1;letter-spacing:0;font-size:11px}.interest-grid{grid-template-columns:repeat(4,1fr);padding-top:24px;display:grid}.interest-grid article{border-right:1px solid #e7ecf0;padding:0 28px}.interest-grid article:first-child{padding-left:0}.interest-grid article:last-child{border:0;padding-right:0}.interest-top{color:#64839c;justify-content:space-between;align-items:center;display:flex}.interest-top>span{color:#6e7e8c;font-size:9px}.interest-grid h3{letter-spacing:-.02em;margin:21px 0 10px;font-size:14px;font-weight:550}.interest-grid p{color:#7d8893;font-size:11px;line-height:1.85}.education-section{background:#f7f9fb;border-top:1px solid #edf0f3;border-bottom:1px solid #edf0f3}.education-list{background:#fff;border:1px solid #e3e9ef;border-radius:5px;padding:0 33px}.education-item{gap:24px;padding:32px 0;display:flex}.education-item+.education-item{border-top:1px solid #e8edf1}.education-icon{color:#637f95;background:#f1f5f8;border:1px solid #e5ebf0;border-radius:4px;flex-shrink:0;place-items:center;width:46px;height:46px;display:grid}.education-content{flex:1}.education-top{justify-content:space-between;gap:24px;display:flex}.education-top h3{font-size:18px;font-weight:550;line-height:1.4}.institution{color:#57718a;margin-top:7px;font-size:13px}.education-date{color:#7d8893;white-space:nowrap;flex-direction:column;align-items:flex-end;gap:9px;font-size:10px;display:flex}.status{color:#507160;letter-spacing:0;background:#edf4f1;border:1px solid #dfeae4;border-radius:3px;align-items:center;gap:6px;padding:3px 8px;font-size:9px;font-weight:500;display:inline-flex}.muted-status{color:#81909d;background:#f4f6f8;border-radius:3px;padding:3px 8px}.education-description{color:#7a8590;max-width:720px;margin-top:16px;font-size:12px;line-height:1.9}.academic-detail,.coursework{margin-top:16px;font-size:12px}.academic-detail strong{margin-right:10px}.coursework .tags{margin-top:8px}.projects-section{padding-bottom:74px}.filter-row{gap:7px;margin-top:-12px;margin-bottom:27px;display:flex}.filter{color:#84909b;background:0 0;border:1px solid #0000;border-radius:3px;align-items:center;gap:10px;min-height:38px;padding:8px 12px;font-size:11px;display:flex}.filter.active{color:#29465f;background:#f0f4f7;border-color:#e4eaf0}.filter span{border-left:1px solid #cfd9e1;padding-left:10px;font-size:9px}.project-grid{grid-template-columns:repeat(3,1fr);gap:19px;display:grid}.featured-project{border:1px solid #dfe7ed;border-radius:5px;grid-column:1/-1;grid-template-columns:1.06fr 1fr;margin-bottom:3px;display:grid;overflow:hidden}.featured-visual{background:#e9eff3;flex-direction:column;justify-content:center;min-height:365px;padding:26px 35px 36px;display:flex;overflow:hidden}.visual-header{letter-spacing:.12em;color:#7690a6;justify-content:space-between;margin-bottom:29px;font-size:8px;display:flex}.meal-preview{pointer-events:none;background:#f9fbfc;border:1px solid #dbe4e9;border-radius:5px;min-height:237px;display:flex;transform:rotate(-2deg);box-shadow:0 15px 32px #24445f12}.mini-sidebar{background:#19394c;border-radius:4px 0 0 4px;flex-direction:column;align-items:center;gap:21px;width:42px;padding:13px 9px;display:flex}.mini-logo{color:#d7e6e5;background:#ffffff18;border-radius:4px;padding:5px}.mini-sidebar>span:not(.mini-logo){background:#73949e;border-radius:2px;width:13px;height:3px}.mini-content{flex:1;min-width:0;padding:14px 17px}.mini-top{color:#304c5d;justify-content:space-between;align-items:center;font-size:8px;font-weight:600;display:flex}.mini-avatar{color:#65847b;background:#e0eae6;border-radius:50%;place-items:center;width:17px;height:17px;font-size:6px;display:grid}.mini-welcome{letter-spacing:-.03em;color:#2e4959;margin-top:17px;font-size:13px;font-weight:550}.mini-welcome>span{letter-spacing:0;color:#8e9aa4;margin-top:3px;font-size:7px;font-weight:400;display:block}.mini-metrics{grid-template-columns:repeat(3,1fr);gap:7px;margin-top:14px;display:grid}.mini-metrics>div{color:#779289;background:#fff;border:1px solid #e5ebee;border-radius:3px;flex-direction:column;gap:6px;padding:9px 8px;display:flex}.mini-metrics span{color:#79909b;font-size:6px}.mini-metrics i{background:#d9e4e7;border-radius:2px;width:28px;height:3px}.mini-table{background:#fff;border:1px solid #e6ecef;border-radius:3px;margin-top:11px;padding:10px 8px}.mini-table>div{color:#5d7484;justify-content:space-between;margin-bottom:7px;font-size:7px;display:flex}.mini-table p{color:#79909b;border-top:1px solid #f1f4f6;justify-content:space-between;align-items:center;padding:5px 0;font-size:6px;display:flex}.mini-table p>span:first-child{align-items:center;gap:5px;display:flex}.mini-pill{color:#709382;background:#edf4ef;border-radius:2px;padding:2px 4px}.preview-caption{letter-spacing:.12em;color:#6e7e8c;margin-top:9px;font-size:5px;display:block}.featured-copy{flex-direction:column;justify-content:center;padding:36px 36px 30px;display:flex}.project-meta{color:#6e7e8c;justify-content:space-between;align-items:center;gap:10px;font-size:9px;display:flex}.featured-copy h3{margin-top:23px;font-size:29px;font-weight:500}.featured-copy>p{color:#78848f;margin-top:13px;font-size:13px;line-height:1.9}.tags{flex-wrap:wrap;gap:6px;display:flex}.tags>span{color:#6a7d8f;background:#f5f7f9;border:1px solid #e8edf1;border-radius:3px;padding:3px 8px;font-size:9px;line-height:1.6;display:inline-block}.featured-copy .tags{margin-top:22px}.text-button{text-align:left;background:0 0;border:0;border-top:1px solid #e7edf2;justify-content:space-between;align-items:center;gap:30px;margin-top:26px;padding:16px 0 0;font-size:11px;font-weight:600;display:inline-flex}.text-button:hover{color:#597f9b}.project-card{border:1px solid #e0e7ed;border-radius:5px;flex-direction:column;padding:25px 24px 14px;transition:box-shadow .2s,transform .2s;display:flex}.project-card:hover{transform:translateY(-3px);box-shadow:0 10px 25px #223e5010}.project-card-top{color:#6e7e8c;justify-content:space-between;align-items:center;font-size:9px;display:flex}.project-icon{color:#68849b}.project-card h3{margin-top:24px;font-size:19px;font-weight:500}.project-card>p{color:#7c8792;flex:1;margin-top:11px;margin-bottom:20px;font-size:12px;line-height:1.9}.project-card .tags{margin-bottom:25px}.project-card-bottom{color:#6e7e8c;border-top:1px solid #edf0f3;justify-content:space-between;align-items:center;gap:5px;padding-top:8px;font-size:9px;display:flex}.project-card-bottom .icon-button{color:#5f7a90;margin-right:-9px}.experience-row{border-top:1px solid #e3e9ee;grid-template-columns:1fr 1.4fr;gap:70px;margin-top:44px;padding-top:30px;display:grid}.experience-row .eyebrow{color:#8a99a7;font-size:8px}.experience-row h3{margin-top:13px;font-size:17px;font-weight:500}.experience-row>div>p:not(.eyebrow){color:#7d8893;font-size:12px;line-height:1.9}.experience-row .experience-date{margin-bottom:10px;color:#637c91!important;font-size:10px!important}.experience-date span{color:#a8b6c1;margin:0 7px}.experience-row .tags{margin-top:14px}.skills-section{background:#f7f9fb;border-top:1px solid #edf1f4;border-bottom:1px solid #edf1f4}.skills-grid{grid-template-columns:repeat(3,1fr);gap:39px;display:grid}.skills-grid article{border-top:1px solid #dbe4eb;padding-top:17px}.skill-number{color:#6e7e8c;font-size:9px}.skills-grid h3{letter-spacing:-.025em;margin-top:13px;font-size:17px;font-weight:500}.skills-grid p{color:#6e7e8c;margin-top:8px;margin-bottom:22px;font-size:10px}.skills-grid .tags{gap:8px}.skills-grid .tags>span{color:#64788c;background:#fff;padding:5px 9px;font-size:10px}.certification-row{border-top:1px solid #dfe7ed;align-items:center;gap:55px;margin-top:44px;padding-top:27px;display:flex}.certification-label{color:#6b879c;letter-spacing:.1em;flex-shrink:0;align-items:center;gap:13px;font-size:8px;display:flex}.certification-detail h3{letter-spacing:-.01em;font-size:13px;font-weight:500}.certification-detail p{color:#8c98a4;margin-top:6px;font-size:10px}.certification-detail p span{margin:0 7px}.certification-detail a{align-items:center;gap:8px;margin-top:10px;font-size:11px;display:flex}.contact-section{padding:75px 0 0}.contact-panel{color:#fff;background:#152b43;border-radius:5px;grid-template-columns:1.4fr 1fr;gap:70px;padding:53px 49px;display:grid;position:relative;overflow:hidden}.contact-copy{position:relative}.contact-copy .eyebrow{color:#a9becd;font-size:8px}.contact-copy .small-dot{background:#9fbaac}.contact-copy h2{max-width:450px;margin-top:19px;font-size:34px;font-weight:400;line-height:1.3}.contact-copy>p:not(.eyebrow){color:#a6b5c4;max-width:465px;margin-top:17px;font-size:12px;line-height:1.95}.contact-actions{align-items:center;gap:24px;margin-top:27px;display:flex}.white-button{color:#203b52;background:#fff;border:1px solid #fff;font-size:11px}.white-button:hover{background:#eaf0f5}.contact-cv{color:#c4d0da;align-items:center;gap:10px;font-size:10px;display:flex}.contact-details{border-left:1px solid #ffffff1f;align-self:center;min-width:0;padding-left:35px;position:relative}.contact-details>svg{color:#a4bbcc}.contact-details>p{color:#91a7ba;letter-spacing:.15em;margin-top:20px;font-size:8px}.email-line{align-items:center;gap:9px;margin-top:5px;display:flex}.email-line>a{overflow-wrap:anywhere;font-size:13px}.copy-button{color:#8ea5b9;padding:5px}.copy-status{color:#7f98ad;min-height:18px;margin-top:5px;font-size:10px;display:block}.contact-socials{gap:22px;margin-top:27px;display:flex}.contact-socials a{color:#becbd5;align-items:center;gap:15px;font-size:11px;display:flex}.contact-orbit{border:1px solid #ffffff05;border-radius:50%;width:520px;height:520px;position:absolute;top:-260px;right:-200px;box-shadow:0 0 0 58px #ffffff02,0 0 0 120px #ffffff02}.site-footer{color:#6e7e8c;justify-content:space-between;align-items:center;gap:20px;padding:29px 0;font-size:9px;display:flex}.footer-name{color:#52677b;letter-spacing:-.035em;font-size:13px;font-weight:600}.footer-name span{color:#98aebb}.site-footer>a:last-child{color:#758798;align-items:center;gap:10px;display:flex}.skip-link{z-index:100;color:#fff;background:#152b43;padding:12px;position:fixed;top:-100px;left:20px}.skip-link:focus{top:10px}.modal-backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:60;background:#0e223c80;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;top:0;right:0;bottom:0;left:0}.project-modal{background:#fff;border-radius:8px;width:100%;max-width:650px;max-height:88dvh;padding:45px;position:relative;overflow-y:auto;box-shadow:0 25px 100px #0003}.modal-close{color:#7a8998;position:absolute;top:15px;right:15px}.project-modal .eyebrow{color:#7c8f9f;padding-right:16px;font-size:9px}.project-modal h2{margin-top:17px;font-size:32px;font-weight:500}.modal-subtitle{color:#8293a0;margin-top:9px;font-size:14px}.project-modal>.status{margin-top:15px}.project-modal>p:not(.eyebrow):not(.modal-subtitle){color:#6b7a87;margin-top:18px;font-size:13px;line-height:1.9}.project-modal h3{letter-spacing:0;margin-top:25px;font-size:14px;font-weight:600}.project-modal ul{color:#6b7a87;margin-top:12px;padding-left:18px;font-size:13px;line-height:1.9}.project-modal li+li{margin-top:8px}.project-modal>.tags{margin-top:23px}.modal-links{gap:10px;margin-top:25px;display:flex}@media(min-width:1450px){.hero{padding-top:88px}.hero-grid{gap:130px}.portrait-frame img{height:430px}.hero-bottom{margin-top:75px}.hero h1{font-size:86px}}@media(max-width:1100px){.container{width:calc(100% - 70px)}.hero-grid{grid-template-columns:1.18fr 1fr;gap:55px}.hero h1{font-size:66px}.hero h2{font-size:25px}.portrait-frame img{height:380px}.hero-description{font-size:14px}.about-grid{gap:50px}.featured-copy{padding:25px}.featured-visual{padding:24px}.contact-panel{gap:35px;padding:42px 35px}.contact-details{padding-left:25px}.contact-actions{gap:18px}.skills-grid{gap:25px}.education-top h3{font-size:16px}}@media(max-width:800px){.container{width:calc(100% - 48px)}.desktop-nav{gap:20px}.hero{padding-top:52px}.hero-grid{gap:35px}.hero h1{font-size:53px}.hero h2{font-size:23px}.hero .eyebrow{gap:9px;font-size:8px}.hero-description{font-size:13px}.hero-buttons{gap:9px}.button{padding:11px 15px;font-size:11px}.portrait-frame img{height:340px}.portrait-caption{padding:17px 12px;font-size:6px}.portrait-location>span{display:none}.hero-affiliation{margin-top:25px}.hero-bottom{margin-top:45px}.section{padding:70px 0}.section-heading h2,.about-grid h2{font-size:29px}.section-heading{gap:20px}.about-grid{grid-template-columns:1fr 1.1fr;gap:35px}.about-copy{font-size:12px}.blueprint-wrap{width:220px}.interest-grid article{padding:0 16px}.interest-grid h3{font-size:12px}.interest-grid p{font-size:10px}.education-list{padding:0 23px}.education-item{gap:17px}.education-top{display:block}.education-date{white-space:normal;flex-direction:row;align-items:center;margin-top:13px}.project-grid{grid-template-columns:repeat(2,1fr)}.featured-project{grid-template-columns:1fr}.featured-visual{min-height:310px;padding:25px 55px}.meal-preview{align-self:center;width:100%;max-width:450px}.featured-copy{padding:28px}.featured-copy h3{margin-top:18px}.project-card:last-child{grid-column:1/-1}.project-card:last-child>p{max-width:600px}.skills-grid{grid-template-columns:1fr 1fr;gap:30px}.skills-grid article:last-child{grid-column:1/-1}.certification-row{flex-direction:column;align-items:flex-start;gap:25px}.contact-panel{grid-template-columns:1fr;gap:35px}.contact-details{border-top:1px solid #ffffff1f;border-left:0;padding:27px 0 0}.contact-details>svg{display:none}.contact-details>p{margin-top:0}.contact-copy>p:not(.eyebrow){max-width:560px}.contact-socials{margin-top:18px}.contact-section{padding-top:55px}.experience-row{grid-template-columns:1fr 1.3fr;gap:30px}}@media(max-width:600px){.container{width:calc(100% - 40px)}.site-header{height:68px}.brand{gap:10px;font-size:13px}.monogram{width:32px;height:32px;font-size:12px}.desktop-nav{display:none}.header-contact{gap:8px;font-size:10px}.menu-toggle{margin-right:-7px;padding:7px;display:inline-flex}.menu-toggle svg{width:21px}.mobile-nav{background:#fff;border-bottom:1px solid #dce4eb;flex-direction:column;padding:12px 20px 20px;display:flex;position:absolute;top:68px;left:0;right:0;box-shadow:0 15px 25px #15304910}.mobile-nav a{border-bottom:1px solid #f0f3f5;justify-content:space-between;padding:12px 0;font-size:13px;display:flex}.hero{padding-top:40px}.hero-grid{grid-template-columns:1fr;gap:35px}.hero h1{margin-top:20px;font-size:62px}.hero h2{max-width:320px;margin-top:13px;font-size:25px}.hero .eyebrow{font-size:8px}.hero-description{max-width:460px;margin-top:18px;font-size:13px;line-height:1.9}.hero-buttons{margin-top:23px}.hero-buttons .button{min-height:46px;padding:11px 19px;font-size:11px}.hero-affiliation{margin-top:27px}.hero-affiliation strong{font-size:11px}.hero-affiliation span{font-size:10px}.portrait-area{justify-self:center;width:100%;max-width:430px;padding:11px 0 0 11px}.portrait-frame img{object-position:50% 44%;height:340px}.portrait-caption{padding:17px;font-size:7px}.portrait-corner{top:-13px;right:-5px}.portrait-location{margin-top:14px;font-size:9px}.portrait-location>span{font-size:7px;display:block}.hero-bottom{gap:16px;margin-top:31px;padding-top:17px;padding-bottom:18px;font-size:9px}.hero-bottom a{white-space:nowrap;gap:8px}.hero-bottom p{max-width:150px}.section{padding:57px 0}.eyebrow{gap:12px;font-size:8px}.section-heading{margin-bottom:29px;display:block}.section-heading h2,.about-grid h2{margin-top:16px;font-size:29px}.section-side-note{margin-top:16px;font-size:11px;display:block}.section-side-note br{display:none}.about-grid{grid-template-columns:1fr;gap:22px}.about-grid h2{max-width:310px}.blueprint-wrap{display:none}.about-copy{font-size:13px;line-height:1.9}.about-copy .personal-note{font-size:11px;line-height:1.9}.interest-heading{gap:15px;margin-top:34px;font-size:7px}.interest-heading span:last-child{font-size:9px}.interest-grid{grid-template-columns:1fr 1fr;gap:28px 0;padding-top:23px}.interest-grid article{padding:0 18px}.interest-grid article:nth-child(odd){border-right:1px solid #e7ecf0;padding-left:0}.interest-grid article:nth-child(2n){border:0;padding-right:0}.interest-grid h3{margin-top:15px;font-size:13px}.interest-grid p{font-size:11px}.education-list{padding:0 19px}.education-item{gap:13px;padding:25px 0}.education-icon{width:33px;height:33px}.education-icon svg{width:19px}.education-top h3{font-size:15px}.institution{font-size:11px;line-height:1.7}.education-date{flex-wrap:wrap;gap:8px;font-size:9px}.education-description{margin-top:12px;font-size:11px}.filter-row{flex-wrap:wrap;gap:3px;margin-top:-6px;margin-bottom:20px}.filter{gap:6px;padding:7px 9px;font-size:10px}.filter span{padding-left:6px;font-size:8px}.project-grid{grid-template-columns:1fr;gap:16px}.featured-visual{min-height:280px;padding:22px 20px 29px}.visual-header{margin-bottom:20px;font-size:7px}.mini-sidebar{width:33px;padding:12px 7px}.mini-content{padding:12px}.mini-welcome{font-size:12px}.mini-metrics>div{padding:7px 5px}.mini-metrics span{font-size:5.5px}.featured-copy{padding:24px 22px}.featured-copy h3{font-size:26px}.featured-copy>p{font-size:12px}.project-meta,.status{font-size:8px}.featured-copy .tags{margin-top:17px}.project-card{padding:23px 22px 13px}.project-card h3{margin-top:19px;font-size:20px}.project-card>p{font-size:12px}.project-card .tags{margin-bottom:20px}.project-card-bottom{font-size:9px}.experience-row{grid-template-columns:1fr;gap:18px;margin-top:32px;padding-top:25px}.experience-row h3{font-size:17px}.experience-row .experience-date{font-size:9px!important}.skills-grid{grid-template-columns:1fr;gap:28px}.skills-grid h3{font-size:17px}.skills-grid p{margin-bottom:17px}.skills-grid article:last-child{grid-column:auto}.skills-grid .tags>span{font-size:10px}.certification-row{gap:18px;margin-top:33px}.certification-label{font-size:7px}.certification-detail h3{font-size:12px}.certification-detail p{font-size:10px;line-height:1.9}.contact-section{padding-top:40px}.contact-panel{gap:30px;padding:33px 25px}.contact-copy h2{max-width:290px;font-size:28px}.contact-copy>p:not(.eyebrow){font-size:11px;line-height:1.95}.contact-copy .eyebrow{font-size:7px}.contact-actions{flex-wrap:wrap;gap:20px}.contact-actions .button{padding:11px 13px;font-size:10px}.contact-cv{font-size:9px}.email-line>a{font-size:12px}.site-footer{flex-wrap:wrap;gap:16px;padding:25px 0}.site-footer>p{flex-basis:100%;order:3;font-size:8px}.site-footer>a:last-child{margin-left:auto;font-size:9px}.footer-name{font-size:13px}.project-modal{max-height:90dvh;padding:34px 24px}.project-modal h2{font-size:28px}.modal-backdrop{padding:15px}.project-modal ul{font-size:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}@media print{.site-header,.hero-buttons,.hero-bottom,.filter-row,.contact-section,.icon-button,.text-button,.site-footer>a:last-child{display:none!important}.container{width:100%;max-width:none}.section{padding:25px 0}.hero{padding-top:0}.hero-grid{gap:40px}.hero h1{font-size:48px}.portrait-frame img{height:250px}.hero-affiliation{margin-top:15px}.about-grid{gap:30px}.interest-heading{margin-top:20px}.section-heading h2,.about-grid h2{font-size:26px}.education-item,.project-card,.featured-project{break-inside:avoid}.project-grid{gap:15px}.featured-visual{min-height:270px}.contact-panel{color:#152b43;background:#fff}.site-footer{padding-top:15px}}.icon-button{min-width:40px;min-height:40px}.filter{min-height:44px}.copy-button{min-width:36px;min-height:36px}@media(max-width:600px){.hero h1{font-size:clamp(46px,15vw,62px)}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}:root{color-scheme:dark;--surface-base: #0b2034;--surface-raised: #112a40;--surface-alt: #0e253a;--line: #284155;--text: #edf3f7;--text-muted: #afc0cd;--text-subtle: #8fa6b8;--accent: #a5d3df;color:var(--text);background:var(--surface-base)}body{background:var(--surface-base)}::selection{background:#83bacd;color:#081e30}a:focus-visible,button:focus-visible{outline-color:#b7e3ed}.site-header{background:#0b2034f5;border-color:var(--line)}.brand,.header-contact{color:var(--text)}.monogram{background:#c0dce6;color:#112c42}.monogram>span{color:#547687}.desktop-nav{color:#a7baca}.desktop-nav a:hover,.desktop-nav a.active{color:#e5f7fd}.mobile-nav{background:#10283e;border-color:var(--line)}.mobile-nav a{border-color:var(--line)}.hero{position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 75% 45%,#1c3b5340,transparent 65%),var(--surface-base);border-color:var(--line)}.hero>.container{position:relative;z-index:1}.infrastructure-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none}.eyebrow{color:#a9c9db}.tiny-line{background:#8cb2c8}.hero h1{color:#f4f8fb}.hero h1>span{color:#9bc7d8}.hero h2{color:#dbe9f2}.hero-description{color:#afc0ce}.primary{background:#badbe6;border-color:#badbe6;color:#102a40}.primary:hover{background:#d6edf3;border-color:#d6edf3}.secondary{background:#0c2337bb;border-color:#3c596f;color:#e0edf5}.secondary:hover{background:#1d3b53}.hero-affiliation{color:#89b3c9;margin-top:25px}.hero-affiliation strong{color:#d2e3ee}.hero-affiliation span{color:#98afc0}.portrait-area:before{border-color:#3d5d75}.portrait-frame{box-shadow:0 18px 48px #020e1b40}.portrait-caption{background:linear-gradient(0deg,#081e32f5,#102c449e)}.portrait-location,.portrait-location>span,.portrait-corner{color:#9ab4c7}.hero-bottom{border-color:#36526890;color:#96afc2}.hero-bottom a{color:#bcd6e5}.hero-bottom-actions{display:flex;align-items:center;gap:30px}.motion-toggle{display:inline-flex;align-items:center;gap:7px;min-height:32px;padding:4px 0;border:0;background:transparent;color:#99b5c7;font-size:10px}.motion-toggle:hover{color:#e3f4fc}.about-copy{color:var(--text-muted)}.about-copy .personal-note{color:#9fb7c8;border-color:var(--line)}.blueprint-wrap{color:#739db8}.blueprint-wrap>span{color:#90adbf}.interest-heading{border-color:var(--line);color:#a3bed0}.interest-heading span:last-child{color:#90a9bc}.interest-grid article{border-color:var(--line)}.interest-top{color:#a1cadc}.interest-grid p{color:#9fb4c4}.education-section,.skills-section{background:var(--surface-alt);border-color:var(--line)}.section-side-note{color:#96aebf}.education-list{background:var(--surface-raised);border-color:var(--line)}.education-item+.education-item{border-color:var(--line)}.education-icon{background:#18364e;border-color:#33536c;color:#a6ccdf}.institution{color:#aacbdd}.education-date,.education-description{color:#a9bdcb}.status{background:#193a3d;color:#b3dac9;border-color:#2c5151}.small-dot{background:#a2d0bd}.muted-status{background:#1e394f;color:#b1c5d4}.filter{color:#9bb3c5}.filter.active{background:#1c3a52;border-color:#3a5d76;color:#e2f3fa}.filter span{border-color:#416179}.featured-project,.project-card{background:var(--surface-raised);border-color:#2c485e}.featured-visual{background:radial-gradient(ellipse at 50% 50%,#2a4e64,#19384e)}.visual-header{color:#b4ccdc}.featured-copy>p,.project-card>p{color:var(--text-muted)}.project-meta,.project-card-top{color:#9fb8ca}.project-card:hover{box-shadow:0 12px 30px #03111e55}.tags>span{background:#1a354c;border-color:#2b4b63;color:#b5ccd9}.text-button{border-color:var(--line);color:#d3e7f1}.text-button:hover{color:#a7d8e6}.project-actions{margin-top:22px;border-top:1px solid var(--line);padding-top:15px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.project-actions .text-button{border:0;padding:0;margin:0;min-height:36px;gap:14px}.project-live-link{display:inline-flex;gap:8px;align-items:center;font-size:11px;color:#b1d7e5;min-height:36px}.project-live-link:hover{color:#fff}.project-icon{color:#a2c7db}.project-card-bottom{border-color:var(--line);color:#9fb8ca}.project-card-bottom .icon-button{color:#b0d1e2}.experience-row{border-color:var(--line)}.experience-row .eyebrow{color:#9cb6c9}.experience-row>div>p:not(.eyebrow){color:#adbecc}.experience-row .experience-date{color:#b5d0e0!important}.skills-grid article{border-color:#355168;padding-top:23px}.skills-grid h3{margin-top:0}.skills-grid p{color:#9cb5c7}.skills-grid .tags>span{background:#17344b;color:#c1d7e4;border-color:#2f4e65}.certification-row{border-color:#304b61}.certification-label{color:#a5c2d5}.certification-detail p{color:#a0b8c9}.contact-panel{background:#153249;border:1px solid #35566e}.contact-copy>p:not(.eyebrow){color:#b0c5d4}.contact-copy .eyebrow{color:#c0d9e6}.contact-details{border-color:#3a566b}.contact-details>p,.copy-status{color:#a6c0d2}.contact-details>svg,.copy-button{color:#b2cfdf}.site-footer{color:#95aec1}.footer-name,.site-footer>a:last-child{color:#b3ccdd}.project-modal{background:#102a40;color:var(--text);border:1px solid #3e5e76}.modal-close,.project-modal .eyebrow,.modal-subtitle{color:#aac4d5}.project-modal>p:not(.eyebrow):not(.modal-subtitle),.project-modal ul{color:#b8ccd9}.modal-backdrop{background:#031321b8}.social-links{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin-top:25px}.social-links a{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 11px;min-height:38px;color:#c3d8e5;border:1px solid #3e5b70;border-radius:4px;font-size:10px;transition:background .2s,border-color .2s,transform .2s}.social-links a:hover{background:#25465d;border-color:#8cb9d0;color:#fff;transform:translateY(-2px)}.social-links-compact{gap:10px;margin-top:23px}.social-links-compact a{padding:10px;min-width:39px;min-height:39px;background:#102a3e90;border-color:#324e63}.contact-details .social-links{gap:8px}@media(max-width:800px){.contact-details{border-color:#3a566b}}@media(max-width:600px){.interest-grid article:nth-child(odd){border-color:var(--line)}.hero-bottom-actions{gap:16px}.motion-toggle span{display:none}.motion-toggle{width:28px;justify-content:center}.contact-details .social-links a{padding:8px 10px}.project-actions{gap:8px}}@media(prefers-reduced-motion:reduce){.motion-toggle{display:none}}@media print{:root,body{background:#fff;color:#152b43;color-scheme:light}.infrastructure-backdrop,.motion-toggle{display:none}.hero,.education-section,.skills-section,.education-list,.project-card,.featured-project{background:#fff;color:#152b43}.hero h1,.hero h2,.hero-affiliation strong{color:#152b43}.hero-description,.about-copy,.about-copy .personal-note,.education-description,.institution,.education-date,.featured-copy>p,.project-card>p,.skills-grid p{color:#526779}.social-links a{color:#284a60;border-color:#b0c4d1;background:#fff}}#root{position:relative;isolation:isolate}.site-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;opacity:.78}.hero{background:linear-gradient(110deg,#0b203428,#0b203410)}.education-section,.skills-section{background:#0e253a78}.hero>.container{z-index:1}.portrait-area{width:100%;padding:0;text-align:center;justify-self:center}.portrait-area:before{display:none}.portrait-frame{width:202.5px;height:202.5px;border-radius:50%;margin:0 auto;border:4px solid #8fb9ce35;overflow:hidden;box-shadow:0 0 0 12px #98c4d408,0 20px 60px #020e1b40}.portrait-frame img{width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:50% 41%}.portrait-caption{position:static;background:none;padding:0;margin-top:27px;justify-content:center;color:#bed8e5;font-size:8px}.portrait-caption>span{justify-content:center}.portrait-location{justify-content:center;margin-top:13px;color:#9db8cb}.education-list{background:transparent;border:0;padding:0}.education-item,.project-card,.featured-project{background:#fff;color:#152b43;border:1px solid #dbe5ed;position:relative;isolation:isolate;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}.education-item{padding:30px 32px;border-radius:5px}.education-item+.education-item{margin-top:17px;border-top:1px solid #dbe5ed}.education-item:after,.project-card:after,.featured-project:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;z-index:-1;pointer-events:none;background:radial-gradient(340px circle at var(--card-x, 50%) var(--card-y, 50%),#76b6d52b,transparent 70%);opacity:0;transition:opacity .3s ease}.education-icon{background:#eef4f8;border-color:#dce7ed;color:#527b96;transition:transform .3s ease,background .3s ease}.education-content .institution{color:#466880}.education-content .education-date,.education-description{color:#64798b}.education-content .status,.featured-copy .status{background:#edf5f0;border-color:#dcebe2;color:#4d7260}.education-content .muted-status{background:#eef3f6;color:#667d8f}.featured-copy .small-dot{background:#638d77}.featured-visual{background:linear-gradient(140deg,#edf4f7,#e0eaf0)}.visual-header{color:#57758b}.featured-copy>p,.project-card>p{color:#607487}.project-meta,.project-card-top,.project-card-bottom{color:#627b8e}.featured-copy .tags>span,.project-card .tags>span,.education-content .tags>span{background:#f2f6f8;border-color:#e0e8ee;color:#536f83}.featured-copy .project-actions,.project-card-bottom{border-color:#dfe7ed}.featured-copy .text-button,.project-live-link{color:#315a77}.featured-copy .text-button:hover,.project-live-link:hover{color:#163a55}.project-card .project-icon,.project-card-bottom .icon-button{color:#547e99}.project-card .project-icon{display:inline-flex;transition:transform .3s ease}.project-card .tags>span,.featured-copy .tags>span{transition:transform .25s ease,background .25s ease}.meal-preview{transition:transform .45s ease,box-shadow .45s ease}@media(hover:hover)and (pointer:fine){.education-item:hover,.project-card:hover,.featured-project:hover{transform:translateY(-4px);box-shadow:0 20px 44px #020e1b28;border-color:#9abccc}.education-item:hover:after,.project-card:hover:after,.featured-project:hover:after{opacity:1}.education-item:hover .education-icon{transform:translateY(-3px) rotate(-5deg);background:#dfeef5}.project-card:hover .project-icon{transform:translateY(-3px) rotate(-5deg)}.project-card:hover .tags>span,.featured-project:hover .tags>span{transform:translateY(-2px);background:#e7f1f6}.project-card:hover .tags>span:nth-child(2n),.featured-project:hover .tags>span:nth-child(2n){transition-delay:.05s}.featured-project:hover .meal-preview{transform:rotate(0) translateY(-4px);box-shadow:0 20px 34px #24445f22}}.education-item:focus-within:after,.project-card:focus-within:after,.featured-project:focus-within:after{opacity:1}.site-footer{display:grid;grid-template-columns:1fr auto 1fr;gap:16px 24px;padding:30px 0 23px}.site-footer>.footer-credit{order:initial;font-size:11px;color:#b6d1e1;text-align:center}.site-footer>.back-to-top{justify-self:end;display:grid;place-items:center;width:38px;height:38px;border:1px solid #3c5b72;border-radius:50%;color:#c3dce9;margin-left:0;transition:transform .2s,background .2s}.site-footer>.back-to-top:hover{transform:translateY(-3px);background:#193c55}.site-footer>.footer-copyright{grid-column:1 / -1;font-size:9px;color:#8faabd;text-align:left}@media(min-width:1450px){.portrait-frame{width:215px;height:215px}}@media(max-width:1100px){.portrait-frame{width:190px;height:190px}}@media(max-width:800px){.portrait-frame{width:170px;height:170px}}@media(max-width:600px){.portrait-area{max-width:none;margin-top:5px}.portrait-caption{margin-top:23px;font-size:7px}.hero-grid{gap:40px}.education-item{padding:23px 20px}.site-footer{grid-template-columns:1fr auto;gap:13px}.site-footer>.footer-credit{grid-column:1;grid-row:2;text-align:left;font-size:10px}.site-footer>.back-to-top{grid-column:2;grid-row:1 / 3}.site-footer>.footer-copyright{grid-row:3;font-size:8px}}@media(prefers-reduced-motion:reduce){.education-item:hover,.project-card:hover,.featured-project:hover,.education-item:hover .education-icon,.project-card:hover .project-icon,.project-card:hover .tags>span,.featured-project:hover .tags>span,.featured-project:hover .meal-preview,.site-footer>.back-to-top:hover{transform:none}}@media print{.site-backdrop{display:none}.hero,.education-section,.skills-section{background:#fff}}.structure-landscape{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;z-index:-1;pointer-events:none;background-image:linear-gradient(#86b9d309 1px,transparent 1px),linear-gradient(90deg,#86b9d309 1px,transparent 1px);background-size:72px 72px}.structure-scene{position:absolute;width:min(72vw,950px);aspect-ratio:820 / 460;contain:layout style}.structure-scene-right{right:-4vw}.structure-scene-left{left:-7vw}.structure-drawing{width:100%;height:100%;display:block;overflow:visible;transform:translate3d(var(--structure-x, 0),var(--structure-y, 0),0);transition:transform .45s ease-out}.structure-members{stroke:#9fcfe5;stroke-width:.85;opacity:.22}.structure-joints{fill:#acdced;opacity:.32}.structure-dimension{stroke:#8bbdd7;stroke-width:.6;opacity:.16}.structure-signals path{stroke:#c5eff7;stroke-width:1.8;stroke-dasharray:5 95;stroke-linecap:round;opacity:.55;animation:structural-flow 7s linear infinite;animation-play-state:paused}.structure-scene[data-active=true] .structure-signals path{animation-play-state:running}.structure-scene:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(170px circle at var(--structure-glow-x, -400px) var(--structure-glow-y, -400px),#98c8df10,transparent)}.brand-logo{width:35px;height:35px;object-fit:contain;border-radius:3px;flex-shrink:0}@keyframes structural-flow{0%{stroke-dashoffset:100}to{stroke-dashoffset:0}}@media(max-width:800px){.structure-scene{width:85vw}}@media(max-width:600px){.structure-scene{width:115vw}.structure-scene-right{right:-10vw}.structure-scene-left{left:-12vw}.brand-logo{width:32px;height:32px}}@media(prefers-reduced-motion:reduce){.structure-drawing{transform:none;transition:none}.structure-signals path{animation:none!important}}@media print{.structure-landscape{display:none}}.blueprint-wrap{display:none}.bridge-footings{stroke:#9fcfe5;stroke-width:1;opacity:.28}.bridge-construction .construction-member{stroke-dasharray:100;stroke-dashoffset:100;animation-duration:10s;animation-timing-function:linear;animation-iteration-count:infinite}.phase-foundations{animation-name:bridge-foundations}.phase-towers{animation-name:bridge-towers}.phase-deck{animation-name:bridge-deck}.phase-cables{animation-name:bridge-cables}.bridge-construction .structure-joints,.bridge-construction .structure-signals,.bridge-construction .structure-dimension{animation:bridge-finishing 10s linear infinite}@keyframes bridge-foundations{0%{stroke-dashoffset:100;opacity:0}1.6%{opacity:1}8%,98%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:0;opacity:0}}@keyframes bridge-towers{0%,6.4%{stroke-dashoffset:100;opacity:0}8%{opacity:1}20%,98%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:0;opacity:0}}@keyframes bridge-deck{0%,18.4%{stroke-dashoffset:100;opacity:0}20%{opacity:1}30.4%,98%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:0;opacity:0}}@keyframes bridge-cables{0%,28.8%{stroke-dashoffset:100;opacity:0}30.4%{opacity:1}40%,98%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:0;opacity:0}}@keyframes bridge-finishing{0%,39%{opacity:0}40%,98%{opacity:.32}to{opacity:0}}.structure-drawing{transform:translate3d(var(--structure-x, 0),var(--structure-y, 0),0) rotate(var(--structure-tilt, 0deg))}.structure-signals path{animation-duration:var(--signal-duration, 7s)}.structure-interactive .structure-joints{opacity:1}.structure-node{opacity:.3;transform-box:fill-box;transform-origin:center;animation:structure-node-pulse 4.5s ease-in-out infinite}.structure-traces{stroke:#bce6f4;stroke-width:1.1;opacity:.28}.structure-traces path{stroke-dasharray:18 82;animation:structure-member-trace 6s linear infinite}.structure-survey{stroke:#aad7eb;stroke-width:.7;stroke-dasharray:4 8;opacity:var(--survey-opacity, .14);animation:structure-survey-scan 8s ease-in-out infinite}.structure-survey circle{stroke-dasharray:none;fill:#b9e6f2}@keyframes structure-node-pulse{0%,to{opacity:.25;transform:scale(1)}50%{opacity:.75;transform:scale(1.55)}}@keyframes structure-member-trace{0%{stroke-dashoffset:100}to{stroke-dashoffset:-100}}@keyframes structure-survey-scan{0%,to{transform:translateY(-115px)}50%{transform:translateY(130px)}}.structure-scene[data-active=false] *{animation-play-state:paused!important}@media(prefers-reduced-motion:reduce){.structure-drawing{transform:none}.structure-node,.structure-survey,.structure-traces path,.bridge-construction .construction-member,.bridge-construction .structure-joints,.bridge-construction .structure-signals,.bridge-construction .structure-dimension{animation:none!important}.bridge-construction .construction-member{stroke-dashoffset:0;opacity:1}.structure-node{opacity:.4;transform:none}.structure-survey{display:none}}.about-portrait{display:none}@media(min-width:1024px){.hero-grid>.hero-portrait{display:none}.about-grid{grid-template-columns:minmax(0,.85fr) auto minmax(0,1.3fr);gap:32px;align-items:start}.about-portrait{display:block;align-self:center;width:max-content;padding:0}.about-portrait .portrait-frame{margin:0}}.bridge-detail{opacity:0;animation-duration:10s;animation-timing-function:linear;animation-iteration-count:infinite}.bridge-solid-towers{animation-name:bridge-solidify}.bridge-road-surface{animation-name:bridge-pave}.bridge-road-finish{animation-name:bridge-fitout}.bridge-lighting{animation-name:bridge-illuminate}.bridge-concrete{fill:#7b9fb2;fill-opacity:.22;stroke:#b5d9e8;stroke-opacity:.35;stroke-width:.7}.bridge-tower-side{fill:#558298;fill-opacity:.25;stroke:#9bc5da;stroke-opacity:.25;stroke-width:.7}.bridge-asphalt{fill:#42677b;fill-opacity:.68;stroke:#afd1e1;stroke-opacity:.36;stroke-width:.8}.bridge-deck-face{fill:#79a1b5;fill-opacity:.24;stroke:#b0d3e3;stroke-opacity:.38;stroke-width:.7}.bridge-deck-side,.bridge-approach{fill:#426a82;fill-opacity:.36;stroke:#9fc5d9;stroke-opacity:.3;stroke-width:.7}.bridge-centerline{stroke:#c9dfda;stroke-opacity:.68;stroke-width:1.2;stroke-dasharray:13 12}.bridge-edge-marking{stroke:#a7cad9;stroke-opacity:.42;stroke-width:.7}.bridge-railing{stroke:#b2d8e7;stroke-opacity:.4;stroke-width:.8}.bridge-water{stroke:#8ebbd3;stroke-opacity:.14;stroke-width:1}.bridge-lamp-post{stroke:#bed9e7;stroke-opacity:.5;stroke-width:.9}.bridge-lamp{fill:#d3e7bb;fill-opacity:.72}.bridge-car{opacity:0;animation-duration:10s;animation-timing-function:linear;animation-iteration-count:infinite}.bridge-car-near{animation-name:bridge-drive-near}.bridge-car-far{animation-name:bridge-drive-far}.vehicle-body{fill:#c1dfeb;fill-opacity:.84;stroke:#d8ebf3;stroke-width:.5}.vehicle-cabin{fill:#8bb2c7;stroke:#d0e3ec;stroke-width:.5}.vehicle-window{fill:#23465d}.vehicle-wheel{fill:#0b2034;stroke:#9bb9ca;stroke-width:.6}.vehicle-headlamp{stroke:#e7efc8;stroke-width:1.5;stroke-linecap:round}.vehicle-taillamp{stroke:#ba8f91;stroke-width:1.2}@keyframes bridge-solidify{0%,40%{opacity:0}49%,98%{opacity:1}to{opacity:0}}@keyframes bridge-pave{0%,46%{opacity:0}56%,98%{opacity:1}to{opacity:0}}@keyframes bridge-fitout{0%,54%{opacity:0}68%,98%{opacity:1}to{opacity:0}}@keyframes bridge-illuminate{0%,66%{opacity:0}75%,98%{opacity:1}to{opacity:0}}@keyframes bridge-drive-near{0%,75%{transform:translate(55px,326px);opacity:0}76%{opacity:.95}98%{transform:translate(726px,326px);opacity:.95}to{transform:translate(765px,326px);opacity:0}}@keyframes bridge-drive-far{0%,77%{transform:translate(748px,313px) scale(.72);opacity:0}78%{opacity:.75}98%{transform:translate(82px,313px) scale(.72);opacity:.75}to{transform:translate(45px,313px) scale(.72);opacity:0}}@media(prefers-reduced-motion:reduce){.bridge-detail{animation:none!important;opacity:1}.bridge-traffic{display:none}}@media print{.about-portrait{display:none}}.structure-scene[data-structure=camera]{width:min(98vw,800px);right:1vw}.camera-outline,.camera-lens-ticks,.camera-aperture{stroke:#a8d5e8;stroke-width:1;opacity:.24;stroke-linecap:round;stroke-linejoin:round}.camera-lens-ticks{opacity:.3}.camera-aperture{transform-origin:410px 254px;animation:camera-aperture-turn 14s ease-in-out infinite}.camera-focus{animation:camera-focus-lock 7s ease-in-out infinite}.camera-record-light{fill:#b9e6f2;animation:camera-record 4s ease-in-out infinite}.camera-focus-ring{stroke:#b9e6f2;stroke-width:1.4;fill:none;transform-origin:410px 254px;animation:camera-focus-breathe 7s ease-in-out infinite}.camera-trace{stroke:#c5eff7;stroke-width:1.5;opacity:.45;stroke-dasharray:15 85;animation:structural-flow 7s linear infinite}@keyframes camera-aperture-turn{0%,20%,to{transform:rotate(0)}50%,70%{transform:rotate(30deg)}}@keyframes camera-focus-lock{0%,to{opacity:.45}45%,65%{opacity:1}}@keyframes camera-record{0%,to{opacity:.2}50%{opacity:.65}}@keyframes camera-focus-breathe{0%,to{transform:scale(.96);opacity:.1}50%{transform:scale(1.04);opacity:.35}}@media(max-width:600px){.structure-scene[data-structure=camera]{right:1vw}}@media(prefers-reduced-motion:reduce){.camera-blueprint *{animation:none!important}.camera-focus-ring{opacity:.2}}
