/* RE:LIGHT visual gallery — no new backend required */
.gallery-page{background:#f1f5f8;color:#14243a}
.gallery-hero{position:relative;min-height:680px;display:flex;align-items:center;background:#07182e;color:#fff;overflow:hidden}
.gallery-hero-art{position:absolute;inset:0;background:url('assets/sora-sky.webp') center center/cover no-repeat;filter:saturate(1.06)}
.gallery-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,14,31,.94),rgba(7,24,46,.75) 45%,rgba(4,23,50,.13) 100%),linear-gradient(0deg,#07182e 0%,transparent 45%);z-index:1}
.gallery-hero-content{z-index:2;position:relative;width:min(1120px,calc(100% - 72px));margin:110px auto 80px}
.gallery-eyebrow{display:inline-block;font:700 11px/1.5 var(--sans);letter-spacing:.24em;color:#9ccefb}
.gallery-eyebrow.dark{color:#2b78ab}
.gallery-hero h1{font:400 clamp(50px,8vw,95px)/1.24 var(--serif);letter-spacing:.12em;margin:20px 0 21px;text-shadow:0 4px 45px #0007}
.gallery-hero h1 span{display:block;color:#b4dfff;font-size:.66em;margin-top:10px}
.gallery-hero-content>p:not(.gallery-hero-description){font:400 clamp(21px,3vw,34px)/1.8 var(--serif);letter-spacing:.16em;margin:0 0 18px}
.gallery-hero-description{font-size:13px;line-height:2.5;color:#d3e8f9;letter-spacing:.06em;margin:0 0 39px}
.gallery-hero-link{border:1px solid #7eadd1;border-radius:3px;min-height:51px;display:inline-flex;align-items:center;gap:36px;padding:12px 24px;font-size:12px;letter-spacing:.15em;background:#14507b7f}
.gallery-hero-link:hover{background:#276c9e}
.gallery-main{padding:91px 0 120px;background:linear-gradient(#f1f5f8,#f8fafc)}
.gallery-content{max-width:1230px;padding:0 36px;margin:auto}
.gallery-intro{display:flex;align-items:end;justify-content:space-between;gap:38px;margin-bottom:36px}
.gallery-intro h2{font:400 clamp(29px,4vw,50px)/1.5 var(--serif);letter-spacing:.09em;margin:16px 0 0}
.gallery-intro>p{color:#5d7187;font-size:12px;line-height:2.4;margin:0}
.gallery-filters{display:flex;gap:9px;flex-wrap:wrap;border-top:1px solid #cdd9e4;padding:26px 0 18px}
.gallery-filters button{cursor:pointer;border:1px solid #c6d6e3;border-radius:50px;padding:11px 19px;color:#33516b;background:white;font-weight:600;font-size:12px;transition:background .16s,color .16s}
.gallery-filters button span{font:600 11px var(--sans);color:#829bb2;margin-left:7px}
.gallery-filters button.is-active,.gallery-filters button:hover{background:#143654;color:white;border-color:#143654}
.gallery-filters button.is-active span,.gallery-filters button:hover span{color:#b4dfff}
.gallery-spoiler-note{color:#667c8e;font-size:11px;letter-spacing:.03em;margin:0 0 25px;line-height:1.8}
.gallery-spoiler-note span{color:#3486c0;margin-right:9px}
.gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:27px 17px}
.gallery-card{background:#fff;border:1px solid #d9e2e9;box-shadow:0 12px 33px rgba(14,43,65,.065);overflow:hidden;min-width:0}
.gallery-card[hidden]{display:none!important}
.gallery-image-button{border:0;background:#10233f;padding:0;display:block;width:100%;cursor:zoom-in;position:relative;overflow:hidden;aspect-ratio:4/5}
.gallery-image-button img{width:100%;height:100%;object-fit:cover;object-position:top center;transition:transform .4s cubic-bezier(.2,.7,.2,1);}
.gallery-card:hover img,.gallery-image-button:focus-visible img{transform:scale(1.045)}
.gallery-zoom{position:absolute;right:11px;bottom:11px;font-size:11px;line-height:1;background:#081729b9;padding:9px 12px;color:#fff;border:1px solid #ffffff52;border-radius:3px}
.gallery-caption{padding:17px 17px 21px}
.gallery-caption span{color:#4781ac;font:700 9px var(--sans);letter-spacing:.12em}
.gallery-caption h2{font:400 18px/1.6 var(--serif);margin:7px 0 4px;letter-spacing:.05em}
.gallery-caption p{margin:0 0 16px;font-size:11px;color:#617788;line-height:1.8}
.gallery-caption a{color:#226a9e;border-bottom:1px solid #b1d0e8;padding-bottom:5px;font-size:11px;font-weight:700}
.gallery-next{margin:96px 0 0;text-align:center;padding:55px 22px 57px;background:linear-gradient(120deg,#0e243d,#17416a);color:#eff7ff}
.gallery-next span{font-size:10px;letter-spacing:.22em;color:#8bc6f3}
.gallery-next h2{font:400 clamp(25px,3vw,37px)/1.5 var(--serif);margin:15px 0 7px;letter-spacing:.08em}
.gallery-next p{font-size:12px;color:#accae3;margin:0 0 26px}
.gallery-next a{display:inline-flex;justify-content:center;padding:13px 18px;border:1px solid #88bbdd;border-radius:2px;font-size:12px;margin:6px}
.gallery-next a.gallery-muted-link{background:transparent;color:#cadcea;border-color:#426381}
.gallery-lightbox{position:fixed;inset:0;max-width:100vw;max-height:100dvh;width:100vw;height:100dvh;border:0;padding:12px;background:#07121df5;color:#e9f5ff;overflow:hidden}
.gallery-lightbox::backdrop{background:#000c}
.gallery-lightbox[open]{display:flex;flex-direction:column}
.gallery-lightbox-top,.gallery-lightbox-bottom{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:8px 15px;font-size:13px}
.gallery-lightbox-top button{color:white;border:1px solid #677b8c;background:#142d45;font-size:18px;width:44px;height:44px;border-radius:50%;cursor:pointer}
.gallery-lightbox-body{display:flex;flex:1;align-items:center;justify-content:space-between;min-height:0;gap:5px}
.gallery-lightbox-body img{max-height:calc(100dvh - 170px);width:auto;height:auto;max-width:calc(100vw - 140px);object-fit:contain;margin:auto}
.gallery-step{width:48px;height:60px;background:#18344b;border:1px solid #54708a;color:#fff;cursor:pointer;font-size:38px;border-radius:3px}
.gallery-lightbox-bottom a{color:#a8ddff;text-decoration:underline;text-underline-offset:5px}
@media(max-width:950px){.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.gallery-hero{min-height:600px}}
@media(max-width:700px){.gallery-hero{min-height:560px}.gallery-hero-content{width:calc(100% - 44px);margin:100px auto 70px}.gallery-hero:before{background:linear-gradient(90deg,#07182ef5,#07182e78),linear-gradient(0deg,#07182e,transparent)}.gallery-hero h1{font-size:clamp(42px,11vw,64px)}.gallery-hero-description{font-size:11px}.gallery-main{padding:60px 0 75px}.gallery-content{padding:0 17px}.gallery-intro{display:block}.gallery-intro>p{font-size:11px;margin-top:11px}.gallery-intro h2{font-size:29px}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 10px}.gallery-caption{padding:12px 11px 15px}.gallery-caption h2{font-size:14px}.gallery-caption p{font-size:10px;margin-bottom:13px}.gallery-caption span{font-size:8px}.gallery-image-button{aspect-ratio:3/4}.gallery-filters{padding-top:23px}.gallery-filters button{font-size:10px;padding:9px 12px}.gallery-next{margin-top:63px}.gallery-lightbox-body img{max-width:calc(100vw - 78px);max-height:calc(100dvh - 155px)}.gallery-step{width:32px;height:48px;font-size:27px}.gallery-lightbox-top{font-size:11px}}
@media(prefers-reduced-motion:reduce){.gallery-image-button img{transition:none}}


/* V15 gallery — preserve every pixel of each illustration in its card. */
.gallery-hero-art{filter:saturate(.96) brightness(.75)}
.gallery-image-button{display:flex;align-items:center;justify-content:center;background:linear-gradient(155deg,#e8eff6,#d4e2ef);padding:12px;box-sizing:border-box;overflow:hidden}
.gallery-image-button img{display:block;width:100%;height:100%;object-fit:contain!important;object-position:center!important;transform:none!important;transition:none!important;filter:drop-shadow(0 4px 7px rgba(5,23,48,.14))}
.gallery-image-button:hover img,.gallery-image-button:focus-visible img,.gallery-card:hover img{transform:none!important}
.gallery-volume-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:-3px 0 22px;padding:17px 15px;border:1px solid #c5d7e5;background:#e8f1f8;border-radius:9px}
.gallery-volume-filters[hidden]{display:none!important}
.gallery-volume-label{font-size:11px;font-weight:700;letter-spacing:.08em;color:#496985;margin-right:8px}
.gallery-volume-filters button{padding:9px 16px;min-height:37px;border:1px solid #b4cee1;background:#fff;color:#274e70;font-size:12px;font-weight:700;border-radius:999px;cursor:pointer}
.gallery-volume-filters button.is-active{background:#18476d;border-color:#18476d;color:#fff}
.gallery-volume-filters button span{font-size:10px;font-weight:600;margin-left:4px;opacity:.68}
.gallery-volume-filters button:focus-visible,.gallery-filters button:focus-visible,.gallery-image-button:focus-visible{outline:3px solid #168bd4;outline-offset:3px}
@media(max-width:700px){.gallery-image-button{padding:8px}.gallery-volume-filters{gap:6px;margin:-3px 0 17px;padding:12px 10px}.gallery-volume-label{width:100%;margin-bottom:1px}.gallery-volume-filters button{font-size:11px;padding:8px 13px}.gallery-caption h2{overflow-wrap:anywhere}}
