@keyframes gfade{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes gin{0%{opacity:0}to{opacity:1}}.gallery-page{--gallery-pad:clamp(24px,4vw,64px);min-height:100vh;overflow-x:clip}.gallery-nav{z-index:60;height:96px;padding:0 var(--gallery-pad);letter-spacing:.16em;text-transform:uppercase;color:#efece494;align-items:center;gap:clamp(18px,3vw,32px);font:11px JetBrains Mono,monospace;display:flex;position:absolute;inset:0 0 auto}.gallery-nav>.mono-brand{color:#efece4}.gallery-nav>span{gap:clamp(16px,2.4vw,30px);margin-left:auto;display:flex}.gallery-nav>span a{color:#efece494}.gallery-nav>span a.active{color:#efece4;border-bottom:1px solid var(--accent);padding-bottom:3px}.gallery-nav .theme-toggle{writing-mode:initial;color:#efece499;border:1px solid #efece433;gap:9px;padding:8px 12px;position:static}.gallery-nav .theme-toggle i{background:var(--accent);border-radius:50%;width:7px;height:7px}.gallery-hero{height:clamp(540px,92vh,980px);position:relative;overflow:hidden}.gallery-hero>img{object-fit:cover;object-position:50% 42%;width:100%;height:100%;animation:1.4s both gin;position:absolute;inset:0;mask-image:linear-gradient(#000 0% 44%,#000000db 62%,#00000080 80%,#00000029 92%,#0000 100%)}.gallery-hero>i{background:linear-gradient(#080a0e9e,#080a0e47 52%,#0000);height:190px;position:absolute;inset:0 0 auto}.gallery-hero>div{left:var(--gallery-pad);right:var(--gallery-pad);justify-content:space-between;align-items:flex-end;gap:32px;display:flex;position:absolute;bottom:clamp(34px,6vh,66px)}.gallery-hero section{flex-direction:column;gap:clamp(16px,2.4vh,24px);display:flex}.gallery-hero h1{letter-spacing:-.04em;margin:0;font-size:clamp(30px,4.4vw,62px);font-weight:500;line-height:1;animation:.9s cubic-bezier(.16,1,.3,1) .1s both gfade}.gallery-hero small{letter-spacing:.16em;text-transform:uppercase;color:var(--fg-34);font:9px JetBrains Mono,monospace}.gallery-hero p{text-align:right;max-width:26em;color:var(--fg-62);text-wrap:pretty;margin:0;font-size:clamp(15px,1.6vw,19px);line-height:1.65;animation:.9s cubic-bezier(.16,1,.3,1) .26s both gfade}.gallery-controls{z-index:40;background:var(--bg);padding:clamp(15px,2.2vh,20px) var(--gallery-pad);border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:24px;display:flex;position:sticky;top:0}.gallery-controls>div{flex-wrap:wrap;gap:clamp(16px,2.4vw,30px);display:flex}.gallery-controls button{color:var(--fg);opacity:.42;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #0000;gap:8px;padding:0 0 3px;font:11px JetBrains Mono,monospace;transition:border-color .4s,opacity .4s;display:flex}.gallery-controls button.is-active{opacity:1;border-color:var(--accent)}.gallery-controls button span+span{opacity:.45}.gallery-controls>span{letter-spacing:.16em;text-transform:uppercase;color:var(--fg-34);font:11px JetBrains Mono,monospace}.gallery-grid{padding:clamp(26px,5vh,60px) var(--gallery-pad) clamp(90px,16vh,190px);align-items:flex-start;gap:clamp(9px,1.1vw,16px);display:flex}.gallery-column{flex-direction:column;gap:clamp(9px,1.1vw,16px);min-width:0;display:flex}.gallery-tile{background:var(--surface);cursor:zoom-in;border:0;width:100%;padding:0;animation:.55s both gin;position:relative;overflow:hidden}.gallery-tile img{object-fit:cover;width:100%;height:100%;transition:opacity .5s,transform .7s cubic-bezier(.16,1,.3,1);position:absolute;inset:0}.gallery-tile:hover img{opacity:.74;transform:scale(1.035)}.gallery-tile>i{background:linear-gradient(#0000,#06080b4d 50%,#06080bbd);height:36%;position:absolute;inset:auto 0 0}.gallery-tile>span{color:#efece4;letter-spacing:.14em;text-transform:uppercase;gap:8px;font:9px JetBrains Mono,monospace;display:flex;position:absolute;bottom:9px;left:11px}.gallery-tile small{font:inherit;opacity:.6}.lightbox{z-index:120;color:#efece4;background:#06080bf5;flex-direction:column;animation:.3s both gin;display:flex;position:fixed;inset:0}.lightbox>header{letter-spacing:.16em;text-transform:uppercase;color:#efece480;align-items:center;gap:20px;padding:20px clamp(20px,4vw,52px);font:11px JetBrains Mono,monospace;display:flex}.lightbox>header>div{align-items:center;gap:18px;margin-left:auto;display:flex}.lightbox button{color:#efece4b3;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;background:0 0;border:0}.lightbox button:hover{color:var(--accent)}.lightbox .lightbox-close{border:1px solid #efece433;padding:7px 11px}.lightbox-body{flex:1;gap:clamp(20px,3vw,44px);min-height:0;padding:0 clamp(20px,4vw,52px) clamp(24px,5vh,52px);display:flex}.lightbox figure{flex:1;justify-content:center;align-items:center;min-width:0;margin:0;display:flex}.lightbox figure img{object-fit:contain;max-width:100%;max-height:100%}.lightbox aside{flex-direction:column;justify-content:flex-end;gap:16px;width:clamp(200px,22vw,290px);padding-bottom:6px;display:flex}.lightbox aside small{letter-spacing:.18em;text-transform:uppercase;color:var(--accent);font:10px JetBrains Mono,monospace}.lightbox h2{letter-spacing:-.03em;margin:0;font-size:clamp(19px,2vw,26px);font-weight:500;line-height:1.15}.lightbox aside p{color:#efece499;margin:0;font-size:15px;line-height:1.6}.lightbox aside>div{letter-spacing:.14em;text-transform:uppercase;color:#efece46b;border-top:1px solid #efece424;margin-top:6px;padding-top:14px;font:10px/1.9 JetBrains Mono,monospace}.gallery-footer{border-top:1px solid var(--line);padding:clamp(34px,6vh,60px) var(--gallery-pad);letter-spacing:.16em;text-transform:uppercase;color:var(--fg-42);flex-wrap:wrap;justify-content:space-between;gap:24px;font:11px JetBrains Mono,monospace;display:flex}.gallery-footer>span:last-child{gap:clamp(16px,2.4vw,30px);display:flex}@media (width<=900px){.gallery-nav>.mono-brand span{display:none}.gallery-hero{height:clamp(360px,56vh,520px)}.gallery-hero>div{flex-direction:column;align-items:flex-start;gap:18px}.gallery-hero p{text-align:left;max-width:none}.gallery-controls{flex-direction:column;align-items:flex-start;gap:14px}.lightbox-body{flex-direction:column}.lightbox aside{width:auto}.lightbox aside>div{display:none}}@media (width<=620px){.gallery-nav,.gallery-nav>span{gap:14px}.gallery-nav>span a:nth-child(3),.gallery-nav>span a:nth-child(4){display:none}.gallery-nav .theme-toggle{padding:7px}.gallery-nav .theme-toggle b,.lightbox>header>div>span{display:none}}@media (prefers-reduced-motion:reduce){.gallery-hero>*,.gallery-tile,.lightbox{animation-duration:.001ms!important}}
