/* Responsive adjustments kept separate from component styles. */
@media(max-width:960px){.ticker .ticker-track{width:100%!important;max-width:100%!important;display:flex!important;justify-content:center!important;flex-wrap:wrap!important;gap:12px 24px!important;white-space:normal!important;padding:0 16px!important}.contact-panel{grid-template-columns:1fr;gap:35px;padding:38px}.contact-panel:before{font-size:90px}.contact-copy{padding-top:0}.site-footer .footer-main{align-items:flex-start}.site-footer .footer-main{grid-template-columns:minmax(260px,1fr) auto}}
@media(max-width:560px){.contact-panel{padding:25px 18px}.contact-form{padding:21px 16px}.contact-form .form-grid{grid-template-columns:1fr}.contact-form .form-heading h3{font-size:22px}.project-card{padding-bottom:180px}.project-entry{right:20px;top:20px}.project-visual{left:20px;right:20px}.project-card:nth-child(3){min-height:350px}.site-footer{padding-top:54px}.site-footer .footer-main{grid-template-columns:1fr;gap:28px;padding-bottom:38px}.site-footer .footer-main .back-top{position:absolute;right:0;top:0}.site-footer .footer-bottom{align-items:flex-start;flex-direction:column;gap:9px}.site-footer .brand-name{left:60px;font-size:15px}}

/* Mobile ticker: one continuous moving line, clipped by its own viewport. */
@keyframes tickerScrollMobile{from{transform:translateX(0)}to{transform:translateX(-50%)}}@media(max-width:960px){.ticker{width:100%;overflow:hidden}.ticker .ticker-track{width:max-content!important;max-width:none!important;display:flex!important;flex-wrap:nowrap!important;justify-content:flex-start!important;gap:28px!important;animation:tickerScrollMobile 27s linear infinite!important;white-space:nowrap!important;padding:0!important}.ticker-track span{font-size:10px;flex:0 0 auto}}
