/* Seamless repeat: animate one of two identical tracks. */
.ticker{overflow:hidden;display:block;padding:0;background:#963b20;color:#fff;white-space:nowrap;}
.ticker .ticker-track{display:flex;align-items:center;width:max-content;animation:wv-loop 34s linear infinite;will-change:transform;}
.ticker .ticker-set{display:inline-flex;align-items:center;flex:none;white-space:nowrap;padding:15px 0;font-size:clamp(10px,1.05vw,14px);letter-spacing:.11em;font-weight:750;line-height:1.4;}
.ticker .ticker-set b{padding:0 clamp(12px,1.6vw,26px);font-size:1em;}
@keyframes wv-loop{to{transform:translateX(-50%)}}
.ticker:hover .ticker-track{animation-play-state:paused}
.portfolio-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.portfolio-grid .work{min-width:0;overflow:hidden}
.portfolio-grid .work img{display:block;width:100%;height:auto;aspect-ratio:1.58;object-fit:contain;background:#191715}
.portfolio-grid .work span{display:flex;gap:10px;align-items:flex-start;justify-content:space-between;padding:13px 12px;flex-wrap:wrap}
.portfolio-grid .work b{font-size:clamp(13px,1.1vw,17px);line-height:1.3}
.portfolio-grid .work small{font-size:clamp(10px,.82vw,12px);line-height:1.45;max-width:180px}
.dark-section .section-head h2{font-size:clamp(30px,3.5vw,52px);line-height:1.12;overflow-wrap:normal}
@media(max-width:850px){.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ticker .ticker-set{font-size:11px;letter-spacing:.07em}}
@media(max-width:540px){.portfolio-grid{grid-template-columns:1fr}.portfolio-grid .work img{aspect-ratio:1.65}.ticker .ticker-set{font-size:10px}}
@media(prefers-reduced-motion:reduce){.ticker .ticker-track{animation:none}}
