@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Playfair+Display:ital,wght@1,500&display=swap');
:root{font-family:'DM Sans',sans-serif;color:#0b183b;background:#f5f5f0;scroll-behavior:smooth}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}a:focus-visible,button:focus-visible{outline:3px solid #13cbe0;outline-offset:5px}header{padding:16px 5%;display:flex;align-items:center;justify-content:space-between;background:#fff}header img{width:260px;max-height:90px;object-fit:contain}nav{display:flex;gap:28px;font-size:14px}.gallery-hero{min-height:650px;height:85vh;position:relative;overflow:hidden;background:#101f43;color:white}.hero-photo{position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,18,49,.85),rgba(9,18,49,.12)),url('assets/gallery/architecture.jpg') center/cover;animation:drift 22s ease-in-out infinite alternate}.hero-content{position:relative;padding:80px 8%;max-width:780px}.eyebrow{letter-spacing:3px;font-size:11px;font-weight:600}h1{font-size:clamp(70px,10vw,145px);line-height:.98;letter-spacing:-5px;margin:32px 0}em{font-family:'Playfair Display',serif;font-weight:500;color:#83edec}.hero-content>p:not(.eyebrow){max-width:380px;line-height:1.8}.hero-content>a{display:inline-block;margin-top:28px;border-bottom:1px solid #fff;padding-bottom:10px}.hero-stamp{position:absolute;bottom:25px;right:5%;letter-spacing:3px;font-size:10px}#exhibition{padding:85px 6%}.intro{max-width:760px}h2{font-size:clamp(40px,5vw,72px);line-height:1.1;letter-spacing:-2px;margin:20px 0 30px}.intro em{color:#3661c6}.sample-note{border-left:3px solid #396ce9;padding:12px 20px;line-height:1.7;color:#536077;font-size:14px;max-width:660px}.filters{display:flex;gap:10px;flex-wrap:wrap;margin:44px 0 18px}.filters button{background:transparent;border:1px solid #c7ccda;border-radius:30px;padding:11px 20px;color:#334363}.filters button[aria-pressed=true]{background:#102447;color:#fff;border-color:#102447}#count{font-size:12px;color:#657089}.gallery-grid{columns:3;column-gap:24px;margin-top:30px}.tile{break-inside:avoid;margin:0 0 32px;animation:arrive .65s both}.tile button{display:block;padding:0;border:0;background:#d8deea;width:100%;overflow:hidden;position:relative;border-radius:4px}.tile img{width:100%;display:block;transition:transform .8s;min-height:200px}.tile button:hover img{transform:scale(1.05)}.tile button::after{content:'View photograph ↗';position:absolute;bottom:18px;right:18px;background:#fff;padding:10px 14px;border-radius:24px;font-size:12px}.tile figcaption{padding:16px 0}.tile h3{font-size:21px;margin:7px 0}.credit{font-size:11px;color:#637086;text-decoration:underline}.closing{background:radial-gradient(at 85% 15%,#1c6b90,transparent 60%),linear-gradient(125deg,#0c1639,#443095);color:#fff;padding:75px 8%}.closing a{display:inline-block;padding:16px 24px;border:1px solid #fff;border-radius:32px}footer{padding:30px 6%;font-size:12px}dialog{border:0;background:#0b1121;color:white;width:min(1100px,94vw);max-height:94vh;padding:24px;border-radius:10px}dialog::backdrop{background:#060b18e8;backdrop-filter:blur(12px)}#viewer-image{width:100%;height:65vh;object-fit:contain}.close{position:absolute;top:12px;right:15px;width:40px;height:40px;border:0;border-radius:50%;font-size:28px}.viewer-info{display:flex;align-items:center;justify-content:space-between;gap:20px}.viewer-info h2{font-size:26px;letter-spacing:0;margin:8px 0}.viewer-info a{font-size:12px;text-decoration:underline}.viewer-info button{padding:10px 17px;background:transparent;color:white;border:1px solid #778297;border-radius:24px}@keyframes drift{to{transform:scale(1.08)}}@keyframes arrive{from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:none}}@media(max-width:900px){.gallery-grid{columns:2}nav{gap:15px}header img{width:200px}}@media(max-width:600px){header{flex-direction:column;gap:16px}nav{font-size:12px;gap:18px}.gallery-hero{height:auto;min-height:600px}.hero-content{padding:65px 7%}h1{letter-spacing:-3px}.gallery-grid{columns:1}#exhibition{padding:55px 6%}.viewer-info{align-items:flex-start}#viewer-image{height:55vh}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.tile button::before{content:'';position:absolute;z-index:1;left:50%;top:50%;transform:translate(-50%,-50%);width:46%;height:24%;background:url('assets/ati-logo.png') center/contain no-repeat;opacity:.5;filter:drop-shadow(0 1px 2px #ffffffc0);pointer-events:none}.viewer-photo{position:relative}.viewer-watermark{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:clamp(130px,28%,320px);height:auto;opacity:.5;filter:drop-shadow(0 1px 2px #ffffffc0);pointer-events:none}

.header-lens{margin:0 24px;flex:0 0 102px;text-align:center}.header-lens img{width:80px;height:80px;object-fit:cover;border-radius:50%;border:3px solid #fff;box-shadow:0 0 0 1px #d3dced,0 6px 22px #13366026}.header-lens figcaption{font-size:6px;letter-spacing:.5px;color:#6d7890;line-height:1.4;margin-top:4px}@media(max-width:900px){.header-lens{margin:0 12px;flex-basis:75px}.header-lens img{width:65px;height:65px}header{padding-inline:3%}}@media(max-width:600px){header{display:grid;grid-template-columns:1fr 75px;gap:12px;padding:16px 6%}header>a{min-width:0}header>a>img{width:min(230px,100%)}header nav{grid-column:1/-1;justify-content:space-between;gap:10px}.header-lens{margin:0}.header-lens img{width:64px;height:64px}}

/* Camera lens material assembly: barrel, metal rim, glass and reflected light. */
.lens-assembly{position:relative;display:inline-block;width:80px;height:80px;perspective:600px;vertical-align:middle}.header-lens .lens-assembly>img{display:block;width:100%;height:100%;animation:lens-photo-settle 2.3s cubic-bezier(.16,1,.3,1) both}.lens-materials{position:absolute;inset:0;pointer-events:none}.lens-part{position:absolute;border-radius:50%;animation-fill-mode:both}.lens-barrel{inset:0;border:7px solid #15223c;box-shadow:inset 0 0 0 2px #8193af,0 4px 12px #081b4033;animation:lens-barrel-assemble 1.9s cubic-bezier(.16,1,.3,1) both}.lens-rim{inset:8%;border:4px solid #a9b5c7;box-shadow:inset 0 0 0 2px #394b63,0 0 0 1px #e3edfa;animation:lens-rim-assemble 2s .12s cubic-bezier(.16,1,.3,1) both}.lens-glass{inset:23%;background:radial-gradient(circle at 35% 28%,#a4f7ff99,transparent 24%),radial-gradient(circle at 65% 65%,#a265ef99,transparent 42%),radial-gradient(circle,#10325c,#030b21);border:2px solid #426c99;animation:lens-glass-assemble 2.1s .2s cubic-bezier(.16,1,.3,1) both}.lens-highlight{inset:12%;border-top:2px solid #a8edff;border-right:2px solid transparent;animation:lens-light-assemble 2.4s .15s ease both}
@keyframes lens-photo-settle{0%,55%{opacity:0;transform:scale(.92)}85%,100%{opacity:1;transform:none}}@keyframes lens-barrel-assemble{0%{opacity:0;transform:translate3d(-40px,12px,-100px) rotateY(-65deg) rotate(-60deg) scale(1.3)}30%,70%{opacity:1}75%{transform:none}100%{opacity:0;transform:none}}@keyframes lens-rim-assemble{0%{opacity:0;transform:translate3d(35px,-25px,70px) rotateX(65deg) rotate(100deg) scale(1.5)}35%,70%{opacity:1}75%{transform:none}100%{opacity:0;transform:none}}@keyframes lens-glass-assemble{0%{opacity:0;transform:translate3d(0,30px,130px) rotateY(55deg) scale(.3)}35%,65%{opacity:1}72%{transform:none}100%{opacity:0;transform:none}}@keyframes lens-light-assemble{0%,35%{opacity:0;transform:rotate(-100deg) scale(1.2)}60%{opacity:1}100%{opacity:0;transform:rotate(100deg) scale(1)}}@media(max-width:900px){.lens-assembly{width:65px;height:65px}}@media(max-width:600px){.lens-assembly{width:64px;height:64px}}@media(prefers-reduced-motion:reduce){.header-lens .lens-assembly>img{opacity:1;transform:none;animation:none}.lens-materials{display:none}}

/* Tighter gallery rhythm with less empty hero and section space. */
.gallery-hero{min-height:520px;height:72vh;max-height:720px}.hero-content{padding:55px 8%}h1{margin:24px 0}.hero-content>a{margin-top:20px}#exhibition{padding:58px 6%}.intro h2{margin-bottom:22px}.filters{margin-top:30px}.gallery-grid{margin-top:24px;column-gap:20px}.tile{margin-bottom:24px}.tile figcaption{padding:12px 0}.closing{padding:50px 8%}footer{padding:24px 6%}@media(max-width:600px){.gallery-hero{height:auto;min-height:500px}.hero-content{padding:42px 7%}#exhibition{padding:38px 6%}.closing{padding:38px 7%}.filters{margin-top:24px}.gallery-grid{margin-top:20px}}
