.page-progress{position:fixed;inset:0 auto auto 0;width:100%;height:3px;z-index:100;transform-origin:left;transform:scaleX(0);background:var(--acid);mix-blend-mode:difference;pointer-events:none}
.story-ticker{overflow:hidden;background:var(--ink);color:var(--paper);border-top:1px solid rgba(255,255,255,.16);border-bottom:1px solid rgba(255,255,255,.16);padding:1rem 0}
.story-ticker>div{display:flex;align-items:center;width:max-content;gap:2rem;animation:ticker 25s linear infinite}
.story-ticker span{font-family:var(--serif);font-size:1.45rem;white-space:nowrap}
.story-ticker b{color:var(--acid);font-size:.8rem}
@keyframes ticker{to{transform:translateX(-50%)}}
.hero-photo{transform:translate3d(0,var(--hero-shift,0),0) rotate(1.2deg);box-shadow:0 30px 80px rgba(0,0,0,.35)}
.frame-note{transform:translate3d(0,var(--note-shift,0),0) rotate(-3deg)}
.work{overflow:hidden}
.gallery{display:block;columns:3;column-gap:1.1rem}
.gallery-item,.gallery-item.tall,.gallery-item.wide{display:inline-block;width:100%;height:auto;grid-row:auto;grid-column:auto;margin:0 0 1.1rem;break-inside:avoid;overflow:hidden;background:linear-gradient(110deg,#c7c1b5 30%,#d9d4ca 45%,#c7c1b5 60%);background-size:220% 100%;animation:photo-placeholder 1.5s linear infinite;vertical-align:top;transform:translateY(28px) rotate(var(--card-angle,0deg));clip-path:inset(0 0 18% 0);opacity:.45;transition:clip-path .7s cubic-bezier(.2,.8,.2,1),opacity .55s,transform .7s cubic-bezier(.2,.8,.2,1)}
.gallery-item:nth-child(3n+1){--card-angle:-.35deg}
.gallery-item:nth-child(3n+2){--card-angle:.3deg}
.gallery-item.in-view{clip-path:inset(0);opacity:1;transform:translateY(0) rotate(var(--card-angle))}
.gallery-item img{width:100%;height:auto;object-fit:contain;transform:scale(1.002);transition:transform .8s cubic-bezier(.2,.8,.2,1),filter .5s}
.gallery-item:hover{z-index:2;transform:translateY(-7px) rotate(0deg)}
.gallery-item:hover img{transform:scale(1.025);filter:brightness(.9)}
.gallery-item span{background:var(--acid);color:var(--ink)}
.gallery-item.is-hidden{display:none}
@keyframes photo-placeholder{to{background-position:-220% 0}}
.about-photo img,.contact-image img{transition:transform 1s cubic-bezier(.2,.8,.2,1),filter .8s}
.about-photo:hover img,.contact-image:hover img{transform:scale(1.018);filter:saturate(1.05)}
@media(max-width:850px){.gallery{columns:2}.hero-photo{transform:rotate(1deg)}.story-ticker>div{animation-duration:20s}}
@media(max-width:560px){.gallery{columns:1}.gallery-item,.gallery-item.tall,.gallery-item.wide{height:auto;margin-bottom:1rem}.gallery-item img{height:auto}.story-ticker span{font-size:1.15rem}}
@media(prefers-reduced-motion:reduce){.story-ticker>div{animation:none}.gallery-item{clip-path:none;opacity:1;transform:none}.page-progress{display:none}}
