@font-face{font-family:Bricolage Grotesque;src:url(/assets/fonts/bricolage.woff2) format("woff2");font-weight:200 800;font-style:normal;font-display:swap}@font-face{font-family:DM Sans;src:url(/assets/fonts/dmsans.woff2) format("woff2");font-weight:300 700;font-style:normal;font-display:swap}:root{--paper: #f2f0e9;--paper-deep: #e7e3d8;--paper-soft: #faf8f1;--ink: #171713;--ink-soft: #23231f;--ink-card: #1c1c18;--muted: #6b685e;--muted-dark: #a8a598;--acid: #a9cc3f;--acid-deep: #8faf2a;--blue: #4b57e8;--orange: #ef6038;--line: rgba(23, 23, 19, .15);--line-strong: rgba(23, 23, 19, .3);--line-dark: rgba(242, 240, 233, .14);--sans: "DM Sans", "Helvetica Neue", Arial, sans-serif;--display: "Bricolage Grotesque", "Helvetica Neue", Arial, sans-serif;--serif: "Bricolage Grotesque", "Helvetica Neue", Arial, sans-serif;--mono: "DM Sans", "Helvetica Neue", Arial, sans-serif;--ease: cubic-bezier(.16, 1, .3, 1);--ease-soft: cubic-bezier(.33, 1, .68, 1);--gutter: clamp(20px, 4vw, 64px);--header-h: 78px;--max: 1560px}*,*:before,*:after{box-sizing:border-box}html{scrollbar-width:none;scroll-behavior:smooth;scroll-padding-top:105px;-webkit-text-size-adjust:100%}html::-webkit-scrollbar,body::-webkit-scrollbar{width:0;height:0;display:none}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:18px;font-weight:400;line-height:1.45;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip}body.is-locked{overflow:hidden}::selection{background:var(--ink);color:var(--acid)}h1,h2,h3,h4,p,figure,dl,dd{margin:0}ul,ol{margin:0;padding:0;list-style:none}img,svg{display:block;max-width:100%}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}em{font-style:italic}:focus-visible{outline:2px solid var(--ink);outline-offset:4px}.experience :focus-visible,.site-footer :focus-visible,.project-dialog :focus-visible{outline-color:var(--acid)}.skip-link{position:fixed;top:12px;left:12px;z-index:10001;padding:12px 16px;background:var(--ink);color:var(--paper);font-family:var(--mono);font-size:11px;text-transform:uppercase;transform:translateY(-160%);transition:transform .25s ease}.skip-link:focus{transform:translateY(0)}.grain{position:fixed;inset:0;z-index:9990;pointer-events:none;opacity:.04;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.72'/%3E%3C/svg%3E")}.page-progress{position:fixed;inset:0 0 auto;height:2px;z-index:1000;background:transparent;pointer-events:none}.page-progress span{display:block;width:100%;height:100%;background:var(--acid);transform:scaleX(0);transform-origin:left center}.micro{font-family:var(--mono);font-size:11px;font-weight:500;line-height:1.5;letter-spacing:.1em;text-transform:uppercase}.muted{color:var(--muted)}.site-header{position:sticky;top:0;z-index:100;height:var(--header-h);border-bottom:1px solid transparent;background:#f2f0e9d1;background:color-mix(in srgb,var(--paper) 82%,transparent);transition:border-color .4s ease,background .4s ease}.site-header.is-scrolled{border-bottom-color:var(--line);background:#f2f0e9f0;background:color-mix(in srgb,var(--paper) 94%,transparent);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.header-inner{max-width:var(--max);height:100%;margin:0 auto;padding:0 var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:inline-flex;align-items:center;gap:10px;flex-shrink:0;font-family:var(--display);font-size:23px;font-weight:600;letter-spacing:-.055em}.brand-mark{display:grid;place-items:center;width:31px;height:31px;background:var(--ink);color:var(--acid);font-family:var(--serif);font-size:21px;font-style:italic;line-height:1;border-radius:2px;transition:transform .45s var(--ease),background .3s ease}.brand:hover .brand-mark{transform:rotate(-8deg);background:var(--acid);color:var(--ink)}.brand-name{position:relative;top:1px}.reg{font-family:var(--mono);font-size:7px;font-weight:400;letter-spacing:0;vertical-align:top;position:relative;top:2px;margin-left:2px}.main-nav{display:flex;align-items:center;gap:clamp(22px,3vw,42px);margin-left:auto;margin-right:clamp(12px,2vw,32px)}.main-nav a{position:relative;display:inline-flex;align-items:flex-start;gap:6px;padding:7px 0;font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.09em;text-transform:uppercase}.main-nav a span{color:var(--muted);font-size:8px;position:relative;top:1px;transition:color .25s ease}.main-nav a:after{content:"";position:absolute;left:0;right:100%;bottom:2px;height:1px;background:var(--ink);transition:right .4s var(--ease)}.main-nav a:hover:after,.main-nav a.is-active:after{right:0}.main-nav a:hover span,.main-nav a.is-active span{color:var(--ink)}.header-right{display:flex;align-items:center;gap:14px;flex-shrink:0}.availability{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:9px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.status-dot{display:inline-block;width:6px;height:6px;flex-shrink:0;border-radius:50%;background:var(--acid-deep);box-shadow:0 0 #b6ef268c;animation:pulse 2.4s infinite}@keyframes pulse{0%{box-shadow:0 0 #b6ef2680}70%{box-shadow:0 0 0 7px #b6ef2600}to{box-shadow:0 0 #b6ef2600}}.header-cta{display:inline-flex;align-items:center;gap:14px;height:42px;padding:0 18px;border-radius:999px;background:var(--ink);color:var(--paper);font-size:12px;font-weight:500;transition:background .3s ease,color .3s ease}.header-cta span{font-size:14px;transition:transform .3s var(--ease)}.header-cta:hover{background:var(--acid);color:var(--ink)}.header-cta:hover span{transform:translate(2px,-2px)}.resume-pill{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 13px;border:1px solid var(--line-strong);border-radius:999px;background:transparent;font-family:var(--mono);font-size:9px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;transition:border-color .25s ease,background .25s ease}.resume-pill:hover{border-color:var(--ink);background:var(--paper-soft)}.resume-pill span{font-size:12px;line-height:1}.menu-toggle{display:none;width:38px;height:38px;padding:0;border:1px solid var(--line-strong);border-radius:50%;background:transparent;position:relative}.menu-toggle span{position:absolute;left:11px;width:14px;height:1px;background:var(--ink);transition:transform .35s var(--ease),top .35s var(--ease)}.menu-toggle span:first-child{top:16px}.menu-toggle span:last-child{top:21px}.menu-toggle[aria-expanded=true] span:first-child{top:18px;transform:rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{top:18px;transform:rotate(-45deg)}.mobile-menu{position:fixed;inset:0;z-index:200;display:flex;flex-direction:column;padding:24px var(--gutter) 32px;background:var(--acid);color:var(--ink);transform:translateY(-102%);visibility:hidden;transition:transform .65s var(--ease),visibility .65s}.mobile-menu.is-open{transform:translateY(0);visibility:visible}.mobile-menu-top{display:flex;align-items:center;justify-content:space-between;padding-bottom:22px;border-bottom:1px solid rgba(23,23,19,.28)}.menu-close{padding:0;border:0;background:transparent;font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase}.menu-close span{font-size:18px;vertical-align:-1px;margin-left:4px}.mobile-nav{display:flex;flex-direction:column;margin-top:20px}.mobile-nav a{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-bottom:1px solid rgba(23,23,19,.2);font-family:var(--display);font-size:clamp(42px,12vw,64px);font-weight:500;line-height:1;letter-spacing:-.055em}.mobile-nav a span{font-family:var(--mono);font-size:9px;font-weight:400;letter-spacing:.08em;margin-top:8px}.mobile-menu-foot{margin-top:auto;display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding-top:28px;font-family:var(--mono);font-size:10px;letter-spacing:.04em}.mobile-menu-foot>a{border-bottom:1px solid currentColor}.mobile-menu-foot .socials{display:flex;gap:14px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:50px;padding:0 24px;border:1px solid transparent;border-radius:999px;font-size:13px;font-weight:500;line-height:1;white-space:nowrap;transition:background .3s ease,color .3s ease,border-color .3s ease,transform .3s var(--ease)}.btn-arrow{font-size:15px;transition:transform .35s var(--ease)}.btn:hover .btn-arrow{transform:translate(3px,-3px)}.btn--primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}.btn--primary:hover{background:var(--acid);color:var(--ink);border-color:var(--ink)}.btn--dark{background:var(--ink);color:var(--paper);border-color:var(--ink)}.btn--dark:hover{background:var(--paper);color:var(--ink)}.btn--text{gap:10px;min-height:50px;padding:0 2px;border:0;border-radius:0;border-bottom:1px solid var(--line-strong);color:var(--ink)}.btn--text:hover{border-bottom-color:var(--ink)}.btn--text:hover .btn-arrow{transform:translate(2px,-2px)}.link-arrow{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;margin-top:auto;padding:14px 0 12px;border:0;border-bottom:1px solid var(--line-strong);background:transparent;color:var(--ink);font-size:12px;font-weight:500;text-align:left;transition:color .3s ease,border-color .3s ease}.link-arrow span{display:grid;place-items:center;width:34px;height:34px;flex-shrink:0;border:1px solid currentColor;border-radius:50%;font-size:14px;transition:transform .35s var(--ease),background .3s ease,color .3s ease}.link-arrow:hover{border-bottom-color:var(--ink)}.link-arrow:hover span{transform:rotate(45deg);background:var(--ink);color:var(--paper)}.hero{max-width:var(--max);min-height:calc(100svh - var(--header-h));margin:0 auto;padding:clamp(22px,3.4vw,50px) var(--gutter) 0;display:flex;flex-direction:column}.hero-topline{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-bottom:20px;border-bottom:1px solid var(--line)}.hero-topline .micro{color:var(--ink)}.hero-topline .micro:last-child{color:var(--muted)}.hero-topline .micro:last-child .muted{color:var(--line-strong)}.hero-grid{display:grid;grid-template-columns:minmax(0,1.34fr) minmax(330px,.66fr);align-items:center;gap:clamp(34px,5.5vw,100px);padding:clamp(38px,6vw,82px) 0 clamp(34px,5vw,62px);flex:1}.hero-copy{min-width:0}.eyebrow{display:inline-flex;align-items:center;gap:9px;margin-bottom:clamp(22px,3vw,38px);font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.1em;text-transform:uppercase}.eyebrow-mark{width:7px;height:7px;background:var(--acid-deep);border:1px solid var(--ink);transform:rotate(45deg)}.hero-title{font-family:var(--display);font-size:clamp(4.2rem,7.85vw,8.7rem);font-weight:560;line-height:.85;letter-spacing:-.067em}.title-line{display:block;overflow:hidden;padding-bottom:.06em}.title-line>span{display:block}.title-line--serif{padding-bottom:.1em;font-family:var(--serif);font-weight:400;letter-spacing:-.025em}.title-line--serif em{display:inline-block;padding-right:.08em;background:linear-gradient(180deg,transparent 67%,var(--acid) 67%,var(--acid) 94%,transparent 94%);background-size:100% 100%}.js .hero-title .title-line>span{transform:translateY(112%);animation:title-in 1.05s var(--ease) forwards}.js .hero-title .title-line:nth-child(1)>span{animation-delay:.08s}.js .hero-title .title-line:nth-child(2)>span{animation-delay:.16s}.js .hero-title .title-line:nth-child(3)>span{animation-delay:.24s}@keyframes title-in{to{transform:translateY(0)}}.hero-lead{max-width:540px;margin-top:clamp(24px,3vw,38px);color:#555248;font-size:clamp(15px,1.35vw,17px);line-height:1.65;letter-spacing:-.01em}.hero-actions{display:flex;align-items:center;gap:clamp(18px,2.8vw,34px);margin-top:clamp(28px,3.7vw,45px)}.js .hero [data-hero-fade]{opacity:0;transform:translateY(14px);animation:fade-up .9s var(--ease) forwards}.js .hero .eyebrow[data-hero-fade]{animation-delay:.35s}.js .hero .hero-lead{animation-delay:.44s}.js .hero .hero-actions{animation-delay:.52s}.js .hero .hero-visual{animation-delay:.38s}@keyframes fade-up{to{opacity:1;transform:translateY(0)}}.hero-visual{position:relative;width:100%;max-width:435px;justify-self:end}.portrait-card{position:relative;z-index:2;margin:0;border:1px solid var(--ink);background:var(--paper-soft);box-shadow:13px 13px 0 var(--ink);transform:perspective(900px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg));transition:transform .6s var(--ease),box-shadow .4s ease;will-change:transform}.portrait-card:hover{box-shadow:16px 16px 0 var(--ink)}.portrait-canvas{position:relative;aspect-ratio:4 / 5;overflow:hidden;background:var(--acid)}.portrait-canvas img{width:100%;height:100%;object-fit:cover;object-position:58% 42%;filter:saturate(.9) contrast(1.03);transform:scale(1.002);transition:transform 1.2s var(--ease),filter .5s ease}.portrait-card:hover .portrait-canvas img{transform:scale(1.035)}.portrait-corner{position:absolute;z-index:2;padding:5px 7px;border:1px solid var(--ink);background:var(--paper);font-family:var(--mono);font-size:8px;font-weight:500;line-height:1;letter-spacing:.08em}.portrait-corner--tl{top:12px;left:12px}.portrait-corner--tr{top:12px;right:12px}.portrait-corner--bl{bottom:12px;left:12px}.portrait-caption{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border-top:1px solid var(--ink);font-family:var(--display);font-size:18px;font-weight:550;letter-spacing:-.04em}.portrait-caption .micro{color:var(--muted);font-size:8px}.portrait-sticker{position:absolute;z-index:4;top:-56px;right:-24px;width:clamp(108px,9.5vw,138px);height:clamp(108px,9.5vw,138px);filter:drop-shadow(4px 4px 0 rgba(23,23,19,.12))}.sticker-spin{transform-origin:70px 70px;animation:spin 22s linear infinite}.sticker-text{fill:var(--ink);font-family:var(--mono);font-size:9px;font-weight:500;letter-spacing:1.35px}@keyframes spin{to{transform:rotate(360deg)}}.portrait-note{position:absolute;z-index:1;left:-114px;bottom:18px;width:100px;font-family:var(--mono);font-size:9px;line-height:1.7;letter-spacing:.02em;text-transform:uppercase}.portrait-note .muted{display:inline-block;margin-bottom:3px;font-size:8px;letter-spacing:.1em}.hero-foot{display:grid;grid-template-columns:1fr 1.3fr 1fr;align-items:end;gap:30px;padding:22px 0 30px;border-top:1px solid var(--line)}.scroll-cue{display:inline-flex;align-items:center;gap:12px;justify-self:start;font-family:var(--mono);font-size:9px;font-weight:500;letter-spacing:.09em;text-transform:uppercase}.scroll-line{width:36px;height:1px;background:var(--ink);transform-origin:left;animation:scroll-line 2.6s var(--ease) infinite}@keyframes scroll-line{0%,to{transform:scaleX(.45);opacity:.35}50%{transform:scaleX(1);opacity:1}}.hero-disciplines{display:flex;justify-content:center;gap:clamp(14px,2.2vw,32px);font-size:12px;color:#47443c}.hero-disciplines span{position:relative;padding-left:14px;white-space:nowrap}.hero-disciplines span:before{content:"";position:absolute;left:0;top:50%;width:4px;height:4px;border-radius:50%;background:var(--ink);transform:translateY(-50%)}.hero-foot-note{justify-self:end;text-align:right;color:var(--ink);font-size:9px}.ticker-wrap{position:relative;z-index:3;margin:clamp(30px,4vw,52px) 0 0;padding:clamp(9px,1vw,13px) 0;overflow:hidden}.ticker{position:relative;width:calc(100% + 24px);margin:0 -12px;padding:0;overflow:hidden;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);background:var(--ink);color:var(--paper);transform:rotate(-1.05deg)}.ticker-track{display:flex;width:max-content;animation:ticker 32s linear infinite}.ticker-group{display:flex;align-items:center;gap:clamp(24px,3.2vw,48px);padding:15px 24px;font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}.ticker-group i{color:var(--acid);font-family:var(--sans);font-size:15px;font-style:normal;line-height:1}@keyframes ticker{to{transform:translate(-50%)}}.section{max-width:var(--max);margin:0 auto;padding:clamp(88px,10vw,150px) var(--gutter)}.section-head{display:grid;grid-template-columns:2.1fr 6.9fr 3fr;align-items:end;gap:clamp(20px,3vw,44px);margin-bottom:clamp(30px,4vw,50px);padding-bottom:clamp(26px,3.4vw,42px);border-bottom:1px solid var(--line-strong)}.section-label{align-self:start;font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}.section-label span{display:inline-grid;place-items:center;width:26px;height:19px;margin-right:6px;border:1px solid var(--line-strong);border-radius:999px;font-size:8px}.section-head h2{max-width:780px;font-family:var(--display);font-size:clamp(2.9rem,5.3vw,5.2rem);font-weight:540;line-height:.96;letter-spacing:-.058em}.section-head h2 em{font-family:var(--serif);font-weight:400;letter-spacing:-.012em}.section-note{justify-self:end;max-width:295px;color:var(--muted);font-size:13px;line-height:1.6}.project{border:1px solid var(--line-strong);overflow:hidden}.project--featured{display:grid;grid-template-columns:minmax(0,1.32fr) minmax(330px,.68fr);background:var(--ink);color:var(--paper);min-height:620px}.project-media{position:relative;overflow:hidden;padding:clamp(24px,4vw,58px);display:flex;align-items:center;justify-content:center}.art-label{position:absolute;top:20px;left:24px;z-index:6;padding:4px 7px;border:1px solid currentColor;font-size:8px;color:#17171394}.project-media--scores{color:var(--ink);background-color:#ded8ca;background-image:linear-gradient(rgba(23,23,19,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(23,23,19,.06) 1px,transparent 1px);background-size:32px 32px}.project-media--scores:before{content:"";position:absolute;inset:14% -8% -14% 32%;border-radius:50%;background:var(--acid);opacity:.52;filter:blur(2px)}.browser-frame{position:relative;z-index:2;width:100%;max-width:720px;overflow:hidden;border:1px solid var(--ink);background:var(--paper-soft);box-shadow:20px 22px #17171329;transform:translateY(0);transition:transform .8s var(--ease),box-shadow .5s ease}.project--featured:hover .browser-frame{transform:translateY(-4px);box-shadow:24px 28px #17171321}.window-chrome{display:grid;grid-template-columns:1fr 2fr 1fr;align-items:center;height:32px;padding:0 10px;border-bottom:1px solid rgba(23,23,19,.18);background:#e9e4d7}.window-chrome--compact{height:27px}.window-dots{display:flex;gap:5px}.window-dots i{width:6px;height:6px;border:1px solid rgba(23,23,19,.35);border-radius:50%}.window-url{justify-self:center;padding:3px 17px;border:1px solid rgba(23,23,19,.1);border-radius:999px;background:#ffffff5c;font-family:var(--mono);font-size:7px;color:#6d695f}.window-plus{justify-self:end;color:#6d695f;font-family:var(--mono);font-size:10px}.project-shot{display:block;width:100%;height:auto;background:#f2eee3}.project-live{display:inline-flex;align-items:center;gap:5px;color:var(--acid);border-bottom:1px solid rgba(169,204,63,.4);transition:border-color .25s ease}.project-live:hover{border-color:var(--acid)}.project-media--camp{color:var(--paper);background:#1f4a3a}.project-media--camp:before{content:"";position:absolute;top:-34%;right:-18%;width:76%;aspect-ratio:1;border-radius:50%;background:var(--acid);opacity:.16}.project--compact .project-media--camp .art-label{color:#f2f0e9b8}.camp-frame{position:relative;z-index:2;width:100%;max-width:560px;overflow:hidden;border:1px solid var(--ink);background:var(--paper-soft);box-shadow:14px 16px #05161047;transform:translateY(0);transition:transform .8s var(--ease)}.project--compact:hover .camp-frame{transform:translateY(-3px)}.camp-stamp{position:absolute;z-index:3;right:16px;bottom:16px;display:flex;flex-direction:column;gap:2px;padding:8px 10px;border:1px solid var(--ink);background:var(--paper);color:var(--ink);font-family:var(--mono);font-size:6px;letter-spacing:.06em;text-transform:uppercase;transform:rotate(2deg);box-shadow:4px 4px #17171324}.camp-stamp b{font-size:7px;font-weight:600}.project-media--pay{color:var(--ink);background:var(--orange)}.project-media--pay .art-label{color:#171713a6}.pay-orbit{position:absolute;top:-25%;left:-15%;width:130%;aspect-ratio:1;border:1px solid rgba(242,240,233,.28);border-radius:50%}.pay-orbit:before,.pay-orbit:after{content:"";position:absolute;border:1px solid rgba(242,240,233,.2);border-radius:50%}.pay-orbit:before{inset:11%}.pay-orbit:after{inset:23%}.sharepay-phone{position:relative;z-index:2;width:min(265px,73%);padding:12px 14px 14px;border:1px solid #0e0e0c;border-radius:29px;background:var(--ink);color:var(--paper);box-shadow:18px 22px #741e0947;transform:rotate(-4deg) translateY(6px);transition:transform .8s var(--ease)}.project--compact:hover .sharepay-phone{transform:rotate(-1.5deg) translateY(0)}.sharepay-status{display:flex;justify-content:space-between;padding:0 5px;font-family:var(--mono);font-size:6px;color:#f2f0e9a6}.sharepay-top{display:flex;align-items:center;justify-content:space-between;margin-top:13px;padding:0 3px}.sharepay-logo{font-family:var(--display);font-size:18px;font-weight:570;letter-spacing:-.05em}.sharepay-logo span{color:var(--acid)}.sharepay-avatar{display:grid;place-items:center;width:22px;height:22px;border:1px solid rgba(242,240,233,.25);border-radius:50%;font-family:var(--mono);font-size:5.5px;color:var(--muted-dark)}.sharepay-label{margin-top:18px;padding:0 3px;font-family:var(--mono);font-size:5.5px;letter-spacing:.12em;color:#f2f0e973}.sharepay-phone h4{margin:6px 0 15px;padding:0 3px;font-family:var(--display);font-size:22px;font-weight:470;line-height:1.04;letter-spacing:-.045em}.sharepay-phone h4 em{font-family:var(--serif);font-size:1.5em;font-weight:400;color:var(--acid)}.sharepay-group{display:flex;align-items:center;justify-content:space-between;padding:9px 3px;border-top:1px solid rgba(242,240,233,.12);border-bottom:1px solid rgba(242,240,233,.12);font-family:var(--mono);font-size:5.5px;color:#f2f0e980}.sharepay-faces{display:flex}.sharepay-faces i{display:grid;place-items:center;width:18px;height:18px;margin-right:-5px;border:1px solid var(--ink);border-radius:50%;background:#3a3a32;color:var(--paper);font-family:var(--mono);font-size:4.5px;font-style:normal}.sharepay-faces i:nth-child(1){background:var(--acid);color:var(--ink)}.sharepay-faces i:nth-child(2){background:var(--orange)}.sharepay-faces i:nth-child(3){background:#d7d1c2;color:var(--ink)}.sharepay-faces i:nth-child(4){background:var(--blue)}.sharepay-list{display:flex;flex-direction:column;padding:6px 3px 11px}.sharepay-list div{display:flex;justify-content:space-between;padding:5px 0;font-size:7px;color:#f2f0e9b3}.sharepay-list b{font-family:var(--mono);font-size:6px;font-weight:400;color:var(--acid)}.sharepay-list .is-settled{color:#f2f0e959}.sharepay-button{display:grid;place-items:center;height:30px;border-radius:999px;background:var(--acid);color:var(--ink);font-family:var(--mono);font-size:6px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.pay-chip{position:absolute;z-index:3;right:14px;bottom:16px;display:inline-flex;align-items:center;gap:7px;padding:7px 9px;border:1px solid var(--ink);border-radius:999px;background:var(--paper);color:var(--ink);font-family:var(--mono);font-size:6px;letter-spacing:.04em;text-transform:uppercase;transform:rotate(2deg)}.pay-chip span{color:#8a3c20;font-size:8px}.project-body{display:flex;flex-direction:column;padding:clamp(28px,3.6vw,48px)}.project-kicker{display:flex;justify-content:space-between;gap:16px;padding-bottom:15px;border-bottom:1px solid rgba(242,240,233,.18);font-family:var(--mono);font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:var(--acid)}.project-kicker>span:last-child{color:#f2f0e999}.project-body h3{margin:24px 0 14px;font-family:var(--display);font-size:clamp(3.2rem,4.5vw,4.9rem);font-weight:530;line-height:.9;letter-spacing:-.065em}.project-desc{color:#f2f0e99e;font-size:13.5px;line-height:1.65}.project-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:22px}.project-tags span{padding:5px 9px;border:1px solid rgba(242,240,233,.17);border-radius:999px;color:#f2f0e9b3;font-family:var(--mono);font-size:7px;letter-spacing:.06em;text-transform:uppercase}.project-meta{margin:25px 0 28px}.project-meta div{display:flex;justify-content:space-between;gap:20px;padding:9px 0;border-bottom:1px solid rgba(242,240,233,.1)}.project-meta dt{font-family:var(--mono);font-size:7px;letter-spacing:.08em;text-transform:uppercase;color:#f2f0e98c}.project-meta dd{font-size:10.5px;text-align:right;color:#f2f0e9cc}.project--featured .link-arrow{color:var(--paper);border-bottom-color:#a9cc3f8c;padding-top:11px}.project--featured .link-arrow:hover{color:var(--acid)}.project--featured .link-arrow:hover span{background:var(--acid);color:var(--ink)}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2vw,26px);margin-top:clamp(16px,2vw,26px)}.project--compact{display:flex;flex-direction:column;background:var(--paper-deep)}.project--compact .project-media{height:430px;padding:24px;flex-shrink:0}.project--compact .art-label{color:#1717138c}.project--compact .project-body{padding:27px 30px 25px}.project--compact .project-kicker{border-bottom-color:var(--line);color:var(--muted)}.project--compact .project-kicker>span:last-child{color:var(--muted)}.project--compact h3{margin:22px 0 12px;font-size:clamp(2.6rem,3.5vw,3.6rem)}.project--compact .project-desc{color:#5d5a51;font-size:13.5px}.project--compact .project-tags{margin-top:18px}.project--compact .project-tags span{border-color:var(--line-strong);color:#5d5a51}.project--compact .link-arrow{margin-top:26px}.project--compact h3,.project--compact .project-desc,.project--compact .project-tags{transition:transform .5s var(--ease)}.about{border-top:1px solid var(--line-strong)}.about-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.62fr);gap:clamp(40px,7vw,120px);align-items:start}.about-big{max-width:850px;font-family:var(--display);font-size:clamp(2.3rem,4.2vw,4.15rem);font-weight:500;line-height:1.04;letter-spacing:-.055em}.about-big em{font-family:var(--serif);font-weight:400;letter-spacing:-.015em}.about-copy{max-width:790px;margin-top:clamp(28px,3.5vw,42px)}.about-copy p{color:#56534a;font-size:14.5px;line-height:1.78}.about-copy p+p{margin-top:16px}.about-copy p:first-child{color:var(--ink)}.about-meta{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;max-width:790px;margin-top:32px;padding-top:16px;border-top:1px solid var(--line)}.signature{font-family:var(--serif);font-size:54px;font-style:italic;line-height:.8;letter-spacing:-.04em}.signature span{color:transparent;-webkit-text-stroke:1px var(--ink)}.about-origin{color:var(--muted);font-size:8px;text-align:right;white-space:nowrap}.stack-panel{position:sticky;top:calc(var(--header-h) + 26px);border:1px solid var(--ink);background:var(--paper-soft);box-shadow:9px 9px 0 var(--ink)}.stack-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:18px 20px;border-bottom:1px solid var(--line-strong)}.stack-head .micro{color:var(--muted);font-size:7px}.stack-head h3{margin-top:8px;font-family:var(--display);font-size:27px;font-weight:540;line-height:.95;letter-spacing:-.05em}.stack-index{display:grid;place-items:center;width:34px;height:34px;flex-shrink:0;border:1px solid var(--ink);background:var(--acid);font-family:var(--serif);font-size:22px;font-style:italic;line-height:1}.stack-grid{display:grid;grid-template-columns:1fr 1fr}.stack-group{padding:18px;border-bottom:1px solid var(--line)}.stack-group:nth-child(odd){border-right:1px solid var(--line)}.stack-group:nth-last-child(-n+2){border-bottom:0}.stack-code{display:inline-grid;place-items:center;width:27px;height:21px;margin-bottom:14px;border:1px solid var(--line-strong);color:var(--muted);font-family:var(--mono);font-size:6.5px;letter-spacing:.04em}.stack-group h4{margin-bottom:7px;font-family:var(--display);font-size:17px;font-weight:570;line-height:1.1;letter-spacing:-.035em}.stack-group p{color:#5d5a51;font-size:11.5px;line-height:1.55}.stack-foot{display:flex;flex-direction:column;gap:4px;padding:13px 18px;border-top:1px solid var(--line-strong);color:var(--muted);font-family:var(--mono);font-size:6.5px;line-height:1.5;letter-spacing:.03em;text-transform:uppercase}.stack-foot span:first-child{color:var(--ink)}.experience{max-width:none;width:100%;background:var(--ink);color:var(--paper);padding-left:max(var(--gutter),calc((100vw - var(--max)) / 2 + var(--gutter)));padding-right:max(var(--gutter),calc((100vw - var(--max)) / 2 + var(--gutter)))}.experience>*{width:100%;max-width:calc(var(--max) - var(--gutter) * 2);margin-left:auto;margin-right:auto}.section-head--dark{border-bottom-color:var(--line-dark)}.section-head--dark .section-label span{border-color:#f2f0e947}.section-head--dark .section-note{color:var(--muted-dark)}.section-head--dark h2 em{color:var(--acid)}.experience-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(275px,.52fr);gap:clamp(28px,4vw,56px);align-items:start}.experience-main{min-width:0}.role-tabs-head{display:flex;justify-content:space-between;gap:20px;padding-bottom:10px;color:var(--muted-dark)}.role-tabs-head .micro{font-size:7px}.role-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-bottom:8px}.role-tab{display:flex;align-items:center;gap:10px;min-width:0;padding:12px;border:1px solid #3c3c33;border-radius:3px;background:transparent;color:var(--paper);text-align:left;transition:background .3s ease,border-color .3s ease,color .3s ease,transform .35s var(--ease)}.role-tab:hover{border-color:#a9cc3f6b;transform:translateY(-2px)}.role-tab.is-active{border-color:var(--acid);background:var(--acid);color:var(--ink)}.role-tab-mark{display:grid;place-items:center;width:32px;height:32px;flex-shrink:0;border:1px solid #4b4b40;background:#22221d;color:var(--acid);font-family:var(--mono);font-size:7px;letter-spacing:.04em}.role-tab.is-active .role-tab-mark{border-color:var(--ink);background:var(--ink);color:var(--acid)}.role-tab-info{min-width:0}.role-tab-info b{display:block;overflow:hidden;font-family:var(--display);font-size:13.5px;font-weight:540;line-height:1.15;letter-spacing:-.03em;text-overflow:ellipsis;white-space:nowrap}.role-tab-info small{display:block;margin-top:3px;color:var(--muted-dark);font-family:var(--mono);font-size:6.5px;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.role-tab.is-active .role-tab-info small{color:#17171399}.role-panels{position:relative}.role-panel{position:relative;min-height:360px;overflow:hidden;padding:clamp(22px,2.7vw,32px);border:1px solid #3c3c33;border-radius:3px;background:var(--ink-card);animation:panel-in .4s var(--ease)}.role-panel[hidden]{display:none}@keyframes panel-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.role-panel:after{content:attr(data-mark);position:absolute;right:20px;bottom:-38px;z-index:0;color:#f2f0e909;font-family:var(--display);font-size:clamp(130px,14vw,190px);font-weight:650;line-height:.7;letter-spacing:-.08em;pointer-events:none}.role-panel>*{position:relative;z-index:1}.role-panel-top{display:flex;align-items:center;justify-content:space-between;gap:18px}.role-eyebrow{color:var(--acid);font-family:var(--mono);font-size:6.5px;letter-spacing:.08em;text-transform:uppercase}.role-date{display:inline-flex;align-items:center;gap:6px;padding:2px 0;color:var(--muted-dark);font-family:var(--mono);font-size:6.5px;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.role-date i{width:5px;height:5px;border-radius:50%;background:var(--acid)}.role-panel h3{max-width:90%;margin:22px 0 8px;font-family:var(--display);font-size:clamp(2rem,3vw,2.9rem);font-weight:520;line-height:.96;letter-spacing:-.06em}.role-company{color:var(--muted-dark);font-size:12px;line-height:1.4}.role-company span{color:#777468}.role-points{display:grid;gap:10px;margin:22px 0 20px;counter-reset:rolepoint}.role-points li{position:relative;padding-left:33px;color:var(--muted-dark);font-size:12.5px;line-height:1.6;counter-increment:rolepoint}.role-points li:before{content:"0" counter(rolepoint);position:absolute;left:0;top:0;display:grid;place-items:center;width:22px;height:22px;border:1px solid #45453b;border-radius:50%;color:var(--acid);font-family:var(--mono);font-size:6px;letter-spacing:0}.role-tags{display:flex;flex-wrap:wrap;gap:5px}.role-tags span{padding:4px 7px;border:1px solid #3c3c33;border-radius:999px;color:var(--muted-dark);font-family:var(--mono);font-size:6.5px;letter-spacing:.04em;text-transform:uppercase}.experience-side{position:sticky;top:calc(var(--header-h) + 24px);display:flex;flex-direction:column;gap:14px}.snapshot-card{padding:21px;border:1px solid #3c3c33;background:var(--ink-card)}.snapshot-head{display:flex;justify-content:space-between;gap:12px;padding-bottom:13px;border-bottom:1px solid var(--line-dark);color:var(--muted-dark)}.snapshot-head .micro{font-size:7px}.snapshot-grid{display:grid;grid-template-columns:1fr 1fr}.snapshot-grid div{padding:17px 0;border-bottom:1px solid var(--line-dark)}.snapshot-grid div:nth-child(odd){padding-right:14px;border-right:1px solid var(--line-dark)}.snapshot-grid div:nth-child(2n){padding-left:17px}.snapshot-grid div:nth-last-child(-n+2){padding-bottom:2px;border-bottom:0}.snapshot-grid strong{display:block;color:var(--paper);font-family:var(--display);font-size:clamp(2rem,2.8vw,2.7rem);font-weight:510;line-height:1;letter-spacing:-.06em}.snapshot-grid span{display:block;margin-top:5px;color:var(--muted-dark);font-family:var(--mono);font-size:6.5px;letter-spacing:.07em;text-transform:uppercase}.btn--acid{background:var(--acid);color:var(--ink);border-color:var(--acid)}.btn--acid:hover{background:var(--paper);border-color:var(--paper)}.exp-resume{width:100%;min-height:46px;font-size:11px}.credentials{margin-top:clamp(42px,5vw,62px);padding-top:18px;border-top:1px solid var(--line-dark)}.credentials-head{display:flex;justify-content:space-between;gap:20px;margin-bottom:15px;color:var(--muted-dark)}.credentials-head .micro{font-size:7px}.credentials-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.credential-card{position:relative;overflow:hidden;padding:clamp(20px,2.3vw,27px);border:1px solid #3c3c33;background:var(--ink-card)}.degree-card:after{content:"";position:absolute;top:-110px;right:-70px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(169,204,63,.11),transparent 66%);pointer-events:none}.credential-top{display:flex;justify-content:space-between;gap:16px;padding-bottom:13px;border-bottom:1px solid var(--line-dark);color:var(--muted-dark)}.credential-top .micro{font-size:7px}.credential-year{color:#777468;font-family:var(--mono);font-size:6.5px;letter-spacing:.06em;text-transform:uppercase}.degree-body{position:relative;z-index:1;display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:18px;padding-top:19px}.degree-mark{display:grid;place-items:center;width:64px;height:64px;border:1px solid rgba(169,204,63,.55);background:#a9cc3f0f;color:var(--acid);font-family:var(--display);font-size:18px;font-weight:520;letter-spacing:-.05em}.degree-body h3{font-family:var(--display);font-size:clamp(1.2rem,1.6vw,1.5rem);font-weight:530;line-height:1.08;letter-spacing:-.04em}.degree-body p{margin-top:5px;color:var(--muted-dark);font-size:11.5px;line-height:1.4}.degree-seal{display:grid;place-items:center;width:48px;height:48px;border:1px solid rgba(169,204,63,.55);border-radius:50%;background:#a9cc3f0d;color:var(--acid);font-family:var(--mono);font-size:6.5px;letter-spacing:.06em}.exp-muted{color:#777468!important;font-family:var(--mono);font-size:7px!important;letter-spacing:.03em}.cert-card .cert-list{display:flex;flex-direction:column;padding-top:4px}.cert-list li{display:grid;grid-template-columns:38px minmax(0,1fr) 24px;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--line-dark)}.cert-list li:last-child{padding-bottom:0;border-bottom:0}.cert-year{padding-top:3px;color:var(--acid);font-family:var(--mono);font-size:6.5px;letter-spacing:.04em}.cert-list b{display:block;color:var(--paper);font-family:var(--display);font-size:14px;font-weight:500;line-height:1.25;letter-spacing:-.02em}.cert-list small{display:block;margin-top:3px;color:var(--muted-dark);font-family:var(--mono);font-size:6px;letter-spacing:.07em;text-transform:uppercase}.issuer-mark{display:grid;place-items:center;width:24px;height:24px;border:1px solid #45453b;background:#22221d;color:var(--muted-dark);font-family:var(--mono);font-size:6px}.contact{background:var(--acid);color:var(--ink);border-top:1px solid var(--ink);padding:clamp(80px,10vw,140px) var(--gutter) clamp(70px,8vw,110px)}.contact-inner{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(330px,.65fr);gap:clamp(45px,7vw,110px);max-width:var(--max);margin:0 auto}.contact .section-label{color:#171713a3}.contact .section-label span{border-color:#17171359}.contact h2{max-width:870px;margin:clamp(24px,3.4vw,40px) 0 clamp(20px,3vw,32px);font-family:var(--display);font-size:clamp(3.2rem,7.2vw,7.6rem);font-weight:540;line-height:.88;letter-spacing:-.065em}.contact h2 em{font-family:var(--serif);font-weight:400;letter-spacing:-.02em}.contact-lead{max-width:475px;color:#171713ab;font-size:15px;line-height:1.65}.contact-email{display:inline-flex;align-items:center;gap:16px;margin-top:clamp(26px,3.3vw,40px);padding-bottom:7px;border-bottom:1px solid var(--ink);font-family:var(--display);font-size:clamp(1.35rem,2.25vw,2rem);font-weight:500;letter-spacing:-.045em;transition:gap .3s var(--ease)}.contact-email span{font-size:.72em;transition:transform .35s var(--ease)}.contact-email:hover{gap:24px}.contact-email:hover span{transform:translate(2px,-2px)}.contact-socials{display:flex;flex-wrap:wrap;gap:22px;margin-top:30px}.contact-location{margin-top:22px;color:#1717138c}.contact-socials a{padding-bottom:3px;border-bottom:1px solid rgba(23,23,19,.35);font-family:var(--mono);font-size:8px;letter-spacing:.08em;text-transform:uppercase;transition:border-color .25s ease}.contact-socials a:hover{border-color:var(--ink)}.contact-form{padding-top:8px;border-top:1px solid rgba(23,23,19,.35)}.form-field{position:relative;margin-bottom:20px}.form-field label{display:flex;align-items:center;justify-content:space-between;margin-bottom:5px;font-family:var(--mono);font-size:7.5px;font-weight:500;letter-spacing:.09em;text-transform:uppercase;color:#17171399}.optional{font-size:6px;letter-spacing:.02em;text-transform:none}.form-field input,.form-field textarea,.form-field select{width:100%;padding:6px 0 11px;border:0;border-bottom:1px solid rgba(23,23,19,.34);border-radius:0;background:transparent;color:var(--ink);font-size:15px;line-height:1.5;outline:none;transition:border-color .25s ease,background .25s ease}.form-field textarea{resize:vertical;min-height:40px}.form-field select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 8px) 42%,calc(100% - 4px) 42%;background-size:4px 4px,4px 4px;background-repeat:no-repeat}.form-field input::placeholder,.form-field textarea::placeholder{color:#1717138a}.form-field input:focus,.form-field textarea:focus,.form-field select:focus{border-bottom-color:var(--ink)}.form-field input:focus-visible,.form-field textarea:focus-visible,.form-field select:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.form-field select:invalid{color:#1717138a}.form-submit{width:100%;margin-top:4px}.contact-form .form-note{color:#17171385;max-width:350px}.form-note{margin-top:12px;font-size:9.5px;line-height:1.55;color:var(--muted)}.form-note a{text-decoration:underline;text-underline-offset:2px}.form-status{min-height:16px;margin-top:8px;font-size:10.5px;font-weight:600}.site-footer{background:var(--ink);color:var(--paper);padding:28px var(--gutter) 18px;overflow:hidden}.footer-top{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-bottom:17px;border-bottom:1px solid var(--line-dark)}.footer-top .micro{color:var(--muted-dark);font-size:7.5px}.footer-top .micro .muted{color:#8f8b7f}.footer-links{display:flex;align-items:center;gap:22px}.footer-github{color:var(--paper)}.footer-github:hover{color:var(--acid)}.local-time,.back-top{color:var(--paper)}.back-top:hover{color:var(--acid)}.footer-wordmark{margin:clamp(30px,4vw,50px) 0 clamp(22px,3vw,38px);font-family:var(--display);font-size:clamp(5.5rem,17.8vw,19rem);font-weight:560;line-height:.68;letter-spacing:-.085em;white-space:nowrap;color:var(--paper)}.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:14px;border-top:1px solid var(--line-dark);color:#8f8b7f;font-family:var(--mono);font-size:7px;letter-spacing:.06em;text-transform:uppercase}dialog{border:0;padding:0;background:var(--paper);color:var(--ink);max-width:none;max-height:none}dialog::backdrop{background:#0c0c0a94;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.dialog-close{display:grid;place-items:center;width:38px;height:38px;flex-shrink:0;border:1px solid var(--line-strong);border-radius:50%;background:transparent;font-family:var(--sans);font-size:20px;font-weight:300;line-height:1;transition:background .25s ease,color .25s ease,transform .3s var(--ease)}.dialog-close:hover{background:var(--ink);color:var(--paper);transform:rotate(90deg)}.project-dialog{width:min(900px,calc(100vw - 32px));max-height:92dvh;margin:auto;overflow:auto;box-shadow:0 30px 100px #00000047}.project-dialog[open]{animation:modal-in .45s var(--ease)}@keyframes modal-in{0%{opacity:0;transform:translateY(16px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}.project-close{position:sticky;z-index:6;top:16px;margin:16px 16px -54px auto;background:var(--paper)}.project-content{padding:clamp(30px,5vw,64px)}.project-content .micro{color:var(--muted);font-size:7px}.project-content h2{margin:18px 0 16px;font-family:var(--display);font-size:clamp(3.5rem,7vw,6.2rem);font-weight:530;line-height:.85;letter-spacing:-.07em}.project-content h2 em{font-family:var(--serif);font-weight:400}.case-intro{max-width:620px;color:#555248;font-size:16px;line-height:1.65}.case-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:30px 0;padding:18px 0;border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong)}.case-meta dt{margin-bottom:4px;color:var(--muted);font-family:var(--mono);font-size:7px;letter-spacing:.08em;text-transform:uppercase}.case-meta dd{font-size:12px;line-height:1.5}.case-sections{display:grid;grid-template-columns:1fr 1fr;gap:30px}.case-sections h3{margin-bottom:8px;font-family:var(--display);font-size:21px;font-weight:540;letter-spacing:-.04em}.case-sections p{color:#5a574e;font-size:13px;line-height:1.7}.case-sections .case-wide{grid-column:1 / -1}.case-stack{display:flex;flex-wrap:wrap;gap:5px;margin-top:18px}.case-stack span{padding:5px 8px;border:1px solid var(--line-strong);border-radius:999px;font-family:var(--mono);font-size:7px;letter-spacing:.05em;text-transform:uppercase}.case-cta{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-top:36px;padding-top:22px;border-top:1px solid var(--line-strong)}.case-cta p{max-width:350px;color:var(--muted);font-size:12px;line-height:1.55}.case-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;flex-shrink:0}.case-actions .btn{min-height:44px;padding-inline:17px;font-size:11px}.btn--ghost{background:transparent;color:var(--ink);border-color:var(--line-strong)}.btn--ghost:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}@media(max-width:1280px){.availability,.portrait-note{display:none}.hero-grid{grid-template-columns:minmax(0,1.4fr) minmax(300px,.6fr)}.hero-title{font-size:clamp(4rem,8.2vw,8rem)}.experience-layout{grid-template-columns:minmax(0,1.5fr) minmax(260px,.6fr)}}@media(max-width:1080px){.main-nav{margin-right:8px}.section-head{grid-template-columns:1.8fr 6fr 3fr}.project--featured{grid-template-columns:1.15fr .85fr}.project--compact .project-media{height:390px}.about-grid{grid-template-columns:minmax(0,1.4fr) minmax(270px,.6fr);gap:50px}.capability{grid-template-columns:40px minmax(160px,1fr) minmax(230px,1.4fr)}.capability-tags{display:none}.experience-layout{grid-template-columns:minmax(0,1.45fr) minmax(250px,.55fr);gap:28px}.role-tab{padding:10px;gap:8px}.role-tab-info b{font-size:12px}.role-tab-info small{font-size:6px}.role-panel{padding:24px}.role-points li{font-size:12px}.snapshot-card{padding:18px}.credential-card{padding:20px}.header-right{gap:10px}}@media(max-width:900px){:root{--header-h: 70px}.main-nav,.header-cta{display:none}.menu-toggle{display:block}.header-right{gap:9px}.resume-pill{height:36px}.hero{min-height:0}.hero-topline .micro:last-child{display:none}.hero-grid{grid-template-columns:1fr;gap:58px;padding-top:48px}.hero-title{font-size:clamp(3.8rem,12.4vw,7rem)}.hero-copy{max-width:760px}.hero-lead{max-width:540px}.hero-visual{justify-self:start;width:min(420px,calc(100% - 20px));margin-left:8px;margin-bottom:14px}.portrait-sticker{right:-26px;top:-44px}.hero-foot{grid-template-columns:1fr auto;gap:16px 30px;align-items:center;padding-top:18px}.hero-disciplines{justify-content:flex-end;flex-wrap:wrap}.hero-foot-note{display:none}.ticker-wrap{margin-top:34px}.section{padding-top:92px;padding-bottom:92px}.section-head{grid-template-columns:1fr;gap:14px;align-items:start}.section-head h2{max-width:700px}.section-note{justify-self:start;max-width:440px;margin-top:2px}.project--featured{grid-template-columns:1fr;min-height:0}.project-media--scores{min-height:520px}.project-body{padding:34px 30px 30px}.project-body h3{font-size:clamp(3.5rem,9vw,4.7rem)}.project-grid{grid-template-columns:1fr}.project--compact .project-media{height:430px}.project--compact h3{font-size:clamp(2.8rem,7vw,3.6rem)}.about-grid{grid-template-columns:1fr;gap:46px;margin-bottom:70px}.about-big{max-width:720px}.stack-panel{position:static;max-width:560px}.experience-layout{grid-template-columns:1fr;gap:34px}.experience-side{position:static;display:grid;grid-template-columns:1fr 1fr;gap:14px;max-width:680px}.exp-resume{grid-column:1 / -1}.credentials-grid{grid-template-columns:1fr}.role-panel{min-height:330px}.contact-inner{grid-template-columns:1fr}.contact-form{max-width:620px;margin-top:10px}.contact-email{font-size:clamp(1.2rem,2.6vw,1.7rem)}.footer-top{flex-wrap:wrap}.footer-top .micro:nth-child(2){margin-left:auto}}@media(max-width:620px){:root{--gutter: 18px;--header-h: 64px}.header-inner{gap:8px}.brand{font-size:19px;gap:7px}.brand-mark{width:27px;height:27px;font-size:18px}.header-right{gap:6px}.resume-pill{height:34px;padding:0 9px;font-size:8px;gap:4px}.resume-pill span{font-size:10px}.menu-toggle{width:34px;height:34px}.menu-toggle span{left:10px;width:12px}.menu-toggle span:first-child{top:14px}.menu-toggle span:last-child{top:19px}.menu-toggle[aria-expanded=true] span:first-child{top:16px}.menu-toggle[aria-expanded=true] span:last-child{top:16px}.hero{padding-top:17px}.hero-topline{padding-bottom:15px}.hero-topline .micro{font-size:8px}.hero-grid{gap:48px;padding-top:36px;padding-bottom:40px}.eyebrow{margin-bottom:20px;font-size:8px}.hero-title{font-size:clamp(3.25rem,14.2vw,5.6rem);line-height:.87}.title-line{padding-bottom:.03em}.hero-lead{margin-top:22px;max-width:420px;font-size:14.5px}.hero-actions{align-items:flex-start;flex-direction:column;gap:14px;margin-top:26px}.btn{min-height:46px;padding-inline:19px;font-size:12px}.btn--text{min-height:36px}.hero-visual{width:calc(100% - 12px);margin-left:6px;margin-bottom:18px}.portrait-sticker{width:95px;height:95px;top:-38px;right:-10px}.portrait-card{box-shadow:9px 9px 0 var(--ink)}.portrait-card:hover{box-shadow:10px 10px 0 var(--ink)}.portrait-caption{padding:10px 12px;font-size:16px}.hero-foot{grid-template-columns:1fr;gap:18px}.hero-disciplines{justify-content:flex-start;gap:10px 16px}.hero-disciplines span{padding-left:10px;font-size:10px}.scroll-cue{font-size:8px}.ticker-group{padding-block:13px;font-size:8px}.section{padding-top:76px;padding-bottom:76px}.section-head{margin-bottom:28px;padding-bottom:24px}.section-head h2{font-size:clamp(2.55rem,10.7vw,3.5rem)}.section-label{font-size:8px}.section-note{font-size:12px}.project-media--scores{min-height:430px;padding:34px 12px 44px}.project-media--scores:before{inset:20% -18% -12% 28%}.art-label{top:13px;left:14px;font-size:7px}.browser-frame{box-shadow:11px 13px #17171324}.window-chrome{height:26px;padding-inline:7px}.window-chrome--compact{height:22px}.window-dots i{width:4px;height:4px}.window-url{font-size:5px;padding:2px 8px}.window-plus{font-size:7px}.project-body{padding:27px 20px 22px}.project-kicker{padding-bottom:12px;font-size:7px}.project-body h3{margin-top:20px;font-size:3rem}.project-desc{font-size:12.5px}.project-tags span{font-size:6px;padding:4px 7px}.project-meta{margin:22px 0}.project-meta dd{font-size:9.5px}.project--compact .project-media{height:355px;padding:18px}.project--compact .project-body{padding:22px 20px}.project--compact h3{font-size:2.6rem}.camp-frame{box-shadow:8px 10px #05161040}.camp-stamp{right:8px;bottom:8px;font-size:5px;padding:6px 7px}.camp-stamp b{font-size:5.5px}.sharepay-phone{width:min(228px,72%);padding:10px 12px 12px}.sharepay-phone h4{font-size:19px;margin-bottom:12px}.sharepay-label{margin-top:14px}.sharepay-button{height:26px}.pay-chip{right:8px;bottom:8px;font-size:5px;padding:6px 7px}.about-big{font-size:clamp(2.2rem,9.2vw,3rem)}.about-copy{margin-top:25px}.about-copy p{font-size:13px}.about-meta{flex-direction:column;align-items:flex-start;gap:14px;margin-top:26px}.about-origin{text-align:left;white-space:normal}.signature{font-size:44px}.stack-panel{box-shadow:7px 7px 0 var(--ink)}.stack-head{padding:16px}.stack-head h3{font-size:24px}.stack-group{padding:15px}.stack-group p{font-size:11px}.experience{padding-top:70px;padding-bottom:70px}.experience-side{grid-template-columns:1fr}.exp-resume{grid-column:auto}.role-tabs{grid-template-columns:1fr}.role-tab{padding:10px 12px}.role-tab-info b{font-size:14px}.role-tab-info small{font-size:6px}.role-panel{min-height:0;padding:20px}.role-panel-top{flex-direction:column;align-items:flex-start;gap:7px}.role-panel h3{max-width:100%;margin-top:18px;font-size:1.75rem}.role-panel:after{right:12px;bottom:-22px;font-size:120px}.role-points{margin:18px 0 16px}.role-points li{font-size:12px}.snapshot-card{padding:18px}.snapshot-grid strong{font-size:2rem}.credential-card{padding:18px}.degree-body{grid-template-columns:54px minmax(0,1fr) auto;gap:14px}.degree-mark{width:54px;height:54px;font-size:16px}.degree-seal{width:42px;height:42px;font-size:6px}.credentials-head{flex-direction:column;gap:4px}.contact{padding-top:70px;padding-bottom:62px}.contact h2{font-size:clamp(3rem,13.5vw,4.8rem)}.contact-lead{font-size:14px}.contact-email{font-size:clamp(1.15rem,5.4vw,1.45rem);gap:9px}.contact-socials{flex-wrap:wrap;gap:12px 16px}.contact-location{margin-top:24px}.footer-top{align-items:flex-start;flex-direction:column;gap:8px}.footer-top .micro:nth-child(2){margin-left:0}.footer-links{width:100%;justify-content:space-between}.footer-wordmark{font-size:20.2vw;margin-top:34px;margin-bottom:26px}.footer-bottom{align-items:flex-start;flex-direction:column;gap:6px}.project-dialog{width:calc(100vw - 20px);max-height:94dvh}.project-content{padding:30px 22px}.project-content h2{font-size:3.1rem}.case-intro{font-size:14px}.case-meta{grid-template-columns:1fr;gap:12px}.case-sections{grid-template-columns:1fr;gap:22px}.case-cta{flex-direction:column;align-items:flex-start}.case-actions{width:100%;justify-content:flex-start}.case-actions .btn{width:100%}.mobile-menu-foot{flex-direction:column;align-items:flex-start;gap:14px}.mobile-menu-foot .socials{flex-wrap:wrap}}@media(orientation:landscape)and (max-height:520px){.mobile-menu{overflow-y:auto}.mobile-nav a{font-size:34px;padding:6px 0}}.micro{font-size:12px!important;letter-spacing:.055em}.reg{font-size:8px}.main-nav a span,.section-label span{font-size:9.5px}.role-tab-mark,.camp-stamp{font-size:9px}.camp-stamp b{font-size:10px}.sharepay-status{font-size:7.5px}.sharepay-avatar{font-size:7px}.sharepay-label{font-size:8.5px}.sharepay-group{font-size:7.5px}.sharepay-faces i{font-size:6px}.sharepay-list{font-size:9.5px}.sharepay-list b,.sharepay-button,.pay-chip{font-size:9px}.main-nav a{font-size:12.5px}.availability,.resume-pill{font-size:11.5px}.header-cta{font-size:14px}.menu-close{font-size:12px}.mobile-menu-foot{font-size:12.5px}.mobile-nav a span{font-size:11px}.eyebrow{font-size:12px}.hero-lead{font-size:19px}.hero-topline .micro{font-size:12px!important}.portrait-corner{font-size:10.5px}.portrait-caption{font-size:20px}.portrait-caption .micro{font-size:10.5px!important}.portrait-note{font-size:10.5px}.portrait-note .muted{font-size:9.5px}.hero-disciplines{font-size:14px}.hero-foot-note{font-size:11px!important}.scroll-cue{font-size:11px}.btn{font-size:14.5px}.link-arrow{font-size:14px}.ticker-group{font-size:10.5px}.section-label{font-size:12px!important}.section-note{font-size:16px}.art-label{font-size:10px!important}.window-url{font-size:8.5px}.project-kicker{font-size:11px}.project-live{font-size:10.5px}.project-desc{font-size:16px}.project--compact .project-desc{font-size:15.5px}.project-tags span,.project-meta dt{font-size:10.5px}.project-meta dd{font-size:14px}.about-copy p{font-size:16.5px}.about-origin,.stack-head .micro{font-size:10.5px!important}.stack-code{font-size:10px}.stack-group h4{font-size:19px}.stack-group p{font-size:14px}.stack-foot{font-size:10px}.role-tabs-head .micro{font-size:10.5px!important}.role-tab-info b{font-size:16px}.role-tab-info small{font-size:10px}.role-eyebrow,.role-date{font-size:10.5px}.role-company{font-size:15px}.role-points li{font-size:15.5px;line-height:1.65}.role-tags span{font-size:10.5px}.snapshot-head .micro{font-size:10.5px!important}.snapshot-grid span{font-size:10px}.exp-resume{font-size:13px}.credential-top .micro{font-size:10.5px!important}.credential-year{font-size:10px}.degree-body p{font-size:14px}.exp-muted{font-size:10px!important}.cert-year{font-size:10px}.cert-list b{font-size:16px}.cert-list small,.issuer-mark,.degree-seal{font-size:10px}.contact-lead{font-size:17px}.contact-socials a{font-size:11.5px}.contact-location{font-size:11px!important}.form-field label{font-size:11px}.form-field input,.form-field textarea,.form-field select{font-size:17px}.optional{font-size:10px}.form-note,.form-status{font-size:12.5px}.footer-top .micro{font-size:11.5px!important}.footer-bottom{font-size:11px}.project-content .micro{font-size:10.5px!important}.case-meta dt{font-size:10.5px}.case-meta dd{font-size:14px}.case-sections p{font-size:16px}.case-stack span{font-size:10px}.case-cta p{font-size:14px}.case-actions .btn{font-size:13px}@media(max-width:900px){.main-nav a{font-size:12px}.hero-lead{font-size:18px}.section-note{font-size:15px}.project-desc{font-size:15.5px}.project--compact .project-desc{font-size:15px}.role-points li{font-size:14.5px}.role-tab-info b{font-size:15.5px}.stack-group p{font-size:13.5px}}@media(max-width:620px){.micro{font-size:11px!important}.hero-topline .micro{font-size:10.5px!important}.eyebrow{font-size:11px}.hero-lead{font-size:17.5px}.section-note{font-size:15px}.section-label{font-size:11px!important}.project-kicker{font-size:10.5px}.project-desc{font-size:15.5px}.project-tags span{font-size:10px}.project-meta dd{font-size:13px}.project-meta dt{font-size:10px}.about-copy p{font-size:15.5px}.about-origin{font-size:10.5px!important}.stack-head .micro{font-size:10px!important}.stack-group p{font-size:13.5px}.stack-foot{font-size:10px}.role-tab-info b{font-size:15.5px}.role-tab-info small{font-size:9.5px}.role-points li{font-size:14.5px}.role-tags span,.snapshot-grid span{font-size:10px}.degree-body p{font-size:13.5px}.cert-list b{font-size:15.5px}.contact-lead{font-size:16.5px}.contact-socials a{font-size:11px}.form-field label{font-size:10.5px}.form-note{font-size:12px}.footer-top .micro{font-size:11px!important}.footer-bottom{font-size:10.5px}.case-sections p{font-size:15.5px}.case-cta p{font-size:13.5px}}@media(min-width:901px){.about .section-head h2{font-size:clamp(3rem,4.6vw,4.4rem)}}.stack-code,.role-tab-mark,.role-tab-info small,.role-eyebrow,.role-date,.credential-year,.exp-muted,.cert-year,.cert-list small,.project-live,.project-meta dt,.case-meta dt,.about-origin,.stack-foot,.snapshot-grid span,.optional{font-size:11.5px!important}.role-tab-mark{font-size:11px!important}.main-nav a span,.section-label span,.mobile-nav a span{font-size:11px}.form-field label,.contact-location,.contact-socials a{font-size:12px!important}.project-tags span,.role-tags span{font-size:11.5px}@media(max-width:620px){.micro,.eyebrow,.section-label{font-size:11.5px!important}.project-kicker{font-size:11.5px}.project-meta dt{font-size:11.5px!important}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.js .hero-title .title-line>span,.js .hero [data-hero-fade],.js .reveal{opacity:1;transform:none}.ticker-track,.sticker-spin{animation:none}}
