:root{
  --ink:#0A1440;
  --ink-2:#0F1C56;
  --red:#E31E2B;
  --blue:#2F5FE0;
  --paper:#F5F3EF;
  --white:#FFFFFF;
  --grey:#6B7690;
  --line: rgba(255,255,255,.16);
  --line-dark: rgba(10,20,64,.14);
  --glass: rgba(255,255,255,.05);
  --glass-dark: rgba(10,20,64,.035);
  --glow-red: rgba(227,30,43,.35);
  --glow-blue: rgba(47,95,224,.28);
  --ease: cubic-bezier(.16,.84,.24,1);
  --display: 'Big Shoulders Display', sans-serif;
  --body: 'Inter', sans-serif;
  --maxw: 1180px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--body);
  color:var(--ink);
  background:var(--paper);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img,video{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3{font-family:var(--display);font-weight:800;line-height:1.05;margin:0 0 .5em;letter-spacing:.01em;}
h2{font-size:clamp(2.1rem,4vw,3.2rem);}
h3{font-size:clamp(1.2rem,2vw,1.5rem);font-weight:600;}
p{margin:0 0 1em;color:var(--ink);}
.section-inner{max-width:var(--maxw);margin:0 auto;padding:6rem 1.5rem;}
.section-lead{color:var(--grey);max-width:38ch;font-size:1.05rem;}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.001ms !important;animation-iteration-count:1 !important;transition-duration:0.001ms !important;}
}

/* watermark */
.watermark{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:0;overflow:hidden;pointer-events:none;}
.watermark img{width:900px;max-width:140vw;opacity:.035;transform:rotate(-8deg);filter:grayscale(1);}

/* header */
.site-header{position:fixed;top:0;left:0;right:0;z-index:50;padding:.9rem 1.5rem;transition:background .35s ease, box-shadow .35s ease, padding .35s ease, backdrop-filter .35s ease;}
.site-header.scrolled{background:rgba(10,20,64,.78);-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);box-shadow:0 1px 0 var(--line), 0 12px 30px -20px rgba(0,0,0,.5);padding:.6rem 1.5rem;}
.header-inner{max-width:var(--maxw);margin:0 auto;display:flex;align-items:center;justify-content:space-between;}
.brand{display:flex;align-items:center;gap:.6rem;}
.brand-mark{height:34px;width:auto;}
.brand-name{font-family:var(--display);font-weight:800;font-size:1.3rem;color:var(--white);letter-spacing:.02em;}
.main-nav{display:flex;gap:1.9rem;}
.main-nav a{color:var(--white);font-size:.95rem;font-weight:500;position:relative;padding:.2rem 0;}
.main-nav a::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:2px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .25s ease;}
.main-nav a:hover::after,.main-nav a:focus-visible::after{transform:scaleX(1);}
.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:34px;height:34px;background:none;border:0;cursor:pointer;}
.nav-toggle span{display:block;height:2px;background:var(--white);border-radius:0;}

/* hero */
.hero{position:relative;min-height:100vh;display:flex;align-items:flex-end;overflow:hidden;color:var(--white);isolation:isolate;}
.hero-media{position:absolute;inset:0;z-index:0;}
.hero-photo{width:100%;height:100%;object-fit:cover;object-position:top center;}
.hero-scrim{position:absolute;inset:0;background:
  linear-gradient(180deg, rgba(10,20,64,.35) 0%, rgba(10,20,64,.55) 45%, rgba(10,20,64,.96) 100%);}
