/* Affiliate Bulk 2 — standalone gallery page in the Vault Press / Solana gradient language. */
body.ab-gallery-post {
  --ab-purple: var(--sol-purple, #9945ff);
  --ab-mint: var(--sol-teal, #14f195);
  --ab-gradient: var(--sol-gradient, linear-gradient(110deg,#9945ff 0%,#6556f2 54%,#14d8a0 100%));
  --ab-ink: var(--text-primary, #f6f2ff);
  --ab-muted: var(--text-muted, #ada4c2);
  --ab-panel: var(--bg-card,#140b2b);
  background: var(--bg-body, #0a0616);
}
.ab-gallery-post .ab-single-main, .ab-gallery-post .ab-single-main *, .ab-gallery-post .ab-single-main *::before, .ab-gallery-post .ab-single-main *::after { box-sizing:border-box; }
.ab-gallery-post .ab-single-main { width:100%; margin:0 auto; padding:clamp(12px,2.2vw,26px) 16px 58px; color:var(--ab-ink); }
.ab-gallery-post .ab-gallery-shell, .ab-gallery-post .ab-comments-shell { max-width:1100px; margin:0 auto; width:100%; }
.ab-gallery-post .ab-comments-shell { margin:35px auto 0; }
.ab-gallery-article { width:100%; color:var(--ab-ink); font:inherit; }
.ab-gallery-article [hidden] { display:none !important; }
.ab-hero { position:relative; isolation:isolate; width:100%; aspect-ratio:16/9; min-height:0; overflow:hidden; border:1px solid rgba(153,69,255,.37); border-radius:19px; background:radial-gradient(at 17% 22%,#50308b,#0b0522 72%); box-shadow:0 16px 55px rgba(0,0,0,.24); }
.ab-hero-image { display:block; position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.ab-hero-shade { position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg, rgba(5,3,17,.02) 0%, rgba(6,3,17,.23) 38%, rgba(5,2,19,.90) 100%),linear-gradient(100deg,rgba(53,15,84,.24),transparent 62%); }
.ab-hero-copy { position:absolute; z-index:1; inset:auto clamp(17px,5vw,53px) clamp(20px,5vw,50px); max-width:850px; }
.ab-hero-kicker { display:inline-flex; gap:9px; align-items:center; padding-bottom:12px; font-size:clamp(9px,1.2vw,12px); font-weight:850; letter-spacing:.16em; line-height:1.4; color:#8bffcf; text-transform:uppercase; text-shadow:0 1px 8px #000; }
.ab-gallery-post .ab-hero .ab-hero-copy h1, #readerContainer .reader-content .ab-gallery-article .ab-hero-copy h1 { display:block; margin:0; padding:0; border:0; background:linear-gradient(105deg,#fff 3%,#d7b9ff 56%,#9affe0 100%); background-clip:text; -webkit-background-clip:text; -webkit-text-fill-color:transparent; color:#fff; font:inherit; font-size:clamp(23px,4.5vw,57px); font-weight:850; line-height:1.13; letter-spacing:-.035em; text-wrap:balance; overflow-wrap:anywhere; text-align:left; text-shadow:none; }
.ab-description { margin:24px 4px 24px; max-width:1020px; color:var(--ab-ink); font-size:clamp(14px,1.6vw,17px); line-height:1.72; overflow-wrap:anywhere; }
.ab-description p { margin:0 0 1em; }
.ab-description p:last-child { margin-bottom:0; }
/* Compact, click-forward partner banner. Text on the left, CTA on the right;
   small screens stack the copy and a full-width tap target. */
.ab-cta { position:relative; isolation:isolate; display:grid; grid-template-columns:minmax(0,1fr) auto; grid-template-areas:"eyebrow action" "headline action" "detail action"; align-items:center; column-gap:clamp(14px,2.2vw,28px); row-gap:3px; margin:17px 0; padding:clamp(13px,2vw,20px) clamp(15px,2.5vw,25px); overflow:hidden; border:1px solid rgba(153,69,255,.5); border-radius:14px; background:radial-gradient(ellipse at 4% 10%,rgba(153,69,255,.32),transparent 52%),radial-gradient(ellipse at 96% 95%,rgba(20,241,149,.15),transparent 50%),linear-gradient(125deg,#1b0c39,#0f0b25 65%,#052521); box-shadow:0 9px 24px rgba(0,0,0,.16); }
.ab-cta::before { content:""; pointer-events:none; position:absolute; inset:0; z-index:-1; opacity:.07; background:repeating-linear-gradient(130deg,transparent 0 56px,#fff 57px 58px,transparent 59px 113px); }
.ab-cta-kicker { grid-area:eyebrow; color:#99fbd1; font-size:9px; letter-spacing:.14em; font-weight:850; line-height:1.25; }
.ab-cta-kicker span { font-size:12px; padding-right:3px; }
.ab-gallery-post .ab-cta h2, #readerContainer .reader-content .ab-gallery-post .ab-cta h2 { grid-area:headline; display:block; margin:0; padding:0; border:0; background:none; -webkit-text-fill-color:initial; color:#fff; font:inherit; font-size:clamp(17px,2vw,24px); font-weight:850; letter-spacing:-.025em; line-height:1.22; text-align:left; }
.ab-cta p { grid-area:detail; margin:0; color:#d9d1e9; font-size:clamp(12px,1.2vw,14px); line-height:1.45; text-align:left; }
.ab-cta p strong { color:#fff; font-weight:850; }
.ab-gallery-article a.ab-cta-button { grid-area:action; display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:44px; max-width:min(100%,320px); padding:11px 18px; border:1px solid rgba(255,255,255,.12); border-radius:10px; background:var(--ab-gradient); color:#fff !important; -webkit-text-fill-color:#fff; text-decoration:none !important; font-size:clamp(12px,1.2vw,14px); font-weight:850; line-height:1.25; text-align:center; box-shadow:0 6px 19px rgba(96,62,220,.25); transition:filter .2s,transform .2s,box-shadow .2s; }
.ab-gallery-article a.ab-cta-button:hover { filter:brightness(1.13); transform:translateY(-2px); box-shadow:0 9px 25px rgba(153,69,255,.34); }
.ab-cta-button span { font-size:17px; line-height:1; }
/* The site's reader pane can be narrow even on desktop, so switch the banner
   by available width, not just the device viewport. */
.ab-gallery-shell { container-type:inline-size; }
@container (max-width:650px) {
  .ab-cta { grid-template-columns:minmax(0,1fr); grid-template-areas:"eyebrow" "headline" "detail" "action"; row-gap:5px; text-align:center; }
  .ab-cta-kicker, .ab-gallery-post .ab-cta h2, .ab-cta p { text-align:center; }
  .ab-gallery-article a.ab-cta-button { width:100%; max-width:100%; min-height:42px; margin-top:3px; padding:10px 12px; }
}
@media(max-width:610px) {
  .ab-cta { grid-template-columns:minmax(0,1fr); grid-template-areas:"eyebrow" "headline" "detail" "action"; row-gap:5px; padding:13px 13px 14px; border-radius:12px; text-align:center; }
  .ab-cta-kicker, .ab-gallery-post .ab-cta h2, #readerContainer .reader-content .ab-gallery-post .ab-cta h2, .ab-cta p { text-align:center; }
  .ab-gallery-post .ab-cta h2, #readerContainer .reader-content .ab-gallery-post .ab-cta h2 { font-size:clamp(17px,4.6vw,22px); }
  .ab-cta p { font-size:12px; line-height:1.35; }
  .ab-gallery-article a.ab-cta-button { width:100%; max-width:100%; min-height:42px; margin-top:3px; padding:10px 12px; }
}
.ab-gallery-section { margin:28px 0 31px; }
.ab-gallery-heading { display:flex; align-items:end; justify-content:space-between; gap:10px; margin:0 2px 16px; }
.ab-section-eyebrow { display:block; font-weight:850; letter-spacing:.18em; font-size:10px; color:#90f6cf; margin-bottom:5px; }
.ab-gallery-post .ab-gallery-heading h2 { margin:0; padding:0; border:0; color:var(--ab-ink); background:none; -webkit-text-fill-color:initial; font:inherit; font-size:clamp(20px,3vw,29px); font-weight:850; line-height:1.2; }
.ab-photo-count { flex:none; border:1px solid rgba(179,144,235,.3); border-radius:999px; padding:7px 11px; font-size:11px; font-weight:800; color:#cabbe6; }
.ab-gallery-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(8px,1.5vw,16px); }
.ab-gallery-thumb { position:relative; display:block; appearance:none; min-width:0; aspect-ratio:16/9; overflow:hidden; padding:0; margin:0; border:1px solid rgba(162,119,214,.26); border-radius:12px; background:#150d27; color:#fff; cursor:zoom-in; box-shadow:0 4px 18px rgba(0,0,0,.11); }
.ab-gallery-thumb img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .3s ease,filter .2s ease; }
.ab-gallery-thumb:hover img { transform:scale(1.045); filter:brightness(1.08); }
.ab-thumb-indicator { position:absolute; right:11px; top:10px; display:grid; place-items:center; width:29px; height:29px; font-size:17px; font-weight:700; border:1px solid rgba(220,203,255,.36); border-radius:9px; color:#fff; background:rgba(13,4,33,.56); opacity:0; transform:translateY(-4px); transition:opacity .2s,transform .2s; }
.ab-gallery-thumb:hover .ab-thumb-indicator, .ab-gallery-thumb:focus-visible .ab-thumb-indicator { opacity:1; transform:translateY(0); }
.ab-gallery-article button:focus-visible,.ab-gallery-article a:focus-visible { outline:3px solid var(--ab-mint); outline-offset:3px; }
/* Native dialog is in the top layer, not trapped under the theme header. */
.ab-lightbox { box-sizing:border-box; position:fixed; width:min(98vw,1430px); height:min(96dvh,980px); max-width:1430px; max-height:96dvh; margin:auto; padding:0; border:1px solid rgba(153,69,255,.53); border-radius:14px; overflow:hidden; background:radial-gradient(at 20% 8%,#251444,#080510 70%); color:#fff; box-shadow:0 35px 130px #000b; }
.ab-lightbox:not([open]) { display:none; }
.ab-lightbox::backdrop { background:rgba(3,2,11,.92); backdrop-filter:blur(7px); -webkit-backdrop-filter:blur(7px); }
.ab-lightbox-head { display:flex; align-items:center; justify-content:space-between; gap:12px; height:52px; padding:7px 15px; border-bottom:1px solid rgba(181,142,229,.19); }
.ab-lightbox-count { font-size:12px; font-weight:850; letter-spacing:.12em; color:#c5b8dc; }
.ab-lightbox-close { width:35px; height:35px; border:1px solid rgba(200,167,242,.32); border-radius:9px; background:#2b1c45; color:#fff; cursor:pointer; font-size:16px; }
.ab-lightbox-stage { position:relative; display:flex; align-items:center; justify-content:center; gap:0; width:100%; height:calc(100% - 104px); min-height:0; padding:9px clamp(42px,5vw,64px); }
.ab-lightbox-affiliate { display:flex; align-items:center; justify-content:center; width:max-content; max-width:100%; max-height:100%; height:100%; text-decoration:none; cursor:pointer; }
.ab-lightbox-affiliate img { display:block; max-width:100%; max-height:100%; object-fit:contain; border-radius:3px; box-shadow:0 9px 30px #0006; }
.ab-lightbox-arrow { position:absolute; z-index:2; top:50%; transform:translateY(-50%); display:grid; place-items:center; appearance:none; width:41px; height:49px; padding:0 0 5px; border:1px solid rgba(220,195,247,.3); border-radius:11px; color:#fff; background:rgba(60,35,92,.76); cursor:pointer; font-size:34px; font-weight:400; transition:background .2s; }
.ab-lightbox-arrow:hover, .ab-lightbox-close:hover { background:#6032a0; }
.ab-lightbox-prev { left:10px; }
.ab-lightbox-next { right:10px; }
.ab-lightbox-caption { display:flex; height:52px; align-items:center; justify-content:center; gap:5px; margin:0 !important; padding:8px 12px; border-top:1px solid rgba(181,142,229,.19); text-align:center; color:#c7bde0; font-size:clamp(11px,1.7vw,13px); }
.ab-lightbox-caption strong { color:#fff; }
@media(max-width:700px) {
 .ab-gallery-post .ab-single-main { padding:9px 10px 42px; }
 .ab-hero { border-radius:12px; }
 .ab-hero-copy { inset:auto 15px 17px; }
 .ab-hero-kicker { padding-bottom:5px; font-size:9px; letter-spacing:.1em; }
 .ab-gallery-post .ab-hero .ab-hero-copy h1 { font-size:clamp(18px,5vw,30px); line-height:1.15; }
 .ab-description { margin:19px 5px; font-size:14px; }
 .ab-gallery-section { margin:25px 0; }
 .ab-gallery-grid { gap:8px; }
 .ab-gallery-thumb { aspect-ratio:1/1; border-radius:9px; }
 .ab-thumb-indicator { opacity:1; transform:none; width:24px; height:24px; font-size:14px; right:6px; top:6px; }
 .ab-lightbox { width:100vw; height:100dvh; max-height:100dvh; border:0; border-radius:0; }
 .ab-lightbox-stage { padding:6px 46px; }
 .ab-lightbox-arrow { width:36px; height:44px; border-radius:8px; }
 .ab-lightbox-prev { left:3px; }
 .ab-lightbox-next { right:3px; }
}
@media(prefers-reduced-motion:reduce) {
 .ab-gallery-article *, .ab-gallery-article *::before, .ab-gallery-article *::after { transition:none !important; }
}
