@import url("https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Space+Grotesk:wght@400;500;600;700&display=swap");*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }
/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{line-height:inherit}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{text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.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{--bg:#030708;--surface:#071113;--surface2:#092528;--line:rgba(141,165,165,.2);--text:#eaf7f5;--muted:#8da5a5;--cyan:#00d5c5;--cyan-bright:#00f0e0;--shadow:rgba(0,240,224,.16)}html[data-theme=light]{--bg:#eef7f5;--surface:#fff;--surface2:#dcefeb;--line:rgba(22,76,78,.22);--text:#082124;--muted:#4d6869;--cyan:#008f87;--cyan-bright:#00a99e;--shadow:rgba(0,143,135,.16)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Space Grotesk,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit}.page{min-height:100vh;background:radial-gradient(circle at 88% 0,rgba(0,213,197,.1),transparent 34rem),var(--bg);overflow:hidden}.shell{width:min(1180px,calc(100% - 56px));margin:0 auto}.nav{height:72px;justify-content:space-between;border-bottom:1px solid var(--line);position:relative;z-index:10}.brand,.nav{display:flex;align-items:center}.brand{font-weight:700;letter-spacing:-.08em;font-size:1.3rem;gap:7px}.brand-mark,.brand>span:last-child{color:var(--cyan)}.brand-mark{width:18px;height:18px;border:1px solid var(--cyan);display:grid;place-items:center;font:500 .8rem DM Mono;letter-spacing:0}.navlinks{display:flex;gap:28px;color:var(--muted);font:500 .72rem DM Mono;text-transform:uppercase;letter-spacing:.08em}.navlinks a.active,.navlinks a:hover{color:var(--text)}.navlinks a.active{position:relative}.navlinks a.active:after{content:"";position:absolute;height:2px;background:var(--cyan);left:0;right:0;bottom:-10px;box-shadow:0 0 12px var(--cyan)}.nav-actions{gap:10px}.nav-actions,.resume-pill{display:flex;align-items:center}.resume-pill{border:1px solid var(--line);border-radius:999px;padding:9px 14px;gap:6px;color:var(--muted);font:500 .7rem DM Mono;text-transform:uppercase}.resume-pill:hover{border-color:var(--cyan);color:var(--text)}.icon-button,.mobile-nav{border:1px solid var(--line);background:transparent;color:var(--text);border-radius:50%;width:36px;height:36px;cursor:pointer;display:grid;place-items:center}.icon-button:focus-visible,.mobile-nav-menu a:focus-visible,.mobile-nav:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}.mobile-nav{display:none}.mobile-nav-menu{position:absolute;top:72px;left:0;right:0;background:rgba(3,7,8,.97);border-bottom:1px solid var(--line);padding:22px 28px;display:grid;gap:18px;z-index:5;box-shadow:0 18px 40px rgba(0,0,0,.35)}.mobile-nav-menu a{color:var(--muted);font:500 .8rem DM Mono;text-transform:uppercase}.mobile-nav-menu a.active,.mobile-nav-menu a:hover{color:var(--cyan)}.mobile-resume{border-top:1px solid var(--line);padding-top:18px;display:flex;gap:7px;align-items:center}.hero-visual{position:relative;min-height:calc(100vh - 72px);border-bottom:1px solid var(--line);overflow:hidden}.hero-backdrop{position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,7,8,.98),rgba(3,7,8,.86) 35%,rgba(3,7,8,.2) 70%,rgba(3,7,8,.72)),url(/assets/ui/cybernetic-grid.png) 50%/cover;opacity:.82}.hero-backdrop:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,var(--bg) 100%)}.hero{padding:90px 0 72px;display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center;min-height:calc(100vh - 72px)}.hero,.hero-copy{position:relative}.hero-copy{z-index:1}.eyebrow,.kicker,.mono,.section-code{font:500 .7rem DM Mono;letter-spacing:.1em;text-transform:uppercase;color:var(--cyan)}.eyebrow{display:flex;align-items:center;gap:10px}.eyebrow-line{width:32px;height:1px;display:inline-block;background:var(--cyan);box-shadow:0 0 10px var(--cyan)}h1{font-size:clamp(4rem,8.8vw,8.2rem);line-height:.86;letter-spacing:-.09em;margin:25px 0 30px;text-transform:uppercase}h1 span{text-shadow:0 0 22px var(--shadow)}h1 b,h1 span{color:var(--cyan)}h1 b{font-weight:400}h2{font-size:clamp(2rem,4vw,3.7rem);line-height:.96;letter-spacing:-.07em;margin:10px 0 18px}h3{margin:0 0 10px;font-size:1.4rem;letter-spacing:-.04em}p{color:var(--muted);line-height:1.7;margin:0 0 18px}.lede{max-width:510px;font-size:1.05rem}.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}.button{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:2px;padding:12px 16px;color:var(--text);font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;transition:.2s ease}.button:hover{border-color:var(--cyan);transform:translateY(-2px);box-shadow:0 0 20px var(--shadow)}.button.primary{background:var(--cyan);border-color:var(--cyan);color:#031112;font-weight:700}.button.ghost{border-color:transparent}.hero-meta{display:flex;gap:22px;margin-top:62px;color:var(--muted);font:500 .62rem DM Mono;letter-spacing:.08em}.hero-meta span:first-child{color:var(--cyan)}.hero-profile{display:grid;gap:18px;justify-items:end}.portrait-frame{position:relative;width:min(100%,390px)}.portrait-frame img{display:block;width:100%;aspect-ratio:1/1.16;-o-object-fit:cover;object-fit:cover;-o-object-position:center top;object-position:center top;filter:saturate(.78) contrast(1.08);border:1px solid rgba(0,240,224,.36);box-shadow:0 0 50px rgba(0,213,197,.12)}.portrait-frame:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(0,240,224,.12),transparent 42%,rgba(3,7,8,.55));pointer-events:none}.portrait-label{position:absolute;bottom:12px;right:14px;color:var(--cyan);font:500 .62rem DM Mono;z-index:1}.portrait-corner{position:absolute;width:22px;height:22px;border-color:var(--cyan);border-style:solid;z-index:2}.corner-a{top:-6px;left:-6px;border-width:1px 0 0 1px}.corner-b{right:-6px;bottom:-6px;border-width:0 1px 1px 0}.hero-art{width:100%;max-width:390px;min-height:175px;border:1px solid var(--line);position:relative;overflow:hidden;padding:20px;background:rgba(7,17,19,.75)}.hero-art:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(0,213,197,.08) 1px,transparent 0),linear-gradient(90deg,rgba(0,213,197,.08) 1px,transparent 0);background-size:24px 24px}.art-orbit{width:100px;height:100px;border:1px solid rgba(0,240,224,.45);border-radius:50%;left:38%;top:20%;box-shadow:0 0 35px rgba(0,240,224,.14)}.art-orbit,.node{position:absolute}.node{border:1px solid rgba(0,213,197,.52);background:rgba(3,7,8,.88);padding:8px 10px;font:.64rem DM Mono;z-index:1}.node strong{display:block;color:var(--cyan);margin-bottom:3px}.n1{top:16%;left:6%}.n2{top:40%;right:5%}.n3{bottom:9%;left:16%}.wire{position:absolute;height:1px;background:var(--cyan);opacity:.55;transform-origin:left;z-index:1}.w1{width:160px;top:34%;left:29%;transform:rotate(17deg)}.w2{width:140px;top:63%;left:42%;transform:rotate(-25deg)}.section{padding:100px 0;border-top:1px solid var(--line)}.section-code{margin-bottom:22px;color:var(--muted)}.section-head{display:flex;justify-content:space-between;gap:24px;align-items:end;margin-bottom:38px}.section-head p{max-width:460px;margin:0}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.card{border:1px solid var(--line);padding:26px;background:linear-gradient(145deg,rgba(9,37,40,.66),rgba(7,17,19,.58));position:relative}.card:hover{border-color:var(--cyan);box-shadow:0 0 28px rgba(0,213,197,.08)}.tag{color:var(--cyan);font:500 .67rem DM Mono;text-transform:uppercase;letter-spacing:.06em}.card p{font-size:.9rem}.card-link,.text-link{color:var(--text);display:inline-flex;gap:8px;align-items:center;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}.text-link{color:var(--cyan)}.project-card{min-height:300px;padding-top:44px}.card-index{position:absolute;top:20px;right:22px;color:var(--muted);font:500 .7rem DM Mono}.card-tech{display:flex;align-items:center;gap:7px;margin-top:26px;color:var(--muted);font-size:.65rem}.stat-row{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.stat{padding:22px 0}.stat+.stat{border-left:1px solid var(--line);padding-left:28px}.stat strong{display:block;font-size:2.6rem;color:var(--cyan);letter-spacing:-.08em}.stat span{color:var(--muted);font:500 .68rem DM Mono;text-transform:uppercase;letter-spacing:.04em}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:80px}.list{display:grid;gap:12px}.list-row{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding:15px 0}.list-row span{color:var(--muted);font:500 .68rem DM Mono;text-align:right}.contact-banner{display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap}.contact-banner h2{font-size:clamp(2rem,5vw,4rem)}.page-hero{padding:82px 0 60px;max-width:760px}.page-hero h1{font-size:clamp(3rem,7vw,5.6rem)}.diagram{border:1px solid var(--line);padding:26px;background:var(--surface)}.diagram-flow{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;align-items:center}.diagram-box{min-height:100px;border:1px solid rgba(0,213,197,.4);padding:14px;background:var(--surface2)}.diagram-box small{color:var(--muted);line-height:1.5;display:block;margin-top:8px}.arrow{text-align:center;color:var(--cyan);font-size:1.3rem}.notice{border-left:2px solid var(--cyan);padding:16px 18px;background:rgba(0,213,197,.06);color:var(--muted);font-size:.9rem}.placeholder{min-height:170px;display:grid;place-items:center;border:1px dashed rgba(0,213,197,.42);color:var(--muted);text-align:center;padding:20px}.footer{padding:30px 0;border-top:1px solid var(--line);color:var(--muted);font:500 .68rem DM Mono;text-transform:uppercase;letter-spacing:.03em;display:flex;justify-content:space-between;gap:20px}.footer-signal{color:var(--cyan);text-shadow:0 0 8px var(--cyan)}.about-photo img{max-width:340px;aspect-ratio:1;-o-object-position:center top;object-position:center top;border:1px solid var(--line)}.about-photo img,.certificate-thumb{width:100%;-o-object-fit:cover;object-fit:cover}.certificate-thumb{aspect-ratio:1.35;-o-object-position:top;object-position:top;margin-bottom:20px}.resume-frame{width:100%;height:720px;border:1px solid var(--line);background:#fff}.leadership-gallery{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:32px}.leadership-gallery img{height:320px}.activity-card img,.leadership-gallery img{width:100%;-o-object-fit:cover;object-fit:cover;border:1px solid var(--line)}.activity-card img{aspect-ratio:1.55;background:var(--surface2)}.post-caption{white-space:pre-line;font-size:.88rem;max-height:13rem;overflow:auto;padding-right:8px}.activity-card h3{line-height:1.15}@media(max-width:800px){.shell{width:min(100% - 28px,620px)}.nav-cta,.navlinks,.resume-pill{display:none}.mobile-nav{display:grid}.hero,.two-col{grid-template-columns:1fr;gap:42px}.hero{padding:62px 0 58px}.hero-visual{min-height:auto}.hero-profile{justify-items:start}.hero-art,.hero-profile,.portrait-frame{max-width:100%}.hero-meta{gap:10px;flex-wrap:wrap;margin-top:40px}.hero-meta span:last-child{width:100%;margin-top:12px}.grid-2,.grid-3{grid-template-columns:1fr}.section{padding:68px 0}.section-head{display:block}.section-head p{margin-top:14px}.diagram-flow{grid-template-columns:1fr}.arrow{transform:rotate(90deg)}.stat strong{font-size:1.8rem}.stat+.stat{padding-left:15px}.stat-row{gap:12px}.stat span{font-size:.58rem}.footer{display:block}.footer div+div{margin-top:8px}.leadership-gallery{grid-template-columns:1fr}.resume-frame{height:560px}h1{font-size:clamp(3.5rem,16vw,6rem)}}@keyframes page-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes backdrop-drift{0%,to{transform:scale(1)}50%{transform:scale(1.035)}}@keyframes orbit-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes signal-pulse{0%,to{opacity:.72;box-shadow:0 0 28px rgba(0,213,197,.12)}50%{opacity:1;box-shadow:0 0 42px rgba(0,213,197,.24)}}@keyframes discipline-in{0%{opacity:0;letter-spacing:.42em;transform:translateY(8px)}to{opacity:1;letter-spacing:.16em;transform:translateY(0)}}@keyframes name-in{0%{opacity:0;transform:translateY(24px) skewY(2deg);filter:blur(8px)}to{opacity:1;transform:translateY(0) skewY(0);filter:blur(0)}}@keyframes name-glow{0%,to{text-shadow:0 0 22px var(--shadow)}50%{text-shadow:0 0 34px rgba(0,240,224,.32)}}.page{animation:page-enter .55s cubic-bezier(.22,1,.36,1) both}.hero-backdrop{animation:backdrop-drift 18s ease-in-out infinite;transform-origin:center}.name-discipline{color:var(--cyan);font:500 .78rem DM Mono;letter-spacing:.16em;margin-bottom:18px;animation:discipline-in .8s cubic-bezier(.22,1,.36,1) .12s both}.hero-name{font-size:clamp(3.2rem,6.2vw,5.8rem);line-height:.9;margin-top:20px;animation:name-in .9s cubic-bezier(.22,1,.36,1) .2s both,name-glow 4s ease-in-out 1.15s infinite}.hero-art{transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease;animation:signal-pulse 5s ease-in-out infinite}.hero-art:hover{transform:translateY(-5px);border-color:rgba(0,240,224,.62)}.art-orbit{animation:orbit-spin 18s linear infinite}.card,.card-link,.icon-button,.mobile-nav,.navlinks a,.resume-pill,.text-link{transition:color .25s ease,border-color .25s ease,background-color .25s ease,transform .25s ease,box-shadow .25s ease}.navlinks a:hover{transform:translateY(-1px)}.card:hover{transform:translateY(-4px)}.activity-card img,.certificate-thumb{transition:transform .4s ease,filter .4s ease}.activity-card:hover img,.card:hover .certificate-thumb{transform:scale(1.015);filter:saturate(1.08)}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}