.gallery-page{background:var(--bg)}.gallery-hero{padding:clamp(48px,8vw,88px) clamp(16px,4vw,40px) clamp(32px,5vw,56px)}.gallery-hero__inner{text-align:center;max-width:720px;margin:0 auto}.gallery-hero__title{letter-spacing:-.02em;color:var(--text-primary);margin:10px 0 16px;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(42px,6vw,64px);font-weight:600}.gallery-hero__sub{max-width:560px;color:var(--text-muted);margin:0 auto;font-size:16px;line-height:1.7}.gallery-grid-section{padding:0 clamp(16px,4vw,40px) clamp(64px,10vw,96px)}.gallery-grid-section__inner{max-width:1280px;margin:0 auto}.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;display:grid}.gallery-card{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-soft);border-radius:20px;transition:transform .25s,box-shadow .25s;overflow:hidden}.gallery-card:hover{box-shadow:var(--shadow);transform:translateY(-4px)}.gallery-card__media{aspect-ratio:4/3;background:var(--surface2);position:relative;overflow:hidden}.gallery-card__img{object-fit:cover;transition:transform .45s}.gallery-card:hover .gallery-card__img{transform:scale(1.04)}.gallery-card__body{padding:20px 22px 24px}.gallery-card__title{color:var(--text-primary);margin:0 0 8px;font-family:Cormorant Garamond,Georgia,serif;font-size:24px;font-weight:600}.gallery-card__desc{color:var(--text-muted);margin:0;font-size:14px;line-height:1.65}.gallery-empty{text-align:center;border:1px dashed var(--border-strong);color:var(--text-muted);border-radius:20px;padding:64px 24px}@media (max-width:960px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.gallery-grid{grid-template-columns:1fr;gap:20px}}
