body.gallery-page{background:#06121c;color:var(--paper)}
.g-header{position:fixed;inset:0 0 auto;z-index:40;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 4vw;color:var(--paper);background:linear-gradient(#06121ccc,#06121c00);transition:background .4s,backdrop-filter .4s}
.g-header.is-solid{background:#06121cd9;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.g-nav{display:flex;align-items:center;gap:28px}.g-back{font-size:12px;opacity:.85}.g-back:hover{opacity:1}
/* hero */
.g-hero{position:relative;height:100svh;min-height:620px;overflow:hidden;background:#06121c}
.g-slides,.g-slide{position:absolute;inset:0}.g-slide{opacity:0;transition:opacity 1.8s ease}.g-slide.on{opacity:1}
.g-slide img{transform:scale(1.02);transition:transform 9s linear}.g-slide.on img{transform:scale(1.14)}
.g-hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,#06121c88,transparent 30%,transparent 45%,#06121cf0)}
.g-hero-copy{position:absolute;left:6vw;right:6vw;bottom:15vh}
.g-hero-copy h1{font-size:clamp(70px,13vw,210px);line-height:.92;letter-spacing:-.055em;margin:22px 0 28px}.g-hero-copy h1 span,.g-hero-copy h1 i{display:block}.g-hero-copy h1 i{padding-left:.55em;color:#f2d9a8}
.g-lead{font-size:clamp(13px,1.2vw,16px);line-height:1.75;color:#ffffffc4}
.g-hero-copy>*{opacity:0;transform:translateY(24px);animation:gUp 1.2s .2s cubic-bezier(.2,.7,.2,1) forwards}.g-hero-copy h1{animation-delay:.35s}.g-lead{animation-delay:.6s}
@keyframes gUp{to{opacity:1;transform:none}}
.g-hero-meta{position:absolute;right:4vw;bottom:42px;display:flex;flex-direction:column;align-items:flex-end;gap:14px;font-size:9px;letter-spacing:.17em}
.g-dots{display:flex;gap:7px}.g-dots i{width:26px;height:2px;background:#ffffff55;position:relative;overflow:hidden}.g-dots i.on:after{content:'';position:absolute;inset:0;background:#fff;animation:gDot 6s linear forwards}
@keyframes gDot{from{transform:translateX(-100%)}to{transform:none}}
.g-cue{position:absolute;left:6vw;bottom:34px;display:flex;align-items:center;gap:22px;font-size:8px;letter-spacing:.15em}.g-cue b{font-size:22px;font-weight:400;animation:drift 3s ease-in-out infinite}
/* filter */
.g-filterbar{position:sticky;top:62px;z-index:20;padding:16px 4vw;background:#06121ce6;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid #ffffff1c}
.g-filter{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none}.g-filter::-webkit-scrollbar{display:none}
.g-filter button{flex-shrink:0;font-size:12px;padding:11px 18px;border:1px solid #ffffff3a;border-radius:99px;color:#ffffffcc;transition:background .25s,color .25s,border-color .25s;white-space:nowrap}
.g-filter button sup{font-size:9px;margin-left:5px;opacity:.6}.g-filter button:hover{border-color:#fff}.g-filter button.active{background:var(--paper);color:var(--brand);border-color:var(--paper)}
/* masonry */
.g-grid{columns:3;column-gap:12px;padding:12px 4vw 90px;max-width:1900px;margin:0 auto}
.g-item{display:block;position:relative;width:100%;margin:0 0 12px;break-inside:avoid;overflow:hidden;background:#0c2233;cursor:zoom-in;opacity:0;transform:translateY(34px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.g-item.in{opacity:1;transform:none}
.g-item img{height:auto;transform:scale(1.12);transition:transform 1.6s cubic-bezier(.2,.7,.2,1),filter .6s}.g-item.in img{transform:scale(1)}
.g-item:hover img{transform:scale(1.06);filter:brightness(.82)}
.g-item .g-cap{position:absolute;left:0;right:0;bottom:0;padding:48px 20px 18px;background:linear-gradient(transparent,#06121ccc);text-align:left;opacity:0;transform:translateY(12px);transition:opacity .45s,transform .45s}
.g-item:hover .g-cap,.g-item:focus-visible .g-cap{opacity:1;transform:none}
.g-cap small{display:block;font-size:8px;letter-spacing:.17em;color:#f2d9a8;margin-bottom:7px}.g-cap strong{font:400 clamp(20px,1.8vw,28px)/1.1 var(--serif);letter-spacing:-.03em}
.g-item:after{content:'+';position:absolute;top:14px;right:14px;width:34px;height:34px;border-radius:50%;background:#ffffffdd;color:var(--brand);display:grid;place-items:center;font-size:20px;opacity:0;transform:scale(.6);transition:.35s}.g-item:hover:after{opacity:1;transform:none}
@media(hover:none){.g-item .g-cap{opacity:1;transform:none;padding-top:34px}.g-item:after{display:none}}
/* cta */
.g-cta{text-align:center;padding:12vh 6vw;background:var(--brand)}.g-cta h2{margin:22px 0 34px;font-size:clamp(40px,6vw,96px)}.g-cta i{color:#f2d9a8}.g-cta .button{display:inline-flex;gap:28px;font-size:11px;padding:16px 22px}
.g-footer{background:#06121c;color:#ffffff99;border-top:1px solid #ffffff1c}
/* lightbox */
.lb[hidden]{display:none}.lb{position:fixed;inset:0;z-index:100;display:grid;grid-template-rows:1fr auto;color:#fff;animation:lbIn .35s ease}
@keyframes lbIn{from{opacity:0}}
.lb-bg{position:absolute;inset:-60px;background:#000 center/cover;filter:blur(60px) brightness(.35) saturate(1.3);transition:background-image .4s}
.lb-stage{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:70px 90px 10px;min-height:0}
.lb-stage img{width:auto;height:auto;max-width:100%;max-height:calc(100svh - 230px);object-fit:contain;box-shadow:0 30px 90px #0009;transition:opacity .3s}
.lb-stage img.swap{opacity:0}
.lb-stage figcaption{display:flex;gap:16px;align-items:baseline;font-size:12px;text-align:center}.lb-tag{font-size:8px;letter-spacing:.17em;color:#f2d9a8}.lb-title{font:400 22px var(--serif);letter-spacing:-.03em}
.lb-close,.lb-nav{position:absolute;z-index:2;width:52px;height:52px;border-radius:50%;border:1px solid #ffffff55;display:grid;place-items:center;font-size:24px;background:#06121c55;backdrop-filter:blur(6px);transition:background .25s,color .25s}.lb-close:hover,.lb-nav:hover{background:#fff;color:#06121c}
.lb-close{top:18px;right:20px;font-size:30px}.lb-prev{left:20px;top:50%;margin-top:-40px}.lb-next{right:20px;top:50%;margin-top:-40px}
.lb-bottom{position:relative;display:flex;align-items:center;gap:22px;padding:6px 24px 20px}.lb-counter{font-size:10px;letter-spacing:.17em;flex-shrink:0}
.lb-thumbs{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;padding:4px 0;flex:1}.lb-thumbs::-webkit-scrollbar{display:none}
.lb-thumbs button{flex:0 0 74px;height:48px;opacity:.45;border:2px solid transparent;transition:opacity .25s,border-color .25s}.lb-thumbs button.on{opacity:1;border-color:#fff}.lb-thumbs button:hover{opacity:.9}
body.lb-open{overflow:hidden}
@media(max-width:1000px){.g-grid{columns:2}}
@media(max-width:700px){.g-header{padding:14px 5vw}.g-back{display:none}.g-grid{column-gap:8px;padding:8px 4vw 60px}.g-item{margin-bottom:8px}.g-filterbar{top:56px;padding:12px 4vw}.g-hero-copy{bottom:17vh}.g-hero-meta{left:6vw;right:auto;bottom:92px;align-items:flex-start}.g-cue{bottom:30px}
.lb-stage{padding:64px 12px 6px}.lb-stage img{max-height:calc(100svh - 210px)}.lb-nav{top:auto;bottom:90px;margin:0;width:44px;height:44px}.lb-prev{left:12px}.lb-next{right:12px}.lb-thumbs{display:none}.lb-bottom{justify-content:center}.lb-stage figcaption{flex-direction:column;gap:4px}}
@media(max-width:480px){.g-grid{columns:1}}
@media(prefers-reduced-motion:reduce){.g-slide img,.g-item img{transition:none;transform:none!important}.g-item{opacity:1;transform:none;transition:none}.g-hero-copy>*{animation:none;opacity:1;transform:none}.g-dots i.on:after{animation:none;transform:none}}
