@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@300;400;500&family=Inter:wght@400;500;600;700;800&display=swap";*,: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}.mx-auto{margin-left:auto;margin-right:auto}.mt-2{margin-top:.5rem}.mt-6{margin-top:1.5rem}.flex{display:flex}.\!grid{display:grid!important}.grid{display:grid}.w-full{width:100%}.max-w-4xl{max-width:56rem}.max-w-7xl{max-width:80rem}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.gap-y-3{row-gap:.75rem}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-t{border-top-width:1px}.border-\[\#2b2b2d\]{--tw-border-opacity: 1;border-color:rgb(43 43 45 / var(--tw-border-opacity, 1))}.border-\[\#7b5869\]{--tw-border-opacity: 1;border-color:rgb(123 88 105 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.bg-\[\#0d0d0e\]{--tw-bg-opacity: 1;background-color:rgb(13 13 14 / var(--tw-bg-opacity, 1))}.bg-\[\#121213\]{--tw-bg-opacity: 1;background-color:rgb(18 18 19 / var(--tw-bg-opacity, 1))}.bg-\[\#171717\]{--tw-bg-opacity: 1;background-color:rgb(23 23 23 / var(--tw-bg-opacity, 1))}.bg-\[\#7b5869\]{--tw-bg-opacity: 1;background-color:rgb(123 88 105 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.p-6{padding:1.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.pt-6{padding-top:1.5rem}.font-geist{font-family:Geist Mono,monospace}.font-system{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[16px\]{font-size:16px}.text-\[18px\]{font-size:18px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-\[26px\]{line-height:26px}.leading-\[29px\]{line-height:29px}.tracking-\[0\.14em\]{letter-spacing:.14em}.tracking-\[0\.16em\]{letter-spacing:.16em}.text-\[\#8f888d\]{--tw-text-opacity: 1;color:rgb(143 136 141 / var(--tw-text-opacity, 1))}.text-\[\#b9b3b7\]{--tw-text-opacity: 1;color:rgb(185 179 183 / var(--tw-text-opacity, 1))}.text-\[\#d4ced2\]{--tw-text-opacity: 1;color:rgb(212 206 210 / var(--tw-text-opacity, 1))}.text-\[\#d8b7c7\]{--tw-text-opacity: 1;color:rgb(216 183 199 / var(--tw-text-opacity, 1))}.text-\[\#f4f2f3\]{--tw-text-opacity: 1;color:rgb(244 242 243 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.decoration-\[\#7b5869\]{text-decoration-color:#7b5869}.decoration-1{text-decoration-thickness:1px}.underline-offset-4{text-underline-offset:4px}.shadow-\[0_18px_44px_rgba\(0\,0\,0\,0\.28\)\]{--tw-shadow: 0 18px 44px rgba(0,0,0,.28);--tw-shadow-colored: 0 18px 44px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.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}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}:root{font-family:Inter,sans-serif;font-synthesis:none}html{scroll-behavior:smooth}body{margin:0;background:#f3f0e8;color:#11110f}*{box-sizing:border-box}a{color:inherit;text-decoration:none}button{font:inherit}.custom-cursor{position:fixed;top:-18px;left:-18px;z-index:99999;width:36px;height:36px;pointer-events:none;opacity:0;transition:opacity .16s ease;will-change:transform}.custom-cursor i{position:absolute;inset:3px;border:1.5px solid #111;border-radius:50%;background:#ffd4002e;box-shadow:0 0 0 1px #fff6;transition:transform .18s ease,background .18s ease}.custom-cursor:after{content:"";position:absolute;top:50%;left:50%;width:6px;height:6px;border:1px solid #111;border-radius:50%;background:#ffd400;transform:translate(-50%,-50%)}.custom-cursor.is-visible{opacity:1}.custom-cursor.is-hovering i{background:#ffd4008c;transform:scale(1.45)}.custom-cursor.is-pressed i{transform:scale(.72)}.custom-cursor.on-grid i{opacity:0;transform:scale(.5)}.custom-cursor.on-grid:after{width:7px;height:7px;background:#1c2430}@media(pointer:fine){body,a,button,[role=button],input,textarea{cursor:none!important}}@media(pointer:coarse){.custom-cursor{transition-duration:.08s}}.portfolio-shell{--paper: #f3f0e8;--paper-2: #e7e5df;--ink: #11110f;--muted: #6c6b64;--line: rgba(17, 17, 15, .18);--accent: #ffd400;--card: #f8f6ef;min-height:100vh;color:var(--ink);background:var(--paper);transition:color .3s,background .3s}.portfolio-shell.is-dark{--paper: #050505;--paper-2: #111111;--ink: #f7f7f2;--muted: #a3a3a0;--line: rgba(255, 255, 255, .17);--card: #0b0b0b;--accent: #ffd400}.page-frame,.nav-frame{width:min(1120px,calc(100% - 48px));margin:0 auto}.ruled-section{border-bottom:2px solid var(--ink)}.site-header{position:sticky;top:0;z-index:50;height:76px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--paper) 92%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.nav-frame{height:100%;display:flex;align-items:center;justify-content:space-between;gap:28px}.monogram{display:grid;place-items:center;width:38px;height:38px;border:2px solid var(--ink);border-radius:7px;background:var(--accent);color:#111;font-family:DM Mono;font-weight:500;box-shadow:2px 2px 0 var(--ink)}.site-header nav{display:flex;gap:30px;margin-left:auto;font-size:13px}.site-header nav a,.nav-contact{position:relative}.site-header nav a:after{content:"";position:absolute;left:0;right:100%;bottom:-5px;height:1px;background:currentColor;transition:right .2s}.site-header nav a:hover:after{right:0}.nav-actions{display:flex;align-items:center;gap:10px}.theme-toggle{display:grid;place-items:center;width:38px;height:38px;border:1.5px solid var(--ink);border-radius:50%;background:transparent;color:var(--ink);cursor:pointer}.nav-contact{display:inline-flex;align-items:center;gap:7px;padding:10px 15px;border:1.5px solid var(--ink);border-radius:999px;font-size:12px;font-weight:600;box-shadow:2px 2px 0 var(--ink)}.nav-contact:hover{background:var(--accent);color:#111}.hero-grid{position:relative;min-height:calc(100vh - 76px);background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-position:var(--grid-x, 0) var(--grid-y, 0),var(--grid-x, 0) var(--grid-y, 0);background-size:76px 76px;will-change:background-position}.interactive-grid:after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:0;background:radial-gradient(circle 210px at var(--cursor-x, 50%) var(--cursor-y, 50%),rgba(255,218,45,.34) 0%,rgba(255,220,64,.22) 34%,rgba(255,223,91,.1) 58%,transparent 78%);transition:opacity .24s ease}.interactive-grid.cursor-on-grid:after{opacity:1}.is-dark .interactive-grid:after{background:radial-gradient(circle 210px at var(--cursor-x, 50%) var(--cursor-y, 50%),rgba(255,212,0,.26) 0%,rgba(255,212,0,.12) 40%,transparent 78%)}.hero-inner{min-height:calc(100vh - 76px);display:flex;flex-direction:column;justify-content:center;padding:80px 0 90px}.interactive-grid .hero-inner,.interactive-grid .photo-hero-inner{position:relative;z-index:1}.hero-kicker{display:flex;align-items:center;width:min(520px,100%);gap:12px;color:var(--muted);font:500 11px DM Mono;text-transform:uppercase;letter-spacing:.14em}.hero-kicker i{height:1px;flex:1;background:var(--line)}.hero-inner h1{margin:34px 0 24px;font-size:clamp(72px,10.5vw,152px);font-weight:800;letter-spacing:-.085em;line-height:.77;text-transform:uppercase}.hero-inner h1 span{display:block}.hero-copy{max-width:780px;margin:28px 0 0;font-size:clamp(28px,4vw,52px);line-height:1.08;letter-spacing:-.045em}.hero-copy strong{font-weight:700}.hero-actions{display:flex;align-items:center;gap:14px;margin-top:40px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;gap:22px;padding:9px 10px 9px 18px;border:1.5px solid var(--ink);border-radius:999px;font-size:13px;font-weight:600;background:var(--card);box-shadow:2px 2px 0 var(--ink)}.button span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--accent);color:#111}.availability{display:flex;align-items:center;gap:10px;padding:12px 16px;border:1px dashed var(--muted);border-radius:999px;color:var(--muted);font:400 11px DM Mono}.availability i{width:7px;height:7px;background:var(--accent);border:1px solid #111;border-radius:50%}.section-label{margin:0;color:var(--muted);font:500 10px DM Mono;text-transform:uppercase;letter-spacing:.16em}.statement-section{background:var(--card)}.section-heading h2{max-width:840px;margin:0;font-size:clamp(42px,6vw,78px);line-height:.98;letter-spacing:-.06em}.about-section{padding-top:105px;padding-bottom:125px}.about-heading{max-width:470px;padding-bottom:34px;border-bottom:1px solid var(--line)}.about-heading h2{margin:24px 0 0;font-size:clamp(44px,5vw,66px);line-height:1;letter-spacing:-.055em}.about-grid{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(0,1.5fr);gap:clamp(45px,8vw,105px);align-items:center;margin-top:58px}.about-photo-wrap{padding:0 8px 8px 0;border-radius:19px;background:var(--ink)}.about-photo-wrap img{display:block;width:100%;aspect-ratio:4 / 5;border:1.5px solid var(--ink);border-radius:16px;-o-object-fit:cover;object-fit:cover}.about-copy h3{max-width:700px;margin:0 0 34px;font-size:clamp(28px,3.4vw,45px);font-weight:500;line-height:1.18;letter-spacing:-.045em}.about-copy p{max-width:700px;margin:0;color:var(--muted);font-size:16px;line-height:1.72}.about-copy p+p{margin-top:20px}.skills-section{padding:128px 0 140px;background:var(--paper-2)}.section-heading{display:grid;grid-template-columns:1fr 3fr;gap:40px}.skill-table{margin-top:95px;border-top:1px solid var(--line)}.skill-row{display:grid;grid-template-columns:1fr 3fr;gap:40px;padding:24px 0;border-bottom:1px solid var(--line)}.skill-row h3{margin:0;font:500 11px DM Mono;text-transform:uppercase;letter-spacing:.12em}.skill-row div{display:flex;flex-wrap:wrap;gap:10px}.tech-badge{display:inline-flex;align-items:center;gap:9px;padding:7px 11px 7px 7px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:var(--card);box-shadow:0 1px #11110f0f;font-size:13px;white-space:nowrap;transition:border-color .2s,transform .2s,box-shadow .2s}.tech-badge i{display:grid;place-items:center;width:27px;height:27px;border-radius:6px;color:var(--tech-color);background:color-mix(in srgb,var(--tech-color) 10%,var(--paper));font-size:17px;font-style:normal}.tech-badge:hover{border-color:var(--tech-color);box-shadow:2px 2px 0 var(--tech-color);transform:translateY(-2px)}.experience-section{padding:150px 0;background:var(--paper)}.experience-grid{display:grid;grid-template-columns:minmax(240px,1fr) 2.3fr;gap:88px;align-items:start}.experience-grid aside{position:sticky;top:116px}.role-tab{display:flex;gap:14px;align-items:center;margin-top:26px;padding:15px;color:var(--muted);border-radius:4px}.role-tab+.role-tab{margin-top:2px}.role-tab.active{background:var(--paper-2);color:var(--ink)}.role-tab i{width:8px;height:8px;border:1px solid var(--muted);border-radius:50%}.role-tab.active i{background:var(--accent);border-color:var(--ink)}.role-tab span{display:flex;flex-direction:column;gap:4px}.role-tab strong{font-size:14px}.role-tab small{font:400 10px DM Mono}.experience-card{border:1.5px solid var(--ink);background:var(--card);box-shadow:8px 8px 0 var(--ink);padding:clamp(28px,5vw,64px)}.experience-meta{display:flex;justify-content:space-between;gap:20px;color:var(--muted);font:500 10px DM Mono;text-transform:uppercase;letter-spacing:.1em}.experience-card h2{margin:44px 0 25px;font-size:clamp(36px,5vw,63px);line-height:1.02;letter-spacing:-.055em}.experience-card>p{color:var(--muted);font-size:17px;line-height:1.65}.experience-card ol{list-style:none;margin:42px 0;padding:0;border-top:1px solid var(--line)}.experience-card li{display:grid;grid-template-columns:38px 1fr;gap:18px;padding:20px 0;border-bottom:1px solid var(--line);line-height:1.5}.experience-card li span{color:var(--muted);font:400 10px DM Mono}.inline-links{display:flex;gap:26px;flex-wrap:wrap}.inline-links a,.contribution-copy>a{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;border-bottom:1px solid var(--ink);padding-bottom:3px}.work-section{padding:135px 0 150px;background:var(--card)}.split-heading{align-items:end}.split-heading>p{max-width:410px;color:var(--muted);line-height:1.6}.project-list{display:grid;gap:22px;margin-top:86px}.project-card{position:relative;display:grid;grid-template-columns:80px 1fr auto;gap:35px;min-height:330px;padding:45px;border:1.5px solid #111;color:#111;box-shadow:6px 6px #111;overflow:hidden}.project-yellow{background:#ffd400}.project-intera{color:#fff;background:linear-gradient(135deg,#6b4e5b,#523744)}.project-blue{background:#9ec5ff}.project-number{font:500 12px DM Mono}.project-body{max-width:710px;align-self:center}.project-eyebrow{margin:0 0 18px!important;font:500 10px DM Mono!important;text-transform:uppercase;letter-spacing:.12em}.project-body h3{margin:0;font-size:clamp(38px,6vw,72px);line-height:.95;letter-spacing:-.06em}.project-body>p{max-width:620px;margin:24px 0;font-size:17px;line-height:1.55}.tag-row{display:flex;flex-wrap:wrap;gap:8px}.tag-row span{padding:7px 10px;border:1px solid #111;border-radius:999px;font:400 9px DM Mono;text-transform:uppercase}.project-links{display:flex;gap:9px}.project-links a{display:grid;place-items:center;width:42px;height:42px;border:1.5px solid #111;border-radius:50%;background:#ffffff73}.project-links a:hover{transform:translateY(-3px)}.project-intera .tag-row span{border-color:#ffffff9e}.project-intera .project-links a{border-color:#fff;color:#fff;background:#ffffff1c}.project-intera .project-links a:hover{background:#ffffff38}.opensource-section{padding:135px 0 150px;background:var(--paper)}.contribution-list{margin-top:90px;border-top:1.5px solid var(--ink)}.contribution{position:relative;display:grid;grid-template-columns:1fr 2.2fr;gap:50px;padding:44px 0;border-bottom:1.5px solid var(--ink)}.contribution-name>span{color:var(--muted);font:400 10px DM Mono}.contribution-name h3{margin:20px 0 10px;font-size:21px}.contribution-name small{display:flex;gap:6px;align-items:center;color:var(--muted);font:400 10px DM Mono}.merged{display:flex;gap:6px;align-items:center;color:#3c7419;font:500 10px DM Mono;text-transform:uppercase}.is-dark .merged{color:#a7d47e}.merged span{display:inline-flex;align-items:center;gap:5px;margin-left:10px;color:var(--muted);text-transform:none}.contribution-copy h4{margin:18px 0 13px;font-size:26px;letter-spacing:-.03em}.contribution-copy p{max-width:680px;margin:0 0 22px;color:var(--muted);line-height:1.6}.pagination{position:absolute;right:0;bottom:40px;display:flex;align-items:center;gap:10px}.pagination button{display:grid;place-items:center;width:32px;height:32px;border:1px solid var(--ink);border-radius:50%;color:var(--ink);background:transparent;cursor:pointer}.pagination span{font:400 9px DM Mono}.contact-section{background:var(--paper-2)}.contact-grid{min-height:760px;display:flex;align-items:flex-end;justify-content:space-between;gap:50px;padding-top:120px;padding-bottom:110px}.contact-grid h2{margin:28px 0;font-size:clamp(64px,9vw,124px);line-height:.83;letter-spacing:-.075em}.contact-grid p{max-width:590px;color:var(--muted);font-size:17px;line-height:1.6}.email-link{display:inline-flex;align-items:center;gap:12px;margin-top:26px;padding-bottom:6px;border-bottom:4px solid var(--accent);font-size:clamp(18px,3vw,30px);font-weight:600}.social-pills{display:flex;flex-wrap:wrap;gap:9px;margin-top:34px}.social-pills a{display:flex;gap:6px;align-items:center;padding:10px 14px;border:1.5px solid var(--ink);border-radius:999px;font-size:12px;background:var(--card)}.back-top{display:flex;flex-direction:column;align-items:center;gap:10px;flex:none;font:500 10px DM Mono;text-transform:uppercase}.back-top svg{width:45px;height:45px;padding:12px;border:1.5px solid var(--ink);border-radius:50%}.footer-line{display:flex;justify-content:space-between;gap:20px;padding-top:28px;padding-bottom:28px;border-top:1px solid var(--line);color:var(--muted);font:400 9px DM Mono;text-transform:uppercase;letter-spacing:.08em}.photo-hero{min-height:610px}.photo-hero-inner{min-height:610px;display:flex;flex-direction:column;justify-content:center;padding:70px 0}.photo-back{display:inline-flex;align-items:center;gap:8px;width:-moz-fit-content;width:fit-content;margin-bottom:75px;font:500 10px DM Mono;text-transform:uppercase;letter-spacing:.1em}.photo-title-row{display:grid;grid-template-columns:2.4fr 1fr;gap:60px;align-items:end}.photo-title-row .section-label{display:flex;align-items:center;gap:8px}.photo-title-row h1{margin:26px 0 0;font-size:clamp(68px,10vw,132px);font-weight:800;line-height:.8;letter-spacing:-.08em;text-transform:uppercase}.photo-title-row>p{max-width:360px;margin:0;padding-bottom:8px;color:var(--muted);font-size:16px;line-height:1.65}.photo-gallery{padding:120px 0 130px;background:var(--card)}.featured-photo-grid{display:grid;grid-template-columns:.7fr 1.7fr;gap:70px;align-items:center}.featured-photo-copy .photo-index{display:block;margin-top:36px;font:400 10px DM Mono;color:var(--muted)}.featured-photo-copy h2{margin:18px 0 12px;font-size:clamp(38px,5vw,65px);line-height:.95;letter-spacing:-.055em}.featured-photo-copy>p{color:var(--muted);line-height:1.6}.featured-photo-copy button{display:inline-flex;align-items:center;gap:8px;margin-top:26px;padding:10px 14px;border:1.5px solid var(--ink);border-radius:999px;color:var(--ink);background:var(--paper);box-shadow:2px 2px 0 var(--ink);cursor:pointer;font-size:12px;font-weight:600}.featured-photo{padding:12px;border:1.5px solid var(--ink);background:var(--paper-2);box-shadow:8px 8px 0 var(--ink);cursor:pointer;overflow:hidden}.featured-photo img{display:block;width:100%;aspect-ratio:16 / 11;-o-object-fit:cover;object-fit:cover;transition:transform .55s cubic-bezier(.2,.8,.2,1)}.featured-photo:hover img{transform:scale(1.025)}.photo-thumbnails{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-top:90px}.photo-thumbnails button{padding:0;border:1.5px solid var(--ink);color:var(--ink);background:var(--paper);text-align:left;cursor:pointer;opacity:.62;transition:opacity .2s,transform .2s,box-shadow .2s}.photo-thumbnails button:hover,.photo-thumbnails button.active{opacity:1;transform:translateY(-4px);box-shadow:4px 4px 0 var(--ink)}.photo-thumbnails img{display:block;width:100%;aspect-ratio:4 / 5;-o-object-fit:cover;object-fit:cover;border-bottom:1.5px solid var(--ink)}.photo-thumbnails span{display:flex;justify-content:space-between;gap:8px;padding:12px}.photo-thumbnails b,.photo-thumbnails small{font:500 9px DM Mono;text-transform:uppercase;letter-spacing:.06em}.photo-thumbnails small{color:var(--muted)}.photo-footer{display:flex;justify-content:space-between;gap:20px;padding-top:28px;padding-bottom:28px;color:var(--muted);font:400 9px DM Mono;text-transform:uppercase;letter-spacing:.08em}.photo-footer a{display:flex;align-items:center;gap:6px}.photo-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:25px;background:#000000e6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.photo-modal>div{position:relative;max-width:1100px;max-height:90vh}.photo-modal img{display:block;max-width:100%;max-height:90vh;-o-object-fit:contain;object-fit:contain}.photo-modal button{position:absolute;top:12px;right:12px;display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(255,255,255,.7);border-radius:50%;color:#fff;background:#0000008c;cursor:pointer}@media(max-width:800px){.page-frame,.nav-frame{width:min(100% - 32px,1120px)}.site-header nav{display:none}.nav-contact{display:none}.hero-grid,.hero-inner{min-height:calc(100svh - 76px)}.hero-inner h1{font-size:clamp(58px,18vw,92px);line-height:.82}.hero-copy{font-size:27px}.section-heading,.skill-row,.experience-grid,.contribution{grid-template-columns:1fr}.about-section,.skills-section,.experience-section,.work-section,.opensource-section{padding-top:90px;padding-bottom:100px}.about-grid{grid-template-columns:1fr;gap:45px}.about-photo-wrap{max-width:480px}.section-heading{gap:26px}.skill-table,.project-list,.contribution-list{margin-top:60px}.skill-row{gap:18px}.experience-grid{gap:45px}.experience-grid aside{position:static}.project-card{grid-template-columns:38px 1fr;padding:28px 24px;gap:18px}.project-links{grid-column:2}.contribution{gap:28px}.pagination{position:static;grid-column:1}.contact-grid{min-height:690px;align-items:flex-start;flex-direction:column;justify-content:center}.back-top{align-self:flex-end}.footer-line{flex-direction:column}.photo-hero,.photo-hero-inner{min-height:570px}.photo-back{margin-bottom:55px}.photo-title-row,.featured-photo-grid{grid-template-columns:1fr;gap:35px}.photo-title-row h1{font-size:clamp(58px,17vw,90px)}.photo-gallery{padding:85px 0 95px}.featured-photo{grid-row:1}.photo-thumbnails{grid-template-columns:repeat(2,1fr);margin-top:60px}.photo-footer{flex-direction:column}}@media(prefers-reduced-motion:no-preference){.hero-inner>*{animation:enter .65s both}.hero-inner>*:nth-child(2){animation-delay:.08s}.hero-inner>*:nth-child(3){animation-delay:.16s}.hero-inner>*:nth-child(4){animation-delay:.24s}@keyframes enter{0%{opacity:0;transform:translateY(18px)}}}@media(prefers-reduced-motion:reduce){.hero-grid{background-position:0 0;will-change:auto}}.placeholder\:text-\[\#8f888d\]::-moz-placeholder{--tw-text-opacity: 1;color:rgb(143 136 141 / var(--tw-text-opacity, 1))}.placeholder\:text-\[\#8f888d\]::placeholder{--tw-text-opacity: 1;color:rgb(143 136 141 / var(--tw-text-opacity, 1))}.hover\:border-\[\#7b5869\]:hover{--tw-border-opacity: 1;border-color:rgb(123 88 105 / var(--tw-border-opacity, 1))}.hover\:bg-\[\#1c181b\]:hover{--tw-bg-opacity: 1;background-color:rgb(28 24 27 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#221a1f\]:hover{--tw-bg-opacity: 1;background-color:rgb(34 26 31 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#8b6678\]:hover{--tw-bg-opacity: 1;background-color:rgb(139 102 120 / var(--tw-bg-opacity, 1))}.hover\:text-\[\#d8b7c7\]:hover{--tw-text-opacity: 1;color:rgb(216 183 199 / var(--tw-text-opacity, 1))}.hover\:opacity-75:hover{opacity:.75}@media(min-width:640px){.sm\:flex-row{flex-direction:row}.sm\:px-8{padding-left:2rem;padding-right:2rem}}@media(min-width:768px){.md\:flex-row{flex-direction:row}.md\:items-start{align-items:flex-start}}@media(min-width:1024px){.lg\:px-10{padding-left:2.5rem;padding-right:2.5rem}}
