/* Poster archive: quiet editorial grid, immersive inspection. */
.posters{padding:130px var(--pad) 40px}.poster-heading{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:40px}.poster-eyebrow{font-size:12px;letter-spacing:.12em;color:#a5a9ae;display:block;margin-bottom:28px}.poster-heading h2{font-size:clamp(72px,10vw,160px);line-height:.95;margin:0}.poster-heading p{font-size:16px;line-height:1.6;color:#a5a9ae;max-width:35ch;margin:0 0 8px}.poster-controls{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #ffffff24;padding:25px 0 35px;gap:20px}.poster-filters{display:flex;gap:8px;flex-wrap:wrap}.poster-filters button{border:1px solid #ffffff26;background:#080c10;border-radius:99px;padding:10px 18px;font-size:13px}.poster-filters button[aria-pressed=true]{background:var(--green);color:#080a0c;border-color:var(--green)}#poster-count{font-size:12px;color:#a5a9ae;white-space:nowrap;font-variant-numeric:tabular-nums}.poster-grid{display:grid;grid-template-columns:1fr 1fr;gap:42px 22px}.poster-card{text-align:left;background:none;padding:0;min-width:0}.poster-card[hidden]{display:none}.poster-image{display:block;position:relative;overflow:hidden;background:#111619;aspect-ratio:1.5}.poster-image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .65s cubic-bezier(.2,.7,.2,1),filter .5s}.poster-card:hover img{transform:scale(1.045);filter:brightness(1.1)}.poster-plus{position:absolute;right:16px;bottom:16px;display:grid;place-items:center;border:1px solid #ffffff65;background:#080a0c80;backdrop-filter:blur(8px);width:42px;height:42px;font-size:24px;transition:background .2s,color .2s}.poster-card:hover .poster-plus{background:var(--green);color:#000}.poster-caption{display:flex;justify-content:space-between;gap:15px;align-items:end;padding-top:16px}.poster-caption small{display:block;color:#91979b;font-size:11px;margin-bottom:7px}.poster-caption strong{font-weight:500;font-size:clamp(20px,2.3vw,32px)}.poster-number{font-size:12px;color:#91979b;font-variant-numeric:tabular-nums}.poster-footnote{font-size:12px;color:#91979b;margin-top:30px}.poster-viewbar{height:64px;padding:0 28px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #ffffff25;font-size:12px;letter-spacing:.05em}.poster-viewbar button{background:none;padding:12px}.poster-stage{position:relative;height:calc(100dvh - 170px);display:grid;place-items:center;background:#030506;touch-action:pan-y}.poster-stage img{display:block;max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain}.poster-prev,.poster-next{position:absolute;top:50%;translate:0 -50%;width:46px;height:46px;border:1px solid #ffffff55;background:#080a0cb0;backdrop-filter:blur(10px);border-radius:50%;font-size:24px}.poster-prev{left:20px}.poster-next{right:20px}.poster-prev:hover,.poster-next:hover{background:var(--green);color:#000}.poster-viewfooter{height:106px;padding:16px 28px;display:flex;align-items:center;gap:30px}.poster-viewfooter small{font-size:11px;color:#9da3aa}.poster-viewfooter h2{font-size:24px;font-weight:500;margin:6px 0 0}.poster-keyhint{margin-left:auto;color:#9da3aa;font-size:12px}#poster-detail{border:1px solid #ffffff40;border-radius:99px;padding:11px 16px;background:none;font-size:13px}#poster-detail[hidden]{display:none}#poster-detail[aria-pressed=true]{color:var(--green)}
/* Designer's selection corners; the native pointer remains precise. */
.cursor,.cursor.big{width:24px;height:24px;margin:-12px 0 0 -12px;pointer-events:none}
.cursor::before{inset:0;border-radius:0;background:linear-gradient(#dcff00,#00c4ff) left top/7px 2px no-repeat,linear-gradient(#dcff00,#00c4ff) left top/2px 7px no-repeat,linear-gradient(#00c4ff,#dcff00) right bottom/7px 2px no-repeat,linear-gradient(#00c4ff,#dcff00) right bottom/2px 7px no-repeat;box-shadow:none;animation:none;opacity:.9;transition:transform .2s;scale:1}
.cursor.interactive::before{scale:1;transform:rotate(90deg) scale(1.45);opacity:1}.cursor::after{content:"";position:absolute;inset:10px;border:1px solid #dcff00;transition:opacity .2s}.cursor.interactive::after{opacity:0}body:has(dialog[open]) .cursor{display:none}
/* Ambient light moves independently of scrolling. */
.bg i{width:90vmax;height:80vmax;left:-15vmax;top:5vh;filter:none;transform:none;background:radial-gradient(ellipse,rgba(0,140,255,.24),rgba(0,196,255,.08) 35%,transparent 65%);animation:ambient-drift 18s ease-in-out infinite alternate;will-change:transform}.bg::after{background:radial-gradient(ellipse at center,transparent 45%,rgba(0,0,0,.5))}@keyframes ambient-drift{0%{transform:translate3d(-15vw,-20vh,0) rotate(-15deg)}50%{transform:translate3d(32vw,12vh,0) rotate(8deg)}100%{transform:translate3d(55vw,-8vh,0) rotate(25deg)}}
@media(max-width:860px){.posters{padding-top:90px}.poster-heading{display:block}.poster-heading h2{font-size:clamp(70px,14vw,110px)}.poster-heading p{margin-top:24px;font-size:14px}.poster-grid{gap:30px 14px}.poster-filters button{padding:9px 12px;font-size:12px}.poster-controls{align-items:start}.poster-caption strong{font-size:20px}.poster-plus{width:32px;height:32px;font-size:20px;right:10px;bottom:10px}.poster-viewbar{padding:0 16px}.poster-viewbar>span:nth-child(2){display:none}.poster-viewfooter{padding:14px 16px;gap:12px;justify-content:space-between}.poster-keyhint{display:none}.poster-viewfooter h2{font-size:19px}.poster-stage{height:calc(100dvh - 174px)}.poster-prev{left:10px}.poster-next{right:10px}.poster-prev,.poster-next{width:38px;height:38px}.bg i{animation-duration:22s}}
@media(max-width:540px){.poster-grid{grid-template-columns:1fr}.poster-controls{flex-direction:column;gap:16px}.poster-image{aspect-ratio:1.4}.poster-footnote{line-height:1.6}}
@media(prefers-reduced-motion:reduce){.bg i{animation:none;transform:translateX(20vw)}.poster-card:hover img{transform:none}.cursor{display:none}}
.process{padding:130px var(--pad) 40px;display:grid;grid-template-columns:1fr 1.2fr;gap:50px}.process h2{font-size:clamp(80px,9vw,144px);line-height:.95;margin:0}.process-intro>p{color:#a5a9ae;line-height:1.6;margin:28px 0 20px;max-width:28ch}.process-intro>a{font-size:13px;border-bottom:1px solid #ffffff40;padding-bottom:6px}.process-steps{border-top:1px solid #ffffff30}.process details{border-bottom:1px solid #ffffff30}.process summary{display:flex;align-items:center;gap:20px;padding:26px 0;cursor:pointer;list-style:none}.process summary::-webkit-details-marker{display:none}.process summary>span{color:var(--green);font-size:12px}.process summary h3{font-size:clamp(21px,2.3vw,32px);font-weight:500;margin:0}.process summary b{margin-left:auto;font:300 28px system-ui}.process details[open] summary b{rotate:45deg}.process details>p{margin:0 0 28px 36px;max-width:46ch;color:#a5a9ae;line-height:1.65;font-size:16px}.service-strip{grid-column:1/-1;border-top:1px solid #ffffff30;margin-top:30px;padding-top:28px;display:flex;align-items:center;gap:28px;flex-wrap:wrap}.service-strip>span{font-size:12px;color:#a5a9ae}.service-strip p{font-size:16px;line-height:2}.service-strip i{font-style:normal;color:var(--green);margin:0 12px}.service-strip a{font-size:13px;color:var(--green);margin-left:auto}@media(max-width:860px){.process{grid-template-columns:1fr;gap:38px;padding-top:90px}.process h2{font-size:90px}.service-strip{gap:12px;margin-top:0}.service-strip p{font-size:14px}.service-strip a{margin-left:0}.process summary{gap:14px}.process details>p{font-size:15px}}
.poster-stage{overflow:hidden;min-height:0}.poster-stage img{position:absolute;inset:0;min-height:0;min-width:0}.poster-viewbar,.poster-viewfooter{position:relative;z-index:2;background:#080a0c}#poster-dialog{overflow:hidden}
/* Lightweight light fields: animate composited transforms, never a blur filter. */
.bg i{width:90vmax;height:90vmax;max-width:1500px;max-height:1500px;left:-18vw;top:-24vh;background:radial-gradient(ellipse at center,rgba(0,105,255,.42),rgba(0,178,255,.16) 32%,transparent 67%);filter:none;animation:blue-tide 22s ease-in-out infinite alternate;transition:none;z-index:0}
@keyframes blue-tide{0%{transform:translate3d(-8vw,-8vh,0) scale(.85);opacity:.7}50%{transform:translate3d(28vw,22vh,0) scale(1.08);opacity:1}100%{transform:translate3d(52vw,-2vh,0) scale(.95);opacity:.8}}
.bg .cursor,.bg .cursor.big{position:absolute;left:0;top:0;width:620px;height:620px;margin:-310px 0 0 -310px;border:0;border-radius:0;background:radial-gradient(circle,rgba(220,255,0,.25),rgba(181,255,20,.12) 26%,rgba(130,255,50,.035) 46%,transparent 65%);z-index:1;filter:none;mix-blend-mode:screen;opacity:0;pointer-events:none;transition:opacity .5s;will-change:transform}
.bg .cursor::before,.bg .cursor::after{display:none}.bg .cursor.visible{opacity:1}body:has(dialog[open]) .bg .cursor{display:none}.bg::before{z-index:2}.bg::after{z-index:3;background:radial-gradient(ellipse,transparent 55%,#0005)}.effects-paused .bg i,body:has(dialog[open]) .bg i{animation-play-state:paused}
.work-switch{position:sticky;top:84px;z-index:8;display:flex;gap:6px;width:max-content;max-width:calc(100% - 32px);margin:50px auto 0;padding:6px;border:1px solid #ffffff26;border-radius:99px;background:#080a0cf5}.work-switch a{padding:12px 22px;border-radius:99px;font-size:14px;white-space:nowrap}.work-switch span{font-size:10px;color:#8c9398;margin-left:12px}.work-switch a[aria-current]{background:var(--green);color:#080a0c}.work-switch a[aria-current] span{color:#3b4300}.work-switch a:hover{box-shadow:inset 0 0 0 1px #ffffff40}#work{overflow:visible}.cases-head{padding-top:65px}
@media(max-width:860px){.work-switch{top:80px;margin-top:28px}.work-switch a{padding:11px 15px;font-size:12px}.work-switch span{margin-left:6px}.bg i{width:125vmax;height:125vmax;animation-duration:28s}.bg .cursor{display:none}}
@media(prefers-reduced-motion:reduce){.bg i{animation:none;transform:translate3d(20vw,10vh,0);opacity:.8}.bg .cursor{display:none}}
.poster-switch{margin:0 auto 48px}.poster-switch+ .poster-heading{margin-top:0}
.work-switch{position:relative;top:auto}.poster-heading h2{font-size:clamp(70px,8vw,130px)}
/* Cyan light sits above the grid so the texture cannot hide its colour. */
.bg::before{z-index:0;opacity:.3}.bg i{z-index:1;left:-30vw;top:-20vh;width:115vw;height:140vh;max-width:none;max-height:none;border-radius:0;background:radial-gradient(ellipse at 46% 48%,rgba(0,196,255,.66) 0%,rgba(0,156,255,.38) 24%,rgba(0,100,240,.14) 43%,transparent 68%);filter:none;animation:cyan-sweep 16s ease-in-out infinite alternate;opacity:1;mix-blend-mode:screen;will-change:transform}.bg .cursor{z-index:2}.bg::after{background:linear-gradient(180deg,#0002,transparent 30%,#0001);z-index:3}
@keyframes cyan-sweep{0%{transform:translate3d(-15vw,-12vh,0) scale(.95)}50%{transform:translate3d(25vw,12vh,0) scale(1.08)}100%{transform:translate3d(60vw,-5vh,0) scale(1)}}
@media(max-width:860px){.bg i{left:-70vw;top:-10vh;width:200vw;height:120vh;animation-duration:20s}}
@media(prefers-reduced-motion:reduce){.bg i{animation:none;transform:translate3d(20vw,0,0)}}
.process-intro>a.process-example{display:inline-flex;align-items:center;gap:24px;max-width:100%;padding:14px 17px;border:1px solid #ffffff45;border-radius:12px;background:#080a0c90;font-size:14px;line-height:1.4}.process-example b{color:var(--green);font-size:24px;font-weight:400}.process-example:hover{border-color:var(--green);background:#101914}.process-intro>p.process-aside{font-size:13px;line-height:1.6;max-width:36ch;margin-top:24px;color:#9ba6ad}.stage-content{padding:0 0 28px 36px}.stage-content>p{font-size:16px;line-height:1.65;color:#b8c1c7;max-width:46ch}.stage-result{margin-top:22px;border-left:2px solid var(--green);padding:2px 0 2px 14px;display:grid;gap:7px}.stage-result small{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:#93a1a9}.stage-result span{font-size:14px;line-height:1.5}.format-picker{grid-column:1/-1;display:grid;grid-template-columns:1fr 1.2fr;gap:28px 50px;padding-top:56px;border-top:1px solid #ffffff30;margin-top:24px}.format-heading{grid-row:span 2}.format-heading h3{font-size:clamp(60px,6vw,94px);line-height:1.02;margin:0}.format-heading>p{font-size:15px;color:#aab7be;line-height:1.6;max-width:30ch;margin-top:24px}.format-choices{display:flex;gap:8px}.format-choices button{flex:1;min-width:0;text-align:left;padding:15px 12px;border:1px solid #ffffff35;background:#080a0cb0;border-radius:10px;font-size:15px}.format-choices small{display:block;font-size:10px;margin-top:8px;opacity:.65}.format-choices button[aria-pressed=true]{color:#080a0c;background:var(--green);border-color:var(--green)}.format-panel{padding:30px;background:#080e17d9;border:1px solid #ffffff30;border-radius:14px;min-height:390px}.format-label{font-size:10px;letter-spacing:.1em;color:var(--green)}.format-panel h4{font-size:32px;font-weight:500;margin:20px 0 14px}.format-panel>p{font-size:15px;color:#b8c1c7;line-height:1.6}.format-panel ul{list-style:none;margin:22px 0}.format-panel li{padding:8px 0;border-bottom:1px solid #ffffff16;font-size:14px}.format-panel li::before{content:'↗';color:var(--green);margin-right:12px}.format-fit{display:block;font-size:12px;color:#aab7be;line-height:1.6}.format-note{grid-column:2;font-size:11px;color:#94a4ae;line-height:1.6}.process summary h3{font-size:clamp(21px,2.1vw,30px)}
@media(max-width:860px){.format-picker{grid-template-columns:1fr;gap:24px;padding-top:36px}.format-heading{grid-row:auto}.format-heading h3{font-size:64px}.format-note{grid-column:1}.format-choices button{font-size:13px;padding:13px 9px}.format-choices small{font-size:9px}.format-panel{min-height:410px;padding:24px}.stage-content{padding-left:28px}.stage-content>p{font-size:15px}.process-intro>a.process-example{font-size:13px;gap:16px}}