.hero-content{position:relative;z-index:1;padding:0 1.5rem 6.5rem;max-width:var(--maxw);margin:0 auto;width:100%;}
.hero-kicker{font-size:.95rem;color:rgba(255,255,255,.75);margin-bottom:1rem;}
.hero-title{font-size:clamp(2.6rem,7vw,5.2rem);margin-bottom:1.1rem;}
.hero-title .line{display:block;opacity:0;transform:translateY(.4em);animation:riseIn .7s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:calc(var(--d) * .12s + .1s);}
.hero-title .accent{color:var(--red);text-shadow:0 0 28px var(--glow-red);}
@keyframes riseIn{to{opacity:1;transform:translateY(0);}}
.hero-sub{max-width:52ch;color:rgba(255,255,255,.85);font-size:1.08rem;}
.hero-actions{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1.6rem;}
.btn{display:inline-flex;align-items:center;padding:.85rem 1.6rem;font-weight:600;font-size:.98rem;border:1px solid transparent;transition:transform .3s var(--ease), box-shadow .3s ease, background .3s ease, border-color .3s ease;}
.btn-primary{background:var(--red);color:var(--white);}
.btn-primary:hover{background:#c81824;transform:translateY(-2px);box-shadow:0 14px 26px -12px var(--glow-red);}
.btn-ghost{border-color:rgba(255,255,255,.5);color:var(--white);}
.btn-ghost:hover{border-color:var(--white);background:rgba(255,255,255,.08);transform:translateY(-2px);}

/* waveform - the one animated motif */
.waveform{position:absolute;left:0;right:0;bottom:0;height:56px;display:flex;align-items:flex-end;justify-content:center;gap:5px;z-index:1;padding-bottom:0;}
.waveform span{width:4px;background:var(--red);opacity:.85;animation:eq 1.4s ease-in-out infinite;}
.waveform span:nth-child(odd){animation-duration:1.1s;}
.waveform span:nth-child(1){height:14px;} .waveform span:nth-child(2){height:28px;animation-delay:-.9s;}
.waveform span:nth-child(3){height:40px;animation-delay:-.3s;} .waveform span:nth-child(4){height:20px;animation-delay:-1.1s;}
.waveform span:nth-child(5){height:48px;animation-delay:-.5s;} .waveform span:nth-child(6){height:16px;animation-delay:-.2s;}
.waveform span:nth-child(7){height:34px;animation-delay:-.8s;} .waveform span:nth-child(8){height:52px;animation-delay:-.4s;}
.waveform span:nth-child(9){height:22px;animation-delay:-1.2s;} .waveform span:nth-child(10){height:44px;animation-delay:-.6s;}
.waveform span:nth-child(11){height:18px;animation-delay:-.1s;} .waveform span:nth-child(12){height:38px;animation-delay:-.7s;}
.waveform span:nth-child(13){height:26px;animation-delay:-1s;} .waveform span:nth-child(14){height:46px;animation-delay:-.35s;}
.waveform span:nth-child(15){height:20px;animation-delay:-.85s;} .waveform span:nth-child(16){height:12px;animation-delay:-.15s;}
@keyframes eq{0%,100%{transform:scaleY(.5);}50%{transform:scaleY(1);}}

/* section divider */
.divider{color:var(--line-dark);height:24px;overflow:hidden;position:relative;}
.divider svg{width:100%;height:100%;}
.divider::after{
  content:"";position:absolute;top:0;bottom:0;width:120px;
  background:linear-gradient(90deg, transparent, rgba(227,30,43,.5), transparent);
  animation:streak 7s linear infinite;
  mix-blend-mode:multiply;
}
@keyframes streak{0%{left:-140px;}100%{left:100%;}}

/* about */
.about{position:relative;background:var(--paper);}
.about-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:4rem;align-items:start;}
.about-copy h2{max-width:16ch;}
.about-panels{display:flex;flex-direction:column;gap:1px;background:var(--line-dark);border:1px solid var(--line-dark);}
.panel{background:var(--paper);padding:2rem;transition:background .35s ease;}
.panel:hover{background:#fff;}
.panel h3{color:var(--red);margin-bottom:.4em;}
.panel p{margin:0;color:var(--grey);}

/* services */
.services{background:var(--ink);color:var(--white);position:relative;overflow:hidden;isolation:isolate;}
.services::before,.podcast::before,.adverts::before{
  content:"";position:absolute;z-index:0;width:640px;height:640px;border-radius:50%;
  background:radial-gradient(circle, var(--glow-red), transparent 70%);
  top:-220px;right:-220px;filter:blur(10px);opacity:.5;
  animation:drift 22s ease-in-out infinite alternate;
}
.podcast::before{background:radial-gradient(circle, var(--glow-blue), transparent 70%);top:auto;bottom:-260px;left:-220px;right:auto;}
.adverts::before{top:-260px;left:50%;right:auto;transform:translateX(-50%);}
@keyframes drift{0%{transform:translate(0,0) scale(1);}100%{transform:translate(-30px,40px) scale(1.08);}}
.services h2{color:var(--white);position:relative;z-index:1;}
.service-list{list-style:none;margin:2.5rem 0 0;padding:0;border-top:1px solid var(--line);position:relative;z-index:1;}
.service-row{border-bottom:1px solid var(--line);padding:1.8rem 0;display:grid;grid-template-columns:1fr 1.6fr;gap:2rem;align-items:baseline;transition:padding-left .35s var(--ease), border-color .35s ease;}
.service-row:hover{padding-left:.6rem;border-color:rgba(227,30,43,.45);}
.service-row h3{margin:0;color:var(--white);}
.service-row p{margin:0;color:rgba(255,255,255,.72);}

/* gallery */
.gallery{background:var(--paper);}
.media-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.9rem;margin-top:2.5rem;}
.tile{margin:0;overflow:hidden;background:#000;aspect-ratio:1/1;transition:transform .4s var(--ease), box-shadow .4s ease;}
.tile:hover{transform:translateY(-4px);box-shadow:0 16px 34px -18px rgba(10,20,64,.4);}
.tile img,.tile video{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease);}
.tile:hover img,.tile:hover video{transform:scale(1.045);}
.tile-wide{grid-column:span 2;}

