@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";:root{--font-display: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--color-paper: #FAF7F2;--color-ink: #15110D;--color-ink-soft: #3A332B;--color-ink-muted: #6E6358;--color-rule: #E5DDD0;--color-ember: #E94E1B;--color-ember-deep: #C73E0E;--color-ember-tint: #FFF1E8;--color-link: #499ec0;--color-link-deep: #3a809b;--text-mega: clamp(2.5rem, 5.5vw, 4.5rem);--text-display: clamp(2rem, 3.8vw, 3.25rem);--text-h1: clamp(1.75rem, 3vw, 2.5rem);--text-h2: clamp(1.375rem, 2.2vw, 1.875rem);--text-h3: clamp(1.125rem, 1.5vw, 1.375rem);--text-lead: clamp(1.125rem, 1.4vw, 1.375rem);--text-body: 1.0625rem;--text-small: .875rem;--text-micro: .75rem;--container: 1280px;--container-narrow: 960px;--gutter: clamp(1.5rem, 4vw, 3rem)}*{box-sizing:border-box}html{font-family:var(--font-body);font-size:16px;scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{margin:0;background:var(--color-paper);color:var(--color-ink);font-size:var(--text-body);line-height:1.6;font-weight:400}::selection{background:var(--color-ember);color:var(--color-paper)}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:600;line-height:1.12;letter-spacing:-.018em;margin:0 0 1rem;color:var(--color-ink)}h1{font-size:var(--text-h1)}h2{font-size:var(--text-h2);letter-spacing:-.015em}h3{font-size:var(--text-h3);letter-spacing:-.012em;line-height:1.2}p{margin:0 0 1.25rem}a{color:var(--color-link);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px;text-decoration-color:var(--color-link);transition:text-decoration-color .15s ease,color .15s ease}a:hover{color:var(--color-link-deep);text-decoration-color:var(--color-link-deep)}mark{background:linear-gradient(180deg,transparent 60%,var(--color-ember-tint) 60%);color:var(--color-ink);padding:0 .05em}strong{font-weight:700}code,pre{font-family:var(--font-mono);font-size:.92em}hr{border:0;border-top:1px solid var(--color-rule);margin:4rem 0}.container{max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}.container-narrow{max-width:var(--container-narrow);margin:0 auto;padding:0 var(--gutter)}main{display:block;min-height:100vh}img,video{max-width:100%;height:auto;display:block}.mega{font-family:var(--font-display);font-size:var(--text-mega);font-weight:500;line-height:1.15;letter-spacing:-.022em;color:var(--color-ink)}.mega .ember{color:var(--color-ember)}.display{font-family:var(--font-display);font-size:var(--text-display);font-weight:600;line-height:1.1;letter-spacing:-.02em}.lead{font-size:var(--text-lead);line-height:1.45;color:var(--color-ink-soft);font-weight:400;max-width:60ch}.eyebrow{font-family:var(--font-mono);font-size:var(--text-micro);font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--color-ember);margin-bottom:1rem}.site-nav{position:sticky;top:0;z-index:50;background:var(--color-paper);border-bottom:1px solid transparent;transition:border-color .2s ease}.site-nav.scrolled{border-bottom-color:var(--color-rule)}.site-nav-inner{max-width:var(--container);margin:0 auto;padding:1.25rem var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:2rem}.site-nav .brand{font-family:var(--font-display);font-weight:600;font-size:1.125rem;letter-spacing:-.012em;text-decoration:none;color:var(--color-ink)}.site-nav .brand:hover{color:var(--color-ember)}.site-nav ul{list-style:none;display:flex;gap:2rem;margin:0;padding:0;font-size:var(--text-small);font-weight:500}.site-nav ul a{text-decoration:none;color:var(--color-ink-soft)}.site-nav ul a:hover,.site-nav ul a.is-active{color:var(--color-ember)}.site-footer{margin-top:8rem;padding:3rem 0 4rem;border-top:1px solid var(--color-rule)}.site-footer-inner{max-width:var(--container);margin:0 auto;padding:0 var(--gutter);display:flex;flex-wrap:wrap;gap:2rem;justify-content:space-between;align-items:center;font-size:var(--text-small);color:var(--color-ink-muted)}.site-footer a{color:var(--color-ink-soft);text-decoration-color:var(--color-rule)}.site-footer a:hover{color:var(--color-ember)}.cta{display:inline-flex;align-items:center;gap:.6rem;padding:.85rem 1.5rem;background:var(--color-ink);color:var(--color-paper);font-family:var(--font-display);font-weight:500;font-size:.9375rem;letter-spacing:-.005em;text-decoration:none;border-radius:0;transition:background .15s ease,transform .15s ease}.cta:hover{background:var(--color-ember);color:var(--color-paper);transform:translateY(-1px)}.cta-arrow{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--font-display);font-weight:500;text-decoration:none;color:var(--color-ink);border-bottom:2px solid var(--color-ember);padding-bottom:2px;transition:color .15s ease}.cta-arrow:hover{color:var(--color-ember)}.cta-arrow:after{content:"→";display:inline-block;transition:transform .15s ease}.cta-arrow:hover:after{transform:translate(4px)}.hero{padding:clamp(4rem,12vw,10rem) 0 clamp(3rem,6vw,5rem)}.hero .mega{max-width:18ch}.hero-meta{margin-top:2.5rem;display:flex;flex-wrap:wrap;gap:.5rem 2rem;font-size:var(--text-small);color:var(--color-ink-muted);font-family:var(--font-mono);letter-spacing:.02em}.hero-meta strong{color:var(--color-ink);font-weight:500}.work-section{padding:clamp(3rem,6vw,6rem) 0}.work-section .eyebrow{margin-bottom:.5rem}.work-section h2{font-size:var(--text-h1);font-weight:600;letter-spacing:-.018em;margin-bottom:3rem;max-width:22ch}.work-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem}@media(max-width:720px){.work-grid{grid-template-columns:1fr;gap:1.25rem}}.work-tile{display:block;text-decoration:none;color:var(--color-ink);background:#fff;border:1px solid var(--color-rule);padding:0;overflow:hidden;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.work-tile:hover{transform:translateY(-4px);box-shadow:0 24px 48px -24px #15110d2e;border-color:var(--color-ink)}.work-tile-image{aspect-ratio:16 / 10;background:var(--color-rule);overflow:hidden;position:relative}.work-tile-image>img{width:100%;height:100%;object-fit:cover}.work-tile-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#fcfcfa;color:var(--color-ink);font-family:var(--font-mono);font-weight:500;font-size:var(--text-small);letter-spacing:.12em;text-transform:uppercase;text-align:center;padding:1.5rem;position:relative;overflow:hidden}.work-tile-placeholder:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 20% 100%,rgba(21,17,13,.04) 0%,transparent 50%),radial-gradient(ellipse at 80% 0%,rgba(21,17,13,.03) 0%,transparent 50%);pointer-events:none}.work-tile-placeholder:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--color-ember);transform:scaleX(0);transform-origin:left center;transition:transform .45s cubic-bezier(.2,.8,.2,1)}.work-tile:hover .work-tile-placeholder:after{transform:scaleX(1)}.work-tile-placeholder span{position:relative;z-index:1}.work-tile-logo{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:auto;height:auto;max-width:50%;max-height:40%;object-fit:contain;z-index:1}.work-tile-badge{position:absolute;top:.875rem;right:.875rem;z-index:2;background:#1d4ed8;color:#fff;font-family:var(--font-mono);font-size:.6875rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;padding:.35rem .6rem;line-height:1;white-space:nowrap}.work-tile-body{padding:1.5rem 1.75rem 1.75rem}.work-tile-meta{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:var(--text-micro);letter-spacing:.08em;text-transform:uppercase;color:var(--color-ink-muted);margin-bottom:.75rem}.work-tile-title{font-family:var(--font-display);font-weight:600;font-size:clamp(1.25rem,1.8vw,1.625rem);line-height:1.15;letter-spacing:-.015em;margin:0 0 .6rem}.work-tile:hover .work-tile-title{color:var(--color-ember)}.work-tile-summary{color:var(--color-ink-muted);font-size:var(--text-small);line-height:1.5;margin:0}.work-grid .work-tile.is-feature{grid-column:1 / -1}.work-grid .work-tile.is-feature .work-tile-image{aspect-ratio:21 / 9}@media(max-width:720px){.work-grid .work-tile.is-feature .work-tile-image{aspect-ratio:16 / 10}}.case-hero{padding:clamp(3rem,8vw,7rem) 0 clamp(2rem,5vw,4rem);border-bottom:1px solid var(--color-rule)}.case-hero .eyebrow{color:var(--color-ember)}.case-hero h1{font-size:var(--text-mega);font-weight:500;line-height:1.12;letter-spacing:-.022em;max-width:22ch;margin-bottom:1.5rem}.case-hero .lead{font-size:var(--text-lead);max-width:55ch}.case-section .case-study-title,.case-hero .case-study-title{font-family:var(--font-display);font-size:var(--text-display);font-weight:500;letter-spacing:-.02em;line-height:1.12;margin:0 0 2.5rem;scroll-margin-top:90px;color:var(--color-ember);max-width:30ch}.case-children-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-top:1rem}.case-children-tile{display:flex;flex-direction:column;background:#fff;border:1px solid var(--color-rule);padding:2rem 2rem 1.75rem;text-decoration:none;color:var(--color-ink);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.case-children-tile:hover{transform:translateY(-3px);box-shadow:0 24px 48px -24px #15110d2e;border-color:var(--color-ink)}.case-children-meta{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:var(--text-micro);letter-spacing:.08em;text-transform:uppercase;color:var(--color-ink-muted);margin-bottom:.85rem}.case-children-title{font-family:var(--font-display);font-weight:500;font-size:clamp(1.25rem,1.8vw,1.5rem);letter-spacing:-.015em;line-height:1.2;color:var(--color-ember);margin:0 0 .85rem}.case-children-summary{color:var(--color-ink-soft);font-size:var(--text-small);line-height:1.55;margin:0 0 1.25rem;flex-grow:1}.case-children-cta{font-family:var(--font-mono);font-size:var(--text-micro);letter-spacing:.1em;text-transform:uppercase;color:var(--color-ink);border-bottom:2px solid var(--color-ember);align-self:flex-start;padding-bottom:2px;transition:color .15s ease}.case-children-tile:hover .case-children-cta{color:var(--color-ember)}.case-meta{margin-top:3rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1.5rem 2rem;font-family:var(--font-mono);font-size:var(--text-small)}.case-meta dt{font-size:var(--text-micro);letter-spacing:.1em;text-transform:uppercase;color:var(--color-ink-muted);margin-bottom:.35rem}.case-meta dd{margin:0;color:var(--color-ink);font-weight:500}.case-meta-practice{grid-column:1 / -1}.case-meta-practice dd{white-space:normal;line-height:1.5}.case-body{padding:clamp(3rem,6vw,5rem) 0}.case-section{max-width:940px;margin:0 auto clamp(3rem,6vw,5rem);padding:0 var(--gutter)}.case-section-marker{font-family:var(--font-mono);font-size:var(--text-micro);letter-spacing:.12em;text-transform:uppercase;color:var(--color-ember);margin-bottom:.75rem}.case-section h2{font-size:clamp(1.375rem,2.2vw,1.875rem);font-weight:600;letter-spacing:-.015em;line-height:1.15;margin-bottom:1.5rem}.case-section p{font-size:var(--text-lead);line-height:1.55;color:var(--color-ink-soft);margin-bottom:1.25rem}.endmark{display:inline-block;margin-left:.45em;color:var(--color-ember);line-height:1;vertical-align:-.12em}.endmark svg{width:1.05em;height:1.05em;transform:scaleX(-1)}.case-endmark-fin{text-align:center;margin:2.75rem 0 0;line-height:1}.case-endmark-fin .endmark{margin-left:0;vertical-align:baseline}.case-endmark-fin .endmark svg{width:1.5em;height:1.5em}.case-section ul,.case-section ol{font-size:var(--text-lead);line-height:1.55;color:var(--color-ink-soft);margin:1.25rem 0;padding-left:1.5rem}.case-section li{margin-bottom:.5rem}.case-section blockquote{border-left:3px solid var(--color-ember);padding:.5rem 0 .5rem 1.5rem;margin:2rem 0;font-family:var(--font-display);font-weight:400;font-size:clamp(1.125rem,1.5vw,1.375rem);line-height:1.45;color:var(--color-ink);letter-spacing:-.008em;font-style:normal}.case-sidebox{float:right;width:300px;max-width:42%;margin:.25rem 0 1.25rem 2rem;padding:1.4rem 1.5rem 1.5rem;background:var(--color-ember-tint);border:1px solid var(--color-rule);border-radius:12px}.case-sidebox-title{font-family:var(--font-display);font-size:1.05rem;font-weight:600;letter-spacing:-.01em;color:var(--color-ink);margin:0 0 1rem;padding-bottom:.75rem;border-bottom:1px solid var(--color-rule)}.case-sidebox h4{font-family:var(--font-mono);font-size:var(--text-micro);letter-spacing:.1em;text-transform:uppercase;color:var(--color-ink-muted);margin:0 0 .5rem}.case-sidebox h4:not(:first-child){margin-top:1.25rem}.case-sidebox ul{list-style:none;margin:0;padding:0;font-size:.95rem;line-height:1.45}.case-sidebox li{margin-bottom:.7rem;color:var(--color-ink-soft)}@media(max-width:640px){.case-sidebox{float:none;width:100%;max-width:100%;margin:1.5rem 0}}.case-sidebox-media{display:block;margin-bottom:.85rem;border-bottom:0;text-decoration:none;line-height:0}.case-section .case-sidebox-media img{display:block;width:100%;max-width:none;margin:0;border:1px solid var(--color-rule);border-radius:6px}.case-callout{clear:both;margin:2.5rem 0}.case-callout-link{display:block;padding:1.4rem 1.6rem 1.5rem;background:var(--color-ember-tint);border:1px solid var(--color-rule);border-radius:12px;text-decoration:none;transition:border-color .15s ease,box-shadow .15s ease}.case-callout-link:hover{border-color:var(--color-link);box-shadow:0 2px 16px #0000000f}.case-callout-title{font-family:var(--font-mono);font-size:var(--text-micro);letter-spacing:.1em;text-transform:uppercase;color:var(--color-ink-muted);margin:0 0 .5rem}.case-callout-q{font-family:var(--font-display);font-size:1.15rem;font-weight:600;line-height:1.35;color:var(--color-ink);margin:0 0 1.1rem}.case-callout-preview{position:relative;max-height:300px;overflow:hidden;border:1px solid var(--color-rule);border-radius:8px;background:#fff;-webkit-mask-image:linear-gradient(to bottom,#000 50%,transparent 100%);mask-image:linear-gradient(to bottom,#000 50%,transparent 100%)}.case-callout-preview img{display:block;width:100%;max-width:none;margin:0;border:0}.case-callout-cta{display:inline-block;margin-top:1rem;font-family:var(--font-mono);font-size:var(--text-micro);letter-spacing:.05em;color:var(--color-link)}.case-callout-link:hover .case-callout-cta{color:var(--color-link-deep)}.case-figure{max-width:940px;margin:clamp(2rem,4vw,4rem) auto;padding:0 var(--gutter)}.case-figure img{width:100%;max-height:60vh;object-fit:contain;object-position:center;border:1px solid var(--color-rule)}.case-figure figcaption{margin-top:.75rem;font-family:var(--font-mono);font-size:var(--text-micro);letter-spacing:.05em;color:var(--color-ink-muted);text-transform:uppercase}.case-section img{width:100%;margin:1.5rem 0;border:1px solid var(--color-rule)}.case-nav{border-top:1px solid var(--color-rule);padding:4rem 0}.case-nav-inner{max-width:var(--container);margin:0 auto;padding:0 var(--gutter);display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap}.case-nav-link{font-family:var(--font-display);font-weight:600;font-size:var(--text-h2);letter-spacing:-.015em;text-decoration:none;color:var(--color-ink-muted);transition:color .2s ease;line-height:1.15}.case-nav-link:hover{color:var(--color-ember)}.case-nav-link .label{display:block;font-family:var(--font-mono);font-size:var(--text-micro);letter-spacing:.12em;text-transform:uppercase;color:var(--color-ink-muted);margin-bottom:.5rem;font-weight:500}.page{padding:clamp(3rem,8vw,7rem) 0 clamp(3rem,6vw,5rem)}.page .container-narrow>h1{font-size:var(--text-display);letter-spacing:-.035em;margin-bottom:1rem}.page .lead,.resume-section{margin-bottom:3rem}.resume-section h2{font-size:1rem;font-family:var(--font-mono);font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--color-ember);border-bottom:1px solid var(--color-rule);padding-bottom:.75rem;margin-bottom:1.5rem}.resume-job{margin-bottom:2rem}.resume-job-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1rem;margin-bottom:.25rem}.resume-job-title{font-family:var(--font-display);font-weight:600;font-size:1.125rem;letter-spacing:-.012em;margin:0}.resume-job-title .at{color:var(--color-ink-muted);font-weight:500}.resume-job-dates{font-family:var(--font-mono);font-size:var(--text-small);color:var(--color-ink-muted)}.resume-job-context{color:var(--color-ink-muted);font-size:var(--text-small);margin:0 0 .75rem;font-style:italic}.resume-job ul{list-style:none;padding:0;margin:0;font-size:var(--text-body);color:var(--color-ink-soft)}.resume-job li{padding-left:1.25rem;position:relative;margin-bottom:.4rem;line-height:1.5}.resume-job li:before{content:"—";position:absolute;left:0;color:var(--color-ember)}.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:2rem;margin-top:3rem}.contact-item .eyebrow{margin-bottom:.5rem}.contact-item .value{font-family:var(--font-display);font-weight:500;font-size:1.125rem;letter-spacing:-.01em;word-break:break-all}.lightbox{position:fixed;inset:0;background:#15110deb;display:none;align-items:center;justify-content:center;z-index:100;cursor:zoom-out;padding:2rem;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.lightbox.is-open{display:flex}.lightbox img{max-width:95%;max-height:95vh;object-fit:contain;cursor:zoom-out;border:1px solid rgba(255,255,255,.08);box-shadow:0 30px 80px -20px #00000080}.lightbox-close{position:absolute;top:1.25rem;right:1.5rem;background:transparent;border:1px solid rgba(255,255,255,.2);color:var(--color-paper);font-family:var(--font-mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;padding:.6rem .9rem;transition:color .15s ease,border-color .15s ease}.lightbox-close:hover{color:var(--color-ember);border-color:var(--color-ember)}.case-section img,.case-section figure img,.case-figure img{cursor:zoom-in}@media(max-width:640px){.site-nav-inner{padding:1rem var(--gutter)}.site-nav ul{gap:1.25rem;font-size:var(--text-micro)}}
