:root{--ink:#22282e;--paper:#cdd2d7;--card:#dde0e4;--accent:#000;--stripe:#2e4bec;--stripe-w:20px;--gray:#4f565d;--line:#22282e2e;--pan-scale:1;--overview:0;--grid-z:1;--hud-glass-bg:#ffffff1f;--hud-glass-blur:blur(16px) saturate(1.2);--hud-glass-border:#ffffff47;--hud-glass-inset:inset 0 1px 0 #fff3}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--card);color:var(--ink);font-family:Lato,system-ui,sans-serif;font-weight:400;overflow:hidden}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}html.has-scroll-progress,.has-scroll-progress{scrollbar-width:none}html.has-scroll-progress::-webkit-scrollbar{display:none}.has-scroll-progress::-webkit-scrollbar{display:none}.scroll-progress{z-index:510;pointer-events:none;opacity:0;background:#22282e1f;width:3px;transition:opacity .25s;position:fixed;top:0;overflow:hidden}.scroll-progress.is-visible{opacity:1}.scroll-progress-fill{background:var(--stripe);transform-origin:top;will-change:transform;width:100%;height:100%;display:block;transform:scaleY(0)}.cursor-trail{z-index:10000;pointer-events:none;box-sizing:border-box;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;background:var(--stripe);color:#fff;opacity:0;--reveal-ms:.44s;clip-path:inset(0 100% 0 0);transition:opacity .22s ease-in-out, clip-path var(--reveal-ms) cubic-bezier(.08, 1, .2, 1) .16s;will-change:transform, opacity, clip-path;padding:.45rem .7rem;font-family:Space Mono,monospace;font-size:.62rem;font-style:normal;font-weight:400;line-height:1.2;position:fixed;top:0;left:0}.cursor-trail.is-on{opacity:1;clip-path:inset(0 0% 0 0)}.cursor-trail.is-cutting{transition:none}.cursor-trail-caret{vertical-align:-.05em;opacity:1;background:#fff;width:2px;height:.85em;margin-left:.4em;animation:1s step-end infinite cursor-caret-blink;display:inline-block;box-shadow:0 0 4px #ffffffb3}@keyframes cursor-caret-blink{0%,49%{opacity:1}50%,to{opacity:0}}.viewport{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;position:fixed;inset:0;overflow:hidden}.viewport.grabbing{cursor:grabbing}.boot-screen{z-index:0;background:var(--card);color:var(--ink);pointer-events:none;place-items:center;display:grid;position:fixed;inset:0}.boot-screen-stripe{width:var(--stripe-w);background:var(--stripe);position:absolute;top:0;bottom:0;left:0}.boot-screen-body{padding-left:var(--stripe-w);flex-direction:column;align-items:flex-start;gap:.55rem;width:max-content;max-width:min(28rem,100vw - 4rem);display:flex}.boot-screen-kicker{letter-spacing:.14em;text-transform:lowercase;color:#22282e8c;margin:0;font-family:Space Mono,monospace;font-size:.62rem}.boot-screen-name{letter-spacing:-.01em;color:var(--ink);margin:0;font-family:Libre Bodoni,Georgia,serif;font-size:clamp(1.85rem,4.2vw,2.75rem);font-weight:400;line-height:1.05}.boot-screen-bar{background:#22282e1f;align-self:stretch;width:auto;height:2px;margin-top:.85rem;overflow:hidden}.boot-screen-bar-fill{background:var(--stripe);transform-origin:0;width:100%;height:100%;transition:transform .12s linear;display:block;transform:scaleX(0)}.boot-layer{z-index:90;pointer-events:none;clip-path:inset(0);will-change:clip-path;position:fixed;inset:0}.boot-layer .boot-screen{z-index:0;position:absolute}.boot-layer .boot-screen-stripe{z-index:1}.boot-layer .boot-screen-body{will-change:transform, opacity}.boot-layer.is-pulling{animation:.95s cubic-bezier(.7,0,.2,1) forwards boot-pull-through}.boot-layer.is-pulling .boot-screen-body{animation:.95s cubic-bezier(.7,0,.2,1) forwards boot-body-pull}.boot-layer.is-pulling .boot-screen-bar{animation:.55s cubic-bezier(.4,0,1,1) forwards boot-bar-pull}@keyframes boot-pull-through{0%{clip-path:inset(0)}78%{clip-path:inset(0 calc(100% - var(--stripe-w)) 0 0)}to{clip-path:inset(0 100% 0 0)}}@keyframes boot-body-pull{0%{opacity:1;transform:translate(0)}55%{opacity:1}to{opacity:0;transform:translate(calc(-1*min(40vw,18rem)))}}@keyframes boot-bar-pull{to{opacity:0;transform-origin:0;transform:scaleX(.15)}}body.is-booting .viewport{pointer-events:none}.grid-clip{will-change:clip-path;position:absolute;inset:0}.track{transform-origin:0 0;will-change:transform;position:absolute;top:0;left:0}.col-strip{will-change:transform;position:absolute;top:0}.tile{clip-path:inset(0);contain:paint;transform:scale(var(--pan-scale));transition:transform .15s ease-in-out;position:absolute;overflow:hidden}.viewport .tile.is-blank{pointer-events:none;background:0 0}body.is-gliding .tile,.viewport.grabbing .tile{transition:none}.tile .swatch{z-index:2;align-items:flex-end;width:100%;height:100%;padding:.9rem;display:flex;position:relative}.tile video,.tile>img{object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}.tile>img{-webkit-user-drag:none;-webkit-user-select:none;user-select:none;z-index:0}.tile.is-cutout:after{content:"";pointer-events:none;box-shadow:inset 0 0 0 calc((2px - 1px * var(--overview,0)) / var(--grid-z,1)) var(--accent);z-index:2;position:absolute;inset:0}.tile video{z-index:1;backface-visibility:hidden;opacity:0;transform:translateZ(0)}.tile video.is-frame-ready{opacity:1}.tile .cap{z-index:1;letter-spacing:.02em;color:#16161a;font-family:Space Mono,monospace;font-size:.62rem;position:relative}.tile .cap .medium{opacity:.6;margin-bottom:.15rem;font-size:.56rem;display:block}.tile.has-media .cap{color:#faf9f4}.tile.is-video:after{content:"";z-index:1;pointer-events:none;background:radial-gradient(circle at 30% 20%,#00000038,#0000 55%);animation:3.4s ease-in-out infinite pulse;position:absolute;inset:0}.viewport.grabbing .tile.is-video:after,body.is-gliding .tile.is-video:after{animation-play-state:paused}@keyframes pulse{0%,to{opacity:.55}50%{opacity:1}}.tile .play{z-index:2;border:1px solid #16161a73;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;display:flex;position:absolute;top:.8rem;right:.8rem}.tile .play:after{content:"";border-top:4px solid #0000;border-bottom:4px solid #0000;border-left:6px solid #16161a;width:0;height:0;margin-left:2px}.tile.has-media .play{border-color:#faf9f499}.tile.has-media .play:after{border-left-color:#faf9f4}.edge-stripe{width:var(--stripe-w);z-index:22;background:var(--stripe);pointer-events:none;position:fixed;top:0;bottom:0;left:0}.chrome{z-index:20;pointer-events:none;padding:1.75rem clamp(1.75rem, 3.2vw, 2.75rem) 1.75rem calc(var(--stripe-w) + clamp(1.75rem, 3.2vw, 2.75rem));--veil-solid:0px;--veil-fade:580px;flex-direction:column;justify-content:space-between;align-items:flex-start;display:flex;position:fixed;inset:0}.chrome:before{content:"";width:calc(var(--veil-solid) + var(--veil-fade));background:linear-gradient(to right, var(--card) 0, var(--card) var(--veil-solid), transparent calc(var(--veil-solid) + var(--veil-fade)));opacity:1;pointer-events:none;z-index:0;position:absolute;top:0;bottom:0;left:0}.chrome a,.chrome button{pointer-events:auto}.chrome-stack{z-index:1;flex-direction:column;gap:2.25rem;max-width:30ch;display:flex;position:relative}body.is-frosted-veil-mockup .chrome:before{display:none}body.is-frosted-veil-mockup .chrome{justify-content:flex-end}body.is-frosted-veil-mockup .chrome-rail{z-index:23;width:var(--stripe-w);pointer-events:auto;--pullout-w:calc(min(22rem, 46vw) - 30px);transition:width .45s cubic-bezier(.22,1,.36,1);position:fixed;top:0;bottom:0;left:0;overflow:hidden}body.is-frosted-veil-mockup .chrome-rail:hover,body.is-frosted-veil-mockup .chrome-rail:focus-within{width:var(--pullout-w)}body.is-frosted-veil-mockup .chrome-rail .edge-stripe{width:var(--stripe-w);z-index:2;pointer-events:none;position:absolute;top:0;bottom:0;left:0}body.is-frosted-veil-mockup .chrome-pullout{top:0;left:var(--stripe-w);width:calc(var(--pullout-w) - var(--stripe-w));z-index:1;pointer-events:none;align-items:flex-start;padding:calc(1.75rem - 8px) 1.25rem 1.75rem .85rem;transition:transform .45s cubic-bezier(.22,1,.36,1);display:flex;position:absolute;bottom:0;transform:translate(-100%)}body.is-frosted-veil-mockup .chrome-pullout:before{content:"";z-index:0;background:color-mix(in srgb, var(--card) 35%, transparent);-webkit-backdrop-filter:blur(18px)saturate(1.05);backdrop-filter:blur(18px)saturate(1.05);pointer-events:none;position:absolute;inset:0}body.is-frosted-veil-mockup .chrome-rail:hover .chrome-pullout,body.is-frosted-veil-mockup .chrome-rail:focus-within .chrome-pullout{pointer-events:auto;transform:translate(0)}body.is-frosted-veil-mockup .chrome-pullout .chrome-stack{z-index:1;margin-top:10px;margin-left:17px;position:relative}body.is-frosted-veil-mockup .chrome-pullout .chrome-stack a,body.is-frosted-veil-mockup .chrome-pullout .chrome-stack button{pointer-events:auto}.mockup-tag{z-index:50;letter-spacing:.1em;text-transform:uppercase;color:#22282e8c;pointer-events:none;margin:0;font-family:Space Mono,monospace;font-size:.58rem;position:fixed;top:.65rem;right:.85rem}.mockup-tag--view-mode{right:auto;left:calc(var(--stripe-w,18px) + .85rem)}body.is-mobile-chrome{--stripe-w:18px}body.is-mobile-chrome .edge-stripe{width:100%;height:var(--stripe-w);z-index:56;inset:0 0 auto}body.is-mobile-chrome .boot-screen-stripe{width:100%;height:var(--stripe-w);inset:0 0 auto}body.is-mobile-chrome .boot-screen-body{padding-left:0;padding-top:var(--stripe-w)}body.is-mobile-chrome .boot-layer.is-pulling{animation-name:boot-pull-through-top}@keyframes boot-pull-through-top{0%{clip-path:inset(0)}78%{clip-path:inset(0 0 calc(100% - var(--stripe-w)) 0)}to{clip-path:inset(0 0 calc(100% - var(--stripe-w)) 0);opacity:0}}body.is-mobile-chrome .chrome{padding:calc(var(--stripe-w) + .75rem) .9rem 1rem;--veil-solid:8px;--veil-fade:240px;z-index:55;justify-content:space-between}body.is-mobile-chrome .chrome:before{top:var(--stripe-w);width:100%;height:calc(var(--veil-solid) + var(--veil-fade));background:linear-gradient(to bottom, var(--card) 0, var(--card) var(--veil-solid), transparent calc(var(--veil-solid) + var(--veil-fade)));bottom:auto;left:0;right:0}body.is-mobile-chrome .mockup-tag--view-mode{top:calc(var(--stripe-w) + .45rem);left:.85rem}body.is-mobile-chrome .mobile-chrome-top{z-index:1;pointer-events:auto;grid-template-rows:auto auto;grid-template-columns:1fr auto;align-items:center;gap:0 .75rem;width:min(100%,26rem);display:grid;position:relative}body.is-mobile-chrome .mobile-chrome-top .masthead{max-width:none;display:contents}body.is-mobile-chrome .mobile-chrome-top .masthead .kicker{grid-area:1/1;align-self:center;margin:0;font-size:.55rem}body.is-mobile-chrome .mobile-chrome-top .masthead h1{grid-area:2/1/auto/-1;margin-top:.45rem}body.is-mobile-chrome .masthead h1,body.is-mobile-chrome .home-trigger{white-space:normal;font-size:clamp(1.35rem,6.5vw,1.7rem);line-height:1.08}body.is-mobile-chrome .mobile-menu-btn{appearance:none;box-sizing:border-box;letter-spacing:.14em;text-transform:uppercase;color:#22282eb3;cursor:pointer;background:0 0;border:0;flex:none;grid-area:1/2;justify-content:flex-end;place-self:center end;align-items:center;min-width:2.75rem;min-height:2.75rem;margin:-.85rem -.35rem -.85rem 0;padding:.85rem 1rem;font-family:Space Mono,monospace;font-size:.55rem;line-height:1.2;display:inline-flex}body.is-mobile-chrome .mobile-menu-btn:hover,body.is-mobile-chrome .mobile-menu-btn:focus-visible,body.is-mobile-chrome .mobile-menu-btn[aria-expanded=true]{color:var(--stripe)}body.is-mobile-chrome .mobile-menu-btn:focus-visible{outline:2px solid var(--stripe);outline-offset:3px}body.is-mobile-chrome .chrome-footer{width:100%}body.is-mobile-chrome .chrome-footer .hint{font-size:.55rem}body.is-mobile-chrome .view-mode-toggle{top:auto;bottom:calc(3.4rem - 20px);right:.75rem}body.is-mobile-chrome .mobile-nav-scrim{z-index:60;opacity:0;pointer-events:none;background:#00000059;transition:opacity .35s cubic-bezier(.22,1,.36,1);position:fixed;inset:0}body.is-mobile-chrome .mobile-nav-scrim.is-open{opacity:1;pointer-events:auto}body.is-mobile-chrome .mobile-nav-sheet{z-index:70;max-height:min(88svh,42rem);padding:1rem 1.15rem calc(1.15rem + env(safe-area-inset-bottom,0px));background:var(--card);border-top:1px solid var(--line);pointer-events:none;-webkit-overflow-scrolling:touch;transition:transform .45s cubic-bezier(.22,1,.36,1);position:fixed;bottom:0;left:0;right:0;overflow-y:auto;transform:translateY(105%)}body.is-mobile-chrome .mobile-nav-sheet.is-open{pointer-events:auto;transform:translateY(0)}body.is-mobile-chrome .mobile-nav-sheet-head{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.85rem;display:flex}body.is-mobile-chrome .mobile-nav-sheet-title{letter-spacing:.14em;text-transform:uppercase;color:#22282eb3;font-family:Space Mono,monospace;font-size:.62rem}body.is-mobile-chrome .mobile-nav-sheet-close{appearance:none;color:var(--ink);cursor:pointer;background:0 0;border:0;margin:0;padding:.2rem .35rem;font-size:1.35rem;line-height:1}body.is-mobile-chrome .mobile-nav-sheet-close:hover,body.is-mobile-chrome .mobile-nav-sheet-close:focus-visible{color:var(--stripe)}body.is-mobile-chrome .mobile-home-nav{white-space:normal}body.is-mobile-chrome .mobile-home-nav .nav-group,body.is-mobile-chrome .mobile-home-nav .rule{max-width:none}body.is-mobile-chrome .mobile-sheet-quote{white-space:normal;text-align:left;border-right:0;border-left:2px solid var(--stripe);max-width:none;margin:1.35rem 0 0;padding-left:.85rem;padding-right:0;font-size:1rem}body.is-mobile-chrome .mobile-sheet-quote .attr{margin-top:.35rem}body.is-mobile-chrome .project-overlay.is-video-project{width:auto;height:auto;max-height:none;inset:0}body.is-mobile-chrome .project-overlay.is-video-project>[role=dialog],body.is-mobile-chrome .project-overlay.is-video-project .project-hero{width:auto;height:auto;position:absolute;inset:0}body.is-mobile-chrome .project-overlay.is-video-project .video-player,body.is-mobile-chrome .project-overlay.is-video-project .video-player .video-host,body.is-mobile-chrome .project-overlay.is-video-project .video-player video{width:100%;height:100%;position:absolute;inset:0}body.is-mobile-chrome .project-overlay.is-video-project .video-player video{object-fit:contain;object-position:center center}body.is-mobile-chrome .project-overlay.is-stills-project .stills-actions-primary:has(.stills-actions-primary-slot){display:none}body.is-mobile-chrome .project-overlay.is-stills-project .stills-actions:not(:has(.stills-btn)){gap:0;margin-top:0;padding-top:0}body.is-mobile-chrome .project-overlay.is-stills-project .stills-series{z-index:40;box-sizing:border-box;width:100%;padding:.85rem 1.15rem calc(.85rem + env(safe-area-inset-bottom,0px));background:var(--card);border-top:1px solid var(--line);margin:0;position:fixed;bottom:0;left:0;right:0}body.is-mobile-chrome .project-overlay.is-stills-project .stills-assets{padding-bottom:calc(5.75rem + env(safe-area-inset-bottom,0px))}body.is-mobile-chrome .model-stills-viewport,body.is-mobile-chrome .model-stills-viewport .project-model,body.is-mobile-chrome .model-stills-viewport .project-model-boot{width:100%;height:100dvh;max-height:100dvh}body.is-mobile-chrome .model-stills-viewport .hud-close{top:calc(.65rem + env(safe-area-inset-top,0px));right:.75rem}body.is-mobile-chrome .project-model{width:100%;height:100dvh;max-height:100dvh}body.is-mobile-chrome .model-chrome-top{padding:calc(.65rem + env(safe-area-inset-top,0px)) 3.1rem 0 .65rem;box-sizing:border-box}body.is-mobile-chrome .model-chrome-top.is-multi-chrome{flex-direction:column;align-items:stretch;gap:.4rem}body.is-mobile-chrome .model-chrome-top.is-multi-chrome .view-mode-hud{width:100%;position:static;top:auto;left:auto;transform:none}body.is-mobile-chrome .display-hud{box-sizing:border-box;width:100%;max-width:100%}body.is-mobile-chrome .display-hud button{letter-spacing:.03em;text-align:center;flex:1 1 0;min-width:0;padding:.55rem .28rem;font-size:.52rem}body.is-mobile-chrome .viewport-meta{left:.85rem;right:.85rem;bottom:calc(1rem + env(safe-area-inset-bottom,0px));align-items:flex-end}body.is-mobile-chrome .project-model.is-multi .viewport-meta{bottom:calc(6.75rem + env(safe-area-inset-bottom,0px))}body.is-mobile-chrome .viewport-meta .binds--desktop{display:none}body.is-mobile-chrome .viewport-meta .binds--touch{display:block}body.is-mobile-chrome .project-model.is-multi .thumb-strip,body.is-mobile-chrome .project-model.is-multi .sandbox-bar{box-sizing:border-box;width:100%;max-width:none;padding:.55rem .65rem calc(.55rem + env(safe-area-inset-bottom,0px));border-bottom:0;border-left:0;border-right:0;border-radius:0;justify-content:safe center;margin:0;bottom:0;left:0;right:0}body.is-mobile-chrome .project-model.is-multi .sandbox-bar-head{width:100%;min-width:0}body.is-mobile-chrome .project-model.is-multi .hotbar{justify-content:safe center;width:100%}.view-mode-toggle{z-index:45;border:1px solid var(--line);background:color-mix(in srgb, var(--card) 88%, transparent);-webkit-backdrop-filter:blur(10px)saturate(1.05);backdrop-filter:blur(10px)saturate(1.05);pointer-events:auto;align-items:stretch;gap:0;padding:3px;display:inline-flex;position:fixed;top:1.1rem;right:1.1rem}.view-mode-toggle button{appearance:none;color:#22282e8c;letter-spacing:.06em;text-transform:lowercase;white-space:nowrap;cursor:pointer;background:0 0;border:0;margin:0;padding:.45rem .85rem;font-family:Space Mono,monospace;font-size:.62rem;line-height:1.2}.view-mode-toggle button:hover{color:var(--ink)}.view-mode-toggle button.is-on{background:var(--ink);color:var(--card)}.view-mode-toggle button:focus-visible{outline:2px solid var(--stripe);outline-offset:2px}@media (width<=720px){.view-mode-toggle{top:.85rem;right:.75rem}.view-mode-toggle button{padding:.5rem .7rem;font-size:.58rem}}.zoom-bar{z-index:45;pointer-events:auto;flex-direction:row;align-items:center;gap:.55rem;display:flex;position:fixed;inset:1.15rem 1.15rem auto auto;transform:none}.zoom-bar-label{appearance:none;letter-spacing:.1em;text-transform:uppercase;color:#22282e8c;cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:0;margin:0;padding:.2rem 0;font-family:Space Mono,monospace;font-size:.55rem}.zoom-bar-label:hover,.zoom-bar-label:focus-visible{color:var(--stripe)}.zoom-bar-label:focus-visible{outline:2px solid var(--stripe);outline-offset:3px}.zoom-bar .boot-screen-bar.zoom-bar-track{cursor:ew-resize;touch-action:none;width:min(11rem,42vw);margin-top:0}.zoom-bar .boot-screen-bar-fill{transition:none}.zoom-bar-track:focus-visible{outline:2px solid var(--ink);outline-offset:3px}@media (width<=720px){.zoom-bar{top:auto;bottom:5.25rem;right:.75rem}}.chrome-footer{z-index:1;justify-content:space-between;align-items:flex-end;gap:1.5rem;width:100%;display:flex;position:relative}.home-nav{color:var(--ink);white-space:nowrap;text-transform:lowercase;font-family:Space Mono,monospace;font-size:.75rem;line-height:2.1}.home-nav .entry{text-align:left;width:100%;color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;justify-content:space-between;gap:1.5rem;padding:0;display:flex}.home-nav a.entry,.home-nav button.entry{text-decoration:none}.home-nav .entry .n{color:#22282eb3}.home-nav .entry:hover,.home-nav .entry:focus-visible,.home-nav .entry:hover .n,.home-nav .entry:focus-visible .n,.home-nav .nav-group.is-open>.entry,.home-nav .nav-group.is-open>.entry .n{color:var(--stripe)}.home-nav .nav-group{width:100%;max-width:22rem}.home-nav .nav-dropdown-clip{grid-template-rows:0fr;transition:grid-template-rows .38s ease-out;display:grid}.home-nav .nav-group.is-open .nav-dropdown-clip{grid-template-rows:1fr}.home-nav .nav-dropdown{white-space:normal;opacity:0;min-height:0;margin:0;padding:0 0 0 .85rem;list-style:none;transition:opacity .32s ease-out,margin .38s ease-out;overflow:hidden}.home-nav .nav-group.is-open .nav-dropdown{opacity:1;margin:.15rem 0 .55rem}.home-nav .nav-item{text-align:left;width:100%;font:inherit;color:#22282eb8;cursor:pointer;background:0 0;border:none;margin:0;padding:.1rem 0;font-size:.68rem;line-height:1.55;display:block}.home-nav .nav-item:hover,.home-nav .nav-item:focus-visible{color:var(--stripe)}.home-nav .nav-item:focus-visible{outline:1px solid var(--stripe);outline-offset:2px}.home-nav .nav-item:disabled{opacity:.4;cursor:default}.home-nav .rule{border:none;border-top:1px solid #22282e38;width:100%;max-width:180px;margin:.6rem 0}.home-nav .status{color:var(--stripe);align-items:center;gap:.4rem;margin-top:.75rem;display:flex}.home-nav .status .dot{background:var(--stripe);border-radius:50%;width:6px;height:6px;animation:1.6s ease-in-out infinite blink}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.home-nav .socials{letter-spacing:.04em;text-transform:lowercase;color:#22282e73;flex-wrap:wrap;align-items:center;gap:.35rem;margin:.45rem 0 0;font-family:Space Mono,monospace;font-size:.56rem;display:flex}.home-nav .socials a{color:inherit;text-decoration:none}.home-nav .socials a:hover,.home-nav .socials a:focus-visible{color:var(--stripe)}.home-nav .socials a:focus-visible{outline:1px solid var(--stripe);outline-offset:2px}.home-nav .socials-sep{color:#22282e47}.masthead{max-width:30ch}.masthead .kicker{letter-spacing:.14em;text-transform:uppercase;color:#22282eb3;margin:0 0 .7rem;font-family:Space Mono,monospace;font-size:.62rem;display:block}.masthead h1{color:var(--ink);white-space:nowrap;margin:0;font-family:Libre Bodoni,Georgia,serif;font-size:clamp(1.9rem,3vw,2.6rem);font-weight:500;line-height:1.05}.home-trigger{font:inherit;color:inherit;text-align:left;letter-spacing:inherit;white-space:nowrap;background:0 0;border:none;margin:0;padding:0}.home-trigger:hover,.home-trigger:focus-visible{color:var(--accent)}.quote{color:var(--stripe);text-align:right;border-right:2px solid var(--stripe);white-space:nowrap;margin:0 0 0 auto;padding-right:.9rem;font-family:Libre Bodoni,Georgia,serif;font-size:1.15rem;font-style:italic;font-weight:400;line-height:1.45}.quote .attr{letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin-top:.4rem;font-family:Space Mono,monospace;font-size:.6rem;font-style:normal;font-weight:400;display:block}.hint{letter-spacing:.04em;text-transform:uppercase;color:var(--accent);margin:0 auto 0 0;font-family:Space Mono,monospace;font-size:.62rem}.modal-overlay{-webkit-backdrop-filter:blur(2px);z-index:400;opacity:0;background:#0009;justify-content:center;align-items:center;padding:4vw;transition:opacity 2s cubic-bezier(.22,1,.36,1);display:flex;position:fixed;inset:0}.modal-overlay[hidden]{display:none}.modal-overlay.is-open{opacity:1}.modal{background:var(--card);border:1px solid var(--line);width:100%;max-width:440px;max-height:90vh;padding:clamp(1.75rem,4vw,2.5rem);font-family:Lato,system-ui,sans-serif;transition:transform 2s cubic-bezier(.22,1,.36,1);position:relative;overflow-y:auto;transform:translateY(18px)}.modal-overlay.is-open .modal{transform:translateY(0)}.modal-close{color:var(--ink);background:0 0;border:none;font-size:1.25rem;line-height:1;position:absolute;top:1rem;right:1rem}.modal-close:hover{color:var(--accent)}.modal-title{margin:0 0 1.5rem;font-family:Libre Bodoni,Georgia,serif;font-size:clamp(1.5rem,4vw,2rem);font-style:italic;font-weight:400}.contact-form{flex-direction:column;gap:1.1rem;display:flex;position:relative}.form-field{flex-direction:column;gap:.4rem;display:flex}.form-field label{letter-spacing:.04em;color:var(--ink);font-family:Space Mono,monospace;font-size:.72rem}.required-tag{color:var(--gray)}.form-field input,.form-field textarea{color:var(--ink);background:var(--paper);border:1px solid var(--line);resize:vertical;padding:.6rem .7rem;font-family:Lato,system-ui,sans-serif;font-size:.95rem;font-weight:400}.form-submit{background:var(--accent);color:var(--card);border:none;align-self:flex-start;margin-top:.5rem;padding:.75rem 1.5rem;font-family:Space Mono,monospace;font-size:.85rem}.form-submit:hover{background:var(--ink);color:var(--card)}.form-submit:disabled{opacity:.45;pointer-events:none}.form-error{letter-spacing:.04em;color:var(--ink);margin:0;font-family:Space Mono,monospace;font-size:.72rem}.form-sent{color:var(--ink);margin:0;font-family:Lato,system-ui,sans-serif;font-size:.95rem}.form-hp{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.tile.is-clickable{cursor:pointer}.project-overlay{z-index:500;background:var(--card);opacity:0;transition:opacity .7s cubic-bezier(.22,1,.36,1);position:fixed;inset:0;overflow:hidden auto}.project-overlay.is-photo-project{overflow:hidden}.project-overlay[hidden]{display:none}.project-overlay.is-open{opacity:1}.project-overlay.is-swipe-dismissing{will-change:transform, opacity;transition:none}.project-hero{view-transition-name:project-hero;background:#000;width:100vw;height:100vh}.project-overlay.is-video-project{background:#000;overflow:hidden}.project-overlay.is-model-project{background:var(--card);overflow:hidden}.project-overlay.is-model-project .hud-close{top:1.25rem;right:1.5rem}.project-overlay.is-stills-project{background:var(--card);overflow:hidden}.project-overlay.is-stills-project>[role=dialog]{height:100%}.project-overlay.is-stills-project .stills-rail,.project-overlay.is-stills-project .stills-assets,.project-overlay.is-stills-project .stills-back-grid{opacity:0;transition:opacity .55s cubic-bezier(.22,1,.36,1)}.project-overlay.is-stills-project.is-open .stills-rail,.project-overlay.is-stills-project.is-open .stills-assets,.project-overlay.is-stills-project.is-open .stills-back-grid{opacity:1}.project-hero .hero-empty{color:#faf9f480;letter-spacing:.04em;text-transform:uppercase;justify-content:center;align-items:center;width:100%;height:100%;font-family:Space Mono,monospace;font-size:.75rem;display:flex}.hud-close{all:unset;box-sizing:border-box;background:var(--hud-glass-bg);width:28px;height:28px;-webkit-backdrop-filter:var(--hud-glass-blur);backdrop-filter:var(--hud-glass-blur);border:1px solid var(--hud-glass-border);box-shadow:var(--hud-glass-inset);cursor:pointer;z-index:50;border-radius:50%;justify-content:center;align-items:center;transition:transform .2s,opacity .2s,background .2s,border-color .2s,box-shadow .2s;display:flex;position:absolute;top:clamp(16px,3vw,36px);right:clamp(16px,3vw,36px)}.hud-close span{background:#fff;width:10px;height:1.25px;transition:opacity .2s;position:absolute;box-shadow:0 0 1px #00000059}.hud-close span:first-child{transform:rotate(45deg)}.hud-close span:last-child{transform:rotate(-45deg)}.hud-close:hover,.hud-close:focus-visible{background:color-mix(in srgb, var(--stripe) 72%, transparent);border-color:color-mix(in srgb, var(--stripe) 55%, #ffffff47);transform:scale(1.06);box-shadow:inset 0 1px #ffffff40}.hud-close:focus-visible{outline-offset:3px;outline:2px solid #fff}.video-player{--media-ink:#faf9f4;--media-muted:#faf9f48c;--media-dim:#faf9f447;--media-line:#faf9f48c;--dock-bottom:55px;width:100%;height:100%;position:relative}.video-player.idle-cursor{cursor:none}.video-player .video-host,.video-player video{width:100%;height:100%;position:absolute;inset:0}.video-player .video-host{z-index:0}.video-player video{object-fit:contain;opacity:0;transition:opacity var(--video-reveal-ms,.5s) cubic-bezier(.22, 1, .36, 1);background:#000;display:block}.video-player.has-media video{opacity:1}.video-player .hero-empty{z-index:0;position:absolute;inset:0}.video-player :focus-visible{outline:2px solid var(--media-ink);outline-offset:2px}.video-chrome{z-index:2;pointer-events:none;position:absolute;inset:0}.video-chrome>*{pointer-events:auto}.video-dock{padding:48px 0 var(--dock-bottom);z-index:2;background:linear-gradient(#0000 10%,#0000008c);flex-direction:column;gap:0;transition:opacity .6s;display:flex;position:absolute;bottom:0;left:0;right:0}.video-chrome.idle .video-dock,.video-chrome.idle .video-title-block{opacity:0;pointer-events:none}.video-title-block{z-index:3;flex-direction:column;justify-content:flex-start;gap:2px;min-width:0;max-width:min(42rem,100% - 100px);padding:28px 50px 0;transition:opacity .6s;display:flex;position:absolute;top:0;left:0}.video-kicker{letter-spacing:.12em;text-transform:uppercase;color:var(--media-muted);font-family:Space Mono,monospace;font-size:10px}.video-title{color:var(--media-ink);white-space:nowrap;text-overflow:ellipsis;margin:0;font-family:Libre Bodoni,Georgia,serif;font-size:clamp(18px,2.4vw,24px);font-style:italic;font-weight:400;line-height:1.1;overflow:hidden}.video-controls-bar{flex-direction:column;align-items:stretch;gap:27px;padding:0 50px;display:flex}.video-controls-row{flex:none;justify-content:space-between;align-items:center;gap:16px;display:flex}.video-controls-cluster{justify-content:flex-start;align-items:center;gap:14px;display:flex}.video-controls-row .video-time{margin-left:auto}.video-play-btn{all:unset;cursor:pointer;box-sizing:border-box;background:var(--hud-glass-bg);width:28px;min-width:28px;height:28px;min-height:28px;-webkit-backdrop-filter:var(--hud-glass-blur);backdrop-filter:var(--hud-glass-blur);border:1px solid var(--hud-glass-border);box-shadow:var(--hud-glass-inset);border-radius:50%;flex:0 0 28px;justify-content:center;align-items:center;display:flex}.video-play-btn:disabled{opacity:.35;cursor:default}.video-play-icon{border-top:4px solid #0000;border-bottom:4px solid #0000;border-left:7px solid #fff;width:0;height:0;margin-left:1px}.video-pause-icon{width:9px;height:10px;position:relative}.video-pause-icon:before,.video-pause-icon:after{content:"";background:#fff;width:1.5px;height:10px;position:absolute;top:0}.video-pause-icon:before{left:1.5px}.video-pause-icon:after{right:1.5px}.video-volume{flex:0 0 28px;justify-content:center;align-items:center;width:28px;height:28px;display:flex;position:relative}.video-mute-btn{all:unset;cursor:pointer;box-sizing:border-box;background:var(--hud-glass-bg);width:28px;min-width:28px;height:28px;min-height:28px;-webkit-backdrop-filter:var(--hud-glass-blur);backdrop-filter:var(--hud-glass-blur);border:1px solid var(--hud-glass-border);box-shadow:var(--hud-glass-inset);color:#fff;z-index:1;border-radius:50%;flex:0 0 28px;justify-content:center;align-items:center;display:flex;position:relative}.video-mute-btn:hover,.video-mute-btn:focus-visible{color:#fff}.video-mute-btn svg{fill:none;stroke:currentColor;stroke-width:1.25px;stroke-linecap:square;width:14px;height:14px}.video-vol-pop{box-sizing:border-box;background:var(--hud-glass-bg);width:28px;height:88px;-webkit-backdrop-filter:var(--hud-glass-blur);backdrop-filter:var(--hud-glass-blur);border:1px solid var(--hud-glass-border);box-shadow:var(--hud-glass-inset);opacity:0;pointer-events:none;border-radius:14px;justify-content:center;align-items:center;transition:opacity .35s cubic-bezier(.4,0,.2,1),transform .35s cubic-bezier(.4,0,.2,1);display:flex;position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%)translateY(6px)}.video-vol-pop:after{content:"";height:14px;position:absolute;top:100%;left:0;right:0}.video-volume.is-open .video-vol-pop,.video-volume.is-scrubbing .video-vol-pop{opacity:1;pointer-events:auto;transform:translate(-50%)translateY(0)}.video-vol-scrub{cursor:pointer;touch-action:none;justify-content:center;align-items:center;width:22px;height:80px;display:flex;position:relative}.video-vol-track{background:var(--media-dim);width:1px;height:100%;transition:width .18s,background-color .18s;position:relative}.video-vol-fill{background:var(--media-ink);width:100%;height:70%;position:absolute;bottom:0;left:0}.video-vol-handle{background:var(--media-ink);opacity:0;border-radius:50%;width:9px;height:9px;transition:opacity .15s,transform .18s cubic-bezier(.2,.7,.3,1);position:absolute;bottom:70%;left:50%;transform:translate(-50%,50%)scale(.45)}.video-vol-handle:before{content:"";width:22px;height:22px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.video-vol-scrub:hover .video-vol-track,.video-volume.is-scrubbing .video-vol-track{background:#faf9f459;width:2px}.video-vol-scrub:hover .video-vol-handle,.video-volume.is-scrubbing .video-vol-handle{opacity:1;transform:translate(-50%,50%)scale(1)}.video-time{letter-spacing:.04em;color:#fff;font-variant-numeric:tabular-nums;white-space:nowrap;box-sizing:border-box;background:var(--hud-glass-bg);-webkit-backdrop-filter:var(--hud-glass-blur);backdrop-filter:var(--hud-glass-blur);border:1px solid var(--hud-glass-border);box-shadow:var(--hud-glass-inset);border-radius:999px;padding:6px 10px;font-family:Space Mono,monospace;font-size:11px}.video-timeline{--preview-h:calc(44px * .66);cursor:pointer;touch-action:none;flex:none;width:100%;padding:0;position:relative}.video-track{width:100%;height:24px;transition:height 1.15s cubic-bezier(.4,0,.2,1);position:relative}.video-timeline:hover .video-track,.video-timeline:focus-within .video-track,.video-timeline.is-dragging .video-track{height:var(--preview-h)}.video-preview{pointer-events:none;z-index:0;height:0;transition:height 1.15s cubic-bezier(.4,0,.2,1);position:absolute;bottom:0;left:0;right:0;overflow:hidden}.video-timeline:hover .video-preview,.video-timeline:focus-within .video-preview,.video-timeline.is-dragging .video-preview{height:var(--preview-h)}.video-strip{height:var(--preview-h);box-sizing:border-box;background:var(--hud-glass-bg);-webkit-backdrop-filter:var(--hud-glass-blur);backdrop-filter:var(--hud-glass-blur);border:1px solid var(--hud-glass-border);box-shadow:var(--hud-glass-inset);border-radius:6px;display:flex;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.video-strip .slice{opacity:.85;background-position:50%;background-size:cover;border-right:1px solid #ffffff2e;flex:1 1 0;min-width:0;height:100%}.video-strip .slice:last-child{border-right:none}.video-strip .slice.is-past{opacity:.45}.video-strip .slice.is-current{opacity:1}.video-ruler{z-index:1;opacity:.75;pointer-events:none;align-items:flex-end;height:24px;display:flex;position:absolute;bottom:0;left:0;right:0}.video-ticks{width:100%;height:24px;position:relative}.video-ticks .tick{background:var(--media-line);width:1px;position:absolute;bottom:0;transform:translate(-50%)}.video-ticks .tick.major{background:var(--media-ink);height:18px}.video-ticks .tick.minor{background:var(--media-dim);height:9px}.video-labels{width:100%;height:18px;margin-top:4px;position:relative}.video-labels .label{color:var(--media-ink);letter-spacing:.02em;white-space:nowrap;font-variant-numeric:tabular-nums;opacity:.75;font-family:Libre Bodoni,Georgia,serif;font-size:11px;font-style:italic;font-weight:400;position:absolute;top:0;transform:translate(-50%)}.video-playhead{all:unset;cursor:grab;touch-action:none;z-index:3;pointer-events:auto;background:#fff;border-radius:50%;width:7px;height:7px;transition:box-shadow .18s,transform .18s;position:absolute;bottom:12px;left:0;transform:translate(-50%,50%);box-shadow:0 0 0 1px #ffffff59,0 0 6px 1px #ffffff73}.video-playhead:hover,.video-playhead:focus-visible{box-shadow:0 0 0 1px #ffffff8c,0 0 8px 2px #ffffff8c}.video-playhead:active,.video-playhead.is-dragging{cursor:grabbing;transform:translate(-50%,50%)scale(1.12)}.video-playhead:before{content:"";position:absolute;inset:-14px}.video-scrub-hit{z-index:1;position:absolute;inset:0}.project-body{z-index:1;background:var(--card);max-width:70ch;padding:clamp(2rem,5vw,4rem);position:relative}.project-body[hidden]{display:none}.project-body .kicker{letter-spacing:.14em;text-transform:uppercase;color:#22282eb3;margin:0 0 .7rem;font-family:Space Mono,monospace;font-size:.62rem;display:block}.project-body .modal-title{margin:0}.project-model{width:100vw;height:100vh;position:relative}.model-boot-layer{z-index:50;background:var(--card);color:#22282e8c;pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.model-boot-layer .viewport-loading{z-index:0;color:inherit;position:static;inset:auto}.model-boot-layer .boot-screen-bar{background:#22282e1f}.model-boot-layer.is-fading{animation:.55s cubic-bezier(.4,0,.2,1) forwards model-boot-fade}@keyframes model-boot-fade{0%{opacity:1}to{opacity:0}}.model-boot-layer.is-gone,.model-boot-layer[hidden]{opacity:0;display:none}.project-model.is-loading .project-viewport{pointer-events:none}.project-model-boot{background:var(--card);color:#22282e8c;place-items:center;display:grid}.project-model-boot .viewport-loading{color:inherit;position:static;transform:none}.project-model-boot .boot-screen-bar{background:#22282e1f}.model-chrome-top{z-index:40;pointer-events:none;justify-content:flex-start;align-items:flex-start;padding:1.25rem 1.5rem;display:flex;position:absolute;top:0;left:0;right:0}.model-chrome-top.is-multi-chrome{justify-content:flex-start;gap:.75rem;position:relative}.model-chrome-top.is-multi-chrome .view-mode-hud{position:absolute;top:1.25rem;left:50%;transform:translate(-50%)}.display-hud{pointer-events:auto;border:1px solid var(--line);background:var(--paper);display:flex}.display-hud[hidden]{display:none}.display-hud button{letter-spacing:.06em;text-transform:uppercase;color:#22282e8c;border:0;border-right:1px solid var(--line);white-space:nowrap;cursor:pointer;background:0 0;padding:.45rem .7rem;font-family:Space Mono,monospace;font-size:.62rem}.display-hud button:last-child{border-right:0}.display-hud button:hover,.display-hud button:focus-visible{color:var(--ink)}.display-hud button[aria-checked=true]{color:var(--ink);background:#22282e14}.project-viewport{background:var(--card);view-transition-name:project-hero;touch-action:none;cursor:default;position:absolute;inset:0}.project-viewport.is-studio{background:#121316}.project-viewport.is-orbit{cursor:grab}.project-viewport.is-orbit.is-dragging{cursor:grabbing}.project-viewport canvas{width:100%;height:100%;display:block}.viewport-loading{z-index:20;letter-spacing:.1em;text-transform:uppercase;color:#22282e8c;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:.85rem;margin:0;font-family:Space Mono,monospace;font-size:.7rem;display:flex;position:absolute;inset:0}.viewport-loading-label{font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;margin:0}.viewport-loading .boot-screen-bar{margin-top:0}.project-viewport.is-studio .viewport-loading .boot-screen-bar{background:#faf9f41f}.project-viewport.is-studio .viewport-loading{color:#faf9f48c}.viewport-loading[hidden]{display:none}.viewport-meta{z-index:30;pointer-events:none;color:#22282eb8;justify-content:space-between;align-items:flex-end;gap:1rem;display:flex;position:absolute;bottom:1.25rem;left:1.5rem;right:1.5rem}.project-viewport.is-studio .viewport-meta{color:#faf9f4b8}.viewport-meta .kicker{letter-spacing:.14em;text-transform:uppercase;opacity:.7;margin-bottom:.35rem;font-family:Space Mono,monospace;font-size:.56rem;display:block}.viewport-meta h2{color:var(--ink);margin:0;font-family:Libre Bodoni,Georgia,serif;font-size:clamp(1.25rem,2.5vw,1.75rem);font-style:italic;font-weight:400}.project-viewport.is-studio .viewport-meta h2{color:#faf9f4}.viewport-meta .binds{letter-spacing:.04em;text-align:right;opacity:.55;max-width:22rem;font-family:Space Mono,monospace;font-size:.56rem;line-height:1.55}.viewport-meta .binds--touch{display:none}.project-model.is-multi .thumb-strip{z-index:35;background:var(--hud-glass-bg);border:1px solid var(--hud-glass-border);width:max-content;max-width:calc(100% - 2rem);-webkit-backdrop-filter:var(--hud-glass-blur);box-shadow:var(--hud-glass-inset), 0 10px 36px #00000038;gap:.45rem;margin:0 auto;padding:.45rem;display:flex;position:absolute;bottom:1.1rem;left:0;right:0;overflow-x:auto}.project-viewport.is-sandbox .thumb-strip{display:none}.project-model.is-multi .thumb,.project-model.is-multi .hot-item{appearance:none;text-align:left;color:#faf9f4;text-shadow:0 1px 2px #0000008c;letter-spacing:.02em;-webkit-backdrop-filter:blur(10px)saturate(1.15);background:#ffffff1a;border:1px solid #faf9f459;flex-direction:column;flex:none;justify-content:flex-end;width:64px;height:80px;margin:0;padding:.35rem;font-family:Space Mono,monospace;font-size:.48rem;line-height:1.25;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff47,0 3px 10px #0000002e}.project-model.is-multi .thumb{cursor:pointer}.project-model.is-multi .hot-item{cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.project-model.is-multi .thumb-media{z-index:0;opacity:1;pointer-events:none;background-position:50%;background-repeat:no-repeat;background-size:contain;position:absolute;inset:0}.project-model.is-multi .thumb .tag,.project-model.is-multi .thumb-label,.project-model.is-multi .hot-item .tag,.project-model.is-multi .hot-item .thumb-label{z-index:1;position:relative}.project-model.is-multi .thumb[aria-selected=true],.project-model.is-multi .hot-item[aria-selected=true]{border-color:#faf9f4f2;outline:1px solid #faf9f4f2;box-shadow:inset 0 1px #ffffff59,0 4px 14px #00000038}.project-model.is-multi .thumb:hover .thumb-media,.project-model.is-multi .hot-item:hover .thumb-media{filter:brightness(1.06)}.project-model.is-multi .thumb .tag,.project-model.is-multi .hot-item .tag{opacity:.8;text-transform:uppercase;letter-spacing:.08em;font-size:.42rem}.project-model.is-multi .hot-item:active{cursor:grabbing}.project-model.is-multi .hot-item.is-dragging{opacity:.45}.project-model.is-multi .sandbox-bar{z-index:35;background:var(--hud-glass-bg);border:1px solid var(--hud-glass-border);width:max-content;max-width:calc(100% - 2rem);-webkit-backdrop-filter:var(--hud-glass-blur);box-shadow:var(--hud-glass-inset), 0 10px 36px #00000038;flex-direction:column;gap:.45rem;margin:0 auto;padding:.45rem;display:flex;position:absolute;bottom:1.1rem;left:0;right:0}.project-model.is-multi .sandbox-bar[hidden]{display:none}.project-model.is-multi .sandbox-bar-head{letter-spacing:.1em;text-transform:uppercase;width:0;min-width:100%;color:var(--ink);justify-content:space-between;align-items:center;gap:.75rem;padding:0 .1rem;font-family:Space Mono,monospace;font-size:.5rem;display:flex}.project-model.is-multi .sandbox-bar-head>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.project-model.is-multi .sandbox-clear{letter-spacing:.08em;text-transform:uppercase;color:var(--ink);background:var(--hud-glass-bg);border:1px solid var(--hud-glass-border);-webkit-backdrop-filter:var(--hud-glass-blur);box-shadow:var(--hud-glass-inset);cursor:pointer;padding:.25rem .5rem;font-family:Space Mono,monospace;font-size:.5rem}.project-model.is-multi .sandbox-clear:hover{color:var(--ink);background:#ffffff47;border-color:#22282e59}.project-model.is-multi .hotbar{gap:.45rem;display:flex;overflow-x:auto}.project-model.is-multi .drop-ghost{pointer-events:none;z-index:60;opacity:.85;border:1px solid #22282e59;width:48px;height:48px;margin:-24px 0 0 -24px;position:fixed}.project-model.is-multi .drop-ghost[hidden]{display:none}.project-viewport.is-placing{cursor:copy}.project-viewport.is-object-drag{cursor:grabbing}.project-gallery{--gallery-inset:5px;--carousel-h:6.75rem;background:var(--card);view-transition-name:project-hero;width:100vw;height:100vh;position:relative}.photo-grid-viewport{inset:var(--gallery-inset);cursor:grab;background:var(--card);touch-action:none;-webkit-user-select:none;user-select:none;pointer-events:auto;position:absolute;overflow:hidden}.photo-grid-viewport.grabbing{cursor:grabbing}.photo-grid-viewport .grid-clip{will-change:clip-path;position:absolute;inset:0}.photo-grid-viewport .track{transform-origin:0 0;will-change:transform;position:absolute;top:0;left:0}.photo-grid-viewport .col-strip{will-change:transform;position:absolute;top:0}.photo-grid-viewport .tile{background:#1a1a1a}.photo-grid-viewport .tile.is-blank{pointer-events:none;background:0 0}.photo-grid-viewport .tile .tile-fill{position:absolute;inset:0}.photo-grid-viewport .tile .cap{color:#faf9f4;text-shadow:0 1px 2px #00000073}body.is-gliding .photo-grid-viewport .tile,.photo-grid-viewport.grabbing .tile{transition:none}.gallery-bottom-fade{height:calc(var(--carousel-h) + 4.5rem);z-index:29;pointer-events:none;opacity:0;background:linear-gradient(#0000 0%,#0000006b 58%,#000000c7 100%);transition:opacity .6s cubic-bezier(.22,1,.36,1);position:absolute;bottom:0;left:0;right:0}.gallery-bottom-fade.is-live{opacity:1}.project-stills.stills-split{--stills-rail:clamp(17rem, 28vw, 22rem);grid-template-columns:var(--stills-rail) minmax(0, 1fr);background:var(--card);width:100%;height:100%;min-height:100svh;color:var(--ink);view-transition-name:project-hero;display:grid}.stills-rail{--stills-rail-pad-x:clamp(1.75rem, 3.2vw, 2.75rem);--stills-rail-pad-r:1.5rem;height:100svh;padding:0 clamp(1.75rem,3.2vw,2.75rem) clamp(1.75rem,3.2vw,2.75rem);padding-right:var(--stills-rail-pad-r);padding-left:var(--stills-rail-pad-x);border-right:1px solid var(--line);flex-direction:column;align-self:start;gap:1.75rem;display:flex;position:sticky;top:0;overflow-y:auto}.stills-back-grid{appearance:none;z-index:2;box-sizing:border-box;width:calc(100% + var(--stills-rail-pad-x) + var(--stills-rail-pad-r));margin:0 calc(-1 * var(--stills-rail-pad-r)) 0 calc(-1 * var(--stills-rail-pad-x));border:0;border-bottom:1px solid color-mix(in srgb, var(--stripe) 70%, #000);background:var(--stripe);color:#fff;letter-spacing:.08em;text-transform:uppercase;text-align:left;cursor:pointer;flex-shrink:0;order:-1;padding:.55rem .85rem;font-family:Space Mono,monospace;font-size:.55rem;transition:background .15s,color .15s,border-color .15s,opacity .55s cubic-bezier(.22,1,.36,1);position:sticky;top:0}.stills-back-grid:hover,.stills-back-grid:focus-visible{background:var(--ink);border-bottom-color:var(--ink);color:var(--card)}.stills-back-grid:focus-visible{outline:none}.stills-kicker{letter-spacing:.06em;text-transform:uppercase;color:#22282eb3;margin:0;font-family:Space Mono,monospace;font-size:.62rem}.stills-title{color:var(--ink);margin:0;font-family:Libre Bodoni,Georgia,serif;font-size:clamp(1.55rem,2.2vw,2.05rem);font-weight:500;line-height:1.12}.stills-desc{color:#22282ed1;max-width:28ch;margin:0;font-size:.92rem;line-height:1.45}.stills-meta{border-top:1px solid var(--line);letter-spacing:.04em;text-transform:uppercase;color:#22282eb3;gap:.55rem;padding-top:1rem;font-family:Space Mono,monospace;font-size:.58rem;display:grid}.stills-meta div{justify-content:space-between;gap:1rem;display:flex}.stills-meta .val{color:var(--ink);text-align:right}.stills-meta .val.stacked{flex-direction:column;align-items:flex-end;gap:.25rem;display:flex}.stills-actions{flex-direction:column;flex-shrink:0;gap:.55rem;width:100%;margin-top:auto;padding-top:1rem;display:flex}.stills-actions-primary{flex-direction:column;width:100%;display:flex}.stills-btn{appearance:none;box-sizing:border-box;border:1px solid var(--ink);background:var(--ink);width:100%;color:var(--card);letter-spacing:.08em;text-transform:uppercase;text-align:left;cursor:pointer;padding:.7rem .9rem;font-family:Space Mono,monospace;font-size:.62rem;line-height:1.2;transition:background .15s,color .15s,border-color .15s}.stills-btn.ghost{color:var(--ink);background:0 0}.stills-btn:hover,.stills-btn:focus-visible{background:var(--stripe);border-color:var(--stripe);color:#fff}.stills-actions-primary-slot{box-sizing:border-box;visibility:hidden;pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;min-height:calc(2.144rem + 2px)}.stills-series{border-top:1px solid var(--line);box-sizing:border-box;grid-template-columns:1fr 1fr;align-items:start;gap:1rem;width:100%;margin-top:0;padding-top:.85rem;display:grid}.stills-series-spacer{min-width:0}.stills-series-link{appearance:none;cursor:pointer;color:var(--ink);background:0 0;border:0;flex-direction:column;gap:.25rem;width:100%;min-width:0;margin:0;padding:0;display:flex}.stills-series-link--back{text-align:left;align-items:flex-start}.stills-series-link--next{text-align:right;align-items:flex-end}.stills-series-dir{letter-spacing:.08em;text-transform:uppercase;color:#22282e8c;font-family:Space Mono,monospace;font-size:.55rem;transition:color .15s}.stills-series-title{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;height:2.28rem;font-family:Libre Bodoni,Georgia,serif;font-size:.95rem;font-weight:500;line-height:1.2;transition:color .15s;display:-webkit-box;overflow:hidden}.stills-series-link:hover .stills-series-dir,.stills-series-link:focus-visible .stills-series-dir,.stills-series-link:hover .stills-series-title,.stills-series-link:focus-visible .stills-series-title{color:var(--stripe)}.stills-series-link:focus-visible{outline:none}.stills-assets{--stills-block:3rem;--stills-group:3rem;--stills-gap:2rem;--stills-tight:.65rem;gap:var(--stills-block);flex-direction:column;height:100svh;padding:clamp(1.25rem,2.5vw,2rem) clamp(1.5rem,3.5vw,2.75rem);display:flex;overflow-y:auto}.stills-asset{background:0 0;width:100%;margin:0}.stills-asset-row{grid-template-columns:repeat(var(--stills-row-cols,2), minmax(0, 1fr));gap:var(--stills-gap);width:100%;display:grid}.stills-asset-row .stills-asset{min-width:0}.stills-stack-row{grid-template-columns:repeat(var(--stills-stack-cols,3), minmax(0, 1fr));gap:var(--stills-gap);align-items:start;width:100%;display:grid}.stills-stack-col{gap:var(--stills-group);flex-direction:column;min-width:0;display:flex}.stills-stack-col>.stills-asset{width:100%}.stills-stack-stills{gap:var(--stills-tight);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.stills-stack-stills .stills-asset-caption{margin-top:.25rem;font-size:.48rem}.stills-asset-hit{all:unset;cursor:pointer;-webkit-tap-highlight-color:transparent;outline:none;width:100%;display:block}.stills-asset-hit:focus,.stills-asset-hit:focus-visible,.stills-asset-hit:active{outline:none}.stills-asset-hit img{object-fit:contain;-webkit-user-drag:none;-webkit-user-select:none;user-select:none;pointer-events:none;opacity:0;width:100%;height:auto;transition:opacity .45s cubic-bezier(.22,1,.36,1);display:block}.stills-asset-hit img.is-ready{opacity:1}.stills-assets.is-holding-first .stills-asset{opacity:0}.stills-assets.is-holding-first .stills-asset-hit img{opacity:1;transition:none}.stills-assets.is-first-ready .stills-asset.is-first-paint{opacity:1;transition:opacity .45s cubic-bezier(.22,1,.36,1)}.stills-asset-caption{letter-spacing:.04em;text-transform:uppercase;color:#22282eb3;margin:.4rem 0 0;font-family:Space Mono,monospace;font-size:.56rem}.stills-asset-caption a{color:inherit;text-decoration:none}.stills-asset-caption a:hover,.stills-asset-caption a:focus-visible{color:var(--stripe)}.stills-asset.is-portrait{min-width:0}.stills-video-frame{aspect-ratio:16/9;background:0 0;width:100%;position:relative;overflow:hidden}.stills-asset.is-portrait .stills-video-frame{aspect-ratio:9/16}.stills-video-frame .video-player{--dock-bottom:28px;width:100%;height:100%;position:absolute;inset:0}.stills-video-frame .video-player.is-bare{--dock-bottom:0px;cursor:pointer}.video-player.is-bare .video-chrome{display:none}.stills-video-frame .video-player video{object-fit:cover;background:0 0}.stills-video-frame .video-title{font-size:clamp(.95rem,2.2vw,1.15rem)}.stills-video-frame .video-kicker{font-size:.5rem}.model-stills-viewport{z-index:60;background:var(--card);position:fixed;inset:0}.model-stills-viewport .hud-close{z-index:70;position:fixed;top:1.25rem;right:1.5rem}.model-stills-viewport .project-model,.model-stills-viewport .project-model-boot{width:100%;height:100%}@media (width<=900px){.project-overlay.is-stills-project{overflow:auto}.project-stills.stills-split{grid-template-columns:1fr;height:auto;min-height:100svh}.stills-rail{border-right:0;border-bottom:1px solid var(--line);--stills-rail-pad-r:clamp(1.75rem, 3.2vw, 2.75rem);height:auto;padding-right:var(--stills-rail-pad-r);position:static}.stills-actions{margin-top:.5rem}.stills-assets{height:auto;padding-bottom:4rem;overflow:visible}.stills-asset-row{grid-template-columns:1fr}}.thumb-carousel-dock{left:var(--gallery-inset);right:var(--gallery-inset);bottom:var(--gallery-inset);z-index:30;pointer-events:none;opacity:0;transform:translate3d(0, calc(var(--carousel-h) + .75rem), 0);background:0 0;transition:transform .75s cubic-bezier(.22,1,.36,1),opacity .6s cubic-bezier(.22,1,.36,1);position:absolute}.thumb-carousel-dock.is-live{opacity:1;pointer-events:auto;transform:translate(0,0)}.thumb-carousel-nudge{will-change:transform;justify-content:center;width:100%;display:flex;transform:translate(0,0)}.thumb-carousel{width:max-content;max-width:100%;height:var(--carousel-h);scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#faf9f459 transparent;background:0 0;justify-content:safe center;align-items:stretch;gap:.65rem;margin:0 auto;padding:.85rem .35rem 1.1rem;display:flex;overflow:auto visible}.thumb-carousel::-webkit-scrollbar{height:4px}.thumb-carousel::-webkit-scrollbar-thumb{background:#faf9f459;border-radius:2px}.thumb{aspect-ratio:2/3;scroll-snap-align:center;opacity:.78;background:#1a1a1a;border:1px solid #0000;flex:none;height:calc(100% - .15rem);padding:0;transition:opacity .2s,border-color .2s,box-shadow .2s;overflow:hidden;box-shadow:0 1px 2px #22282e24,0 4px 10px #22282e29,0 10px 22px #22282e1f}.thumb img,.thumb .thumb-fill{object-fit:cover;-webkit-user-drag:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.thumb:hover,.thumb:focus-visible{opacity:1;box-shadow:0 2px 3px #22282e29,0 6px 14px #22282e2e,0 14px 28px #22282e24}.thumb.is-active{opacity:1;border-color:var(--accent);box-shadow:0 2px 3px #22282e29,0 6px 14px #22282e2e,0 14px 28px #22282e24}.enlarge-overlay{z-index:600;opacity:0;pointer-events:none;background:#000000eb;justify-content:center;align-items:center;transition:opacity .35s cubic-bezier(.22,1,.36,1);display:flex;position:fixed;inset:0}.enlarge-overlay.is-open{opacity:1;pointer-events:auto}.enlarge-overlay img,.enlarge-overlay .enlarge-placeholder{object-fit:contain;-webkit-user-drag:none;-webkit-user-select:none;user-select:none;width:auto;max-width:calc(100vw - 30px);height:auto;max-height:calc(100vh - 30px);display:block}.enlarge-overlay .enlarge-placeholder{width:min(90vw,72vh);height:min(60vw,48vh)}.enlarge-overlay .hud-close{z-index:2}.enlarge-caption{letter-spacing:.04em;color:#faf9f4b8;pointer-events:none;font-family:Space Mono,monospace;font-size:.62rem;position:absolute;bottom:1.25rem;left:50%;transform:translate(-50%)}::view-transition-old(project-hero){animation-duration:.7s;animation-timing-function:cubic-bezier(.22,1,.36,1)}::view-transition-new(project-hero){animation-duration:.7s;animation-timing-function:cubic-bezier(.22,1,.36,1)}::view-transition-group(project-hero){animation-duration:.7s;animation-timing-function:cubic-bezier(.22,1,.36,1)}@media (prefers-reduced-motion:reduce){.home-nav .status .dot{animation:none}.home-nav .nav-dropdown-clip,.home-nav .nav-dropdown,.boot-screen-bar-fill{transition:none}.boot-layer.is-pulling{animation-duration:.01ms}.boot-layer.is-pulling .boot-screen-body,.boot-layer.is-pulling .boot-screen-bar{opacity:0;animation:none}.model-boot-layer.is-fading{animation-duration:.01ms}.tile.is-video:after{animation:none}.modal-overlay,.modal-overlay .modal,.project-overlay{transition:none}.project-overlay.is-stills-project .stills-rail,.project-overlay.is-stills-project .stills-assets,.project-overlay.is-stills-project .stills-back-grid,.stills-asset-hit img{opacity:1;transition:none}.enlarge-overlay,.cursor-trail{transition:none}.cursor-trail-caret{animation:none}::view-transition-group(*){animation:none!important}}
