.contactSection{border-top:1px solid var(--border)}.contactSection h2{margin-top:1rem}.contactSection h2 em{color:var(--accent);font-family:var(--font-serif);font-weight:500}.socials{color:var(--secondary);font-family:var(--font-mono);gap:1.5rem;margin-top:2rem;font-size:.75rem;display:flex}.socials a{align-items:center;gap:.5rem;display:inline-flex}
.siteFooter{border-top:1px solid var(--border);width:min(100% - 3rem,72rem);color:var(--secondary);font-family:var(--font-mono);justify-content:space-between;margin:0 auto;padding:2rem 0 3rem;font-size:.68rem;display:flex}@media (max-width:700px){.siteFooter{flex-direction:column;gap:.5rem;width:min(100% - 2rem,72rem)}}
.devHero{width:min(100% - 3rem,72rem);margin:0 auto;padding:7rem 0 8rem}.devHero h1{margin-top:1.25rem}.heroLead{max-width:34rem;color:var(--secondary);margin-top:2rem;font-size:1.2rem}.heroActions{flex-wrap:wrap;gap:.75rem;margin-top:2.5rem;display:flex}.solidButton,.outlineButton{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:.5rem;padding:.8rem 1rem;font-size:.7rem;display:inline-flex}.solidButton{background:var(--accent);color:#06241c}.outlineButton{border:1px solid var(--border);color:var(--primary)}.outlineButton:hover{border-color:var(--accent);color:var(--accent)}@media (max-width:700px){.devHero{width:min(100% - 2rem,72rem);padding:5rem 0 4rem}}
.introCopy{max-width:48rem;margin-top:.75rem}
.mockWindow{border:1px solid var(--border);background:color-mix(in oklab,var(--surface)88%,transparent);height:100%;transition:border-color .18s,transform .18s}.mockWindow:hover{border-color:color-mix(in oklab,var(--accent)55%,transparent);transform:translateY(-3px)}.mockChrome{border-bottom:1px solid var(--border);align-items:center;gap:.35rem;padding:.7rem .8rem;display:flex}.mockChrome i{background:var(--border);border-radius:50%;width:.45rem;height:.45rem}.mockChrome span{color:var(--secondary);font-family:var(--font-mono);margin-left:auto;font-size:.65rem}.projectBody{grid-template-columns:3rem 1fr;gap:1rem;padding:1.5rem;display:grid}.projectIndex{color:var(--accent);font-family:var(--font-mono);font-size:.75rem}.projectBody h3{font-family:var(--font-display);font-size:1.65rem}.projectBody p{color:var(--secondary);margin-top:.7rem;font-size:.9rem;line-height:1.6}.projectBody small{color:var(--secondary);font-family:var(--font-mono);margin-top:1rem;font-size:.65rem;display:block}.projectLinks{gap:1rem;margin-top:1.25rem;display:flex}.projectBody a{color:var(--accent);display:inline-flex}
.sectionHeading{justify-content:space-between;align-items:end;gap:1rem;margin-bottom:2.5rem;display:flex}.sectionHeading h2{margin-top:.75rem}.projectGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;list-style:none;display:grid}@media (max-width:700px){.projectGrid{grid-template-columns:1fr}}
.stackGrid{background:var(--border);grid-template-columns:repeat(5,1fr);gap:1px;margin-top:2.5rem;list-style:none;display:grid}.stackGrid li{background:var(--background);min-height:8rem;padding:1.25rem}.stackGrid li:hover{background:var(--surface)}.stackGrid strong{font-family:var(--font-display);font-size:1.1rem;display:block}.stackGrid span{color:var(--secondary);margin-top:.65rem;font-size:.75rem;display:block}@media (max-width:700px){.stackGrid{grid-template-columns:repeat(2,1fr)}.stackGrid li{min-height:7rem;padding:1rem}}
.entryMobile{display:none}.entrySlider{-webkit-user-select:none;user-select:none;cursor:ew-resize;background:var(--ink);height:100dvh;display:block;position:relative;overflow:hidden}.entrySliderLocked{pointer-events:none}.entrySliderCode,.entrySliderLens{transition:none;position:absolute;inset:0;overflow:hidden}.entrySliderCode{z-index:1;color:var(--paper);background:#0b0c10}.entrySliderLens{z-index:2;color:var(--paper)}.entrySliderLens>img,.entrySliderLens>i{width:100%;height:100%;position:absolute;inset:0}.entrySliderLens>img{object-fit:cover}.entrySliderLens>i{background:linear-gradient(90deg,#0b0c1040,#0b0c1094)}.entrySliderContent{flex-direction:column;justify-content:space-between;height:100%;padding:3rem;display:flex;position:relative}.entrySliderCodeContent{padding-right:20%}.entrySliderLensContent{text-align:right;padding-left:20%}.entrySliderTop{color:#f3eee68c;font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;justify-content:space-between;gap:1rem;font-size:.7rem;display:flex}.entrySliderTop span:first-child,.entrySliderContent>div:last-child b{color:var(--accent)}.entrySliderLens .entrySliderTop span:first-child,.entrySliderLensContent>div:last-child b{color:#f3eee6b3}.entrySliderContent>div:last-child b{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;margin-bottom:.8rem;font-size:.75rem;display:block}.entrySliderContent strong{font-family:var(--font-display);letter-spacing:-.06em;font-size:clamp(4rem,10vw,9rem);line-height:.85;display:block}.entrySliderLensContent strong{font-family:var(--font-serif);font-style:italic;font-weight:500}.entrySliderContent p{color:#f3eee6b3;max-width:26rem;margin-top:1.5rem;font-size:1rem}.entrySliderLensContent p{color:#f3eee6cc;margin-left:auto}.entrySliderContent button{color:var(--accent);font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;border:1px solid #2ee6b073;align-self:flex-start;margin-top:0;padding:.8rem 1.2rem;font-size:.7rem;transition:background-color .18s,color .18s}.entrySliderContent button:hover{background:var(--accent);color:var(--ink)}.entrySliderLensContent button{color:var(--paper);border-color:#f3eee680;align-self:flex-end}.entrySliderLensContent button:hover{background:var(--paper);color:var(--ink)}.entrySliderHandle{z-index:4;align-items:center;transition:none;display:flex;position:absolute;top:0;bottom:0;transform:translate(-50%)}.entrySliderLocked .entrySliderCode,.entrySliderLocked .entrySliderLens,.entrySliderLocked .entrySliderHandle{transition:clip-path .62s var(--ease-out),left .62s var(--ease-out)}.entrySliderLine{background:var(--paper);width:2px;height:100%;box-shadow:0 0 0 1px #0b0c1033}.entrySliderKnob{background:var(--paper);width:44px;height:44px;color:var(--ink);border-radius:50%;place-items:center;font-size:1.1rem;display:grid;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0b0c1047}@media (max-width:700px){.entrySlider{display:none}.entryMobile{flex-direction:column;min-height:100dvh;display:flex}.entryMobile button{min-height:50dvh;color:var(--paper);text-align:left;flex-direction:column;flex:1;justify-content:space-between;padding:1.5rem;display:flex;position:relative;overflow:hidden}.entryMobile button>span,.entryMobile button>div{z-index:2;position:relative}.entryMobile button>span{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;font-size:.7rem}.entryMobile button b{color:var(--accent);font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;margin-bottom:.75rem;font-size:.75rem;display:block}.entryMobile button strong{font-family:var(--font-display);letter-spacing:-.06em;font-size:clamp(3.5rem,18vw,6rem);line-height:.85;display:block}.entryMobile button p{color:#f3eee6bf;max-width:22rem;margin-top:1rem}.entryMobileCode{background:var(--ink)}.entryMobileLens{background:#27211e}.entryMobileLens img,.entryMobileLens i{width:100%;height:100%;position:absolute;inset:0}.entryMobileLens img{object-fit:cover}.entryMobileLens i{background:#0b0c106b}.entryMobileLens b{color:var(--paper)!important}}
.siteHeader{--header-bg:var(--background);z-index:40;border-bottom:1px solid var(--border);background:var(--header-bg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);justify-content:space-between;align-items:center;gap:1rem;min-height:4rem;padding:0 max(1.5rem,50% - 36rem);transition:background-color .25s;display:flex;position:sticky;top:0}html[data-scrolled=true] .siteHeader{background:color-mix(in oklab,var(--header-bg)78%,transparent)}.siteHeader>a{letter-spacing:.02em;font-weight:600}.siteHeader nav{gap:1.25rem;display:flex}.siteHeader nav a{color:var(--secondary);font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;font-size:12px;transition:color .18s}.siteHeader nav a:hover{color:var(--primary)}.modeToggle{--toggle-pad:.3rem;--toggle-gap:.2rem;gap:var(--toggle-gap);padding:var(--toggle-pad);border:1px solid var(--border);border-radius:999px;grid-template-columns:1fr 1fr;display:grid;position:relative}.modeToggle:before{top:var(--toggle-pad);bottom:var(--toggle-pad);left:var(--toggle-pad);width:calc((100% - 2*var(--toggle-pad) - var(--toggle-gap))/2);background:var(--accent);content:"";transition:transform .38s var(--ease-out),background-color .38s ease;border-radius:999px;position:absolute}.modeToggle[data-mode=photo]:before{background:var(--clay);transform:translateX(calc(100% + var(--toggle-gap)))}.modeToggle button{min-width:4.4rem;height:2.2rem;color:var(--secondary);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;border-radius:999px;padding:0 1rem;font-size:12px;transition:color .38s;position:relative}.modeToggle button.selected{color:#06241c}.modeToggle button.photoSelected{color:var(--paper)}.siteHeader.photoHeader{--primary:var(--ink);--secondary:#3a312a;--border:color-mix(in oklab,var(--ink)28%,transparent);--header-bg:#f3eee6;color:var(--ink)}.siteHeader.photoHeader>a{font-size:20px}.siteHeader.photoHeader nav a{font-family:var(--font-serif)}.siteHeader.photoHeader nav a:hover{color:var(--clay)}.siteHeader.photoHeader .modeToggle button{font-family:var(--font-body)}@media (prefers-reduced-motion:reduce){.modeToggle:before,.modeToggle button{transition:none}}@media (max-width:700px){.siteHeader{padding:0 1rem}.siteHeader nav{display:none}}
.lightbox{z-index:60;color:var(--paper);background:#161310;flex-direction:column;justify-content:space-between;padding:1rem 1.5rem;display:flex;position:fixed;inset:0}.lightbox>div,.lightbox>footer{font-family:var(--font-mono);justify-content:space-between;align-items:center;gap:1rem;font-size:.7rem;display:flex}.lightbox button{color:inherit}.lightboxClose{border-radius:999px;place-items:center;width:3.5rem;height:3.5rem;font-size:2rem;transition:background .18s;display:grid}.lightboxClose:hover,.lightboxArrow:hover{background:#f3eee629}.lightboxArrow{z-index:2;background:#16131099;border-radius:999px;place-items:center;width:3.5rem;height:3.5rem;font-size:1.5rem;transition:background .18s;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.lightboxPrev{left:.5rem}.lightboxNext{right:.5rem}.lightboxImage{flex:1;place-items:center;min-height:0;padding:1rem;display:grid;position:relative}.lightboxImage img{object-fit:contain;max-width:100%;max-height:calc(100dvh - 9rem)}.lightbox footer{padding:1rem 0}.lightboxCaption{flex-direction:column;gap:.25rem;display:flex}.lightbox footer strong{font-family:var(--font-serif);font-size:1.5rem;font-style:italic}.lightboxCaption>span{color:#f3eee699}.lightboxMeta{color:#f3eee6d1;text-align:right;flex-wrap:wrap;justify-content:flex-end;gap:.75rem 1.25rem;max-width:65%;display:flex}.lightboxMeta span{flex-direction:column;gap:.15rem;display:flex}.lightboxMeta small{color:#f3eee673;letter-spacing:.12em;text-transform:uppercase;font-size:.58rem}
.filmStrip{cursor:grab;touch-action:pan-y;-webkit-user-select:none;user-select:none;background:#161310;overflow:hidden}.filmStrip.filmStripDragging{cursor:grabbing}.filmStripTrack{will-change:transform;width:max-content;padding:1.5rem 0;display:flex;position:relative}.filmStripTrack:before,.filmStripTrack:after{content:"";pointer-events:none;background:radial-gradient(circle,#fff .2rem,#0000 calc(.2rem + .5px)) 0 0/1.6875rem 1.5rem repeat-x;height:1.5rem;position:absolute;left:0;right:0}.filmStripTrack:before{top:0}.filmStripTrack:after{bottom:0}.filmStrip button{flex:0 0 13rem;height:9rem;margin-right:.5rem;position:relative;overflow:hidden}.filmStrip img{object-fit:cover;pointer-events:none;width:100%;height:100%}.filmStrip span{color:var(--paper);font-family:var(--font-mono);font-size:.65rem;position:absolute;top:.5rem;left:.5rem}
.galleryGrid{grid-template-columns:repeat(12,1fr);gap:1rem;margin-top:2.5rem;display:grid}.galleryItem{background:var(--surface);min-height:16rem;position:relative;overflow:hidden;container-type:inline-size}.galleryItem img{object-fit:cover;width:100%;height:100%;transition:transform .7s var(--ease-out)}.galleryItem:hover img{transform:scale(1.06)}.galleryItem .galleryOverlay{z-index:2;opacity:0;color:var(--paper);background:linear-gradient(#0000,#0c0a08b8);justify-content:space-between;align-items:flex-end;padding:1rem;transition:opacity .18s,transform .18s;display:flex;position:absolute;bottom:0;left:0;right:0;transform:translateY(.5rem)}.galleryItem .galleryTitle{text-align:left;min-width:0}.galleryItem .galleryExif{width:50%;min-width:0;color:var(--paper);font-family:var(--font-mono);text-align:right;text-transform:none;white-space:normal;flex-direction:column;align-items:flex-end;gap:.15rem;padding:0;font-size:.6rem;line-height:1.4;display:flex;overflow:hidden}.galleryItem:hover .galleryOverlay{opacity:1;transform:translateY(0)}@container (max-width:14rem){.galleryItem .galleryOverlay{display:none}}.galleryItem em{font-family:var(--font-serif);font-size:1.2rem}.galleryItem small{font-family:var(--font-mono);text-transform:uppercase;align-self:end;font-size:.6rem}.gallery-0{grid-column:span 7;height:32rem}.gallery-1{grid-column:span 5;height:32rem}.gallery-2{grid-column:span 12;height:24rem}.gallery-3{grid-column:span 4;height:22rem}.gallery-4{grid-column:span 8;height:22rem}.gallery-5,.gallery-6,.gallery-7{grid-column:span 4;height:28rem}.gallery-8,.gallery-9{grid-column:span 6;height:20rem}@media (max-width:700px){.galleryGrid{grid-template-columns:repeat(2,1fr)}.galleryItem{grid-column:span 1!important;height:14rem!important}.gallery-0,.gallery-2{grid-column:span 2!important}}
.photoContact{padding-top:1rem;padding-bottom:8rem}.photoContact h2{margin-top:1rem}@media (max-width:700px){.photoContact{padding-top:.5rem;padding-bottom:3.5rem}}
.photoHero{width:100%;height:78dvh;min-height:32rem;color:var(--paper);text-align:left;position:relative;overflow:hidden}.photoHero img,.photoHero i{width:100%;height:100%;position:absolute;inset:0}.photoHero img{object-fit:cover;transition:transform .7s var(--ease-out);transform:scale(1.02)}.photoHero:hover img{transform:scale(1.07)}.photoHero i{background:linear-gradient(#0000 40%,#0c0a08c2)}.photoHero div{padding:2rem max(1.5rem,50% - 36rem);position:absolute;bottom:0;left:0;right:0}.photoHero .kicker{color:#f3eee6b3}.photoHero h1{margin-top:.75rem}.photoHero p:last-child{color:#f3eee6cc;max-width:30rem;font-family:var(--font-serif);margin-top:.75rem;font-size:1.15rem}@media (max-width:700px){.photoHero{min-height:28rem}.photoHero div{padding:1.5rem}}
.photoIntro{color:var(--primary)}
.photoView{--background:#f3eee6;--primary:#1c1612;--secondary:#6e6258;--border:color-mix(in oklab,var(--primary)14%,transparent);--surface:#eae3d8;min-height:100dvh;color:var(--primary);background:radial-gradient(at 20% 0,#f7f2ea,#efe8dc 55%,#eadfce)}
.pageRoot{min-height:100dvh;position:relative}.scroll-progress{z-index:50;pointer-events:none;width:100%;height:2px;transform:scaleX(var(--progress,0));transform-origin:0;background:var(--accent);position:fixed;top:0;left:0}
