:root{font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--lightningcss-light: ;--lightningcss-dark:initial;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#111;--ink:#ededed;--muted:#aaa;--faint:#8a8a8a;--line:#292929;--surface:#1d1d1d;--hover:#242424;font-family:DM Sans,sans-serif;font-size:14px;font-weight:400}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fff;--ink:#202020;--muted:#646464;--faint:#727272;--line:#e8e8e8;--surface:#f5f5f5;--hover:#ebebeb}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:36px}body{background:var(--bg);color:var(--muted);margin:0;line-height:1.6}body:has(dialog[open]){overflow:hidden}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font:inherit;color:var(--ink)}a{color:var(--ink);text-decoration:none}button:not(:disabled),summary{cursor:pointer}button:disabled{opacity:.25;cursor:default}a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--ink);outline-offset:5px}::selection{background:var(--ink);color:var(--bg)}p{margin:0 0 20px}h1,h2,h3{font-size:inherit;margin:0;font-weight:400}.page{width:min(440px,100% - 48px);margin:0 auto}header{justify-content:space-between;align-items:flex-start;height:145px;padding-top:39px;display:flex}.signature{letter-spacing:-3px;font-size:31px;font-weight:500;line-height:44px}.icon{background:0 0;border:0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:20px;transition:background .18s,transform .18s;display:inline-flex}.icon:hover:not(:disabled){background:var(--hover)}.icon:active:not(:disabled){transform:scale(.92)}.theme{margin-right:-10px;position:relative}.theme svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;width:17px;height:17px;transition:opacity .2s,transform .25s;position:absolute}.theme .moon{fill:currentColor;stroke:none}.sun{opacity:0;transform:rotate(-60deg)scale(.6)}[data-theme=light] .sun{opacity:1;transform:rotate(0)scale(1)}[data-theme=light] .moon{opacity:0;transform:rotate(60deg)scale(.6)}.intro h1{color:var(--muted);margin-bottom:23px}.intro h1 a{text-underline-offset:4px;text-decoration:underline;-webkit-text-decoration-color:var(--faint);-webkit-text-decoration-color:var(--faint);text-decoration-color:var(--faint)}.intro h1 a:hover{-webkit-text-decoration-color:var(--ink);-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}.hello{border:1px solid var(--line);background:var(--surface);border-radius:24px;align-items:center;gap:17px;min-height:42px;margin-top:7px;padding:9px 16px;transition:background .18s,transform .18s;display:inline-flex;box-shadow:inset 0 1px #ffffff08}.hello:hover{background:var(--hover)}.portfolio-icon{vertical-align:-.2em;flex:none;display:inline-block}.hello .portfolio-icon{transition:transform .18s}.hello:hover .portfolio-icon{transform:translate(2px,-2px)}.hello:active{transform:scale(.97)}section+section{margin-top:58px}h2{color:var(--muted);margin-bottom:20px;font-size:13px}.section-heading{justify-content:space-between;align-items:center;margin-bottom:13px;display:flex}.section-heading h2{margin:0}.controls{margin-right:-10px;display:flex}.controls .icon{width:34px;height:34px;font-size:18px}.gallery{overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;gap:16px;width:calc(50vw + 220px);max-width:calc(100vw - 24px);margin-left:-2px;padding:2px 24px 8px 2px;display:flex;overflow-x:auto}.gallery::-webkit-scrollbar{display:none}.shot{scroll-snap-align:start;flex:0 0 530px;min-width:0;max-width:calc(100vw - 48px);margin:0}.image-stage,.process-stage{background:#222321;border:0;border-radius:3px;justify-content:center;align-items:center;width:100%;height:338px;padding:34px;display:flex;position:relative;overflow:hidden}.image-stage img{object-fit:cover;object-position:top;width:100%;height:100%;transition:transform .4s cubic-bezier(.2,.7,.2,1);display:block}.image-stage{padding:0}.model-stage img{object-position:center}.live-website{background:#fff;width:100%;min-width:0;height:100%;position:relative;overflow:hidden}.live-website iframe{transform-origin:0 0;border:0;display:block}.image-stage .live-placeholder{object-fit:cover;object-position:top;width:100%;height:100%;position:absolute;inset:0;transform:none}.live-loading{color:#646464;place-items:center;height:100%;font-size:12px;display:grid}.live-stage .expand{z-index:1;border:0;width:40px;height:40px}.live-help{color:var(--faint);font-size:11px}.image-stage:hover img{transform:scale(1.015)}.expand{color:#fff;background:#111b;border-radius:50%;place-items:center;width:30px;height:30px;font-size:17px;display:grid;position:absolute;bottom:9px;right:12px}.shot figcaption{color:var(--faint);justify-content:space-between;gap:12px;padding:12px 1px;font-size:11px;display:flex}.shot figcaption span:first-child{color:var(--muted)}.process-stage{background:var(--surface);color:var(--ink);padding:32px 42px}.workflow-note{width:100%}.workflow-top{color:var(--muted);justify-content:space-between;align-items:center;font-size:11px;display:flex}.workflow-mark{color:var(--ink);letter-spacing:-2px;font-size:31px}.workflow-note h3{letter-spacing:-.6px;margin:28px 0 12px;font-size:25px;font-weight:400;line-height:1.25}.workflow-note p{max-width:32ch;color:var(--muted);margin:0;font-size:14px;line-height:1.6}.workflow-bottom{border-top:1px solid var(--line);color:var(--faint);margin-top:24px;padding-top:18px;font-size:11px}.project-notes{margin-top:22px}.project-row,summary{color:var(--ink);justify-content:space-between;align-items:flex-start;gap:18px;padding:16px 0;font-size:13px;line-height:1.5;list-style:none;display:flex}.project-row,details{border-bottom:1px solid var(--line)}summary::-webkit-details-marker{display:none}.project-notes small{color:var(--faint);margin-top:4px;font-size:12px;display:block}.project-row>.portfolio-icon,.plus{color:var(--faint);font-size:18px;line-height:22px;transition:transform .2s,color .2s}.project-row>.portfolio-icon{margin-top:2px}.project-row:hover>.portfolio-icon{color:var(--ink);transform:translate(2px,-2px)}summary:hover .plus{color:var(--ink)}details[open] .plus{transform:rotate(45deg)}details p{margin:1px 24px 18px 0;font-size:13px}details[open] p{animation:.2s ease-out reveal}#about p:last-child{margin-bottom:0}.practice{color:var(--ink);margin:0;padding:0;line-height:2;list-style:none}#elsewhere p{font-size:13px}.contact{flex-wrap:wrap;gap:8px 22px;font-size:13px;display:flex}.contact a{align-items:center;gap:7px;min-height:32px;padding:4px 0;display:inline-flex}.contact .portfolio-icon{color:var(--faint);font-size:12px;transition:transform .18s;display:inline-block}.contact a:hover .portfolio-icon{color:var(--ink);transform:translateY(-2px)}footer{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;margin-top:64px;padding:26px 0 50px;font-size:11px;display:flex}footer .location{color:var(--faint)}footer .icon{margin-right:-10px;font-size:17px}.work-preview{border:1px solid var(--line);background:var(--bg);width:calc(100% - 48px);max-width:1100px;height:min(90dvh,1000px);max-height:90dvh;color:var(--ink);border-radius:8px;padding:0;overflow:hidden;box-shadow:0 30px 100px #0006}dialog::backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#000b}.work-preview[open]{grid-template-rows:auto minmax(0,1fr) auto;animation:.2s ease-out reveal;display:grid}.dialog-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:12px 18px;display:flex}.dialog-header h2{color:var(--ink);margin:0}.dialog-header p{color:var(--faint);margin:4px 0 0;font-size:11px}.preview-scroll{overscroll-behavior:contain;background:var(--surface);min-height:0;overflow:auto}.preview-scroll:focus-visible{outline-offset:-3px}.preview-scroll img{width:100%;height:auto;display:block}.preview-scroll.is-zoomed img{width:max(100%,1440px);max-width:none}.preview-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:10px 18px;display:flex}.preview-footer a,.preview-zoom{align-items:center;gap:8px;min-height:36px;font-size:13px;display:inline-flex}.preview-zoom{color:var(--muted);background:0 0;border:0;padding:0}.preview-zoom:hover{color:var(--ink)}.preview-error{padding:24px}.skip:not(:focus){clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.note-visit{align-items:center;gap:8px;padding:8px 0 20px;font-size:13px;display:inline-flex}.model-count{color:#fff;background:#111b;border-radius:20px;padding:4px 10px;font-size:11px;position:absolute;bottom:14px;left:14px}.model-gallery[open]{animation:.3s cubic-bezier(.2,.7,.2,1) gallery-open}.model-picker{scroll-snap-type:x mandatory;overscroll-behavior-x:contain;align-items:center;gap:20px;min-height:0;padding:28px;display:flex;overflow-x:auto}.model-choice{scroll-snap-align:center;text-align:left;background:0 0;border:0;flex-direction:column;flex:0 0 78%;gap:14px;min-width:0;height:100%;max-height:620px;padding:0;display:flex}.model-choice img{object-fit:cover;border-radius:3px;width:100%;height:calc(100% - 40px);min-height:0}.model-choice>span{justify-content:space-between;align-items:center;font-size:14px;display:flex}.model-renders{overscroll-behavior:contain;min-height:0;animation:.22s ease-out reveal;overflow-y:auto}.model-renders img{width:100%;height:auto;margin-bottom:12px;display:block}.render-comparison{margin:0 0 24px}.comparison-image{background:var(--bg);cursor:pointer;border:0;width:100%;padding:0;display:block;position:relative}.model-renders .comparison-image img{margin:0}.model-renders .comparison-original{object-fit:contain;background:var(--bg);width:100%;height:100%;position:absolute;inset:0}.shot .comparison-caption{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 20px;font-size:12px;display:flex}.comparison-caption div{gap:4px;display:flex}.comparison-caption button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;min-height:44px;padding:10px 12px}.comparison-caption button[aria-pressed=true]{border-color:currentColor}.comparison-image:focus-visible{outline-offset:-4px;outline:2px solid}@keyframes gallery-open{0%{opacity:0;transform:translateY(18px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width<=600px){.model-picker{gap:14px;padding:16px}.model-choice{flex-basis:90%;height:auto}.model-choice img{object-fit:contain;aspect-ratio:4/3;height:auto}}.skip:focus{z-index:10;background:var(--ink);color:var(--bg);padding:10px;position:fixed;top:12px;left:12px}@keyframes reveal{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@media (width>=1600px){header{height:164px}.page{padding-top:12px}}@media (width<=600px){header{height:120px;padding-top:26px}.gallery{width:calc(100vw - 24px)}.shot{flex-basis:calc(100vw - 60px)}.image-stage,.process-stage{height:255px;padding:22px}.process-stage{padding:20px}.image-stage{padding:0}.work-preview{width:calc(100% - 24px);height:92dvh;max-height:92dvh}.dialog-header,.preview-footer{padding:10px 12px}.workflow-note h3{margin:16px 0 10px;font-size:20px}.workflow-bottom{margin-top:16px;padding-top:12px;font-size:10px}.shot figcaption{font-size:10px}.shot figcaption span:last-child{text-align:right}.section-heading h2{font-size:12px}section+section{margin-top:48px}.contact{gap:8px 25px}footer{margin-top:50px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}.privacy-controls{max-width:480px;color:var(--muted);margin:0 auto 32px;padding:0 20px;font-size:12px}.privacy-controls button{font:inherit;color:inherit;cursor:pointer;text-underline-offset:4px;min-height:44px;text-decoration:underline;-webkit-text-decoration-color:var(--faint);-webkit-text-decoration-color:var(--faint);text-decoration-color:var(--faint);background:0 0;border:0;border-radius:0;padding:12px 0}.privacy-controls .privacy-link{font-size:11px}.privacy-controls button:focus-visible{outline:2px solid var(--ink);outline-offset:4px}.privacy-controls button:active{opacity:.65}.analytics-choice{background:var(--bg);max-width:360px;max-height:calc(100dvh - 32px);color:var(--ink);border:1px solid var(--line);z-index:100;border-radius:4px;margin:auto;padding:24px;position:fixed;bottom:16px;left:16px;right:16px;overflow-y:auto}.analytics-choice p{margin:0 0 12px;line-height:1.6}.analytics-choice .analytics-details{color:var(--muted);font-size:11px}.analytics-details .portfolio-icon{width:12px;height:12px}.analytics-choice div{gap:24px;display:flex}.music-study{align-items:center;gap:24px;display:flex}.record-artwork{text-align:left;background:0 0;border:0;border-radius:3px;flex:0 0 202px;width:202px;height:160px;padding:0;position:relative}.record-sleeve{border-radius:2px;width:160px;height:160px;display:block;position:relative;box-shadow:2px 3px 12px #0003}.record-reveal{width:150px;height:150px;transition:transform .55s cubic-bezier(.2,.75,.25,1);position:absolute;top:5px;left:8px;transform:translate(20px)}.vinyl-disc{background:repeating-radial-gradient(circle,#0000 0 2px,#ffffff0b 2px 3px,#0000 3px 4px),conic-gradient(from 30deg,#171717,#393939 20%,#101010 35%,#161616 55%,#414141 70%,#111 85%,#171717);border:1px solid #393939;border-radius:50%;place-items:center;width:100%;height:100%;animation:5s linear infinite paused vinyl-turn;display:grid;box-shadow:2px 3px 7px #0003}.vinyl-label{color:#294c50;background:#c9d0bc;border-radius:50%;place-items:center;width:47px;height:47px;padding-bottom:10px;font-size:19px;display:grid;position:relative}.vinyl-label i{background:#171717;border-radius:50%;width:4px;height:4px;position:absolute;top:22px;left:22px}.record-artwork:is(:hover,:focus-visible,[aria-pressed=true]) .record-reveal{transform:translate(43px)}.record-artwork:is(:hover,:focus-visible,[aria-pressed=true]) .vinyl-disc{animation-play-state:running}.music-caption{min-width:0;font-size:12px}.music-caption h3{color:var(--ink);margin-bottom:4px;font-size:14px}.music-caption p{color:var(--faint);margin:0 0 12px;font-size:11px}.music-caption>span{max-width:22ch;display:block}@keyframes vinyl-turn{to{transform:rotate(360deg)}}@media (width<=420px){.music-study{gap:16px}.record-artwork{flex-basis:168px;width:168px;height:132px}.record-sleeve{width:132px;height:132px}.record-reveal{width:122px;height:122px}.record-artwork:is(:hover,:focus-visible,[aria-pressed=true]) .record-reveal{transform:translate(36px)}}.music-play{text-align:left;background:0 0;border:0;align-items:center;gap:7px;min-height:44px;padding:8px 0;font-size:12px;display:flex}.music-play:hover{text-underline-offset:4px;text-decoration:underline}.music-caption small{color:var(--faint);font-size:10px;display:block}.music-caption abbr{border:1px solid var(--faint);margin-left:3px;padding:0 2px;font-size:9px;text-decoration:none}.music-error{margin:12px 0 0;font-size:12px}.music-error:empty{display:none}.music-heading{margin-bottom:20px}.music-navigation{align-items:center;gap:2px}.music-navigation>span{font-variant-numeric:tabular-nums;color:var(--faint);margin-right:8px;font-size:10px}.music-announcement{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.music-selection{--record-entry:18px;animation:.42s cubic-bezier(.2,.75,.25,1) both record-change}.music-selection[data-direction=previous]{--record-entry:-18px}.music-selection .record-reveal{animation:.55s cubic-bezier(.2,.75,.25,1) record-unsleeve}.music-study{touch-action:pan-y}@keyframes record-change{0%{opacity:0;transform:translateX(var(--record-entry))}to{opacity:1;transform:translate(0)}}@keyframes record-unsleeve{0%{transform:translate(0)}}.music-study{min-height:190px;padding-top:16px}.record-stack{pointer-events:none;position:absolute;inset:0}.record-back{object-fit:contain;border-radius:2px;width:160px;height:160px;position:absolute;top:0;left:0;box-shadow:0 1px 5px #0004}.record-back-1{z-index:1;transform:translate(8px,-8px)}.record-back-2{transform:translate(16px,-16px)}.record-reveal{z-index:2}.record-sleeve{z-index:3}.record-outgoing{z-index:4;pointer-events:none;width:160px;height:160px;animation:.44s cubic-bezier(.2,.75,.25,1) both sleeve-away;position:absolute;top:0;left:0}.music-selection{animation:none}.music-selection .record-sleeve{animation:.5s cubic-bezier(.2,.75,.25,1) both sleeve-forward}.music-selection .music-caption{animation:.38s ease-out both record-change}@keyframes sleeve-away{to{opacity:0;transform:translate(-32px)translateY(8px)}}[data-direction=previous] .record-outgoing{animation-name:sleeve-away-back}@keyframes sleeve-away-back{to{opacity:0;transform:translate(32px)translateY(8px)}}@keyframes sleeve-forward{0%{opacity:.5;transform:translate(8px,-8px)}to{opacity:1;transform:translate(0)}}@media (width<=420px){.record-back,.record-outgoing{width:132px;height:132px}.music-caption h3{font-size:13px}}@media (prefers-reduced-motion:reduce){.record-outgoing{display:none}}.music-selection .record-outgoing{animation-duration:.85s}.music-selection .record-sleeve{animation-duration:.9s}.music-selection .music-caption{animation-duration:.65s}.music-selection .record-reveal{animation-duration:.95s}.rotation-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px;display:flex}.rotation-heading h2{margin:0}.rotation-tabs{gap:18px;display:flex}.rotation-tabs button{color:var(--faint);background:0 0;border:0;padding:10px 0;font-size:12px}.rotation-tabs button[aria-selected=true]{color:var(--ink);text-underline-offset:7px;text-decoration:underline;text-decoration-thickness:1px}.rotation-tabs button:hover{color:var(--ink)}#rotation .music-heading{justify-content:flex-end;margin-bottom:8px}.film-card{margin:0}.film-screen{aspect-ratio:16/9;background:var(--surface);border-radius:3px;width:100%;position:relative;overflow:hidden}.film-screen img{object-fit:contain;width:100%;height:100%;display:block}.film-card figcaption{padding-top:18px}.film-title{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.film-title h3{color:var(--ink);font-size:14px}.film-title>span{color:var(--faint);white-space:nowrap;font-size:11px}.film-director{color:var(--faint);margin:4px 0 16px;font-size:11px}.film-note{max-width:46ch;margin:0;font-size:13px}.film-card figcaption{min-height:112px}.film-controls{justify-content:flex-end;align-items:center;gap:8px;margin-top:10px;display:flex}.film-controls>span{color:var(--faint);font-variant-numeric:tabular-nums;margin-right:8px;font-size:11px}.film-controls button{width:36px;height:36px;color:var(--muted);background:0 0;border:0;place-items:center;padding:0;display:grid}.film-controls button:hover{color:var(--ink)}.film-controls .rotation-autoplay{color:var(--faint);font-size:15px}.film-controls .rotation-autoplay:hover{color:var(--ink)}.media-thumbnails{border-top:1px solid var(--line);gap:8px;margin-top:18px;padding-top:14px;display:flex}.media-thumbnails button{opacity:.52;background:0 0;border:1px solid #0000;border-radius:2px;flex:none;padding:2px;transition:opacity .18s,border-color .18s;display:block}.media-thumbnails button:hover,.media-thumbnails button:focus-visible{opacity:1}.media-thumbnails button[aria-pressed=true]{border-color:var(--ink);opacity:1}.media-thumbnails img{object-fit:cover;background:var(--surface);width:100%;height:100%;display:block}.media-thumbnails-film button{aspect-ratio:16/9;width:min(72px,20% - 6.4px)}.media-thumbnails-book button{width:42px;height:60px}.media-thumbnails-music button{width:50px;height:50px}@media (prefers-reduced-motion:reduce){.media-thumbnails button{transition:none}}@media (width<=480px){.film-title{flex-wrap:wrap;gap:4px 12px}.film-card figcaption{min-height:128px}}.live-website.is-loading .live-placeholder{filter:blur(10px);transform:scale(1.08)}.live-website.is-loading iframe{pointer-events:none}.live-status{color:#fff;letter-spacing:.02em;pointer-events:none;background:#1118;flex-direction:column;justify-content:center;align-items:center;gap:14px;font-size:11px;display:flex;position:absolute;inset:0}.live-spinner{border:1.5px solid #ffffff40;border-top-color:#fff;border-radius:50%;width:30px;height:30px;animation:1s linear infinite preview-spin}@keyframes preview-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.live-spinner{animation:none}}.model-choice img{aspect-ratio:4/3;background:var(--surface);flex:none;height:auto}#rotation .spotify-music .music-heading{justify-content:space-between;margin-bottom:18px}.spotify-state{color:var(--faint);font-size:11px}.spotify-link{color:var(--ink);align-items:center;gap:5px;margin-top:14px;font-size:11px;display:inline-flex}.spotify-link .portfolio-icon{width:14px;height:14px}.spotify-empty{color:var(--muted);padding:16px 0;font-size:13px}.spotify-music .record-sleeve{border-radius:4px;animation:none;transform:none}.spotify-music .record-artwork[data-playing=true] .vinyl-disc{animation-play-state:running}.spotify-link{gap:12px;padding:6px 0}.spotify-logo{width:78px;height:auto}.spotify-logo-light,[data-theme=light] .spotify-logo-dark{display:none}[data-theme=light] .spotify-logo-light{display:block}.film-screen img{animation:.22s ease-out film-appear}@keyframes film-appear{0%{opacity:.6}to{opacity:1}}.film-loading{background:#1115;border:2px solid #ffffff60;border-top-color:#fff;border-radius:50%;width:20px;height:20px;animation:1s linear infinite preview-spin;position:absolute;bottom:12px;right:12px}.film-error{color:var(--muted);margin:8px 0;font-size:12px}@media (prefers-reduced-motion:reduce){.film-screen img,.film-loading{animation:none}}.book-card{margin:0}.book-stage{background:var(--surface);border-radius:3px;place-items:center;height:320px;display:grid;overflow:hidden}.book-stage img{object-fit:contain;width:auto;max-width:calc(100% - 48px);height:270px;animation:.24s ease-out book-appear;display:block;box-shadow:5px 12px 25px #0005}.book-card figcaption{min-height:112px;padding-top:18px}.book-card figcaption>div{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.book-card h3{color:var(--ink);font-size:14px}.book-card figcaption span,.book-card figcaption p{color:var(--faint);font-size:11px}.book-card figcaption p{margin:4px 0 14px}.book-card figcaption a{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--faint);-webkit-text-decoration-color:var(--faint);text-decoration-color:var(--faint);text-underline-offset:3px;align-items:center;gap:5px;font-size:11px;display:inline-flex}.book-card figcaption a:hover{-webkit-text-decoration-color:var(--ink);-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}.book-card figcaption a .portfolio-icon{width:13px;height:13px}@keyframes book-appear{0%{opacity:.55;transform:translate(8px)}to{opacity:1;transform:translate(0)}}@media (width<=420px){.rotation-heading{gap:8px}.rotation-tabs{gap:12px}.rotation-tabs button{font-size:11px}.book-stage{height:290px}.book-stage img{height:245px}}@media (prefers-reduced-motion:reduce){.book-stage img{animation:none}}.photo-placeholder{text-align:center;background:var(--surface);border-radius:3px;flex-direction:column;justify-content:center;align-items:center;min-height:320px;display:flex}.photo-placeholder span{color:var(--ink);font-size:14px}.photo-placeholder p{max-width:26ch;color:var(--faint);margin:8px 20px 0;font-size:12px;line-height:1.5}@media (width<=420px){.rotation-heading{flex-wrap:wrap}.rotation-tabs{justify-content:space-between;width:100%}.photo-placeholder{min-height:290px}}.annotated-homepage{width:min(1160px,100% - 72px)}.annotated-homepage header{align-items:flex-start;height:94px;padding-top:25px}.main-nav{align-items:center;gap:30px;margin:13px 0 0 auto;padding-right:42px;display:flex}.main-nav a{color:var(--muted);font-size:12px;transition:color .18s}.main-nav a:hover{color:var(--ink)}.annotated-homepage .intro{border-bottom:1px solid var(--line);padding:32px 0 64px}.annotated-homepage .intro h1{max-width:1030px;color:var(--ink);margin:0}.hero-hello{color:var(--muted);letter-spacing:0;margin-bottom:18px;font-size:15px;font-weight:400;display:block}.hero-thesis{letter-spacing:-.065em;text-wrap:balance;max-width:21ch;font-size:clamp(44px,5.4vw,68px);font-weight:400;line-height:1.075;display:block}.intro-bottom{justify-content:space-between;align-items:flex-end;gap:60px;margin-top:34px;display:flex}.intro-bottom p{max-width:57ch;color:var(--muted);margin:0;font-size:15px;line-height:1.65}.intro-links{flex:none;gap:26px;padding-bottom:3px;display:flex}.intro-links a,.project-annotation>a{border-bottom:1px solid var(--faint);white-space:nowrap;align-items:center;gap:8px;min-height:34px;font-size:12px;display:inline-flex}.intro-links a:hover,.project-annotation>a:hover{border-color:var(--ink)}.annotated-homepage #work{border-bottom:1px solid var(--line);margin-top:0;padding:58px 0 78px}.section-kicker{color:var(--faint);letter-spacing:.085em;text-transform:uppercase;margin:0 0 13px;font-size:11px}.annotated-homepage .section-heading{align-items:flex-end;margin-bottom:28px}.annotated-homepage .section-heading h2{color:var(--ink);letter-spacing:-.055em;margin:0;font-size:clamp(32px,3.8vw,48px);line-height:1.15}.section-deck{margin:10px 0 0;font-size:13px}.gallery-navigation{align-items:center;gap:21px;display:flex}#gallery-status{color:var(--faint);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:11px}.annotated-homepage .controls{gap:3px;margin-right:0}.annotated-homepage .controls .icon{width:44px;height:44px}.annotated-homepage .gallery{gap:24px;width:100%;max-width:none;margin:0;padding:0 0 12px;scroll-padding-inline:0}.work-index{border-top:1px solid var(--line);margin:0 0 36px}.work-index-row{border:0;border-bottom:1px solid var(--line);width:100%;min-height:62px;color:var(--ink);text-align:left;cursor:pointer;background:0 0;grid-template-columns:48px minmax(0,1fr) 200px 22px;align-items:center;gap:18px;padding:0 8px 0 0;display:grid;position:relative}.work-index-number,.work-index-type{color:var(--faint);font-size:11px}.work-index-name{font-size:15px}.work-index-row>.portfolio-icon{width:17px;color:var(--faint);transition:transform .2s,color .2s}.work-index-row:hover>.portfolio-icon,.work-index-row:focus-visible>.portfolio-icon{color:var(--ink);transform:translate(4px)}.work-index-row[aria-current=true] .work-index-number{color:var(--ink)}.work-index-preview{z-index:2;background:var(--bg);opacity:0;visibility:hidden;pointer-events:none;width:260px;height:160px;padding:6px;transition:opacity .18s,transform .18s,visibility .18s;position:absolute;top:50%;right:62px;transform:translateY(-45%);box-shadow:0 12px 36px #0003}.work-index-preview img{object-fit:cover;object-position:top;width:100%;height:100%;display:block}.work-index-row:hover .work-index-preview,.work-index-row:focus-visible .work-index-preview{opacity:1;visibility:visible;transform:translateY(-50%)}.work-index-row[aria-current=true] .work-index-preview{visibility:hidden}.work-index-process{background:var(--surface);height:100%;color:var(--ink);flex-direction:column;justify-content:space-between;padding:15px;font-size:26px;display:flex}.work-index-process small{font-size:15px;line-height:1.2}@media (prefers-reduced-motion:reduce){.work-index-preview,.work-index-row>.portfolio-icon{transition:none}}.project-slide{scroll-snap-align:start;flex:0 0 100%;grid-template-columns:minmax(0,1.65fr) minmax(280px,.9fr);align-items:stretch;gap:clamp(28px,4vw,58px);min-width:0;display:grid}.project-slide>.shot{width:100%;min-width:0;max-width:none}.project-slide .image-stage,.project-slide .process-stage{aspect-ratio:1.62;height:auto}.project-slide .shot figcaption{display:none}.website-still{text-align:left;background:#191919;border:0;width:100%;height:100%;padding:0;display:block;position:relative;overflow:hidden}.website-still img{object-fit:cover;object-position:top left;width:100%;height:100%}.still-action{color:#fff;background:#111e;align-items:center;gap:9px;padding:9px 11px;font-size:11px;line-height:1.2;display:inline-flex;position:absolute;bottom:12px;right:12px}.still-action .portfolio-icon{width:14px;height:14px}.project-slide .model-count{top:14px;bottom:auto;left:14px}.project-annotation{flex-direction:column;align-items:flex-start;min-width:0;padding:7px 0 3px;display:flex}.project-number{color:var(--faint);letter-spacing:.04em;margin:0 0 auto;font-size:11px}.project-annotation h3{color:var(--ink);letter-spacing:-.05em;margin:22px 0 14px;font-size:clamp(30px,3.3vw,42px);line-height:1.1}.project-summary{max-width:32ch;color:var(--muted);margin:0 0 22px;font-size:14px;line-height:1.5}.project-annotation dl{border-top:1px solid var(--line);width:100%;margin:0 0 16px}.project-annotation dl>div{border-bottom:1px solid var(--line);grid-template-columns:80px 1fr;gap:12px;padding:11px 0;font-size:12px;line-height:1.48;display:grid}.project-annotation dt{color:var(--faint)}.project-annotation dd{color:var(--ink);margin:0}.project-annotation>a,.project-footnote{margin-top:auto}.project-footnote{color:var(--faint);font-size:11px}.project-slide .process-stage{padding:clamp(30px,5vw,62px)}.project-slide .workflow-note h3{letter-spacing:-.055em;font-size:clamp(34px,4.1vw,52px);line-height:1.08}.project-slide .workflow-note p{max-width:28ch}.annotated-homepage #about,.annotated-homepage .personal-rotation,.annotated-homepage #elsewhere{max-width:650px;margin-left:auto;margin-right:auto}.annotated-homepage #about{margin-top:0;padding-top:80px}.annotated-homepage #about h2,.annotated-homepage #elsewhere h2{color:var(--ink);letter-spacing:-.04em;margin-bottom:22px;font-size:26px}.annotated-homepage #about p:not(.section-kicker){font-size:15px;line-height:1.7}.annotated-homepage .personal-rotation{border-top:1px solid var(--line);margin-top:70px;padding-top:30px}.annotated-homepage .personal-rotation #rotation{margin-top:0}.annotated-homepage #elsewhere{border-top:1px solid var(--line);margin-top:80px;padding-top:35px}.annotated-homepage footer{max-width:650px;margin-left:auto;margin-right:auto}@media (width<=900px){.project-slide{grid-template-columns:minmax(0,1.15fr) minmax(245px,.9fr);gap:28px}.project-annotation h3{font-size:32px}.project-summary{margin-bottom:14px}.project-annotation dl>div{grid-template-columns:66px 1fr;gap:8px}}@media (width<=700px){.annotated-homepage{width:calc(100% - 40px)}.annotated-homepage header{height:78px;padding-top:16px}.main-nav{gap:15px;margin-top:12px;padding-right:12px}.main-nav a{font-size:11px}.annotated-homepage .intro{padding:28px 0 46px}.hero-thesis{font-size:clamp(39px,9vw,60px)}.intro-bottom{margin-top:30px;display:block}.intro-bottom p{font-size:14px}.intro-links{gap:24px;margin-top:23px}.annotated-homepage #work{padding:48px 0 55px}.work-index{margin-bottom:26px}.work-index-row{grid-template-columns:28px minmax(0,1fr) 17px;gap:10px;min-height:56px}.work-index-name{font-size:13px}.work-index-type,.work-index-preview{display:none}.annotated-homepage .section-heading{align-items:flex-end;gap:10px}.annotated-homepage .section-heading h2{font-size:34px}.section-deck{max-width:25ch}.gallery-navigation{gap:6px}.project-slide{display:block}.project-slide .image-stage,.project-slide .process-stage{aspect-ratio:1.58}.project-annotation{padding:22px 1px 2px}.project-number{margin-bottom:0}.project-annotation h3{margin-top:16px;font-size:34px}.project-summary{margin-bottom:20px}.project-annotation dl{margin-bottom:16px}.annotated-homepage #about{padding-top:62px}.annotated-homepage .personal-rotation{margin-top:56px}.annotated-homepage #elsewhere{margin-top:60px}}@media (width<=420px){.main-nav{gap:10px}.main-nav a{font-size:10px}.annotated-homepage .section-heading{display:block}.gallery-navigation{justify-content:space-between;margin-top:13px}.annotated-homepage .section-heading{margin-bottom:17px}.project-slide .workflow-note h3{margin:6px 0 4px}.project-slide .workflow-bottom{margin-top:8px;padding-top:6px}}.quiet-homepage{width:min(608px,100% - 48px)}.quiet-homepage header{align-items:flex-start;height:auto;padding-top:98px}.quiet-identity h1{color:var(--ink);font-size:14px;font-weight:500;line-height:24px}.quiet-identity p{color:var(--faint);margin:0;font-size:14px;line-height:24px}.quiet-homepage .theme{width:28px;height:28px;margin:0 -5px 0 0}.quiet-homepage main{margin-top:35px}.quiet-intro p{color:var(--ink);margin:0 0 14px;font-size:14px;line-height:24px}.quiet-intro a{text-decoration:underline;-webkit-text-decoration-color:var(--faint);-webkit-text-decoration-color:var(--faint);text-decoration-color:var(--faint);text-underline-offset:3px}.quiet-intro a:hover{-webkit-text-decoration-color:var(--ink);-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}.quiet-label{color:var(--faint);letter-spacing:.02em;margin:0 0 14px;font-size:11px}.quiet-index{margin-top:69px}.quiet-index h2{color:var(--muted);margin:0 0 12px;font-size:14px;line-height:24px}.quiet-index a{border-top:1px solid var(--line);justify-content:space-between;align-items:center;min-height:46px;font-size:14px;transition:padding .2s;display:flex}.quiet-index a:last-child{border-bottom:1px solid var(--line)}.quiet-index a:hover{padding-left:8px}.quiet-index .portfolio-icon{width:14px;height:14px;color:var(--faint)}.quiet-detail{width:min(440px,100% - 48px)}.quiet-detail header{height:135px}.quiet-detail .main-nav{gap:16px;padding-right:14px}.quiet-detail .main-nav a[aria-current=page],.annotated-homepage .main-nav a[aria-current=page]{color:var(--ink)}.quiet-detail main>.quiet-label{margin-bottom:22px}.quiet-detail #rotation{margin-top:0}@media (width<=700px){.quiet-homepage header{padding-top:46px}.quiet-index{margin-top:64px}.quiet-detail header{height:108px}.quiet-detail .main-nav{gap:10px;padding-right:10px}.quiet-detail .main-nav a{font-size:10px}}
