:root{--font-display:"Cormorant Garamond", Georgia, "Times New Roman", serif;--font-body:"Source Sans 3", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:ui-monospace, "Cascadia Mono", Consolas, monospace;font-family:var(--font-body);letter-spacing:.01em;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:18px;line-height:1.55}@media (width<=1024px){:root{font-size:16px}}:root:not([data-theme]),:root[data-theme=light]{--bg:#fff;--bg-page:#f4f4f2;--text:#57534e;--text-strong:#1c1917;--muted:#78716c;--accent:#0c8b8b;--hairline:color-mix(in oklab, var(--text-strong) 8%, transparent);--skeleton:#ececea;--frame-shadow:0 8px 32px #1c19170f;--collections-scrim:#040404;--collections-overlay-fg:#fff;--collections-overlay-fg-muted:#ffffffd1;color:var(--text);background:var(--bg-page);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light only}:root[data-theme=dark]{--bg:#141413;--bg-page:#0c0c0b;--text:#a8a29e;--text-strong:#fafaf9;--muted:#78716c;--accent:#5eead4;--hairline:color-mix(in oklab, var(--text-strong) 11%, transparent);--skeleton:#1c1c1a;--frame-shadow:0 12px 40px #00000059;--collections-scrim:#060606;--collections-overlay-fg:#fffffff5;--collections-overlay-fg-muted:#ffffffc7;color:var(--text);background:var(--bg-page);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark only}#root{box-sizing:border-box;background:var(--bg);width:100%;min-height:100svh;margin:0 auto}html{scrollbar-gutter:stable}body{margin:0}h1,h2{font-family:var(--font-display);color:var(--text-strong);font-weight:600}.portfolio{text-align:left;max-width:1420px;margin:0 auto;padding:clamp(1rem,3vw,1.65rem) clamp(1.25rem,4vw,2.75rem) clamp(2.25rem,6vw,3.75rem);position:relative}.skip-link{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link:focus{z-index:10001;clip:auto;width:auto;height:auto;font:inherit;letter-spacing:.02em;color:var(--text-strong);background:var(--bg);border:1px solid var(--hairline);box-shadow:var(--frame-shadow);border-radius:10px;margin:0;padding:.55rem 1rem;font-size:.9rem;font-weight:600;text-decoration:none;position:fixed;top:1rem;left:1rem;overflow:visible}.portfolio-main:focus{outline:none}.portfolio-main:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.theme-toggle{flex-wrap:wrap;align-items:baseline;gap:.35rem 1.35rem;display:inline-flex}.theme-toggle-option{font:inherit;letter-spacing:.01em;text-transform:none;color:var(--muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:.38rem;margin:0;padding:.35rem 0;font-size:.88rem;font-weight:500;transition:color .2s,border-color .2s;display:inline-flex}.theme-toggle-option:hover{color:var(--text-strong)}.theme-toggle-option-active{color:var(--text-strong);border-bottom-color:color-mix(in oklab, var(--accent) 75%, var(--text-strong))}.theme-toggle-option:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.theme-toggle-icon{opacity:.92;flex-shrink:0;justify-content:center;align-items:center;display:flex}.theme-toggle-icon svg{vertical-align:middle;width:1rem;height:1rem}.theme-toggle-label{display:inline}.portfolio-head-tools{justify-content:flex-end;align-items:center;gap:.75rem 1rem;width:100%;margin:0 0 clamp(.25rem,1vw,.5rem);display:flex}.portfolio-hero{margin-bottom:clamp(.45rem,1.4vw,.75rem)}.portfolio-intro{border-bottom:1px solid var(--hairline);margin-bottom:clamp(.5rem,1.5vw,.85rem);padding-bottom:clamp(.65rem,1.8vw,1rem)}.portfolio-intro-split{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:end;gap:clamp(.85rem,2vw,1.35rem) clamp(1rem,3vw,2.25rem);display:grid}@media (width<=52rem){.portfolio-intro-split{grid-template-columns:1fr;align-items:start;gap:.85rem}}.gallery-toolbar-section{z-index:40;margin-top:clamp(.35rem,1vw,.55rem);position:relative}.gallery-toolbar{background:0 0;border:none;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"search theme""sort menu";align-items:center;gap:.4rem .75rem;margin:0;padding:0;display:grid}.gallery-toolbar-search{grid-area:search;min-width:0}.gallery-toolbar-theme{flex-wrap:wrap;flex-shrink:0;grid-area:theme;justify-content:flex-end;justify-self:end;align-items:center;gap:.4rem .5rem;display:flex}.gallery-toolbar-sort{grid-area:sort;align-items:center;gap:.4rem .65rem;min-width:0;display:none}.gallery-toolbar-sort-fallback,.gallery-toolbar-sort-has-filters{display:flex}.gallery-toolbar-menu{flex-wrap:wrap;grid-area:menu;justify-content:flex-end;justify-self:end;align-items:center;gap:.4rem .5rem;display:flex}.gallery-toolbar-filters-anchor{display:inline-flex;position:relative}.gallery-toolbar-btn{border:1px solid color-mix(in oklab, var(--hairline) 82%, transparent);background:color-mix(in oklab, var(--text-strong) 4%, transparent);font:inherit;letter-spacing:.02em;color:var(--text-strong);cursor:pointer;border-radius:999px;align-items:center;gap:.35rem;margin:0;padding:.3rem .65rem;font-size:.8rem;font-weight:600;transition:border-color .2s,background .2s,color .2s;display:inline-flex}.gallery-toolbar-btn:hover{border-color:color-mix(in oklab, var(--accent) 35%, var(--hairline));background:color-mix(in oklab, var(--accent) 8%, var(--bg))}.gallery-toolbar-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.gallery-toolbar-btn-muted{color:var(--muted);background:0 0;font-weight:550}.gallery-toolbar-btn-muted:hover{color:var(--text-strong)}.gallery-toolbar-btn-active{border-color:color-mix(in oklab, var(--accent) 50%, var(--hairline));background:color-mix(in oklab, var(--accent) 12%, var(--bg));color:var(--text-strong)}.gallery-toolbar-btn-dot{background:var(--accent);border-radius:50%;width:.35rem;height:.35rem}.theme-toggle-compact{gap:.15rem}.theme-toggle-compact .theme-toggle-option{padding:.28rem .2rem}.theme-toggle-compact .theme-toggle-icon svg{width:1.05rem;height:1.05rem}.gallery-filters-panel-sort{border-bottom:1px solid color-mix(in oklab, var(--hairline) 75%, transparent);margin-bottom:.15rem;padding-bottom:.65rem;display:none}@media (width>=900px){.gallery-toolbar{flex-flow:wrap;align-items:center;gap:.5rem 1.1rem;display:flex}.gallery-toolbar-search{flex:12rem;min-width:min(100%,14rem);max-width:28rem}.gallery-toolbar-sort{flex-shrink:0;align-items:center;gap:.35rem .75rem;display:flex}.gallery-toolbar-menu{border-left:1px solid color-mix(in oklab, var(--hairline) 65%, transparent);flex:none;justify-self:auto;margin-left:.15rem;padding-left:.9rem}.gallery-toolbar-theme{flex:none;justify-self:auto;margin-left:auto}.gallery-toolbar .sort-order-toolbar{gap:.35rem .65rem}.gallery-toolbar .sort-order-nav{gap:.25rem .85rem}.gallery-toolbar .sort-order-nav .tag-link{font-size:.86rem}}.gallery-filters-btn{border:1px solid color-mix(in oklab, var(--hairline) 88%, transparent);background:color-mix(in oklab, var(--bg) 55%, transparent);font:inherit;letter-spacing:.02em;color:var(--text-strong);cursor:pointer;border-radius:8px;flex-shrink:0;align-items:center;gap:.4rem;margin:0;padding:.38rem .7rem;font-size:.84rem;font-weight:600;transition:border-color .2s,background .2s;display:inline-flex}.gallery-filters-btn:hover{border-color:color-mix(in oklab, var(--accent) 35%, var(--hairline))}.gallery-filters-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.gallery-filters-btn-open{border-color:color-mix(in oklab, var(--accent) 45%, var(--hairline));background:color-mix(in oklab, var(--accent) 10%, var(--bg))}.gallery-filters-btn-badge{background:var(--accent);border-radius:50%;width:.45rem;height:.45rem}.gallery-filters-root{display:none}.gallery-filters-root-open{display:block}.gallery-filters-backdrop{z-index:35;cursor:default;background:color-mix(in oklab, var(--bg) 32%, transparent);-webkit-backdrop-filter:blur(2px);border:none;padding:0;display:none;position:fixed;inset:0}.gallery-filters-root-open .gallery-filters-backdrop{display:block}.gallery-filters-panel{z-index:45;position:relative}.gallery-filters-panel-inner{border:1px solid color-mix(in oklab, var(--hairline) 88%, transparent);background:var(--bg);box-shadow:var(--frame-shadow);border-radius:12px;overflow:hidden}.gallery-filters-panel-footer{border-top:1px solid color-mix(in oklab, var(--hairline) 75%, transparent);background:color-mix(in oklab, var(--hairline) 8%, var(--bg));justify-content:flex-end;padding:.6rem .75rem;display:flex}.gallery-filters-panel-footer .gallery-clear-btn{text-align:center;width:100%}.gallery-filters-panel .filter-collapsible{flex-direction:column;display:flex}.gallery-filters-panel .filter-collapsible-trigger{background:color-mix(in oklab, var(--hairline) 11%, var(--bg));border-bottom:1px solid color-mix(in oklab, var(--hairline) 75%, transparent);width:100%;min-width:0}.gallery-filters-panel .filter-collapsible:last-child .filter-collapsible-trigger{border-bottom:none}.gallery-filters-panel .filter-collapsible-panel{border:none;border-top:1px solid color-mix(in oklab, var(--hairline) 65%, transparent);width:100%;max-height:none;box-shadow:none;border-radius:0;flex:none;position:static}.gallery-filters-panel .filter-collapsible-panel .tag-bar{flex-direction:column;align-items:stretch;gap:.15rem;padding-left:0}.gallery-filters-panel .filter-collapsible-panel .tag-link{text-align:left;width:100%;padding:.42rem 0}@media (width<=520px){.theme-toggle-label{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.theme-toggle-option{padding:.35rem 0}}.portfolio-header{min-width:0;margin-bottom:0}.portfolio-kicker{letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin:0 0 .35rem;font-size:.72rem;font-weight:600}.portfolio-brand-heading{flex-wrap:wrap;align-items:center;gap:.85rem 1.35rem;margin:0 0 .5rem;display:flex}.portfolio-logo--home{cursor:pointer;border-radius:6px}.portfolio-logo--home:hover{opacity:.88}.portfolio-logo--home:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.portfolio-title-text{font-family:var(--font-display);letter-spacing:-.02em;color:var(--text-strong);margin:0;font-size:clamp(2.35rem,6vw,3.75rem);font-weight:600;line-height:1.08}.portfolio-logo{object-fit:contain;flex-shrink:0;width:auto;max-width:min(92vw,36rem);height:auto;max-height:clamp(2.75rem,10vw,5rem);display:block}:root[data-theme=dark] .portfolio-logo{filter:invert()}.portfolio-header-compact .portfolio-brand-heading{margin-bottom:.35rem}.portfolio-header-compact .portfolio-logo{max-height:clamp(2.5rem,8vw,3.75rem)}.portfolio-header-compact .portfolio-tagline{max-width:28rem;margin-bottom:0;font-size:.98rem;line-height:1.55}.portfolio-tagline{max-width:36rem;color:var(--text);margin:0 0 .6rem;font-size:1.05rem;line-height:1.65}.portfolio-about{max-width:40rem;margin:0 0 clamp(1.25rem,3vw,2rem)}.portfolio-about-aside{justify-self:end;max-width:36rem;margin:0}.portfolio-about-heading{letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin:0 0 .4rem;font-size:.72rem;font-weight:600}@media (width>=52.01rem){.portfolio-about-heading-sr{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}}@media (width<=52rem){.portfolio-about-aside{justify-self:stretch;max-width:none}}.portfolio-about-text{color:var(--muted);margin:0 0 .65rem;font-size:.95rem;line-height:1.6}.portfolio-about-aside .portfolio-about-text:first-of-type{color:var(--text)}.portfolio-about-text:last-child{margin-bottom:0}.gallery-clear-btn{font:inherit;border:1px solid var(--hairline);color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border-radius:999px;padding:.45rem .75rem;font-size:.82rem;font-weight:550}.gallery-clear-btn:hover{color:var(--text-strong);border-color:color-mix(in oklab, var(--accent) 40%, var(--hairline))}.gallery-clear-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.portfolio-rule{background:linear-gradient(90deg, var(--accent), color-mix(in oklab, var(--accent) 30%, transparent));max-width:4rem;height:1px;margin-top:clamp(.85rem,2.2vw,1.25rem)}.filter-section{margin-bottom:clamp(.65rem,1.8vw,1rem)}.filter-section:last-of-type{margin-bottom:clamp(1rem,2.5vw,1.35rem)}.filter-section-heading{font-family:var(--font-body);letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin:0 0 .45rem;font-size:.72rem;font-weight:700}.tag-bar{flex-wrap:wrap;align-items:baseline;gap:.35rem 1.35rem;display:flex}.tag-link{font:inherit;letter-spacing:.01em;text-transform:none;color:var(--muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:.35rem 0;font-size:.88rem;font-weight:500;transition:color .2s,border-color .2s}.tag-link:hover{color:var(--text-strong)}.tag-link-active{color:var(--text-strong);border-bottom-color:color-mix(in oklab, var(--accent) 75%, var(--text-strong))}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.gallery-controls-card{border:1px solid color-mix(in oklab, var(--hairline) 88%, transparent);background:color-mix(in oklab, var(--hairline) 11%, var(--bg));border-radius:10px;overflow:hidden}.gallery-controls-toolbar{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:.65rem 1.15rem;padding:.5rem .7rem;display:flex}.gallery-search-wrap{flex:0 min(20rem,100%);min-width:0}.gallery-search-input{box-sizing:border-box;background:color-mix(in oklab, var(--bg) 55%, transparent);width:100%;box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--hairline) 75%, transparent);color:var(--text);font:inherit;border:1px solid #0000;border-radius:8px;padding:.42rem .75rem;font-size:.9rem;transition:border-color .2s,box-shadow .2s,background .2s}.gallery-search-input:hover{background:color-mix(in oklab, var(--bg) 75%, transparent);box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--accent) 22%, var(--hairline))}.gallery-search-input:focus{background:var(--bg);box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--accent) 40%, var(--hairline)), 0 0 0 2px color-mix(in oklab, var(--accent) 15%, transparent);outline:none}.gallery-toolbar .gallery-search-input{border:none;border-bottom:1px solid color-mix(in oklab, var(--hairline) 80%, transparent);border-radius:0;padding:.32rem 0;font-size:.92rem;box-shadow:none!important;background:0 0!important}.gallery-toolbar .gallery-search-input::placeholder{color:color-mix(in oklab, var(--muted) 88%, transparent)}.gallery-toolbar .gallery-search-input:hover,.gallery-toolbar .gallery-search-input:focus,.gallery-toolbar .gallery-search-input:focus-visible{border-bottom-color:color-mix(in oklab, var(--accent) 45%, var(--hairline));outline:none;box-shadow:none!important;background:0 0!important}.sort-order-toolbar{flex-flow:wrap;flex-shrink:0;align-items:baseline;gap:.45rem .85rem;display:flex}.sort-order-toolbar-label{font-family:var(--font-body);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin:0;padding-bottom:.08rem;font-size:.72rem;font-weight:700}.sort-order-nav{flex-wrap:wrap;justify-content:flex-start;row-gap:.35rem}@media (width>=900px){.portfolio-main{z-index:0;position:relative}.gallery-toolbar-filters-anchor{position:relative}.gallery-toolbar-filters-anchor .gallery-filters-root-open .gallery-filters-panel{width:min(22rem,100vw - 2.5rem);max-height:min(70vh,32rem);position:absolute;top:calc(100% + 6px);left:auto;right:0;overflow-y:auto}}@media (width<=899px){.gallery-filters-root-open{z-index:600;position:fixed;inset:0}.gallery-toolbar-sort-has-filters .sort-order-toolbar{display:none}.gallery-filters-panel-sort{display:block}.gallery-filters-root-open .gallery-filters-panel{max-height:min(88vh,100%);padding:.35rem .5rem .5rem;position:fixed;top:0;left:0;right:0;overflow-y:auto}.gallery-filters-root-open .gallery-filters-panel-inner{border-radius:0 0 14px 14px}.gallery-toolbar-menu{border-left:none;margin-left:0;padding-left:0}.gallery-toolbar:not(:has(.gallery-toolbar-menu)){grid-template-areas:"search theme""sort sort"}.gallery-toolbar:not(:has(.gallery-toolbar-menu)) .gallery-toolbar-sort{justify-self:start}}@media (width<=560px){.gallery-toolbar-menu{gap:.35rem .45rem}.gallery-toolbar-btn{padding:.28rem .55rem;font-size:.78rem}}.gallery-filters-strip{border-top:1px solid color-mix(in oklab, var(--hairline) 75%, transparent);background:color-mix(in oklab, var(--hairline) 70%, transparent);flex-wrap:wrap;align-items:stretch;gap:1px;padding-top:1px;display:flex}.gallery-filters-strip .filter-collapsible{display:contents}.gallery-filters-strip .filter-collapsible-trigger{background:color-mix(in oklab, var(--hairline) 11%, var(--bg));flex:1 1 0;min-width:min(100%,8.5rem)}.gallery-filters-strip .filter-collapsible-panel{background:color-mix(in oklab, var(--hairline) 11%, var(--bg));flex:100%;width:100%}.filter-collapsible{flex-direction:column;align-items:stretch;width:100%;display:flex}.filter-collapsible-trigger{width:100%;font:inherit;text-align:left;cursor:pointer;color:var(--text);background:0 0;border:none;border-radius:0;flex-direction:row;align-items:center;gap:.45rem .55rem;padding:.42rem .65rem;display:flex}.filter-collapsible-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.gallery-filters-strip .filter-collapsible-trigger:hover{background:color-mix(in oklab, var(--hairline) 35%, transparent)}.filter-collapsible-title{font-family:var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);flex:none;font-size:.68rem;font-weight:700}.filter-collapsible-summary{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;flex:auto;font-size:.82rem;font-weight:500;overflow:hidden}.filter-collapsible-chevron{border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);flex:none;width:.45rem;height:.45rem;transition:transform .2s;transform:rotate(45deg)}.filter-collapsible-trigger-open .filter-collapsible-chevron{margin-bottom:.12rem;transform:rotate(-135deg)}.filter-collapsible-panel{background:color-mix(in oklab, var(--bg) 40%, transparent);border-top:1px solid color-mix(in oklab, var(--hairline) 65%, transparent);align-self:stretch;width:100%;padding:0 .65rem clamp(.45rem,1vw,.65rem)}.filter-collapsible-panel .tag-bar{padding-left:.1rem}.collection-view-bar{border:none;border-bottom:1px solid color-mix(in oklab, var(--hairline) 70%, transparent);background:0 0;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.5rem 1rem;margin:0 0 clamp(.65rem,1.8vw,1rem);padding:0 0 .65rem;display:flex}.collection-view-bar-main{flex:12rem;min-width:0}.collection-view-bar-title{font-family:var(--font-display);color:var(--text-strong);margin:0 0 .25rem;font-size:clamp(1.15rem,2.5vw,1.45rem);font-weight:600}.collection-view-bar-description{max-width:42rem;color:var(--muted);margin:0;font-size:.9rem;line-height:1.55}.collection-view-bar-actions{flex-wrap:wrap;align-items:center;gap:.5rem .65rem;display:flex}.collection-view-exit{border:1px solid color-mix(in oklab, var(--hairline) 90%, transparent);background:color-mix(in oklab, var(--bg) 70%, transparent);font:inherit;color:var(--text-strong);cursor:pointer;border-radius:999px;margin:0;padding:.32rem .65rem;font-size:.82rem;font-weight:600}.collection-view-exit:hover{border-color:color-mix(in oklab, var(--accent) 45%, var(--hairline))}.collection-share{border-top:1px solid color-mix(in oklab, var(--hairline) 55%, transparent);flex-wrap:wrap;align-items:center;gap:.45rem .85rem;margin:.55rem 0 .15rem .1rem;padding-top:.35rem;display:flex}.collection-share-btn{border:1px solid color-mix(in oklab, var(--hairline) 90%, transparent);background:color-mix(in oklab, var(--bg) 70%, transparent);font:inherit;letter-spacing:.02em;color:var(--text-strong);cursor:pointer;border-radius:999px;margin:0;padding:.32rem .65rem;font-size:.82rem;font-weight:600;transition:border-color .2s,background .2s}.collection-share-btn:hover{border-color:color-mix(in oklab, var(--accent) 45%, var(--hairline));background:color-mix(in oklab, var(--accent) 8%, var(--bg))}.collection-share-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.collection-share-hint{color:var(--muted);font-size:.8rem;line-height:1.45}.portfolio-main{margin-top:0;margin-bottom:clamp(2.25rem,6vw,4rem)}.gallery-empty{max-width:28rem;color:var(--muted);margin:0;font-size:.98rem;line-height:1.75}.gallery-empty-filter{font-style:italic}.gallery-empty-path{font-family:var(--mono);color:var(--text);font-size:.88em}.gallery-grid{--gallery-gap:clamp(1rem, 2.4vw, 1.5rem);gap:var(--gallery-gap);flex-direction:column;display:flex}.gallery-row{gap:var(--gallery-gap);flex-wrap:nowrap;align-items:flex-start;display:flex}.gallery-cell{flex-direction:column;flex:var(--gallery-cell-flex,1) 1 0;align-items:center;min-width:0;margin:0;display:flex}.gallery-cell-inner{flex-direction:column;align-items:stretch;width:fit-content;max-width:100%;display:flex}.gallery-caption{flex-direction:column;gap:.35rem;width:100%;min-width:0;margin-top:.55rem;display:flex}.gallery-caption-title{font-family:var(--font-display);letter-spacing:.01em;color:var(--text-strong);font-size:.94rem;font-weight:600;line-height:1.35}.gallery-caption-desc{color:var(--muted);font-size:.78rem;line-height:1.45}@media (width<=640px){.gallery-caption-desc{display:none}}.gallery-caption-meta{color:var(--muted);font-size:.78rem;line-height:1.45}.gallery-caption-tags{flex-wrap:wrap;align-items:center;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.gallery-caption-tag{font:inherit;letter-spacing:.03em;color:color-mix(in oklab, var(--muted) 92%, var(--text-strong));background:color-mix(in oklab, var(--text-strong) 5%, transparent);border:1px solid var(--hairline);cursor:pointer;border-radius:999px;margin:0;padding:.14rem .48rem;font-size:.7rem;font-weight:550;transition:color .2s,background .2s,border-color .2s;display:inline-block}.gallery-caption-tag:hover{color:var(--text-strong);border-color:color-mix(in oklab, var(--accent) 40%, var(--hairline))}.gallery-caption-tag:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.gallery-caption-tag-active,.gallery-caption-tag[aria-pressed=true]{color:var(--text-strong);background:color-mix(in oklab, var(--accent) 14%, var(--bg));border-color:color-mix(in oklab, var(--accent) 60%, var(--hairline))}.gallery-caption-tag-more{cursor:pointer;opacity:.85;border-style:dashed}.gallery-caption-tag-more:hover{opacity:1;color:var(--text-strong);border-color:color-mix(in oklab, var(--accent) 50%, var(--hairline))}.gallery-caption-tag-more:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.gallery-caption-tag-more[aria-expanded=true]{opacity:1;border-style:solid}.gallery-caption-sep{-webkit-user-select:none;user-select:none}.gallery-caption-equipment{font:inherit;font-size:inherit;color:inherit;cursor:pointer;text-decoration:underline;-webkit-text-decoration-color:color-mix(in oklab, var(--accent) 55%, transparent);text-decoration-color:color-mix(in oklab, var(--accent) 55%, transparent);text-underline-offset:.15em;background:0 0;border:none;margin:0;padding:0}.gallery-caption-equipment:hover{color:var(--text-strong);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.gallery-caption-equipment:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.lightbox-equipment-link{font:inherit;color:inherit;cursor:pointer;text-underline-offset:.12em;background:0 0;border:none;padding:0;text-decoration:underline}.lightbox-equipment-link:hover{color:var(--accent)}.lightbox-equipment-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.equipment-modal-root{z-index:12000;justify-content:center;align-items:center;padding:1.25rem;display:flex;position:fixed;inset:0}.equipment-modal-backdrop{background:color-mix(in oklab, var(--bg) 20%, #000000b8);cursor:pointer;border:none;position:absolute;inset:0}.equipment-modal-panel{z-index:1;border:1px solid var(--hairline);background:var(--surface-elevated,var(--bg));border-radius:12px;width:min(28rem,100%);max-height:min(90vh,36rem);position:relative;overflow:auto;box-shadow:0 24px 64px #00000073}.equipment-modal-header{border-bottom:1px solid var(--hairline);grid-template-columns:1fr auto;gap:.25rem .75rem;padding:1.1rem 1.15rem .65rem;display:grid}.equipment-modal-kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);grid-column:1;margin:0;font-size:.68rem;font-weight:600}.equipment-modal-title{font-family:var(--font-display);color:var(--text-strong);grid-column:1;margin:0;font-size:1.35rem;font-weight:600;line-height:1.25}.equipment-modal-close{width:2rem;height:2rem;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:8px;grid-area:1/2/span 2;align-self:start;font-size:1.4rem;line-height:1}.equipment-modal-close:hover{color:var(--text-strong);background:color-mix(in oklab, var(--text-strong) 8%, transparent)}.equipment-modal-body{flex-direction:column;gap:1.35rem;padding:1rem 1.15rem 1.25rem;display:flex}.equipment-modal-block+.equipment-modal-block{border-top:1px solid var(--hairline);padding-top:1.35rem}.equipment-modal-block-title{font-family:var(--font-display);color:var(--text-strong);margin:.35rem 0 0;font-size:1.05rem;font-weight:600}.equipment-modal-image-wrap{background:color-mix(in oklab, var(--text-strong) 6%, transparent);border-radius:8px;margin-bottom:1rem;overflow:hidden}.equipment-modal-image{object-fit:contain;width:100%;height:auto;max-height:14rem;display:block}.equipment-modal-make-model{color:var(--text-strong);margin:0 0 .65rem;font-size:.92rem;font-weight:550}.equipment-modal-description{color:var(--muted);margin:0;font-size:.88rem;line-height:1.55}:root[data-theme=light] .equipment-modal-backdrop{background:color-mix(in oklab, var(--bg) 40%, #00000059)}.collections-strip{border-top:1px solid var(--hairline);margin-top:1rem;padding-top:.85rem}.collections-strip-head{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.55rem;display:flex}.collections-strip-title{font-family:var(--font-display);color:var(--text-strong);margin:0;font-size:1rem;font-weight:600}.collections-strip-all{font:inherit;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);cursor:pointer;text-underline-offset:.2em;background:0 0;border:none;padding:.2rem 0;font-size:.75rem;font-weight:550;text-decoration:underline}.collections-strip-all:hover{color:var(--text-strong)}.collections-strip-list{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;align-items:stretch;gap:.75rem;margin:0;padding:0 0 .25rem;list-style:none;display:flex;overflow-x:auto}.collections-strip-list>li{flex:none;min-width:0;display:flex}.collections-strip-card{scroll-snap-align:start;border:1px solid var(--hairline);background:color-mix(in oklab, var(--hairline) 35%, var(--bg));cursor:pointer;text-align:left;border-radius:10px;flex:auto;width:min(10rem,38vw);min-height:100%;padding:0;transition:border-color .15s,transform .15s;display:block;overflow:hidden}.collections-strip-card:hover{border-color:color-mix(in oklab, var(--accent) 45%, var(--hairline));transform:translateY(-1px)}.collections-strip-cover-wrap{aspect-ratio:5/3;background:color-mix(in oklab, var(--hairline) 40%, var(--bg));display:block;position:relative;overflow:hidden}.collections-strip-cover{object-fit:cover;object-position:center 35%;width:100%;height:100%;transition:transform .2s;display:block}.collections-strip-card:hover .collections-strip-cover{transform:scale(1.03)}.collections-strip-cover-placeholder{background:linear-gradient(135deg, color-mix(in oklab, var(--hairline) 60%, var(--bg)), color-mix(in oklab, var(--accent) 12%, var(--bg)));width:100%;height:100%;display:block}.collections-strip-card-text{z-index:1;pointer-events:none;background:linear-gradient(180deg, transparent 0%, color-mix(in oklab, var(--collections-scrim) 35%, transparent) 38%, color-mix(in oklab, var(--collections-scrim) 82%, transparent) 72%, color-mix(in oklab, var(--collections-scrim) 94%, transparent) 100%);flex-direction:column;gap:.1rem;padding:1.35rem .5rem .45rem;display:flex;position:absolute;inset:auto 0 0}.collections-strip-card-title{color:var(--collections-overlay-fg);-webkit-line-clamp:2;text-shadow:0 1px 3px color-mix(in oklab, var(--collections-scrim) 75%, transparent);-webkit-box-orient:vertical;font-size:.78rem;font-weight:600;line-height:1.22;display:-webkit-box;overflow:hidden}.collections-strip-card-count{color:var(--collections-overlay-fg-muted);text-shadow:0 1px 2px color-mix(in oklab, var(--collections-scrim) 70%, transparent);font-size:.68rem;font-weight:500}.collections-modal-root{z-index:12000;justify-content:center;align-items:center;padding:clamp(1rem,4vw,2rem);display:flex;position:fixed;inset:0}.collections-modal-backdrop{cursor:pointer;background:color-mix(in oklab, var(--bg) 55%, transparent);-webkit-backdrop-filter:blur(4px);border:none;position:absolute;inset:0}.collections-modal-panel{z-index:1;border:1px solid var(--hairline);background:var(--bg);width:min(52rem,100%);max-height:min(85vh,40rem);box-shadow:0 24px 64px color-mix(in oklab, var(--bg) 20%, #00000073);border-radius:12px;position:relative;overflow:auto}.collections-modal-header{border-bottom:1px solid var(--hairline);background:var(--bg);z-index:1;grid-template-columns:1fr auto;align-items:start;gap:.25rem .75rem;padding:1rem 1.15rem .75rem;display:grid;position:sticky;top:0}.collections-modal-heading{grid-column:1;min-width:0}.collections-modal-title{font-family:var(--font-display);color:var(--text-strong);margin:0;font-size:1.35rem;font-weight:600}.collections-modal-subtitle{color:var(--muted);margin:.2rem 0 0;font-size:.82rem}.collections-modal-close{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;grid-column:2;align-self:start;margin:0;padding:.15rem .45rem;font-size:1.5rem;line-height:1}.collections-modal-close:hover{color:var(--text-strong);background:color-mix(in oklab, var(--text-strong) 8%, transparent)}.collections-modal-grid{grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));gap:1rem 1.1rem;margin:0;padding:1rem 1.15rem 1.25rem;list-style:none;display:grid}.collections-modal-card{text-align:left;cursor:pointer;width:100%;color:inherit;font:inherit;background:0 0;border:none;flex-direction:column;align-items:stretch;margin:0;padding:0;display:flex}.collections-modal-card:hover .collections-modal-cover-wrap{outline:2px solid color-mix(in oklab, var(--accent) 55%, transparent);outline-offset:2px}.collections-modal-card:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:8px}.collections-modal-cover-wrap{border-radius:8px;margin-bottom:.5rem;display:block;overflow:hidden}.collections-modal-cover{aspect-ratio:3/2;object-fit:cover;background:color-mix(in oklab, var(--hairline) 35%, var(--bg));width:100%;display:block}.collections-modal-cover-placeholder{min-height:5.5rem}.collections-modal-card-title{-webkit-line-clamp:2;color:var(--text-strong);-webkit-box-orient:vertical;min-height:2.43rem;font-size:.9rem;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.collections-modal-card-count{color:var(--muted);margin-top:.2rem;font-size:.78rem;display:block}body.collections-modal-open{overflow:hidden}:root[data-theme=light] .collections-modal-backdrop{background:color-mix(in oklab, var(--bg) 40%, #00000059)}.gallery-thumb{width:fit-content;max-width:100%;height:var(--gallery-row-thumb-height,auto);cursor:zoom-in;min-height:0;font:inherit;color:inherit;text-align:left;background:0 0;border:none;border-radius:14px;margin:0;padding:0;display:block}.gallery-thumb:disabled{cursor:wait}.gallery-thumb:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.gallery-thumb:hover:not(:disabled) .gallery-aspect img,.gallery-thumb:focus-visible .gallery-aspect img{transform:scale(1.02)}.gallery-aspect{width:auto;max-width:100%;height:100%;aspect-ratio:var(--gallery-thumb-aspect,4 / 3);box-shadow:var(--frame-shadow);border-radius:14px;position:relative;overflow:hidden}.gallery-aspect:not(:has(img)){background:var(--skeleton)}.gallery-aspect img{object-fit:cover;width:100%;height:100%;transition:transform .55s cubic-bezier(.22,1,.36,1),opacity .35s;display:block}.gallery-skeleton{background:linear-gradient(105deg, var(--skeleton) 0%, color-mix(in oklab, var(--text-strong) 6%, var(--skeleton)) 42%, var(--skeleton) 85%);background-size:220% 100%;animation:1.35s ease-in-out infinite gallery-shimmer;position:absolute;inset:0}@keyframes gallery-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.portfolio-footer{border-top:1px solid var(--hairline);padding-top:clamp(2rem,5vw,2.75rem)}.portfolio-footer-minimal{border-top:none;padding-top:0}.portfolio-footer-inner{flex-direction:column;align-items:flex-start;gap:1rem;display:flex}.portfolio-footer-nav{flex-wrap:wrap;align-items:center;gap:.55rem 1.35rem;display:flex}.portfolio-footer-nav-link{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid color-mix(in oklab, var(--hairline) 90%, transparent);padding-bottom:.14rem;font-size:.8rem;font-weight:550;line-height:1.35;text-decoration:none;transition:color .2s,border-color .2s}.portfolio-footer-nav-link:hover{color:var(--text-strong);border-bottom-color:color-mix(in oklab, var(--accent) 55%, var(--hairline))}.portfolio-footer-nav-email{color:var(--accent);letter-spacing:.04em;text-transform:none;border-bottom-color:color-mix(in oklab, var(--accent) 45%, transparent);font-size:.88rem;font-weight:600}.portfolio-footer-nav-email:hover{border-bottom-color:var(--accent)}.portfolio-copyright{color:var(--muted);font-weight:450}.portfolio-credit-sep{-webkit-user-select:none;user-select:none}.portfolio-credit{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0;font-size:.72rem;font-weight:500}.lightbox-root{z-index:10000;flex-direction:column;min-height:100svh;animation:.22s lightbox-enter;display:flex;position:fixed;inset:0}@keyframes lightbox-enter{0%{opacity:0}to{opacity:1}}.lightbox-backdrop{cursor:zoom-out;background:#060606f0;border:none;margin:0;padding:0;transition:background .55s;position:absolute;inset:0}.lightbox-root--ambient .lightbox-backdrop{background:#060606c7}.lightbox-shell{z-index:1;flex-direction:column;flex:1;width:100%;min-height:0;display:flex;position:relative}.lightbox-toolbar{z-index:60;isolation:isolate;-webkit-backdrop-filter:blur(18px);background:#0e0e0e85;border-bottom:1px solid #ffffff0f;flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:.65rem 1rem;padding:.6rem clamp(.65rem,2vw,1.1rem);display:flex;position:relative}.lightbox-toolbar-cluster{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.lightbox-toolbar-start{flex:1;min-width:min(100%,11rem)}.lightbox-toolbar-zoom{background:#ffffff0f;border:1px solid #ffffff14;border-radius:999px;gap:0;padding:.12rem}.lightbox-toolbar-end{flex-shrink:0;gap:.35rem}.lightbox-title{min-width:0;font-family:var(--mono);color:#ffffff94;white-space:nowrap;text-overflow:ellipsis;flex:1;margin:0;font-size:.72rem;font-weight:450;overflow:hidden}.lightbox-title-stack{flex-direction:column;flex:1;gap:.12rem;min-width:0;display:flex}.lightbox-title-primary{font-family:var(--font-display);letter-spacing:.02em;color:#ffffffeb;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:.85rem;font-weight:600;overflow:hidden}.lightbox-title-filename{font-family:var(--mono);color:#ffffff7a;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:.68rem;font-weight:450;overflow:hidden}.lightbox-title-meta{font-family:var(--mono);color:#ffffff73;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:.62rem;font-weight:450;overflow:hidden}.lightbox-zoom-readout{font-family:var(--mono);letter-spacing:.06em;color:#fff6;flex-shrink:0;font-size:.66rem;font-weight:600}.lightbox-tool-icon{color:#ffffffeb;cursor:pointer;background:#ffffff14;border:none;border-radius:999px;justify-content:center;align-items:center;width:2.15rem;height:2.15rem;padding:0;font-size:1.25rem;font-weight:350;line-height:1;transition:background .15s;display:inline-flex}.lightbox-tool-icon:hover{background:#ffffff26}.lightbox-tool-icon-svg{flex-shrink:0;width:1.15rem;height:1.15rem}.lightbox-tool-quiet{font:inherit;letter-spacing:.02em;color:#ffffffd1;cursor:pointer;background:0 0;border:none;border-radius:999px;padding:.42rem .62rem;font-size:.78rem;font-weight:600;text-decoration:none;transition:background .15s}.lightbox-tool-quiet:hover{background:#ffffff17}.lightbox-tool-save{align-items:center;display:inline-flex}.lightbox-toolbar-zoom .lightbox-tool-quiet{padding-inline:.75rem}.lightbox-share-anchor{position:relative}.lightbox-share-panel[data-viewport-anchored],.lightbox-settings-panel[data-viewport-anchored]{z-index:120}.lightbox-share-panel{-webkit-backdrop-filter:blur(20px);z-index:80;pointer-events:auto;cursor:default;background:#101010f0;border:1px solid #ffffff17;border-radius:12px;min-width:12.5rem;max-width:min(18rem,100vw - 1.25rem);padding:.35rem;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 18px 48px #00000080}.lightbox-overflow{position:relative}.lightbox-overflow-trigger{cursor:pointer;letter-spacing:.03em;color:#ffffffd1;background:#ffffff0f;border:1px solid #ffffff17;border-radius:999px;padding:.42rem .65rem;font-size:.76rem;font-weight:600;list-style:none}.lightbox-overflow-trigger::-webkit-details-marker{display:none}.lightbox-overflow-panel{-webkit-backdrop-filter:blur(20px);z-index:80;pointer-events:auto;cursor:default;background:#101010f0;border:1px solid #ffffff17;border-radius:12px;min-width:11.5rem;padding:.35rem;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 18px 48px #00000080}.lightbox-menu-item{text-align:left;width:100%;font:inherit;color:#ffffffe6;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:.48rem .62rem;font-size:.8rem;font-weight:500;text-decoration:none;transition:background .12s;display:block}.lightbox-menu-item:hover{background:#ffffff12}.lightbox-settings{position:relative}.lightbox-settings-trigger{cursor:pointer;border:1px solid #ffffff17;list-style:none}.lightbox-settings-trigger::-webkit-details-marker{display:none}.lightbox-settings-trigger:hover{background:#ffffff1a}.lightbox-settings-icon{width:1.05rem;height:1.05rem;display:flex}.lightbox-settings-icon svg{width:100%;height:100%}.lightbox-settings-panel{-webkit-backdrop-filter:blur(20px);z-index:80;pointer-events:auto;cursor:default;background:#101010f0;border:1px solid #ffffff17;border-radius:12px;min-width:14.5rem;max-width:min(18rem,100vw - 1.25rem);padding:.7rem .8rem;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 18px 48px #00000080}.lightbox-settings-toggle{cursor:pointer;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.lightbox-settings-label{color:#ffffffe6;font-size:.8rem;font-weight:500}.lightbox-settings-checkbox{width:1rem;height:1rem;accent-color:var(--accent,#5eead4);cursor:pointer}.lightbox-settings-hint{color:#ffffff8c;margin:0;font-size:.72rem;line-height:1.35}.lightbox-settings-slider-row{border-top:1px solid #ffffff14;grid-template-columns:1fr auto;align-items:center;gap:.4rem .55rem;margin-top:.7rem;padding-top:.7rem;display:grid}.lightbox-settings-slider-row:has(.lightbox-settings-range:disabled){opacity:.45}.lightbox-settings-range{width:100%;height:.35rem;accent-color:var(--accent,#5eead4);cursor:pointer;grid-column:1/-1;margin:0}.lightbox-settings-range:disabled{cursor:not-allowed}.lightbox-settings-value{font-variant-numeric:tabular-nums;color:#ffffff7a;font-size:.72rem}.lightbox-tags-strip{z-index:4;scrollbar-width:none;pointer-events:none;background:0 0;border:none;align-items:center;gap:.55rem;padding:.7rem clamp(.65rem,2vw,1.1rem) .35rem;display:flex;position:absolute;top:0;left:0;right:0;overflow-x:auto}.lightbox-tags-strip-label,.lightbox-tags-strip-list,.lightbox-tags-strip-list li{pointer-events:auto}.lightbox-tags-strip::-webkit-scrollbar{display:none}.lightbox-tags-strip-label{letter-spacing:.18em;text-transform:uppercase;color:#ffffff80;text-shadow:0 1px 12px #000000a6;flex-shrink:0;font-size:.6rem;font-weight:700}.lightbox-tags-strip-list{flex-wrap:nowrap;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.lightbox-tag-pill{white-space:nowrap;letter-spacing:.02em;-webkit-backdrop-filter:blur(12px);color:#ffffffdb;cursor:pointer;background:#0c0c0c73;border:1px solid #ffffff1f;border-radius:999px;margin:0;padding:.24rem .55rem;font-family:inherit;font-size:.72rem;font-weight:500;transition:background .15s,border-color .15s,color .15s;display:inline-block}button.lightbox-tag-pill:hover{color:#fffffff5;background:#0c0c0c9e;border-color:#ffffff38}.lightbox-tag-pill-active{color:#fffffffa;background:#ffffff29;border-color:#ffffff47}.lightbox-stage{z-index:1;background:#050505;flex-direction:column;flex:1;min-height:0;padding:0;transition:background .55s;display:flex;position:relative;overflow:hidden}.lightbox-root--ambient .lightbox-stage{background:#080808}.lightbox-ambient-host{z-index:0;pointer-events:none;transform-origin:50%;width:min(96vw,1440px);height:min(72vh,880px);position:absolute;top:50%;left:50%}.lightbox-ambient-host--smooth{transition:transform .52s cubic-bezier(.22,1,.36,1),left .52s cubic-bezier(.22,1,.36,1),top .52s cubic-bezier(.22,1,.36,1),width .52s cubic-bezier(.22,1,.36,1),height .52s cubic-bezier(.22,1,.36,1)}.lightbox-ambient{pointer-events:none;opacity:0;will-change:opacity;transition:opacity .7s;position:absolute;inset:-68%}.lightbox-ambient-corner{pointer-events:none;filter:blur(calc(64px + 56px * var(--lightbox-ambient-strength,.85))) saturate(calc(1.05 + .2 * var(--lightbox-ambient-strength,.85)));position:absolute;inset:0}.lightbox-ambient-corner--tl{background:radial-gradient(circle at 0% 0%, color-mix(in oklab, var(--lightbox-ambient-tl,#3a4a5c) calc(38% * var(--lightbox-ambient-strength,.85)), transparent) 0%, color-mix(in oklab, var(--lightbox-ambient-tl,#3a4a5c) calc(14% * var(--lightbox-ambient-strength,.85)), transparent) 42%, transparent 72%)}.lightbox-ambient-corner--tr{background:radial-gradient(circle at 100% 0%, color-mix(in oklab, var(--lightbox-ambient-tr,#3a4a5c) calc(38% * var(--lightbox-ambient-strength,.85)), transparent) 0%, color-mix(in oklab, var(--lightbox-ambient-tr,#3a4a5c) calc(14% * var(--lightbox-ambient-strength,.85)), transparent) 42%, transparent 72%)}.lightbox-ambient-corner--bl{background:radial-gradient(circle at 0% 100%, color-mix(in oklab, var(--lightbox-ambient-bl,#3a4a5c) calc(36% * var(--lightbox-ambient-strength,.85)), transparent) 0%, color-mix(in oklab, var(--lightbox-ambient-bl,#3a4a5c) calc(12% * var(--lightbox-ambient-strength,.85)), transparent) 44%, transparent 74%)}.lightbox-ambient-corner--br{background:radial-gradient(circle at 100% 100%, color-mix(in oklab, var(--lightbox-ambient-br,#3a4a5c) calc(36% * var(--lightbox-ambient-strength,.85)), transparent) 0%, color-mix(in oklab, var(--lightbox-ambient-br,#3a4a5c) calc(12% * var(--lightbox-ambient-strength,.85)), transparent) 44%, transparent 74%)}.lightbox-ambient-visible{opacity:min(1, calc((.32 + .78 * var(--lightbox-ambient-strength,.85)) * var(--lightbox-ambient-brightness,1)))}:-webkit-any(.lightbox-stage:fullscreen,.lightbox-stage:-webkit-full-screen){box-sizing:border-box;background:#050505;width:100%;height:100%;min-height:100vh;max-height:none}:is(.lightbox-stage:fullscreen,.lightbox-stage:fullscreen){box-sizing:border-box;background:#050505;width:100%;height:100%;min-height:100vh;max-height:none}:-webkit-any(.lightbox-stage:fullscreen .lightbox-viewport,.lightbox-stage:-webkit-full-screen .lightbox-viewport){flex:1;min-height:0;max-height:none}:is(.lightbox-stage:fullscreen .lightbox-viewport,.lightbox-stage:fullscreen .lightbox-viewport){flex:1;min-height:0;max-height:none}.lightbox-viewport{z-index:1;touch-action:none;-webkit-user-select:none;user-select:none;cursor:zoom-in;flex:1;justify-content:center;align-items:center;width:100%;min-height:min(82vh,900px);display:flex;position:relative;overflow:hidden}.lightbox-location-badge{pointer-events:none;z-index:3;-webkit-backdrop-filter:blur(14px);background:#0e0e0e85;border:1px solid #ffffff1a;border-radius:10px;max-width:min(88vw,18rem);padding:.48rem .72rem;position:absolute;bottom:1rem;left:1rem}.lightbox-location-kicker{letter-spacing:.2em;text-transform:uppercase;color:#ffffff6b;margin-bottom:.12rem;font-size:.56rem;font-weight:600;display:block}.lightbox-location-name{font-family:var(--font-body);letter-spacing:.01em;color:#fffffff0;font-size:.87rem;font-weight:600;line-height:1.35}.lightbox-viewport-pannable{cursor:grab}.lightbox-viewport-pannable:active{cursor:grabbing}.lightbox-zoom-layer{z-index:1;transform-origin:50%;will-change:transform;position:relative}.lightbox-image-shell{isolation:isolate;place-items:center;display:inline-grid;position:relative}.lightbox-image-wireframe,.lightbox-image-preview,.lightbox-image{z-index:1;grid-area:1/1;position:relative}.lightbox-image-preview{width:min(96vw,1440px);max-height:min(84vh,960px);aspect-ratio:var(--lightbox-aspect,4 / 3);object-fit:cover;filter:blur(22px)saturate(1.08);opacity:.92;pointer-events:none;-webkit-user-select:none;user-select:none;max-width:100%;height:auto;display:block;transform:scale(1.04)}.lightbox-image-wireframe{width:min(96vw,1440px);max-height:min(84vh,960px);aspect-ratio:var(--lightbox-aspect,4 / 3);pointer-events:none;background:#ffffff09;border:1px solid #ffffff24;border-radius:3px;max-width:100%;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #0003}.lightbox-image-wireframe:before{content:"";opacity:.85;background:linear-gradient(90deg,#0000 calc(33.33% - .5px),#ffffff1a calc(33.33% - .5px) calc(33.33% + .5px),#0000 calc(33.33% + .5px)),linear-gradient(90deg,#0000 calc(66.66% - .5px),#ffffff1a calc(66.66% - .5px) calc(66.66% + .5px),#0000 calc(66.66% + .5px)),linear-gradient(#0000 calc(33.33% - .5px),#ffffff1a calc(33.33% - .5px) calc(33.33% + .5px),#0000 calc(33.33% + .5px)),linear-gradient(#0000 calc(66.66% - .5px),#ffffff1a calc(66.66% - .5px) calc(66.66% + .5px),#0000 calc(66.66% + .5px));position:absolute;inset:0}.lightbox-image-wireframe-shimmer{background:linear-gradient(105deg,#ffffff05 0%,#ffffff1f 42%,#ffffff05 85%) 0 0/220% 100%;animation:1.35s ease-in-out infinite gallery-shimmer;position:absolute;inset:0}.lightbox-image{object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;opacity:0;width:auto;max-width:min(96vw,1440px);height:auto;max-height:min(84vh,960px);transition:opacity .4s;display:block}.lightbox-image-loaded{opacity:1}.lightbox-share-notice{pointer-events:none;text-align:center;letter-spacing:.02em;color:#ffffffc7;-webkit-backdrop-filter:blur(12px);z-index:56;background:#0c0c0cb8;border:1px solid #ffffff1a;border-radius:10px;max-width:min(92vw,26rem);margin:0;padding:.35rem .65rem;font-size:.72rem;line-height:1.35;position:absolute;bottom:2.15rem;left:50%;transform:translate(-50%);box-shadow:0 4px 24px #00000059}.lightbox-help-panel{z-index:10002;border:1px solid var(--hairline);background:color-mix(in oklab, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(12px);width:min(18rem,100vw - 2rem);box-shadow:0 12px 40px color-mix(in oklab, var(--bg) 30%, #0006);border-radius:10px;padding:.85rem 1rem 1rem;position:fixed;bottom:clamp(3.5rem,12vh,5rem);right:clamp(.75rem,3vw,1.5rem)}.lightbox-help-close{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:.15rem .35rem;font-size:1.25rem;line-height:1;position:absolute;top:.35rem;right:.45rem}.lightbox-help-title{letter-spacing:.06em;text-transform:uppercase;color:var(--text-strong);margin:0 1.5rem .5rem 0;font-size:.85rem;font-weight:600}.lightbox-help-list{color:var(--muted);flex-direction:column;gap:.35rem;margin:0;padding:0;font-size:.8rem;list-style:none;display:flex}.lightbox-help-list kbd{border:1px solid var(--hairline);background:color-mix(in oklab, var(--bg) 70%, var(--text-strong));color:var(--text-strong);border-radius:4px;padding:.1em .35em;font-family:inherit;font-size:.72rem}.lightbox-hint-float{pointer-events:none;text-align:center;letter-spacing:.04em;color:#ffffff52;max-width:min(92vw,28rem);margin:0;font-size:.66rem;position:absolute;bottom:.55rem;left:50%;transform:translate(-50%)}.lightbox-hint-float kbd{font-family:var(--mono);color:#ffffff6b;background:#ffffff0d;border:1px solid #ffffff1f;border-radius:4px;padding:.08em .35em;font-size:.82em}.lightbox-tool-quiet-active{color:#fffffff5!important;background:#ffffff1f!important}.lightbox-details-scrim{z-index:61;cursor:pointer;-webkit-backdrop-filter:blur(3px);background:#0505056b;border:none;margin:0;padding:0;position:fixed;inset:0}.lightbox-details-panel{z-index:62;cursor:default;pointer-events:auto;background:#121212f5;border-left:1px solid #ffffff14;flex-direction:column;width:min(26rem,min(92vw,100% - 1rem));display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-12px 0 48px #00000073}.lightbox-details-panel-header{-webkit-backdrop-filter:blur(18px);background:#0e0e0ed9;border-bottom:1px solid #ffffff14;flex-shrink:0;justify-content:space-between;align-items:center;gap:.75rem;padding:.65rem clamp(.65rem,2vw,1rem);display:flex}.lightbox-details-heading{font-family:var(--font-display);letter-spacing:.02em;color:#fffffff0;margin:0;font-size:1rem;font-weight:650}.lightbox-details-close{color:#ffffffeb;cursor:pointer;background:#ffffff14;border:none;border-radius:999px;justify-content:center;align-items:center;width:2.15rem;height:2.15rem;padding:0;transition:background .15s;display:inline-flex}.lightbox-details-close:hover{background:#ffffff26}.lightbox-details-body{cursor:default;flex-direction:column;flex:1;gap:1.35rem;min-height:0;padding:.85rem clamp(.65rem,2vw,1.1rem) 1.25rem;display:flex;overflow:auto}.lightbox-details-section{min-width:0}.lightbox-details-section-card{background:#ffffff0a;border:1px solid #ffffff12;border-radius:.65rem;padding:.75rem .8rem .85rem}.lightbox-details-section-title{letter-spacing:.14em;text-transform:uppercase;color:#ffffff73;margin:0 0 .65rem;font-size:.68rem;font-weight:700}.lightbox-details-fields{grid-template-columns:1fr 1fr;gap:.65rem .85rem;display:grid}.lightbox-details-field{flex-direction:column;gap:.2rem;min-width:0;display:flex}.lightbox-details-field--wide{grid-column:1/-1}.lightbox-details-field-label{letter-spacing:.06em;text-transform:uppercase;color:#ffffff6b;font-size:.68rem;font-weight:650}.lightbox-details-field-value{color:#ffffffe6;word-break:break-word;font-size:.84rem;line-height:1.45}.lightbox-details-empty{color:#ffffff52}.lightbox-details-chips{flex-wrap:wrap;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.lightbox-details-chip{letter-spacing:.02em;color:#ffffffe6;background:#ffffff1a;border:1px solid #ffffff1f;border-radius:999px;padding:.22rem .55rem;font-family:inherit;font-size:.76rem;font-weight:550;line-height:1.3;display:inline-block}button.lightbox-details-chip{cursor:pointer;transition:background .15s,border-color .15s,color .15s}button.lightbox-details-chip:hover{background:#ffffff29}.lightbox-details-chip-active{color:#fffffffa;background:#fff3;border-color:#ffffff47}.lightbox-details-related{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.lightbox-details-related-btn{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:.45rem;flex-direction:column;gap:.35rem;width:100%;padding:0;display:flex;overflow:hidden}.lightbox-details-related-btn img{aspect-ratio:4/3;object-fit:cover;background:#00000040;border-radius:.4rem;width:100%;display:block}.lightbox-details-related-title{color:#ffffffc7;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.72rem;line-height:1.35;display:-webkit-box;overflow:hidden}.lightbox-details-related-btn:hover img{outline-offset:-1px;outline:1px solid #ffffff38}.lightbox-details-related-btn:hover .lightbox-details-related-title{color:#fffffff2}.lightbox-details-loading{align-items:center;gap:.65rem;padding:.5rem 0;display:flex}.lightbox-details-spinner{border:2px solid #ffffff1f;border-top-color:#ffffffb8;border-radius:50%;flex-shrink:0;width:1.15rem;height:1.15rem;animation:.75s linear infinite lightbox-details-spin}@keyframes lightbox-details-spin{to{transform:rotate(360deg)}}.lightbox-details-loading-text{color:#ffffff7a;font-size:.82rem}.lightbox-details-exif-grid{grid-template-columns:1fr 1fr;gap:.5rem .75rem;display:grid}.lightbox-details-exif-item{background:#00000038;border-radius:.45rem;flex-direction:column;gap:.12rem;min-width:0;padding:.4rem .45rem;display:flex}.lightbox-details-exif-label{letter-spacing:.05em;text-transform:uppercase;color:#fff6;font-size:.66rem;font-weight:650}.lightbox-details-exif-value{color:#ffffffe0;word-break:break-word;font-size:.8rem;line-height:1.4}.lightbox-details-dl{grid-template-columns:minmax(6rem,38%) 1fr;align-items:start;gap:.35rem .85rem;margin:0;font-size:.82rem;line-height:1.45;display:grid}.lightbox-details-dl dt{color:#ffffff7a;margin:0;font-weight:600}.lightbox-details-dl dd{color:#ffffffe0;word-break:break-word;margin:0}.lightbox-details-pair{display:contents}.lightbox-details-mono{font-family:var(--mono);color:#ffffff9e;font-size:.74rem}.lightbox-details-muted{color:#ffffff6b;margin:0;font-size:.82rem;line-height:1.5}.lightbox-details-note{color:#ffc878d9;margin:0;font-size:.82rem}:root[data-theme=light] .lightbox-backdrop{background:color-mix(in oklab, var(--text-strong) 28%, var(--bg-page))}:root[data-theme=light] .lightbox-toolbar{background:color-mix(in oklab, var(--bg) 82%, transparent);border-bottom-color:var(--hairline)}:root[data-theme=light] .lightbox-toolbar-zoom{background:color-mix(in oklab, var(--text-strong) 6%, transparent);border-color:var(--hairline)}:root[data-theme=light] .lightbox-title{color:var(--muted)}:root[data-theme=light] .lightbox-title-primary{color:var(--text-strong)}:root[data-theme=light] .lightbox-title-filename{color:color-mix(in oklab, var(--muted) 88%, var(--text-strong))}:root[data-theme=light] .lightbox-title-meta{color:var(--muted)}:root[data-theme=light] .lightbox-zoom-readout{color:color-mix(in oklab, var(--muted) 85%, var(--text-strong))}:root[data-theme=light] .lightbox-tool-icon{color:var(--text-strong);background:color-mix(in oklab, var(--text-strong) 7%, transparent)}:root[data-theme=light] .lightbox-tool-icon:hover{background:color-mix(in oklab, var(--text-strong) 12%, transparent)}:root[data-theme=light] .lightbox-tool-quiet{color:var(--text)}:root[data-theme=light] .lightbox-tool-quiet:hover{background:color-mix(in oklab, var(--text-strong) 8%, transparent)}:root[data-theme=light] .lightbox-overflow-trigger{color:var(--text);background:color-mix(in oklab, var(--text-strong) 6%, transparent);border-color:var(--hairline)}:root[data-theme=light] .lightbox-overflow-panel,:root[data-theme=light] .lightbox-share-panel{background:color-mix(in oklab, var(--bg) 94%, transparent);border-color:var(--hairline);box-shadow:var(--frame-shadow)}:root[data-theme=light] .lightbox-menu-item{color:var(--text-strong)}:root[data-theme=light] .lightbox-menu-item:hover{background:color-mix(in oklab, var(--text-strong) 7%, transparent)}:root[data-theme=light] .lightbox-tags-strip{background:0 0}:root[data-theme=light] .lightbox-tags-strip-label{color:color-mix(in oklab, var(--muted) 90%, var(--text-strong))}:root[data-theme=light] .lightbox-tag-pill{background:color-mix(in oklab, var(--bg) 72%, transparent);border-color:var(--hairline);color:var(--text)}:root[data-theme=light] button.lightbox-tag-pill:hover{background:color-mix(in oklab, var(--bg) 88%, transparent);border-color:color-mix(in oklab, var(--text-strong) 18%, transparent)}:root[data-theme=light] .lightbox-tag-pill-active{color:var(--text-strong);background:color-mix(in oklab, var(--text-strong) 10%, transparent);border-color:color-mix(in oklab, var(--text-strong) 22%, transparent)}:root[data-theme=light] .lightbox-stage,:-webkit-any(:root[data-theme=light] .lightbox-stage:fullscreen,:root[data-theme=light] .lightbox-stage:-webkit-full-screen){background:var(--bg-page)}:root[data-theme=light] .lightbox-stage,:is(:root[data-theme=light] .lightbox-stage:fullscreen,:root[data-theme=light] .lightbox-stage:fullscreen){background:var(--bg-page)}:root[data-theme=light] .lightbox-location-badge{background:color-mix(in oklab, var(--bg) 88%, transparent);border-color:var(--hairline)}:root[data-theme=light] .lightbox-location-kicker{color:var(--muted)}:root[data-theme=light] .lightbox-location-name{color:var(--text-strong)}:root[data-theme=light] .lightbox-hint-float{color:color-mix(in oklab, var(--muted) 88%, var(--text-strong))}:root[data-theme=light] .lightbox-share-notice{color:var(--text-strong);background:color-mix(in oklab, var(--bg-page) 90%, transparent);border-color:var(--hairline);box-shadow:var(--frame-shadow)}:root[data-theme=light] .lightbox-hint-float kbd{border-color:var(--hairline);background:color-mix(in oklab, var(--text-strong) 5%, transparent);color:var(--muted)}:root[data-theme=light] .lightbox-tool-quiet-active{background:color-mix(in oklab, var(--text-strong) 12%, transparent)!important;color:var(--text-strong)!important}:root[data-theme=light] .lightbox-settings-trigger{color:var(--text-strong);background:color-mix(in oklab, var(--text-strong) 7%, transparent);border-color:var(--hairline)}:root[data-theme=light] .lightbox-settings-trigger:hover{background:color-mix(in oklab, var(--text-strong) 12%, transparent)}:root[data-theme=light] .lightbox-settings-panel{background:color-mix(in oklab, var(--bg) 96%, transparent);border-color:var(--hairline);box-shadow:var(--frame-shadow)}:root[data-theme=light] .lightbox-settings-label{color:var(--text-strong)}:root[data-theme=light] .lightbox-settings-value,:root[data-theme=light] .lightbox-settings-hint{color:var(--muted)}:root[data-theme=light] .lightbox-settings-slider-row{border-top-color:var(--hairline)}:root[data-theme=light] .lightbox-details-scrim{background:color-mix(in oklab, var(--text-strong) 22%, transparent)}:root[data-theme=light] .lightbox-details-panel{background:color-mix(in oklab, var(--bg-page) 96%, transparent);border-left-color:var(--hairline);box-shadow:-8px 0 40px #00000014}:root[data-theme=light] .lightbox-details-panel-header{background:color-mix(in oklab, var(--bg-page) 92%, transparent);border-bottom-color:var(--hairline)}:root[data-theme=light] .lightbox-details-heading{color:var(--text-strong)}:root[data-theme=light] .lightbox-details-close{color:var(--text-strong);background:color-mix(in oklab, var(--text-strong) 7%, transparent)}:root[data-theme=light] .lightbox-details-close:hover{background:color-mix(in oklab, var(--text-strong) 12%, transparent)}:root[data-theme=light] .lightbox-details-section-title{color:var(--muted)}:root[data-theme=light] .lightbox-details-section-card{background:color-mix(in oklab, var(--text-strong) 4%, transparent);border-color:var(--hairline)}:root[data-theme=light] .lightbox-details-field-label{color:var(--muted)}:root[data-theme=light] .lightbox-details-field-value{color:var(--text-strong)}:root[data-theme=light] .lightbox-details-empty{color:color-mix(in oklab, var(--muted) 70%, transparent)}:root[data-theme=light] .lightbox-details-chip{color:var(--text-strong);background:color-mix(in oklab, var(--text-strong) 7%, transparent);border-color:var(--hairline)}:root[data-theme=light] button.lightbox-details-chip:hover{background:color-mix(in oklab, var(--text-strong) 11%, transparent)}:root[data-theme=light] .lightbox-details-chip-active{color:var(--text-strong);background:color-mix(in oklab, var(--text-strong) 14%, transparent);border-color:color-mix(in oklab, var(--text-strong) 22%, transparent)}:root[data-theme=light] .lightbox-details-related-title{color:var(--muted)}:root[data-theme=light] .lightbox-details-related-btn:hover .lightbox-details-related-title{color:var(--text-strong)}:root[data-theme=light] .lightbox-details-related-btn img{background:color-mix(in oklab, var(--text-strong) 6%, transparent)}:root[data-theme=light] .lightbox-details-loading-text{color:var(--muted)}:root[data-theme=light] .lightbox-details-spinner{border-color:color-mix(in oklab, var(--muted) 35%, transparent);border-top-color:color-mix(in oklab, var(--text-strong) 55%, transparent)}:root[data-theme=light] .lightbox-details-exif-item{background:color-mix(in oklab, var(--text-strong) 5%, transparent)}:root[data-theme=light] .lightbox-details-exif-label{color:var(--muted)}:root[data-theme=light] .lightbox-details-exif-value{color:var(--text-strong)}:root[data-theme=light] .lightbox-details-dl dt{color:var(--muted)}:root[data-theme=light] .lightbox-details-dl dd{color:var(--text-strong)}:root[data-theme=light] .lightbox-details-mono{color:color-mix(in oklab, var(--muted) 88%, var(--text-strong))}:root[data-theme=light] .lightbox-details-muted{color:var(--muted)}:root[data-theme=light] .lightbox-details-note{color:color-mix(in oklab, var(--accent) 55%, var(--text-strong))}@media (prefers-reduced-motion:reduce){.tag-link,.theme-toggle-option,.portfolio-footer-nav-link{transition:none}.gallery-thumb:hover:not(:disabled) .gallery-aspect img,.gallery-thumb:focus-visible .gallery-aspect img{transform:none}.gallery-aspect img{transition:none}.gallery-skeleton{background-position:0 0;animation:none}.lightbox-details-spinner{border-top-color:#ffffff80;animation:none}.lightbox-image-wireframe-shimmer{background-position:0 0;animation:none}.lightbox-image{transition:none}.lightbox-root{animation:none}.lightbox-ambient-host,.lightbox-ambient-host--smooth,.lightbox-ambient,.lightbox-backdrop,.lightbox-stage,.lightbox-tool-icon,.lightbox-tool-quiet,.lightbox-menu-item,.lightbox-details-panel,.lightbox-share-panel,.lightbox-settings-panel,.lightbox-details-close,.lightbox-details-chip,button.lightbox-details-chip,.collections-strip-card,.collections-strip-cover{transition:none}.collections-strip-card:hover .collections-strip-cover{transform:none}}
