:root{--paper:#fafaf8;--ink:#151613;--muted:#686b63;--line:#dedfd8;--font-sans:var(--font-inter),Arial,sans-serif;--gutter:clamp(22px,3.6vw,64px)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px;background:var(--paper);color:var(--ink)}body{margin:0;font-family:var(--font-sans);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}a{text-decoration:none}a,button{color:inherit}button{cursor:pointer}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid #476451;outline-offset:6px}::selection{background:#dce4d3;color:#151613}figure,h1,h2,h3,p{margin:0}.site-shell{max-width:1800px;margin:auto;padding:0 var(--gutter);background-image:linear-gradient(90deg,#6e786508 1px,transparent 0);background-size:calc((100% - var(--gutter) * 2) / 12) 100%;background-position:var(--gutter) 0}.eyebrow{font-size:10px;font-weight:500;line-height:1.65;letter-spacing:.16em;text-transform:uppercase}.muted{color:var(--muted)}.skip-link{position:absolute;top:12px;left:12px;padding:12px 20px;background:var(--ink);color:var(--paper);transform:translateY(-180%);z-index:5}.skip-link:focus{transform:translateY(0)}.masthead{display:flex;align-items:center;gap:clamp(24px,4vw,70px);min-height:91px;border-bottom:1px solid var(--line)}.brand{font-size:28px;font-weight:600;letter-spacing:-.08em}.brand-caption{display:flex;align-items:center;gap:30px;font-size:9px}.navigation{margin-left:auto;display:flex;gap:clamp(18px,2.6vw,40px);font-size:12px;font-weight:500;letter-spacing:.12em;text-transform:uppercase}.footer-links a,.navigation a{display:inline-flex;align-items:center;min-height:44px;transition:color .2s}.footer-links a:hover,.navigation a:hover{color:#66745d}.header-square{width:7px;height:7px;background:var(--ink);margin-left:15px}.hero{display:grid;grid-template-columns:minmax(0,1.06fr) minmax(0,1fr);align-items:center;grid-gap:clamp(24px,2.8vw,50px);gap:clamp(24px,2.8vw,50px);padding:52px 0 46px}.hero-kicker{color:var(--muted);margin-bottom:22px;display:flex;gap:18px}.hero-kicker span{color:#8c9186}h1{font-size:clamp(52px,6.15vw,102px);font-weight:600;letter-spacing:-.075em;line-height:.99}.hero-subtitle{font-size:clamp(15px,1.4vw,22px);line-height:1.4;letter-spacing:-.035em;color:var(--muted);margin-top:24px}.hero-intro{max-width:47ch;margin-top:26px;font-size:clamp(13px,1.04vw,16px);line-height:1.6;letter-spacing:-.025em}.hero-intro p+p{margin-top:15px}.hero-link{display:inline-flex;align-items:center;gap:16px;margin-top:33px;font-size:12px;min-height:44px;letter-spacing:.12em}.hero-link span{font-size:27px;line-height:1;transition:transform .2s}.hero-link:hover span{transform:translateX(5px)}.hero-story{position:relative;height:calc(var(--hero-height, 500px) + 100svh)}.hero-story>.hero{position:-webkit-sticky;position:sticky;top:var(--hero-top,0)}.mobius-experience{align-self:center;color:var(--muted);-webkit-user-select:none;-moz-user-select:none;user-select:none;max-width:680px;justify-self:center}.mobius-experience,.mobius-story{width:100%;min-width:0}.mobius-viewport{position:relative;width:100%;aspect-ratio:1;cursor:-webkit-grab;cursor:grab;touch-action:pan-y;outline-offset:3px}.mobius-viewport:focus-visible{outline:1px solid #476451}.mobius-viewport[data-dragging]{cursor:-webkit-grabbing;cursor:grabbing}.mobius-fallback,.mobius-viewport canvas{position:absolute;inset:0;width:100%;height:100%}.mobius-experience:not([data-status=ready]) canvas,.mobius-experience[data-status=ready] .mobius-fallback{visibility:hidden}@media (min-width:761px) and (max-width:1100px){.mobius-experience{max-width:none}.mobius-viewport{aspect-ratio:.9}}@media (max-width:760px){.hero-story{height:auto}.hero-story>.hero{position:static}.mobius-story{height:calc(var(--visual-height, 280px) + 48svh)}.mobius-experience{position:-webkit-sticky;position:sticky;top:var(--hero-top,16px);max-width:320px;margin-inline:auto}.mobius-viewport{aspect-ratio:1.15}}.hero-drawing{position:relative;align-self:center;color:#7e8179;padding-top:25px}.hero-drawing>svg{display:block;width:100%;height:auto;overflow:visible}.hero-drawing figcaption{font-size:8px;letter-spacing:.14em;text-align:right;margin-top:12px}.drawing-aside{position:absolute;right:0;top:0;font-size:7px;line-height:1.8}.disciplines{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:25px 0;border-block:1px solid var(--line)}.discipline{padding:0 27px;display:block}.discipline:first-child{padding-left:0}.discipline:last-child{padding-right:0}.discipline+.discipline{border-left:1px solid var(--line)}.discipline h2{font-size:clamp(20px,2.05vw,33px);font-weight:500;letter-spacing:-.055em;line-height:1.1;margin:11px 0 10px}.discipline-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px}.discipline p{font-size:clamp(12px,1.03vw,15px);line-height:1.45;letter-spacing:-.025em;color:#5b5e56}.discipline-bottom>span{font-size:24px;transition:transform .2s}.discipline:hover .discipline-bottom>span{transform:translateX(5px)}.work-section{padding:48px 0 64px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}.section-heading h2{font-weight:500;font-size:clamp(22px,2.1vw,32px);letter-spacing:-.045em;text-transform:none}.project-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);grid-gap:36px clamp(24px,3vw,48px);gap:36px clamp(24px,3vw,48px);align-items:start}.project-featured{grid-row:span 2}.project-featured .project-visual{aspect-ratio:1.2}.project-featured h3{font-size:clamp(24px,2.5vw,38px)}.project{min-width:0;scroll-margin-top:30px}.project-button{width:100%;border:0;padding:0;background:transparent;text-align:left;display:block}.project-visual{position:relative;isolation:isolate;background:#e8e8e4;aspect-ratio:1.75;overflow:hidden;display:flex;align-items:center;justify-content:center;transition:filter .3s}.project-image{object-fit:cover;object-position:center}.project-button:hover .project-visual{filter:brightness(.95)}.project-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:10px}.project-number{font-size:9px;display:block;margin-bottom:3px}.project h3{font-size:clamp(15px,1.25vw,20px);font-weight:500;letter-spacing:-.045em;line-height:1.25}.project-arrow{font-size:24px;align-self:end;transition:transform .2s}.project-button:hover .project-arrow{transform:translate(3px,-3px)}.project-category{font-size:10px;letter-spacing:.11em;margin-top:5px;color:#60645b}.project-summary{font-size:14px;line-height:1.6;color:var(--muted);max-width:54ch;margin-top:12px}.project-featured .project-summary{font-size:16px}.about-section{display:grid;grid-template-columns:.7fr 2.2fr 1.2fr;align-items:center;grid-gap:45px;gap:45px;padding:64px 0;border-block:1px solid var(--line)}.about-label{font-size:11px;color:var(--muted)}.about-section h2{font-size:clamp(27px,3vw,46px);font-weight:500;line-height:1.03;letter-spacing:-.06em}.about-section p{font-size:15px;line-height:1.6;letter-spacing:-.015em;color:#56594f;max-width:38ch}.about-copy p+p{margin-top:16px}.site-footer{padding:68px 0 20px}.site-footer .eyebrow{font-size:11px;letter-spacing:.12em}.contact-heading{max-width:1050px}.contact-heading>.eyebrow{display:block}.contact-heading>p{color:var(--muted);font-size:16px;line-height:1.6;margin-top:20px}.contact-email{margin-top:24px;min-height:44px}.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:64px;padding-top:16px;border-top:1px solid var(--line)}.footer-invite{font-size:clamp(38px,5.8vw,88px);letter-spacing:-.065em;line-height:1.1;display:inline-flex;align-items:baseline;gap:clamp(12px,3vw,48px);margin-top:18px}.footer-invite>span{transition:transform .2s}.footer-invite:hover>span{transform:translate(5px,-5px)}.footer-links{display:flex;gap:25px}.text-link{display:inline-flex;gap:24px;align-items:center;font-size:12px;border-bottom:1px solid var(--ink);padding-bottom:7px}.project-dialog{width:min(650px,calc(100% - 32px));max-height:calc(100dvh - 48px);padding:0;border:1px solid var(--line);background:var(--paper);color:var(--ink);overscroll-behavior:contain}.project-dialog::-webkit-backdrop{background:#161c1466;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.project-dialog::backdrop{background:#161c1466;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.dialog-inner{padding:28px}.dialog-top{justify-content:space-between;gap:20px;margin-bottom:22px}.close-button,.dialog-top{display:flex;align-items:center}.close-button{border:0;background:none;gap:12px;padding:8px 6px;min-height:44px;font-size:12px}.close-button>span{font-size:23px}.dialog-inner .project-visual{aspect-ratio:1.55}.dialog-category{color:var(--muted);margin:24px 0 9px;font-size:9px}.project-dialog h2{font-size:clamp(28px,5vw,40px);line-height:1.1;letter-spacing:-.055em;font-weight:500}.dialog-description{font-size:16px;line-height:1.6;margin-top:17px;letter-spacing:-.02em}.dialog-focus{border-top:1px solid var(--line);padding-top:20px;margin-top:23px}.dialog-focus h3{font-size:13px;font-weight:500;margin-bottom:8px}.dialog-focus p{font-size:14px;color:#5b6053;line-height:1.6}.visual-note{font-size:11px;line-height:1.6;color:var(--muted);margin:20px 0 24px}@media (min-width:1600px){.hero{padding:65px 0 58px}.work-section{padding:56px 0 72px}.about-section{padding:64px 0}.disciplines{padding:32px 0}}@media (max-width:1100px){.brand-caption,.brand-caption span{display:block}.hero{grid-template-columns:minmax(0,1.06fr) minmax(0,1fr);gap:30px;position:relative}.hero-main{grid-row:auto}.hero-intro{padding-top:0}.hero-drawing{max-width:270px;justify-self:center;padding-top:0}.drawing-aside{display:none}.hero-drawing figcaption{margin-top:0}.hero{align-items:start}.hero-link{margin-top:18px}h1{font-size:clamp(45px,6.3vw,70px)}.hero-drawing>svg{max-height:170px}.hero-subtitle{font-size:18px}.discipline{padding-inline:20px}.project-grid{gap:18px}.about-section{gap:25px;grid-template-columns:.6fr 1.8fr 1fr}.project-visual{aspect-ratio:1.5}}@media (max-width:760px){.masthead{gap:22px;min-height:80px}.brand-caption{font-size:8px}.brand-caption .muted{display:none}.navigation{gap:18px;font-size:11px}.header-square{display:none}.hero{padding:37px 0 30px;gap:26px;grid-template-columns:minmax(0,1fr)}.hero-main{grid-column:1/-1;grid-row:auto}.hero-kicker{font-size:9px;margin-bottom:20px}h1{font-size:clamp(52px,10.8vw,78px);line-height:.98}.hero-subtitle{font-size:17px;line-height:1.5;margin-top:20px}.hero-intro{font-size:14px;line-height:1.55;margin-top:20px}.hero-intro p+p{margin-top:10px}.hero-link{font-size:12px;gap:10px}.hero-drawing{align-self:center;max-width:240px}.hero-drawing figcaption{font-size:7px}.disciplines{gap:0;padding:22px 0}.discipline{padding-inline:15px}.discipline h2{font-size:21px;line-height:1.15}.discipline .eyebrow{font-size:9px}.discipline p{font-size:11px}.discipline-bottom{align-items:start;gap:8px}.discipline-bottom>span{font-size:19px}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 20px}.project-featured{grid-column:1/-1;grid-row:auto}.project-featured .project-visual{aspect-ratio:1.45}.project-visual{aspect-ratio:1.5}.project h3{font-size:17px}.project-category{font-size:10px}.about-section{grid-template-columns:1fr 1fr;padding:40px 0;gap:20px}.about-label{grid-column:1/-1}.about-section h2{font-size:29px}.about-section p{font-size:14px}.site-footer{padding-top:48px}.footer-links{gap:20px}.footer-invite{font-size:clamp(34px,6.8vw,52px)}}@media (max-width:480px){.masthead{flex-wrap:wrap;padding:18px 0;gap:12px 20px}.brand{font-size:25px}.brand-caption{font-size:8px}.navigation{width:100%;justify-content:space-between;padding-top:5px;font-size:11px}.hero{grid-template-columns:minmax(0,1fr);gap:18px}.hero-kicker{gap:12px}h1{font-size:clamp(44px,11.3vw,55px)}.hero-subtitle{font-size:15px}.hero-intro{font-size:14px}.hero-link{font-size:11px;letter-spacing:.06em;gap:7px}.hero-link span{font-size:23px}.hero-drawing>svg{width:110%;margin-left:-5%}.hero-drawing figcaption{font-size:6px;letter-spacing:.07em}.disciplines{grid-template-columns:1fr;padding:0}.discipline,.discipline:first-child,.discipline:last-child{padding:17px 0;display:grid;grid-template-columns:28px 1fr;grid-gap:2px 12px;gap:2px 12px}.discipline+.discipline{border-left:0;border-top:1px solid var(--line)}.discipline .eyebrow{padding-top:3px}.discipline h2{font-size:23px;margin:0}.discipline-bottom{grid-column:2}.discipline p{font-size:12px}.discipline-bottom>span{line-height:1}.section-heading>span{font-size:9px;letter-spacing:.08em}.project-grid{grid-template-columns:1fr;gap:28px}.project-featured{grid-column:auto}.project-featured .project-visual{aspect-ratio:1.25}.project.project-featured h3{font-size:28px}.project-visual{aspect-ratio:1.55}.project h3{font-size:16px}.project-category{font-size:10px;letter-spacing:.07em;line-height:1.8}.project-arrow{font-size:20px}.about-section{grid-template-columns:1fr;gap:18px}.about-label{font-size:11px}.about-section h2{font-size:33px}.about-section p{font-size:14px;max-width:45ch}.footer-invite{font-size:clamp(28px,7.5vw,36px);gap:12px}.footer-bottom{align-items:start;flex-direction:column;gap:8px;margin-top:40px}.contact-heading>p{font-size:14px;max-width:32ch}.footer-links{width:100%;justify-content:space-between;padding-top:10px}.dialog-inner{padding:20px}.dialog-top .eyebrow{font-size:10px}.dialog-inner .project-visual{aspect-ratio:1.5}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-story,.mobius-story{height:auto}.hero-story>.hero,.mobius-experience{position:static}*,:after,:before{transition:none!important}}.hero-story:has(.mobius-experience[data-status=fallback]),.mobius-story:has(.mobius-experience[data-status=fallback]){height:auto}.hero-story:has(.mobius-experience[data-status=fallback])>.hero,.mobius-experience[data-status=fallback]{position:static}.project-meta-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px}.project-tag-pill{font-size:8px;background:#edf0e6;color:#4b5845;border:1px solid #d5decb;padding:2px 7px;border-radius:3px}.project-card-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid #ebece4}.card-metric{display:flex;flex-direction:column}.card-metric-value{font-size:13px;font-weight:600;letter-spacing:-.03em;color:var(--ink)}.card-metric-label{font-size:8px;color:#797c72;margin-top:2px}.dialog-metrics-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px;margin:18px 0;background:#f2f3ec;padding:14px;border-radius:4px}.dialog-metric-box{display:flex;flex-direction:column}.dialog-metric-val{font-size:16px;font-weight:600;letter-spacing:-.03em}.dialog-metric-lbl{font-size:8px;color:var(--muted);margin-top:3px}.dialog-specs{display:grid;grid-template-columns:1fr 1fr;grid-gap:18px;gap:18px;margin:20px 0;padding:18px 0;border-block:1px solid var(--line)}.dialog-spec-block .spec-title{font-size:9px;color:#3b503f;margin-bottom:6px;display:block}.dialog-spec-block p{font-size:13px;line-height:1.55;color:#484b42}.dialog-stack-row{margin:16px 0;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dialog-stack-row .stack-title{font-size:9px;color:var(--muted)}.stack-chips{display:flex;gap:6px;flex-wrap:wrap}.stack-chip{font-size:10px;background:#ebece4;padding:3px 8px;border-radius:3px;font-family:var(--font-inter),monospace}.experience-section{padding:54px 0 64px;border-top:1px solid var(--line)}.experience-timeline{display:flex;flex-direction:column}.timeline-entry{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,3fr) 48px;grid-gap:28px;gap:28px;padding:28px 0;border-bottom:1px solid var(--line);align-items:baseline}.timeline-entry:first-child{padding-top:8px}.timeline-meta{display:flex;flex-direction:column;gap:6px}.timeline-period{font-size:11px;font-weight:500;letter-spacing:.08em}.timeline-badge{font-size:8px;color:#3f5544;background:#edf2ea;padding:2px 6px;border-radius:3px;align-self:flex-start}.timeline-heading{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:8px}.timeline-role{font-size:clamp(17px,1.4vw,22px);font-weight:500;letter-spacing:-.04em}.timeline-company{font-size:10px;color:var(--muted)}.timeline-description{font-size:14px;line-height:1.6;color:#55594e;max-width:62ch}.timeline-index{color:#a8aca2;font-size:11px;text-align:right}.stack-section{padding:54px 0 64px;border-top:1px solid var(--line)}.tech-stack-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:clamp(16px,2vw,28px);gap:clamp(16px,2vw,28px)}.tech-group-card{background:#f5f5f1;border:1px solid var(--line);padding:22px 18px;display:flex;flex-direction:column;border-radius:4px;transition:border-color .2s,background-color .2s,transform .2s}.tech-group-card:hover{border-color:#bcc0b2;background:#fafaf6;transform:translateY(-2px)}.tech-group-header{margin-bottom:18px;padding-bottom:12px;border-bottom:1px solid var(--line)}.tech-group-badge{font-size:10px;color:var(--ink);display:block;font-weight:600;letter-spacing:.12em}.tech-group-desc{font-size:11px;line-height:1.45;color:var(--muted);margin-top:6px}.tech-items-list{display:flex;flex-direction:column;gap:10px}.tech-item-row{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:4px;background:rgba(255,255,255,.7);border:1px solid rgba(222,223,216,.8);transition:transform .15s,background-color .15s,box-shadow .15s}.tech-item-row:hover{transform:translateX(3px);background:#ffffff;box-shadow:0 2px 6px rgba(0,0,0,.04)}.tech-icon-wrap{width:24px;height:24px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.tech-icon-img{object-fit:contain;width:20px;height:20px}.tech-item-info{display:flex;flex-direction:column;min-width:0}.tech-name{font-size:12px;font-weight:500;color:var(--ink);letter-spacing:-.02em}.tech-highlight{font-size:8px;color:#687063;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width:1100px){.tech-stack-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.timeline-entry{grid-template-columns:minmax(0,1.4fr) minmax(0,3fr) 32px;gap:20px}}@media (max-width:760px){.experience-section,.stack-section{padding:40px 0}.timeline-entry{grid-template-columns:1fr;gap:12px;padding:22px 0}.timeline-index{display:none}.tech-stack-grid{grid-template-columns:1fr;gap:16px}.dialog-specs{grid-template-columns:1fr;gap:14px}.dialog-metrics-grid{grid-template-columns:1fr;gap:10px}}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter Fallback;src:local("Arial");ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%;size-adjust:107.12%}.__className_d8ebd1{font-family:Inter,Inter Fallback;font-style:normal}.__variable_d8ebd1{--font-inter:"Inter","Inter Fallback"}