/* NIDS Gallery 1.2.0 — motion-led photo wall and Director’s Cut viewer. */
.nidsg{
	--g-navy:#0B1E3F; --g-navy2:#12336A; --g-ink:#12233F; --g-soft:#55698A;
	--g-line:#E3EAF4; --g-tint:#F3F7FC; --g-cyan:#16B8E8; --g-r:16px; --g-gap:14px;
	--g-ease:cubic-bezier(.16,1,.3,1);
	font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif; color:var(--g-ink);
	max-width:1440px; margin:0 auto;
}
.nidsg *{box-sizing:border-box}
.nidsg-head{margin:0 0 24px;max-width:68ch}
.nidsg-title{font-family:Sora,Inter,sans-serif;font-weight:800;font-size:clamp(27px,3.6vw,42px);line-height:1.1;letter-spacing:-.035em;color:var(--g-navy);margin:0 0 9px}
.nidsg-intro{margin:0;color:var(--g-soft);font-size:16px;line-height:1.7}

/* Album selector and launch control */
.nidsg-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:0 0 20px}
.nidsg-tabs{position:relative;display:flex;gap:4px;padding:4px;background:rgba(243,247,252,.9);border:1px solid var(--g-line);border-radius:999px;overflow-x:auto;scrollbar-width:none;max-width:100%;box-shadow:0 8px 22px -18px rgba(11,30,63,.5);scroll-behavior:smooth}
.nidsg-tabs::-webkit-scrollbar{display:none}
.nidsg-tab{position:relative;z-index:1;flex:0 0 auto;border:0;background:none;cursor:pointer;font:600 13px/1 Sora,Inter,sans-serif;color:var(--g-soft);padding:11px 17px;border-radius:999px;transition:color .35s var(--g-ease),transform .35s var(--g-ease);white-space:nowrap}
.nidsg-tab span{font:500 11px/1 Inter,sans-serif;opacity:.7;margin-left:5px}
.nidsg-tab.is-on{color:#fff}
.nidsg-tab:hover:not(.is-on){color:var(--g-navy);transform:translateY(-1px)}
.nidsg-tab:focus-visible,.nidsg-play:focus-visible,.nidsg-link:focus-visible{outline:3px solid var(--g-cyan);outline-offset:3px}
.nidsg-tab-ink{position:absolute;z-index:0;top:4px;bottom:4px;left:0;width:0;border-radius:999px;background:linear-gradient(120deg,#0B1E3F,#16457D);box-shadow:0 7px 22px -8px rgba(11,30,63,.7),inset 0 1px 0 rgba(255,255,255,.16);transition:transform .58s var(--g-ease),width .58s var(--g-ease)}
.nidsg-play{position:relative;isolation:isolate;display:inline-flex;align-items:center;gap:10px;border:1px solid rgba(22,184,232,.32);cursor:pointer;border-radius:999px;padding:12px 20px 12px 15px;background:linear-gradient(120deg,#0B1E3F 0%,#123D70 58%,#087FAE 100%);color:#fff;font:700 13px/1 Sora,Inter,sans-serif;letter-spacing:.01em;box-shadow:0 12px 28px -14px rgba(11,30,63,.75),inset 0 1px 0 rgba(255,255,255,.16);transition:transform .35s var(--g-ease),box-shadow .35s var(--g-ease),filter .35s}
.nidsg-play::before{content:"";position:absolute;z-index:-1;inset:-2px;border-radius:inherit;background:linear-gradient(110deg,#16B8E8,#8BE8FF,#16B8E8);opacity:0;filter:blur(12px);transition:opacity .35s}
.nidsg-play svg{width:19px;height:19px;fill:#69E0FF;filter:drop-shadow(0 0 7px rgba(105,224,255,.5));transition:transform .35s var(--g-ease)}
.nidsg-play:hover{transform:translateY(-3px);box-shadow:0 18px 34px -15px rgba(11,30,63,.8),inset 0 1px 0 rgba(255,255,255,.2);filter:saturate(1.12)}
.nidsg-play:hover::before{opacity:.75}
.nidsg-play:hover svg{transform:scale(1.16)}
.nidsg-play:active{transform:translateY(-1px) scale(.98)}
.nidsg-note{margin:-7px 0 17px;color:var(--g-soft);font-size:14px;line-height:1.6;max-width:68ch}

/* Photo wall: staggered reveal, pointer-lit depth and richer hover motion. */
.nidsg-grid{columns:var(--nidsg-cols,3);column-gap:var(--g-gap);transition:opacity .36s var(--g-ease),transform .48s var(--g-ease),filter .48s var(--g-ease)}
.nidsg-grid.is-swapping{opacity:0;transform:translateY(18px) scale(.985);filter:blur(5px)}
@media (max-width:1024px){.nidsg-grid{columns:min(var(--nidsg-cols,3),3)}}
@media (max-width:760px){.nidsg-grid{columns:2;--g-gap:9px}.nidsg{--g-r:12px}}
.nidsg-item{break-inside:avoid;margin:0 0 var(--g-gap);display:block;perspective:1100px}
.nidsg-item[hidden]{display:none}
.nidsg-link{position:relative;display:block;overflow:hidden;border-radius:var(--g-r);background:linear-gradient(110deg,#EAF1F8 30%,#F8FBFE 50%,#EAF1F8 70%) 0 0/300% 100%;animation:nidsg-shimmer 1.6s linear infinite;isolation:isolate;transform:perspective(1100px) rotateX(var(--tilt-y,0deg)) rotateY(var(--tilt-x,0deg)) translateZ(0);transform-style:preserve-3d;box-shadow:0 7px 22px -16px rgba(11,30,63,.42);transition:box-shadow .55s var(--g-ease),transform .65s var(--g-ease),filter .55s var(--g-ease)}
.nidsg-link.is-loaded{animation:none;background:var(--g-tint)}
.nidsg-link img{position:relative;z-index:0;display:block;width:100%;height:auto;opacity:0;transform:scale(1.025);transition:opacity .75s ease,transform 1.35s cubic-bezier(.16,1,.3,1),filter .85s ease;will-change:transform,filter}
.nidsg-link.is-loaded img{opacity:1;transform:scale(1.015)}
.nidsg-link::before{content:"";position:absolute;z-index:1;top:-60%;left:-85%;width:54%;height:220%;transform:rotate(22deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.48),rgba(117,226,255,.22),transparent);opacity:0;pointer-events:none;transition:left 1.05s cubic-bezier(.16,1,.3,1),opacity .35s}
.nidsg-link::after{content:"";position:absolute;z-index:1;inset:0;background:radial-gradient(circle at var(--spot-x,50%) var(--spot-y,50%),rgba(112,226,255,.19),transparent 38%),linear-gradient(to top,rgba(5,20,46,.9),rgba(5,20,46,.08) 55%,rgba(5,20,46,.02));opacity:0;transition:opacity .55s var(--g-ease);pointer-events:none}
.nidsg-link figcaption{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:17px 18px 18px;color:#fff;font-size:13px;line-height:1.5;opacity:0;transform:translateY(22px);filter:blur(5px);transition:opacity .55s var(--g-ease),transform .7s var(--g-ease),filter .7s var(--g-ease)}
@media (hover:hover){
  .nidsg-link:hover{transform:perspective(1100px) rotateX(var(--tilt-y,0deg)) rotateY(var(--tilt-x,0deg)) translateY(-7px) scale(1.012);box-shadow:0 28px 48px -23px rgba(11,30,63,.72),0 0 0 1px rgba(22,184,232,.25);filter:saturate(1.08)}
  .nidsg-link:hover img{transform:scale(1.16);filter:saturate(1.18) contrast(1.035)}
  .nidsg-link:hover::before{left:145%;opacity:1}
  .nidsg-link:hover::after,.nidsg-link:focus-visible::after{opacity:1}
  .nidsg-link:hover figcaption,.nidsg-link:focus-visible figcaption{opacity:1;transform:translateY(0);filter:none}
}
.nidsg.js .nidsg-item{opacity:0;transform:translateY(34px) scale(.95) rotateX(3deg);transition:opacity .82s var(--g-ease) var(--d,0ms),transform 1s var(--g-ease) var(--d,0ms)}
.nidsg.js .nidsg-item.is-in{opacity:1;transform:none}
.nidsg-empty{text-align:center;padding:70px 20px;border:1.5px dashed var(--g-line);border-radius:var(--g-r);background:radial-gradient(ellipse at 50% 0%,#fff,transparent 70%),var(--g-tint);color:var(--g-soft)}
.nidsg-empty-h{font:800 21px/1.3 Sora,Inter,sans-serif;color:var(--g-navy);margin:0 0 7px}
.nidsg-empty p{margin:0;line-height:1.6}
@keyframes nidsg-shimmer{to{background-position:-300% 0}}

/* ============ Cinema viewer ============ */
.nidsg-lb{position:fixed;inset:0;z-index:999999;display:flex;flex-direction:column;color:#fff;font-family:Inter,system-ui,sans-serif;background:#050D1D;opacity:0;visibility:hidden;transition:opacity .55s var(--g-ease),visibility 0s .55s;--g-ease:cubic-bezier(.16,1,.3,1);--g-cyan:#42D7FF;touch-action:none;-webkit-user-select:none;user-select:none;isolation:isolate;overflow:hidden}
.nidsg-lb.is-open{opacity:1;visibility:visible;transition:opacity .55s var(--g-ease)}
.nidsg-lb *{box-sizing:border-box}
.nidsg-lb-amb{position:absolute;z-index:0;inset:-12%;background:center/cover no-repeat;filter:blur(64px) saturate(1.45);opacity:0;transform:scale(1.12);transition:opacity 1.15s ease,transform 12s linear;pointer-events:none}
.nidsg-lb-amb.is-on{opacity:.38;transform:scale(1.17)}
.nidsg-lb::before{content:"";position:absolute;z-index:0;inset:-25%;pointer-events:none;background:radial-gradient(ellipse at 18% 22%,rgba(18,123,178,.28),transparent 38%),radial-gradient(ellipse at 83% 70%,rgba(28,75,153,.32),transparent 42%),radial-gradient(ellipse at 54% 8%,rgba(22,184,232,.14),transparent 32%);animation:nidsg-aurora 22s ease-in-out infinite alternate;will-change:transform}
.nidsg-lb-vignette{position:absolute;z-index:2;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(3,10,24,.64),transparent 24%,transparent 70%,rgba(3,10,24,.72)),radial-gradient(ellipse at center,transparent 48%,rgba(1,7,18,.34) 100%)}
.nidsg-lb-vignette::after{content:"";position:absolute;inset:0;opacity:.12;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(255,255,255,.07) 0,rgba(255,255,255,.07) 1px,transparent 1px,transparent 3px);mix-blend-mode:soft-light}
@keyframes nidsg-aurora{0%{transform:translate3d(-2%,1%,0) rotate(-2deg) scale(1)}100%{transform:translate3d(2%,-1%,0) rotate(2deg) scale(1.06)}}
.nidsg-lb-stage{position:absolute;z-index:1;inset:0;overflow:hidden;perspective:1800px;perspective-origin:50% 48%;transform-style:preserve-3d}
.nidsg-lb-stage::after{content:"";position:absolute;z-index:3;inset:-20% -35%;pointer-events:none;opacity:0;transform:translate3d(-120%,0,0) skewX(-18deg);background:linear-gradient(90deg,transparent 35%,rgba(74,215,255,.05) 44%,rgba(180,246,255,.36) 50%,rgba(74,215,255,.08) 56%,transparent 68%);mix-blend-mode:screen}
.nidsg-lb.is-transitioning .nidsg-lb-stage::after{animation:nidsg-light-sweep 1.05s cubic-bezier(.22,.7,.22,1) both}
@keyframes nidsg-light-sweep{0%{opacity:0;transform:translate3d(-120%,0,0) skewX(-18deg)}18%{opacity:1}100%{opacity:0;transform:translate3d(120%,0,0) skewX(-18deg)}}
.nidsg-lb-slide{position:absolute;z-index:2;inset:0;display:flex;align-items:center;justify-content:center;transform-style:preserve-3d;backface-visibility:hidden;will-change:transform,opacity,filter,clip-path}
.nidsg-lb-slide img{display:block;max-width:none;max-height:none;object-fit:contain;border:1px solid rgba(255,255,255,.14);border-radius:clamp(8px,1.3vw,19px);box-shadow:0 42px 125px -34px rgba(0,0,0,.88),0 0 0 1px rgba(255,255,255,.055),0 0 55px rgba(22,184,232,.08);transform-origin:center center;backface-visibility:hidden;background:#0B1E3F;will-change:transform;user-select:none;-webkit-user-drag:none}
.nidsg-lb.is-transitioning .nidsg-lb-amb.is-on{filter:blur(58px) saturate(1.7) brightness(1.1)}
.nidsg-lb-amb{transition:opacity 1.2s ease,transform 8s cubic-bezier(.2,.6,.3,1),filter 1.1s ease}
.nidsg-lb-amb.is-on{transform:scale(1.22)}

/* Viewer chrome: glass controls, conference identity and animated caption */
.nidsg-lb-top,.nidsg-lb-foot,.nidsg-lb-nav{transition:opacity .55s var(--g-ease),transform .55s var(--g-ease)}
.nidsg-lb.is-idle .nidsg-lb-top{opacity:0;transform:translateY(-16px);pointer-events:none}
.nidsg-lb.is-idle .nidsg-lb-foot{opacity:0;transform:translateY(16px);pointer-events:none}
.nidsg-lb.is-idle .nidsg-lb-nav{opacity:0;pointer-events:none}
.nidsg-lb.is-idle{cursor:none}
.nidsg-lb-top{position:absolute;z-index:4;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px clamp(16px,3vw,46px);background:linear-gradient(to bottom,rgba(3,10,24,.64),rgba(3,10,24,0));}
.nidsg-lb-brand{display:flex;align-items:center;gap:11px;min-width:180px}
.nidsg-lb-mark{position:relative;display:grid;place-items:center;width:37px;height:37px;border:1px solid rgba(91,222,255,.42);border-radius:12px;background:linear-gradient(145deg,rgba(22,184,232,.23),rgba(255,255,255,.055));box-shadow:0 0 24px rgba(22,184,232,.12),inset 0 1px 0 rgba(255,255,255,.17)}
.nidsg-lb-mark::before,.nidsg-lb-mark::after{content:"";position:absolute;width:13px;height:13px;border:1.6px solid #7BE5FF;transform:rotate(45deg)}
.nidsg-lb-mark::after{width:5px;height:5px;background:#7BE5FF;box-shadow:0 0 11px rgba(123,229,255,.95)}
.nidsg-lb-brand-copy{display:flex;flex-direction:column;gap:3px}
.nidsg-lb-brand-copy b{font:800 13px/1 Sora,Inter,sans-serif;letter-spacing:.13em;color:#fff}
.nidsg-lb-brand-copy small{font:600 9px/1.2 Inter,sans-serif;letter-spacing:.17em;text-transform:uppercase;color:rgba(222,241,255,.62)}
.nidsg-lb-count{font:700 13px/1.2 Sora,Inter,sans-serif;font-variant-numeric:tabular-nums;letter-spacing:.08em;color:rgba(255,255,255,.94);text-align:center}
.nidsg-lb-count-main{display:block}
.nidsg-lb-count small{display:block;font:600 10px/1.3 Inter,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:rgba(190,221,242,.62);margin-top:5px}
.nidsg-lb-tools{display:flex;gap:8px;min-width:180px;justify-content:flex-end}
.nidsg-lb-btn{display:inline-grid;place-items:center;width:45px;height:45px;border-radius:50%;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.075);color:#fff;cursor:pointer;text-decoration:none;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:inset 0 1px 0 rgba(255,255,255,.1);transition:background .3s,transform .35s var(--g-ease),border-color .3s,box-shadow .3s}
.nidsg-lb-btn:hover{background:rgba(22,184,232,.18);border-color:rgba(94,222,255,.56);box-shadow:0 0 22px rgba(22,184,232,.12),inset 0 1px 0 rgba(255,255,255,.15);transform:translateY(-2px)}
.nidsg-lb-btn:active{transform:scale(.94)}
.nidsg-lb-btn:focus-visible{outline:3px solid var(--g-cyan);outline-offset:3px}
.nidsg-lb-btn svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.nidsg-lb-btn .i-pause,.nidsg-lb.is-playing .nidsg-lb-btn .i-play{display:none}
.nidsg-lb.is-playing .nidsg-lb-btn .i-pause{display:block}
.nidsg-lb-nav{position:absolute;z-index:4;top:50%;width:54px;height:54px;margin-top:-27px}
.nidsg-lb-nav.prev{left:clamp(12px,2.5vw,38px)}.nidsg-lb-nav.next{right:clamp(12px,2.5vw,38px)}
.nidsg-lb-nav .nidsg-lb-btn{width:54px;height:54px;background:rgba(7,20,42,.32);border-color:rgba(255,255,255,.2)}
.nidsg-lb-foot{position:absolute;z-index:4;bottom:0;left:0;right:0;padding:54px 24px clamp(24px,5vh,52px);text-align:center;background:linear-gradient(to top,rgba(3,10,24,.76),rgba(3,10,24,0));pointer-events:none}
.nidsg-lb-caption-kicker{display:block;margin:0 0 9px;font:700 9px/1.3 Inter,sans-serif;letter-spacing:.23em;text-transform:uppercase;color:#69DFFF;opacity:.88}
.nidsg-lb-cap{max-width:76ch;margin:0 auto;font-size:clamp(14px,1.3vw,17px);font-weight:500;line-height:1.6;letter-spacing:.005em;color:rgba(255,255,255,.96);text-shadow:0 2px 16px rgba(0,0,0,.4)}
.nidsg-lb-cap.in{animation:nidsg-capin .82s var(--g-ease) .18s both}
@keyframes nidsg-capin{from{opacity:0;transform:translateY(17px);filter:blur(7px);letter-spacing:.04em}to{opacity:1;transform:none;filter:none;letter-spacing:.005em}}
.nidsg-lb-prog{position:absolute;z-index:5;left:0;top:0;height:3px;width:100%;background:rgba(255,255,255,.12);transform-origin:left;opacity:0;overflow:hidden}
.nidsg-lb-prog span{display:block;width:100%;height:100%;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,#16B8E8,#8CF0FF 55%,#fff);box-shadow:0 0 12px rgba(80,219,255,.8)}
.nidsg-lb.is-playing .nidsg-lb-prog{opacity:1}
.nidsg-lb-prog.run span{animation:nidsg-prog var(--iv,6s) linear forwards}
@keyframes nidsg-prog{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media (max-width:760px){
	.nidsg-lb-top{padding:13px 12px;gap:8px}
	.nidsg-lb-brand{min-width:0;gap:8px}
	.nidsg-lb-mark{width:32px;height:32px;border-radius:10px}
	.nidsg-lb-brand-copy b{font-size:11px}
	.nidsg-lb-brand-copy small{font-size:7px;letter-spacing:.12em}
	.nidsg-lb-count{font-size:11px}
	.nidsg-lb-count small{font-size:8px}
	.nidsg-lb-tools{min-width:0;gap:4px}
	.nidsg-lb-btn{width:38px;height:38px}
	.nidsg-lb-btn svg{width:17px;height:17px}
	.nidsg-lb-nav{display:none}
	.nidsg-lb-foot{padding:40px 18px 25px}
	.nidsg-lb-slide img{border-radius:8px}
}
@media (max-width:420px){.nidsg-lb-brand-copy small{display:none}.nidsg-lb-mark{width:29px;height:29px}.nidsg-lb-count{font-size:10px}}
html.nidsg-lock,html.nidsg-lock body{overflow:hidden}

@media (prefers-reduced-motion:reduce){
	.nidsg *,.nidsg-lb,.nidsg-lb *{animation:none!important;transition-duration:.01ms!important;transition-delay:0ms!important;scroll-behavior:auto!important}
	.nidsg.js .nidsg-item{opacity:1;transform:none}
}
