/* Scroll reveals use the individual translate property, preserving card hover transforms. */
.gallery-figure:not(:first-child),dialog.visible .gallery-figure:not(:first-child){opacity:1;transform:none;transition:none;animation:none}
.motion-pending,dialog.visible .gallery-figure.motion-pending{opacity:0;translate:0 22px}

/* The About row has two equal groups, so the loop has no empty end or jump. */
.collaborations{margin-top:42px;max-width:350px;display:none;opacity:0}
.about-open .collaborations{display:block;animation:brands-enter .7s .25s cubic-bezier(.22,1,.36,1) both}
.brand-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}
.brand-heading h3{font-size:15px;line-height:22px;font-weight:600;font-style:italic;letter-spacing:.05px;color:var(--secondary);margin:0}
.brand-viewport{overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.brand-track{display:flex;width:max-content;animation:brand-slide 42.5s linear infinite;animation-play-state:paused}
.about-open .brand-track{animation-play-state:running}
.collaborations.page-hidden .brand-track{animation-play-state:paused}
.brand-group{display:flex;align-items:center;gap:32px;padding-right:32px}
.brand-logo{position:relative;display:block;flex:0 0 132px;width:132px;height:44px}
.brand-logo .brand-image{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:.78}
.brand-logo[data-brand=topview] .brand-image{object-fit:cover}
.brand-logo .brand-dark{display:none}[data-theme=dark] .brand-logo .brand-light{display:none}[data-theme=dark] .brand-logo .brand-dark{display:block}
@keyframes brand-slide{to{transform:translate3d(-50%,0,0)}}
@keyframes brands-enter{from{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}

/* Reference-sized free cursor, with an expand icon on the monitor. */
.matteo-cursor{position:fixed;left:0;top:0;z-index:2147483647;pointer-events:none;opacity:0;border:1px solid #34383b80;background:#34383b4d;border-radius:100vw;width:1rem;height:1rem;transition:opacity .12s,background-color .3s,border-color .3s;will-change:transform,width,height}
[data-theme=dark] .matteo-cursor{border-color:#ffffff99;background:#ffffff4d}
.matteo-cursor.is-visible{opacity:1}
.cursor-symbol{position:absolute;top:50%;left:50%;width:1rem;height:1rem;transform:translate(-50%,-50%);opacity:0;overflow:visible;fill:var(--primary);stroke:var(--primary);stroke-width:.7;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 3px var(--bg))}
.matteo-cursor.is-expand{border-color:transparent;background:transparent}.matteo-cursor.is-expand .cursor-symbol{opacity:1}
@media(hover:hover) and (pointer:fine){html.glass-pointer-ready,html.glass-pointer-ready *{cursor:none!important}}
@media(hover:none),(pointer:coarse){.matteo-cursor{display:none}}
@media(prefers-reduced-motion:reduce){
 .motion-pending,dialog.visible .gallery-figure.motion-pending{opacity:1;translate:none}
 .about-open .collaborations{animation:none;opacity:1}
 .brand-track{animation:none;transform:none;width:auto}
 .brand-group{flex-wrap:wrap;gap:20px;padding:0;justify-content:center}
 .brand-group[aria-hidden=true]{display:none}.brand-viewport{mask-image:none;-webkit-mask-image:none}
 .brand-logo{flex-basis:calc(50% - 10px);width:calc(50% - 10px)}
 .matteo-cursor{transition:none}
}
