/* Direct, continuous movement through the page and the real project photos. */
html{scroll-behavior:auto}
.brand-wordmark{display:block;font-size:29px;font-weight:800;letter-spacing:-.075em;line-height:1.2;white-space:nowrap}
.footer-brand{font-size:25px;letter-spacing:-.065em}
.portfolio-track,.studio-images,.gallery-track,.gallery-thumbnails{overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.portfolio-track{scrollbar-width:thin;scrollbar-color:#82796a #e4e0d7;padding-bottom:18px}
.portfolio-track::-webkit-scrollbar,.gallery-thumbnails::-webkit-scrollbar{display:block;height:7px}
.portfolio-track::-webkit-scrollbar-track,.gallery-thumbnails::-webkit-scrollbar-track{background:#e4e0d7}
.portfolio-track::-webkit-scrollbar-thumb,.gallery-thumbnails::-webkit-scrollbar-thumb{background:#82796a;border:1px solid #e4e0d7;border-radius:10px}
.is-sliding,.is-dragging{scroll-snap-type:none!important}
.is-dragging,.is-dragging *{cursor:grabbing!important;user-select:none}
.photo-scrubber{margin-top:17px;--slider-fill:0%}
.photo-scrubber[hidden]{display:none}
.photo-scrubber label{display:flex;justify-content:space-between;gap:20px;align-items:center;color:#625e55;font-size:12px;font-weight:450}
.photo-scrubber label>span{font-size:11px;font-weight:400;color:#6e6a61}
.photo-scrubber output{font-size:11px;font-variant-numeric:tabular-nums;color:#625e55}
.photo-scrubber input[type=range]{display:block;width:100%;height:44px;margin:0;padding:0;border:0;background:transparent;accent-color:#625e55;cursor:ew-resize;appearance:none;-webkit-appearance:none}
.photo-scrubber input[type=range]::-webkit-slider-runnable-track{height:3px;background:linear-gradient(to right,#625e55 var(--slider-fill),#d6cfc2 var(--slider-fill));border-radius:2px}
.photo-scrubber input[type=range]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:50px;height:13px;background:#625e55;border:3px solid var(--paper);border-radius:2px;margin-top:-5px;box-shadow:0 0 0 1px #625e5533}
.photo-scrubber input[type=range]::-moz-range-track{height:3px;background:#d6cfc2}
.photo-scrubber input[type=range]::-moz-range-progress{height:3px;background:#625e55}
.photo-scrubber input[type=range]::-moz-range-thumb{width:44px;height:9px;background:#625e55;border:2px solid var(--paper);border-radius:2px}
.photo-scrubber input:disabled{opacity:.45;cursor:default}
.portfolio-bottom{margin-top:8px}
.gallery-main{overflow:hidden}
.gallery-track{display:flex;width:100%;height:100%;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;touch-action:pan-x pan-y}
.gallery-track::-webkit-scrollbar{display:none}
.gallery-slide{margin:0;flex:0 0 100%;height:100%;min-width:0;scroll-snap-align:start;scroll-snap-stop:always;position:relative}
.gallery-slide img{width:100%;height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none;background:#e6e1d7}
.gallery-slide img[hidden],.gallery-thumb img[hidden]{display:none}
.photo-unavailable{display:flex;height:100%;align-items:center;justify-content:center;padding:40px;text-align:center;font-size:17px;color:#625e55}
.thumb-fallback{display:grid;place-items:center;height:100%;font-size:16px;font-weight:450}
.gallery-arrow{z-index:2;transition:background .25s,opacity .25s;width:44px;height:44px}
.gallery-arrow:disabled{opacity:.35;cursor:default}
#gallery-counter{pointer-events:none;z-index:2;white-space:nowrap}
.gallery-thumbnails{scrollbar-width:thin;scrollbar-color:#82796a #e4e0d7;scroll-snap-type:x proximity;padding-bottom:9px}
.gallery-thumb{scroll-snap-align:center;transition:opacity .3s,border-color .3s}
.gallery-scrubber{margin-top:14px}
.gallery-scrubber+ .gallery-thumbnails{margin-top:1px}
.project-dialog[open],.privacy-dialog[open]{animation:dialog-slide-in .48s cubic-bezier(.2,.75,.2,1) both}
dialog.is-closing{animation:dialog-slide-out .24s ease both;pointer-events:none}
.mobile-menu:not([hidden]){animation:menu-slide-in .3s ease both}
.project-card{animation:card-slide-in .45s cubic-bezier(.2,.75,.2,1) both;animation-delay:var(--card-delay,0ms)}
details[open]>p{animation:copy-slide-in .32s ease both}
@keyframes dialog-slide-in{from{opacity:0;transform:translateY(42px)}to{opacity:1;transform:translateY(0)}}
@keyframes dialog-slide-out{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(28px)}}
@keyframes menu-slide-in{from{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:translateY(0)}}
@keyframes card-slide-in{from{opacity:0;transform:translateX(22px)}to{opacity:1;transform:translateX(0)}}
@keyframes copy-slide-in{from{opacity:0;transform:translateY(-9px)}to{opacity:1;transform:translateY(0)}}
@media(hover:hover) and (pointer:fine){.portfolio-track:not(.expanded),.gallery-track{cursor:grab}.project-card-button{cursor:inherit}.project-card-button:focus-visible{outline-offset:-3px}}
@media(max-width:640px){.brand-wordmark{font-size:24px}.photo-scrubber label{font-size:12px}.photo-scrubber label>span{font-size:10px}.portfolio-scrubber label>span{max-width:135px;text-align:right}.studio-images{scrollbar-width:thin;scrollbar-color:#82796a #e4e0d7;padding-bottom:12px}.studio-images::-webkit-scrollbar{display:block;height:4px}.studio-images::-webkit-scrollbar-thumb{background:#82796a}.studio-images::-webkit-scrollbar-track{background:#e4e0d7}.gallery-main{height:min(48dvh,490px)}.gallery-arrow{width:44px;height:44px}.gallery-scrubber{margin-top:10px}.portfolio-track{padding-bottom:14px}}
@media(max-width:360px){.brand-wordmark{font-size:21px}.header-inner{gap:10px}.photo-scrubber label>span{font-size:10px}}
@media print{.photo-scrubber{display:none}}