/* podcast */
.podcast{background:var(--ink-2);color:var(--white);position:relative;overflow:hidden;isolation:isolate;}
.podcast-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:3rem;align-items:center;position:relative;z-index:1;}
.podcast-copy h2{color:var(--white);}
.podcast-copy p{color:rgba(255,255,255,.8);}
.podcast-media{padding:.5rem;background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);}
.podcast-media video{width:100%;background:#000;aspect-ratio:16/9;object-fit:cover;}

/* events */
.events{background:var(--paper);}
.event{display:grid;grid-template-columns:.8fr 1.2fr;gap:2.5rem;align-items:center;padding:2.6rem 0;border-top:1px solid var(--line-dark);}
.event:first-of-type{margin-top:2.5rem;}
.event-reverse{grid-template-columns:1.2fr .8fr;}
.event-reverse .event-copy{order:2;}
.event-reverse .event-media{order:1;}
.event h3{margin-bottom:.4em;}
.event-copy p{color:var(--grey);margin:0;}
.event-media video{width:100%;max-width:340px;margin:0 auto;background:#000;aspect-ratio:9/16;object-fit:cover;display:block;}
.event-media-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;}
.event-media-grid img,.event-media-grid video{aspect-ratio:1/1;object-fit:cover;background:#000;}

/* adverts */
.adverts{background:var(--ink);color:var(--white);position:relative;overflow:hidden;isolation:isolate;}
.adverts h2{color:var(--white);position:relative;z-index:1;}
.advert-feature{margin-top:2.5rem;position:relative;z-index:1;}
.advert-feature-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem;}
.advert-feature video{width:100%;max-width:280px;margin:0 auto;display:block;background:#000;aspect-ratio:9/16;object-fit:cover;box-shadow:0 0 0 1px var(--line);}
.advert-feature-label{margin-top:.7rem;color:rgba(255,255,255,.7);font-size:.9rem;}
.advert-clients{margin-top:3rem;display:flex;flex-direction:column;gap:2.4rem;position:relative;z-index:1;}
.advert-client{border-top:1px solid var(--line);padding-top:1.6rem;}
.advert-client h3{color:var(--white);margin-bottom:1rem;}
.advert-pair{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.advert-triple{grid-template-columns:1fr 1fr 1fr;}
.advert-item video{width:100%;max-width:280px;margin:0 auto;display:block;background:#000;aspect-ratio:9/16;object-fit:cover;transition:box-shadow .35s ease, transform .35s var(--ease);}
.advert-item:hover video{box-shadow:0 0 0 1px var(--glow-red), 0 12px 30px -12px var(--glow-red);transform:translateY(-2px);}
.advert-item span{display:block;margin-top:.4rem;font-size:.85rem;color:rgba(255,255,255,.65);}

/* contact */
.contact{background:var(--paper);}
.contact-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:3rem;align-items:center;}
.contact-list{list-style:none;margin:1.6rem 0;padding:0;display:flex;flex-direction:column;gap:.8rem;}
.contact-list a{font-size:1.15rem;font-weight:600;border-bottom:1px solid var(--line-dark);display:inline-flex;align-items:baseline;gap:.6rem;padding-bottom:.3rem;}
.contact-list a span{font-size:.75rem;font-weight:500;color:var(--red);}
.address{color:var(--grey);}
.socials{display:flex;gap:1.4rem;margin-top:1rem;}
.socials a{font-weight:600;border-bottom:1px solid var(--ink);}
.contact-card{border:1px solid var(--line-dark);background:rgba(255,255,255,.5);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:2.5rem;text-align:center;transition:box-shadow .35s ease, transform .35s var(--ease);}
.contact-card:hover{box-shadow:0 20px 40px -24px rgba(10,20,64,.3);transform:translateY(-3px);}
.contact-card img{width:120px;margin:0 auto 1rem;}
.contact-card p{color:var(--grey);margin:0;font-size:.9rem;}

/* footer */
.site-footer{background:var(--ink);color:rgba(255,255,255,.65);}
.footer-inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.6rem;padding:2.2rem 1.5rem;}
.footer-tagline{margin:0;color:var(--red);font-weight:600;}
.footer-inner p{margin:0;font-size:.9rem;}

/* whatsapp floating button */
.whatsapp-fab{position:fixed;bottom:1.6rem;right:1.6rem;width:56px;height:56px;background:#25D366;color:var(--white);display:flex;align-items:center;justify-content:center;border-radius:50%;box-shadow:0 6px 18px rgba(0,0,0,.25);z-index:60;isolation:isolate;}
.whatsapp-fab::before{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid #25D366;opacity:.7;animation:pulseRing 2.6s ease-out infinite;z-index:-1;}
@keyframes pulseRing{0%{transform:scale(1);opacity:.6;}100%{transform:scale(1.9);opacity:0;}}
.whatsapp-fab svg{width:28px;height:28px;}
.whatsapp-fab:hover{background:#1ebe5b;}

/* reveal-on-scroll (subtle, section-level only) */
.section-inner{opacity:0;transform:translateY(16px);transition:opacity .6s var(--ease), transform .6s var(--ease);}
.section-inner.is-visible{opacity:1;transform:translateY(0);}

/* staggered child reveal — driven by the parent's is-visible class, so it works
   consistently on touch and pointer devices alike, no extra JS needed */
.media-grid .tile,
.service-row,
.event,
.advert-client,
.about-panels .panel{
  opacity:0;transform:translateY(14px);
  transition:opacity .55s var(--ease), transform .55s var(--ease);
  transition-delay:calc(var(--i, 0) * 70ms);
}
.section-inner.is-visible .media-grid .tile,
.section-inner.is-visible .service-row,
.section-inner.is-visible .event,
.section-inner.is-visible .advert-client,
.section-inner.is-visible .about-panels .panel{
  opacity:1;transform:translateY(0);
}
.media-grid .tile:nth-child(1){--i:0;} .media-grid .tile:nth-child(2){--i:1;}
.media-grid .tile:nth-child(3){--i:2;} .media-grid .tile:nth-child(4){--i:3;}
.media-grid .tile:nth-child(5){--i:4;} .media-grid .tile:nth-child(6){--i:5;}
.media-grid .tile:nth-child(7){--i:6;} .media-grid .tile:nth-child(8){--i:7;}
.media-grid .tile:nth-child(9){--i:8;}
.media-grid .tile:nth-child(10){--i:9;} .media-grid .tile:nth-child(11){--i:10;}
.media-grid .tile:nth-child(12){--i:11;}
.service-row:nth-child(1){--i:0;} .service-row:nth-child(2){--i:1;}
.service-row:nth-child(3){--i:2;} .service-row:nth-child(4){--i:3;}
.service-row:nth-child(5){--i:4;} .service-row:nth-child(6){--i:5;}
.event:nth-of-type(1){--i:0;} .event:nth-of-type(2){--i:1;} .event:nth-of-type(3){--i:2;}
.event:nth-of-type(4){--i:3;}
.advert-client:nth-child(1){--i:0;} .advert-client:nth-child(2){--i:1;}
.advert-client:nth-child(3){--i:2;} .advert-client:nth-child(4){--i:3;}
.about-panels .panel:nth-child(1){--i:0;} .about-panels .panel:nth-child(2){--i:1;}

/* responsive */
@media (max-width: 900px){
  .about-grid,.podcast-grid,.contact-grid{grid-template-columns:1fr;gap:2.5rem;}
  .event,.event-reverse{grid-template-columns:1fr;}
  .event-reverse .event-copy,.event-reverse .event-media{order:initial;}
  .service-row{grid-template-columns:1fr;gap:.4rem;}
  .media-grid{grid-template-columns:repeat(2,1fr);}
  .tile-wide{grid-column:span 2;}
  .advert-pair,.advert-triple,.advert-feature-grid{grid-template-columns:1fr;}
  .event-media-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width: 720px){
  .main-nav{position:fixed;top:0;right:0;height:100vh;width:min(78vw,320px);background:var(--ink);flex-direction:column;justify-content:center;align-items:flex-start;gap:1.6rem;padding:2rem;transform:translateX(100%);transition:transform .3s ease;}
  .main-nav.open{transform:translateX(0);}
  .nav-toggle{display:flex;}
  .section-inner{padding:4rem 1.3rem;}
}

/* MIC-ONE visual polish pack: refined spacing, contrast, interaction and responsive details */
:root{
  --mic-radius:18px;
  --mic-shadow:0 18px 50px rgba(10,20,64,.10);
  --mic-shadow-hover:0 24px 60px rgba(10,20,64,.17);
}
::selection{background:rgba(227,30,43,.18);color:var(--ink);}
:focus-visible{outline:3px solid var(--blue);outline-offset:4px;}
section[id]{scroll-margin-top:88px;}
.site-header{transition:background .3s ease,box-shadow .3s ease,padding .3s ease;}
.site-header.scrolled{background:rgba(8,15,45,.91);backdrop-filter:blur(18px) saturate(150%);}
.main-nav a{transition:color .2s ease;}
.main-nav a:hover{color:#fff;}
.btn,.hero-actions a,.contact a,button{transition:transform .22s var(--ease),box-shadow .22s ease,background .22s ease,border-color .22s ease;}
.btn:hover,.hero-actions a:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(10,20,64,.18);}
.btn:active,.hero-actions a:active{transform:translateY(0) scale(.985);}
.about-panels .panel,.media-grid .tile,.service-row,.event,.advert-client,.gallery .tile,.podcast-card{
  border-radius:var(--mic-radius);
  overflow:hidden;
  transition:transform .28s var(--ease),box-shadow .28s ease,border-color .28s ease;
}
.media-grid .tile:hover,.service-row:hover,.event:hover,.advert-client:hover,.about-panels .panel:hover{
  transform:translateY(-4px);
  box-shadow:var(--mic-shadow-hover);
}
.media-grid img,.gallery img,.about-panels img,.events img,.adverts img{
  transition:transform .55s var(--ease),filter .35s ease;
}
.media-grid .tile:hover img,.gallery a:hover img{transform:scale(1.035);}
.section-lead{line-height:1.8;}
section:not(.hero) h2{letter-spacing:-.025em;}
section:not(.hero){position:relative;}
section:not(.hero) .section-inner{padding-top:clamp(4rem,7vw,6.5rem);padding-bottom:clamp(4rem,7vw,6.5rem);}
.contact,.adverts,.events,.podcast,.gallery,.services,.about{
  scroll-margin-top:88px;
}
input,textarea,select{max-width:100%;}
img{height:auto;}
@media(max-width:760px){
  .site-header{padding:.7rem 1rem;}
  .site-header.scrolled{padding:.55rem 1rem;}
  .hero-content{padding:0 1.1rem 4.5rem;}
  .hero-actions{gap:.7rem;}
  .hero-actions .btn{width:100%;justify-content:center;}
  .section-inner{padding-left:1.1rem;padding-right:1.1rem;}
  .main-nav{gap:1rem;}
}
@media(hover:none){
  .media-grid .tile:hover,.service-row:hover,.event:hover,.advert-client:hover,.about-panels .panel:hover{transform:none;box-shadow:none;}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;}
}
