@font-face{font-family:Inter;src:url(/fonts/inter-latin-wght-normal.woff2) format("woff2");font-weight:100 900;font-display:block}@font-face{font-family:Newsreader;src:url(/fonts/newsreader-latin-400-italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:block}:root{--bg: #ffffff;--ink: #3a3a3a;--ink-2: color-mix(in oklch, var(--ink) 70%, var(--bg));--tile: color-mix(in oklch, var(--ink) 7%, var(--bg));--fill: color-mix(in oklch, var(--ink) 8%, var(--bg));--fill-hover: color-mix(in oklch, var(--ink) 13%, var(--bg));--page-top: 128px;--col: 640px;--main: 1072px;--gap: 8px;--r: 8px;--intro-ease: cubic-bezier(.25, .46, .45, .94);--ease-out-expo: cubic-bezier(.19, 1, .22, 1);--ease-out-quint: cubic-bezier(.23, 1, .32, 1);--ease-drawer: cubic-bezier(.32, .72, 0, 1);color-scheme:light}*{box-sizing:border-box}html{background:var(--bg);-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font:400 16px/28px Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-synthesis:none;font-feature-settings:"cv11","ss01";-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}button,a{touch-action:manipulation}::selection{background:color-mix(in oklch,var(--ink) 16%,var(--bg))}a{color:inherit;text-decoration-line:underline;text-decoration-thickness:1px;text-underline-offset:2.5px;text-decoration-color:color-mix(in oklch,var(--ink) 40%,transparent);transition:text-decoration-color .15s ease}@media(hover:hover)and (pointer:fine){a:hover{text-decoration-color:var(--ink)}}:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:4px}.page{padding:var(--page-top) 24px 96px}.site-header,.hero{max-width:var(--col);margin-inline:auto}.site-header{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:28px;margin-bottom:28px;position:relative;z-index:5}.name{font-weight:500;text-decoration:none}.headline{margin:0 0 28px;font-weight:400;font-size:24px;line-height:36px;letter-spacing:-.012em;text-wrap:pretty}.headline em{font-family:Newsreader,Georgia,serif;font-style:italic;font-size:1.0625em;letter-spacing:0}.inline-photo{display:inline-block;width:52px;height:32px;vertical-align:-6px;border-radius:8px;overflow:hidden;background:var(--tile);margin-inline:2px}.inline-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 30%;display:block}.sub{margin:0;color:var(--ink-2);text-wrap:pretty}.links{margin:0;display:flex;gap:20px;color:var(--ink-2)}.links a{color:var(--ink)}.where{margin-left:auto}.grid{--u: calc((min(100vw - 48px, var(--main)) - 11 * var(--gap)) / 12);max-width:var(--main);margin:84px auto 0;display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:var(--u);gap:var(--gap);transform-origin:0 0}.tile{position:relative;display:block;padding:0;border:0;margin:0;cursor:zoom-in;border-radius:var(--r);overflow:hidden;background:var(--tile);color:inherit;transition:scale .15s ease-out,opacity .3s var(--ease-out-quint)}.tile:active{scale:.985}.tile img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;display:block}.tile .lq{filter:blur(14px);scale:1.12}.tile .hq{opacity:0;transition:opacity .4s var(--ease-out-quint),scale .5s var(--ease-out-quint)}.tile .hq.is-loaded{opacity:1}@media(hover:hover)and (pointer:fine){.tile:hover .hq{scale:1.02}}.tile.is-hidden .hq,.tile.is-hidden .lq{visibility:hidden}.site-footer{max-width:var(--main);margin:56px auto 0;color:var(--ink-2);font-size:14px;line-height:20px}.grid[data-focus] .tile{opacity:.25}.grid[data-focus] .tile.is-source{opacity:1}@media(prefers-reduced-motion:no-preference){html[data-intro] :is(.site-header,.hero>*,.grid,.site-footer){animation:intro-blur .8s var(--intro-ease) both;animation-delay:calc(var(--intro-i, 2) * .15s)}.site-header{--intro-i: 0}.hero>.headline{--intro-i: 1}}@keyframes intro-blur{0%{opacity:0;translate:0 4px;filter:blur(4px)}}::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}::view-transition-new(root){z-index:2}.sw-btn{position:relative;width:14px;height:14px;border-radius:50%;border:0;padding:0;background:var(--c);cursor:pointer;transition:scale .15s ease-out;box-shadow:inset 0 0 0 1px color-mix(in oklch,var(--ink) 14%,transparent)}.sw-btn:before{content:"";position:absolute;top:-15px;right:-5px;bottom:-15px;left:-5px}.sw-btn:after{content:"";position:absolute;top:4px;right:4px;bottom:4px;left:4px;border-radius:50%;background:var(--d);scale:0;transition:scale .2s var(--ease-out-quint)}.sw-btn[aria-pressed=true]:after{scale:1}.sw-btn:active{scale:.9}@media(hover:hover)and (pointer:fine){.sw-btn:hover{scale:1.15}}.sw-row{display:flex;gap:10px;align-items:center}.fan{position:relative}.fan-trigger{display:flex;align-items:center;gap:8px;height:28px;padding:0 12px 0 6px;border:0;border-radius:14px;background:var(--fill);color:var(--ink);font:inherit;font-size:14px;cursor:pointer;transition:background-color .15s ease,scale .15s ease-out}.fan-trigger:active{scale:.96}@media(hover:hover)and (pointer:fine){.fan-trigger:hover{background:var(--fill-hover)}}.fan-trigger i{width:16px;height:16px;border-radius:50%;background:var(--c);box-shadow:inset 0 0 0 1px color-mix(in oklch,var(--ink) 14%,transparent)}.fan-deck{position:absolute;right:26px;top:14px;width:0;height:0;pointer-events:none}.fan-deck[data-open]{pointer-events:auto}.fan-card{position:absolute;left:-12px;top:0;width:24px;height:128px;border:0;padding:0;border-radius:5px;background:var(--c);cursor:pointer;transform-origin:12px 8px;z-index:var(--z);box-shadow:0 0 0 1px #00000014,0 6px 16px #0000001f;opacity:0;transform:rotate(0) scale(.96);transition:transform .3s var(--ease-out-quint),opacity .16s ease-out;transition-delay:calc(var(--k) * 16ms)}.fan-card span{position:absolute;left:0;right:0;bottom:8px;display:grid;place-items:center}.fan-card span:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--d)}.fan-deck[data-open] .fan-card{opacity:1;transform:rotate(var(--rot)) scale(1)}.fan-deck:not([data-open]) .fan-card{transition-delay:0ms;transition-duration:.18s,.12s}@media(hover:hover)and (pointer:fine){.fan-deck[data-open] .fan-card:hover{transform:rotate(var(--rot)) translateY(8px)}}.paint-chip{position:relative;width:22px;height:22px;border:0;padding:0;border-radius:6px;background:var(--c);cursor:grab;touch-action:none;transition:scale .15s ease-out;box-shadow:inset 0 0 0 1px color-mix(in oklch,var(--ink) 14%,transparent)}.paint-chip:before{content:"";position:absolute;top:-11px;right:-3px;bottom:-11px;left:-3px}.paint-chip[aria-pressed=true]{scale:.8;border-radius:50%}.paint-chip:active{cursor:grabbing}.paint-ghost{position:fixed;left:0;top:0;width:44px;height:44px;margin:-22px 0 0 -22px;border-radius:50%;background:var(--c);pointer-events:none;z-index:60;box-shadow:0 10px 30px #0000002e,inset 0 0 0 1px #00000014;will-change:transform}.sample-btn{position:relative;width:20px;height:28px;border:0;padding:0;border-radius:5px;background:var(--c);cursor:pointer;overflow:hidden;transition:scale .15s ease-out}.sample-btn:before{content:"";position:absolute;top:-8px;right:-2px;bottom:-8px;left:-2px}.sample-btn:after{content:"";position:absolute;left:6px;right:6px;bottom:5px;height:2px;border-radius:1px;background:var(--d);scale:0 1;transition:scale .2s var(--ease-out-quint)}.sample-btn[aria-pressed=true]:after{scale:1 1}.sample-btn:active{scale:.92}.dropper{display:flex;align-items:center;gap:10px}.dropper-btn{display:flex;align-items:center;justify-content:center;gap:6px;height:28px;padding:0 12px 0 8px;border:0;border-radius:14px;background:var(--fill);color:var(--ink);font:inherit;font-size:14px;cursor:pointer;transition:background-color .15s ease,scale .15s ease-out}.dropper-btn:active{scale:.96}.dropper-btn[aria-pressed=true]{background:var(--ink);color:var(--bg)}@media(hover:hover)and (pointer:fine){.dropper-btn:not([aria-pressed=true]):hover{background:var(--fill-hover)}}html[data-dropping] .tile{cursor:none}.loupe{position:fixed;left:0;top:0;width:64px;height:64px;margin:-32px 0 0 -32px;border-radius:50%;pointer-events:none;z-index:70;background:var(--lc, #fff);box-shadow:0 0 0 3px #fff,0 0 0 4px #00000026,0 12px 28px #00000040;opacity:0;scale:.9;transition:opacity .12s ease-out,scale .15s ease-out}.loupe[data-on]{opacity:1;scale:1}.loupe:after{content:"";position:absolute;left:50%;top:50%;width:4px;height:4px;margin:-2px;border-radius:50%;background:#fff;box-shadow:0 0 0 1px #0006}.scrub{position:relative;width:168px;height:28px;display:flex;align-items:center;touch-action:none;cursor:ew-resize}.scrub-track{position:absolute;left:0;right:0;height:12px;border-radius:6px;overflow:hidden;display:flex;box-shadow:inset 0 0 0 1px color-mix(in oklch,var(--ink) 14%,transparent)}.scrub-track i{flex:1}.scrub-thumb{position:absolute;top:2px;left:0;width:8px;height:24px;margin-left:-4px;border-radius:4px;background:var(--ink);box-shadow:0 0 0 2px var(--bg);will-change:transform}.scrub:focus-visible{outline-offset:4px}.viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;touch-action:none;user-select:none;-webkit-user-select:none}.viewer[hidden]{display:none}.v-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--bg)}.v-stage{position:absolute;top:0;right:0;bottom:0;left:0;will-change:transform;cursor:grab}.v-stage:active{cursor:grabbing}.v-slide{position:absolute;left:0;top:0;width:100vw;height:100dvh}.v-media{position:absolute;border-radius:var(--r);overflow:hidden;background:var(--tile)}.v-media img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;display:block;-webkit-user-drag:none}.v-media .hi{opacity:0;transition:opacity .3s var(--ease-out-quint)}.v-media .hi.is-loaded{opacity:1}.v-slide.is-side{opacity:.35}.viewer[data-nav=track] .v-slide{transition:opacity .3s var(--ease-out-quint)}.v-chrome{transition:opacity .2s ease-out}.viewer[data-chrome=off] .v-chrome,.viewer[data-chrome=off] .v-arrow{opacity:0}.v-top{position:absolute;left:0;right:0;top:0;height:64px;padding:0 12px 0 24px;display:flex;align-items:center;gap:16px;pointer-events:none}.v-top>*{pointer-events:auto}.v-count{font-size:14px;line-height:20px;font-variant-numeric:tabular-nums;color:var(--ink-2);min-width:52px}.v-map{position:relative;width:72px;height:0}.v-map i{position:absolute;border-radius:1.5px;background:color-mix(in oklch,var(--ink) 16%,transparent);transition:background-color .15s ease}.v-map i.on{background:var(--ink)}.v-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:0;padding:0;border-radius:22px;background:var(--fill);color:var(--ink);cursor:pointer;transition:background-color .15s ease,scale .15s ease-out,opacity .2s ease-out}.v-btn:active{scale:.94}@media(hover:hover)and (pointer:fine){.v-btn:hover{background:var(--fill-hover)}}.v-close{margin-left:auto}.v-arrow{position:absolute;z-index:3}.v-arrow[data-dir=left]{left:12px;top:50%;margin-top:-22px}.v-arrow[data-dir=right]{right:12px;top:50%;margin-top:-22px}.v-arrow[data-dir=up]{left:50%;top:64px;margin-left:-22px}.v-arrow[data-dir=down]{left:50%;bottom:76px;margin-left:-22px}.v-arrow[disabled]{opacity:0;pointer-events:none}.viewer:not([data-nav=spatial]):not([data-nav=camera]) .v-arrow[data-dir=up],.viewer:not([data-nav=spatial]):not([data-nav=camera]) .v-arrow[data-dir=down]{display:none}.viewer:not([data-nav=spatial]):not([data-nav=camera]) .v-map{display:none}.v-caption{position:absolute;left:0;right:0;bottom:0;height:64px;display:flex;align-items:center;justify-content:center;gap:12px;font-size:14px;line-height:20px;pointer-events:none;padding:0 24px;text-align:center}.v-caption b{font-weight:500}.v-caption span{color:var(--ink-2)}.v-caption small{color:var(--ink-2);font-size:12px;line-height:16px;opacity:.8}.viewer[data-nav=film] .v-caption{bottom:72px;height:44px}.v-strip{position:absolute;left:0;right:0;bottom:0;height:72px;display:none;gap:4px;padding:12px 24px 16px;overflow-x:auto;scrollbar-width:none;justify-content:safe center}.v-strip::-webkit-scrollbar{display:none}.viewer[data-nav=film] .v-strip{display:flex}.v-thumb{flex:none;position:relative;height:44px;border:0;padding:0;border-radius:4px;overflow:hidden;background:var(--tile);cursor:pointer;opacity:.45;transition:opacity .15s ease,scale .15s ease-out}.v-thumb img{height:100%;width:auto;display:block}.v-thumb[aria-current=true]{opacity:1}@media(hover:hover)and (pointer:fine){.v-thumb:hover{opacity:.8}}.v-thumb:active{scale:.94}.v-ghost{position:fixed;z-index:45;left:0;top:0;overflow:hidden;pointer-events:none;will-change:transform,clip-path}.v-ghost img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}html.is-camera,html.is-camera body{overflow:hidden}html.is-camera .site-header,html.is-camera .hero,html.is-camera .site-footer{opacity:0;pointer-events:none;transition:opacity .2s ease-out}html.is-camera .grid .tile{opacity:.18;cursor:default}html.is-camera .grid .tile.is-active{opacity:1}.viewer[data-nav=camera] .v-backdrop,.viewer[data-nav=camera] .v-stage{display:none}.viewer[data-nav=camera]{background:transparent}.cam-catch{position:fixed;top:0;right:0;bottom:0;left:0;z-index:39;cursor:grab;touch-action:none}.cam-catch:active{cursor:grabbing}@media(max-width:640px){:root{--page-top: 48px}.page{padding-inline:16px}.headline{font-size:22px;line-height:32px}.inline-photo{width:44px;height:28px;vertical-align:-5px}.grid{--u: calc((100vw - 32px - 5 * var(--gap)) / 6);grid-template-columns:repeat(6,1fr);grid-auto-flow:row dense;margin-top:56px;gap:6px}.grid .tile{grid-column:span var(--mc)!important;grid-row:span var(--mr)!important}.v-media{border-radius:0}.v-arrow[data-dir=left],.v-arrow[data-dir=right]{display:none}.v-arrow[data-dir=up],.v-arrow[data-dir=down]{display:none!important}.v-top{padding-left:16px}.scrub{width:112px}.where{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}.proto-picker{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:2147483647;display:flex;align-items:center;gap:2px;padding:4px;border-radius:999px;background:#0a0a0ad1;-webkit-backdrop-filter:blur(12px) saturate(1.4);backdrop-filter:blur(12px) saturate(1.4);box-shadow:0 0 0 1px #ffffff14 inset,0 8px 24px #0000003d,0 2px 6px #0000001f;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:13px;line-height:1;-webkit-font-smoothing:antialiased;user-select:none;-webkit-user-select:none}.proto-picker-highlight{position:absolute;top:4px;left:0;height:28px;border-radius:999px;background:#ffffff1f;will-change:transform}.proto-picker[data-ready] .proto-picker-highlight{transition:transform .25s cubic-bezier(.23,1,.32,1),width .25s cubic-bezier(.23,1,.32,1)}@media(prefers-reduced-motion:reduce){.proto-picker[data-ready] .proto-picker-highlight{transition:none}}.proto-picker-item{position:relative;display:flex;align-items:center;height:28px;padding:0 12px;border:0;border-radius:999px;background:transparent;color:#ffffff8c;font:inherit;cursor:pointer;transition:color .15s ease-out;text-decoration:none}.proto-picker-item:hover{color:#ffffffd9}.proto-picker-item:active{transform:scale(.97)}.proto-picker-item:focus-visible{outline:2px solid rgba(255,255,255,.4);outline-offset:2px}.proto-picker-item[data-active]{color:#fff}.proto-picker-divider{width:1px;height:16px;margin:0 4px;background:#ffffff1f}.proto-picker-replay,.proto-picker-board{padding:0 10px;font-size:14px}.proto-picker[data-position=top]{bottom:auto;top:24px}html.viewer-open .proto-picker{opacity:0;pointer-events:none}@media(max-width:640px){.proto-picker-item:not(.proto-picker-replay):not(.proto-picker-board){font-size:0;padding:0 11px}.proto-picker-item[data-n]:after{content:attr(data-n);font-size:13px}}.grid{position:relative}.viewer:is([data-nav=spatial],[data-nav=camera]) .v-arrow{top:auto;left:auto;bottom:10px;margin:0}.viewer:is([data-nav=spatial],[data-nav=camera]) .v-arrow[data-dir=left]{right:160px}.viewer:is([data-nav=spatial],[data-nav=camera]) .v-arrow[data-dir=up]{right:112px}.viewer:is([data-nav=spatial],[data-nav=camera]) .v-arrow[data-dir=down]{right:64px}.viewer:is([data-nav=spatial],[data-nav=camera]) .v-arrow[data-dir=right]{right:16px}.viewer:is([data-nav=spatial],[data-nav=camera]) .v-caption{padding-inline:220px}.viewer[data-nav=camera]{pointer-events:auto;cursor:grab}.viewer[data-nav=camera]:active{cursor:grabbing}@media(max-width:640px){.viewer:is([data-nav=spatial],[data-nav=camera]) .v-caption{padding-inline:16px}}@media(max-width:640px){.v-caption{flex-direction:column;gap:0}.v-caption small,.v-map{display:none}}
