*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}.gallery-page{min-height:100vh;background:transparent!important;color:var(--u-text);font-family:'IBM Plex Sans',sans-serif;-webkit-font-smoothing:antialiased}.gallery-shell{width:min(1180px,100%);margin:0 auto;padding-left:clamp(20px,5vw,48px);padding-right:clamp(20px,5vw,48px)}.gallery-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--u-bg) 90%,transparent);border-bottom:1px solid var(--u-line);backdrop-filter:blur(10px)}.gallery-header__inner{min-height:80px;display:flex;align-items:center;justify-content:space-between;gap:20px}.gallery-brand{display:flex;align-items:center;gap:12px;color:var(--u-text);font:600 25px/1.05 'Spectral',serif;text-decoration:none;white-space:nowrap;min-width:0}.gallery-brand img{width:52px;height:52px;border-radius:14px}.gallery-back{padding:9px 16px;border:1px solid var(--u-line);border-radius:14px;color:var(--u-text);font-size:14px;text-decoration:none;white-space:nowrap}.gallery-intro{padding-top:clamp(40px,6vw,72px);padding-bottom:clamp(24px,3vw,32px)}.gallery-kicker{margin:0 0 18px!important;color:var(--u-accent)!important;font:500 12px/1.4 'IBM Plex Mono',monospace;letter-spacing:.16em;text-transform:uppercase}.gallery-intro h1{max-width:20ch;margin:0 0 18px;color:var(--u-text);font:400 clamp(32px,5vw,54px)/1.05 'Spectral',serif;letter-spacing:-.015em}.gallery-intro>p:last-child{max-width:60ch;margin:0;color:var(--u-muted);font-size:clamp(15px,1.5vw,17px);line-height:1.6}.gallery-filter-shell{position:sticky;top:80px;z-index:40;background:color-mix(in srgb,var(--u-bg) 90%,transparent);backdrop-filter:blur(10px)}.examples-filters{display:flex;flex-wrap:wrap;gap:9px;padding:14px 0;border-bottom:1px solid var(--u-line)}.gallery-filter{padding:9px 15px;border:1px solid var(--u-line);border-radius:999px;background:var(--u-card);color:var(--u-muted);font:500 13px/1.2 'IBM Plex Sans',sans-serif;white-space:nowrap;cursor:pointer}.gallery-filter span{margin-left:7px;opacity:.55;font:400 11px/1 'IBM Plex Mono',monospace}.gallery-filter.is-active{border-color:var(--u-accent);background:var(--u-accent);color:#fff}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:20px;padding-top:clamp(24px,3vw,32px);padding-bottom:clamp(56px,8vw,96px)}.gallery-card{display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--u-line);border-radius:24px;background:var(--u-card);box-shadow:0 12px 40px rgba(0,0,0,.08)}.gallery-card[hidden]{display:none}.gallery-cover{position:relative;display:block;cursor:zoom-in}.gallery-cover img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--u-surface-2)}.gallery-cover>span{position:absolute;top:12px;left:12px;padding:5px 9px;border-radius:7px;background:rgba(20,17,14,.72);color:#fff;font:400 10px/1.3 'IBM Plex Mono',monospace;letter-spacing:.08em;text-transform:uppercase}.gallery-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(48px,1fr));gap:6px;padding:10px 12px 0}.gallery-thumb{padding:0;border:2px solid transparent;border-radius:8px;background:transparent;cursor:pointer}.gallery-thumb.is-active{border-color:var(--u-accent)}.gallery-thumb img{display:block;width:100%;aspect-ratio:1;object-fit:cover;border-radius:6px}.gallery-card__body{display:flex;flex:1;flex-direction:column;gap:8px;padding:16px 18px}.gallery-card__body h2{margin:0;color:var(--u-text);font:500 19px/1.25 'Spectral',serif}.gallery-card__body p{margin:0;color:var(--u-muted);font:400 11px/1.5 'IBM Plex Mono',monospace}.gallery-card__body small{margin-top:auto;color:var(--u-soft);font:400 11px/1.5 'IBM Plex Mono',monospace}.gallery-photo-label{color:var(--u-accent);font:500 11px/1.4 'IBM Plex Mono',monospace;letter-spacing:.08em;text-transform:uppercase}.gallery-cta{border-top:1px solid var(--u-line);background:var(--u-surface-2)}.gallery-cta>.gallery-shell{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:clamp(48px,6vw,80px);padding-bottom:clamp(48px,6vw,80px)}.gallery-cta h2{margin:0 0 10px;color:var(--u-text);font:400 clamp(24px,3.4vw,36px)/1.1 'Spectral',serif}.gallery-cta p{max-width:52ch;margin:0;color:var(--u-muted);font-size:15px;line-height:1.6}.gallery-cta a{padding:16px 26px;border-radius:14px;background:var(--u-accent);color:#fff;font-weight:500;text-decoration:none;white-space:nowrap}.gallery-lightbox{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:clamp(16px,4vw,56px);background:rgba(20,17,14,.94)}.gallery-lightbox[hidden]{display:none}.gallery-lightbox>img{max-width:100%;max-height:100%;object-fit:contain;border-radius:10px;box-shadow:0 24px 70px rgba(0,0,0,.55)}.gallery-lightbox button{position:absolute;display:grid;place-items:center;border:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;cursor:pointer}.gallery-lightbox__close{top:18px;right:20px;width:44px;height:44px;font-size:20px}.gallery-lightbox__prev,.gallery-lightbox__next{top:50%;width:52px;height:52px;transform:translateY(-50%);font-size:28px}.gallery-lightbox__prev{left:clamp(12px,3vw,32px)}.gallery-lightbox__next{right:clamp(12px,3vw,32px)}.gallery-lightbox__counter{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);color:rgba(255,255,255,.85);font:400 12px/1 'IBM Plex Mono',monospace;letter-spacing:.1em}@media(max-width:700px){.gallery-header__inner{min-height:68px}.gallery-brand{font-size:17px}.gallery-brand img{width:42px;height:42px}.gallery-back{padding:8px 10px;font-size:12px}.gallery-filter-shell{top:68px;overflow-x:auto}.examples-filters{flex-wrap:nowrap}.gallery-grid{grid-template-columns:1fr}.gallery-cta>.gallery-shell{align-items:stretch;flex-direction:column}.gallery-cta a{text-align:center}.gallery-lightbox__prev,.gallery-lightbox__next{width:44px;height:44px}}

@media(max-width:700px){.gallery-brand span{display:none}.gallery-header__inner{gap:10px}.gallery-back{margin-left:auto}}
