/* Gallery + album + lightbox. SFA royal blue; ease-out <250ms, transform/opacity only; hover on real pointers only. */
:root{--gl-ease:cubic-bezier(.23,1,.32,1);--gl-line:#C5CCE0}
html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body.gl-lock{overflow:hidden}
.gl-hero{background:linear-gradient(110deg,var(--brand-deep),var(--brand) 62%,#2a45e0);color:#fff;padding:26px 0 52px}
.gl-hero-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:20px 44px;align-items:center}
.gl-meta{display:none;margin:0;color:#dbe4ff;font-size:.95rem}
.gl-hero-r{min-width:0}
.gl-hint{font-size:.8rem;color:#dbe4ff;margin:8px 0 0;text-align:right;max-width:420px;margin-left:auto}
.gl-hero-grid.is-solo{grid-template-columns:minmax(0,1fr)}
.gl-crumbs{font-size:.84rem;color:#bcd0ff;margin-bottom:12px}.gl-crumbs a{color:#dbe4ff;text-decoration:none}
.gl-eyebrow{color:var(--gold-soft,#f0c777);font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700}
.gl-hero h1{font-family:var(--font-display);font-size:clamp(2rem,4.2vw,2.9rem);line-height:1.08;margin:6px 0;color:#fff}
.gl-lede{color:#dbe4ff;max-width:560px;margin:0 0 14px;font-size:1rem}
.gl-hero-t>.gl-stats{margin-top:0}
.gl-stats{display:flex;flex-wrap:wrap;gap:10px}
.gl-stat{display:flex;align-items:baseline;gap:7px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:6px 16px}
.gl-stat b{font-family:var(--font-display);font-size:1.3rem;line-height:1.1}.gl-stat span{font-size:.78rem;color:#dbe4ff}
.gl-collage{display:grid;grid-template-columns:1.5fr 1fr;grid-template-rows:repeat(2,minmax(0,1fr));gap:10px;aspect-ratio:2/1;max-width:420px;margin-left:auto}
.gl-collage a{position:relative;display:block;border-radius:12px;overflow:hidden;background:rgba(255,255,255,.14);border:2px solid rgba(255,255,255,.3)}
.gl-collage a:first-child{grid-row:span 2}
.gl-collage img{width:100%;height:100%;object-fit:cover;object-position:50% 30%;display:block;transition:transform .25s var(--gl-ease)}

.gl-bar{display:flex;gap:8px;align-items:center;margin-top:-26px;position:relative;z-index:2;background:#fff;border:1px solid var(--border);border-radius:16px;padding:10px 14px;box-shadow:0 8px 22px rgba(17,31,143,.10);overflow-x:auto;scrollbar-width:none}
.gl-bar::-webkit-scrollbar{display:none}
.gl-sort{margin-left:auto;padding-left:12px;flex:none;font:600 .86rem var(--font-body);color:var(--ink-soft)}
.gl-bar>b{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-faint);margin-right:4px;flex:none}
.gl-chip{flex:none;display:inline-flex;align-items:center;min-height:40px;padding:0 16px;border-radius:999px;border:1.5px solid var(--border);background:#fff;color:var(--ink);font:600 .86rem var(--font-body);text-decoration:none;transition:transform .15s var(--gl-ease),border-color .15s var(--gl-ease)}
.gl-chip[aria-current=true]{background:var(--brand);border-color:var(--brand);color:#fff}
.gl-chip:active{transform:scale(.97)}

.gl-album{margin-top:44px}
.gl-ah{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:10px 16px;margin-bottom:14px}
.gl-tag{display:inline-block;background:var(--brand-tint);color:var(--brand);font-weight:700;font-size:.74rem;border-radius:999px;padding:3px 11px;margin-right:8px}
.gl-date{font-size:.82rem;color:var(--ink-faint)}
.gl-ah h2{font-family:var(--font-display);font-size:clamp(1.4rem,3vw,1.9rem);margin:6px 0 2px;line-height:1.15}
.gl-ah p{margin:0;color:var(--ink-soft);font-size:.92rem;max-width:620px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.gl-ah-r{display:flex;align-items:center;gap:12px}.gl-n{font-weight:700;font-size:.9rem;color:var(--ink-soft)}
.gl-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 20px;border-radius:999px;border:1.5px solid var(--brand);background:var(--brand);color:#fff;font:700 .92rem var(--font-body);text-decoration:none;cursor:pointer;transition:transform .15s var(--gl-ease),box-shadow .15s var(--gl-ease)}
.gl-btn--line{background:#fff;color:var(--brand);border-color:var(--gl-line)}
.gl-btn:active{transform:scale(.97)}
.gl-btn:focus-visible,.gl-chip:focus-visible,.gl-tile:focus-visible,.gl-ph:focus-visible,.gl-lb button:focus-visible{outline:3px solid var(--gold,#C98A2B);outline-offset:2px}
.gl-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.gl-grid .gl-tile{aspect-ratio:4/3}
.gl-tile{position:relative;display:block;border-radius:12px;overflow:hidden;background:var(--brand-tint)}
.gl-tile img,.gl-ph img{width:100%;height:100%;object-fit:cover;object-position:50% 30%;display:block;transition:transform .25s var(--gl-ease)}
.gl-tile:active img,.gl-ph:active img{transform:scale(1.02)}
.gl-more{position:absolute;inset:0;background:rgba(17,31,143,.72);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-align:center}
.gl-more b{font-family:var(--font-display);font-size:2.1rem;line-height:1}.gl-more span{font-weight:700;font-size:.84rem}
.gl-more-m,.gl-more-t{display:none}
.gl-all-m{display:none}
.gl-empty{background:#fff;border:1px dashed var(--gl-line);border-radius:16px;padding:34px 20px;text-align:center;color:var(--ink-soft);margin:30px 0}
.gl-cta{margin:44px 0 56px;border-radius:18px;background:#fff;border:1px solid var(--border);padding:20px 24px;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center}
.gl-cta b{font-family:var(--font-display);font-size:1.3rem;display:block}.gl-cta span{color:var(--ink-soft);font-size:.9rem}

/* album page: masonry + load more */
.gl-masonry{column-count:3;column-gap:10px;margin-top:22px}
.gl-ph{position:relative;display:block;margin:0 0 10px;break-inside:avoid;border-radius:12px;overflow:hidden;background:var(--brand-tint);min-height:90px;padding:0;border:0;width:100%;cursor:zoom-in}
.gl-ph[hidden]{display:none}
.gl-ph img{height:auto;object-position:50% 50%}
.gl-loadbar{text-align:center;margin:22px 0 48px}.gl-loadbar p{color:var(--ink-soft);margin:0 0 10px;font-size:.9rem}
.gl-others{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin:8px 0 56px}
.gl-others a{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:14px;overflow:hidden;background:#fff;text-decoration:none;color:inherit}
.gl-others img{width:100%;height:200px;object-fit:cover;object-position:50% 30%;display:block;background:var(--brand-tint)}
.gl-others b{padding:10px 14px 2px;font-size:.95rem}.gl-others small{padding:0 14px 12px;color:var(--ink-soft)}
.gl-sec-h{font-family:var(--font-display);font-size:1.5rem;margin:34px 0 4px}

/* lightbox */
.gl-lb{position:fixed;inset:0;z-index:100000;background:#080b22;color:#fff;display:none;flex-direction:column;padding:14px 18px 12px;gap:10px;opacity:0;transition:opacity .2s var(--gl-ease)}
.gl-lb.is-open{display:flex}.gl-lb.is-in{opacity:1}
.gl-lb-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.gl-lb-top small{display:block;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:#f0c777;font-weight:700}
.gl-lb-top span{font-weight:600;font-size:.9rem;color:#aab4e6}
.gl-lb-acts{display:flex;gap:10px;align-items:center}
.gl-lb-back{min-height:46px;padding:0 18px;border-radius:999px;border:1.5px solid rgba(255,255,255,.3);background:transparent;color:#fff;font:700 .88rem var(--font-body);cursor:pointer;transition:transform .15s var(--gl-ease),background-color .15s var(--gl-ease)}
.gl-lb-back:active{transform:scale(.97)}
.gl-lb-x,.gl-lb-nav{width:46px;height:46px;border-radius:50%;border:1.5px solid rgba(255,255,255,.3);background:rgba(255,255,255,.08);color:#fff;display:grid;place-items:center;cursor:pointer;flex:none;transition:transform .15s var(--gl-ease),background-color .15s var(--gl-ease)}
.gl-lb-x:active,.gl-lb-nav:active{transform:scale(.94)}
.gl-lb-stage{flex:1 1 auto;min-height:0;display:flex;align-items:center;gap:14px}
.gl-lb-fig{flex:1;height:100%;min-width:0;margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;touch-action:pan-y}
.gl-lb-frame{position:relative;max-width:100%;border-radius:16px;overflow:hidden;display:flex;background:#0b0f2b}
.gl-lb-fig img{max-width:100%;max-height:calc(100vh - 230px);width:auto;height:auto;object-fit:contain;transition:opacity .18s var(--gl-ease);user-select:none;-webkit-user-drag:none}
.gl-lb-fig img.is-loading{opacity:.25}
.gl-lb-cap{position:absolute;left:0;right:0;bottom:0;padding:40px 22px 16px;background:linear-gradient(0deg,rgba(6,8,30,.82),rgba(6,8,30,0));text-align:left;pointer-events:none}
.gl-lb-cap b{display:block;font:600 1.4rem var(--font-display);line-height:1.2}.gl-lb-cap b[hidden]{display:none}
.gl-lb-cap span{display:block;font-size:.8rem;color:#cdd5ff;margin-top:2px}
.gl-lb-strip{display:flex;gap:8px;justify-content:center;overflow:hidden;min-height:60px}
.gl-lb-strip button{width:84px;height:56px;flex:none;border-radius:9px;border:2px solid transparent;padding:0;overflow:hidden;background:#222a5a;cursor:pointer;opacity:.55;transition:opacity .15s var(--gl-ease),transform .15s var(--gl-ease)}
.gl-lb-strip button[aria-current=true]{border-color:#f0c777;opacity:1}
.gl-lb-strip img{width:100%;height:100%;object-fit:cover;display:block}
.gl-lb-hint{text-align:center;font-size:.76rem;color:#8590c8}

@media (hover:hover) and (pointer:fine){
  .gl-tile:hover img,.gl-ph:hover img,.gl-collage a:hover img{transform:scale(1.05)}
  .gl-btn:hover{box-shadow:0 6px 16px rgba(17,31,143,.25)}.gl-chip:hover{border-color:var(--brand)}
  .gl-lb-back:hover{background:rgba(255,255,255,.14)}
  .gl-lb-x:hover,.gl-lb-nav:hover{background:rgba(255,255,255,.2)}.gl-lb-strip button:hover{opacity:1}.gl-others a:hover{border-color:var(--brand)}
}
@media (max-width:1000px){.gl-masonry{column-count:2}}
@media (max-width:900px){.gl-hero-grid{grid-template-columns:minmax(0,1fr)}.gl-collage,.gl-hint{margin-left:0;text-align:left}
  .gl-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.gl-tile:nth-child(n+7){display:none}.gl-more-d{display:none}.gl-more-t{display:flex}}
@media (max-width:600px){
  .gl-hero{padding:24px 0 54px}.gl-hero-r{display:none}.gl-hero-t>.gl-stats{display:none}.gl-meta{display:block}.gl-lede{margin-bottom:8px}.gl-masonry{column-count:2;column-gap:8px}.gl-ph{margin-bottom:8px}
  .gl-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .gl-sort{display:none}
  .gl-all-m{display:flex;align-items:center;justify-content:center;min-height:46px;margin-top:10px;border-radius:999px;border:1.5px solid var(--gl-line);background:#fff;color:var(--brand);font:700 .95rem var(--font-body);text-decoration:none;transition:transform .15s var(--gl-ease)}.gl-all-m:active{transform:scale(.97)}
  .gl-ah-r .gl-btn{display:none}
  .gl-tile:nth-child(n+5){display:none}
  .gl-more-d,.gl-more-t{display:none}.gl-more-m{display:flex}
  .gl-ah-r{width:100%}
  .gl-lb{padding:10px 10px 8px}.gl-lb-nav{display:none}.gl-lb-strip button{width:64px;height:44px}.gl-lb-hint{display:none}.gl-lb-fig img{max-height:calc(100vh - 190px)}.gl-lb-back{min-height:44px;padding:0 14px}.gl-lb-cap{padding:28px 14px 12px}.gl-lb-cap b{font-size:1.1rem}
}
@media (prefers-reduced-motion:reduce){.gl-lb,.gl-tile img,.gl-ph img,.gl-btn,.gl-lb-fig img{transition:none}}
