.reading-progress{position:fixed;top:0;left:0;height:3px;background:var(--purple);width:0;z-index:40;pointer-events:none}.footer-sitemap{grid-template-columns:1.45fr 1fr 1fr 1.05fr;gap:45px;padding-block:55px}.footer-brand{position:relative;padding:80px 28px 30px;min-height:380px;background:url('assets/footer-box.svg') center/100% 100% no-repeat;margin-top:-25px}.footer-brand .logo{width:137px;margin:0 0 20px}.footer-brand>p{color:var(--ink)}.footer-brand a:not(.logo){font-size:11px;overflow-wrap:anywhere}.footer-sitemap>div:not(.footer-brand){padding-top:30px}.footer-bottom{margin-top:15px}.photo-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:40px}.photo-gallery figure{min-width:0}.photo-open{position:relative;display:block;border:0;padding:0;border-radius:12px;overflow:hidden;background:var(--light);width:100%;text-align:left}.photo-open img{width:100%;height:340px;object-fit:cover;transition:transform .65s}.photo-open:hover img{transform:scale(1.045)}.photo-open>span{position:absolute;right:16px;bottom:16px;border-radius:50%;width:38px;height:38px;background:var(--lime);display:grid;place-items:center;font-size:20px}.photo-gallery figcaption,.hero-mosaic figcaption,.community-hero-photos figcaption{font-size:11px;color:var(--purple);padding-top:13px}.hero-mosaic{display:grid;grid-template-columns:1fr 1fr;gap:15px;transform:rotate(2deg)}.hero-mosaic figure:first-child{grid-row:1/3}.hero-mosaic .photo-open img{height:160px}.hero-mosaic figure:first-child img{height:385px}.hero-mosaic figcaption{font-size:9px}.community-hero-photos{display:grid;grid-template-columns:1.2fr 1fr;gap:16px;align-items:center}.community-hero-photos figure:first-child{transform:rotate(-3deg)}.community-hero-photos figure:last-child{transform:rotate(4deg);margin-top:60px}.community-hero-photos .photo-open img{height:285px}.community-hero-photos figure:last-child img{height:210px}.community-stories{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;margin-top:45px}.community-stories .photo-gallery{display:block;margin:0 0 25px}.community-stories .photo-open img{height:255px}.community-stories figcaption{display:none}.community-stories h3{font-size:22px;line-height:1.4;margin:14px 0}.community-stories p{font-size:14px;color:var(--grey)}.environment-section{background:var(--mist);padding:70px 0;margin-bottom:40px}.environment-layout{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}.environment-word{display:inline-block;font-family:Oxygen;font-weight:700;font-size:52px;letter-spacing:-3px;border-bottom:5px solid var(--lime);line-height:1.2;margin-bottom:25px}.environment-layout h3{font-size:23px;margin-bottom:20px}.environment-layout p:not(.eyebrow){font-size:15px;color:var(--grey);margin-bottom:25px}.growth-partners{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:35px}.growth-partners article{background:var(--light);border-radius:12px;padding:34px}.growth-partners h3{font-family:Rammetto;font-size:23px;font-weight:400;margin:20px 0;color:var(--purple)}.growth-partners p{font-size:14px;color:var(--grey);margin-bottom:25px}.growth-partners .text-link{font-size:11px}.community-home-photo img{width:100%;height:370px;object-fit:cover;border-radius:12px 70px 12px 12px}.community-home-photo figcaption{font-size:11px;color:var(--purple);padding-top:13px}.design-gallery,.marketing-gallery,.print-gallery,.production-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px;margin-top:40px;align-items:start}.design-gallery figure:nth-child(2){margin-top:65px}.design-gallery .photo-open img{height:410px}.design-gallery figure:first-child img{height:320px}.marketing-gallery figure:nth-child(2){margin-top:55px}.marketing-gallery .photo-open img{height:350px}.print-gallery .photo-open{border-radius:10px 55px 10px 10px}.print-gallery img{height:330px}.production-gallery{grid-template-columns:1.3fr 1fr}.production-gallery figure:first-child{grid-row:1/3}.production-gallery img{height:190px}.production-gallery figure:first-child img{height:460px}.design-gallery figcaption,.marketing-gallery figcaption,.print-gallery figcaption,.production-gallery figcaption{font-size:11px;color:var(--purple);padding-top:13px}.delivery-explorer{display:grid;grid-template-columns:1fr 1.4fr;gap:0;margin-top:40px;border:1px solid #e1d9eb;border-radius:13px;overflow:hidden}.delivery-controls{background:var(--light);display:flex;flex-direction:column;padding:25px}.delivery-controls button{background:transparent;border:0;border-bottom:1px solid #d9cfe6;display:flex;text-align:left;gap:25px;align-items:center;padding:20px;font-size:19px}.delivery-controls button>span{font-size:11px;color:var(--purple)}.delivery-controls button[aria-pressed=true]{background:var(--lime);border-radius:8px;border-color:var(--lime)}.delivery-detail{padding:50px}.delivery-detail h3{font-family:Rammetto;font-size:25px;font-weight:400;margin:22px 0}.delivery-detail p{font-size:15px;color:var(--grey);margin-bottom:30px}.strategy-board{background:var(--light);display:grid;grid-template-columns:1fr 70px 1fr;gap:30px;margin-top:40px;padding:40px;border-radius:16px 65px 16px 16px;align-items:center}.strategy-board h3{font-family:Rammetto;font-size:26px;font-weight:400;line-height:1.7;margin-top:20px}.strategy-board>div:last-of-type{border-left:5px solid var(--lime);padding-left:40px}.strategy-arrow{font-size:60px;color:var(--purple)}.strategy-board p{grid-column:1/-1;border-top:1px solid #dacee8;padding-top:25px;font-size:14px;color:var(--grey)}.infrastructure-row{display:flex;gap:20px;align-items:center;margin-top:40px}.infrastructure-row span{border:1px solid #ded4e9;border-radius:12px;padding:35px;text-align:center;flex:1;font-size:19px;background:var(--light)}.infrastructure-row i{font-style:normal;font-size:30px;color:var(--purple)}.photo-blog{padding:0}.photo-blog>img{position:static;width:100%;height:100%;object-fit:cover;opacity:1}.page-design .agency-visual{border-radius:35px 8px 35px 8px;transform:rotate(-3deg);box-shadow:14px 14px 0 #DDFF18}.page-marketing .agency-visual{transform:rotate(3deg);border-radius:8px 65px 8px 8px}.page-advisory .brand-statement,.page-advisory .systems-art{border-radius:9px;background:var(--mist)}.page-technology .systems-art{background:#f3f0f8}.page-print-production .agency-visual{transform:rotate(-2deg);border-radius:10px 60px 10px 10px}.page-community .page-hero{padding-bottom:85px}.page-community .page-hero h1{font-size:clamp(32px,4vw,51px)}.page-work .page-hero h1{font-size:clamp(34px,4vw,54px)}.work-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.work-card[data-category="Video & livestream"] .work-image{height:325px}.work-card[data-category="Photography"] .work-image{height:420px}.blog-grid .blog-card:nth-child(3) .blog-art{background:var(--mist)}.blog-grid .blog-card:nth-child(4) .blog-art{background:#f4f6e9}.content-card{transition:transform .25s,border-color .25s}.content-card:hover{transform:translateY(-5px);border-color:var(--lavender)}.hero-art .art-backdrop .bird{animation:brand-drift 12s ease-in-out infinite}.experience-reveal{animation:reveal-in .65s ease both}@keyframes reveal-in{from{opacity:.35;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes brand-drift{50%{transform:translateY(-12px)}}#photo-dialog{width:min(1050px,calc(100% - 36px));background:white;padding:14px;overflow:auto;border-radius:14px}#photo-display{height:min(65vh,660px);width:100%;object-fit:contain;background:var(--light);border-radius:8px}.photo-close{position:absolute;right:22px;top:22px;border:1px solid #e1d8ed;background:white;width:39px;height:39px;border-radius:50%;z-index:2}.photo-dialog-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:15px 7px 3px;font-size:13px;color:var(--purple)}.photo-dialog-bottom button{border:1px solid #ded4e9;background:white;flex-shrink:0;border-radius:50%;width:35px;height:35px}.photo-dialog-bottom p{text-align:center}
@media(max-width:1100px){.footer-sitemap{gap:25px}.footer-brand{padding-inline:22px}.community-stories .photo-open img{height:220px}.community-stories h3{font-size:19px}.growth-partners h3{font-size:21px}.hero-mosaic figure:first-child img{height:345px}.design-gallery .photo-open img{height:335px}.design-gallery figure:first-child img{height:270px}}
@media(max-width:800px){.footer-sitemap{grid-template-columns:1fr 1fr}.footer-brand{padding-top:70px;min-height:345px}.photo-gallery{gap:20px}.photo-open img{height:285px}.community-hero-photos{max-width:570px}.community-stories{grid-template-columns:1fr}.community-stories article{display:grid;grid-template-columns:1fr 1fr;gap:0 25px}.community-stories .photo-gallery{grid-row:1/4}.community-stories .tag{align-self:end}.community-stories h3{font-size:23px}.environment-layout{gap:40px}.growth-partners{gap:20px}.hero-mosaic{max-width:550px}.hero-mosaic figure:first-child img{height:385px}.delivery-detail{padding:35px}.design-gallery,.marketing-gallery,.print-gallery{gap:20px;grid-template-columns:1fr 1fr}.design-gallery figure:nth-child(2),.marketing-gallery figure:nth-child(2){margin-top:0}.strategy-board{gap:20px;padding:30px}.strategy-board h3{font-size:23px}.infrastructure-row{gap:12px}.infrastructure-row span{padding:24px;font-size:16px}}
@media(max-width:500px){.footer-brand{grid-column:1/-1;max-width:360px;width:100%;padding:75px 30px 30px}.footer-sitemap{gap:15px 25px;padding-block:45px}.footer-sitemap>div:not(.footer-brand){padding-top:15px}.community-stories article{display:block}.community-stories .photo-open img{height:290px}.community-stories h3{font-size:23px}.community-hero-photos .photo-open img{height:250px}.community-hero-photos figure:last-child img{height:195px}.community-hero-photos{gap:12px}.community-hero-photos figcaption{font-size:9px}.environment-layout{grid-template-columns:1fr;gap:25px}.environment-section{padding:50px 0}.environment-word{font-size:43px}.growth-partners{grid-template-columns:1fr}.growth-partners article{padding:27px}.growth-partners h3{font-size:22px}.community-home-photo img{height:290px}.photo-gallery{grid-template-columns:1fr;gap:25px}.photo-open img{height:310px}.hero-mosaic .photo-open img{height:135px}.hero-mosaic figure:first-child img{height:325px}.design-gallery,.marketing-gallery,.print-gallery,.production-gallery{grid-template-columns:1fr;gap:25px}.design-gallery .photo-open img,.marketing-gallery .photo-open img,.print-gallery .photo-open img{height:350px}.production-gallery figure:first-child img{height:300px}.production-gallery img{height:240px}.delivery-explorer{grid-template-columns:1fr}.delivery-controls{display:grid;grid-template-columns:1fr 1fr;padding:15px;gap:9px}.delivery-controls button{padding:13px 8px;font-size:13px;gap:10px}.delivery-detail{padding:28px}.delivery-detail h3{font-size:22px}.strategy-board{grid-template-columns:1fr;padding:27px;gap:15px}.strategy-arrow{font-size:40px}.strategy-board>div:last-of-type{padding-left:22px}.strategy-board h3{font-size:24px}.infrastructure-row{flex-direction:column;gap:7px}.infrastructure-row span{width:100%;padding:21px}.work-card[data-category="Photography"] .work-image{height:350px}.work-card[data-category="Video & livestream"] .work-image{height:300px}.photo-dialog-bottom{font-size:11px;gap:10px}.page-community .page-hero{padding-bottom:55px}}
@media(prefers-reduced-motion:reduce){.experience-reveal,.hero-art .art-backdrop .bird{animation:none}.content-card{transition:none}}

/* Photography fills the whole story card, with a light veil behind the copy. */
.home-photo-stories{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px;margin-top:40px}
.photo-story{position:relative;isolation:isolate;min-height:520px;padding:0;border:0;border-radius:14px 48px 14px 14px;overflow:hidden;background:var(--light);box-shadow:0 6px 22px #7467910c}
.photo-story .story-cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%;transition:transform .65s}
.photo-story:hover .story-cover{transform:scale(1.035)}
.photo-story .story-link{position:relative;display:flex;align-items:flex-end;min-height:520px;height:100%;color:var(--ink);text-decoration:none;background:linear-gradient(180deg,#ffffff00 12%,#ffffff30 26%,#ffffffec 52%,#fffffff7 100%)}
.photo-story .story-content{display:block;padding:190px 28px 28px;width:100%}
.photo-story .tag{display:inline-block;padding:7px 11px;border-radius:6px;background:#eae6f5;color:#65507e;font-size:10px;letter-spacing:1.2px;margin:0 0 16px}
.photo-story h3{font-size:24px;line-height:1.35;margin:0 0 15px;color:var(--ink)}
.photo-story .story-content>p{font-size:13px;line-height:1.7;color:#45434e;margin:0 0 24px}
.story-read{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:700;border-top:1px solid #bfb3cf;padding-top:16px}
.story-read>span{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--lime);font-size:22px}
.story-link:focus-visible{outline:4px solid var(--purple);outline-offset:-5px}
.photo-stories .photo-story{min-height:550px}.photo-stories .story-link{min-height:550px}
.article-photo{margin-top:20px;margin-bottom:50px}.article-photo>img{width:100%;height:440px;object-fit:cover;object-position:center 35%;border-radius:14px 75px 14px 14px}.article-photo figcaption{font-size:11px;color:var(--purple);margin-top:12px}
.moments-gallery{grid-template-columns:1.15fr 1fr 1fr;gap:25px}.moments-gallery figure:nth-child(2){margin-top:40px}.moments-gallery .photo-open img{height:320px}.moments-gallery figure:first-child img{height:380px}
.water-gallery{grid-template-columns:1.25fr 1fr 1fr}.water-gallery .photo-open img{height:320px}.football-gallery{display:block;max-width:900px}.football-gallery .photo-open{aspect-ratio:1.5}.football-gallery .photo-open img{height:100%;width:100%;object-fit:cover;transform:scale(1.48)}.football-gallery .photo-open:hover img{transform:scale(1.52)}
.exhibition-gallery .photo-open img{height:420px;object-position:center 40%}.section-intro{max-width:750px;color:var(--grey);font-size:15px;line-height:1.8;margin-top:25px}
@media(max-width:900px){.home-photo-stories{grid-template-columns:1fr 1fr}.home-photo-stories .photo-story:last-child{grid-column:1/-1}.home-photo-stories .photo-story:last-child .story-content{max-width:600px}.moments-gallery,.water-gallery{grid-template-columns:1fr 1fr}.moments-gallery figure:nth-child(2){margin-top:0}.article-photo>img{height:360px}}
@media(max-width:500px){.home-photo-stories{grid-template-columns:1fr;gap:24px}.home-photo-stories .photo-story:last-child{grid-column:auto}.photo-story,.photo-story .story-link,.photo-stories .photo-story,.photo-stories .story-link{min-height:520px}.photo-story .story-content{padding:210px 23px 24px}.photo-story h3{font-size:23px}.moments-gallery,.water-gallery{grid-template-columns:1fr}.moments-gallery .photo-open img,.moments-gallery figure:first-child img,.water-gallery .photo-open img{height:320px}.article-photo>img{height:300px}.exhibition-gallery .photo-open img{height:370px}}
@media(prefers-reduced-motion:reduce){.photo-story .story-cover{transition:none}}

/* Consistent square thumbnails; full images remain available in the photo viewer. */
.moments-gallery{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}
.moments-gallery figure:nth-child(2),.design-gallery figure:nth-child(2),.marketing-gallery figure:nth-child(2){margin-top:0}
.photo-open{aspect-ratio:1/1}
.photo-open img,.photo-gallery .photo-open img,.moments-gallery figure:first-child .photo-open img,.design-gallery figure:first-child .photo-open img,.production-gallery figure:first-child .photo-open img,.community-hero-photos .photo-open img,.hero-mosaic .photo-open img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.football-gallery .photo-open{aspect-ratio:1/1}
.agency-grid .agency-photo-card{padding:0;overflow:hidden;display:flex;min-width:0;border-radius:10px;background:var(--light)}
.agency-photo-card .photo-open{flex:1;min-height:100%;border-radius:inherit}
.agency-photo-card .photo-open img{object-position:center}
.work-card .work-image,.work-card[data-category] .work-image{height:auto;aspect-ratio:1/1}
.community-home-photo img{height:auto;aspect-ratio:1/1;object-fit:cover}
@media(max-width:900px){.moments-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:500px){.moments-gallery{grid-template-columns:1fr}.agency-photo-card .photo-open{min-height:0}}

.footer-brand,.footer-brand>p,.footer-brand a{color:#fff}
.footer-brand .logo img{height:auto}
.agency-grid .agency-photo-card{display:block;align-self:center}
.agency-photo-card .photo-open{aspect-ratio:auto;height:clamp(210px,24vw,290px);min-height:0}
.capability-strip{overflow:hidden}
.capability-track{display:flex;width:max-content;animation:capability-travel 28s linear infinite}
.capability-group{display:flex;align-items:center;justify-content:space-around;gap:35px;min-width:100vw;flex-shrink:0;padding:0 35px;color:var(--purple);font-weight:700;white-space:nowrap}
.capability-strip:hover .capability-track{animation-play-state:paused}
@keyframes capability-travel{to{transform:translateX(-50%)}}
.footer-socials{display:flex;flex-wrap:wrap;gap:12px;margin-top:25px}
.footer-sitemap .footer-socials a{display:flex;align-items:center;justify-content:center;width:40px;height:40px;margin:0;border:1px solid #ffffff88;border-radius:50%;color:#fff;transition:background .2s,color .2s}
.footer-socials svg{width:18px;height:18px;fill:currentColor}
.footer-sitemap .footer-socials a:hover,.footer-sitemap .footer-socials a:focus-visible{background:var(--lime);color:#000;border-color:var(--lime)}
@media(max-width:600px){.capability-group{gap:25px;min-width:760px;padding-inline:25px}.capability-track{animation-duration:24s}}
@media(prefers-reduced-motion:reduce){.capability-track{animation:none;width:100%}.capability-group{min-width:0;width:100%;flex-wrap:wrap;gap:14px;justify-content:center}.capability-group[aria-hidden=true]{display:none}}

.production-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}
.production-gallery figure:first-child{grid-row:auto}
.football-gallery .photo-open img,.football-gallery .photo-open:hover img{transform:none}
@media(max-width:900px){.production-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:500px){.production-gallery{grid-template-columns:1fr}}

.community-stories{grid-template-columns:repeat(2,minmax(0,1fr))}
.sport-slideshow{margin-top:40px;border-radius:16px;background:var(--light);padding:24px;max-width:1100px}
.sport-slide{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:35px;align-items:center;margin:0}
.sport-slide[hidden]{display:none}
.sport-slide .photo-open img{object-fit:contain}
.sport-slide figcaption{padding:15px}
.sport-slide h3{font-size:28px;line-height:1.35;margin:18px 0;color:var(--ink)}
.sport-slide figcaption>p:last-child{font-size:15px;line-height:1.8;color:var(--grey)}
.slideshow-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:22px}
.slideshow-controls>button{border:1px solid #c7bdda;border-radius:8px;background:white;padding:10px 15px;color:var(--ink)}
.slideshow-controls>button[data-slide-toggle]{margin-left:auto;font-size:12px}
.slide-dots{display:flex;gap:10px}
.slide-dots button{display:grid;place-items:center;width:30px;height:30px;border:0;padding:0;background:transparent}
.slide-dots button:before{content:'';width:9px;height:9px;border-radius:50%;background:#b8accd}
.slide-dots button[aria-pressed=true]:before{background:var(--purple);outline:3px solid var(--lime)}
.slideshow-controls [data-slide-status]{font-size:12px;color:var(--purple);min-width:35px}
.slideshow-controls button:focus-visible{outline:3px solid var(--purple);outline-offset:3px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.page-community img[src$="community-ufs-group.jpg"],.community-stories img[src$="community-bonke-medals.jpg"],.community-stories img[src$="library-community-football.jpg"]{object-fit:contain}
@media(max-width:900px){.community-stories{grid-template-columns:1fr}.sport-slide{grid-template-columns:1fr;gap:15px}.sport-slide .photo-open{max-width:620px;margin-inline:auto}.sport-slide figcaption{padding:10px}.sport-slide h3{font-size:25px}}
@media(max-width:500px){.sport-slideshow{padding:15px}.slideshow-controls{gap:5px}.slideshow-controls>button{padding:10px 12px}.slideshow-controls>button[data-slide-toggle]{margin-left:0;flex-basis:100%;margin-top:10px}.slide-dots{gap:3px}.sport-slide h3{font-size:23px}}
