:root{--gallery-speed:36s;--cover-gap:10px}
.portfolio{overflow:hidden;padding-inline:var(--gutter)}
.portfolio .section-heading{margin-bottom:36px}
.cover-marquee{display:grid;grid-template-columns:1fr;gap:var(--cover-gap);width:calc(100% + (var(--gutter) * 2));margin-left:calc(var(--gutter) * -1);overflow:hidden;isolation:isolate}
.cover-row{min-width:0;overflow:hidden;mask-image:linear-gradient(90deg,transparent 0,#000 3%,#000 97%,transparent 100%)}
.cover-track{display:flex;width:max-content;animation:cover-flow-right var(--gallery-speed) linear infinite;will-change:transform}
.cover-row-1 .cover-track{animation-delay:-7s}
.cover-row-2 .cover-track{animation-duration:calc(var(--gallery-speed) + 9s);animation-delay:-20s}
.cover-row-3 .cover-track{animation-duration:calc(var(--gallery-speed) + 16s);animation-delay:-13s}
.cover-loop-set{display:flex;flex:none;gap:var(--cover-gap);padding-right:var(--cover-gap)}
.cover-card{position:relative;flex:0 0 clamp(155px,14vw,225px);width:clamp(155px,14vw,225px);aspect-ratio:1;padding:0;overflow:hidden;border:1px solid transparent;background:#080909;text-align:left;transform:translateZ(0);transition:transform .45s cubic-bezier(.22,1,.36,1),border-color .35s,box-shadow .35s;contain:paint}
.cover-art{position:absolute;inset:0;display:block}
.cover-art img{width:100%;height:100%;object-fit:cover;transition:transform .65s cubic-bezier(.22,1,.36,1),filter .45s;will-change:transform}
.cover-shine{position:absolute;z-index:2;inset:-60%;pointer-events:none;background:linear-gradient(115deg,transparent 43%,color-mix(in srgb,var(--accent) 45%,white) 50%,transparent 57%);opacity:0;transform:translateX(-55%) rotate(8deg);transition:transform .7s cubic-bezier(.22,1,.36,1),opacity .25s}
.cover-caption{position:absolute;z-index:3;left:0;right:0;bottom:0;min-height:42%;display:grid;grid-template-columns:1fr auto;align-content:end;gap:2px 12px;padding:34px 14px 13px;color:#fff;background:linear-gradient(transparent,#000e);opacity:0;transform:translateY(10px);transition:opacity .32s,transform .42s cubic-bezier(.22,1,.36,1)}
.cover-caption strong{align-self:end;font-family:var(--display);font-size:clamp(15px,1.3vw,21px);line-height:1;letter-spacing:-.035em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cover-caption small{grid-column:1;font-size:8px;letter-spacing:.08em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#ffffffb8}
.cover-caption i{grid-column:2;grid-row:1/3;align-self:end;font-style:normal;font-size:22px;color:var(--accent)}
.gallery-glow .cover-card:hover,.gallery-glow .cover-card:focus-visible{z-index:5;transform:scale(1.045);border-color:color-mix(in srgb,var(--accent) 78%,white);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent),0 0 34px color-mix(in srgb,var(--accent) 38%,transparent),0 18px 46px #000c}
.gallery-glow .cover-card:hover img,.gallery-glow .cover-card:focus-visible img{transform:scale(1.07);filter:brightness(1.12) saturate(1.1)}
.cover-card:hover .cover-caption,.cover-card:focus-visible .cover-caption{opacity:1;transform:none}
.gallery-glow .cover-card:hover .cover-shine,.gallery-glow .cover-card:focus-visible .cover-shine{opacity:.65;transform:translateX(55%) rotate(8deg)}
.gallery-static .cover-track,.gallery-pause .cover-row:has(:focus-visible) .cover-track{animation-play-state:paused}
@media(hover:hover) and (pointer:fine){.gallery-pause .cover-row:hover .cover-track{animation-play-state:paused}}
.portfolio-controls{width:min(100%,960px);margin:28px auto 0;padding:18px 28px 20px;border:1px solid var(--line);border-radius:999px;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(16px)}
.portfolio-index{display:flex;justify-content:center;align-items:center;gap:18px;margin-bottom:13px;font-size:12px;letter-spacing:.12em}
.portfolio-index strong{font-size:18px;letter-spacing:-.02em}
.portfolio-index span{color:var(--muted)}
.portfolio-index b{color:var(--ink)}
.portfolio-controls .filter-row{justify-content:center;margin:0}
.portfolio-controls .filter{padding:9px 16px}
@keyframes cover-flow-right{from{transform:translate3d(-50%,0,0)}to{transform:translate3d(0,0,0)}}
@media(prefers-reduced-motion:reduce){.cover-track{animation:none}.cover-row{overflow-x:auto;scrollbar-width:none}.cover-row::-webkit-scrollbar{display:none}.cover-loop-set[aria-hidden=true]{display:none}}
@media(max-width:700px){:root{--cover-gap:7px;--gallery-speed:29s}.portfolio{padding-inline:var(--gutter)}.portfolio .section-heading{margin-bottom:24px}#gallery.editorial-gallery{width:calc(100% + (var(--gutter) * 2));margin-left:calc(var(--gutter) * -1)}.cover-marquee{gap:7px}.cover-card{flex-basis:clamp(116px,32vw,146px);width:clamp(116px,32vw,146px)}.cover-caption{padding:25px 9px 8px}.cover-caption strong{font-size:13px}.cover-caption small{font-size:7px}.portfolio-controls{border-radius:18px;padding:15px 12px 13px;margin-top:20px}.portfolio-index{flex-wrap:wrap;gap:5px 10px;margin-bottom:12px}.portfolio-index strong{font-size:14px}.portfolio-index span{font-size:8px}.portfolio-controls .filter-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:6px}.portfolio-controls .filter{width:100%;min-width:0;padding:10px 6px;font-size:7px}}
