/* Public portfolio: photographic covers, consistent grids and accessible galleries. */
html:has(.wl-lightbox[open]){overflow:hidden}
.wl-symbol{width:72px;height:42px;object-fit:contain;flex:none}
.wl-brand{gap:14px}.wl-brand-footer .wl-symbol{filter:brightness(0) invert(1)}
.wl-project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}
.wl-project-grid .wl-project-card:nth-child(n){grid-column:auto;margin:0;box-shadow:0 8px 24px #24190f0b;overflow:hidden;border-radius:4px}
.wl-project-grid .wl-project-card:nth-child(n) .wl-card-image{aspect-ratio:1.38;isolation:isolate}
.wl-card-image::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#15100de8 0%,#17110b60 43%,#17110b05 80%);z-index:1;transition:opacity .4s}
.wl-card-caption{position:absolute;inset:auto 30px 29px 80px;z-index:2;color:white;transition:transform .45s}
.wl-card-caption>span{font-size:13px;color:#e5c5a1;letter-spacing:.4px}
.wl-project-card .wl-card-caption h3{font-size:clamp(25px,2.8vw,40px);line-height:1.35;margin:10px 0 12px;color:#fff;text-wrap:balance}
.wl-card-caption>small{font-size:13px;color:#e2d9cf;display:block}
.wl-card-open{z-index:2;background:#ffffff13;border:1px solid #ffffff5c;color:#fff;left:28px;bottom:30px;border-radius:50%}
.wl-project-card:hover .wl-card-open{color:var(--wl-ink);background:var(--wl-cream);transform:translate(-2px,-2px)}
.wl-project-card:hover .wl-card-caption{transform:translateY(-4px)}
.wl-project-card:focus-visible{outline:3px solid var(--wl-rust);outline-offset:5px}
.wl-card-demo{z-index:2;top:20px;right:22px;border:1px solid #ffffff26;border-radius:2px}
.wl-work-head{min-height:0;padding-block:65px 70px}.wl-work-head h1{font-size:clamp(45px,5vw,76px)}
.wl-project-hero{position:relative;isolation:isolate;min-height:540px;height:min(76svh,760px);background:#241c15;color:white;overflow:hidden}
.wl-project-hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-3;animation:wl-cover-settle 1.2s ease-out both}
.wl-project-hero-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(0deg,#17120ff2 0%,#17120f9c 38%,#17120f24 85%),linear-gradient(270deg,#17120f52,transparent 70%)}
.wl-project-hero::after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:90px;background:linear-gradient(0deg,var(--wl-paper),transparent);z-index:-1;opacity:.22}
.wl-project-hero-content{height:100%;padding-block:35px 65px;display:flex;flex-direction:column;justify-content:space-between}
.wl-project-hero .wl-breadcrumb{color:#f0e5d7}.wl-project-hero .wl-breadcrumb a:hover{color:#dfba91}
.wl-project-hero h1{font-size:clamp(48px,6vw,94px);font-weight:600;line-height:1.22;letter-spacing:-2px;max-width:1000px;margin:17px 0 24px;text-wrap:balance;text-shadow:0 6px 30px #0004}
.wl-project-explore{display:inline-flex;gap:20px;align-items:center;font-size:14px;color:#e6d8c6}.wl-project-explore span{display:grid;place-items:center;width:36px;height:36px;border:1px solid #ffffff50;border-radius:50%;transition:transform .25s}.wl-project-explore:hover span{transform:translateY(4px)}
.wl-project-story{display:grid;grid-template-columns:.8fr 1.2fr;gap:10%;padding-block:95px;scroll-margin-top:30px}
.wl-project-story h2{font-size:clamp(36px,4vw,57px);line-height:1.35;margin-top:17px;letter-spacing:-1.5px}
.wl-project-story p{font-size:19px;line-height:2.1;white-space:pre-line;color:var(--wl-muted)}
.wl-project-story .wl-text-link{margin-top:28px}
.wl-project-gallery-section{padding-bottom:85px}.wl-gallery-hint{color:var(--wl-muted);font-size:14px;display:flex;gap:15px;align-items:center}
.wl-gallery{gap:22px}.wl-gallery .wl-gallery-item:nth-child(n){grid-column:auto;aspect-ratio:1.35;position:relative;border-radius:4px;isolation:isolate}
.wl-gallery .wl-gallery-item:only-child{grid-column:1/-1;aspect-ratio:1.9}
.wl-gallery-item img{height:100%;max-height:none}.wl-gallery-zoom{position:absolute;left:18px;bottom:18px;width:42px;height:42px;display:grid;place-items:center;background:#f7f2e9e8;color:var(--wl-ink);border-radius:50%;font-size:24px;transition:transform .25s}
.wl-gallery-item:hover .wl-gallery-zoom{transform:rotate(-10deg)}
.wl-project-film{padding-bottom:100px}.wl-project-film .wl-video{margin:0;overflow:hidden;border-radius:4px;background:#1e1915;box-shadow:0 20px 55px #24170e18}
.wl-lightbox{background:#181411f7;border-radius:6px;width:min(96vw,1500px);height:min(94dvh,1000px);padding:55px 70px 24px;color:#fff;overflow:hidden}
.wl-lightbox figure{margin:0;width:100%;height:100%;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:14px}
.wl-lightbox img{min-height:0;touch-action:pan-y;user-select:none}
.wl-lightbox figcaption{display:flex;justify-content:space-between;gap:18px;font-size:14px;line-height:1.5;color:#d2c4b1}
.wl-lightbox [data-lightbox-count]{direction:ltr;white-space:nowrap;font-variant-numeric:tabular-nums}
.wl-lightbox button{width:40px;height:40px;border:1px solid #ffffff42;border-radius:50%;background:#ffffff12;color:white;transition:background .2s;font-size:25px}
.wl-lightbox button:hover{background:#ffffff30}.wl-lightbox [data-lightbox-close]{top:12px;left:15px}
.wl-lightbox .wl-gallery-prev{top:46%;right:14px;left:auto}.wl-lightbox .wl-gallery-next{top:46%;left:14px}
.wl-lightbox [data-lightbox-next][hidden],.wl-lightbox [data-lightbox-prev][hidden]{display:none}
.wl-reveal{animation:wl-rise .7s cubic-bezier(.2,.7,.3,1) both}
@keyframes wl-rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes wl-cover-settle{from{transform:scale(1.045)}to{transform:scale(1)}}
@media(max-width:760px){.wl-symbol{width:55px;height:34px}.wl-brand{gap:9px}.wl-brand-text{font-size:22px}.wl-brand-text small{font-size:5.5px}.wl-header{gap:9px}.wl-header-actions{gap:7px}.wl-project-grid{grid-template-columns:1fr;gap:20px}.wl-project-grid .wl-project-card:nth-child(n) .wl-card-image{aspect-ratio:1.16}.wl-card-caption{inset:auto 21px 24px 68px}.wl-project-card .wl-card-caption h3{font-size:28px}.wl-card-caption>span,.wl-card-caption>small{font-size:12px}.wl-card-open{width:39px;height:39px;left:18px;bottom:25px}.wl-card-demo{top:15px;right:16px}.wl-project-hero{height:580px;min-height:0;max-height:78svh}.wl-project-hero-content{padding-block:24px 45px}.wl-project-hero h1{font-size:48px;letter-spacing:-1px}.wl-project-story{grid-template-columns:1fr;gap:26px;padding-block:65px}.wl-project-story h2{font-size:39px}.wl-project-story p{font-size:17px;line-height:1.95}.wl-project-gallery-section .wl-section-heading{display:block}.wl-gallery-hint{margin-top:16px;font-size:13px}.wl-gallery{gap:15px}.wl-gallery .wl-gallery-item:nth-child(n),.wl-gallery .wl-gallery-item:only-child{grid-column:1;aspect-ratio:1.2}.wl-project-gallery-section,.wl-project-film{padding-bottom:65px}.wl-lightbox{width:100vw;height:100dvh;max-height:100dvh;border-radius:0;padding:64px 14px 75px}.wl-lightbox .wl-gallery-prev,.wl-lightbox .wl-gallery-next{top:auto;bottom:15px}.wl-lightbox .wl-gallery-prev{right:calc(50% - 55px)}.wl-lightbox .wl-gallery-next{left:calc(50% - 55px)}.wl-lightbox figcaption{font-size:12px}.wl-work-head{padding-block:48px 55px}}
@media(prefers-reduced-motion:reduce){.wl-reveal,.wl-project-hero-photo{animation:none}.wl-project-card:hover img,.wl-project-card:hover .wl-card-caption{transform:none}}
@media(max-width:760px){.wl-lightbox{width:100%;max-width:100%}}
/* One focused image, with navigation and optional full-screen viewing. */
.wl-gallery-viewer{overflow:hidden;background:#e9e0d5;border:1px solid var(--wl-line);border-radius:8px}
.wl-gallery.wl-gallery-stage{display:block;background:#211b16}
.wl-gallery-stage .wl-gallery-item:nth-child(n){display:block;width:100%;height:clamp(300px,53vw,660px);aspect-ratio:auto;border-radius:0}
.wl-gallery-stage .wl-gallery-item[hidden]{display:none}
.wl-gallery-stage .wl-gallery-item img{object-fit:contain;max-height:none;animation:wl-photo-in .35s ease-out;touch-action:pan-y}
.wl-gallery-stage .wl-gallery-item:hover img{transform:none}
.wl-gallery-toolbar{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;gap:16px;background:var(--wl-cream)}
.wl-gallery-navigation{display:flex;align-items:center;gap:18px}
.wl-gallery-navigation button{width:44px;height:44px;border:1px solid var(--wl-line);border-radius:50%;background:transparent;color:var(--wl-ink);font-size:24px;cursor:pointer}
.wl-gallery-navigation button:hover{background:var(--wl-ink);color:white}
.wl-gallery-navigation button[hidden],.wl-gallery-thumbs[hidden]{display:none}
[data-gallery-count]{font-variant-numeric:tabular-nums;font-size:15px;min-width:40px;text-align:center}
.wl-gallery-expand{display:flex;gap:12px;align-items:center;background:transparent;color:var(--wl-ink);font-size:15px;cursor:pointer;padding:10px 0}
.wl-gallery-expand span{font-size:25px}
.wl-gallery-thumbs{display:flex;gap:10px;overflow-x:auto;padding:16px 22px;scrollbar-width:thin}
.wl-gallery-thumbs button{flex:0 0 96px;height:70px;padding:3px;border:2px solid transparent;border-radius:5px;background:transparent;opacity:.55;cursor:pointer}
.wl-gallery-thumbs button[aria-pressed=true]{border-color:var(--wl-rust);opacity:1}
.wl-gallery-thumbs button:hover{opacity:1}
.wl-gallery-thumbs img{width:100%;height:100%;object-fit:cover;border-radius:2px}
.wl-gallery-viewer :focus-visible{outline:3px solid var(--wl-rust);outline-offset:3px}
.wl-lightbox{width:100%;height:100dvh;max-width:100%;max-height:100dvh;border-radius:0}
@keyframes wl-photo-in{from{opacity:.4}to{opacity:1}}
@media(max-width:760px){.wl-gallery-stage .wl-gallery-item:nth-child(n){height:340px;aspect-ratio:auto}.wl-gallery-toolbar{padding:12px;gap:8px}.wl-gallery-navigation{gap:8px}.wl-gallery-expand{font-size:13px;gap:7px}.wl-gallery-thumbs{padding:12px}.wl-gallery-thumbs button{flex-basis:76px;height:58px}}
@media(prefers-reduced-motion:reduce){.wl-gallery-stage .wl-gallery-item img{animation:none}}
