/* Progressive gallery controls. All illustrations stay explicitly disclosed. */
.project-open-button{position:relative;display:block;width:100%;border:0;border-radius:0;padding:0;background:#00268f;color:#fff;text-align:left;overflow:hidden;cursor:zoom-in}
.project-open-button img{display:block;width:100%;height:auto;transition:transform .45s ease}
.project-open-button:hover img{transform:scale(1.025)}
.project-open-hint{position:absolute;right:16px;bottom:16px;padding:11px 15px;border:1px solid #cbd9ff88;border-radius:4px;background:#001c64e8;color:#fff;font-size:12px;font-weight:700;box-shadow:0 3px 14px #00113b40}
.comparison-interactive{background:#001c64;color:#fff}
.comparison-stage{position:relative;isolation:isolate;aspect-ratio:762/810;overflow:hidden;background:#162a51;--before-visible:50%}
.comparison-layer{position:absolute;inset:0;background-repeat:no-repeat;background-size:201.5748% 126.41975%;pointer-events:none}
/* Each source remains unchanged: CSS shows x=0–762 or 774–1536, y=110–920. */
.comparison-before{background-position:left 51.40187%}
.comparison-after{background-position:right 51.40187%;clip-path:inset(0 0 0 var(--before-visible))}
.comparison-image-labels{position:absolute;inset:14px 14px auto;display:flex;justify-content:space-between;gap:16px;pointer-events:none}
.comparison-image-labels span{padding:8px 10px;border-radius:3px;background:#0033cce8;border:1px solid #b2c9ff80;color:#fff;font-size:10px;letter-spacing:1px;font-weight:700;box-shadow:0 2px 7px #00185035}
.comparison-stage[data-view=after] .comparison-image-labels span:first-child,.comparison-stage[data-view=before] .comparison-image-labels span:last-child{visibility:hidden}
.comparison-divider{position:absolute;top:0;bottom:0;left:var(--before-visible);width:2px;transform:translateX(-1px);background:#fff;box-shadow:0 0 0 1px #00134425;pointer-events:none}
.comparison-divider>span{position:absolute;top:50%;left:50%;display:flex;align-items:center;justify-content:space-between;gap:8px;width:47px;height:47px;padding:0 12px;border:2px solid white;border-radius:50%;background:#0033cc;box-shadow:0 4px 20px #00184870;color:white;transform:translate(-50%,-50%);font-size:27px;font-weight:400;line-height:1}
.comparison-divider b{font-weight:400}
.comparison-stage .comparison-range{position:absolute;z-index:2;inset:0;width:100%;height:100%;min-height:0;max-width:none;margin:0;padding:0;border:0;border-radius:0;background:transparent;opacity:0;appearance:none;-webkit-appearance:none;cursor:ew-resize;touch-action:pan-y}
.comparison-range::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:44px;height:44px;border:0;background:transparent}
.comparison-range::-moz-range-thumb{width:44px;height:44px;border:0;background:transparent}
.comparison-stage:focus-within{outline:4px solid #d3e2ff;outline-offset:-4px}
.comparison-control-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px 7px}
.comparison-endpoint{min-width:72px;min-height:44px;padding:10px 12px;border:1px solid #8eadf780;border-radius:4px;background:#0738b6;color:#fff;font-size:12px;font-weight:700;transition:background .2s ease,border-color .2s ease}
.comparison-endpoint:hover,.comparison-endpoint[aria-pressed=true]{background:#fff;color:#0033cc;border-color:#fff}
.comparison-control-bar output{color:#d1e0ff;font-size:12px;text-align:center;font-variant-numeric:tabular-nums;white-space:nowrap}
.illustrative-card .comparison-help{margin:0;padding:3px 16px 0;color:#b8cef7;font-size:10px;text-align:center}
.comparison-view-full{display:block;margin:4px auto 0;padding:12px 16px;min-height:44px;border:0;background:transparent;color:#fff;font-size:11px;font-weight:700;text-decoration:underline;text-underline-offset:4px}
.comparison-view-full:hover{color:#bcd0ff}
html.gallery-is-open,body.gallery-is-open{overflow:hidden;overscroll-behavior:none}
.gallery-dialog{width:min(1100px,calc(100vw - 40px));max-width:none;max-height:calc(100dvh - 40px);margin:auto;padding:22px 24px;border:1px solid #829de6;border-radius:10px;background:#001b62;color:#fff;overflow:auto;box-shadow:0 30px 110px #0009}
.gallery-dialog::backdrop{background:#000f36e8;backdrop-filter:blur(8px)}
.gallery-dialog-header{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:18px}
.gallery-dialog-header h2{font-size:22px;line-height:1.25;letter-spacing:-.5px;color:white}
.gallery-close,.gallery-direction{flex-shrink:0;min-height:44px;padding:10px 16px;border:1px solid #91adf280;border-radius:4px;background:#0b37a2;color:#fff;font-size:12px;font-weight:700}
.gallery-close:hover,.gallery-direction:hover{background:#1f50d5;border-color:white}
.gallery-image-frame{display:flex;align-items:center;justify-content:center;min-height:120px;background:#001044;border-radius:4px;overflow:hidden}
.gallery-dialog .gallery-dialog-image{display:block;width:auto;height:auto;max-width:100%;max-height:calc(100dvh - 260px);object-fit:contain;margin:auto}
#gallery-disclosure{margin-top:14px;color:#d3e0ff;font-size:12px;line-height:1.6}
.gallery-dialog-controls{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:16px}
.gallery-position{color:#c5d8ff;font-size:12px;font-variant-numeric:tabular-nums}
.gallery-dialog button:focus-visible{outline:3px solid #d5e4ff;outline-offset:3px}
@media(max-width:680px){.comparison-stage{aspect-ratio:762/810}.comparison-control-bar{padding:12px 13px 7px}.comparison-image-labels{inset:12px 12px auto}.comparison-image-labels span{font-size:9px;padding:7px 9px}.gallery-dialog{width:calc(100vw - 20px);max-height:calc(100dvh - 24px);padding:16px;border-radius:7px}.gallery-dialog-header{gap:14px;align-items:flex-start;margin-bottom:14px}.gallery-dialog-header h2{font-size:18px;letter-spacing:-.4px}.gallery-close{padding:10px 12px;font-size:11px}.gallery-dialog .gallery-dialog-image{max-height:calc(100dvh - 290px)}#gallery-disclosure{font-size:11px}.gallery-direction{font-size:11px;padding:10px 12px}.gallery-dialog-controls{gap:10px}.project-open-hint{font-size:11px;right:12px;bottom:12px}}
@media(prefers-reduced-motion:reduce){.project-open-button img,.comparison-endpoint{transition:none}.project-open-button:hover img{transform:none}.gallery-dialog::backdrop{backdrop-filter:none}}
