@import url("https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap");:root{--blue:#155cff;--blue-dark:#0646dc;--ink:#101114;--muted:#666c78;--line:#d9dbe0;--paper:#fdfdfc;--soft:#f2f3f5;--mono:"DM Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--sans:"Manrope",Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a,button{-webkit-tap-highlight-color:transparent}::selection{color:white;background:var(--blue)}.reveal-on-scroll{opacity:0;transform:translateY(22px);transition:opacity .65s ease,transform .65s cubic-bezier(.2,.7,.2,1)}.reveal-on-scroll.is-visible{opacity:1;transform:translateY(0)}.section-heading h2{text-wrap:balance}.project-visual{transition:transform .35s ease,box-shadow .35s ease}.project-card:hover .project-visual{transform:translateY(-4px);box-shadow:0 12px 28px #1011140d}.project-card:hover .mini-big i,.project-card:hover .motion-word span{transition:color .25s ease;color:#6f91ff}.topbar{height:68px;padding:0 5.2vw;justify-content:space-between;gap:28px;border-bottom:1px solid var(--line);background:rgba(253,253,252,.94);position:-webkit-sticky;position:sticky;top:0;z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.topbar,.wordmark{display:flex;align-items:center}.wordmark{gap:12px;font:12px var(--mono);white-space:nowrap}.wordmark b{color:var(--blue)}.window-dots{display:flex;gap:4px}.window-dots i{width:7px;height:7px;display:block;border-radius:50%;background:#e14b4b}.window-dots i:nth-child(2){background:#f4b52b}.window-dots i:nth-child(3){background:#31b85b}.topbar nav{gap:10px;font-size:13px;color:#4f5560}.topbar nav a{padding:11px 12px;border:1px solid transparent;text-transform:uppercase;font-weight:700;transition:color .2s,background .2s,border-color .2s}.topbar nav a.active{color:var(--blue);font-weight:800}.topbar nav a.active:after{left:12px;right:12px;bottom:4px}.text-link:hover,.topbar nav a:hover{color:var(--blue)}.availability{display:flex;align-items:center;gap:8px;font:11px var(--mono);white-space:nowrap}.availability span{width:7px;height:7px;background:#19a76b;border-radius:50%;box-shadow:0 0 0 4px #19a76b1c}.section-wrap{padding-left:8.2vw;padding-right:8.2vw}.hero{min-height:690px;padding-top:95px;padding-bottom:25px;display:grid;grid-template-columns:1.04fr .96fr;grid-gap:38px;gap:38px;align-content:center;position:relative}.eyebrow{font:11px var(--mono);letter-spacing:.08em;color:#606774;margin:0 0 22px}.eyebrow span{color:var(--blue);margin-right:8px}.hero h1{font-size:clamp(76px,10vw,145px);line-height:.78;letter-spacing:-.095em;margin:0;font-weight:800;text-transform:uppercase}.hero h1 em,.hero h1 span{color:var(--blue)}.hero h1 em{font-style:normal}.hero-role{display:flex;align-items:center;gap:13px;margin-top:35px;font:700 12px var(--mono);letter-spacing:-.03em}.hero-role span{color:var(--blue)}.hero-intro{font-size:17px;line-height:1.8;color:#505661;max-width:470px;margin:24px 0 30px}.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:24px}.button{display:inline-flex;align-items:center;gap:16px;padding:15px 18px;font-size:13px;font-weight:800;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px)}.button-primary{color:white;background:var(--blue)}.button-primary:hover{background:var(--blue-dark)}.arrow{font-size:16px;line-height:1}.text-link{font-size:13px;font-weight:800}.hero-art{padding:15px;border:1px solid #cfd2d8;background:#f5f6f8;transform:rotate(1.2deg);box-shadow:10px 12px 0 #e6e8ed}.art-bottom,.art-top{display:flex;justify-content:space-between;gap:10px;font:9px var(--mono);color:#686f7b}.art-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:190px 190px;grid-gap:8px;gap:8px;margin:14px 0}.art-block{display:flex;align-items:center;justify-content:center;overflow:hidden}.art-blue{background:var(--blue);color:white;font-size:92px;font-weight:800;letter-spacing:-.1em}.art-outline{border:1px solid #151515;color:#111;font-size:42px;font-weight:800;letter-spacing:-.09em;writing-mode:vertical-rl}.art-black{background:#111;color:white;font:12px var(--mono);justify-content:flex-start}.art-black,.art-lines{align-items:flex-end;padding:15px}.art-lines{background:repeating-linear-gradient(0deg,#f5f6f8,#f5f6f8 8px,#d8dbe2 9px,#f5f6f8 10px);justify-content:flex-end;text-align:right;font:10px/1.6 var(--mono)}.hero-bottomline{grid-column:1/-1;display:flex;justify-content:space-between;gap:14px;margin-top:48px;padding-top:15px;border-top:1px solid var(--line);font:9px var(--mono);color:#777d88}.projects{padding-top:110px;padding-bottom:105px;background:#f3f4f6}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin-bottom:42px}.section-heading .eyebrow{color:var(--blue);margin-bottom:18px}.contact h2,.section-heading h2{margin:0;font-size:clamp(48px,6.6vw,88px);line-height:.94;letter-spacing:-.075em;font-weight:800}.section-heading h2 span{color:var(--blue)}.section-note{max-width:330px;margin:0 0 6px;font-size:15px;line-height:1.8;color:#666c78}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:20px;gap:20px}.project-card{min-width:0}.project-visual{height:245px;position:relative;overflow:hidden;border:1px solid #d7d9de;background:white}.visual-label{position:absolute;top:12px;left:12px;right:12px;display:flex;justify-content:space-between;font:8px var(--mono);color:#5f6672;z-index:2}.northstar{background:#f8f8f4;padding:38px 18px 15px}.northstar-ui{height:100%;flex-direction:column;border-top:1px solid #111}.mini-nav,.northstar-ui{display:flex;justify-content:space-between}.mini-nav{padding-top:9px;font:8px var(--mono)}.mini-nav span{color:#737984}.mini-big{font-size:35px;line-height:.95;letter-spacing:-.08em;font-weight:800}.mini-big i{color:var(--blue);font-style:normal}.mini-foot{display:flex;justify-content:space-between;border-top:1px solid #d3d5d8;padding-top:8px;font:7px var(--mono)}.mini-foot b{color:var(--blue);font-size:15px}.fieldnotes{background:#e8e5de;padding:40px 16px 14px}.field-ui{height:100%}.field-nav{display:flex;justify-content:space-between;font:8px var(--mono);border-bottom:1px solid #aaa79f;padding-bottom:8px}.field-nav span{font-size:6px}.field-object{display:flex;align-items:center;justify-content:space-around;height:calc(100% - 22px);gap:6px}.object-shape{width:95px;height:125px;border-radius:45% 45% 12px 12px;background:linear-gradient(130deg,#d2bfa1,#8d765d);box-shadow:inset -12px -8px 0 #6d5c4c33;transform:rotate(-7deg)}.object-copy{font-size:20px;line-height:1.05;letter-spacing:-.07em}.object-copy b{color:#5b4634}.motion{background:#101114;color:white}.motion-ui{position:absolute;inset:40px 18px 15px;overflow:hidden}.motion-word{position:absolute;left:0;top:15px;z-index:1;font-size:42px;font-weight:800;line-height:.8;letter-spacing:-.08em}.motion-word span{color:#8faeff}.motion-circle{position:absolute;width:170px;height:170px;right:-22px;top:18px;border:1px solid #8faeff;border-radius:50%;box-shadow:0 0 0 15px #155cff33,0 0 0 32px #155cff20}.motion-caption{position:absolute;left:0;bottom:0;font:7px var(--mono);color:#aeb8d2}.project-meta{display:flex;justify-content:space-between;gap:10px;margin-top:16px;color:var(--blue);font:10px var(--mono)}.project-meta span:last-child{color:#777d88;text-align:right}.project-card h3{margin:12px 0 8px;font-size:22px;letter-spacing:-.06em}.project-card>p{font-size:14px;line-height:1.85;color:#626874;min-height:100px;margin:0 0 16px}.tag-list{display:flex;flex-wrap:wrap;gap:6px}.tag-list span{padding:7px 9px;border:1px solid #d2d5db;font:10px var(--mono);color:#555c68}.disclosure{margin:28px 0 0;font:10px/1.8 var(--mono);color:#7a808b}.about{padding-top:110px;padding-bottom:110px}.compact{align-items:flex-start}.about-copy{max-width:470px;padding-top:5px}.about-copy p{color:#5d636e;font-size:15px;line-height:1.9;margin:0 0 18px}.about-copy .lead{font-size:20px;line-height:1.6;color:#181a20;letter-spacing:-.03em}.skills-panel{border-top:1px solid var(--line);margin-top:20px}.skills-heading{display:flex;justify-content:space-between;padding:14px 0;font:11px var(--mono);color:#68707c}.skills-grid{display:grid;grid-template-columns:1fr 1fr;grid-column-gap:40px;column-gap:40px}.skill-row{display:grid;grid-template-columns:34px 1fr auto;align-items:center;grid-gap:10px;gap:10px;border-top:1px solid #e5e6e9;padding:13px 0}.skill-index{color:var(--blue);font:10px var(--mono)}.skill-name{font-size:15px;font-weight:700}.skill-level{color:#7a808a;font:10px var(--mono)}.experience{padding-top:100px;padding-bottom:110px;background:#f3f4f6}.timeline{border-top:1px solid #cfd2d8}.timeline-item{display:grid;grid-template-columns:180px 1fr;grid-gap:25px;gap:25px;padding:24px 0;border-bottom:1px solid #d8dbe0}.timeline-date{padding-top:5px;font:12px var(--mono);color:var(--blue)}.timeline-content h3{font-size:23px;line-height:1;letter-spacing:-.05em;margin:0 0 7px}.timeline-title{font-size:15px;margin:0;color:#4e5561}.timeline-description{max-width:700px;color:#666d78;font-size:14px;line-height:1.85;margin:14px 0 0}.timeline-item:not(.featured) .timeline-content h3{font-size:15px}.timeline-item:not(.featured){padding:16px 0}.contact{padding-top:65px;padding-bottom:70px;background:var(--blue);color:white}.contact-kicker{display:flex;justify-content:space-between;font:11px var(--mono);color:#d6e2ff}.contact h2{font-size:clamp(60px,9vw,118px);margin-top:65px}.contact h2 span{color:#a9c2ff}.contact>p{max-width:460px;font-size:16px;line-height:1.8;color:#e1e9ff;margin:28px 0}.contact-email{display:inline-flex;align-items:center;gap:18px;border-bottom:1px solid #ffffff88;padding-bottom:10px;font-size:clamp(19px,3vw,30px);font-weight:700;letter-spacing:-.04em}.contact-email:hover{color:#d7e3ff}.contact-details{gap:15px;flex-wrap:wrap;margin-top:70px;padding-top:16px;border-top:1px solid #ffffff55;color:#d6e2ff}.contact-details,.footer{display:flex;justify-content:space-between;font:8px var(--mono)}.footer{align-items:center;gap:16px;padding-top:20px;padding-bottom:20px;color:#737986}.footer-logo{font:800 23px var(--sans);letter-spacing:-.1em;color:#111}.footer-logo span{color:var(--blue)}@media (min-width:1500px){.section-wrap{padding-left:max(8.2vw,calc((100vw - 1240px) / 2));padding-right:max(8.2vw,calc((100vw - 1240px) / 2))}}@media (max-width:900px){.topbar{padding:0 22px}.topbar nav{gap:5px}.topbar nav a{padding:10px 9px}.availability{display:none}.section-wrap{padding-left:6vw;padding-right:6vw}.hero{min-height:0;padding-top:80px;grid-template-columns:1fr;gap:45px}.hero-art{max-width:600px;width:100%;margin-left:auto}.art-grid{grid-template-rows:160px 160px}.hero-bottomline{margin-top:45px}.project-grid{grid-template-columns:1fr 1fr}.project-card:last-child{grid-column:1/-1;max-width:calc(50% - 10px)}.section-heading{gap:25px}}@media (max-width:600px){.topbar{height:auto;min-height:62px;flex-wrap:wrap;padding:14px 18px;gap:14px}.topbar nav{order:3;width:100%;justify-content:space-between;gap:4px;font-size:12px}.topbar nav a{padding:9px 7px}.topbar nav a.active:after{left:7px;right:7px;bottom:2px}.wordmark{font-size:10px}.hero{padding-top:65px}.hero h1{font-size:clamp(67px,19vw,105px)}.hero-role{font-size:9px;margin-top:28px}.hero-intro{font-size:16px}.art-grid{grid-template-rows:130px 130px}.art-blue{font-size:66px}.art-outline{font-size:30px}.hero-bottomline{font-size:7px}.section-heading{display:block}.section-note{margin-top:22px;font-size:14px}.about,.experience,.projects{padding-top:75px;padding-bottom:75px}.project-grid{grid-template-columns:1fr;gap:36px}.project-card:last-child{grid-column:auto;max-width:none}.project-visual{height:260px}.project-card>p{min-height:0;font-size:15px}.skills-grid{grid-template-columns:1fr}.skill-name{font-size:15px}.timeline-description,.timeline-title{font-size:14px}.contact>p{font-size:15px}.timeline-item{grid-template-columns:1fr;gap:10px}.timeline-date{padding-top:0}.contact{padding-top:45px;padding-bottom:45px}.contact h2{margin-top:50px}.contact-details{margin-top:50px;flex-direction:column}.footer{flex-wrap:wrap}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{transition:none!important;animation:none!important}.reveal-on-scroll{opacity:1;transform:none}}.section-heading h2.reveal-heading{opacity:1;transform:none;overflow:visible}.section-heading h2.reveal-heading .heading-line{display:inline-block;will-change:transform,opacity}.section-heading h2.reveal-heading:not(.is-visible) .heading-line-first{opacity:0;transform:translate3d(-34px,0,0)}.section-heading h2.reveal-heading:not(.is-visible) .heading-line-second{opacity:0;transform:translate3d(34px,0,0)}.section-heading h2.reveal-heading.is-visible .heading-line-first{animation:heading-in-left .76s cubic-bezier(.2,.7,.2,1) both}.section-heading h2.reveal-heading.is-visible .heading-line-second{animation:heading-in-right .76s cubic-bezier(.2,.7,.2,1) 90ms both}@keyframes heading-in-left{0%{opacity:0;transform:translate3d(-34px,0,0)}to{opacity:1;transform:translateZ(0)}}@keyframes heading-in-right{0%{opacity:0;transform:translate3d(34px,0,0)}to{opacity:1;transform:translateZ(0)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal-on-scroll,.section-heading h2.reveal-heading .heading-line{opacity:1!important;transform:none!important;animation:none!important}.section-heading h2.reveal-heading:not(.is-visible) .heading-line-first,.section-heading h2.reveal-heading:not(.is-visible) .heading-line-second{opacity:1;transform:none}.section-heading h2.reveal-heading.is-visible .heading-line-first,.section-heading h2.reveal-heading.is-visible .heading-line-second{animation:none;opacity:1;transform:none}}.topbar nav{display:flex;align-items:center;gap:40px;font-family:var(--mono);font-size:14px;font-weight:500;color:#737986}.topbar nav a{position:relative;padding:12px 0;color:inherit;font-weight:500;letter-spacing:-.04em;transition:color .2s ease}.topbar nav a:hover{color:var(--blue)}.topbar nav a.active{color:var(--ink);font-weight:700}.topbar nav a.active:after{transform-origin:left}.topbar nav a.active:after,.topbar nav a:after{content:"";position:absolute;left:0;right:0;bottom:3px;height:2px;background:var(--blue)}.topbar nav a:after{transform:scaleX(0);transform-origin:right;transition:transform .22s ease}.topbar nav a:hover:after{transform:scaleX(1);transform-origin:left}.topbar nav a.active:after{transform:scaleX(1)}.topbar nav a:focus-visible{outline:2px solid var(--blue);outline-offset:5px}@media (max-width:900px){.topbar nav{gap:16px;font-size:11px}}@media (max-width:600px){.topbar nav{width:100%;justify-content:flex-start;gap:22px;overflow-x:auto;overflow-y:hidden;white-space:nowrap;scrollbar-width:none;-webkit-overflow-scrolling:touch}.topbar nav::-webkit-scrollbar{display:none}.topbar nav a{flex:0 0 auto;padding:10px 0}}@media (min-width:601px) and (max-width:1100px){.hero{grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:28px}.hero h1{font-size:clamp(64px,8.5vw,100px);overflow-wrap:anywhere}.hero-intro{font-size:15px}.art-grid{grid-template-rows:150px 150px}}