/* Centered dark lightbox with the matching costume pattern. */
.cg-trigger { position:relative; display:block; width:100%; border:0; padding:0; background:none; color:#24211d; cursor:zoom-in; isolation:isolate; -webkit-tap-highlight-color:transparent; }
.cg-trigger:focus-visible { outline:3px solid #ffe7a3; outline-offset:-6px; }
.cg-trigger:disabled { cursor:default; }
.cg-shine { position:absolute; inset:0; z-index:1; pointer-events:none; overflow:hidden; mask:var(--cg-figure) center / contain no-repeat; -webkit-mask:var(--cg-figure) center / contain no-repeat; opacity:0; transition:opacity 220ms ease; }
.cg-shine i { position:absolute; inset:-75%; background:linear-gradient(45deg,transparent 45%,rgba(255,255,255,.72) 50%,transparent 55%); transform:translate3d(-58%,58%,0); transition:transform 950ms cubic-bezier(.33,.02,.23,1); }
.cg-trigger:hover .cg-shine,.cg-trigger:focus-visible .cg-shine { opacity:1; }
.cg-trigger:hover .cg-shine i,.cg-trigger:focus-visible .cg-shine i { transform:translate3d(58%,-58%,0); }
.cg-cta { position:absolute; left:var(--cg-button-x,50%); top:var(--cg-button-y,44%); z-index:2; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; width:clamp(88px,7.6vw,112px); aspect-ratio:1; border-radius:50%; background:#ffe7a3; color:#24211d; box-shadow:0 3px 18px #0002; font-size:14px; line-height:1.15; font-weight:700; text-align:center; text-transform:uppercase; transform:translate(-50%,-50%); transition:opacity 220ms ease,transform 220ms ease; }
.cg-cta svg { width:22px; height:22px; }
.cg-trigger:active .cg-cta { transform:translate(-50%,-50%) scale(.95); }
.cg-footer-image { position:relative; isolation:isolate; }
.cg-footer-trigger { cursor:zoom-in; }
.cg-footer-trigger .cg-shine { mask:none; -webkit-mask:none; }
.cg-footer-trigger:hover .cg-shine,.cg-footer-trigger:focus-visible .cg-shine { opacity:1; }
.cg-footer-trigger:hover .cg-shine i,.cg-footer-trigger:focus-visible .cg-shine i { transform:translate3d(58%,-58%,0); }
.cg-footer-trigger .cg-cta { top:48%; width:clamp(88px,7.6vw,112px); }
.cg-footer-trigger:focus-visible { outline:3px solid #ffe7a3; outline-offset:-6px; }
.cg-hero-pattern { transform-origin:center; }
.cg-hero.cg-enhanced .cg-hero-pattern { animation:cg-pattern-motion 32s ease-in-out infinite alternate; animation-play-state:paused; }
.cg-hero:has(.cg-trigger:hover) .cg-hero-pattern,.cg-hero:has(.cg-trigger:focus-visible) .cg-hero-pattern { animation-play-state:running; }
@keyframes cg-pattern-motion { from { transform:scale(1.12) rotate(0deg); } to { transform:scale(1.3) rotate(12deg); } }
/* The original artwork stays readable if JavaScript cannot initialize. */
.cg-hero:not(.cg-enhanced) .cg-cta,.cg-hero:not(.cg-enhanced) .cg-shine { display:none; }
@media (hover:hover) and (pointer:fine) {
  .cg-cta { opacity:0; transform:translate(-50%,-50%) scale(.88); }
  .cg-trigger:hover .cg-cta,.cg-trigger:focus-visible .cg-cta { opacity:1; transform:translate(-50%,-50%) scale(1); }
  .cg-footer-trigger:hover .cg-cta,.cg-footer-trigger:focus-visible .cg-cta { opacity:1; transform:translate(-50%,-50%) scale(1); }
}
html.cg-gallery-open { overflow:hidden !important; }
.cg-dialog { position:fixed; inset:0; width:100%; max-width:none; height:100%; height:100dvh; max-height:none; margin:0; padding:0; border:0; background:#211e1a; color:#fbefdf; overflow:hidden; overscroll-behavior:contain; }
.cg-dialog::backdrop { background:rgba(15,14,12,.86); }
.cg-dialog::before { content:''; position:absolute; inset:0; background:#ffe7a3; opacity:.055; mask:var(--cg-pattern) center / cover no-repeat; -webkit-mask:var(--cg-pattern) center / cover no-repeat; pointer-events:none; }
.cg-dialog[open] { display:block; animation:cg-reveal 180ms ease-out; }
@keyframes cg-reveal { from { opacity:0; } to { opacity:1; } }
.cg-shell { position:relative; height:100%; display:grid; grid-template-rows:auto minmax(0,1fr) auto; padding:18px 16px; padding-top:max(18px,env(safe-area-inset-top)); padding-bottom:max(18px,env(safe-area-inset-bottom)); gap:16px; }
.cg-header { min-width:0; text-align:center; padding-inline:46px; }
.cg-eyebrow { font-size:10px; letter-spacing:.2em; text-transform:uppercase; line-height:1.4; margin:0 0 8px; }
.cg-header h2 { font-family:'Wicked Broom',Georgia,serif; font-size:clamp(28px,4vw,56px); font-weight:400; text-transform:uppercase; line-height:1.05; margin:0; }
.cg-close { position:absolute; right:16px; top:18px; z-index:2; display:flex; align-items:center; justify-content:center; gap:10px; min-width:44px; min-height:44px; padding:8px; border:1px solid currentColor; border-radius:100px; color:inherit; background:#211e1a; font:inherit; font-size:16px; cursor:pointer; }
.cg-close>span { display:none; }
.cg-close svg { width:22px; height:22px; }
.cg-dialog button { touch-action:manipulation; }
.cg-dialog button:focus-visible { outline:3px solid #ffe7a3; outline-offset:4px; }
.cg-close:hover,.cg-arrow:hover { background:#fbefdf; color:#211e1a; border-color:#fbefdf; }
.cg-close:active,.cg-arrow:active { scale:.94; }
.cg-dialog button:disabled { opacity:.4; cursor:default; }
.cg-stage { position:relative; min-width:0; min-height:0; touch-action:pan-y; cursor:grab; user-select:none; }
.cg-stage.is-dragging { cursor:grabbing; }
.cg-track { min-width:0; min-height:0; height:100%; display:flex; align-items:center; justify-content:center; }
.cg-slide { width:100%; height:100%; min-width:0; min-height:0; display:flex; align-items:center; justify-content:center; }
.cg-slide img { display:block; flex:none; max-width:100%; max-height:100%; object-fit:contain; pointer-events:none; }
.cg-arrow { display:grid; place-items:center; flex:none; width:48px; height:48px; border:1px solid #fbefdfbb; border-radius:50%; background:#211e1a; color:#fbefdf; font-family:Arial,sans-serif; font-size:29px; line-height:1; cursor:pointer; transition:background 150ms,scale 150ms; }
.cg-stage>.cg-arrow { display:none; position:absolute; top:50%; translate:0 -50%; }
.cg-stage-prev { left:calc(50% - var(--cg-image-width,0px) / 2 - 72px); }
.cg-stage-next { right:calc(50% - var(--cg-image-width,0px) / 2 - 72px); }
.cg-controls { display:flex; justify-content:center; align-items:center; min-width:0; }
.cg-hint,.cg-rule { display:none; }
.cg-caption { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.cg-paging { display:flex; align-items:center; gap:24px; }
.cg-count { white-space:nowrap; font-size:16px; font-variant-numeric:tabular-nums; min-width:62px; text-align:center; }
.cg-count strong { font-weight:700; }
@media (min-width:768px) {
  .cg-shell { padding:24px; gap:20px; }
  .cg-header { padding-inline:140px; }
  .cg-eyebrow { font-size:12px; margin-bottom:10px; }
  .cg-close { right:24px; top:24px; padding:8px 18px; }
  .cg-close>span { display:inline; }
  .cg-stage { padding-inline:76px; }
  .cg-stage>.cg-arrow { display:grid; }
  .cg-paging>.cg-arrow { display:none; }
}
@media (max-height:500px) and (min-width:600px) {
  .cg-shell { padding:12px 16px; gap:10px; }
  .cg-header { padding-inline:70px; }
  .cg-header h2 { font-size:30px; }.cg-eyebrow { display:none; }
  .cg-close { top:12px; right:16px; min-height:44px; }
  .cg-close>span { display:none; }
  .cg-stage { padding-inline:76px; }
  .cg-stage>.cg-arrow { display:grid; }
  .cg-paging>.cg-arrow { display:none; }
}
@media (prefers-reduced-motion:reduce) {
  .cg-hero.cg-enhanced .cg-hero-pattern { animation:none; }
  .cg-shine { display:none; }
  .cg-cta,.cg-arrow { transition:none; }
  .cg-dialog[open] { animation:none; }
}
