.gallery-page{background:var(--bg);color:var(--fg)}
.gallery-page .gallery-hero{padding:52px 0 0}
.gallery-page h1{font-size:clamp(54px,9.3vw,130px);line-height:1.02;letter-spacing:0;animation:gallery-hero-in .8s var(--e) both}
.gallery-page .gallery-title-accent{color:var(--ac);transition:color .5s}
@keyframes gallery-hero-in{from{opacity:0;transform:translateY(18px)}}
.gallery-page .gallery-collection{padding:30px 0 36px}



.gallery-page .gallery-status{font-size:12px;margin:0 0 24px;color:var(--muted);min-height:18px}
.gallery-page .gallery-wall{columns:4;column-gap:16px;list-style:none;margin:0;padding:0}
.gallery-page .gallery-slot{break-inside:avoid;min-width:0;margin-bottom:16px;position:relative;z-index:0}
.gallery-page .gallery-slot:focus-within,.gallery-page .gallery-slot:hover{z-index:2}
.gallery-page .gallery-card{position:relative;display:block;width:100%;height:var(--tile-height);padding:0;border:0;border-radius:22px;overflow:hidden;text-align:left;background:var(--card);color:#fff;transition:transform .4s var(--e),box-shadow .4s var(--e)}
.gallery-photo{display:grid;place-items:center;overflow:hidden;width:100%;height:100%;position:relative;background:linear-gradient(135deg,#ffd27a,#ff8a1f);border-radius:inherit}
.gallery-photo[data-category="IDLI / WADA"]{background:linear-gradient(135deg,#2fa36b,#7ee08f)}
.gallery-photo[data-category="PULAO / BIRYANI / PAV BHAJI"]{background:linear-gradient(135deg,#ffb938,#ff5b3c)}
.gallery-photo[data-category="BEVERAGES"]{background:linear-gradient(135deg,#e0a06a,#b8743f)}
.gallery-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:8px}
.gallery-photo .photo-placeholder{font:400 28px/1 Anton,sans-serif;color:#111;padding:12px;background:#ffffffb3}
.gallery-page .gallery-card::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 35%,#000d);opacity:0;transition:opacity .35s;pointer-events:none}
.gallery-page .gallery-card-caption{position:absolute;z-index:1;bottom:0;left:0;right:0;padding:18px;font:400 22px/1.2 Anton,sans-serif;text-transform:uppercase;color:#fff;opacity:0;transform:translateY(14px);transition:transform .35s,opacity .35s}
.gallery-page .gallery-card:focus-visible{outline:3px solid var(--ac);outline-offset:4px;transform:scale(1.03)}
.gallery-page .gallery-card:focus-visible::after,.gallery-page .gallery-card:focus-visible .gallery-card-caption{opacity:1;transform:none}
@media(hover:hover) and (pointer:fine){.gallery-page .gallery-card:hover{transform:scale(1.03);box-shadow:0 12px 30px #0005}.gallery-page .gallery-card:hover::after,.gallery-page .gallery-card:hover .gallery-card-caption{opacity:1;transform:none}}
@media(hover:none){.gallery-page .gallery-card::after,.gallery-page .gallery-card-caption{opacity:1;transform:none}}
@keyframes gallery-tile-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.gallery-page .gallery-drop.has-entered{animation:gallery-tile-in .6s var(--e) both;animation-delay:var(--stagger)}
.gallery-page .gallery-closing{text-align:center;padding:48px 0 80px}
.gallery-page .gallery-closing h2{font-size:clamp(32px,4vw,54px);line-height:1.1;margin-bottom:28px}

/* Native modal supplies focus trapping and inert background content. */
dialog.gallery-viewer{width:100%;max-width:none;height:100dvh;max-height:none;margin:0;padding:calc(20px + env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) calc(20px + env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));border:0;border-radius:0;background:#080809f2;color:#fff;overflow-y:auto}
.gallery-viewer::backdrop{background:#000c}
.gallery-viewer[open]{display:flex;flex-direction:column;animation:viewer-in .3s var(--e)}
@keyframes viewer-in{from{opacity:0}}
.viewer-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-shrink:0;max-width:1100px;width:100%;margin:0 auto 18px}
.viewer-control{min-width:48px;min-height:48px;border:1px solid #ffffff60;border-radius:999px;padding:10px 18px;color:#fff;background:#17171b}
.viewer-control:hover{border-color:var(--ac)}
.viewer-control:focus-visible{outline:3px solid var(--ac);outline-offset:4px}
.viewer-stage{display:flex;align-items:center;justify-content:center;gap:clamp(16px,4vw,60px);flex:1;min-height:0}
.viewer-frame{padding:14px 14px 22px;border-radius:22px;background:var(--card);color:var(--fg);width:min(560px,65vw);margin:0;box-shadow:0 24px 80px #0008;animation:viewer-develop .4s var(--e);flex-shrink:1;min-width:0}
@keyframes viewer-develop{from{opacity:0;transform:scale(.88) translateY(18px) rotate(-3deg)}}
.viewer-frame .gallery-photo{height:min(58dvh,580px);aspect-ratio:auto}
.viewer-frame figcaption{font-size:18px;line-height:1.5;margin-top:20px}

@media(max-width:999px){.gallery-page .gallery-wall{columns:3}}
@media(max-width:639px){.gallery-page .gallery-hero{padding:36px 0 0}.gallery-page h1{font-size:clamp(48px,10.3vw,66px)}.gallery-page .gallery-wall{columns:2;column-gap:12px}.gallery-page .gallery-slot{margin-bottom:12px}.gallery-page .gallery-card{height:calc(var(--tile-height) * .8);border-radius:18px}.gallery-page .gallery-card-caption{font-size:18px;padding:14px}.gallery-page .gallery-closing{padding-bottom:64px}.viewer-stage{flex-wrap:wrap;gap:14px}.viewer-frame{order:-1;width:min(100%,440px);flex-basis:100%;padding:12px 12px 20px}.viewer-arrow{margin-bottom:8px}.viewer-frame .gallery-photo{height:48dvh}.viewer-toolbar{margin-bottom:16px}}
@media(max-width:399px){.gallery-page .gallery-wall{columns:1}.gallery-page .gallery-card{height:var(--tile-height)}}
@media(prefers-reduced-motion:reduce){.gallery-page .gallery-drop.has-entered{animation:none}.gallery-page .gallery-card:hover,.gallery-page .gallery-card:focus-visible{transform:none}.gallery-viewer[open],.viewer-frame{animation:none}}
