*,:before,:after{--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: rgb(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: rgb(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: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{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{margin:0;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{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{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,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{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}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 210 33% 4%;--foreground: 30 14% 92%;--card: 210 33% 4%;--card-foreground: 30 14% 92%;--popover: 210 33% 4%;--popover-foreground: 30 14% 92%;--primary: 190 70% 50%;--primary-foreground: 210 33% 4%;--secondary: 210 10% 12%;--secondary-foreground: 30 14% 92%;--muted: 210 10% 12%;--muted-foreground: 240 5% 55%;--accent: 210 10% 12%;--accent-foreground: 30 14% 92%;--destructive: 0 84.2% 60.2%;--destructive-foreground: 0 0% 98%;--border: 210 10% 15%;--input: 210 10% 15%;--ring: 190 70% 50%;--radius: .625rem;--font-display: "Source Serif 4", Georgia, "Times New Roman", serif;--font-signature: "Cormorant Garamond", "Source Serif 4", Georgia, serif;--font-body: "Source Sans 3", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--accent-cyan: #7bdcff;--accent-blue: #78aaff;--accent-ivory: #fff1dc;--text-soft: rgba(237, 232, 228, .76);--line-soft: rgba(236, 211, 255, .16);--ease-out: cubic-bezier(.16, 1, .3, 1)}html{scroll-behavior:auto}body{font-family:var(--font-body);background-color:#050a0f;color:#ede8e4;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:16px;line-height:1.8;letter-spacing:0}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);word-break:normal;letter-spacing:0}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.font-serif-display{font-family:var(--font-display)}.font-sans-body{font-family:var(--font-body)}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.relative{position:relative}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.resize{resize:both}.border{border-width:1px}.uppercase{text-transform:uppercase}.blur{--tw-blur: blur(8px);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)}.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)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.button{position:relative;isolation:isolate;overflow:hidden;min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:0 14px;border:1px solid transparent;border-radius:10px;color:#fff;font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:.08em;text-decoration:none;text-transform:uppercase;cursor:pointer;transition:transform .28s var(--ease-out),border-color .28s var(--ease-out),background .28s var(--ease-out),color .28s var(--ease-out),box-shadow .28s var(--ease-out)}.button:after{content:"";position:absolute;top:0;left:-150%;width:150%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.24),transparent);pointer-events:none}.button:hover{transform:translateY(-4px) scale(1.025);border-color:#7bdcff8c;box-shadow:0 16px 48px #00000075,0 0 30px #ff4fc329,0 0 42px #7bdcff21}.button:hover:after{animation:shimmer 1s var(--ease-out) forwards}.button-primary{background:var(--accent-cyan);color:#02050a;box-shadow:0 0 28px #7bdcff29}.button-secondary{border-color:#ecd3ff38;background:#00051057;color:#fff}.nav-cv-button{min-height:32px;border-radius:999px;padding-inline:12px;background:#ffffff0f;font-size:10px;letter-spacing:.12em}@keyframes shimmer{0%{transform:translate(0) skew(-15deg)}to{transform:translate(235%) skew(-15deg)}}.section-kicker{font-family:var(--font-mono);font-size:10px;letter-spacing:.24em;color:#ffffff94;text-transform:uppercase}.method-section{position:relative;z-index:2;padding:15vh 6vw 14vh;display:grid;grid-template-columns:minmax(260px,.9fr) minmax(0,1.4fr);gap:6vw;align-items:start;background:transparent}@keyframes heroFadeUp{0%{opacity:0;transform:translateY(24px);filter:blur(4px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@keyframes whiteShimmer{0%{background-position:-200% 0;text-shadow:0 0 24px rgba(255,255,255,.3),0 18px 70px rgba(0,0,0,.65)}50%{text-shadow:0 0 52px rgba(255,255,255,.75),0 0 16px rgba(255,255,255,.95),0 18px 70px rgba(0,0,0,.65)}to{background-position:200% 0;text-shadow:0 0 24px rgba(255,255,255,.3),0 18px 70px rgba(0,0,0,.65)}}.hero-wordmark{width:-moz-max-content;width:max-content;max-width:100%;padding:.05em .14em .12em 0;color:#fff!important;-webkit-text-fill-color:transparent;background:linear-gradient(110deg,#dbe7f3 0% 35%,#fff 48%,#dbe7f3 61% 100%);background-size:220% 100%;animation:whiteShimmer 5s ease-in-out infinite;-webkit-background-clip:text;background-clip:text;font-family:var(--font-signature)!important;font-style:italic;font-weight:700!important;line-height:.88!important;letter-spacing:0!important;text-transform:none;text-shadow:0 0 30px rgba(255,255,255,.3),0 18px 70px rgba(0,0,0,.62)!important;text-align:center}.hero-name-line{display:block;text-align:center}.hero-name-line+.hero-name-line{margin-left:0!important}.hero-line{display:block}.hero-fade-in-1{animation:heroFadeUp .95s cubic-bezier(.16,1,.3,1) .3s both}.hero-fade-in-2{animation:heroFadeUp .95s cubic-bezier(.16,1,.3,1) .55s both}.hero-fade-in-3{animation:heroFadeUp .95s cubic-bezier(.16,1,.3,1) .85s both}.hero-fade-in-4{animation:heroFadeUp .95s cubic-bezier(.16,1,.3,1) 1.1s both}.hero-copy{align-items:center!important;text-align:center!important}.hero-copy h1{font-family:var(--font-display);font-size:clamp(36px,3.6vw,60px)!important;font-weight:500!important;letter-spacing:-.01em!important;line-height:1.18!important;text-align:center!important}.hero-copy p,.hero-copy-offset{font-family:var(--font-mono)}.method-intro{position:sticky;top:120px}.method-intro h2,.tech-heading h2,.education-heading h2,.contact-copy h2{margin:14px 0 20px;color:#fff;font-size:clamp(32px,4.8vw,62px);font-weight:300;line-height:1.08;text-shadow:0 2px 24px rgba(0,0,0,.45)}.method-intro p,.contact-copy>p{margin:0;color:#ede8e4c2;font-size:15px;line-height:1.9}.method-grid{display:grid;gap:16px}.method-card,.tech-card,.contact-form,.contact-link-group{border:1px solid rgba(255,255,255,.11);border-radius:8px;background:#050a0fa8;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 20px 80px #00000038}.method-card{padding:24px}.method-card span,.tech-card-index{color:#6bd5ecdb;font-size:11px;letter-spacing:.18em}.method-card h3,.tech-card h3,.contact-link-group h3{margin:16px 0 10px;color:#fff;font-family:var(--font-body);font-size:16px;font-weight:600}.method-card p,.tech-card p{margin:0;color:#ede8e4b8;font-size:14px;line-height:1.75}.method-tags{grid-column:2;display:flex;flex-wrap:wrap;gap:8px}.method-tags span{border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:7px 11px;color:#ede8e4c7;background:#ffffff0b;font-size:11px;letter-spacing:.1em;text-transform:uppercase}.tech-section{position:relative;z-index:4;padding:14vh 6vw;background:transparent}.education-section{position:relative;z-index:4;padding:4vh 6vw 12vh;background:transparent}.education-heading{max-width:760px;margin-bottom:34px}.education-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.education-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;align-items:start;min-height:170px;padding:24px;border:1px solid rgba(255,255,255,.11);border-radius:8px;background:#050a0f80;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 20px 80px #00000038}.education-icon{width:48px;height:48px;display:grid;place-items:center;border:1px solid rgba(123,220,255,.3);border-radius:999px;color:var(--accent-cyan);background:#7bdcff14}.education-card h3{margin:0 0 8px;color:#fff;font-family:var(--font-display);font-size:clamp(24px,2.2vw,34px);font-weight:400;line-height:1.12}.education-card p{margin:0 0 12px;color:#ede8e4d1;font-size:15px;line-height:1.6}.education-card .education-minor{margin-bottom:10px;color:#ede8e4c2;font-size:clamp(17px,1.35vw,21px);line-height:1.45}.education-card span{display:block;color:#ede8e49e;font-size:13px;line-height:1.6}.tech-heading{max-width:760px;margin-bottom:42px}.tech-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.tech-card{min-height:320px;display:flex;flex-direction:column;padding:22px}.tech-chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:24px}.tech-chip-row span{border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:6px 9px;color:#ede8e4cc;background:#ffffff0b;font-size:11px;line-height:1.2}.projects-section{position:relative;z-index:2;padding:14vh 6vw 16vh;background:transparent}.gallery-heading{max-width:840px;margin-bottom:48px}.gallery-heading h2{margin:14px 0 0;max-width:760px;color:#fff;font-size:clamp(30px,4vw,56px);font-weight:300;line-height:1.08;text-shadow:0 2px 24px rgba(0,0,0,.45)}.projects-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,2vw,28px);align-items:stretch}.project-card{min-width:0;height:100%;border-radius:18px;animation:project-card-rise .7s ease both;animation-delay:calc(var(--card-index) * 45ms)}.project-card-surface{position:relative;width:100%;height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden;text-align:left;color:#fff;border:1px solid rgba(255,255,255,.12);border-radius:18px;background:linear-gradient(180deg,#ffffff13,#ffffff06),#050a0f80;box-shadow:0 18px 70px #0000003d;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);cursor:pointer;transition:transform .35s ease,border-color .35s ease,background .35s ease,box-shadow .35s ease}.project-card-surface:hover{transform:translateY(-8px);border-color:#30b0d085;background:linear-gradient(180deg,#30b0d021,#ffffff06),#050a0f9e;box-shadow:0 28px 90px #00000057}.card-hit-area{position:absolute;inset:0;z-index:3;border:0;background:transparent;cursor:pointer}.project-card-media{width:100%;aspect-ratio:16 / 9;display:grid;place-items:center;overflow:hidden;background:#03070b;border-bottom:1px solid rgba(255,255,255,.1)}.project-card-media>.project-media,.project-detail-media-frame>.project-media{align-self:stretch;justify-self:stretch;min-width:0;min-height:0}.project-media{width:100%;height:100%;display:block;-o-object-fit:contain;object-fit:contain;transition:filter .35s ease;background:#03070b}.project-card-surface:hover .project-media{filter:saturate(1.08) contrast(1.05)}.abstract-project-media{position:relative;place-items:center;overflow:hidden;background:radial-gradient(circle at 22% 28%,rgba(48,176,208,.38),transparent 24%),radial-gradient(circle at 72% 70%,rgba(237,232,228,.18),transparent 28%),linear-gradient(135deg,#07121a,#020507 62%)}.abstract-project-media span{position:absolute;width:42%;height:2px;background:#ede8e46b;transform:rotate(var(--angle, 0deg))}.abstract-project-media span:nth-child(1){--angle: 18deg;top:38%;left:18%}.abstract-project-media span:nth-child(2){--angle: -28deg;top:55%;right:14%}.abstract-project-media span:nth-child(3){--angle: 65deg;width:2px;height:48%;top:26%;left:52%}.project-card-body{position:relative;z-index:5;pointer-events:none;flex:1;display:flex;flex-direction:column;padding:24px}.project-card h3{margin:0 0 12px;color:#fff;font-size:clamp(25px,2vw,34px);font-weight:300;line-height:1.15;display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.project-card p{margin:0;color:#ede8e4b8;font-size:14px;line-height:1.65;display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:5}.project-stack-list span{border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:5px 8px;color:#ede8e4c7;font-size:10px;line-height:1.2;background:#ffffff0b}.tilt-card-wrap{position:relative;height:100%;min-width:0;border-radius:18px;transform:perspective(760px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg));transform-style:preserve-3d;transition:transform .18s var(--ease-out),filter .18s var(--ease-out);will-change:transform}.tilt-card-wrap:hover{filter:drop-shadow(0 22px 34px rgba(0,0,0,.42)) drop-shadow(0 0 22px rgba(123,220,255,.12));transition-duration:60ms}.tilt-card-wrap:after{content:"";position:absolute;inset:0;z-index:15;border-radius:inherit;opacity:0;pointer-events:none;background:radial-gradient(circle at var(--tilt-glare-x, 50%) var(--tilt-glare-y, 50%),rgba(255,255,255,.18),rgba(123,220,255,.08) 18%,transparent 42%);mix-blend-mode:screen;transition:opacity .16s var(--ease-out)}.tilt-card-wrap:hover:after{opacity:.85}.tilt-card-surface{transform-style:preserve-3d;backface-visibility:hidden}.tilt-card-wrap .project-card-media,.tilt-card-wrap .project-card-body{transition:transform .18s var(--ease-out)}.tilt-card-wrap:hover .project-card-media{transform:translateZ(24px)}.tilt-card-wrap:hover .project-card-body{transform:translateZ(38px)}.project-detail-page{position:relative;z-index:10;min-height:100vh;width:100%;color:#fff}.project-detail-bar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:flex-start;gap:20px;padding:24px 4vw;background:linear-gradient(180deg,#050a0f9e,#050a0f42 70%,#050a0f00);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.detail-back-button{min-height:34px;border-radius:999px;background:#ffffff0b}.project-detail-shell{display:grid;grid-template-columns:minmax(280px,410px) minmax(0,1fr);gap:6vw;padding:7vh 6vw 12vh;align-items:start}.project-detail-aside{position:sticky;top:112px;display:flex;flex-direction:column;gap:18px}.project-detail-media-frame{position:relative;width:100%;aspect-ratio:16 / 10;display:grid;place-items:center;overflow:hidden;border:1px solid rgba(255,255,255,.14);border-radius:8px;background:#03070b;box-shadow:0 24px 90px #00000057}.project-detail-media-button{padding:0;color:inherit;cursor:zoom-in;transition:border-color .24s var(--ease-out),box-shadow .24s var(--ease-out),transform .24s var(--ease-out)}.project-detail-media-button:hover,.project-detail-media-button:focus-visible{transform:translateY(-2px);border-color:#7bdcff85;box-shadow:0 26px 92px #0006,0 0 34px #7bdcff1f;outline:none}.media-expand-indicator{position:absolute;right:12px;bottom:12px;width:34px;height:34px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.16);border-radius:999px;color:#fff;background:#02050ab8;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);opacity:.84;transition:opacity .24s var(--ease-out),background .24s var(--ease-out),border-color .24s var(--ease-out)}.project-detail-media-button:hover .media-expand-indicator,.project-detail-media-button:focus-visible .media-expand-indicator{border-color:#7bdcff94;background:#050a0fe6;opacity:1}.media-viewer{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:clamp(18px,5vw,56px)}.media-viewer-backdrop{position:absolute;inset:0;border:0;background:#02050abd;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);cursor:zoom-out}.media-viewer-panel{position:relative;width:min(1120px,92vw);max-height:min(760px,86vh);display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden;border:1px solid rgba(255,255,255,.15);border-radius:8px;background:#050a0feb;box-shadow:0 34px 120px #0000009e}.media-viewer-topbar{min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 12px 10px 18px;border-bottom:1px solid rgba(255,255,255,.1)}.media-viewer-topbar span{min-width:0;overflow:hidden;color:#ede8e4d6;font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.media-viewer-close{flex:0 0 auto;width:34px;height:34px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.14);border-radius:999px;color:#fff;background:#ffffff0b;cursor:pointer;transition:border-color .24s var(--ease-out),background .24s var(--ease-out)}.media-viewer-close:hover,.media-viewer-close:focus-visible{border-color:#7bdcff85;background:#7bdcff21;outline:none}.media-viewer-frame{min-height:0;display:grid;place-items:center;background:#03070b}.media-viewer-media{max-height:calc(min(760px,86vh) - 48px);-o-object-fit:contain;object-fit:contain}.project-detail-meta{display:grid;gap:10px;padding:18px;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:#050a0f70}.project-detail-meta div{display:flex;justify-content:space-between;gap:18px;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.08)}.project-detail-meta div:last-child{padding-bottom:0;border-bottom:0}.project-detail-meta span{color:#ede8e47a;font-size:10px;letter-spacing:.18em;text-transform:uppercase}.project-detail-meta strong{max-width:62%;color:#ede8e4e0;font-size:12px;font-weight:500;line-height:1.45;text-align:right}.detail-links{display:flex;flex-wrap:wrap;gap:10px}.detail-links .button{min-height:36px;border-radius:999px;background:#ffffff0b}.detail-links .button:hover{background:#7bdcff24!important;border-color:#7bdcff85!important}.project-detail-article{max-width:860px}.project-detail-article h1{margin:16px 0 20px;color:#fff;font-size:clamp(38px,5.8vw,78px);font-weight:300;line-height:1.02}.project-detail-summary{margin:0 0 44px;max-width:760px;color:#ede8e4c7;font-size:clamp(17px,1.4vw,21px);line-height:1.7}.project-detail-block{margin-top:24px;padding:28px;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:#050a0f70;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.project-overview-block{background:#ffffff0b}.project-detail-block h2{margin:0 0 16px;color:#fff;font-family:var(--font-mono);font-size:13px;font-weight:600;letter-spacing:.18em;text-transform:uppercase}.project-detail-block p{margin:0;color:#ede8e4c7;font-size:15px;line-height:1.85}.project-detail-block p+p{margin-top:16px}.project-detail-block ul{display:grid;gap:10px;margin:0;padding-left:18px}.project-detail-block p+ul{margin-top:16px}.project-detail-block li{color:#ede8e4c7;font-size:15px;line-height:1.7}.project-stack-list{display:flex;flex-wrap:wrap;gap:8px}.contact-section{position:relative;z-index:4;padding:10vh 6vw 6vh;background:transparent}.contact-shell{display:grid;grid-template-columns:minmax(280px,.92fr) minmax(320px,1fr);gap:5vw;align-items:start}.contact-copy{max-width:680px}.contact-link-grid{display:grid;grid-template-columns:1fr;gap:16px;margin-top:34px}.contact-link-group{min-height:84px;padding:0 28px;text-decoration:none;display:flex;align-items:center}.contact-link-group h3{margin-top:0;margin-bottom:18px;color:#ede8e485;font-size:11px;letter-spacing:.18em;text-transform:uppercase}.contact-link-group a,.contact-link-group span{color:#ede8e4c2;font-family:var(--font-mono);font-size:clamp(15px,1.15vw,19px);line-height:1.7;text-decoration:none;white-space:pre-line}.contact-link-group a:hover,.contact-social-card:hover span{color:#fff}.contact-email-line{width:100%;display:flex;align-items:center;gap:20px;min-width:0}.contact-email-line a{min-width:0;flex:1;overflow-wrap:anywhere;color:var(--accent-cyan)}.contact-email-line button{flex:0 0 auto;width:42px;height:42px;display:inline-grid;place-items:center;border:1px solid rgba(255,255,255,.14);border-radius:999px;color:#fff;background:#ffffff0e;cursor:pointer;transition:transform .22s var(--ease-out),border-color .22s var(--ease-out),background .22s var(--ease-out)}.contact-email-line button:hover{transform:translateY(-2px);border-color:#7bdcff85;background:#7bdcff1f}.contact-social-card{display:flex;transition:transform .26s var(--ease-out),border-color .26s var(--ease-out),background .26s var(--ease-out)}.contact-social-card:hover{transform:translateY(-4px);border-color:#7bdcff6b;background:#050a0fbd}.contact-social-card span{display:inline-flex;align-items:center;gap:20px;color:var(--accent-cyan)}.contact-row-icon{flex:0 0 auto;color:var(--accent-cyan)}.contact-form{display:grid;gap:18px;padding:24px}.contact-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.contact-form label{display:grid;gap:8px}.contact-form label span{color:#ede8e494;font-size:11px;letter-spacing:.14em;text-transform:uppercase}.contact-form input,.contact-form textarea{width:100%;border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:13px 14px;color:#fff;background:#ffffff0e;outline:none;transition:border-color .25s ease,background .25s ease}.contact-form textarea{resize:vertical;min-height:170px}.contact-form input:focus,.contact-form textarea:focus{border-color:#6bd5ec9e;background:#ffffff14}.contact-form-actions{display:flex;align-items:center;flex-wrap:wrap;gap:14px}.contact-form button{display:inline-flex;align-items:center;gap:9px;border:1px solid rgba(107,213,236,.42);border-radius:999px;padding:12px 18px;color:#fff;background:#30b0d029;font-size:12px;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:transform .25s ease,background .25s ease}.contact-form button:hover{transform:translateY(-2px);background:#30b0d03d}.contact-form button:disabled{cursor:wait;opacity:.7}.contact-note{margin:0;color:#ede8e4b3;font-size:13px}.contact-note.error{color:#ffb6b6}.contact-footer-line{display:flex;justify-content:space-between;gap:20px;margin-top:56px;padding-top:26px;border-top:1px solid rgba(255,255,255,.08);color:#ede8e46b;font-size:12px}@keyframes project-card-rise{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media(max-width:900px){.site-nav{padding:18px 5vw!important;align-items:flex-start!important}.site-nav-links{gap:12px!important;flex-wrap:wrap!important;justify-content:flex-end!important;max-width:76vw!important}.site-nav-links button{font-size:12px!important}.nav-cv-button{min-height:30px!important;padding-inline:10px!important}.hero-field{min-height:100svh!important}.hero-grid{grid-template-columns:1fr!important;align-content:center!important;gap:7vh!important;padding:96px 6vw 12vh!important}.hero-wordmark{width:100%!important;font-size:clamp(46px,14.2vw,86px)!important;line-height:.95!important;overflow-wrap:normal!important}.hero-copy{max-width:670px!important}.hero-copy-offset,.hero-copy h1{margin-left:0!important}.method-section{display:block!important;padding:12vh 5vw!important}.method-intro{position:relative!important;top:auto!important;margin-bottom:32px!important}.method-tags{margin-top:18px!important}.tech-section,.education-section,.contact-section{padding:12vh 5vw 8vh!important}.tech-grid,.education-grid,.contact-shell,.contact-link-grid{grid-template-columns:1fr!important}.projects-section{padding:12vh 5vw!important}.projects-card-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))!important;gap:16px!important}.project-detail-shell{display:block!important;padding:5vh 5vw 10vh!important}.project-detail-aside{position:relative!important;top:auto!important;margin-bottom:38px!important}.project-detail-article h1{font-size:clamp(34px,10vw,58px)!important}.project-detail-block{padding:22px!important}.tech-card{min-height:0!important}}@media(max-width:560px){.hero-wordmark{font-size:clamp(38px,13.6vw,60px)!important;letter-spacing:.03em!important;line-height:1.03!important}.gallery-heading{padding:0!important}.projects-card-grid{grid-template-columns:1fr!important}.project-card-surface{min-height:0!important}.project-card-media,.project-detail-media-frame{aspect-ratio:16 / 11!important}.media-viewer{padding:14px!important}.media-viewer-panel{width:100%!important;max-height:82vh!important}.media-viewer-topbar{min-height:44px!important;padding-left:14px!important}.media-viewer-media{max-height:calc(82vh - 44px)!important}.contact-field-grid{grid-template-columns:1fr!important}.contact-link-group{min-height:76px!important;padding:0 18px!important}.contact-email-line,.contact-social-card span{gap:14px!important}.contact-footer-line,.contact-footer-line span{display:block!important}}
