/* Goal Getters: native scrolling, original identity and campaign material. */
.goal-getters-page { --gg-green:#88d8ac; --gg-ink:#060d0a; --gg-white:#edf5f0; background:var(--gg-ink); color:var(--gg-white); }
.gg-story { overflow:clip; }
.gg-story h1,.gg-story h2,.gg-story h3 { margin:0; font-family:var(--body); font-weight:500; line-height:1.02; letter-spacing:-.065em; }
.gg-story h2 { font-size:clamp(40px,6.7vw,108px); }
.gg-story em { font-style:normal; color:var(--gg-green); }
.gg-story p,.gg-story figure { margin:0; }
.gg-story img { display:block; width:100%; height:auto; }
.gg-story video { display:block; width:100%; height:auto; background:#000; object-fit:contain; cursor:pointer; }
.gg-story button { cursor:pointer; }
.gg-story button:focus-visible,.gg-story video:focus-visible { outline:2px solid var(--gg-green); outline-offset:5px; }
.gg-hero { position:relative; background:#000; }
.gg-hero video { width:100%; aspect-ratio:16/9; }
.gg-start { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:64px; height:64px; border:1px solid #ffffff60; border-radius:50%; background:#041b12b8; backdrop-filter:blur(16px); color:#fff; display:grid; place-items:center; z-index:4; }
.gg-start svg { width:25px; height:25px; }
.gg-start[hidden],.gg-sound[hidden],[data-card][hidden],[data-more-card][hidden],.gg-dots button[hidden] { display:none; }
.gg-story [hidden] { display:none!important; }
.gg-section-heading { display:flex; justify-content:space-between; align-items:end; gap:24px; padding:0 var(--edge); }
.gg-section-heading h2 { font-size:clamp(32px,4.3vw,70px); }
.gg-section-heading>span { color:#adbbb3; font-size:12px; line-height:1.55; text-align:right; }
.gg-scroll { position:relative; padding:80px 0; scroll-margin-top:calc(0px - var(--header) - 24px); }
.gg-anchor { position:absolute; top:0; scroll-margin-top:calc(0px - var(--header) - 24px); }
.gg-dots { display:none; }

/* Identity, using the supplied vector masters. */
.gg-brand { background:#061c14; }
.gg-brand-step { min-height:75svh; padding:60px var(--edge); display:flex; align-items:center; justify-content:center; gap:5vw; }
.gg-brand-step p { color:#adbbb3; font-size:clamp(13px,1.5vw,20px); line-height:1.6; margin-top:26px; }
.gg-brand-name { flex-direction:column; text-align:center; gap:5vh; }
.gg-brand-name>img { width:min(540px,65vw); max-height:46svh; object-fit:contain; }
.gg-brand-name h2 { font-size:clamp(32px,4.6vw,72px); }
.gg-brand-name p { margin-top:16px; }
.gg-brand-mark>div { width:56%; }
.gg-brand-mark h2 { font-size:clamp(42px,6.4vw,102px); }
.gg-brand-mark>img { width:42%; max-height:65svh; object-fit:contain; }
.gg-brand-colours { background:#09251a; }
.gg-brand-logo-plate { width:46%; padding:8%; background:#f3f5ee; }
.gg-brand-colours>div:last-child { width:49%; }
.gg-brand-colours h2 { font-size:clamp(32px,4.1vw,68px); }
.gg-palette { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:45px; }
.gg-palette i { display:block; height:14px; border-radius:2px; }
.gg-palette span { display:block; margin-top:12px; color:#b5c9bc; font-size:11px; }
.gg-brand-line { position:relative; overflow:hidden; }
.gg-brand-line>img { position:absolute; width:min(75vw,900px); height:85%; object-fit:contain; opacity:.045; right:-12%; top:9%; pointer-events:none; }
.gg-brand-line>div { width:100%; position:relative; }
.gg-brand-line h2 { font-size:clamp(46px,8vw,128px); }
.gg-brand-progress { display:none; }

/* The document remains readable with native players when motion or scripting is unavailable. */
.gg-social-deck,.gg-film-deck { max-width:1100px; margin:40px auto; padding:0 var(--edge); }
.gg-social-card { max-width:600px; margin:0 auto 45px!important; }
.gg-social-card>img { object-fit:contain; aspect-ratio:4/5; }
.gg-social-card figcaption { padding:18px 0; display:flex; justify-content:center; }
.gg-platforms { display:flex; align-items:center; gap:20px; color:#d2dfd6; }
.gg-platforms svg { width:18px; height:18px; }
.gg-social-more { display:none; }
.gg-film-card { position:relative; margin-bottom:28px!important; }
.gg-film-card video { aspect-ratio:16/9; }
.gg-creative { background:#07120c; }
.gg-creative-copy { text-align:center; padding:60px var(--edge); }
.gg-creative-copy p { margin-top:25px; color:#bfd0c5; font-size:13px; }
.gg-creative-copy>span { display:block; margin-top:32px; font-size:11px; line-height:1.7; color:#a3b7aa; }
.gg-creative-wall { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.gg-creative-wall>img { width:100%; aspect-ratio:16/9; object-fit:contain; background:#e8ece6; }

/* Scroll stages occupy the viewport; the browser keeps its ordinary vertical scroll. */
.gg-enhanced .gg-scroll { padding:0; }
.gg-enhanced .gg-pin { position:sticky; top:0; height:100svh; min-height:0; overflow:hidden; padding:calc(var(--header) + 28px) 0 22px; display:flex; flex-direction:column; }
.gg-enhanced .gg-brand { height:420svh; }
.gg-enhanced .gg-brand-stage { padding:0; }
.gg-enhanced .gg-brand-step { position:absolute; inset:0; min-height:0; padding:calc(var(--header) + 5vh) var(--edge) 6vh; opacity:0; visibility:hidden; transform:translateY(30px); transition:opacity .65s,transform .9s cubic-bezier(.18,.7,.16,1),visibility .65s; pointer-events:none; }
.gg-enhanced .gg-brand-step.is-active { opacity:1; visibility:visible; transform:none; pointer-events:auto; }
.gg-enhanced .gg-brand-name>img { transform:translateY(calc(var(--brand-local,0)*-8px)); }
.gg-enhanced .gg-brand-mark>img { transform:translate(calc(-28px + var(--brand-local,0)*56px),calc(28px - var(--brand-local,0)*56px)); }
.gg-enhanced .gg-brand-progress { display:block; position:absolute; bottom:24px; left:var(--edge); right:var(--edge); height:1px; background:#ffffff16; }
.gg-brand-progress i { display:block; height:100%; width:100%; transform:scaleX(var(--brand-progress,0)); transform-origin:left; background:#88d8ac70; }
.gg-enhanced .gg-social { height:525svh; background:#050b08; }
.gg-enhanced .gg-voices { height:610svh; }
.gg-enhanced [data-motion-deck] { position:relative; flex:1; width:100%; max-width:none; min-height:0; margin:25px 0 15px; padding:0; perspective:1400px; }
.gg-enhanced .gg-social-card,.gg-enhanced .gg-film-card,.gg-enhanced .gg-social-more { position:absolute; left:50%; top:50%; margin:0!important; transform:translate3d(calc(-50% + var(--card-x,0px)),-50%,var(--card-z,0px)) rotateY(var(--card-rotate,0deg)) scale(var(--card-scale,1)); opacity:var(--card-opacity,0); z-index:var(--card-order,0); visibility:visible; will-change:transform,opacity; pointer-events:none; }
.gg-enhanced .gg-social-card.is-active,.gg-enhanced .gg-film-card.is-active { pointer-events:auto; }
.gg-enhanced .gg-social-card { height:min(100%,600px,calc(80vw*1.25 + 42px)); aspect-ratio:4/5.36; display:flex; flex-direction:column; }
.gg-enhanced .gg-social-card>img { flex:1; height:0; min-height:0; width:100%; object-fit:contain; border-radius:5px; box-shadow:0 25px 65px #0007; }
.gg-enhanced .gg-social-card figcaption { flex-shrink:0; height:42px; padding:16px 0 0; align-items:center; }
.gg-enhanced .gg-social-more { display:grid; place-items:center; width:280px; height:100%; }
.gg-enhanced .gg-social-more.is-active { pointer-events:auto; }
.gg-social-more button { display:flex; align-items:center; justify-content:space-between; gap:50px; padding:18px 27px; font:inherit; font-size:15px; border:1px solid #b1c2b8a0; border-radius:50px; background:#06110b; color:#edf5f0; }
.gg-social-more button:hover { border-color:#fff; background:#11281c; }
.gg-social-more button span { font-size:21px; }
.gg-enhanced .gg-film-card { width:min(1100px,calc(100% - var(--edge)*2),calc((100svh - var(--header) - 205px)*16/9)); }
.gg-enhanced .gg-film-card video { box-shadow:0 24px 80px #0007; border-radius:5px; }
.gg-enhanced .gg-dots { display:flex; justify-content:center; gap:5px; flex-shrink:0; }
.gg-dots button { background:transparent; border:0; color:var(--gg-green); width:32px; height:28px; padding:11px 4px; }
.gg-dots button span { display:block; height:2px; border-radius:2px; background:#ffffff32; transition:background .3s; }
.gg-dots button[aria-current="true"] span { background:var(--gg-green); }

/* Each column's items share an offset; neighbouring columns travel in reverse. */
.gg-enhanced .gg-creative { height:330svh; }
.gg-enhanced .gg-creative-stage { isolation:isolate; padding:0; }
.gg-enhanced .gg-creative-wall { position:absolute; left:-2%; right:-2%; top:0; grid-template-columns:repeat(var(--wall-columns,3),minmax(0,1fr)); gap:18px; z-index:-2; }
.gg-enhanced .gg-creative-wall>img { min-height:calc((100svh + 720px)/var(--wall-rows,8)); transform:translateY(var(--wall-y,0px)); will-change:transform; border-radius:4px; }
.gg-enhanced .gg-creative-stage::after { content:""; position:absolute; z-index:-1; inset:0; background:linear-gradient(#020b0670,#020b0620 20%,#020b0620 80%,#020b0680),radial-gradient(ellipse at center,#020b06f2,#020b0670 66%,#020b0610); pointer-events:none; }
.gg-enhanced .gg-creative-copy { position:relative; margin:auto; padding:var(--header) var(--edge) 0; text-shadow:0 3px 30px #000; pointer-events:none; }
.gg-enhanced .gg-creative-copy h2 { font-size:clamp(50px,7.7vw,125px); }

.gg-pitch { background:#000; padding-bottom:70px; }
.gg-pitch-intro { position:relative; }
.gg-pitch-intro>img { aspect-ratio:16/10; object-fit:cover; }
.gg-pitch-intro::after { content:""; position:absolute; inset:0; background:linear-gradient(transparent 40%,#000b); pointer-events:none; }
.gg-pitch-intro h2 { position:absolute; z-index:1; left:var(--edge); bottom:7%; font-size:clamp(44px,7.5vw,120px); }
.gg-photo-pair { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin:18px; }
.gg-photo-pair img { height:100%; aspect-ratio:4/5; object-fit:cover; object-position:center; }
.gg-photo-pair figure:nth-child(2) { margin-top:12%; }
.gg-photo-wide { margin:70px var(--edge)!important; }
.gg-photo-wide img { aspect-ratio:16/9; object-fit:cover; }
.gg-photo-pair-last { margin-left:var(--edge); margin-right:var(--edge); gap:30px; }
.gg-photo-pair-last img { aspect-ratio:4/3; }
.gg-photo-credit { margin:22px var(--edge) 0!important; font-size:10px; color:#8e9c94; }
.gg-radio { background:#080f0c; }
.gg-radio-heading { padding:0 var(--edge) 40px; position:relative; z-index:2; }
.gg-radio-heading h2 { font-size:clamp(35px,4.8vw,76px); }
.gg-radio-icon { display:block; width:32px; height:32px; color:var(--gg-green); margin-bottom:22px; }
.gg-radio-icon svg { display:block; width:100%; height:100%; }
.gg-radio-deck { margin:auto; max-width:440px; padding:0 25px; }
.gg-radio-card { position:relative; margin-bottom:25px!important; }
.gg-radio-card video { aspect-ratio:9/16; object-fit:contain; }
.gg-radio-backdrop { display:none; }
.gg-enhanced .gg-radio { height:430svh; }
.gg-enhanced .gg-radio .gg-pin { isolation:isolate; }
.gg-enhanced .gg-radio-backdrop { display:block; position:absolute; inset:0; z-index:-2; overflow:hidden; }
.gg-radio-backdrop img { position:absolute; inset:0; height:100%; object-fit:cover; filter:blur(70px) saturate(.7); transform:scale(1.25); opacity:0; transition:opacity .8s; }
.gg-radio-backdrop img.is-active { opacity:.3; }
.gg-radio-backdrop::after { content:""; position:absolute; inset:0; background:#020b0790; }
.gg-enhanced .gg-radio-heading { position:absolute; left:var(--edge); top:48%; padding:0; transform:translateY(-50%); width:36%; }
.gg-enhanced .gg-radio-deck { position:relative; flex:1; max-width:none; width:100%; min-height:0; padding:0; margin:0 0 16px; }
.gg-enhanced .gg-radio-card { position:absolute; left:61%; top:50%; height:100%; max-height:670px; aspect-ratio:9/16; transform:translate3d(calc(-50% + var(--card-x,0px)),-50%,var(--card-z,0px)) rotateY(var(--card-rotate,0deg)) scale(var(--card-scale,1)); margin:0!important; opacity:var(--card-opacity,0); z-index:var(--card-order,0); visibility:visible; will-change:transform,opacity; pointer-events:none; }
.gg-enhanced .gg-radio-card video { height:100%; width:100%; border:1px solid #ffffff24; border-radius:8px; box-shadow:0 25px 70px #0006; }
.gg-enhanced .gg-radio-card.is-active { pointer-events:auto; }
.gg-ending { padding:clamp(80px,12vw,190px) var(--edge) 80px; }
.gg-ending-copy { display:flex; align-items:end; justify-content:space-between; gap:30px; margin-bottom:65px; }
.gg-ending-copy p { font-size:clamp(13px,1.3vw,18px); line-height:1.6; color:#a7b9ad; }
.gg-ending-photo img { aspect-ratio:16/9; object-fit:cover; }
.gg-credits { margin-top:55px; display:grid; grid-template-columns:1fr 1fr 1fr; gap:28px; align-items:start; }
.gg-credits>div>span { font-size:11px; color:#8a9f91; display:block; margin-bottom:15px; }
.gg-credits p { font-size:13px; line-height:1.8; }
.gg-all-work { display:flex; justify-content:space-between; align-items:center; padding:18px 0; border-bottom:1px solid #466352; font-size:16px; }
.gg-all-work span { font-size:25px; color:var(--gg-green); }
.gg-sound { position:fixed; z-index:75; right:24px; bottom:24px; width:50px; height:50px; display:grid; place-items:center; border-radius:50%; color:#fff; border:1px solid #ffffff70; background:#020a07b8; backdrop-filter:blur(18px); cursor:pointer; }
.gg-sound svg { width:24px; height:24px; }
.gg-sound .gg-muted,.gg-sound.is-muted .gg-volume { display:none; }
.gg-sound.is-muted .gg-muted { display:block; }
.menu-open .gg-sound { display:none; }
body[data-gg-media] #toTop { opacity:0; pointer-events:none; }
@media(max-width:800px) {
    .gg-brand-colours { flex-direction:column; gap:4vh; }
    .gg-brand-logo-plate { width:min(70%,440px); padding:6%; }
    .gg-brand-colours>div:last-child { width:100%; max-width:600px; text-align:center; }
    .gg-brand-colours h2 { font-size:clamp(30px,4.5vw,42px); }
    .gg-palette { margin-top:27px; }
    .gg-radio-heading h2 { font-size:clamp(30px,4.7vw,44px); }
    .gg-ending-copy { align-items:start; flex-direction:column; gap:25px; }
    .gg-photo-pair { margin:12px; gap:12px; }
    .gg-photo-pair-last { margin:0 var(--edge); gap:18px; }
    .gg-photo-wide { margin:40px var(--edge)!important; }
    .gg-credits { grid-template-columns:1fr 1fr; }
    .gg-all-work { grid-column:1/3; margin-top:15px; }
}
@media(max-width:540px) {
    .gg-section-heading { display:block; }
    .gg-section-heading h2 { font-size:clamp(32px,8.5vw,44px); }
    .gg-section-heading>span { display:block; text-align:left; font-size:10px; margin-top:15px; }
    .gg-enhanced .gg-pin { padding-top:calc(var(--header) + 24px); }
    .gg-enhanced .gg-brand-stage,.gg-enhanced .gg-creative-stage { padding:0; }
    .gg-brand-name>img { width:88vw; }
    .gg-brand-name h2 { font-size:35px; }
    .gg-brand-step p { font-size:13px; margin-top:18px; }
    .gg-brand-mark { flex-direction:column-reverse; gap:5vh; text-align:center; }
    .gg-brand-mark>div { width:100%; }
    .gg-brand-mark>img { width:60%; max-height:36svh; }
    .gg-enhanced .gg-brand-mark>img { transform:translate(calc(-18px + var(--brand-local,0)*36px),calc(18px - var(--brand-local,0)*36px)); }
    .gg-brand-mark h2 { font-size:40px; }
    .gg-brand-logo-plate { width:95%; max-width:360px; padding:9%; }
    .gg-brand-colours h2 { font-size:30px; }
    .gg-palette { gap:8px; }
    .gg-palette span { font-size:10px; }
    .gg-brand-line h2 { font-size:clamp(40px,11vw,60px); }
    .gg-enhanced .gg-film-card { width:calc(100% - 24px); }
    .gg-enhanced .gg-creative-wall { gap:10px; left:-10%; right:-10%; }
    .gg-creative-wall { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .gg-enhanced .gg-creative-copy h2 { font-size:48px; }
    .gg-pitch-intro>img { aspect-ratio:4/5; }
    .gg-pitch-intro h2 { font-size:44px; }
    .gg-photo-pair img { aspect-ratio:3/5; }
    .gg-photo-pair-last img { aspect-ratio:4/5; }
    .gg-photo-wide { margin:35px 12px!important; }
    .gg-photo-wide img { aspect-ratio:4/3; }
    .gg-photo-credit { font-size:9px; }
    .gg-enhanced .gg-radio-heading { position:static; transform:none; width:auto; margin:0 var(--edge) 23px; }
    .gg-radio-heading h2 { font-size:32px; }
    .gg-enhanced .gg-radio-card { left:50%; max-height:420px; max-width:calc(100vw - 70px); }
    .gg-radio-icon { width:24px; height:24px; margin-bottom:13px; }
    .gg-ending-copy h2 { font-size:clamp(42px,11vw,60px); }
    .gg-ending-copy { margin-bottom:35px; }
    .gg-ending-photo img { aspect-ratio:4/3; }
    .gg-credits p { font-size:11px; }
    .gg-sound { width:46px; height:46px; right:16px; }
}
@media(max-height:560px) and (min-width:541px) {
    .gg-enhanced .gg-pin { padding-top:calc(var(--header) + 10px); padding-bottom:8px; }
    .gg-section-heading h2 { font-size:30px; }
    .gg-enhanced .gg-film-card { width:calc((100svh - var(--header) - 130px)*16/9); }
    .gg-brand-colours { flex-direction:row; }
    .gg-brand-colours>div { width:46%!important; }
    .gg-enhanced .gg-brand-step { padding-top:calc(var(--header) + 20px); }
    .gg-brand-name>img { max-height:42svh; }
    .gg-brand-name { gap:18px; }
    .gg-brand-name h2 { font-size:30px; }
}
@media(prefers-reduced-motion:reduce) {
    .gg-story *, .gg-story *::before,.gg-story *::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; }
}
