@import "https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=Inter:wght@300;400;500;600&family=JetBrains+Mono:wght@400;500&display=swap";
@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-border-style:solid;--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: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;--ease-out:cubic-bezier(0, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--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{.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.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}}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.border{border-style:var(--tw-border-style);border-width:1px}.lowercase{text-transform:lowercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.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,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--ink:#0a0a0b;--ink-2:#1a1a1e;--pearl:#faf8f5;--pearl-2:#f0ede7;--smoke:#6b6b70;--mist:#a8a8ad;--line:#0a0a0b14;--line-strong:#0a0a0b24;--ember:#d97e38;--ember-deep:#b45000;--ember-soft:#f6cfb0;--night:#0b0b0e;--night-2:#141418;--night-3:#1e1e24;--night-line:#ffffff14;--night-line-strong:#ffffff29;--night-text:#e8e6e1;--night-muted:#8a8a90;--font-display:"Instrument Serif", "Cormorant Garamond", Georgia, serif;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "SF Pro Text", sans-serif;--font-mono:"JetBrains Mono", "SF Mono", Menlo, monospace;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--sp-2xs:clamp(8px, 1vw, 12px);--sp-xs:clamp(16px, 2vw, 24px);--sp-sm:clamp(28px, 3.5vw, 48px);--sp-md:clamp(48px, 5.5vw, 72px);--sp-lg:clamp(56px, 7vw, 96px);--sp-xl:clamp(72px, 9vw, 140px);--sp-2xl:clamp(100px, 13vw, 200px);--gutter:clamp(24px, 6vw, 80px);--gutter-md:clamp(20px, 4vw, 48px);--gutter-sm:clamp(16px, 5vw, 24px);--section-py:var(--sp-xl);--section-gap:var(--sp-lg)}@supports (color:lab(0% 0 0)){:root{--ember:lab(62.176% 32.2246 52.4041);--ember-deep:lab(46.7395% 41.5551 69.2451);--ember-soft:lab(85.9279% 10.9225 20.6263)}}[data-theme=dark]{--ink:#faf8f5;--ink-2:#e8e6e1;--pearl:#0b0b0e;--pearl-2:#141418;--smoke:#a8a8ad;--mist:#6b6b70;--line:#ffffff14;--line-strong:#ffffff29}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:auto}#smooth-wrapper{width:100%;position:fixed;inset:0;overflow:hidden}#smooth-content{will-change:transform}@media (max-width:900px){html,body{height:auto;min-height:100%;overflow:hidden auto}#smooth-wrapper,#smooth-content{all:unset;display:block}}body{font-family:var(--font-sans);background:var(--pearl);color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;cursor:none;transition:background .25s,color .25s;position:relative;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:1;opacity:.035;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");position:fixed;inset:0}a{color:inherit;text-decoration:none}button{cursor:none;color:inherit;background:0 0;border:none;font-family:inherit}img{max-width:100%;display:block}@media (max-width:900px){*{-webkit-tap-highlight-color:transparent}a,button{touch-action:manipulation}.btn{min-height:48px}}@media (max-width:900px),(hover:none),(pointer:coarse){body{cursor:auto}button,.cmdk-item{cursor:pointer}}::selection{background:var(--ember)}@supports (color:color-mix(in lab, red, red)){::selection{background:color-mix(in srgb, var(--ember) 30%, transparent)}}.skip-link{z-index:300;background:var(--ink);color:var(--pearl);transition:top .2s var(--ease-out);border-radius:100px;padding:12px 20px;font-size:13px;font-weight:500;position:fixed;top:-100px;left:24px}.skip-link:focus-visible{top:16px}:focus-visible{outline:2px solid var(--ember-deep);outline-offset:3px;border-radius:4px}.section-dark :focus-visible,.build :focus-visible,.projects :focus-visible,.contact :focus-visible{outline-color:var(--ember)}.cursor-dot,.cursor-ring{pointer-events:none;z-index:9999;mix-blend-mode:difference;position:fixed;top:0;left:0}.cursor-dot{background:#fff;border-radius:50%;width:6px;height:6px;transform:translate(-50%,-50%)}.cursor-ring{border:1px solid #ffffff80;border-radius:50%;width:36px;height:36px;transform:translate(-50%,-50%)}@media (max-width:900px),(hover:none),(pointer:coarse){.cursor-dot,.cursor-ring{display:none}}.intro{color:var(--night-text);z-index:10000;will-change:transform;background:#08080a;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow:hidden}.intro-glow{pointer-events:none;opacity:0;background:radial-gradient(700px circle at 50% 46%, var(--ember), transparent 62%);position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.intro-glow{background:radial-gradient(700px circle at 50% 46%, color-mix(in srgb, var(--ember) 13%, transparent), transparent 62%)}}.intro-name{z-index:1;font-family:var(--font-display);letter-spacing:-.03em;gap:.28em;font-size:clamp(56px,11vw,150px);font-weight:400;line-height:1;display:flex;position:relative}.intro-word{padding-bottom:.1em;display:inline-block;overflow:hidden}.intro-word i{font-style:normal;display:inline-block;transform:translateY(110%)}.intro-name em{color:var(--ember);font-style:normal}.intro-meta{left:var(--gutter);right:var(--gutter);z-index:1;font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--night-muted);opacity:0;justify-content:space-between;align-items:baseline;font-size:11px;display:flex;position:absolute;bottom:clamp(26px,6vh,54px)}.intro-status{color:var(--night-text)}.intro-status:before{content:"// ";color:var(--night-muted)}.intro-count{color:var(--night-text);font-variant-numeric:tabular-nums}.intro-bar{z-index:1;background:#ffffff14;height:2px;position:absolute;bottom:0;left:0;right:0}.intro-bar-fill{background:var(--ember);transform-origin:0;position:absolute;inset:0;transform:scaleX(0)}@media (max-width:600px){.intro-meta{letter-spacing:.16em;font-size:10px}}.scroll-progress{background:var(--ember);transform-origin:0;z-index:200;pointer-events:none;width:100%;height:2px;position:fixed;top:0;left:0;transform:scaleX(0)}.nav{z-index:100;background:var(--pearl);align-items:center;gap:4px;padding:8px 10px 8px 18px;display:flex;position:fixed;top:18px;left:50%;transform:translate(-50%)}@supports (color:color-mix(in lab, red, red)){.nav{background:color-mix(in srgb, var(--pearl) 70%, transparent)}}.nav{-webkit-backdrop-filter:blur(20px)saturate(180%);border:1px solid var(--line);transition:all .4s var(--ease-out);border-radius:100px}.nav-brand{font-family:var(--font-display);border-right:1px solid var(--line);letter-spacing:-.01em;margin-right:6px;padding-right:14px;font-size:20px}.nav-links{gap:2px;display:flex}.nav-link{color:var(--ink);background:0 0;border-radius:100px;padding:8px 14px;font-size:13px;font-weight:450;transition:background-color .2s,color .2s}@media (hover:hover){.nav-link:not(.active):hover{background:var(--line)}}.nav-link.active{background:var(--ink);color:var(--pearl)}.theme-toggle{border:1px solid var(--line);border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;margin-left:6px;display:flex}.nav-menu-btn{border:1px solid var(--line);border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;margin-left:4px;display:none}@media (max-width:768px){.nav{padding:6px 8px 6px 14px}.nav-links{display:none}.nav-brand{border-right:none;margin-right:0;padding-right:8px;font-size:18px}.nav-menu-btn{display:flex}}.mobile-menu{z-index:95;background:var(--pearl);padding:96px var(--gutter-sm) 48px;opacity:0;visibility:hidden;transition:opacity .3s var(--ease-out), visibility .3s;flex-direction:column;justify-content:center;display:flex;position:fixed;inset:0}.mobile-menu.open{opacity:1;visibility:visible}.mobile-menu-link{text-align:left;width:100%;font-family:var(--font-display);letter-spacing:-.02em;border-bottom:1px solid var(--line);opacity:0;transition:transform .4s var(--ease-out), opacity .4s var(--ease-out);padding:10px 0;font-size:clamp(36px,9vw,52px);line-height:1.2;display:block;transform:translateY(12px)}.mobile-menu.open .mobile-menu-link{opacity:1;transform:translateY(0)}.mobile-menu-link.active{color:var(--ember-deep)}.mobile-menu-foot{margin-top:var(--sp-sm);font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--smoke);font-size:10px}@media (min-width:769px){.mobile-menu{display:none}}.section{padding:var(--section-py) var(--gutter);position:relative}.section-dark{background:var(--night);color:var(--night-text)}.container{max-width:1320px;margin:0 auto}.eyebrow{font-family:var(--font-mono);letter-spacing:.25em;text-transform:uppercase;color:var(--smoke);margin-bottom:var(--sp-xs);align-items:center;gap:12px;font-size:10px;display:inline-flex}.section-dark .eyebrow{color:var(--night-muted)}.eyebrow:before{content:"";opacity:.5;background:currentColor;width:28px;height:1px}.display{font-family:var(--font-display);letter-spacing:-.02em;font-weight:400;line-height:1}.section-title{font-family:var(--font-display);letter-spacing:-.03em;font-size:clamp(48px,6.5vw,96px);font-weight:400;line-height:.95}.section-title em{color:var(--ember-deep);font-style:italic}.section-head{margin-bottom:var(--sp-lg)}.hero{min-height:100svh;padding:clamp(100px, 12vh, 160px) var(--gutter) clamp(96px, 11vh, 140px);grid-template-columns:1.15fr .85fr;align-items:center;gap:clamp(32px,5vw,64px);max-width:1480px;margin:0 auto;display:grid;position:relative}.hero-meta{margin-bottom:var(--sp-sm);align-items:center;gap:16px;display:flex}.hero-status{border:1px solid var(--line-strong);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;border-radius:100px;align-items:center;gap:8px;padding:7px 14px;font-size:10px;display:inline-flex}.hero-status .pulse{background:var(--ember);border-radius:50%;width:6px;height:6px}.hero-greeting{font-family:var(--font-mono);color:var(--smoke);letter-spacing:.06em;font-size:11px}.hero h1{font-family:var(--font-display);letter-spacing:-.035em;margin-bottom:var(--sp-xs);word-wrap:break-word;overflow-wrap:break-word;font-size:clamp(60px,8.5vw,148px);font-weight:400;line-height:.93}.hero h1 .line{margin-bottom:-.12em;padding-bottom:.12em;display:block;overflow:hidden}.hero h1 em{color:var(--ember-deep);font-style:italic;font-weight:400;display:inline-block;position:relative}.hero h1 em:after{content:"";background:var(--ember);transform-origin:0;height:3px;position:absolute;bottom:.05em;left:0;right:0;transform:scaleX(0)}.hero h1 .line>span{opacity:0;display:inline-block;transform:translateY(110%)}.hero-sub{color:var(--smoke);max-width:500px;margin-bottom:var(--sp-sm);opacity:0;font-size:18px;font-weight:400;line-height:1.6}.hero-cta{opacity:0;gap:12px;display:flex}.btn{letter-spacing:.01em;border-radius:100px;align-items:center;gap:10px;padding:15px 28px;font-size:14px;font-weight:500;display:inline-flex;position:relative;overflow:hidden}.btn-primary{background:var(--ink);color:var(--pearl)}.btn-ghost{border:1px solid var(--line-strong);color:var(--ink)}.btn{transition:background .25s,color .25s,border-color .25s}@media (hover:hover){.btn-primary:hover{background:var(--ember-deep)}.btn-ghost:hover{background:var(--ink);color:var(--pearl);border-color:var(--ink)}}@media (max-width:900px){.btn:active{opacity:.85;transition:transform .1s,opacity .1s;transform:scale(.97)}.proj-link:active{opacity:.7;transform:scale(.98)}.tile:active,.edu-card:active{transform:scale(.99)}.exp-item:active{opacity:.85}}.hero-visual{aspect-ratio:3/4;perspective:1200px;width:100%;max-width:500px;margin-left:auto;position:relative}.hero-orb{will-change:transform;transform-style:preserve-3d;border-radius:36px;position:absolute;inset:0;overflow:hidden;box-shadow:0 48px 96px -24px #00000047,0 24px 48px -12px #00000029}.hero-orb:after{content:"";pointer-events:none;background:linear-gradient(#0000 45%,#00000059);position:absolute;inset:0}.hero-label{font-family:var(--font-mono);color:#ffffffd9;letter-spacing:.15em;text-transform:uppercase;z-index:2;justify-content:space-between;align-items:flex-end;font-size:10px;display:flex;position:absolute;bottom:28px;left:28px;right:28px}.hero-label-big{font-family:var(--font-display);letter-spacing:-.01em;text-transform:none;color:#fff;font-size:26px;line-height:1.1}.chip{background:var(--pearl);border:1px solid var(--line-strong);font-family:var(--font-mono);letter-spacing:.08em;white-space:nowrap;z-index:3;border-radius:100px;align-items:center;gap:8px;padding:10px 18px;font-size:11px;display:flex;position:absolute;box-shadow:0 12px 32px -8px #0000002e}.chip-1{top:12%;left:-18%}.chip-2{top:52%;right:-8%}.chip-3{top:24%;right:-12%}.chip .dot{background:var(--ember);border-radius:50%;flex-shrink:0;width:6px;height:6px}.chip-3 .dot{background:#0090b2;background:lab(54.231% -30.2597 -32.6408)}.chip-2 .dot{background:#4aa651;background:lab(61.2132% -42.0948 35.0149)}.hero-ticker{bottom:var(--sp-sm);left:var(--gutter);right:var(--gutter);font-family:var(--font-mono);color:var(--smoke);letter-spacing:.15em;text-transform:uppercase;opacity:0;justify-content:space-between;align-items:flex-end;font-size:10px;display:flex;position:absolute}.hero-ticker .scroll-hint{align-items:center;gap:10px;display:flex}.scroll-line{transform-origin:0;background:currentColor;width:40px;height:1px;transform:scaleX(.3)}@media (max-width:1100px){.hero{gap:var(--sp-md);grid-template-columns:1fr}.hero-visual{order:-1;max-width:400px;margin:0 auto}.hero-ticker{position:static}}@media (max-width:768px){.hero{gap:var(--sp-sm);min-height:auto}.hero-visual{perspective:none;max-width:min(340px,72vw)}.hero-orb{border-radius:24px}.hero-ticker{display:none}.hero-meta{flex-wrap:wrap}.hero-sub{max-width:100%}.hero-cta{flex-wrap:wrap}.chip{padding:8px 12px;font-size:9.5px}.chip-1{top:6%;left:-6%}.chip-2{right:-2%}.chip-3{top:20%;right:-6%}}.about{padding:var(--section-py) var(--gutter);background:var(--pearl-2)}.about-head{margin-bottom:var(--section-gap)}.about-body{gap:var(--sp-lg);grid-template-columns:1fr 1fr;display:grid}.about-lead{font-family:var(--font-display);letter-spacing:-.015em;font-size:clamp(26px,2.8vw,36px);font-weight:400;line-height:1.3}.about-lead em{color:var(--ember-deep);font-style:italic}.about-text{color:var(--smoke);font-size:16px;line-height:1.75}.about-text p+p{margin-top:var(--sp-xs)}.about-text a{color:var(--ink);border-bottom:1px solid var(--ember);padding-bottom:1px}.about-stats{margin-top:var(--sp-lg);border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);grid-column:1/-1;grid-template-columns:repeat(4,1fr);display:grid}.about-stat{padding:var(--sp-md) clamp(16px, 1.8vw, 28px) var(--sp-sm);transition:background .35s var(--ease-out);flex-direction:column;align-items:flex-start;display:flex;position:relative}.about-stat+.about-stat{border-left:1px solid var(--line)}.about-stat-index{font-family:var(--font-mono);letter-spacing:.2em;color:var(--mist);margin-bottom:18px;font-size:10px;transition:color .3s}.about-stat .num{font-family:var(--font-display);letter-spacing:-.02em;transition:transform .35s var(--ease-out);font-size:clamp(48px,5.5vw,68px);line-height:.9}.about-stat .num em{color:var(--ember-deep);vertical-align:super;margin-left:1px;font-size:.5em;font-style:italic}.about-stat-tick{background:var(--ember);transform-origin:0;width:26px;height:2px;transition:width .35s var(--ease-out);margin:18px 0 12px}.about-stat .label{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink);font-size:10px}.about-stat-detail{font-family:var(--font-mono);letter-spacing:.04em;color:var(--smoke);margin-top:7px;font-size:10.5px}@media (hover:hover){.about-stat:hover{background:var(--ink)}@supports (color:color-mix(in lab, red, red)){.about-stat:hover{background:color-mix(in srgb, var(--ink) 3.5%, transparent)}}.about-stat:hover .about-stat-index{color:var(--ember-deep)}.about-stat:hover .num{transform:translateY(-3px)}.about-stat:hover .about-stat-tick{width:44px}}@media (max-width:900px){.about-body{gap:var(--sp-sm);grid-template-columns:1fr}.about-stats{margin-top:var(--sp-md);grid-template-columns:repeat(2,1fr)}.about-stats .about-stat+.about-stat{border-left:none}.about-stats .about-stat:nth-child(2n){border-left:1px solid var(--line)}.about-stats .about-stat:nth-child(n+3){border-top:1px solid var(--line)}}.marquee{background:var(--ink);color:var(--pearl);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:28px 0;position:relative;overflow:hidden}[data-theme=dark] .marquee{background:var(--pearl);color:var(--ink)}.marquee-track{white-space:nowrap;width:max-content;font-family:var(--font-display);letter-spacing:-.01em;align-items:center;gap:56px;font-size:clamp(26px,3vw,36px);display:flex}.marquee-track span{align-items:center;gap:56px;display:inline-flex}.marquee-track em{color:var(--ember);font-style:italic}.marquee-dot{background:var(--ember);border-radius:50%;flex-shrink:0;width:5px;height:5px;display:inline-block}.build{padding:var(--section-py) var(--gutter);background:var(--night);color:var(--night-text)}.build-intro{max-width:860px;margin-bottom:var(--section-gap)}.build-intro .display{font-size:clamp(44px,6vw,88px)}.build-intro em{color:var(--ember);font-style:italic}.build-intro p{margin-top:var(--sp-xs);color:var(--night-muted);max-width:580px;font-size:18px;line-height:1.65}.tiles{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.tile{--tile-accent:var(--ember);background:var(--night-2);isolation:isolate;border:1px solid var(--night-line);will-change:transform;border-radius:32px;flex-direction:column;justify-content:space-between;min-height:clamp(300px,35vw,440px);padding:clamp(28px,4vw,52px);display:flex;position:relative;overflow:hidden}.tile[data-tile=ml]{--tile-accent:#4aa651}@supports (color:lab(0% 0 0)){.tile[data-tile=ml]{--tile-accent:lab(61.2132% -42.0948 35.0149)}}.tile[data-tile=cloud]{--tile-accent:#0090b2}@supports (color:lab(0% 0 0)){.tile[data-tile=cloud]{--tile-accent:lab(54.231% -30.2597 -32.6408)}}.tile[data-tile=security]{--tile-accent:#c480d4}@supports (color:lab(0% 0 0)){.tile[data-tile=security]{--tile-accent:lab(63.1528% 37.5766 -32.6908)}}.tile:before{content:"";z-index:-1;aspect-ratio:1;background:radial-gradient(circle, var(--tile-accent), transparent 70%);border-radius:50%;width:65%;position:absolute;top:-30%;right:-15%}@supports (color:color-mix(in lab, red, red)){.tile:before{background:radial-gradient(circle, color-mix(in srgb, var(--tile-accent) 9%, transparent), transparent 70%)}}.tile:before{pointer-events:none}.tile-wide{flex-direction:row;grid-column:1/-1;align-items:stretch;gap:48px;min-height:320px}.tile-eyebrow{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--tile-accent);margin-bottom:var(--sp-2xs);font-size:10px}.tile-title{font-family:var(--font-display);letter-spacing:-.02em;margin-bottom:var(--sp-2xs);font-size:clamp(32px,3.2vw,44px);line-height:1.05}.tile-desc{color:var(--night-muted);max-width:400px;font-size:15px;line-height:1.65}.tile-tags{padding-top:var(--sp-sm);flex-wrap:wrap;gap:8px;margin-top:auto;display:flex}.tile-tag{background:var(--night-3);font-family:var(--font-mono);letter-spacing:.05em;color:var(--night-text);border:1px solid var(--night-line);border-radius:100px;padding:6px 14px;font-size:10.5px}.tile-visual{flex:1;min-height:200px;position:relative}.tile-wide .tile-visual{flex:0 0 300px;min-height:240px}.stack-diagram{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.stack-spine{background:linear-gradient(180deg, transparent, var(--night-line-strong) 20%, var(--night-line-strong) 80%, transparent);width:1px;position:absolute;top:6%;bottom:6%;left:50%}.stack-layer{background:linear-gradient(135deg, var(--night-3), var(--night-2));border:1px solid var(--night-line-strong);width:62%;height:46px;font-family:var(--font-mono);color:var(--night-text);border-radius:10px;align-items:center;gap:10px;padding:0 16px;font-size:11.5px;display:flex;position:absolute;box-shadow:0 10px 28px #00000059}.stack-layer .tech{color:var(--night-muted);letter-spacing:.04em;margin-left:auto;font-size:10px}.stack-layer:before{content:"";background:var(--ember);width:8px;height:8px;box-shadow:0 0 10px var(--ember);border-radius:2px;flex-shrink:0}@supports (color:color-mix(in lab, red, red)){.stack-layer:before{box-shadow:0 0 10px color-mix(in srgb, var(--ember) 60%, transparent)}}.stack-layer:first-of-type{transform:translateY(-90px)rotate(-3deg)}.stack-layer:nth-of-type(2){background:linear-gradient(135deg, var(--night-3), #252530);transform:translateY(-30px)rotate(1deg)}.stack-layer:nth-of-type(2):before{background:#4aa651;background:lab(61.2132% -42.0948 35.0149);box-shadow:0 0 10px #4aa65199}.stack-layer:nth-of-type(3){background:linear-gradient(135deg, #2a2a35, var(--night-2));transform:translateY(30px)rotate(-1deg)}.stack-layer:nth-of-type(3):before{background:#0090b2;background:lab(54.231% -30.2597 -32.6408);box-shadow:0 0 10px #0090b299}.stack-layer:nth-of-type(4){transform:translateY(90px)rotate(4deg)}.stack-layer:nth-of-type(4):before{background:#c480d4;background:lab(63.1528% 37.5766 -32.6908);box-shadow:0 0 10px #c480d499}.stack-pulse{background:var(--ember);width:7px;height:7px;box-shadow:0 0 14px var(--ember);opacity:0;z-index:2;border-radius:50%;position:absolute;top:calc(50% - 3.5px);left:calc(50% - 3.5px)}.ml-visual{justify-content:center;align-items:flex-end;gap:6px;padding:40px 30px 0;display:flex;position:absolute;inset:40px 0 0}.ml-bar{background:linear-gradient(180deg, var(--ember) 0%, var(--ember-deep) 100%);border-radius:4px 4px 0 0;flex:1;max-width:18px;position:relative}.ml-bar:after{content:"";background:var(--ember);opacity:0;border-radius:50%;width:6px;height:6px;transition:opacity .3s;position:absolute;top:-6px;left:50%;transform:translate(-50%)}.tile.hovered .ml-bar:after{opacity:1}.ml-spark{pointer-events:none;height:52%;position:absolute;top:34px;left:30px;right:30px;overflow:visible}.ml-spark-line{stroke:#ffffffd9;stroke-width:1.5px;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px}.ml-spark-dot{fill:#fff;opacity:0}.ml-chip{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--night-muted);border:1px solid var(--night-line);background:var(--night-2);border-radius:100px;padding:5px 10px;font-size:9.5px;position:absolute;top:10px;right:12px}@supports (color:color-mix(in lab, red, red)){.ml-chip{background:color-mix(in srgb, var(--night-2) 80%, transparent)}}.cloud-visual{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.cloud-grid{grid-template-columns:repeat(5,1fr);gap:6px;width:200px;height:140px;display:grid}.cloud-cell{background:var(--night-3);border:1px solid var(--night-line);border-radius:4px}.cloud-cell.lit-ember{background:var(--ember)}@supports (color:color-mix(in lab, red, red)){.cloud-cell.lit-ember{background:color-mix(in srgb, var(--ember) 38%, var(--night-3))}}.cloud-cell.lit-ember{border-color:var(--ember)}@supports (color:color-mix(in lab, red, red)){.cloud-cell.lit-ember{border-color:color-mix(in srgb, var(--ember) 45%, transparent)}}.cloud-cell.lit-green{background:#4aa651;background:lab(61.2132% -42.0948 35.0149)}@supports (color:color-mix(in lab, red, red)){.cloud-cell.lit-green{background:color-mix(in srgb, lab(61.2132% -42.0948 35.0149) 38%, var(--night-3))}}.cloud-cell.lit-green{border-color:#4aa65173}.cloud-cell.lit-blue{background:#0090b2;background:lab(54.231% -30.2597 -32.6408)}@supports (color:color-mix(in lab, red, red)){.cloud-cell.lit-blue{background:color-mix(in srgb, lab(54.231% -30.2597 -32.6408) 38%, var(--night-3))}}.cloud-cell.lit-blue{border-color:#0090b273}@keyframes cloud-breathe{50%{opacity:.4}}.cloud-cell.lit{animation:2.6s ease-in-out infinite cloud-breathe}@media (prefers-reduced-motion:reduce){.cloud-cell.lit{animation:none}}.sec-visual{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.sec-radar{width:200px;height:200px;position:relative}.sec-sweep{background:conic-gradient(from 0deg, var(--ember), transparent 75deg);border-radius:50%;position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.sec-sweep{background:conic-gradient(from 0deg, color-mix(in srgb, var(--ember) 20%, transparent), transparent 75deg)}}.sec-sweep{opacity:.9}.sec-ring-outer{border:1px solid var(--night-line-strong);border-radius:50%;position:absolute;inset:0}.sec-ring-mid{border:1px dashed var(--night-line-strong);border-radius:50%;position:absolute;inset:26px}.sec-ring-inner{border:1px solid var(--ember);position:absolute;inset:54px}@supports (color:color-mix(in lab, red, red)){.sec-ring-inner{border:1px solid color-mix(in srgb, var(--ember) 55%, transparent)}}.sec-ring-inner{box-shadow:inset 0 0 24px -10px var(--ember);border-radius:50%}.sec-orbit-dot{background:var(--ember);width:8px;height:8px;box-shadow:0 0 16px var(--ember);border-radius:50%;position:absolute;top:-4px;left:50%;transform:translate(-50%)}.sec-orbit-dot.alt{background:#0090b2;background:lab(54.231% -30.2597 -32.6408);width:6px;height:6px;top:-3px;box-shadow:0 0 12px #0090b2;box-shadow:0 0 12px lab(54.231% -30.2597 -32.6408)}.sec-lock{color:var(--night-text);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}@media (max-width:1100px){.tile-wide{flex-direction:column;gap:32px}.tile-wide .tile-visual{flex:auto;width:100%;min-height:220px}}@media (max-width:900px){.tiles{grid-template-columns:1fr}.tile-wide{flex-direction:column}}@media (max-width:768px){.tile{border-radius:24px;min-height:auto}.tile-wide{min-height:auto}}.exp{padding:var(--section-py) var(--gutter);background:var(--pearl)}.exp-head{max-width:1280px;margin:0 auto var(--section-gap)}.exp-list{max-width:1280px;margin:0 auto}.exp-item{padding:var(--sp-sm) 0;border-top:1px solid var(--line);will-change:transform;grid-template-columns:200px 1fr auto;gap:60px;display:grid;position:relative}.exp-item:last-child{border-bottom:1px solid var(--line)}.exp-date{font-family:var(--font-mono);letter-spacing:.1em;color:var(--smoke);padding-top:8px;font-size:12px}.exp-role{font-family:var(--font-display);letter-spacing:-.01em;margin-bottom:var(--sp-2xs);font-size:clamp(26px,2.5vw,36px);line-height:1.15}.exp-company{color:var(--smoke);align-items:center;gap:8px;margin-bottom:20px;font-size:14px;display:flex}.exp-company-name{color:var(--ember-deep);font-weight:500}.exp-bullets{gap:10px;list-style:none;display:grid}.exp-bullets li{color:var(--smoke);padding-left:20px;font-size:15px;line-height:1.65;position:relative}.exp-bullets li:before{content:"";background:var(--ember);width:8px;height:1px;position:absolute;top:11px;left:0}.exp-arrow{color:var(--smoke);will-change:transform;align-self:start;padding-top:4px;font-size:24px}@media (max-width:900px){.exp-item{grid-template-columns:1fr;gap:12px}.exp-arrow{display:none}}.projects{padding:var(--section-py) var(--gutter);background:var(--night);color:var(--night-text)}.proj-head{max-width:1280px;margin:0 auto var(--section-gap)}.proj-list{gap:20px;max-width:1280px;margin:0 auto;display:grid}.proj-card{background:var(--night-2);border:1px solid var(--night-line);min-height:clamp(360px,40vw,480px);transform-style:preserve-3d;will-change:transform;border-radius:28px;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(28px,4vw,52px);padding:clamp(28px,4vw,52px);display:grid;position:relative;overflow:hidden}.proj-card:hover{border-color:var(--night-line-strong)}.proj-card{--proj-accent:var(--ember)}.proj-list .proj-card:nth-child(3n+2){--proj-accent:#4aa651}@supports (color:lab(0% 0 0)){.proj-list .proj-card:nth-child(3n+2){--proj-accent:lab(61.2132% -42.0948 35.0149)}}.proj-list .proj-card:nth-child(3n){--proj-accent:#0090b2}@supports (color:lab(0% 0 0)){.proj-list .proj-card:nth-child(3n){--proj-accent:lab(54.231% -30.2597 -32.6408)}}@media (min-width:901px){.proj-list .proj-card:nth-child(2n) .proj-visual{order:-1}}.proj-card-text{z-index:2;position:relative}.proj-num{font-family:var(--font-mono);letter-spacing:.2em;color:var(--proj-accent);margin-bottom:16px;font-size:11px}.proj-title{font-family:var(--font-display);letter-spacing:-.025em;margin-bottom:20px;font-size:clamp(40px,5vw,72px);line-height:.98}.proj-title em{color:var(--ember);font-style:italic}.proj-desc{color:var(--night-muted);max-width:440px;margin-bottom:28px;font-size:16px;line-height:1.6}.proj-meta{border-top:1px solid var(--night-line);flex-wrap:wrap;gap:28px;margin-bottom:28px;padding-top:28px;display:flex}.proj-meta-item .k{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--night-muted);margin-bottom:6px;font-size:10px}.proj-meta-item .v{color:var(--night-text);font-size:14px}.proj-stack{flex-wrap:wrap;gap:8px;display:flex}.proj-link{border:1px solid var(--night-line-strong);border-radius:100px;align-items:center;gap:8px;margin-top:28px;margin-right:8px;padding:10px 18px;font-size:14px;transition:background .25s,color .25s,border-color .25s;display:inline-flex}@media (hover:hover){.proj-link:hover{background:var(--ember);border-color:var(--ember);color:#0b0b0e}}.proj-visual{position:relative;transform:translateZ(20px)}.proj-visual:before{content:"";z-index:0;background:radial-gradient(55% 55% at 50% 32%, var(--proj-accent), transparent 70%);position:absolute;inset:-14% -10% -18%}@supports (color:color-mix(in lab, red, red)){.proj-visual:before{background:radial-gradient(55% 55% at 50% 32%, color-mix(in srgb, var(--proj-accent) 24%, transparent), transparent 70%)}}.proj-visual:before{filter:blur(38px);opacity:.5;pointer-events:none}.proj-visual-link{z-index:1;outline-offset:4px;border-radius:16px;display:block;position:relative}.proj-visual-link:focus-visible{outline:2px solid var(--proj-accent)}.win{z-index:1;aspect-ratio:16/10;background:var(--night);border:1px solid var(--night-line);border-radius:16px;flex-direction:column;display:flex;position:relative;overflow:hidden;box-shadow:0 26px 60px -24px #0009}.win-bar{background:var(--night-2);border-bottom:1px solid var(--night-line);flex:none;align-items:center;gap:12px;height:34px;padding:0 14px;display:flex}.win-dots{flex:none;gap:7px;display:inline-flex}.win-dots i{background:var(--night-3);border-radius:50%;width:10px;height:10px}.win-label{background:var(--night);border:1px solid var(--night-line);min-width:0;max-width:62%;height:21px;font-family:var(--font-mono);letter-spacing:.01em;color:var(--night-muted);border-radius:6px;align-items:center;gap:7px;padding:0 10px;font-size:11px;display:inline-flex}.win-label-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.win-label-icon{width:11px;height:11px;color:var(--proj-accent,var(--ember));flex:none}.win-prompt{justify-content:center;align-items:center;font-size:12px;font-weight:600;line-height:1;display:inline-flex}.win-terminal .win-label{background:0 0;border:none;max-width:72%;padding:0}.win-body{background:var(--night);flex:auto;position:relative;overflow:hidden}.win-shot{background:radial-gradient(115% 115% at 28% 18%, var(--proj-accent,var(--ember)), transparent 62%), var(--night);display:block;position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.win-shot{background:radial-gradient(115% 115% at 28% 18%, color-mix(in srgb, var(--proj-accent,var(--ember)) 18%, transparent), transparent 62%), var(--night)}}.win-shot-img{object-fit:contain;object-position:center;filter:saturate(.95);transition:transform .7s var(--ease-out), filter .7s var(--ease-out)}.proj-card:hover .win-shot-img{filter:saturate(1.03);transform:scale(1.03)}@media (prefers-reduced-motion:reduce){.win-shot-img{transition:none}.proj-card:hover .win-shot-img{transform:none}}.win-mock{flex-direction:column;gap:10px;padding:20px;display:flex;position:absolute;inset:0}.mock-legal.win-mock{gap:14px;padding:24px}.mock-legal .legal-hero{border:1px solid var(--night-line);background:linear-gradient(135deg,#1a1a22,#0b0b0e);border-radius:6px;flex-direction:column;justify-content:center;gap:6px;height:80px;padding:18px;display:flex}.mock-legal .legal-hero .title{background:var(--night-text);border-radius:2px;width:70%;height:10px}.mock-legal .legal-hero .sub{background:var(--night-muted);opacity:.6;border-radius:2px;width:50%;height:6px}.mock-legal .legal-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.mock-legal .legal-card{background:var(--night-2);border:1px solid var(--night-line);border-radius:6px;flex-direction:column;gap:4px;height:50px;padding:10px;display:flex}.mock-legal .legal-card .a{background:var(--ember);border-radius:2px;width:60%;height:6px}.mock-legal .legal-card .b{background:var(--night-muted);opacity:.5;border-radius:2px;width:80%;height:4px}.mock-codage.win-mock{grid-template-columns:1fr 80px;gap:12px;padding:20px;display:grid}.mock-codage .side{flex-direction:column;gap:8px;display:flex}.mock-codage .item{background:var(--night-2);border:1px solid var(--night-line);border-radius:4px;height:22px}.mock-codage .item.active{background:var(--ember);border-color:var(--ember)}.mock-codage .main{background:var(--night-2);border:1px solid var(--night-line);border-radius:6px;flex-direction:column;gap:8px;padding:14px;display:flex}.mock-codage .main .blk{background:var(--night-3);border-radius:2px;height:8px}.mock-codage .main .blk.w1{width:80%}.mock-codage .main .blk.w2{width:60%}.mock-codage .main .preview{background:linear-gradient(135deg, var(--night-3), var(--night-2));border:1px solid var(--night-line);border-radius:4px;height:80px;margin-top:6px;position:relative}.mock-codage .main .preview:after{content:"";background:radial-gradient(circle, var(--ember-soft), transparent);opacity:.3;border-radius:50%;position:absolute;inset:20px}.mock-terminal.win-mock{justify-content:center;gap:9px;padding:20px}.mock-terminal .t-line{background:var(--night-3);border-radius:2px;height:7px}.mock-terminal .t-line.cmd{background:var(--ember);opacity:.85;width:42%}.mock-terminal .t-line.ok{opacity:.7;background:#4aa651;background:lab(61.2132% -42.0948 35.0149);width:30%}.mock-terminal .t-line.w1{width:85%}.mock-terminal .t-line.w2{width:68%}.mock-terminal .t-line.w3{width:55%}.mock-terminal .t-cursor{background:var(--ember);border-radius:2px;width:12px;height:12px}.mock-site.win-mock{gap:10px;padding:20px}.mock-site .s-nav{gap:6px;display:flex}.mock-site .s-nav i{background:var(--night-3);border-radius:100px;width:34px;height:8px}.mock-site .s-nav i:first-child{background:var(--ember);opacity:.85}.mock-site .s-hero{background:linear-gradient(135deg, var(--night-3), var(--night-2));border:1px solid var(--night-line);border-radius:6px;height:72px}.mock-site .s-grid{flex:1;grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.mock-site .s-card{background:var(--night-2);border:1px solid var(--night-line);border-radius:6px;min-height:36px}.mock-ml.win-mock{gap:8px;padding:18px}.mock-ml .ml-title{background:var(--night-text);border-radius:2px;width:40%;height:8px;margin-bottom:8px}.mock-ml .ml-chart{background:var(--night-2);border:1px solid var(--night-line);border-radius:6px;flex:1;align-items:flex-end;gap:4px;padding:14px;display:flex;position:relative}.mock-ml .ml-chart .bar{background:linear-gradient(180deg, var(--ember), var(--ember-deep));border-radius:2px 2px 0 0;flex:1;min-height:10%}@media (max-width:1100px){.projects{padding:var(--section-py) var(--gutter-md)}}@media (max-width:900px){.proj-card{transform-style:flat;will-change:auto;grid-template-columns:1fr}.proj-visual{order:-1;transform:none!important}}.edu{padding:var(--section-py) var(--gutter);background:var(--pearl-2)}.edu-head{max-width:1280px;margin:0 auto var(--section-gap)}.edu-grid{grid-template-columns:1fr 1fr;gap:20px;max-width:1280px;margin:0 auto;display:grid}.edu-card{background:var(--pearl);border:1px solid var(--line);will-change:transform;border-radius:28px;padding:clamp(28px,4vw,52px);position:relative;overflow:hidden}.edu-badge{font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--ember-deep);margin-bottom:var(--sp-xs);align-items:center;gap:8px;font-size:11px;display:inline-flex}.edu-school{font-family:var(--font-display);letter-spacing:-.015em;margin-bottom:12px;font-size:clamp(28px,3vw,40px);line-height:1.1}.edu-degree{color:var(--smoke);margin-bottom:var(--sp-sm);font-size:16px;line-height:1.5}.edu-meta{gap:var(--sp-sm);padding-top:var(--sp-xs);border-top:1px solid var(--line);flex-wrap:wrap;display:flex}.edu-meta-item .k{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--smoke);margin-bottom:6px;font-size:10px}.edu-meta-item .v{font-family:var(--font-display);letter-spacing:-.01em;font-size:30px}@media (max-width:900px){.edu-grid{grid-template-columns:1fr}}@media (max-width:768px){.edu-card{border-radius:20px}}.contact{padding:var(--sp-2xl) var(--gutter) var(--sp-xl);background:var(--night);color:var(--night-text);text-align:center;position:relative;overflow:hidden}.contact-eyebrow{color:var(--ember);margin-bottom:var(--sp-xs)}.contact h2{font-family:var(--font-display);letter-spacing:-.035em;margin-bottom:var(--sp-xs);font-size:clamp(64px,10vw,180px);font-weight:400;line-height:.95}.contact h2 em{color:var(--ember);font-style:italic}.contact-sub{color:var(--night-muted);max-width:560px;margin:0 auto var(--sp-sm);font-size:19px;line-height:1.6}.contact-cta{color:#0b0b0e;will-change:transform;background:#faf8f5;border-radius:100px;align-items:center;gap:12px;padding:20px 40px;font-size:16px;font-weight:500;transition:background .3s,color .3s;display:inline-flex}@media (hover:hover){.contact-cta:hover{background:var(--ember);color:#0b0b0e}}.contact-channels{margin-top:var(--sp-lg);padding-top:var(--sp-md);border-top:1px solid var(--night-line);flex-wrap:wrap;justify-content:center;gap:48px;max-width:800px;margin-left:auto;margin-right:auto;display:flex}.contact-channel{padding:0 var(--sp-xs);flex-direction:column;align-items:center;gap:8px;display:flex}.contact-channel .k{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--night-muted);font-size:10px}.contact-channel .v{color:var(--night-text);letter-spacing:.01em;font-size:15px;transition:color .25s}@media (hover:hover){.contact-channel:hover .v{color:var(--ember)}}@media (max-width:768px){.contact-channels{flex-direction:column;align-items:center;gap:24px}.contact-channel{padding:0}}.foot{padding:var(--sp-xs) var(--gutter);background:var(--night);color:var(--night-muted);border-top:1px solid var(--night-line);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;justify-content:space-between;align-items:center;font-size:11px;display:flex}@media (max-width:768px){.foot{padding:var(--sp-xs) var(--gutter-sm)}}@media (max-width:600px){.foot{text-align:center;padding:28px var(--gutter-sm);flex-direction:column;gap:14px;font-size:10px}}.cmdk-backdrop{-webkit-backdrop-filter:blur(10px);z-index:300;opacity:0;background:#0b0b0e66;justify-content:center;align-items:flex-start;padding-top:18vh;display:flex;position:fixed;inset:0}.cmdk{background:var(--pearl);border:1px solid var(--line-strong);opacity:0;border-radius:16px;width:min(620px,92vw);overflow:hidden;transform:translateY(-8px);box-shadow:0 30px 80px #00000040}[data-theme=dark] .cmdk{border-color:var(--night-line);color:var(--pearl);background:#17171b}.cmdk-input-wrap{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:18px 20px;display:flex}[data-theme=dark] .cmdk-input-wrap{border-color:var(--night-line)}.cmdk-input-wrap svg{opacity:.5}.cmdk-input{font-family:var(--font-sans);color:inherit;background:0 0;border:none;outline:none;flex:1;font-size:16px}.cmdk-input::placeholder{color:var(--smoke)}.cmdk-kbd,.cmdk-kbd-sm{font-family:var(--font-mono);border:1px solid var(--line-strong);opacity:.7;background:#00000008;border-radius:4px;padding:3px 7px;font-size:10px}[data-theme=dark] .cmdk-kbd,[data-theme=dark] .cmdk-kbd-sm{border-color:var(--night-line);background:#ffffff0a}.cmdk-list{max-height:340px;padding:8px;overflow-y:auto}.cmdk-item{cursor:none;border-radius:10px;align-items:center;gap:14px;padding:12px 14px;font-size:14px;display:flex}.cmdk-item.selected{background:var(--pearl-2)}[data-theme=dark] .cmdk-item.selected{background:#ffffff0d}.cmdk-kind{font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--ember);flex-shrink:0;width:50px;font-size:9px}.cmdk-label{flex:1}.cmdk-empty{text-align:center;color:var(--smoke);padding:24px;font-size:13px}.cmdk-foot{border-top:1px solid var(--line);color:var(--smoke);font-size:11px;font-family:var(--font-mono);letter-spacing:.08em;gap:20px;padding:12px 20px;display:flex}[data-theme=dark] .cmdk-foot{border-color:var(--night-line)}.foot-actions{align-items:center;gap:18px;display:flex}.foot-link{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:inherit;font-size:11px;transition:color .2s}.foot-link:hover{color:var(--ember)}.nf{text-align:center;min-height:100svh;padding:var(--gutter);flex-direction:column;justify-content:center;align-items:center;gap:20px;display:flex}.nf-title{font-family:var(--font-display);letter-spacing:-.03em;font-size:clamp(56px,10vw,140px);font-weight:400;line-height:.95}.nf-title em{color:var(--ember-deep);font-style:italic}.nf-sub{color:var(--smoke);max-width:420px;font-size:17px;line-height:1.6}.nf-sub a{color:var(--ember-deep);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px;transition:color .2s}.nf-sub a:hover{color:var(--ember)}.nf .btn{margin-top:8px}.nf .btn:hover{background:var(--ember-deep)}html.blueprint body:before{display:none}html.blueprint section{position:relative}html.blueprint section,html.blueprint .marquee{outline:1px dashed var(--ember)}@supports (color:color-mix(in lab, red, red)){html.blueprint section,html.blueprint .marquee{outline:1px dashed color-mix(in srgb, var(--ember) 60%, transparent)}}html.blueprint section,html.blueprint .marquee{outline-offset:-4px}html.blueprint .nav,html.blueprint .hero-visual,html.blueprint .tile,html.blueprint .proj-card,html.blueprint .edu-card,html.blueprint .exp-item,html.blueprint .about-stats,html.blueprint .now-widget{outline-offset:3px;outline:1px dashed #0090b2a6}html.blueprint section:before,html.blueprint .marquee:before{z-index:50;font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;background:var(--ember);color:#0b0b0e;pointer-events:none;border-radius:3px;padding:3px 8px;font-size:9px;position:absolute;top:8px;left:8px}html.blueprint .hero:before{content:"hero · grid 1.15fr / 0.85fr · min 100svh"}html.blueprint .about:before{content:"about · 2-col grid · gsap counters"}html.blueprint .marquee:before{content:"marquee · gsap x-loop · modulo wrap";inset:auto auto 8px 8px}html.blueprint .build:before{content:"craft · bento grid · animated visuals"}html.blueprint .exp:before{content:"experience · list · hover translate-x"}html.blueprint .projects:before{content:"projects · alternating cards · 3d tilt"}html.blueprint .edu:before{content:"education · 2-up cards · hover lift"}html.blueprint .contact:before{content:"contact · centered cta · scroll reveals"}html.blueprint body:after{content:"";top:0;bottom:0;left:var(--gutter);right:var(--gutter);z-index:40;pointer-events:none;background:repeating-linear-gradient(90deg, var(--ember) 0 1px, transparent 1px calc(100% / 12));position:fixed}@supports (color:color-mix(in lab, red, red)){html.blueprint body:after{background:repeating-linear-gradient(90deg, color-mix(in srgb, var(--ember) 14%, transparent) 0 1px, transparent 1px calc(100% / 12))}}html.blueprint:after{content:"blueprint · how this site is built";z-index:400;font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;background:var(--ember);color:#0b0b0e;pointer-events:none;border-radius:100px;padding:6px 12px;font-size:10px;position:fixed;bottom:18px;right:18px}@media print{.nav,.mobile-menu,.cursor-dot,.cursor-ring,.scroll-progress,.now-widget,.cmdk-backdrop,.intro,.skip-link,.marquee,.hero-visual,.hero-ticker,.hero-meta,.hero-cta,.tile-visual,.proj-visual,.exp-arrow,.foot,.contact-cta,.about-stats{display:none!important}*{opacity:1!important;box-shadow:none!important;text-shadow:none!important;outline:none!important;transition:none!important;animation:none!important;transform:none!important}:root,[data-theme=dark]{--pearl:#fff;--pearl-2:#fff;--ink:#000;--ink-2:#111;--smoke:#333;--mist:#666;--line:#ddd;--line-strong:#bbb;--night:#fff;--night-2:#fff;--night-3:#f4f4f4;--night-text:#000;--night-muted:#333;--night-line:#ddd;--night-line-strong:#bbb;--ember:#b35c2e;--ember-deep:#9a4d24;--section-py:16pt;--section-gap:12pt;--gutter:0}html.blueprint body:after,html.blueprint:after,html.blueprint section:before,html.blueprint .marquee:before{display:none!important}body{color:#000;background:#fff}body:before{display:none}#smooth-wrapper,#smooth-content{all:unset;display:block}section{min-height:0!important;padding:12pt 0!important}.hero{display:block;padding:0 0 8pt!important}.hero h1{font-size:26pt}.hero-sub{max-width:none;font-size:11pt}.section-title,.contact h2{font-size:18pt;line-height:1.1}.section-head,.about-head,.exp-head,.proj-head,.edu-head{margin-bottom:10pt!important}.tile,.proj-card,.edu-card{page-break-inside:avoid;border:1pt solid #ddd;border-radius:6pt;margin-bottom:8pt;display:block;min-height:0!important;padding:10pt!important}.tiles,.proj-list,.edu-grid{display:block}.exp-item{page-break-inside:avoid}.tile-desc,.proj-desc,.about-lead{max-width:none}.contact{text-align:left}.contact-channels{justify-content:flex-start}a[href^=http]:after,a[href^=mailto]:after{content:" [" attr(href) "]";color:#555;word-break:break-all;font-size:8pt}}.now-widget{color:#f5f2ed;z-index:80;opacity:0;pointer-events:none;background:#0f0f13;border:1px solid #ffffff1f;border-radius:14px;min-width:200px;padding:14px 18px;position:fixed;bottom:24px;left:24px;transform:translateY(20px);box-shadow:0 10px 40px #00000080}[data-theme=light] .now-widget{color:#fafaf7;background:#17171b;border-color:#ffffff14;box-shadow:0 10px 40px #00000026}.now-widget.show{pointer-events:auto}.now-row{font-family:var(--font-mono);align-items:center;gap:10px;display:flex}.now-dot{background:#e08b5c;border-radius:50%;width:7px;height:7px}.now-label{letter-spacing:.2em;color:#ffffff8c;font-size:10px}.now-time{font-variant-numeric:tabular-nums;color:#fafaf7;margin-left:auto;font-size:15px;font-weight:500}.now-git{font-family:var(--font-mono);letter-spacing:.08em;color:#ffffffb3;align-items:center;gap:7px;margin-top:10px;font-size:10px;transition:color .2s;display:flex}.now-git:hover{color:#e08b5c}.now-foot{font-family:var(--font-mono);color:#fff9;letter-spacing:.08em;border-top:1px solid #ffffff1a;margin-top:10px;padding-top:10px;font-size:10px}.now-foot kbd{font-family:var(--font-mono);color:#fafaf7;background:#ffffff1a;border-radius:4px;margin:0 2px;padding:2px 6px;font-size:10px}@media (max-width:700px){.now-widget{min-width:auto;padding:10px 14px;bottom:12px;left:12px}.now-foot{display:none}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}ul.tile-tags,ul.proj-stack{margin:0;padding-left:0;list-style:none}ul.tile-tags{padding-top:var(--sp-sm);margin-top:auto}ul.tile-tags li,ul.proj-stack li{display:inline-flex}.subpage{max-width:880px;padding:160px var(--gutter) 80px;margin:0 auto}.subpage-wide{max-width:1100px}.subpage .eyebrow{margin-bottom:18px}.subpage h1{font-family:var(--font-display);letter-spacing:-.03em;margin-bottom:24px;font-size:clamp(40px,6vw,76px);font-weight:400;line-height:1}.subpage h1 em{color:var(--ember-deep);font-style:italic}.subpage-lead{color:var(--smoke);max-width:640px;margin-bottom:40px;font-size:18px;line-height:1.7}.subpage h2{font-family:var(--font-display);letter-spacing:-.02em;margin:48px 0 16px;font-size:clamp(26px,3.4vw,38px);font-weight:400}.subpage h3{margin:28px 0 10px;font-size:18px;font-weight:600}.subpage p{max-width:720px;margin-bottom:16px;line-height:1.75}.subpage ul.subpage-list{margin:0 0 16px 18px}.subpage ul.subpage-list li{margin-bottom:8px;line-height:1.7}.subpage a:not(.btn):not(.tile-tag){color:var(--ember-deep);text-underline-offset:3px;text-decoration:underline}.subpage a:not(.btn):hover{opacity:.8}.subpage .btn{text-decoration:none}.breadcrumbs{font-family:var(--font-mono);letter-spacing:.08em;color:var(--smoke);margin-bottom:28px;font-size:11px}.breadcrumbs ol{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.breadcrumbs li+li:before{content:"/";opacity:.5;margin-right:6px}.breadcrumbs a{color:inherit;text-decoration:none!important}.breadcrumbs a:hover{color:var(--ember-deep)}.subpage-actions{flex-wrap:wrap;gap:12px;margin:28px 0 8px;display:flex}.subpage-meta{border-top:1px solid var(--line);border-bottom:1px solid var(--line);flex-wrap:wrap;gap:24px 40px;margin-bottom:24px;padding:20px 0;display:flex}.subpage-meta .k{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--smoke);margin-bottom:4px;font-size:10px}.subpage-meta .v{font-size:14px}.subpage-tags{flex-wrap:wrap;gap:8px;margin:0 0 24px;padding:0;list-style:none;display:flex}.subpage-tags li{border:1px solid var(--line-strong);font-family:var(--font-mono);letter-spacing:.05em;border-radius:100px;padding:6px 14px;font-size:11px}.subpage-card{border:1px solid var(--line);border-radius:16px;margin-bottom:18px;padding:26px}.subpage-card h3{margin-top:0}.subpage-card .muted{color:var(--smoke);font-size:14px}.subpage-grid{grid-template-columns:1fr 1fr;gap:18px;display:grid}@media (max-width:760px){.subpage-grid{grid-template-columns:1fr}}.subpage-figure{aspect-ratio:16/9;border:1px solid var(--line);border-radius:16px;margin:8px 0 32px;position:relative;overflow:hidden}.subpage-figure img{object-fit:cover}.subpage-window{margin:8px 0 32px}.subpage-footer{border-top:1px solid var(--line);flex-wrap:wrap;gap:12px 24px;margin-top:56px;padding-top:28px;font-size:14px;display:flex}.subpage-footer a{color:inherit!important;text-decoration:none!important}.subpage-footer a:hover{color:var(--ember-deep)!important}.resume-section{margin-bottom:8px}.resume-role{margin-bottom:26px}.resume-role .head{flex-wrap:wrap;align-items:baseline;gap:6px 14px;display:flex}.resume-role .date{font-family:var(--font-mono);color:var(--smoke);font-size:12px}.resume-skills{flex-wrap:wrap;gap:8px;margin:0 0 8px;padding:0;list-style:none;display:flex}.resume-skills li{border:1px solid var(--line-strong);font-family:var(--font-mono);border-radius:100px;padding:5px 12px;font-size:11px}@media print{.subpage{max-width:none;padding:0}.breadcrumbs,.subpage-actions,.subpage-footer{display:none!important}.subpage h1{margin-bottom:8pt;font-size:24pt}.subpage h2{margin:14pt 0 6pt;font-size:14pt}.subpage h3{margin:8pt 0 4pt;font-size:11pt}.subpage p,.subpage li{font-size:10pt;line-height:1.5}.resume-role{page-break-inside:avoid;margin-bottom:10pt}.subpage-card{border:none;margin-bottom:8pt;padding:0}}@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-border-style{syntax:"*";inherits:false;initial-value:solid}@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}
