@font-face{font-family:Geist Local;src:url(/assets/fonts/geist-latin-wght-normal.woff2)format("woff2");font-style:normal;font-weight:100 900;font-display:swap}:root{color-scheme:light dark;--page:#fff;--surface:#fafafa;--ink:#000;--ink-soft:#666;--line:#e5e5e5;--fs-label:.8125rem;--fs-small:.875rem;--fs-body:1rem;--fs-lead:1.125rem;--fs-title:1.5rem;--fs-section:clamp(2rem, 3vw, 2.5rem);--fs-display:clamp(2.5rem, 5vw, 4rem);--w-regular:400;--w-medium:550;--w-bold:630;--header-height:4.25rem;--page-pad:clamp(1.25rem, 4vw, 5rem);--content-width:92rem;--section-space:clamp(4rem, 8vw, 6.5rem);--ledger-columns:minmax(14rem, .6fr) minmax(0, 1.4fr);--ledger-gap:clamp(2rem, 5vw, 5rem);--radius:4px}@media (prefers-color-scheme:dark){:root{--page:#000;--surface:#0d0d0d;--ink:#fff;--ink-soft:#999;--line:#262626}}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 1rem);background:var(--page)}body{background:var(--page);color:var(--ink);font-family:Geist Local,Helvetica Neue,Arial,sans-serif;font-size:var(--fs-body);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;line-height:1.6}a{color:inherit;text-underline-offset:.22em;text-decoration-thickness:.075em}a [aria-hidden=true]{margin-left:.3em;text-decoration:none;display:inline-block}a,summary{-webkit-tap-highlight-color:transparent}img{max-width:100%;display:block}figure,h1,h2,h3,h4,p,dl,dd{margin:0}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.page-shell{width:min(100%, var(--content-width));padding-inline:var(--page-pad);margin-inline:auto}.section{padding-block:var(--section-space);border-top:1px solid var(--line)}.label{color:var(--ink-soft);font-size:var(--fs-label);font-weight:var(--w-medium);line-height:1.35}.text-link{color:var(--ink-soft);font-size:var(--fs-small);font-weight:var(--w-medium);transition:color .16s}.text-link:hover{color:var(--ink)}.link-row{flex-wrap:wrap;gap:.5rem 1.5rem;margin-top:1.25rem;display:flex}.skip-link{z-index:100;border:1px solid var(--line);border-radius:var(--radius);background:var(--page);color:var(--ink);padding:.7rem 1rem;position:fixed;top:.75rem;left:.75rem;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}:focus-visible{outline:3px solid var(--ink);outline-offset:4px}.employer-header{z-index:20;width:100%;min-height:var(--header-height);padding-inline:var(--page-pad);border-bottom:1px solid var(--line);background:var(--page);justify-content:space-between;align-items:center;gap:2rem;display:flex;position:sticky;top:0}.employer-identity{flex:none;text-decoration:none;display:grid}.employer-identity strong{font-size:var(--fs-body);font-weight:var(--w-bold);letter-spacing:-.02em;line-height:1.25}.employer-identity span{color:var(--ink-soft);font-size:var(--fs-label);line-height:1.35}.desktop-nav{white-space:nowrap;align-items:center;gap:clamp(1.1rem,2vw,2.25rem);display:flex}.desktop-nav a{color:var(--ink-soft);font-size:var(--fs-small);font-weight:var(--w-medium);text-decoration:none;transition:color .16s,background-color .16s}.desktop-nav a:hover{color:var(--ink)}.desktop-nav .header-contact{border:1px solid var(--ink);border-radius:var(--radius);min-height:2.5rem;color:var(--ink);align-items:center;padding-inline:.95rem;display:inline-flex}.desktop-nav .header-contact:hover{background:var(--ink);color:var(--page)}.mobile-menu{display:none;position:relative}.mobile-menu summary{border:1px solid var(--line);border-radius:var(--radius);min-height:2.5rem;color:var(--ink);cursor:pointer;font-size:var(--fs-small);font-weight:var(--w-medium);align-items:center;padding-inline:.9rem;list-style:none;display:flex}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu nav{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);min-width:14rem;padding:.55rem;display:grid;position:absolute;top:calc(100% + .65rem);right:0}.mobile-menu:not([open]) nav{display:none}.mobile-menu nav a{color:var(--ink);font-size:var(--fs-body);padding:.8rem .85rem;text-decoration:none}.hero{grid-template-columns:minmax(0,1.3fr) minmax(18rem,.7fr);align-items:center;gap:clamp(3rem,6vw,6rem);padding-block:clamp(3.5rem,6vw,5.5rem);display:grid}.hero-copy{max-width:50rem}.hero h1{font-size:var(--fs-display);font-weight:var(--w-bold);letter-spacing:-.05em;text-wrap:balance;line-height:1}.hero-name{font-size:var(--fs-lead);letter-spacing:-.015em;margin-bottom:1rem;line-height:1.3;display:block}.hero-stack{font-size:var(--fs-title);font-weight:var(--w-bold);letter-spacing:-.025em;margin-top:1rem;line-height:1.25}.hero-summary{max-width:43rem;color:var(--ink-soft);font-size:var(--fs-lead);margin-top:1.5rem}.hero-meta{color:var(--ink-soft);font-size:var(--fs-small);margin-top:1.25rem}.hero-meta span{display:block}.hero-actions{flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;margin-top:2rem;display:flex}.primary-action{border:1px solid var(--ink);border-radius:var(--radius);background:var(--ink);min-height:3rem;color:var(--page);font-size:var(--fs-small);font-weight:var(--w-medium);white-space:nowrap;justify-content:center;align-items:center;padding-inline:1.25rem;line-height:1;text-decoration:none;transition:background-color .16s,color .16s,transform .16s;display:inline-flex}.primary-action:hover{color:var(--ink);background:0 0}.primary-action:active{transform:scale(.98)}.selected-evidence{min-width:0}.selected-evidence ul{margin:1rem 0 0;padding:0;list-style:none}.selected-evidence li{border-top:1px solid var(--line);padding-block:1.1rem}.selected-evidence a{font-size:var(--fs-lead);font-weight:var(--w-bold);letter-spacing:-.015em;line-height:1.35}.selected-evidence a,.selected-writing h4 a{text-decoration-color:var(--line);transition:text-decoration-color .16s}.selected-evidence a:hover,.selected-writing h4 a:hover{text-decoration-color:currentColor}.selected-evidence p{color:var(--ink-soft);font-size:var(--fs-small);margin-top:.4rem}.section-header{max-width:50rem}.section-header h2,.approach>h2,.contact h2{font-size:var(--fs-section);font-weight:var(--w-bold);letter-spacing:-.04em;text-wrap:balance;line-height:1.05}.section-header>p{max-width:44rem;color:var(--ink-soft);margin-top:1rem}.case-intro{grid-template-columns:minmax(0,1fr) clamp(13rem,18vw,16rem);align-items:start;gap:clamp(3rem,7vw,8rem);display:grid}.case-facts{margin-top:3rem}.case-facts h3{font-size:var(--fs-lead);font-weight:var(--w-bold);letter-spacing:-.015em}.facts-date{color:var(--ink-soft);font-size:var(--fs-small);margin-top:.15rem}.case-facts dl{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:2.5rem;margin-top:1.25rem;display:grid}.case-facts dl>div{border-top:1px solid var(--line);padding-block:1.25rem}.case-facts dt{color:var(--ink-soft);font-size:var(--fs-label);font-weight:var(--w-medium)}.case-facts dd{font-size:var(--fs-title);font-variant-numeric:tabular-nums;font-weight:var(--w-bold);letter-spacing:-.025em;margin-top:.3rem;line-height:1.25}.case-facts dd span{max-width:28rem;color:var(--ink-soft);font-size:var(--fs-small);font-weight:var(--w-regular);letter-spacing:0;margin-top:.5rem;line-height:1.55;display:block}.case-phone img{border:1px solid var(--line);border-radius:var(--radius);width:100%;height:auto}.case-phone figcaption{color:var(--ink-soft);font-size:var(--fs-label);margin-top:.75rem;line-height:1.45}.case-phone figcaption strong{color:var(--ink);font-weight:var(--w-medium);display:block}.architecture{margin-top:clamp(3.5rem,6vw,5rem)}.architecture figcaption{margin-bottom:1rem}.architecture ol{border-top:1px solid var(--line);grid-template-columns:repeat(5,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.architecture li{min-width:0;padding:1.25rem 1.25rem 0}.architecture li:first-child{padding-left:0}.architecture li+li{border-left:1px solid var(--line)}.architecture li>.label{justify-content:space-between;gap:.5rem;display:flex}.architecture li:not(:last-child)>.label:after{color:var(--ink);content:"→";font-size:var(--fs-small);line-height:1}.architecture li strong{font-weight:var(--w-bold);letter-spacing:-.015em;margin-top:.85rem;line-height:1.3;display:block}.architecture li p{color:var(--ink-soft);font-size:var(--fs-small);margin-top:.5rem;line-height:1.5}.case-detail{grid-template-columns:minmax(0,1.35fr) minmax(18rem,.65fr);align-items:start;gap:clamp(3rem,6vw,6rem);margin-top:clamp(3.5rem,6vw,5rem);display:grid}.case-screenshot{min-width:0}.case-screenshot img{border:1px solid var(--line);border-radius:var(--radius);object-fit:cover;object-position:top center;width:100%;height:clamp(24rem,38vw,34rem)}.case-screenshot figcaption{color:var(--ink-soft);font-size:var(--fs-label);justify-content:space-between;align-items:baseline;gap:1rem;margin-top:.75rem;line-height:1.45;display:flex}.case-screenshot figcaption a{color:var(--ink);font-weight:var(--w-medium);flex:none}.case-decision h3{font-size:var(--fs-title);font-weight:var(--w-bold);letter-spacing:-.025em;text-wrap:balance;line-height:1.25}.case-decision p{color:var(--ink-soft);margin-top:1rem}.case-decision strong{color:var(--ink);font-weight:var(--w-bold)}.case-decision .text-link{margin-top:1.5rem;display:inline-block}.experience-ledger{border-top:1px solid var(--line);margin-top:2.5rem}.experience-ledger article{grid-template-columns:var(--ledger-columns);gap:1rem var(--ledger-gap);border-bottom:1px solid var(--line);align-items:start;padding-block:1.5rem;display:grid}.experience-context h3{font-size:var(--fs-lead);font-weight:var(--w-bold);letter-spacing:-.015em;line-height:1.3}.experience-context p{color:var(--ink-soft);font-size:var(--fs-small);margin-top:.2rem}.experience-work{max-width:46rem}.experience-work>p:first-child{color:var(--ink-soft)}.experience-stack{font-size:var(--fs-label);font-weight:var(--w-medium);margin-top:.6rem}.vestuario{grid-template-columns:minmax(18rem,.75fr) minmax(0,1.25fr);align-items:center;gap:clamp(3rem,7vw,7rem);display:grid}.vestuario .section-header>.project-subtitle{color:var(--ink);font-size:var(--fs-lead);font-weight:var(--w-bold);letter-spacing:-.015em;margin-top:.75rem}.vestuario-copy>p{color:var(--ink-soft);margin-top:1rem}.vestuario-copy .link-row{margin-top:1.5rem}.vestuario-visual{min-width:0}.vestuario-visual img{border:1px solid var(--line);border-radius:var(--radius);width:100%;height:auto}.approach{grid-template-columns:var(--ledger-columns);gap:1.25rem var(--ledger-gap);align-items:start;display:grid}.approach-body{max-width:46rem}.approach-body>p{color:var(--ink-soft)}.approach-body>p+p{margin-top:1rem}.selected-writing{border-top:1px solid var(--line);margin-top:3rem;padding-top:2rem}.selected-writing h3{font-size:var(--fs-lead);font-weight:var(--w-bold);letter-spacing:-.015em}.selected-writing article{margin-top:1.25rem}.selected-writing h4{font-size:var(--fs-body);font-weight:var(--w-bold);line-height:1.4}.selected-writing article p,.writing-note{color:var(--ink-soft);font-size:var(--fs-small);margin-top:.3rem}.selected-writing .writing-note{margin-top:1.5rem}.contact{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface)}.contact-inner{grid-template-columns:var(--ledger-columns);gap:2.5rem var(--ledger-gap);padding-block:var(--section-space);align-items:end;display:grid}.contact-inner>div:first-child p{max-width:30rem;color:var(--ink-soft);margin-top:1rem}.contact-links{max-width:46rem}.contact-email{border-bottom:1px solid var(--ink);color:var(--ink);font-size:var(--fs-title);font-weight:var(--w-bold);letter-spacing:-.025em;overflow-wrap:anywhere;padding-bottom:.75rem;line-height:1.25;text-decoration:none;transition:color .16s;display:block}.contact-email:hover{color:var(--ink-soft)}.profile-links{flex-wrap:wrap;gap:.5rem 1.5rem;margin-top:1.25rem;display:flex}.profile-links a{color:var(--ink-soft);font-size:var(--fs-small);font-weight:var(--w-medium)}.profile-links a:hover{color:var(--ink)}.employer-footer{justify-content:space-between;align-items:center;gap:2rem;min-height:7rem;display:flex}.employer-footer>div{display:grid}.employer-footer strong{font-size:var(--fs-small);font-weight:var(--w-bold)}.employer-footer span,.employer-footer a{color:var(--ink-soft);font-size:var(--fs-label)}.employer-footer nav{grid-auto-flow:column;gap:clamp(1.25rem,3vw,3rem);display:grid}@media (width<=70rem){.architecture ol{grid-template-columns:1fr}.architecture li,.architecture li:first-child{border-left:0;grid-template-columns:9rem minmax(10rem,.8fr) minmax(0,1.6fr);align-items:baseline;gap:.25rem 1.5rem;padding:1rem 0;display:grid}.architecture li+li{border-top:1px solid var(--line);border-left:0}.architecture li:not(:last-child)>.label:after{content:none}.architecture li strong,.architecture li p{margin-top:0}.case-detail{grid-template-columns:minmax(0,1.15fr) minmax(17rem,.85fr);gap:3rem}}@media (width<=64rem){:root{--header-height:4rem}.desktop-nav{display:none}.mobile-menu{display:block}}@media (width<=56rem){:root{--page-pad:1.25rem;--ledger-columns:minmax(11rem, .7fr) minmax(0, 1.3fr)}.hero,.case-intro,.case-detail,.vestuario,.approach,.contact-inner{grid-template-columns:1fr}.hero{gap:3rem}.case-intro{gap:2.5rem}.case-phone{grid-template-columns:9rem minmax(0,1fr);align-items:end;gap:1rem;display:grid}.case-detail,.vestuario{gap:2.5rem}.case-decision{max-width:40rem}.contact-inner{align-items:start}.employer-footer{flex-direction:column;justify-content:center;align-items:flex-start;padding-block:2rem}}@media (width<=42rem){.employer-identity span{display:none}.mobile-menu nav{top:calc(var(--header-height) + .5rem);right:var(--page-pad);left:var(--page-pad);position:fixed}.hero{gap:2.5rem;padding-block:2.5rem}.hero-summary{font-size:var(--fs-body);margin-top:1.25rem}.case-facts{margin-top:2rem}.case-facts dl,.experience-ledger article{grid-template-columns:1fr}.case-facts dl>div{padding-block:1rem}.architecture li,.architecture li:first-child{grid-template-columns:1fr}.case-screenshot img{height:28rem}.case-screenshot figcaption{flex-direction:column;align-items:flex-start;gap:.35rem}.experience-ledger article{gap:.75rem}.contact-email{font-size:var(--fs-lead)}.employer-footer nav{grid-auto-flow:row;gap:.5rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
