 :root{color-scheme:light;--page:#faf9f6;--ink:#161412;--rule:#413b35;--muted:#514c46;--soft-rule:#b6b0a8;--portrait-rule:#c4bdb3;--accent:#163bff;--marker:#f4df64;--header-height:108px}
:root[data-theme="dark"]{color-scheme:dark;--page:#17191d;--ink:#f0eee9;--rule:#92918c;--muted:#b9b8b2;--soft-rule:#4c4e54;--portrait-rule:#686a70;--accent:#94adff;--marker:#dfca52}
@font-face{font-family:GT;src:url('assets/gt.woff') format('woff');font-display:swap}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:36px}body{margin:0;background:var(--page);color:var(--ink);font-family:GT,Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible{outline:3px solid var(--accent);outline-offset:6px}::selection{background:var(--accent);color:white}.wrap{width:min(1320px,calc(100% - 96px));margin-inline:auto}.site-header{display:flex;align-items:center;justify-content:space-between;min-height:108px;border-bottom:1px solid var(--rule)}.wordmark{font-size:32px;font-weight:700;letter-spacing:-1.4px}nav{display:flex;gap:34px;font-size:18px}nav a,footer a{transition:color .18s}nav a:hover,footer a:hover{color:var(--accent)}.hero{display:grid;grid-template-columns:minmax(0,1fr) 32%;align-items:center;gap:54px;padding:88px 0 72px;border-bottom:1px solid var(--rule)}.hero h1{font-family:Arial,Helvetica,sans-serif;font-size:clamp(72px,8.4vw,122px);font-weight:750;letter-spacing:-.075em;line-height:.98;margin:0 0 28px}.hero h1 span{display:block}.hero em, .contact em{color:var(--accent);font-style:normal}.hero-role{font-size:clamp(19px,1.75vw,25px);line-height:1.35;margin:0 0 12px;letter-spacing:-.5px}.hero-description{font-size:19px;line-height:1.55;max-width:610px;margin:0;color:var(--muted);letter-spacing:-.15px}.hero-link{margin-top:28px}.text-link{display:inline-block;font-size:18px;font-weight:600;line-height:1.45;border-bottom:2px solid var(--accent);padding-bottom:4px;transition:color .18s}.text-link:hover{color:var(--accent)}.portrait-wrap{width:100%;max-width:400px;justify-self:end}.portrait{display:block;width:100%;height:auto;aspect-ratio:1;border-radius:50%;object-fit:cover;border:1px solid var(--portrait-rule);padding:7px;background:var(--page)}.project-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;padding:56px 0 36px}h2,h3,p{margin-top:0}h2{font-family:Arial,Helvetica,sans-serif;font-weight:700;letter-spacing:-.055em;line-height:1.08;font-size:clamp(38px,5.8vw,80px);margin-bottom:8px}.project-subtitle{font-size:clamp(22px,3vw,38px);letter-spacing:-1.1px;line-height:1.25;margin:0}.project-role{font-size:17px;line-height:1.5;text-align:right;margin:0 0 3px;color:var(--muted)}.product-stage{position:relative;display:block;overflow:hidden;border-radius:14px;background:radial-gradient(ellipse at 52% 80%,#193cba 0%,#14234f 37%,#090e20 75%);height:660px}.phone-composition{position:absolute;inset:0}.phone{position:absolute;display:block;width:30%;height:auto;filter:drop-shadow(0 24px 24px #0008)}.phone-one{left:4%;top:90px;transform:rotate(-9deg)}.phone-two{left:35%;top:48px;transform:rotate(2deg)}.phone-three{right:2%;top:110px;transform:rotate(10deg)}.project-details{display:grid;grid-template-columns:1fr 1fr;gap:76px;padding:36px 0 62px;font-size:19px;line-height:1.6}.project-details>p{font-size:24px;line-height:1.45;letter-spacing:-.45px}.project-details p{margin-bottom:22px}.project-details>div>p{color:var(--muted)}.project-links{display:flex;gap:26px;flex-wrap:wrap}.project-links a{font-size:16px}.about{display:grid;grid-template-columns:1fr 1fr;gap:64px;border-top:1px solid var(--rule);padding:62px 0 72px}.about h2{font-size:clamp(32px,3.4vw,46px);margin-bottom:28px}.about-copy p{font-size:20px;line-height:1.55;color:var(--muted);margin-bottom:18px;max-width:550px}.about-copy .text-link{margin-top:10px}.inline-link{text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--accent)}.experience{border-left:1px solid var(--soft-rule);padding-left:40px}.experience article{padding:0 0 22px;margin:0 0 24px;border-bottom:1px solid var(--soft-rule)}.experience article:last-child{border-bottom:0;margin-bottom:0}.job-heading{display:flex;justify-content:space-between;gap:14px;align-items:baseline}.job-heading h3{font-size:23px;letter-spacing:-.7px;margin-bottom:6px}.job-heading span{font-size:15px;white-space:nowrap}.experience article>p{font-size:17px;line-height:1.5;margin-bottom:8px}.experience .job-description{color:var(--muted);font-size:16px;max-width:380px}.contact{border-top:1px solid var(--rule);padding:64px 0 72px;display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:60px}.contact h2{font-size:clamp(44px,5.1vw,70px);margin:0}.contact>div{padding-bottom:5px}.contact p{font-size:20px;line-height:1.5;color:var(--muted);max-width:350px}.contact .text-link{font-size:24px}footer{border-top:1px solid var(--rule);padding:28px 0 36px;display:flex;justify-content:space-between;gap:24px;font-size:15px;color:var(--muted)}footer>div{display:flex;gap:28px}.skip{position:fixed;left:16px;top:-100px;background:var(--accent);color:white;padding:14px;z-index:10}.skip:focus{top:16px}@media(min-width:1500px){.hero h1{font-size:126px}}@media(max-width:1000px){.wrap{width:calc(100% - 64px)}.hero{gap:30px;padding:70px 0 58px}.hero h1{font-size:clamp(64px,9vw,96px)}.hero-description{font-size:17px}.hero-role{font-size:20px}.product-stage{height:530px}.project-role{font-size:15px}.project-details{gap:40px}.about{gap:34px}.experience{padding-left:28px}.job-heading{display:block}.job-heading span{display:block;margin-bottom:8px}.contact{gap:40px}}@media(max-width:640px){html{scroll-padding-top:20px}.wrap{width:calc(100% - 40px)}.site-header{min-height:90px;flex-wrap:wrap;gap:17px;padding:22px 0}.wordmark{font-size:25px}nav{gap:20px;font-size:14px;width:100%;justify-content:space-between}.hero{grid-template-columns:1fr;gap:32px;padding:38px 0 40px}.hero-copy{display:contents}.hero h1{font-size:clamp(66px,15.8vw,98px);margin:0;grid-row:1;letter-spacing:-.075em}.portrait-wrap{grid-row:2;justify-self:start;width:185px;margin:0}.hero-role{grid-row:3;font-size:21px;margin:0;max-width:330px}.hero-description{grid-row:4;font-size:17px;margin:-18px 0 0}.hero-link{grid-row:5;justify-self:start;margin:-10px 0 0}.project-heading{display:block;padding:36px 0 26px}.project-heading h2{font-size:52px}.project-subtitle{font-size:26px;letter-spacing:-.8px}.project-role{text-align:left;font-size:14px;margin-top:14px}.project-role br{display:none}.project-role br:after{content:' '}.product-stage{height:420px;border-radius:10px}.phone{width:49%}.phone-one{left:-6%;top:68px}.phone-two{left:42%;top:35px;transform:rotate(7deg)}.phone-three{display:none}.project-details{grid-template-columns:1fr;gap:0;padding:26px 0 36px;font-size:17px}.project-details>p{font-size:21px;margin-bottom:22px}.project-links{gap:22px}.about{grid-template-columns:1fr;gap:42px;padding:38px 0 44px}.about h2{font-size:36px;margin-bottom:22px}.about-copy p{font-size:18px}.experience{padding-left:0;border-left:0}.job-heading{display:flex}.job-heading h3{font-size:22px}.job-heading span{font-size:13px}.contact{grid-template-columns:1fr;padding:38px 0 44px;gap:26px}.contact h2{font-size:49px}.contact p{font-size:18px}.contact .text-link{font-size:22px}footer{display:block;font-size:13px;padding:24px 0 28px}footer>div{margin-top:20px;gap:24px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
@media(max-width:640px){.portrait-wrap{justify-self:center;width:210px}.project-role br{display:initial}}

:is(nav a,.text-link,.inline-link,footer a){position:relative;isolation:isolate}
:is(nav a,.text-link,.inline-link,footer a)::before{content:"";position:absolute;z-index:-1;left:-.24em;right:-.24em;top:34%;height:68%;background:var(--marker);opacity:.78;clip-path:polygon(1% 13%,24% 5%,51% 9%,77% 0,98% 9%,100% 77%,74% 92%,49% 86%,23% 100%,0 87%);transform:rotate(-1.6deg) scaleX(0);transform-origin:left center;transition:transform .26s cubic-bezier(.22,1,.36,1)}
:is(nav a,.text-link,.inline-link,footer a):nth-child(even)::before{transform:rotate(1.2deg) scaleX(0);clip-path:polygon(0 9%,27% 0,56% 8%,98% 3%,100% 87%,72% 100%,42% 91%,2% 98%)}
:is(nav a,.text-link,.inline-link,footer a):focus-visible::before,nav a[aria-current="location"]::before{transform:rotate(-1.6deg) scaleX(1)}
@media(hover:hover){:is(nav a,.text-link,.inline-link,footer a):hover::before{transform:rotate(-1.6deg) scaleX(1)}}
:is(nav a,.text-link,.inline-link,footer a):nth-child(even):is(:hover,:focus-visible,[aria-current="location"])::before{transform:rotate(1.2deg) scaleX(1)}
:is(nav a,.text-link,.inline-link,footer a):active::before{transform:rotate(-1deg) scaleX(1)}
nav a:hover,.text-link:hover,footer a:hover{color:inherit}
.text-link{border-bottom-color:transparent}.inline-link{text-decoration-color:var(--soft-rule)}
@media(prefers-reduced-motion:reduce){:is(nav a,.text-link,.inline-link,footer a)::before{transition:none}}

.site-header{justify-content:center}.site-header nav{justify-content:center}
@media(max-width:640px){.site-header{min-height:80px;padding:24px 0}.site-header nav{gap:28px}}

@media(max-width:640px){.site-header nav{gap:20px}}
@media(max-width:359px){.site-header nav{gap:14px;font-size:13px}}

html{scroll-padding-top:118px}
.site-header{position:sticky;top:0;z-index:20;border-bottom:0;isolation:isolate;pointer-events:none}
.site-header nav{position:relative;z-index:1;pointer-events:auto}
.nav-outline{position:absolute;inset:0;width:100%;height:100%;overflow:visible;color:var(--rule);pointer-events:none}
@media(max-width:640px){html{scroll-padding-top:90px}.site-header{height:80px;min-height:80px;padding:0}.site-header nav{width:auto}}

.site-header{height:var(--header-height);min-height:var(--header-height)}
.hero{min-height:calc(100svh - var(--header-height) - clamp(64px,9svh,100px));padding-block:clamp(24px,5svh,64px)}
.nav-outline path{fill:var(--page)}
.theme-toggle{display:inline-flex;align-items:center;justify-content:center;flex:none;width:30px;height:30px;border:0;padding:4px;background:transparent;color:var(--ink);cursor:pointer;border-radius:50%}
.theme-toggle:hover{background:var(--soft-rule)}
.theme-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.theme-toggle svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.theme-toggle .sun{display:none}[data-theme="dark"] .theme-toggle .sun{display:block}[data-theme="dark"] .theme-toggle .moon{display:none}
.site-header nav{align-items:center}
@media(max-width:640px){:root{--header-height:80px}.site-header nav{gap:clamp(10px,3.5vw,20px)}.hero{align-content:center;row-gap:clamp(24px,3.5svh,34px);padding-block:clamp(24px,4svh,42px)}.theme-toggle{width:26px;height:26px}}

@media(max-width:640px){.hero{min-height:calc(100svh - var(--header-height) - clamp(52px,7svh,72px))}}

[data-theme="dark"] nav a[aria-current="location"],[data-theme="dark"] :is(nav a,.text-link,.inline-link,footer a):focus-visible{color:#161412}
@media(hover:hover){[data-theme="dark"] :is(nav a,.text-link,.inline-link,footer a):hover{color:#161412}}
[data-theme="dark"] :is(nav a,.text-link,.inline-link,footer a):active{color:#161412}
[data-theme="dark"] :is(nav a,.text-link,.inline-link,footer a)::before{top:8%;height:96%;opacity:1}

.project-title-row{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin-bottom:8px}.project-title-row h2{margin-bottom:0}
.project-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.project-action{display:inline-flex;align-items:center;gap:0;min-height:44px;padding:10px;border:0;border-radius:4px;color:var(--muted);background:transparent;transition:color .2s}
.project-action>svg{width:22px;height:22px;flex:none}.action-label{display:grid;grid-template-columns:0fr;opacity:0;transition:grid-template-columns .25s cubic-bezier(.22,1,.36,1),opacity .2s}.action-label>span{overflow:hidden;white-space:nowrap;font-size:14px;line-height:22px}.action-label>span:before{content:"";display:inline-block;width:9px}
.project-action:focus-visible .action-label{grid-template-columns:1fr;opacity:1}.project-action:focus-visible,.project-action:hover{color:var(--accent)}
@media(hover:hover){.project-action:hover .action-label{grid-template-columns:1fr;opacity:1}}
.action-mobile{display:none}
@media(max-width:1000px){.project-title-row{display:block}.project-actions{margin:16px 0 18px}}
@media(hover:none),(max-width:640px){.project-action{padding:8px 11px;gap:7px}.project-action>svg{width:18px;height:18px}.action-label{display:none}.action-mobile{display:inline;font-size:13px}.project-actions{gap:8px}}
@media(prefers-reduced-motion:reduce){.action-label{transition:none}}

.project-heading .project-actions{margin:16px 0 0;gap:12px}
.project-action{padding:8px 6px;min-width:34px;min-height:40px}.project-action:first-child{margin-left:-6px}.project-action>svg{width:20px;height:20px}
@media(hover:none),(max-width:640px){.project-heading .project-actions{margin-top:14px;gap:16px}.project-action{padding:8px 0;gap:7px;min-width:0}.project-action:first-child{margin-left:0}.project-action>svg{width:18px;height:18px}}

.brand-mark{position:absolute;left:0;top:50%;transform:translateY(-55%);font-family:Arial,Helvetica,sans-serif;font-size:46px;font-weight:700;letter-spacing:-1px;line-height:1;color:var(--ink);pointer-events:auto;z-index:2;padding-right:5px}.brand-mark span{color:var(--accent)}
@media(max-width:640px){.brand-mark{font-size:32px;letter-spacing:-.5px}.site-header nav{margin-left:38px;gap:clamp(7px,2.2vw,12px);font-size:12px}.theme-toggle{width:24px;height:26px}}

.brand-mark{transition:opacity .18s ease,visibility 0s;visibility:visible}.site-header.has-scrolled .brand-mark{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease,visibility 0s .18s}

@property --page{syntax:"<color>";inherits:true;initial-value:#faf9f6}
@property --ink{syntax:"<color>";inherits:true;initial-value:#161412}
@property --rule{syntax:"<color>";inherits:true;initial-value:#413b35}
@property --muted{syntax:"<color>";inherits:true;initial-value:#514c46}
@property --soft-rule{syntax:"<color>";inherits:true;initial-value:#b6b0a8}
@property --portrait-rule{syntax:"<color>";inherits:true;initial-value:#c4bdb3}
@property --accent{syntax:"<color>";inherits:true;initial-value:#163bff}
@property --marker{syntax:"<color>";inherits:true;initial-value:#f4df64}
html{transition:--page .42s ease-in-out,--ink .42s ease-in-out,--rule .42s ease-in-out,--muted .42s ease-in-out,--soft-rule .42s ease-in-out,--portrait-rule .42s ease-in-out,--accent .42s ease-in-out,--marker .42s ease-in-out}
.theme-toggle{position:relative;transition:color .2s ease,transform .25s cubic-bezier(.22,1,.36,1);background:transparent}
.theme-toggle:hover{background:transparent;color:var(--accent);transform:rotate(-8deg) scale(1.08)}
.theme-toggle:active{transform:scale(.93)}
.theme-toggle svg.moon,.theme-toggle svg.sun{display:block;position:absolute;left:50%;top:50%;transition:opacity .3s ease,transform .4s cubic-bezier(.22,1,.36,1);transform-origin:center}
.theme-toggle svg.moon{opacity:1;transform:translate(-50%,-50%) rotate(0deg) scale(1)}
.theme-toggle svg.sun{opacity:0;transform:translate(-50%,-50%) rotate(-65deg) scale(.65)}
[data-theme="dark"] .theme-toggle svg.moon{opacity:0;transform:translate(-50%,-50%) rotate(65deg) scale(.65)}
[data-theme="dark"] .theme-toggle svg.sun{opacity:1;transform:translate(-50%,-50%) rotate(0deg) scale(1)}
@media(hover:none){.theme-toggle:hover{transform:none}}
@media(prefers-reduced-motion:reduce){html,.theme-toggle,.theme-toggle svg.moon,.theme-toggle svg.sun{transition:none}.theme-toggle:hover{transform:none}}

.theme-toggle{width:44px;height:44px;min-width:44px;min-height:44px;flex-shrink:0;padding:12px;touch-action:manipulation}
.theme-toggle:hover,.theme-toggle:active{transform:none}
.theme-toggle svg,.theme-toggle svg *{pointer-events:none}
