.ncm-public-gallery { background: #101012; color: #f5f2ef; padding: clamp(32px, 5vw, 72px) max(24px, calc((100vw - 1240px) / 2)); }
.ncm-public-gallery * { box-sizing: border-box; }
.ncm-public-gallery__heading { margin-bottom: 30px; }
.ncm-public-gallery__heading > span { color: #f47b20; font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.ncm-public-gallery h1, .ncm-public-gallery h2, .ncm-public-gallery h3 { color: #fff; }
.ncm-public-gallery h1 { margin: 8px 0; font-size: clamp(34px, 4vw, 54px); }
.ncm-public-gallery__heading p { margin: 0; color: #aaa6a4; }
.ncm-public-gallery__years { display: flex; flex-wrap: wrap; gap: 10px; margin: 24px 0 40px; }
.ncm-public-gallery__years a { padding: 9px 16px; border: 1px solid #51402f; border-radius: 8px; background: #221a16; color: #ffad70; font-weight: 700; text-decoration: none; }
.ncm-public-gallery__years a:hover, .ncm-public-gallery__years a:focus-visible { border-color: #f47b20; color: #fff; }
.ncm-public-gallery__year { margin: 0 0 42px; scroll-margin-top: 30px; }
.ncm-public-gallery__year h2 { margin: 0 0 20px; font-size: 26px; }
.ncm-public-gallery__albums { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 20px; }
.ncm-public-gallery__album { min-width: 0; overflow: hidden; border: 1px solid #343033; border-radius: 14px; background: #1b1b1e; }
.ncm-public-gallery__cover { display: block; height: 230px; background: #272023; }
.ncm-public-gallery__cover img { width: 100%; height: 100%; object-fit: cover; }
.ncm-public-gallery__info { padding: 18px 20px 8px; }
.ncm-public-gallery__info h3 { margin: 0 0 6px; font-size: 18px; }
.ncm-public-gallery__info p { margin: 0; color: #a9a5a3; font-size: 13px; }
.ncm-public-gallery__photos { display: flex; gap: 8px; overflow-x: auto; padding: 12px 20px 20px; scroll-margin-top: 25px; }
.ncm-public-gallery__photos a { display: block; flex: 0 0 66px; height: 66px; overflow: hidden; border: 1px solid #51402f; border-radius: 7px; }
.ncm-public-gallery__photos a:hover, .ncm-public-gallery__photos a:focus-visible { border-color: #f47b20; outline: none; }
.ncm-public-gallery__photos img { width: 100%; height: 100%; object-fit: cover; }
.ncm-public-gallery__empty { padding: 28px; border: 1px dashed #574536; border-radius: 12px; color: #c6b9ae; }
