:root{color:#fff;font-synthesis:none;text-rendering:optimizelegibility;background:#fff;font-family:Calibri,Segoe UI,Arial,sans-serif}*{box-sizing:border-box}html,body,#root{width:100%;min-height:100%;margin:0;overflow:hidden}body{overscroll-behavior:none}button,input,textarea,select,kbd{font-family:inherit}.home-page{color:#111;background:#fff;width:100vw;height:100dvh;overflow:hidden}.home-loading-message{text-align:center;place-items:center;margin:0;padding:2rem;font-size:.875rem;display:grid;position:fixed;inset:0}.portfolio-scene{opacity:0;width:100%;height:100%;display:block;position:fixed;inset:0}.portfolio-scene.is-ready{opacity:1}.portfolio-scene.is-hovering{cursor:pointer}.home-first-photo{opacity:0;pointer-events:none;background:0 0;border:0;padding:0;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.home-first-photo.is-ready{opacity:1;pointer-events:auto;cursor:pointer}.home-first-photo img{width:auto;max-width:min(76vw,55vh);height:auto;max-height:55vh;display:block}.home-header{z-index:2;pointer-events:none;mix-blend-mode:difference;color:#fff;grid-template-rows:1fr 1fr;grid-template-columns:minmax(0,1fr) auto;column-gap:1.5rem;padding:2.5rem;display:grid;position:fixed;inset:0}.corner-label{white-space:nowrap;place-self:start}.corner-label a{color:inherit;text-decoration:none}.brand{letter-spacing:-.04em;white-space:normal;font-family:inherit;font-size:clamp(1.5rem,2.8vw,3rem);line-height:1.1}.brand-photography{white-space:nowrap;display:inline-block}.brand-letter{opacity:1}.brand-photography.is-animated .brand-letter{animation:.24s ease-out backwards brand-type-letter;animation-delay:calc(.2s + var(--letter-index) * 90ms)}@keyframes brand-type-letter{0%{opacity:0}to{opacity:1}}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){.brand-photography.is-animated .brand-letter{animation:none}}.contact{font-size:1rem;line-height:1.5}.gallery,.contact{justify-self:end}.gallery-control{color:inherit;font:inherit;cursor:pointer;pointer-events:auto;background:0 0;border:0;padding:0;font-size:2rem;line-height:1.1}.nav-hover{display:inline-flex;position:relative}.nav-hover:after{content:"";pointer-events:none;transform-origin:100%;border-bottom:1px solid;transition:transform .65s cubic-bezier(.7,.6,0,1);position:absolute;bottom:-.3em;left:0;right:0;transform:scaleX(0)}.nav-hover:hover:after,.nav-hover:focus-visible:after{transform-origin:0;transform:scaleX(1)}@media (prefers-reduced-motion:reduce){.nav-hover:after{transition:none}}.brand-control{color:inherit;text-align:left;cursor:pointer;pointer-events:auto;background:0 0;border:0;padding:0;text-decoration:none}.site-home-link{z-index:5;color:#fff;mix-blend-mode:difference;position:fixed;top:2.5rem;left:2.5rem}.brand-control:focus-visible{outline-offset:6px;outline:1px solid}.contact{pointer-events:auto;grid-area:2/2;align-self:end}.gallery-index{overscroll-behavior-y:none;color:#111;background:#f7f6f3;width:100%;height:100dvh;overflow:hidden auto}.gallery-index.is-loading{overflow:hidden}.image-loading-indicator{letter-spacing:-.04em;font-variant-numeric:tabular-nums;pointer-events:none;place-items:center;margin:0;font-family:inherit;font-size:clamp(1.45rem,2vw,2rem);font-weight:400;line-height:1;display:grid;position:fixed;inset:0}.image-loading-content{text-align:center;position:relative}.image-loading-caption{color:#777;letter-spacing:.015em;width:min(22rem,100vw - 3rem);font-size:.8125rem;line-height:1.5;position:absolute;top:calc(100% + 1rem);left:50%;transform:translate(-50%)}.gallery-index-list{width:min(100% - 5rem,93rem);margin:0 auto;padding:clamp(10rem,18vh,14rem) 0 8rem;animation:.28s ease-out both gallery-list-arrive;display:grid}@keyframes gallery-list-arrive{0%{opacity:0}to{opacity:1}}.gallery-project{border-top:1px solid #11111138;grid-template-columns:minmax(13rem,1fr) minmax(14rem,23rem) minmax(13rem,1fr);align-items:center;column-gap:clamp(2rem,6vw,8rem);min-height:clamp(15rem,29vw,23rem);display:grid}.gallery-project:last-child{border-bottom:1px solid #11111138}.gallery-project-cover{color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.gallery-project-title{justify-self:start;max-width:15rem;margin:0;font-size:clamp(1.1rem,1.5vw,1.65rem);font-weight:400;line-height:1.05}.gallery-project-date{color:#6b6965;margin:.65rem 0 0;font-size:.8rem;line-height:1.4}.gallery-empty{color:#6b6965;font-size:1rem;font-weight:400}.gallery-project-cover{width:100%;display:block}.gallery-project-cover img{aspect-ratio:.88;object-fit:cover;width:100%;display:block}.gallery-project-stack{aspect-ratio:.88;justify-self:start;width:min(100% - 3.5rem,15rem);display:block;position:relative}.gallery-project-stack img{top:var(--stack-y);left:var(--stack-x);object-fit:cover;transform-origin:45% 65%;width:100%;height:100%;transition:transform .55s cubic-bezier(.22,1,.36,1);transition-delay:var(--stack-delay);display:block;position:absolute;transform:rotate(0);box-shadow:0 0 0 1px #11111126}.gallery-project:focus-within .gallery-project-stack img{transform:rotate(var(--stack-angle))}.gallery-skeleton{background:#e4e2dd;animation:1.8s ease-in-out infinite gallery-skeleton-pulse;display:block}.gallery-project-cover.gallery-skeleton{aspect-ratio:.88;cursor:default}.gallery-skeleton-stack>span{inset:var(--stack-y) auto auto var(--stack-x);width:100%;height:100%;position:absolute;box-shadow:0 0 0 1px #1111111a}.gallery-project.is-ready .gallery-project-cover,.gallery-project.is-ready .gallery-project-stack{animation:.28s ease-out both gallery-list-arrive}@keyframes gallery-skeleton-pulse{50%{background:#eeece7}}.gallery-load-error{color:#6b6965;font-size:.85rem}.gallery-initial-error{text-align:center;place-content:center;height:100%;display:grid}.gallery-load-error button,.gallery-initial-error button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:.5rem;text-decoration:underline}@media (prefers-reduced-motion:reduce){.gallery-skeleton,.gallery-project.is-ready .gallery-project-cover,.gallery-project.is-ready .gallery-project-stack{animation:none}}@media (hover:hover){.gallery-project:hover .gallery-project-stack img{transform:rotate(var(--stack-angle))}}@media (prefers-reduced-motion:reduce){.gallery-project-stack img{transition:none}}.portfolio-detail{overscroll-behavior-y:none;-webkit-overflow-scrolling:touch;color:#fff;opacity:1;background:#0b0b0b;height:100dvh;min-height:0;transition:opacity .65s,transform .85s cubic-bezier(.75,0,.25,1);overflow:hidden auto;transform:translateY(0)}.portfolio-detail.is-loading{overflow:hidden}.portfolio-detail.is-leaving{opacity:0;transform:translateY(-12vh)}.detail-close{z-index:4;cursor:pointer;background:0 0;border:0;width:2.4rem;height:2.4rem;padding:0;position:fixed;top:2.5rem;right:2.5rem}.detail-close span{background:#fff;width:100%;height:2px;position:absolute;top:50%;left:0;transform:rotate(45deg)}.detail-close span:last-child{transform:rotate(-45deg)}@keyframes detail-close-turn{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (hover:hover) and (prefers-reduced-motion:no-preference){.detail-close:hover{animation:.65s ease-in-out detail-close-turn}}.detail-main{padding:clamp(7rem,14vh,10rem) 2.5rem 0}.detail-main h1{letter-spacing:-.07em;width:min(75vw,67.5rem);margin:0 auto;font-size:clamp(4.2rem,9vw,8.6rem);font-weight:400;line-height:.9}.detail-gallery{gap:clamp(5rem,13vw,12rem);padding:clamp(7rem,16vh,10rem) 0 clamp(8rem,16vw,14rem);display:grid}.detail-image{width:min(75vw,67.5rem);margin:0 auto}.detail-image:nth-child(2n){width:min(62vw,55rem);margin-right:max(0rem,9vw)}.detail-image:nth-child(3n){width:min(68vw,62rem);margin-left:max(0rem,8vw)}.detail-image img{width:100%;height:auto;display:block}.detail-image-button{cursor:zoom-in;background:0 0;border:0;width:100%;padding:0;display:block}.detail-image-button:focus-visible{outline-offset:6px;outline:2px solid #fff}.photo-viewer{color:#fff;overscroll-behavior:contain;background:#0b0b0bfa;border:0;width:100%;max-width:none;height:100dvh;max-height:none;margin:0;padding:9rem 5rem 4rem;position:fixed;inset:0;overflow:hidden}.photo-viewer[open]{justify-content:center;align-items:center;display:flex}.photo-viewer::backdrop{background:#0b0b0b}.photo-viewer img{object-fit:contain;max-width:100%;max-height:100%;display:block}.photo-viewer-stage{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative}.photo-viewer-outgoing{pointer-events:none;margin:auto;animation:.4s both photo-depart;position:absolute;inset:0}.photo-viewer-placeholder{margin:auto;position:absolute;inset:0}.photo-viewer-resolution{color:#ccc;font-size:.8rem;position:absolute;bottom:3.5rem}.photo-viewer-incoming{animation:.4s cubic-bezier(.22,1,.36,1) both photo-arrive}@keyframes photo-arrive{0%{opacity:0;transform:translateX(calc(var(--photo-direction) * 24px))}to{opacity:1;transform:translate(0)}}@keyframes photo-depart{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translateX(calc(var(--photo-direction) * -24px))}}.photo-arrow{z-index:2;width:44px;height:44px;color:inherit;opacity:.55;cursor:pointer;background:0 0;border:0;place-items:center;padding:0;transition:opacity .18s;display:grid;position:absolute;top:50%}.photo-arrow-previous{left:1.5rem}.photo-arrow-next{right:1.5rem}.photo-arrow:hover,.photo-arrow:focus-visible{opacity:1}.photo-arrow svg{transition:transform .18s}.photo-arrow-previous:hover svg{transform:translate(-3px)}.photo-arrow-next:hover svg{transform:translate(3px)}.photo-viewer-count{letter-spacing:.06em;opacity:.45;margin:0;font-size:.625rem;position:absolute;bottom:1.5rem;left:50%;transform:translate(-50%)}@media (prefers-reduced-motion:reduce){.photo-viewer-incoming{animation:none}.photo-viewer-outgoing{display:none}.photo-arrow,.photo-arrow svg{transition:none}.photo-arrow:hover svg{transform:none}}.detail-footer{text-align:center;place-content:start center;min-height:35svh;padding-top:2rem;display:grid;position:relative}.detail-footer p,.detail-footer span{margin:0;font-weight:400}.detail-footer p{letter-spacing:-.07em;font-size:clamp(4.5rem,9vw,8.5rem);line-height:.95}.detail-footer span{font-family:inherit;font-size:clamp(1.5rem,2.2vw,2.25rem)}.detail-footer i{background:#ffffff40;width:2px;height:10svh;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.detail-footer b{background:#fff;width:100%;position:absolute;bottom:0;left:0}@media (width<=799px){.portfolio-scene{touch-action:pan-x pinch-zoom}.detail-gallery{padding-bottom:4rem}.detail-footer{min-height:26svh}.detail-footer i{height:6svh}.portfolio-detail.is-leaving{transition-duration:.3s,.35s}.home-header{padding:1rem}.brand{font-size:1.3rem}.gallery-control{font-size:1.5rem}.contact{font-size:1rem;line-height:1.3}.detail-close{top:1rem;right:1rem}.site-home-link{top:1rem;left:1rem}.photo-viewer{padding:6rem 1rem 5.5rem}.photo-arrow{top:auto;bottom:.9rem}.photo-arrow-previous{left:calc(50% - 6rem)}.photo-arrow-next{right:calc(50% - 6rem)}.photo-viewer-count{bottom:1.85rem}.detail-main{padding:7rem 1rem 0}.detail-main h1,.detail-image,.detail-image:nth-child(2n),.detail-image:nth-child(3n){width:100%;margin-left:0;margin-right:0}.gallery-index-list{width:calc(100% - 2rem);padding-top:8rem}.gallery-project{grid-template-columns:minmax(0,1fr) minmax(6rem,.55fr);grid-template-areas:"title title""cover stack";gap:1.25rem 1.5rem;min-height:0;padding:3rem 0}.gallery-project-info{grid-area:title}.gallery-project-title{max-width:none}.gallery-project-cover{grid-area:cover;width:min(100%,17rem)}.gallery-project-stack{grid-area:stack;width:calc(100% - 2rem)}}@media (prefers-reduced-motion:reduce){.portfolio-scene{transition:none}.gallery-index-list{animation:none}}.ambient-music{z-index:5;color:#fff;mix-blend-mode:difference;position:fixed;bottom:.85rem;right:2.5rem}.home-scroll-hint{z-index:2;color:#fff;mix-blend-mode:difference;letter-spacing:.035em;white-space:nowrap;pointer-events:none;opacity:0;margin:0;font-size:.625rem;font-weight:400;transition:opacity .7s;position:fixed;bottom:1.3rem;left:50%;transform:translate(-50%)}.home-scroll-hint.is-visible{opacity:.38}@media (prefers-reduced-motion:reduce){.home-scroll-hint{transition:none}}.ambient-music-control{min-height:24px;color:inherit;letter-spacing:.015em;opacity:.38;cursor:pointer;background:0 0;border:0;align-items:center;gap:.3rem;padding:0;font-size:.5625rem;font-weight:400;line-height:1;transition:opacity .16s;display:flex}.ambient-music-control:hover,.ambient-music-control:focus-visible{opacity:1}.ambient-music-control:focus-visible{outline-offset:5px;outline:1px solid}.ambient-music-control:disabled{cursor:default}.music-space-key{justify-content:center;align-items:center;width:20px;height:9px;display:inline-flex}@media (width<=799px){.home-header{padding-bottom:3rem}.ambient-music{bottom:.8rem;right:1rem}.ambient-music-control{min-height:28px}}@media (hover:none) and (pointer:coarse){.music-keyboard-hint,.music-space-key{display:none}.ambient-music-control{min-height:32px}}
