@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500;600;700&family=Figtree:wght@500;600;700;800&display=swap";*,:before,:after,::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:#3b82f680;--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:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;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}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family: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:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-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{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}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{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.fixed{position:fixed}.bottom-8{bottom:2rem}.right-8{right:2rem}.z-50{z-index:50}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.hidden{display:none}.translate-y-0{--tw-translate-y:0px;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-4{--tw-translate-y:1rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.gap-3{gap:.75rem}.overflow-hidden{overflow:hidden}.whitespace-nowrap{white-space:nowrap}.rounded-2xl{border-radius:1rem}.border{border-width:1px}.border-ash-200\/50{border-color:#e8eaed80}.bg-white\/50{background-color:#ffffff80}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.tracking-tight{letter-spacing:-.025em}.text-ash-600{--tw-text-opacity:1;color:rgb(128 134 139/var(--tw-text-opacity,1))}.text-ash-900{--tw-text-opacity:1;color:rgb(32 33 36/var(--tw-text-opacity,1))}.opacity-0{opacity:0}.opacity-100{opacity:1}.shadow-xl{--tw-shadow:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.backdrop-blur-md{--tw-backdrop-blur:blur(12px);-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,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-500{transition-duration:.5s}:root{--ink:#29202d;--cream:#fff8e9;--paper:#fffdf7;--pink:#ff8fab;--pink-soft:#ffd5df;--yellow:#ffdb63;--blue:#8ed7ff;--mint:#9be8c2;--lilac:#c9b5ff;--orange:#ff9d68;--line:#29202d;--muted:#6f6471;--shadow:6px 6px 0 var(--ink)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:94px}body{background:var(--cream);min-width:320px;color:var(--ink);-webkit-font-smoothing:antialiased;background-image:radial-gradient(#e7d7c0 1px,#0000 1px);background-size:24px 24px;margin:0;font-family:DM Sans,sans-serif}::selection{background:var(--pink);color:var(--ink)}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{color:inherit}img{max-width:100%;display:block}.site-shell{overflow:clip}.section-pad{width:min(100% - 40px,1180px);margin:0 auto;padding:112px 0}.site-header{z-index:50;background:var(--paper);border:2px solid var(--ink);width:min(100% - 32px,1180px);height:64px;box-shadow:4px 4px 0 var(--ink);border-radius:18px;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 12px 0 15px;display:grid;position:fixed;top:18px;left:50%;transform:translate(-50%)}.brand{align-items:center;gap:10px;width:max-content;font-weight:800;display:inline-flex}.brand-mark{background:var(--yellow);width:38px;height:38px;color:var(--ink);border:2px solid var(--ink);border-radius:12px 12px 12px 4px;place-items:center;font:700 13px DM Mono;display:grid;transform:rotate(-4deg)}.brand-name{letter-spacing:-.03em;font-family:Figtree}.desktop-nav{align-items:center;gap:5px;font-size:13px;font-weight:700;display:flex}.desktop-nav a{border-radius:10px;padding:9px 12px;transition:background .18s,transform .18s}.desktop-nav a:first-child:hover{background:var(--pink-soft);transform:rotate(-2deg)}.desktop-nav a:nth-child(2):hover{background:var(--blue);transform:rotate(2deg)}.desktop-nav a:nth-child(3):hover{background:var(--yellow);transform:rotate(-2deg)}.desktop-nav a:nth-child(4):hover{background:var(--mint);transform:rotate(2deg)}.desktop-nav a:nth-child(5):hover{background:var(--lilac);transform:rotate(-2deg)}.header-cta{background:var(--pink);border:2px solid var(--ink);border-radius:11px;justify-self:end;align-items:center;gap:7px;padding:10px 14px;font-size:13px;font-weight:800;transition:transform .18s,box-shadow .18s;display:flex}.header-cta:hover{box-shadow:3px 3px 0 var(--ink);transform:translate(-2px,-2px)}.menu-button{background:var(--yellow);border:2px solid var(--ink);cursor:pointer;border-radius:10px;padding:8px;display:none}.mobile-menu{z-index:100;background:var(--pink-soft);color:var(--ink);background-image:radial-gradient(var(--pink) 2px,transparent 2px);background-size:28px 28px;flex-direction:column;padding:24px;display:flex;position:fixed;inset:0}.mobile-menu>button{border:2px solid var(--ink);background:var(--yellow);box-shadow:3px 3px 0 var(--ink);cursor:pointer;border-radius:12px;align-self:flex-end;padding:12px}.mobile-menu>div{margin:auto 0}.mobile-menu a{border-bottom:2px solid var(--ink);letter-spacing:-.06em;align-items:baseline;gap:18px;padding:12px 0;font:800 clamp(42px,13vw,72px) Figtree;display:flex}.mobile-menu a:nth-child(odd){transform:rotate(-1deg)}.mobile-menu a:nth-child(2n){transform:rotate(1deg)}.mobile-menu a span{letter-spacing:0;font:500 12px DM Mono}.mobile-menu>p{background:var(--paper);border:2px solid var(--ink);max-width:310px;box-shadow:4px 4px 0 var(--ink);padding:12px;font-size:14px;font-weight:700}.hero{grid-template-columns:minmax(0,1.5fr) minmax(340px,.75fr);align-items:center;gap:76px;min-height:820px;padding-top:155px;display:grid;position:relative}.hero:before{content:"✦";color:var(--pink);font-size:55px;position:absolute;top:125px;right:35%;transform:rotate(18deg)}.hero:after{content:"hello!";background:var(--blue);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink);border-radius:50%;padding:10px 15px;font:700 13px DM Mono;position:absolute;top:135px;right:1%;transform:rotate(8deg)}.availability{background:var(--mint);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink);text-transform:uppercase;letter-spacing:.04em;border-radius:999px;align-items:center;gap:9px;padding:9px 12px;font:700 11px DM Mono;display:inline-flex;transform:rotate(-1deg)}.availability span{border:2px solid var(--ink);background:#34a86b;border-radius:50%;width:9px;height:9px;animation:1.8s ease-in-out infinite boop}@keyframes boop{50%{transform:scale(1.3)}}.hero-kicker{color:var(--muted);text-transform:uppercase;letter-spacing:.07em;margin:42px 0 14px;font:600 12px DM Mono}.hero h1{letter-spacing:-.065em;max-width:830px;margin:0;font:800 clamp(50px,6.5vw,92px)/.94 Figtree}.hero h1 span{z-index:0;color:var(--ink);white-space:nowrap;position:relative}.hero h1 span:after{content:"";z-index:-1;background:var(--yellow);border-radius:50%;height:.38em;position:absolute;bottom:.04em;left:-3%;right:-3%;transform:rotate(-1.5deg)}.hero-bottom{grid-template-columns:1fr auto;align-items:end;gap:32px;margin-top:42px;display:grid}.hero-bottom>p{max-width:580px;color:var(--muted);margin:0;font-size:17px;line-height:1.7}.hero-actions{flex-wrap:wrap;justify-content:flex-end;gap:12px;display:flex}.button{border:2px solid var(--ink);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:9px;min-height:50px;padding:0 20px;font-size:13px;font-weight:800;transition:transform .18s,box-shadow .18s;display:inline-flex}.button:hover{box-shadow:4px 4px 0 var(--ink);transform:translate(-3px,-3px)}.button-primary{background:var(--pink);color:var(--ink)}.button-secondary{background:var(--paper);color:var(--ink)}.button-light{background:var(--yellow);color:var(--ink)}.hero-panel{background:var(--lilac);color:var(--ink);border:2px solid var(--ink);box-shadow:var(--shadow);border-radius:26px 26px 26px 8px;flex-direction:column;align-self:center;display:flex;position:relative;overflow:visible;transform:rotate(2deg)}.hero-panel:before{content:"";z-index:-1;background:var(--yellow);border:2px solid var(--ink);border-radius:50%;width:90px;height:90px;position:absolute;top:-32px;right:-28px}.panel-topline{border-bottom:2px dashed var(--ink);text-transform:uppercase;letter-spacing:.07em;justify-content:space-between;padding:18px 20px;font:600 10px DM Mono;display:flex}.role-display{letter-spacing:-.04em;align-items:flex-start;gap:12px;min-height:137px;padding:38px 22px;font:800 clamp(24px,3vw,36px)/1.08 Figtree;display:flex}.role-display svg{flex:none;margin-top:4px}.hero-code{background:var(--ink);color:#fff9ec;border:2px solid var(--ink);border-radius:14px;grid-template-columns:24px 1fr;gap:6px 10px;margin:0 14px;padding:22px;font:11px/1.5 DM Mono;display:grid;transform:rotate(-1deg)}.hero-code span{color:#8d828f}.hero-code code:nth-of-type(2),.hero-code code:nth-of-type(3),.hero-code code:nth-of-type(4){color:var(--yellow)}.panel-footer{grid-template-columns:1fr 1fr;display:grid}.panel-footer div{flex-direction:column;gap:4px;padding:18px 20px;display:flex}.panel-footer div+div{border-left:2px dashed var(--ink)}.panel-footer strong{text-transform:uppercase;opacity:.55;font:600 9px DM Mono}.panel-footer span{font-size:12px;font-weight:700}.tech-strip{border-block:2px solid var(--ink);background:var(--yellow);width:101%;margin-left:-.5%;overflow:hidden;transform:rotate(-.4deg)}.marquee-content{width:max-content;animation:32s linear infinite marquee;display:flex}.marquee-content span{text-transform:uppercase;border-right:2px dashed var(--ink);padding:20px 34px;font:700 12px DM Mono}@keyframes marquee{to{transform:translate(-50%)}}.section-heading{max-width:780px;margin-bottom:66px}.eyebrow{text-transform:uppercase;letter-spacing:.08em;margin:0 0 23px;font:700 11px DM Mono}.eyebrow span{background:var(--yellow);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink);border-radius:9px;padding:8px 12px;display:inline-block;transform:rotate(-1deg)}.section-heading h2,.contact-copy h2,.modal-content h2{letter-spacing:-.06em;margin:0;font:800 clamp(40px,5vw,66px)/.98 Figtree}.section-copy{max-width:620px;color:var(--muted);margin:22px 0 0;font-size:17px;line-height:1.7}.about{padding-bottom:70px}.about-grid{grid-template-columns:1.1fr .9fr;gap:90px;display:grid}.about-intro{background:var(--paper);border:2px solid var(--ink);box-shadow:var(--shadow);border-radius:18px;padding:32px;position:relative;transform:rotate(-.5deg)}.about-intro:before{content:"about me ↘";background:var(--pink);border:2px solid var(--ink);border-radius:9px;padding:8px 11px;font:700 11px DM Mono;position:absolute;top:-18px;right:20px;transform:rotate(4deg)}.about-intro>p{color:var(--muted);line-height:1.75}.about-intro .large-copy{color:var(--ink);letter-spacing:-.025em;font-size:clamp(22px,2.4vw,31px);font-weight:600;line-height:1.4}.social-row{flex-wrap:wrap;gap:9px;margin-top:34px;display:flex}.social-row a{border:2px solid var(--ink);background:var(--blue);border-radius:10px;align-items:center;gap:7px;padding:10px 12px;font-size:12px;font-weight:700;transition:transform .18s,box-shadow .18s;display:flex}.social-row a:nth-child(2){background:var(--pink-soft)}.social-row a:nth-child(3){background:var(--mint)}.social-row a:hover{box-shadow:3px 3px 0 var(--ink);transform:translate(-2px,-2px)}.journey{background:var(--blue);border:2px solid var(--ink);box-shadow:var(--shadow);border-radius:18px;padding:0 25px 16px;transform:rotate(1deg)}.mini-title{text-transform:uppercase;letter-spacing:.08em;margin:0;font:700 10px DM Mono}.journey>.mini-title{border-bottom:2px dashed var(--ink);padding:20px 0}.timeline-item{border-bottom:2px dashed #29202d59;grid-template-columns:12px 1fr;gap:20px;padding:24px 0;display:grid}.timeline-item:last-child{border-bottom:0}.timeline-item>span{border:2px solid var(--ink);background:var(--paper);border-radius:50%;width:10px;height:10px;margin-top:6px}.timeline-item>span.active{background:var(--pink)}.timeline-item p{margin:0 0 7px;font:600 10px DM Mono}.timeline-item h3{margin:0 0 5px;font:800 17px Figtree}.timeline-item small{font-size:13px}.principles-grid{grid-template-columns:repeat(3,1fr);gap:20px;margin-top:92px;display:grid}.principles-grid article{border:2px solid var(--ink);min-height:260px;box-shadow:5px 5px 0 var(--ink);background:var(--pink-soft);border-radius:18px;flex-direction:column;padding:26px;display:flex}.principles-grid article:nth-child(2){background:var(--yellow);transform:translateY(18px)rotate(1deg)}.principles-grid article:nth-child(3){background:var(--mint);transform:rotate(-1deg)}.principles-grid article>span{font:600 10px DM Mono}.principles-grid svg{margin:auto 0 26px}.principles-grid h3{margin:0 0 9px;font:800 20px Figtree}.principles-grid p{color:#5d535f;margin:0;font-size:13px;line-height:1.6}.projects{background:var(--pink-soft);border-block:2px solid var(--ink);background-image:linear-gradient(90deg,#29202d0d 1px,#0000 1px),linear-gradient(#29202d0d 1px,#0000 1px);background-size:34px 34px;width:100%;max-width:none;padding-inline:max(20px,50vw - 590px)}.projects .eyebrow span{background:var(--blue)}.project-row{border-top:2px dashed #29202d73;grid-template-columns:1.15fr .85fr;align-items:center;gap:70px;padding:76px 0;display:grid}.project-row-reverse .project-image{order:2;transform:rotate(1.2deg)}.project-image{border:2px solid var(--ink);background:var(--paper);cursor:pointer;min-height:390px;box-shadow:var(--shadow);border-radius:20px;padding:0;position:relative;overflow:hidden;transform:rotate(-1deg)}.project-image img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;min-height:390px;transition:transform .45s}.project-image>span{background:var(--yellow);border:2px solid var(--ink);border-radius:10px;align-items:center;gap:7px;padding:11px 14px;font-size:12px;font-weight:800;transition:transform .2s;display:flex;position:absolute;bottom:18px;left:18px;transform:rotate(-2deg)}.project-image:hover img{transform:scale(1.04)}.project-image:hover>span{transform:rotate(2deg)scale(1.04)}.project-number{background:var(--paper);border:2px solid var(--ink);box-shadow:2px 2px 0 var(--ink);border-radius:8px;margin:0 0 22px;padding:7px 9px;font:700 10px DM Mono;display:inline-block}.featured-label{background:var(--yellow);border:2px solid var(--ink);text-transform:uppercase;border-radius:8px;margin:0 0 16px 8px;padding:7px 9px;font:700 9px DM Mono;display:inline-block;transform:rotate(2deg)}.project-content h3{letter-spacing:-.05em;margin:0 0 18px;font:800 clamp(36px,4vw,54px)/.98 Figtree}.project-content>p:not(.project-number){color:#5f5361;font-size:16px;line-height:1.7}.tag-list{flex-wrap:wrap;gap:7px;margin-top:23px;display:flex}.tag-list span{border:2px solid var(--ink);background:var(--paper);text-transform:uppercase;border-radius:999px;padding:7px 10px;font:600 9px DM Mono}.project-links{flex-wrap:wrap;gap:9px;margin-top:30px;display:flex}.project-links a,.project-links button{border:2px solid var(--ink);background:var(--paper);cursor:pointer;border-radius:9px;align-items:center;gap:7px;padding:10px 12px;font-size:12px;font-weight:800;transition:transform .18s,box-shadow .18s;display:inline-flex}.project-links a:nth-child(2){background:var(--mint)}.project-links a:nth-child(3){background:var(--blue)}.project-links a:hover,.project-links button:hover{box-shadow:3px 3px 0 var(--ink);transform:translate(-2px,-2px)}.research{padding-bottom:55px}.research .eyebrow span{background:var(--lilac)}.research-paper{border:2px solid var(--ink);background:var(--paper);box-shadow:var(--shadow);border-radius:22px;grid-template-columns:1fr .4fr;display:grid;position:relative;overflow:hidden}.research-meta{border-bottom:2px dashed var(--ink);background:var(--yellow);text-transform:uppercase;letter-spacing:.07em;grid-column:1/-1;justify-content:space-between;padding:16px 20px;font:700 10px DM Mono;display:flex}.research-main{grid-template-columns:55px 1fr;gap:24px;padding:42px;display:grid}.research-icon{background:var(--pink);border:2px solid var(--ink);border-radius:50% 50% 12px;place-items:center;width:50px;height:50px;display:grid;transform:rotate(-7deg)}.research-main h3{letter-spacing:-.05em;max-width:730px;margin:0 0 27px;font:800 clamp(28px,3.1vw,43px)/1.08 Figtree}.research-main p{max-width:760px;color:var(--muted);margin:0 0 14px;font-size:14px;line-height:1.75}.research-main strong{color:var(--ink)}.research-links{flex-wrap:wrap;gap:10px;margin-top:29px;display:flex}.research-links a{border:2px solid var(--ink);background:var(--pink-soft);border-radius:10px;align-items:center;gap:7px;padding:10px 12px;font-size:12px;font-weight:800;transition:transform .18s,box-shadow .18s;display:inline-flex}.research-links a+a{background:var(--blue)}.research-links a:hover{box-shadow:3px 3px 0 var(--ink);transform:translate(-2px,-2px)}.research-paper aside{border-left:2px dashed var(--ink);background:var(--mint);padding:40px 28px}.research-paper ol{margin:27px 0 0;padding:0;list-style:none}.research-paper li{border-bottom:2px dashed #29202d4d;grid-template-columns:30px 1fr;gap:10px;padding:14px 0;font-size:12px;font-weight:600;display:grid}.research-paper li span{color:#3c795c;font:700 10px DM Mono}.proof{padding-bottom:60px}.proof .eyebrow span{background:var(--pink)}.stats-grid{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.stats-grid article{border:2px solid var(--ink);background:var(--yellow);min-height:205px;box-shadow:5px 5px 0 var(--ink);border-radius:18px;flex-direction:column;padding:25px;display:flex}.stats-grid article:nth-child(2){background:var(--blue);transform:rotate(-1deg)}.stats-grid article:nth-child(3){background:var(--pink-soft);transform:rotate(1deg)}.stats-grid p{text-transform:uppercase;margin:0;font:700 10px DM Mono}.stats-grid strong{margin:auto 0 12px;font:800 58px Figtree}.stats-grid span{font-size:12px}.github-board{border:2px solid var(--ink);background:var(--paper);box-shadow:5px 5px 0 var(--ink);border-radius:18px;margin-top:30px;overflow:hidden}.board-header{border-bottom:2px dashed var(--ink);background:var(--lilac);justify-content:space-between;padding:17px 19px;font-size:12px;font-weight:700;display:flex}.board-header div,.board-header a{align-items:center;gap:8px;display:flex}.calendar-wrap{color:var(--muted);padding:28px;overflow-x:auto}.calendar-wrap>div{min-width:780px}.calendar-wrap rect{rx:3px;ry:3px}.skills{padding-bottom:75px}.skills .eyebrow span{background:var(--mint)}.skill-grid{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.skill-card{border:2px solid var(--ink);background:var(--paper);min-height:290px;box-shadow:5px 5px 0 var(--ink);border-radius:18px;padding:24px}.skill-card:nth-child(2n){background:var(--blue);transform:rotate(1deg)}.skill-card:nth-child(3n){background:var(--pink-soft);transform:rotate(-1deg)}.skill-card:nth-child(5){background:var(--yellow)}.skill-card>div{justify-content:space-between;align-items:flex-start;display:flex}.skill-card>div>span{font:700 10px DM Mono}.skill-card h3{margin:0;font:800 20px Figtree}.skill-card ul{gap:12px;margin:48px 0 0;padding:0;list-style:none;display:grid}.skill-card li{align-items:center;gap:9px;font-size:13px;font-weight:600;display:flex}.skill-card img{-o-object-fit:contain;object-fit:contain;filter:grayscale();width:18px;height:18px}.skill-dot{background:var(--pink);border:1.5px solid var(--ink);border-radius:50%;width:8px;height:8px}.lab-grid{grid-template-columns:1.1fr .9fr;gap:55px;margin-top:80px;display:grid}.lab-grid>div:first-child{background:var(--paper);border:2px solid var(--ink);box-shadow:var(--shadow);border-radius:20px;padding:30px}.lab-grid h3{margin:15px 0 11px;font:800 30px Figtree}.lab-grid>div>p:not(.mini-title){max-width:540px;color:var(--muted);line-height:1.7}.lab-grid code{background:var(--yellow);border:1px solid var(--ink);color:var(--ink);border-radius:4px;padding:2px 5px}.terminal{border:2px solid var(--ink);background:var(--ink);color:var(--paper);border-radius:14px;margin-top:28px;overflow:hidden;transform:rotate(-.5deg)}.terminal-bar{color:#bdb2bf;border-bottom:1px dashed #9e929f;justify-content:space-between;align-items:center;height:42px;padding:0 14px;font:10px DM Mono;display:flex}.terminal-dots{gap:5px;display:flex}.terminal-dots span{background:var(--pink);border:1px solid #fff;border-radius:50%;width:8px;height:8px}.terminal-dots span:nth-child(2){background:var(--yellow)}.terminal-dots span:nth-child(3){background:var(--mint)}.terminal-body{cursor:text;height:205px;padding:15px;font:12px/1.55 DM Mono;overflow-y:auto}.terminal-entry{margin-bottom:11px}.terminal-command{color:var(--yellow)}.terminal-command:before,.terminal-form:before{content:"›";color:var(--pink);margin-right:8px}.terminal-output{color:#c8bdca;margin:4px 0 0 17px}.terminal-form{display:flex}.terminal-form input{min-width:0;color:var(--paper);font:inherit;background:0 0;border:0;outline:0;flex:1}.toolkit-column{background:var(--lilac);border:2px solid var(--ink);box-shadow:var(--shadow);border-radius:20px;flex-direction:column;justify-content:space-between;gap:50px;padding:32px;display:flex;transform:rotate(1deg)}.simple-tags{flex-wrap:wrap;gap:8px;margin-top:21px;display:flex}.simple-tags span{border:2px solid var(--ink);background:var(--paper);border-radius:9px;padding:8px 10px;font-size:11px;font-weight:700}.certifications{padding-top:65px}.certifications .eyebrow span{background:var(--orange)}.cert-list{gap:12px;display:grid}.cert-list a{border:2px solid var(--ink);background:var(--paper);border-radius:14px;grid-template-columns:46px 1fr auto;align-items:center;gap:20px;padding:20px;transition:transform .18s,box-shadow .18s;display:grid}.cert-list a:nth-child(2n){background:var(--pink-soft)}.cert-list a:hover{box-shadow:5px 5px 0 var(--ink);transform:translate(-3px,-3px)rotate(-.3deg)}.cert-list>a>span{background:var(--yellow);border:2px solid var(--ink);border-radius:50%;place-items:center;width:32px;height:32px;font:700 9px DM Mono;display:grid}.cert-list h3{margin:0 0 4px;font:800 18px Figtree}.cert-list p{color:var(--muted);margin:0;font-size:12px}.contact{background:var(--blue);border-block:2px solid var(--ink);grid-template-columns:.85fr 1.15fr;gap:100px;width:100%;max-width:none;padding-inline:max(20px,50vw - 590px);display:grid;position:relative}.contact:before{content:"let's make cool stuff!";background:var(--yellow);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink);border-radius:10px;padding:9px 12px;font:700 11px DM Mono;position:absolute;top:32px;right:8%;transform:rotate(3deg)}.contact .eyebrow span{background:var(--pink)}.contact-copy>p:not(.eyebrow){color:#4f4b5c;max-width:480px;line-height:1.7}.contact-copy>a{background:var(--paper);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink);border-radius:9px;align-items:center;gap:8px;margin-top:34px;padding:10px 12px;font-size:13px;font-weight:800;display:inline-flex}.contact-form{background:var(--paper);border:2px solid var(--ink);box-shadow:var(--shadow);border-radius:20px;padding:34px;transform:rotate(-.5deg)}.form-row{grid-template-columns:1fr 1fr;gap:18px;display:grid}.contact-form label{margin-bottom:21px;display:block}.contact-form label span{text-transform:uppercase;margin-bottom:8px;font:700 10px DM Mono;display:block}.contact-form input,.contact-form textarea{border:2px solid var(--ink);width:100%;color:var(--ink);resize:vertical;background:#fff;border-radius:9px;outline:0;padding:12px 13px;transition:box-shadow .18s,transform .18s;box-shadow:2px 2px #b7aeb8}.contact-form input:focus,.contact-form textarea:focus{box-shadow:4px 4px 0 var(--pink);transform:translate(-2px,-2px)}.contact-form input::-moz-placeholder{color:#aaa0ac}.contact-form textarea::-moz-placeholder{color:#aaa0ac}.contact-form input::placeholder,.contact-form textarea::placeholder{color:#aaa0ac}.form-footer{justify-content:space-between;align-items:center;gap:20px;display:flex}.form-footer p{color:var(--muted);font-size:11px}.form-message{border:2px solid var(--ink);border-radius:9px;align-items:center;gap:8px;margin:17px 0 0;padding:10px;font-size:12px;font-weight:700;display:flex}.form-message.success{background:var(--mint)}.form-message.error{background:var(--pink-soft)}footer{background:var(--yellow);border-top:2px solid var(--ink);grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;min-height:125px;padding:30px max(24px,50vw - 590px);font-size:12px;font-weight:600;display:grid}footer>div{align-items:center;gap:11px;display:flex}footer .brand-mark{width:30px;height:30px;font-size:10px}footer>p{justify-self:center}footer>a{background:var(--paper);border:2px solid var(--ink);border-radius:8px;justify-self:end;align-items:center;gap:7px;padding:8px 10px;display:flex}.modal-backdrop{z-index:90;background:#29202dc7;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.project-modal{background:var(--cream);width:min(920px,100%);max-height:calc(100vh - 48px);color:var(--ink);border:2px solid var(--ink);box-shadow:10px 10px 0 var(--ink);border-radius:22px;grid-template-columns:1fr 1fr;display:grid;position:relative;overflow-y:auto}.modal-close{z-index:2;border:2px solid var(--ink);background:var(--yellow);width:42px;height:42px;box-shadow:3px 3px 0 var(--ink);cursor:pointer;border-radius:10px;place-items:center;display:grid;position:absolute;top:14px;right:14px}.modal-image{background:var(--pink-soft);border-right:2px solid var(--ink);min-height:560px}.modal-content .eyebrow span{background:var(--pink)}.modal-content h2{font-size:43px}.modal-description{color:var(--muted);line-height:1.7}.modal-content ul{border-top:2px dashed var(--ink);gap:12px;margin:29px 0 0;padding:26px 0 0;list-style:none;display:grid}.modal-content li{color:#564c58;align-items:flex-start;gap:9px;font-size:13px;line-height:1.5;display:flex}.modal-content li svg{color:#3c9b69;flex:none;margin-top:2px}.modal-actions{flex-wrap:wrap;gap:9px;margin-top:30px;display:flex}.modal-actions .button-secondary{background:var(--blue)}@media (width<=1000px){.section-pad{padding:88px 0}.desktop-nav,.header-cta{display:none}.site-header{grid-template-columns:1fr auto}.menu-button{display:block}.hero{grid-template-columns:1fr;gap:60px;min-height:auto;padding-top:140px}.hero:before{top:110px;right:15%}.hero:after{display:none}.hero-panel{min-height:430px;transform:rotate(1deg)}.about-grid,.lab-grid,.contact{grid-template-columns:1fr;gap:58px}.project-row{grid-template-columns:1fr;gap:34px}.project-row-reverse .project-image{order:0}.research-paper{grid-template-columns:1fr}.research-paper aside{border-left:0;border-top:2px dashed var(--ink)}.skill-grid{grid-template-columns:repeat(2,1fr)}.contact{width:100%;padding-inline:40px}.contact:before{display:none}.project-modal{grid-template-columns:1fr}.modal-image{border-right:0;border-bottom:2px solid var(--ink);min-height:300px;max-height:340px}}@media (width<=680px){.section-pad{width:min(100% - 30px,1180px);padding:70px 0}.site-header{border-radius:15px;width:calc(100% - 20px);height:58px;padding:0 8px 0 10px;top:10px}.brand-name{display:none}.brand-mark{width:34px;height:34px}.hero{padding-top:115px}.hero:before{display:none}.hero h1{font-size:clamp(43px,13vw,63px)}.hero h1 span{white-space:normal}.hero-bottom{grid-template-columns:1fr}.hero-actions{justify-content:flex-start}.hero-actions .button{flex:1}.hero-panel{transform:none}.role-display{min-height:125px}.section-heading{margin-bottom:46px}.about-grid{gap:42px}.about-intro{padding:26px 21px}.principles-grid,.stats-grid{grid-template-columns:1fr}.principles-grid article:nth-child(2),.principles-grid article:nth-child(3),.stats-grid article:nth-child(2),.stats-grid article:nth-child(3){transform:none}.projects{width:100%;padding-inline:15px}.project-row{padding:53px 0}.project-image,.project-image img{min-height:255px}.research-main{grid-template-columns:1fr;padding:27px 20px}.research-main h3{font-size:28px}.research-paper aside{padding:27px 20px}.skill-grid{grid-template-columns:1fr}.skill-card:nth-child(n){transform:none}.lab-grid{gap:28px}.lab-grid>div:first-child{padding:22px}.toolkit-column{padding:24px;transform:none}.contact{width:100%;padding:70px 15px}.contact-form{padding:24px 19px;transform:none}.form-row{grid-template-columns:1fr;gap:0}.form-footer{flex-direction:column;align-items:flex-start}.form-footer .button{width:100%}footer{grid-template-columns:1fr auto;padding:26px 15px}footer>p{display:none}.project-modal{border-radius:16px;display:block}.modal-backdrop{padding:9px}.modal-content{padding:35px 23px}.modal-image{min-height:220px;max-height:250px}.modal-actions .button{width:100%}}.research-paper-secondary{margin-top:24px}.research-paper-secondary .research-meta{background:var(--mint)}.research-paper-secondary .research-icon{background:var(--blue);border-radius:14px 50% 50%}.research-paper-secondary aside{background:var(--lilac)}body{background-image:radial-gradient(#29202d1a 1px,#0000 1px);background-size:30px 30px}.hero-panel,.about-intro,.journey,.principles-grid article:nth-child(n),.project-image,.project-row-reverse .project-image,.stats-grid article:nth-child(n),.skill-card:nth-child(n),.toolkit-column,.contact-form{transform:none}.about-intro,.journey,.principles-grid article,.project-image,.research-paper,.stats-grid article,.github-board,.skill-card,.lab-grid>div:first-child,.toolkit-column,.contact-form{box-shadow:4px 4px 0 var(--ink)}.principles-grid article:nth-child(2){transform:translateY(12px)}.projects{background-size:46px 46px}.project-image{aspect-ratio:16/9;min-height:0}.project-image img{aspect-ratio:16/9;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;min-height:0}.project-row{gap:76px}.research-facts{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:26px 0 4px;display:grid}.research-facts>div{background:var(--cream);border:2px solid var(--ink);border-radius:9px;padding:11px}.research-facts span{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px;font:700 8px DM Mono;display:block}.research-facts strong{font-size:11px;line-height:1.35;display:block}.calendar-wrap{background:var(--paper)}.project-modal{background:var(--cream);width:min(1080px,100%);display:block}.modal-image{aspect-ratio:16/8;border-right:0;border-bottom:2px solid var(--ink);background:#17131a;width:100%;min-height:0;max-height:none}.modal-image img{-o-object-fit:contain;object-fit:contain;width:100%;height:100%}.modal-content{padding:42px 48px 46px}.modal-content h2{max-width:760px}.case-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:30px;display:grid}.case-metrics>div{background:var(--yellow);border:2px solid var(--ink);border-radius:10px;flex-direction:column;justify-content:space-between;min-height:90px;padding:16px;display:flex}.case-metrics>div:nth-child(2){background:var(--blue)}.case-metrics>div:nth-child(3){background:var(--mint)}.case-metrics strong{font:800 25px Figtree}.case-metrics span{text-transform:uppercase;font:700 9px DM Mono}.case-study-grid{border:2px solid var(--ink);background:var(--paper);border-radius:12px;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:34px;display:grid;overflow:hidden}.case-study-grid section{padding:20px}.case-study-grid section+section{border-left:2px solid var(--ink)}.case-study-grid span{text-transform:uppercase;color:var(--muted);font:700 9px DM Mono}.case-study-grid p{color:#5d535f;margin:12px 0 0;font-size:13px;line-height:1.65}.case-details{grid-template-columns:1fr 1fr;gap:18px;margin-top:18px;display:grid}.case-details section{border:2px solid var(--ink);background:var(--paper);border-radius:12px;padding:20px}.case-details h3{margin:0 0 15px;font:800 17px Figtree}.case-details ul{gap:10px;margin:0;padding:0;list-style:none;display:grid}.case-details li{color:#5d535f;align-items:flex-start;gap:9px;font-size:12px;line-height:1.45;display:flex}.case-details li svg{flex:none;margin-top:1px}.modal-actions{border-top:2px dashed var(--ink);padding-top:24px}@media (width<=760px){.project-row{gap:28px}.project-image,.project-image img{min-height:0}.project-content h3{font-size:clamp(34px,11vw,48px)}.research-facts{grid-template-columns:1fr 1fr}.research-main h3{overflow-wrap:anywhere}.tag-list{gap:6px}.tag-list span{font-size:8px}.board-header{align-items:center;gap:12px}.board-header>a{white-space:nowrap}.calendar-wrap{padding:20px 16px}.project-modal{max-height:calc(100vh - 18px)}.modal-image{aspect-ratio:16/9;min-height:0;max-height:none}.modal-content{padding:32px 20px 28px}.modal-content h2{overflow-wrap:anywhere;font-size:clamp(34px,11vw,46px)}.case-metrics,.case-study-grid,.case-details{grid-template-columns:1fr}.case-study-grid section+section{border-left:0;border-top:2px solid var(--ink)}.modal-actions{display:grid}.modal-actions .button{width:100%}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.hover\:scale-105:hover{--tw-scale-x:1.05;--tw-scale-y:1.05;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:bg-white\/70:hover{background-color:#ffffffb3}.dark\:border-ash-700\/50:is(.dark *){border-color:#5f636880}.dark\:bg-ash-900\/50:is(.dark *){background-color:#20212480}.dark\:text-ash-100:is(.dark *){--tw-text-opacity:1;color:rgb(241 243 244/var(--tw-text-opacity,1))}.dark\:text-ash-400:is(.dark *){--tw-text-opacity:1;color:rgb(189 193 198/var(--tw-text-opacity,1))}.dark\:hover\:bg-ash-800\/70:hover:is(.dark *){background-color:#3c4043b3}@media (width>=1024px){.lg\:flex{display:flex}}
