@font-face{font-family:Sohne;src:url(/fonts/sohne-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Sohne;src:url(/fonts/sohne-500.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Sohne;src:url(/fonts/sohne-600.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Sohne Mono;src:url(/fonts/sohne-mono-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Sohne Mono;src:url(/fonts/sohne-mono-500.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}:root,:root[data-mode=blue-day]{--bg: #f4f6f9;--ink: #1b5ab0;--dim: #1b5ab0;--faint: #1b5ab0;--line: #c7d9f0;--frame: #eaeef3;--accent: #1b5ab0;--dot: #1b5ab0;--link: #1b5ab0;--hover-tint: rgba(27, 90, 176, .14);--hover-ink: #f4f6f8;color-scheme:light}:root[data-mode=cool-night]{--bg: #171b24;--ink: #d3dbe8;--dim: #d3dbe8;--faint: #d3dbe8;--line: #2e3f56;--frame: #212734;--accent: #d3dbe8;--dot: #8fbeef;--link: #8fbeef;--hover-tint: rgba(143, 190, 239, .22);--hover-ink: #12151a;color-scheme:dark}:root{--font-sans: "Sohne", system-ui, sans-serif;--font-mono: "Sohne Mono", ui-monospace, monospace;--page: 760px;--measure: 578px;--mode-swap: .24s ease;--ease-out: cubic-bezier(.22, 1, .36, 1)}*,*:before,*:after{box-sizing:border-box}body,h1,h2,h3,p,ul,ol,figure{margin:0;padding:0}ul,ol{list-style:none}img{display:block;max-width:100%;height:auto}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}summary{list-style:none;cursor:pointer}summary::-webkit-details-marker{display:none}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}html{background:var(--bg)}body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-weight:400;font-size:16px;line-height:1.55;transition:background-color var(--mode-swap),color var(--mode-swap);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}a{color:var(--ink);text-decoration:none}a:hover{color:var(--link)}::selection{background:var(--link);color:var(--hover-ink)}:focus-visible{outline:2px solid var(--link);outline-offset:2px}.page{max-width:var(--page);margin:0 auto;padding:0 32px 40px;min-height:100vh;display:flex;flex-direction:column}.page>main{flex:1 0 auto;padding-top:88px;padding-bottom:96px}[data-page=home]>.page>main{padding-top:52px;padding-bottom:48px;animation:rise .4s ease both}.label{display:block;font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--faint)}.skip-link{position:absolute;left:-9999px;top:0}.skip-link:focus{left:8px;top:8px;z-index:10;padding:8px 12px;background:var(--link);color:var(--hover-ink);font-family:var(--font-mono);font-size:11.5px}.chip{color:inherit;padding:2px 4px;margin:-2px -4px;transition:background-color .12s ease,color .12s ease}.chip:hover,.chip:focus-visible{background:var(--link);color:var(--hover-ink)}.chip[aria-current=page]{color:var(--link)}.chip[aria-current=page]:hover{color:var(--hover-ink)}.link{color:var(--link);padding:1px 3px 3px;margin:-1px -3px -3px;text-decoration:underline;text-decoration-color:var(--link);text-decoration-thickness:1px;text-underline-offset:3px;transition:background-color .12s ease,color .12s ease}.link:hover,.link:focus-visible{background:var(--link);color:var(--hover-ink);text-decoration-color:var(--hover-ink)}.site-header{display:flex;justify-content:space-between;align-items:baseline;gap:24px;padding:36px 0 0;font-family:var(--font-mono);font-size:12.5px;letter-spacing:.01em}.site-name{font-weight:400;white-space:nowrap;text-transform:lowercase;color:var(--ink)}.site-nav{display:flex;align-items:center;gap:22px;margin-right:-7px;color:var(--dim)}.mode-toggle{appearance:none;padding:5px 7px;line-height:0;color:var(--ink);transition:color .12s ease}.mode-toggle:hover{color:var(--link)}.mode-toggle svg{display:block}:root[data-mode=cool-night] .mode-toggle [data-icon=moon],:root:not([data-mode=cool-night]) .mode-toggle [data-icon=sun]{display:none}.availability{display:flex;align-items:flex-start;gap:9px;margin-bottom:28px;font-family:var(--font-mono);font-size:12px;color:var(--dim)}.availability:before{content:"";width:6px;height:6px;margin-top:5px;border-radius:50%;background:var(--dot);flex-shrink:0}.hero{font-size:31px;font-weight:400;line-height:1.42;letter-spacing:-.015em;max-width:26em;text-wrap:pretty}.hero+.prose{margin-top:26px}[data-page=home] .prose p{line-height:1.65}.page-title{margin-bottom:20px;font-size:28px;font-weight:400;line-height:1.3;letter-spacing:-.015em}.prose p{color:var(--dim);font-size:17px;line-height:1.7;max-width:var(--measure);margin-bottom:18px;text-wrap:pretty}.prose p:last-child{margin-bottom:0}.section{padding-top:40px}.section>.label+*{margin-top:20px}[data-page=about] .section{padding-top:72px}.work>.label+.work-slider{margin-top:18px}.work-viewport{margin:-9px;padding:9px;overflow:hidden;touch-action:pan-y;user-select:none;-webkit-user-select:none}.work-rail{display:flex;gap:40px;will-change:transform;transition:transform .62s var(--ease-out),opacity .22s ease}.work-rail.is-still{transition:opacity .22s ease}.work-card,.work-card:hover{flex:0 0 100%;min-width:0;display:flex;flex-direction:column;gap:22px;color:var(--ink)}.work-card:focus-visible{outline:1px solid var(--link);outline-offset:8px}.work-cover{overflow:hidden;line-height:0;background:var(--frame)}.work-cover--empty{aspect-ratio:16 / 9}.work-cover img{width:100%;height:auto;transition:transform .6s var(--ease-out)}.work-card:hover .work-cover img{transform:scale(1.03)}.work-meta{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:baseline}.work-main{display:flex;flex-direction:column;gap:8px;min-width:0}.work-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px}.work-name{font-size:18px;font-weight:500;letter-spacing:-.01em;transition:color .2s ease}.work-card:hover .work-name{color:var(--link)}.work-tag{font-family:var(--font-mono);font-size:11.5px;color:var(--faint)}.work-summary{font-size:15.5px;line-height:1.6;color:var(--dim);max-width:36em;text-wrap:pretty}.work-cta{align-self:flex-start;display:inline-flex;gap:6px;margin:4px -4px 0;padding:2px 4px;font-family:var(--font-mono);font-size:12px;color:var(--link)}.work-years{font-family:var(--font-mono);font-size:12px;color:var(--faint);white-space:nowrap}.work-footer{display:flex;justify-content:flex-end;align-items:center;gap:14px;margin-top:20px;padding-top:12px;border-top:1px solid var(--line);font-family:var(--font-mono);font-size:12px;color:var(--faint)}.work-arrows{display:flex;margin:-10px -14px -10px -6px}.work-arrows button{width:40px;height:40px;display:flex;align-items:center;justify-content:center;color:var(--ink);transition:color .12s ease}.work-arrows button:hover{color:var(--link)}.rows--flat{display:flex;flex-direction:column;margin-top:36px;border-top:1px solid var(--line)}.row--flat{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:baseline;padding:16px 0;margin-top:-1px;border-top:1px solid transparent;border-bottom:1px solid var(--line);color:inherit;transition:border-color .12s ease}.row--flat:hover,.row--flat:focus-visible{position:relative;z-index:1;border-color:var(--link);color:var(--link)}.row--flat:hover *,.row--flat:focus-visible *{color:var(--link)}.row--flat .row-title{font-size:16.5px;font-weight:400;line-height:1.55;letter-spacing:0;text-wrap:pretty}.row-author{font-family:var(--font-mono);font-size:12px;color:var(--dim);text-align:right;white-space:nowrap}.subhead{font-size:16.5px;line-height:1.65;max-width:32em;color:var(--dim);text-wrap:pretty}.ledger{display:flex;flex-direction:column;border-top:1px solid var(--line);font-family:var(--font-mono);font-size:13px}.ledger-row{display:grid;grid-template-columns:100px 1fr auto;gap:20px;align-items:baseline;padding:13px 0;border-bottom:1px solid var(--line)}.ledger-years{color:var(--faint)}.ledger-role{color:var(--dim);text-align:right;white-space:nowrap}.ledger-name{font-family:var(--font-sans);font-size:17px;color:var(--ink)}.note{margin-top:14px;font-family:var(--font-mono);font-size:11.5px;color:var(--faint)}.site-footer{flex:0 0 auto;font-family:var(--font-mono);font-size:13.5px}.site-footer-copy{line-height:1.65;color:var(--dim);max-width:var(--measure);text-wrap:pretty}.site-footer-links{display:flex;flex-wrap:wrap;gap:4px 28px;margin-top:24px}.site-footer-copyright{margin-top:36px;font-size:11.5px;color:var(--faint)}.back{display:inline-block;font-family:var(--font-mono);font-size:12px;color:var(--link)}.case-title{margin-top:34px;font-size:36px;font-weight:400;line-height:1.15;letter-spacing:-.02em}.case-premise{margin-top:14px;font-size:20px;font-weight:400;line-height:1.5;max-width:26em;color:var(--ink);text-wrap:pretty}.case-meta{display:flex;flex-wrap:wrap;gap:8px 26px;margin-top:26px;font-family:var(--font-mono);font-size:12px;color:var(--faint)}.frame{position:relative;background:var(--frame);background-image:repeating-linear-gradient(45deg,transparent,transparent 9px,rgba(120,120,120,.045) 9px,rgba(120,120,120,.045) 18px);border:1px solid var(--line);overflow:hidden;transition:background-color var(--mode-swap),border-color var(--mode-swap)}.frame img{width:100%;height:100%;object-fit:cover}.frame--cover{margin-top:36px;aspect-ratio:16 / 9}.frame--screen{aspect-ratio:4 / 3}.frame-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:16px;text-align:center;font-family:var(--font-mono);font-size:11.5px;line-height:1.5;color:var(--faint)}.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1px;margin:20px 0 26px;background:var(--link);border:1px solid var(--link);transition:background-color var(--mode-swap),border-color var(--mode-swap)}.metric{background:var(--bg);padding:24px 20px;transition:background-color var(--mode-swap)}.metric-value{font-size:30px;font-weight:400;line-height:1.1;letter-spacing:-.02em;color:var(--link)}.metric-label{margin-top:6px;font-family:var(--font-mono);font-size:11.5px;line-height:1.5;color:var(--link)}.details{display:flex;flex-direction:column;border-top:1px solid var(--line)}.details details{margin-top:-1px;border-top:1px solid transparent;border-bottom:1px solid var(--line);transition:border-color .12s ease}.details details:hover{position:relative;z-index:1;border-color:var(--link)}.details details:hover>summary,.details details:hover>summary .chev{color:var(--link)}.details summary{display:flex;align-items:center;gap:12px;padding:18px 0;font-size:16.5px;font-weight:400}.chev{display:inline-block;font-family:var(--font-mono);font-size:11px;line-height:1;color:var(--faint);transition:transform .18s ease}.details details[open]>summary .chev{transform:rotate(90deg)}.detail-body{padding:0 0 26px 24px;max-width:36em;color:var(--dim);font-size:16px;line-height:1.7}.detail-body p{margin-bottom:12px}.detail-note{margin:-4px 0 16px;font-family:var(--font-mono);font-size:12px;line-height:1.5;color:var(--faint)}.detail-body li{position:relative;padding-left:16px;margin-top:9px;line-height:1.6;white-space:pre-line}.detail-body li:first-child{margin-top:0}.detail-body>:last-child{margin-bottom:0}.detail-body li:before{content:"";position:absolute;left:0;top:.62em;width:4px;height:1px;background:var(--faint)}.screens{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.screens-note{margin-bottom:20px;font-family:var(--font-mono);font-size:12px;color:var(--faint)}.frame--screen .frame-placeholder{font-size:11px}.zoom{overflow:hidden;line-height:0;cursor:zoom-in}.zoom img{display:block;width:100%;height:auto}.cover-image{margin-top:36px;aspect-ratio:var(--cover-ratio, 5 / 3)}.cover-image img{height:100%;object-fit:cover}.fig-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:32px;align-items:start;margin-bottom:56px}.fig-split-caption{position:sticky;top:32px}.fig-split-caption p{margin:0;font-size:15px;line-height:1.65;color:var(--dim);text-wrap:pretty}.fig-split figure,.figures figure{margin:0}.figures{display:flex;flex-direction:column;gap:40px}.fig-images{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.fig-images--stacked{grid-template-columns:1fr}.figures figcaption{margin-bottom:16px;display:flex;flex-direction:column;gap:6px}.fig-kicker{font-family:var(--font-mono);font-size:11.5px;color:var(--faint);letter-spacing:.04em;text-transform:uppercase}.fig-title{font-size:16.5px;color:var(--ink)}.fig-caption{font-size:15px;line-height:1.65;color:var(--dim);max-width:36em;text-wrap:pretty}.lightbox{position:fixed;inset:0;z-index:50;background:#0a0c10e0;overflow:auto;padding:40px 24px;cursor:zoom-out}.lightbox[hidden]{display:none}.lightbox-inner{max-width:1400px;margin:0 auto}.lightbox-inner img{display:block;margin:0 auto;max-width:100%;height:auto}.lightbox-nav{position:fixed;top:50%;transform:translateY(-50%);width:48px;height:48px;padding:0;border:1px solid rgba(255,255,255,.35);border-radius:0;background:#0a0c1099;color:#fff;font-family:var(--font-mono);font-size:18px;cursor:pointer}.lightbox-nav:hover{background:#ffffff26}.lightbox-prev{left:12px}.lightbox-next{right:12px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.case-footer{padding:24px 0 0;margin-top:24px}.case-footer-inner{display:flex;flex-direction:column;align-items:flex-end;padding-top:4px;font-family:var(--font-mono);font-size:13px;color:var(--link)}@media(max-width:600px){.page{padding:0 20px 32px}.site-header{flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:14px}.site-nav{gap:16px;flex-wrap:wrap}.hero{font-size:26px}.work-meta{column-gap:16px;row-gap:0}.work-main,.work-head{display:contents}.work-name{grid-column:1;grid-row:1}.work-years{grid-column:2;grid-row:1;justify-self:end}.work-tag{grid-column:1 / -1;grid-row:2;margin-top:6px}.work-summary{grid-column:1 / -1;grid-row:3;margin-top:10px;max-width:none}.work-cta{grid-column:1 / -1;grid-row:4;justify-self:start;margin-top:10px}.row--flat{grid-template-columns:1fr;gap:4px}.row-author{text-align:left;white-space:normal}.ledger-row{grid-template-columns:1fr;gap:2px;padding:16px 0}.ledger-years{font-size:11.5px;letter-spacing:.04em;text-align:right}.ledger-name{margin-top:2px}.ledger-role{font-size:12px;text-align:left;white-space:normal}.case-title{font-size:30px}.case-premise{font-size:18px}.case-meta{gap:12px 20px}.screens{grid-template-columns:1fr}.fig-split{grid-template-columns:1fr;gap:24px}.fig-split-caption{position:static}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:1ms!important;animation-duration:1ms!important}.work-card:hover .work-cover img{transform:none}}
