/* Palette sampled from the official artwork:
   Campus Connect (LC0198 - CampusConnect_FINAL.pdf): blue #4157B2, red #FF002D, magenta #FF008C, orange #FF6000, yellow #FFC300, charcoal #353535
   Grad Media (GRADMEDIA logo latest.pdf): navy #005284, red #EC1E2D, slate #77858E */
:root{
  --blue:#4157B2;
  --red:#FF002D;
  --magenta:#FF008C;
  --orange:#FF6000;
  --yellow:#FFC300;
  --ink:#353535;
  --gm-navy:#005284;
  --gm-slate:#77858E;
  --paper:#FFFFFF;
  --mist:#F3F4F8;
  --line:rgba(53,53,53,.18);
  --stripes:linear-gradient(135deg,var(--yellow) 0 20%,var(--orange) 20% 40%,var(--red) 40% 60%,var(--magenta) 60% 80%,var(--blue) 80% 100%);
  --display:"Archivo",system-ui,sans-serif;
  --body:"Instrument Sans",system-ui,sans-serif;
  --wrap:min(1280px,92vw);
  --ease:cubic-bezier(.2,.8,.2,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--body);color:var(--ink);background:var(--paper);font-size:1.0625rem;line-height:1.6;overflow-x:hidden}
img,video{display:block;max-width:100%}
a{color:inherit}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.wrap{width:var(--wrap);margin-inline:auto}
.display{font-family:var(--display);font-weight:800;font-stretch:72%;line-height:.9;letter-spacing:-.01em;text-transform:uppercase}

/* NAV */
.nav{position:fixed;inset:0 0 auto;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);transition:transform .4s var(--ease)}
.nav.hide{transform:translateY(-100%)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;height:72px}
.logo img{height:38px;width:auto}
.nav ul{display:flex;gap:28px;list-style:none}
.nav ul a{text-decoration:none;font-weight:500;font-size:.98rem;background:linear-gradient(var(--ink),var(--ink)) left bottom/0 2px no-repeat;padding-bottom:3px;transition:background-size .3s var(--ease)}
.nav ul a:hover{background-size:100% 2px}

.btn{display:inline-flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:700;font-stretch:90%;font-size:.95rem;letter-spacing:.02em;text-decoration:none;background:var(--ink);color:var(--paper);padding:14px 22px;border:0;cursor:pointer;white-space:nowrap;position:relative;overflow:hidden;isolation:isolate}
.btn::before{content:"";position:absolute;inset:0;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease);z-index:-1}
.btn:hover::before{transform:scaleX(1)}
.btn.yellow{background:var(--yellow);color:var(--ink)}
.btn.yellow::before{background:var(--paper)}
.btn.outline{background:transparent;color:var(--paper);box-shadow:inset 0 0 0 1.5px var(--paper)}
.btn.outline::before{background:var(--paper)}
.btn.outline:hover{color:var(--ink)}

/* HERO */
.hero{background:var(--blue);color:var(--paper);padding-top:72px;position:relative;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.25fr 1fr;min-height:calc(100vh - 72px - 64px);min-height:calc(100svh - 72px - 64px)}
.hero-copy{padding:64px 48px 56px 0;display:flex;flex-direction:column;justify-content:space-between;gap:48px}
.hero h1{font-size:clamp(3.6rem,9.6vw,9.6rem)}
.hero h1 .line{display:block;overflow:hidden}
.hero h1 .line>span{display:inline-block;transform:translateY(102%);animation:rise 1s var(--ease) forwards}
.hero h1 .line:nth-child(2)>span{animation-delay:.1s}
.hero h1 .line:nth-child(3)>span{animation-delay:.2s}
@keyframes rise{to{transform:none}}
.swap{display:inline-block;color:var(--yellow);overflow:hidden;vertical-align:bottom}
.swap b{display:inline-block;font-weight:inherit}
.swap b.in{animation:slideIn .55s var(--ease)}
@keyframes slideIn{from{transform:translateY(100%)}to{transform:none}}
.hero-foot{display:grid;grid-template-columns:1fr auto;gap:32px;align-items:end;opacity:0;animation:fade .8s .55s forwards}
.hero-foot p{max-width:36ch;font-size:1.2rem;line-height:1.5}
.ctas{display:flex;gap:10px;flex-wrap:wrap}
@keyframes fade{to{opacity:1}}

.mosaic{height:max(560px,calc(100svh - 136px));display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1.2fr 1fr;gap:6px;margin-right:calc((100vw - var(--wrap)) / -2);background:var(--blue)}
.tile{position:relative;overflow:hidden;background:var(--ink);clip-path:inset(100% 0 0 0);animation:wipe 1.1s var(--ease) forwards}
.tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.15);animation:settle 1.6s var(--ease) forwards;animation-delay:inherit}
.tile:nth-child(1){grid-column:1/3;animation-delay:.35s;background:var(--magenta)}
.tile:nth-child(2){animation-delay:.55s;background:var(--orange)}
.tile:nth-child(3){animation-delay:.7s;background:var(--yellow)}
@keyframes wipe{to{clip-path:inset(0 0 0 0)}}
@keyframes settle{to{transform:scale(1)}}
.mosaic.solo{grid-template-columns:1fr;grid-template-rows:1fr}
.mosaic.solo .tile{grid-column:auto;background:linear-gradient(160deg,#6a2bd9,var(--magenta))}
.tile video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.15);animation:settle 1.6s var(--ease) .35s forwards}
.vid-toggle{position:absolute;right:0;bottom:0;border:0;background:var(--paper);color:var(--ink);font:600 .85rem var(--body);padding:9px 14px;cursor:pointer}
.vid-toggle:hover{background:var(--yellow)}

/* Full-bleed hero video */
.hero{background:#2a1a6e}
.hero-grid{grid-template-columns:1fr;position:relative;z-index:2}
.hero-copy{padding:72px 0 64px}
.hero h1{max-width:12ch;text-shadow:0 2px 30px rgba(20,10,60,.35)}
.hero-bg{position:absolute;inset:0;z-index:0;overflow:hidden;clip-path:inset(0 0 100% 0);animation:wipe 1.2s var(--ease) .1s forwards}
.hero-bg video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.12);animation:settle 1.8s var(--ease) .1s forwards}
.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(28,18,80,.72) 0%,rgba(28,18,80,.38) 55%,rgba(28,18,80,.1) 100%),linear-gradient(0deg,rgba(28,18,80,.55) 0%,rgba(28,18,80,0) 40%)}
.hero .vid-toggle{z-index:3;bottom:64px;right:0}
@media (max-width:900px){.hero-bg::after{background:linear-gradient(0deg,rgba(28,18,80,.8) 0%,rgba(28,18,80,.45) 60%,rgba(28,18,80,.35) 100%)}}
.tile figcaption{position:absolute;left:0;bottom:0;background:var(--paper);color:var(--ink);font-size:.82rem;font-weight:600;padding:6px 10px}

/* TICKER */
.ticker{background:var(--ink);color:var(--paper);overflow:hidden;white-space:nowrap;height:64px;display:flex;align-items:center;position:relative}
.ticker::before{content:"";position:absolute;inset:0 0 auto;height:4px;background:var(--stripes);background-size:100% 100%}
.ticker .track{display:inline-flex;animation:scroll 45s linear infinite}
.ticker span{font-family:var(--display);font-weight:700;font-stretch:80%;text-transform:uppercase;font-size:1.25rem;letter-spacing:.02em;padding:0 28px;display:inline-flex;align-items:center;gap:56px}
.ticker span::after{content:"";width:8px;height:8px;background:var(--yellow)}
.ticker:hover .track{animation-play-state:paused}
@keyframes scroll{to{transform:translateX(-50%)}}

section{padding:128px 0}
.kicker{display:flex;align-items:center;gap:14px;font-weight:600;font-size:.95rem;margin-bottom:28px}
.kicker::before{content:"";width:28px;height:4px;background:var(--stripes)}

/* STORY */
.story{padding-bottom:72px}
.story .wrap{display:grid;grid-template-columns:7fr 5fr;gap:80px;align-items:start}
.story .lead{font-family:var(--display);font-weight:600;font-stretch:100%;font-size:clamp(1.9rem,3.4vw,3rem);line-height:1.1;letter-spacing:-.02em}
.story .lede{margin-top:28px;max-width:56ch;font-size:1.12rem;color:#4a4a4a}
.pillars{display:grid;grid-template-columns:1fr 1fr;margin-top:48px;border-top:2px solid var(--ink)}
.pillar{padding:24px 24px 0 0}
.pillar+.pillar{padding-left:24px;border-left:1px solid var(--line)}
.pillar h3{font-family:var(--display);font-weight:800;font-stretch:80%;text-transform:uppercase;font-size:1.35rem;margin-bottom:8px}
.archive{position:relative}
.archive{overflow:hidden}
.archive img{width:100%;aspect-ratio:4/5;object-fit:cover;background:var(--mist);transform:scale(1.14);transition:transform .8s var(--ease)}
.archive:hover img{transform:scale(1.18)}
.archive figcaption{display:flex;justify-content:space-between;gap:16px;border-top:2px solid var(--ink);margin-top:14px;padding-top:12px;font-size:.92rem}
.archive figcaption b{font-family:var(--display);font-stretch:80%;font-size:1.5rem;line-height:1}

/* FILMSTRIP */
.film{padding:0 0 128px;overflow:hidden}
.film-head{display:flex;justify-content:space-between;align-items:baseline;gap:32px;margin-bottom:8px}
.film-note{max-width:44ch;color:#4a4a4a}
.film-track{overflow:hidden}
.film-row{display:flex;gap:6px;width:max-content;animation:scroll 70s linear infinite}
.film-track:hover .film-row{animation-play-state:paused}
.frame{width:clamp(200px,20vw,280px);aspect-ratio:3/4;overflow:hidden;background:var(--mist);flex:none}
.frame img{width:100%;height:100%;object-fit:cover;filter:grayscale(1);transition:filter .5s,transform .8s var(--ease)}
.frame:hover img{filter:none;transform:scale(1.04)}
@media (max-width:560px){.film-head{flex-direction:column;gap:0}}

/* CAMPUS CONNECT */
.cc{background:var(--ink);color:var(--paper);position:relative}
.cc::before{content:"";position:absolute;inset:0 0 auto;height:6px;background:var(--stripes)}
.cc-head{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:end;margin-bottom:80px}
.cc-logo{width:min(300px,70%);height:auto;margin-bottom:36px}
.cc h2{font-size:clamp(2.8rem,6vw,5.6rem)}
.cc-head p{font-size:1.15rem;color:rgba(255,255,255,.82);max-width:46ch}
.cc-head .btn{margin-top:28px}
.steps{list-style:none;display:grid;grid-template-columns:repeat(5,1fr);column-gap:6px;position:relative;counter-reset:s}
.steps::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:rgba(255,255,255,.2)}
.steps::after{content:"";position:absolute;left:0;top:0;height:2px;width:100%;background:var(--stripes);transform:scaleX(0);transform-origin:left;transition:transform 2.2s var(--ease)}
.steps.in::after{transform:scaleX(1)}
.steps li{display:flex;flex-direction:column;padding:28px 18px 0 0;counter-increment:s;opacity:.25;transition:opacity .5s}
.steps.in li{opacity:1}
.steps.in li:nth-child(2){transition-delay:.4s}.steps.in li:nth-child(3){transition-delay:.8s}.steps.in li:nth-child(4){transition-delay:1.2s}.steps.in li:nth-child(5){transition-delay:1.6s}
.steps li::before{content:counter(s,decimal-leading-zero);display:block;font-family:var(--display);font-weight:800;font-stretch:72%;font-size:3rem;line-height:1;margin-bottom:16px}
.steps li:nth-child(1)::before{color:var(--yellow)}.steps li:nth-child(2)::before{color:var(--orange)}.steps li:nth-child(3)::before{color:var(--red)}.steps li:nth-child(4)::before{color:var(--magenta)}.steps li:nth-child(5)::before{color:#8C9CE6}
.step-img{order:-1;aspect-ratio:4/5;overflow:hidden;margin:0 0 20px;background:#2a2a2a}
.step-img img{width:100%;height:100%;object-fit:cover;filter:grayscale(1);transition:filter .6s}
.steps.in li:hover .step-img img{filter:none}
.steps h3{font-family:var(--display);font-weight:700;font-size:1.15rem;line-height:1.25;margin-bottom:6px}
.steps p{font-size:.95rem;color:rgba(255,255,255,.72)}

/* SERVICES */
.services{background:var(--paper)}
.sec-head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:56px}
.sec-head h2{font-size:clamp(3rem,7.5vw,7rem)}
.textlink{font-weight:600;text-decoration:none;border-bottom:2px solid var(--ink);padding-bottom:2px;white-space:nowrap}
.textlink:hover{color:var(--blue);border-color:var(--blue)}
.svc-list{list-style:none;border-top:2px solid var(--ink)}
.svc-list li{border-bottom:1px solid var(--line);position:relative}
.svc-list li::before{content:"";position:absolute;inset:0;background:var(--blue);transform:scaleY(0);transform-origin:bottom;transition:transform .45s var(--ease);z-index:0}
.svc-list li:hover::before,.svc-list li.open::before{transform:scaleY(1)}
.svc-list li:hover,.svc-list li.open{color:var(--paper)}
.svc-list li>*{position:relative;z-index:1}
.svc-list button{all:unset;box-sizing:border-box;cursor:pointer;width:100%;display:grid;grid-template-columns:1fr auto;align-items:center;gap:16px;padding:26px 0;font-family:var(--display);font-weight:800;font-stretch:78%;text-transform:uppercase;font-size:clamp(1.6rem,3.6vw,3rem);line-height:1;transition:padding .45s var(--ease)}
.svc-list button:focus-visible{outline:2px solid var(--yellow);outline-offset:-2px}
.svc-list li:hover button,.svc-list li.open button{padding-left:24px;padding-right:24px}
.plus{width:28px;height:28px;position:relative}
.plus::before,.plus::after{content:"";position:absolute;left:0;right:0;top:50%;height:2px;background:currentColor;transition:transform .35s var(--ease)}
.plus::after{transform:rotate(90deg)}
.svc-list li.open .plus::after{transform:rotate(0)}
.svc-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s var(--ease)}
.svc-list li.open .svc-body{grid-template-rows:1fr}
.svc-body>div{overflow:hidden}
.svc-body p{max-width:60ch;padding:0 24px 18px}
.tags{display:flex;flex-wrap:wrap;gap:6px;padding:0 24px 30px}
.tag{border:1px solid currentColor;padding:4px 10px;font-size:.88rem}
.cursor-img{position:fixed;width:260px;aspect-ratio:4/5;overflow:hidden;pointer-events:none;z-index:40;clip-path:inset(50% 50% 50% 50%);transform:translate(-50%,-50%);transition:clip-path .45s var(--ease);background:var(--yellow)}
.cursor-img.on{clip-path:inset(0 0 0 0)}
.cursor-img img{width:100%;height:100%;object-fit:cover}

/* CASE */
.case{background:var(--yellow)}
.case-grid{display:grid;grid-template-columns:5fr 7fr;gap:72px;align-items:center}
.case-media{position:relative;aspect-ratio:4/5;background:var(--orange);overflow:hidden}
.case-media video{width:100%;height:100%;object-fit:cover;transform:scale(1.14)}
.case-logo{position:absolute;left:16px;top:16px;width:84px;height:84px;border-radius:50%;background:var(--paper);padding:4px}
.sound{position:absolute;right:0;bottom:0;border:0;background:var(--ink);color:var(--paper);font:600 .9rem var(--body);padding:10px 16px;cursor:pointer}
.sound:hover{background:var(--blue)}
.case.ah{background:var(--blue);color:var(--paper)}
.case.ah .stats{border-color:var(--paper)}
.case.ah .stat+.stat{border-color:rgba(255,255,255,.35)}
.case.ah .case-media{background:var(--ink)}
.case.ah .case-media video{width:100%;height:100%;object-fit:cover;transform:scale(1.14)}
.case.ah .cg figcaption{background:var(--paper);color:var(--ink)}
.case.hz{background:var(--mist)}
.case.hz .case-grid{grid-template-columns:7fr 5fr}
.case.hz .case-media{background:var(--blue)}
.case.hz .case-media img{transform:scale(1.14)}
@media (max-width:900px){.case.hz .case-grid{grid-template-columns:1fr}.case.hz .case-media{order:-1}}
.stat strong span{font-size:inherit;display:inline;line-height:inherit}
.case-gallery{display:grid;grid-template-columns:1.7fr 1fr 1fr;gap:6px;margin-top:72px}
.cg{position:relative;height:380px;overflow:hidden;background:var(--orange);clip-path:inset(0 0 100% 0);transition:clip-path 1s var(--ease)}
.cg.in{clip-path:inset(0 0 0 0)}
.cg:nth-child(2){transition-delay:.15s}.cg:nth-child(3){transition-delay:.3s}
.cg img{width:100%;height:100%;object-fit:cover;transform:scale(1.16);transition:transform .8s var(--ease)}
.cg:hover img{transform:scale(1.2)}
.cg figcaption{position:absolute;left:0;bottom:0;background:var(--ink);color:var(--paper);font-size:.85rem;font-weight:600;padding:7px 12px}
.case h2{font-size:clamp(2.6rem,5.4vw,5rem)}
.case p{margin-top:24px;max-width:52ch;font-size:1.12rem}
.stats{display:grid;grid-template-columns:repeat(3,1fr);margin-top:40px;border-top:2px solid var(--ink)}
.stat{padding:20px 20px 0 0}
.stat+.stat{padding-left:20px;border-left:1px solid rgba(53,53,53,.3)}
.stat strong{display:block;font-family:var(--display);font-weight:800;font-stretch:72%;font-size:clamp(2.6rem,4.4vw,4rem);line-height:.95}
.stat strong.word{font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.1}
.stat span{font-size:.95rem}
.case .btn{margin-top:40px}

/* GOALS */
.goals{background:var(--mist)}
.goals .sec-head h2{font-size:clamp(2.6rem,5.6vw,5rem);max-width:18ch}
.arrows{display:flex;gap:0}
.arrow-btn{width:56px;height:56px;border:1.5px solid var(--ink);background:transparent;cursor:pointer;display:grid;place-items:center;transition:background .25s,color .25s}
.arrow-btn+.arrow-btn{border-left:0}
.arrow-btn:hover{background:var(--ink);color:var(--paper)}
.arrow-btn svg{width:20px;height:20px}
.strip{display:flex;gap:2px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 max(4vw,calc((100vw - 1280px)/2));scroll-padding-inline:max(4vw,calc((100vw - 1280px)/2));scrollbar-width:none;cursor:grab}
.strip::-webkit-scrollbar{display:none}
.card{flex:0 0 clamp(250px,24vw,310px);scroll-snap-align:start;padding:28px;min-height:360px;display:flex;flex-direction:column;justify-content:space-between;background:var(--paper);position:relative;overflow:hidden;transition:color .35s}
.card::before{content:"";position:absolute;inset:0;background:var(--c);transform:translateY(calc(100% - 8px));transition:transform .5s var(--ease);z-index:0}
.card:hover::before{transform:none}
.card>*{position:relative;z-index:1}
.card:hover{color:var(--on,var(--ink))}
.card .num{font-family:var(--display);font-weight:800;font-stretch:72%;font-size:1rem;letter-spacing:.04em}
.card h3{font-family:var(--display);font-weight:800;font-stretch:78%;text-transform:uppercase;font-size:2rem;line-height:.95;margin-bottom:12px}
.c1{--c:var(--yellow)}.c2{--c:var(--orange)}.c3{--c:var(--blue);--on:#fff}.c4{--c:var(--magenta);--on:#fff}.c5{--c:var(--red);--on:#fff}.c6{--c:var(--ink);--on:#fff}

/* JOIN */
.join{background:var(--magenta);color:var(--paper);padding:0}
.join-grid{display:grid;grid-template-columns:1fr 1fr;align-items:stretch}
.join-copy{padding:120px 64px 120px 0}
.join h2{font-size:clamp(3rem,7.6vw,7.4rem)}
.join p{max-width:42ch;margin:28px 0 36px;font-size:1.18rem}
.join .btn{background:var(--paper);color:var(--ink)}
.join .btn::before{background:var(--yellow)}
.join-photo{margin-right:calc((100vw - var(--wrap)) / -2);background:var(--orange);overflow:hidden;min-height:420px}
.join-photo img{width:100%;height:100%;object-fit:cover;transform:scale(1.08);transition:transform 1.4s var(--ease)}
.join-photo.in img{transform:scale(1.14)}

/* FOOTER */
footer{background:var(--paper);padding:96px 0 0;border-top:1px solid var(--line)}
.foot-top{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:48px;padding-bottom:80px}
.foot-logo{width:min(230px,60%);height:auto;margin-bottom:32px}
footer h2{font-size:clamp(2.4rem,4.6vw,4rem)}
footer h3{font-weight:600;font-size:.95rem;color:var(--gm-slate);margin-bottom:14px}
footer ul{list-style:none;display:grid;gap:10px}
footer ul a{text-decoration:none}
footer ul a:hover{text-decoration:underline;text-underline-offset:4px}
footer .btn{margin-top:28px}
.foot-bottom{background:var(--gm-navy);color:var(--paper);padding:20px 0;font-size:.92rem}
.foot-bottom .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}

.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal.in{opacity:1;transform:none}


/* ---------- MORE MOTION ---------- */
.progress{position:fixed;left:0;top:0;height:3px;width:100%;background:var(--stripes);transform-origin:left;transform:scaleX(0);z-index:60;pointer-events:none}
.split .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.06em;margin-bottom:-.06em}
.split .w>span{display:inline-block;transform:translateY(108%) rotate(4deg);transform-origin:left bottom;transition:transform .9s var(--ease);transition-delay:calc(var(--i) * 45ms)}
.split.in .w>span{transform:none}
.stagger>*{opacity:0;translate:0 40px;transition:opacity .7s var(--ease),translate .8s var(--ease);transition-delay:calc(var(--i) * 80ms)}
.stagger.in>*{opacity:1;translate:0 0}
.strip.stagger>*{translate:120px 0}
.strip.stagger.in>*{translate:0 0}
.bigline{overflow:hidden;padding:56px 0;background:var(--paper);border-block:1px solid var(--line)}
.bl-row{white-space:nowrap;font-family:var(--display);font-weight:900;font-stretch:72%;text-transform:uppercase;font-size:clamp(4rem,11vw,10rem);line-height:.95;will-change:transform}
.bl-row span{margin-right:.4em}
.bl-row .o{color:transparent;-webkit-text-stroke:2px var(--ink)}
.bl-row .c1{color:var(--blue)}.bl-row .c2{color:var(--magenta)}.bl-row .c3{color:var(--orange)}
.btn,.arrow-btn{transition:translate .25s var(--ease)}
.cursor-dot{position:fixed;left:0;top:0;width:14px;height:14px;border-radius:50%;background:var(--yellow);mix-blend-mode:difference;pointer-events:none;z-index:70;translate:-50% -50%;transition:width .25s var(--ease),height .25s var(--ease);opacity:0}
.cursor-dot.on{opacity:1}
.cursor-dot.big{width:56px;height:56px}
@media (hover:none),(max-width:900px){.cursor-dot{display:none}}

@media (max-width:1000px){.nav ul{display:none}}
@media (max-width:900px){
  .hero-grid,.story .wrap,.cc-head,.case-grid,.join-grid,.foot-top{grid-template-columns:1fr}
  .hero-copy{padding:48px 0 40px}
  .hero-foot{grid-template-columns:1fr}
  .mosaic{margin:0 calc((100vw - var(--wrap)) / -2);height:110vw}
  .steps{grid-template-columns:1fr;gap:8px}
  .steps::before,.steps::after{display:none}
  .steps li{border-top:1px solid rgba(255,255,255,.2);padding:20px 0 12px;display:grid;grid-template-columns:64px 1fr;column-gap:12px}
  .steps li::before{grid-row:1/3;font-size:2.2rem}
  .step-img{display:none}
  .join-copy{padding:88px 0 56px}
  .join-photo{margin:0 calc((100vw - var(--wrap)) / -2);min-height:300px}
  .cursor-img{display:none}
  section{padding:88px 0}
}
@media (max-width:560px){
  .logo img{height:30px}
  .nav .btn{padding:11px 14px;font-size:.85rem}
  .sec-head{flex-direction:column;align-items:flex-start}
  .stats{grid-template-columns:1fr}
  .case-gallery{grid-template-columns:1fr}
  .cg{height:300px}
  .stat+.stat{padding-left:0;border-left:0;border-top:1px solid rgba(53,53,53,.3)}
  .stat{padding:16px 0}
  .pillars{grid-template-columns:1fr}
  .pillar+.pillar{padding-left:0;border-left:0;border-top:1px solid var(--line);margin-top:20px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .hero h1 .line>span,.hero-foot,.reveal,.tile img,.tile video,.hero-bg video,.join-photo img{transform:none!important;opacity:1!important}
  .tile,.cg,.hero-bg{clip-path:none!important}
  .steps li{opacity:1!important}
  .split .w>span,.stagger>*{transform:none!important;translate:none!important;opacity:1!important}
  .progress,.cursor-dot{display:none}
  .steps::after{transform:scaleX(1)!important}
  .film-track{overflow-x:auto}
}

/* ---------- MULTI-PAGE ADDITIONS ---------- */
:root{color-scheme:light}
html,body{background:var(--paper)}
.case-chip{position:absolute;left:0;top:0;background:var(--paper);color:var(--ink);font:600 .85rem var(--body);padding:8px 12px;z-index:2}
.case-media>img.fill{width:100%;height:100%;object-fit:cover;transform:scale(1.14)}
.nav ul a[aria-current="page"]{background-size:100% 2px}

/* PARTNERS */
.partners{background:var(--paper);padding:120px 0 112px;overflow:hidden;border-top:1px solid var(--line)}
.partners .sec-head{margin-bottom:40px}
.partners .sec-head h2{font-size:clamp(2.6rem,5.6vw,5rem);max-width:16ch}
.partners .sec-head p{max-width:40ch;color:#4a4a4a}
.p-label{display:flex;align-items:center;justify-content:space-between;gap:16px;font-weight:600;font-size:.92rem;margin:0 auto 14px;width:var(--wrap)}
.p-label span:last-child{color:var(--gm-slate);font-weight:500}
.p-track{overflow:hidden;margin-bottom:40px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.p-row{display:flex;gap:10px;width:max-content;animation:scroll 60s linear infinite}
.p-row.rev{animation-direction:reverse;animation-duration:80s}
.p-track:hover .p-row{animation-play-state:paused}
.p-tile{flex:none;width:clamp(170px,16vw,230px);aspect-ratio:2/1;background:#fff;border:1px solid var(--line);display:grid;place-items:center;overflow:hidden;position:relative}
.p-tile img{width:100%;height:100%;object-fit:contain;filter:grayscale(1) contrast(1.05);opacity:.72;transition:filter .4s,opacity .4s,transform .5s var(--ease)}
.p-tile:hover img{filter:none;opacity:1;transform:scale(1.06)}
.p-tile a{position:absolute;inset:0}
.p-stat{display:flex;flex-wrap:wrap;gap:12px 40px;width:var(--wrap);margin:8px auto 0;border-top:2px solid var(--ink);padding-top:20px}
.p-stat div{display:flex;align-items:baseline;gap:10px}
.p-stat b{font-family:var(--display);font-weight:800;font-stretch:72%;font-size:2.4rem;line-height:1}

/* WORK INDEX */
.page-hero{padding:168px 0 72px;background:var(--ink);color:var(--paper);position:relative;overflow:hidden}
.page-hero::after{content:"";position:absolute;inset:auto 0 0;height:6px;background:var(--stripes)}
.page-hero h1{font-size:clamp(4rem,13vw,12rem)}
.page-hero .intro{display:grid;grid-template-columns:1.3fr 1fr;gap:48px;align-items:end;margin-top:36px}
.page-hero .intro p{font-size:1.2rem;max-width:44ch;color:rgba(255,255,255,.82)}
.filters{display:flex;flex-wrap:wrap;gap:6px}
.chip{all:unset;cursor:pointer;border:1.5px solid rgba(255,255,255,.5);padding:8px 14px;font-weight:600;font-size:.9rem;transition:background .25s,color .25s,border-color .25s}
.chip:hover{border-color:var(--paper)}
.chip[aria-pressed="true"]{background:var(--yellow);color:var(--ink);border-color:var(--yellow)}
.chip:focus-visible{outline:2px solid var(--yellow);outline-offset:3px}
.work-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:56px 24px;padding:96px 0 40px}
.wcard{grid-column:span 4;text-decoration:none;display:flex;flex-direction:column;gap:16px;min-width:0}
.wcard.wide{grid-column:span 8}
.wcard.hide{display:none}
.wcard .wimg{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--c,var(--mist))}
.wcard.wide .wimg{aspect-ratio:16/10}
.wcard .wimg img,.wcard .wimg video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease),filter .5s}
.wcard:hover .wimg img,.wcard:hover .wimg video{transform:scale(1.05)}
.wcard .wimg::after{content:"View case";position:absolute;left:0;bottom:0;background:var(--ink);color:var(--paper);font:700 .85rem var(--display);font-stretch:90%;letter-spacing:.03em;text-transform:uppercase;padding:10px 14px;transform:translateY(100%);transition:transform .4s var(--ease)}
.wcard:hover .wimg::after,.wcard:focus-visible .wimg::after{transform:none}
.wcard .wstat{position:absolute;right:0;top:0;background:var(--paper);color:var(--ink);padding:10px 14px;text-align:right;line-height:1.1}
.wcard .wstat b{display:block;font-family:var(--display);font-weight:800;font-stretch:72%;font-size:1.9rem}
.wcard .wstat span{font-size:.78rem;font-weight:600}
.wmeta{display:flex;justify-content:space-between;gap:16px;border-top:2px solid var(--ink);padding-top:12px;font-size:.92rem}
.wmeta span:last-child{color:var(--gm-slate);text-align:right}
.wcard h2{font-family:var(--display);font-weight:800;font-stretch:76%;text-transform:uppercase;font-size:clamp(1.8rem,2.8vw,2.6rem);line-height:.95}
.wcard p{color:#4a4a4a;max-width:46ch}
.wcard.wide h2{font-size:clamp(2.2rem,4vw,3.6rem)}

/* CASE PAGE */
.cs-hero{background:var(--bg);color:var(--fg);padding:136px 0 0;position:relative;overflow:hidden}
.cs-hero .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:end}
.crumbs{display:flex;gap:10px;align-items:center;font-weight:600;font-size:.92rem;margin-bottom:28px}
.crumbs a{text-decoration:none;border-bottom:1.5px solid currentColor}
.cs-hero h1{font-size:clamp(4rem,11vw,10.5rem)}
.cs-hero h1 .line{display:block;overflow:hidden}
.cs-hero h1 .line>span{display:inline-block;transform:translateY(102%);animation:rise 1s var(--ease) forwards}
.cs-hero h1 .line:nth-child(2)>span{animation-delay:.1s}
.cs-hero .tagline{font-family:var(--display);font-weight:600;font-stretch:100%;font-size:clamp(1.4rem,2.4vw,2rem);line-height:1.15;letter-spacing:-.01em;max-width:24ch;margin:28px 0 40px;opacity:0;animation:fade .8s .4s forwards}
.cs-meta{display:grid;grid-template-columns:repeat(2,1fr);border-top:2px solid currentColor;margin-bottom:64px;opacity:0;animation:fade .8s .55s forwards}
.cs-meta div{padding:14px 16px 14px 0;border-bottom:1px solid var(--rule)}
.cs-meta dt{font-size:.82rem;font-weight:600;opacity:.75}
.cs-meta dd{font-weight:600}
.cs-media{position:relative;aspect-ratio:9/14;max-height:78vh;justify-self:end;width:100%;max-width:480px;overflow:hidden;background:rgba(0,0,0,.15);clip-path:inset(100% 0 0 0);animation:wipe 1.1s var(--ease) .3s forwards}
.cs-media.land{aspect-ratio:4/3;max-width:none}
.cs-media video,.cs-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.12);animation:settle 1.6s var(--ease) .3s forwards}
.cs-media .case-chip{top:auto;bottom:0}
.cs-media .cs-logo{position:absolute;left:14px;top:14px;width:76px;height:76px;object-fit:contain;background:#fff;border-radius:50%;padding:6px;z-index:2;transform:none;animation:none;inset:auto;}
.cs-numbers{background:var(--ink);color:var(--paper);padding:0;position:relative}
.cs-numbers::before{content:"";position:absolute;inset:0 0 auto;height:4px;background:var(--stripes)}
.cs-numbers .wrap{display:grid;grid-template-columns:repeat(var(--n,4),1fr)}
.num{padding:44px 24px 40px 0;border-right:1px solid rgba(255,255,255,.18)}
.num+.num{padding-left:24px}
.num:last-child{border-right:0}
.num strong{display:block;font-family:var(--display);font-weight:800;font-stretch:72%;font-size:clamp(2.8rem,5vw,4.6rem);line-height:.95;color:var(--yellow)}
.num:nth-child(2) strong{color:#FF8A4C}.num:nth-child(3) strong{color:#FF5C8F}.num:nth-child(4) strong{color:#9DAAF0}
.num strong span{font-size:inherit;display:inline;color:inherit}
.num>span{display:block;margin-top:10px;font-size:.95rem;color:rgba(255,255,255,.78)}
.cs-story .wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:48px}
.cs-story h2{font-family:var(--display);font-weight:800;font-stretch:78%;text-transform:uppercase;font-size:1.6rem;line-height:1;margin-bottom:14px;display:flex;align-items:center;gap:12px}
.cs-story h2::before{content:"";width:22px;height:4px;background:var(--stripes);flex:none}
.cs-story p+p{margin-top:12px}
.cs-story ul{margin-top:12px;padding-left:18px;display:grid;gap:4px}
.offer{margin-top:20px;border:2px solid var(--ink);padding:16px 18px;display:grid;gap:4px}
.offer b{font-family:var(--display);font-weight:800;font-stretch:80%;text-transform:uppercase;font-size:1.25rem;line-height:1.05}
.offer span{font-size:.92rem;color:#4a4a4a}
.cs-quote{padding:0 0 128px}
.cs-quote blockquote{font-family:var(--display);font-weight:700;font-stretch:90%;font-size:clamp(1.8rem,3.6vw,3.2rem);line-height:1.05;letter-spacing:-.015em;max-width:28ch}
.cs-quote cite{display:block;margin-top:20px;font-style:normal;font-weight:600;color:var(--gm-slate)}
.cs-gallery{padding-top:0}
.mason{columns:3;column-gap:10px}
.mason figure{break-inside:avoid;margin-bottom:10px;overflow:hidden;position:relative;background:var(--mist);clip-path:inset(0 0 100% 0);transition:clip-path 1s var(--ease) var(--d,0ms)}
.mason figure.in{clip-path:inset(0 0 0 0)}
.mason img{width:100%;height:auto;transition:transform .8s var(--ease)}
.mason figure:hover img{transform:scale(1.04)}
.mason figcaption{position:absolute;left:0;bottom:0;background:var(--ink);color:var(--paper);font-size:.82rem;font-weight:600;padding:6px 10px}
.reels{background:var(--mist)}
.reel-row{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 max(4vw,calc((100vw - 1280px)/2));scrollbar-width:none;cursor:grab}
.reel-row::-webkit-scrollbar{display:none}
.reel{flex:0 0 clamp(220px,22vw,300px);aspect-ratio:9/16;position:relative;overflow:hidden;background:var(--ink);scroll-snap-align:start}
.reel video,.reel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.reel figcaption{position:absolute;left:0;bottom:0;background:var(--paper);color:var(--ink);font-size:.82rem;font-weight:600;padding:6px 10px}
.amb{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));border-top:2px solid var(--ink)}
.amb div{padding:20px 20px 20px 0;border-bottom:1px solid var(--line)}
.amb b{display:block;font-family:var(--display);font-weight:800;font-stretch:78%;text-transform:uppercase;font-size:1.4rem;line-height:1}
.amb small{display:block;color:var(--gm-slate);font-size:.85rem;margin:4px 0 10px}
.amb span{display:block;font-size:.95rem}
.next{display:block;text-decoration:none;background:var(--nbg);color:var(--nfg);padding:96px 0;position:relative;overflow:hidden}
.next .wrap{display:flex;justify-content:space-between;align-items:end;gap:32px}
.next small{display:block;font-weight:600;margin-bottom:12px}
.next h2{font-size:clamp(3rem,9vw,8.4rem);transition:transform .6s var(--ease)}
.next:hover h2{transform:translateX(18px)}
.next .arrow{width:clamp(56px,7vw,96px);height:auto;flex:none;transition:transform .6s var(--ease)}
.next:hover .arrow{transform:translateX(12px)}

@media (max-width:900px){
  .page-hero .intro,.cs-hero .wrap,.cs-story .wrap{grid-template-columns:1fr}
  .work-grid{grid-template-columns:1fr;gap:48px}
  .wcard,.wcard.wide{grid-column:auto}
  .wcard.wide .wimg{aspect-ratio:4/5}
  .cs-media{justify-self:stretch;max-width:none;max-height:none;aspect-ratio:4/5;margin:0 calc((100vw - var(--wrap)) / -2);width:auto}
  .cs-numbers .wrap{grid-template-columns:1fr 1fr}
  .num:nth-child(2){border-right:0}
  .num:nth-child(3){padding-left:0}
  .num:nth-child(n+3){border-top:1px solid rgba(255,255,255,.18)}
  .mason{columns:2}
  .cs-meta{margin-bottom:40px}
  .partners{padding:88px 0 80px}
}
@media (max-width:560px){
  .num{padding:28px 12px 26px 0}.num+.num{padding-left:12px}.num:nth-child(3){padding-left:0}
  .num strong{font-size:2.4rem}
  .cs-meta{grid-template-columns:1fr}
  .next .arrow{display:none}
}
@media (prefers-reduced-motion:reduce){
  .cs-hero h1 .line>span,.cs-hero .tagline,.cs-meta{transform:none!important;opacity:1!important}
  .cs-media,.mason figure{clip-path:none!important}
  .cs-media video,.cs-media img{transform:none!important}
  .p-track{overflow-x:auto}
}

/* AI SEARCH & GEO */
.geo{background:#1E1A4D;color:var(--paper);position:relative;overflow:hidden}
.geo::before{content:"";position:absolute;width:70vw;height:70vw;right:-20vw;top:-30vw;background:radial-gradient(closest-side,rgba(255,0,140,.35),rgba(65,87,178,.18) 60%,transparent);pointer-events:none;animation:drift 14s ease-in-out infinite alternate}
@keyframes drift{to{transform:translate(-8vw,10vw) scale(1.15)}}
.geo-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:72px;align-items:center;position:relative}
.geo h2{font-size:clamp(3rem,6.4vw,6rem)}
.geo-lede{margin-top:28px;font-size:1.15rem;max-width:50ch;color:rgba(255,255,255,.82)}
.engines{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin-top:28px}
.engines li{border:1px solid rgba(255,255,255,.35);padding:5px 11px;font-size:.88rem;font-weight:500}
.chat{background:var(--paper);color:var(--ink);padding:0 0 22px;box-shadow:16px 16px 0 var(--magenta);min-width:0}
.chat-bar{display:flex;align-items:center;gap:6px;padding:12px 16px;border-bottom:1px solid var(--line);margin-bottom:20px}
.chat-bar span{width:9px;height:9px;border-radius:50%;background:#d6d8e2}
.chat-bar em{margin-left:auto;font-style:normal;font-size:.78rem;font-weight:600;color:var(--gm-slate);text-transform:uppercase;letter-spacing:.06em}
.bubble{margin:0 20px 14px;padding:14px 16px;font-size:1rem;line-height:1.5}
.bubble.q{background:var(--mist);margin-left:auto;max-width:82%;width:fit-content;font-weight:500}
.bubble.a{border-left:3px solid var(--blue);padding-top:4px;padding-bottom:4px}
.typed{min-height:7.5em}
.typed mark{background:var(--yellow);color:var(--ink);padding:0 3px;font-weight:700}
.typed.caret::after{content:"";display:inline-block;width:.5em;height:1.05em;background:var(--ink);vertical-align:-.15em;margin-left:2px;animation:blink .8s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.cites{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:14px;font-size:.8rem;opacity:0;transform:translateY(8px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.cites.in{opacity:1;transform:none}
.cites span{font-weight:600;color:var(--gm-slate);margin-right:2px}
.cites b{font-weight:600;background:var(--mist);border:1px solid var(--line);padding:3px 8px}
.geo-steps{list-style:none;display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-top:96px;counter-reset:g;position:relative}
.geo-steps li{counter-increment:g;border-top:2px solid rgba(255,255,255,.3);padding:22px 18px 0 0;position:relative}
.geo-steps li::after{content:"";position:absolute;left:0;top:-2px;height:2px;width:0;background:var(--stripes);transition:width 1s var(--ease) calc(var(--i) * 140ms + 200ms)}
.geo-steps.in li::after{width:100%}
.geo-steps li::before{content:counter(g,decimal-leading-zero);display:block;font-family:var(--display);font-weight:800;font-stretch:72%;font-size:2.4rem;line-height:1;margin-bottom:12px;color:var(--yellow)}
.geo-steps h3{font-family:var(--display);font-weight:700;font-size:1.12rem;line-height:1.25;margin-bottom:6px}
.geo-steps p{font-size:.94rem;color:rgba(255,255,255,.74)}
.geo-cta{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;margin-top:72px;padding-top:28px;border-top:1px solid rgba(255,255,255,.2)}
.geo-cta p{font-family:var(--display);font-weight:700;font-stretch:90%;font-size:clamp(1.4rem,2.6vw,2.2rem);line-height:1.1;max-width:30ch}
@media (max-width:1000px){.geo-steps{grid-template-columns:1fr 1fr}}
@media (max-width:900px){.geo-grid{grid-template-columns:1fr;gap:48px}.chat{box-shadow:10px 10px 0 var(--magenta)}}
@media (max-width:560px){.geo-steps{grid-template-columns:1fr;margin-top:64px}.bubble.q{max-width:100%}}
@media (prefers-reduced-motion:reduce){.geo::before{animation:none}.cites{opacity:1;transform:none}.geo-steps li::after{width:100%}}

/* NAV: case-study dropdown + mobile menu */
.nav-end{display:flex;align-items:center;gap:8px}
.has-menu{position:relative}
.menu{position:absolute;left:50%;top:calc(100% + 22px);translate:-50% 0;width:min(560px,90vw);background:var(--paper);color:var(--ink);border:1px solid var(--line);box-shadow:0 18px 40px rgba(20,20,40,.14);padding:20px;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .25s,transform .3s var(--ease),visibility 0s .3s}
.menu::before{content:"";position:absolute;left:0;right:0;top:-24px;height:24px}
.has-menu:hover .menu,.has-menu:focus-within .menu{opacity:1;visibility:visible;transform:none;transition:opacity .25s,transform .3s var(--ease)}
.menu p{font-size:.8rem;font-weight:600;color:var(--gm-slate);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px}
.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px}
.nav .menu a{background:none;padding:9px 10px;display:block;text-decoration:none}
.nav .menu a:hover,.nav .menu a:focus-visible{background:var(--mist)}
.menu a b{display:block;font-family:var(--display);font-weight:800;font-stretch:80%;text-transform:uppercase;font-size:1.02rem;line-height:1.1}
.menu a small{display:block;font-size:.8rem;color:var(--gm-slate);margin-top:2px}
.nav .menu .menu-all{margin-top:10px;border-top:1px solid var(--line);padding-top:12px;font-weight:600}
.menu-btn{display:none;border:1.5px solid var(--ink);background:var(--paper);color:var(--ink);font:700 .9rem var(--display);font-stretch:90%;padding:11px 14px;cursor:pointer}
.mnav{position:fixed;inset:72px 0 0;z-index:49;background:var(--ink);color:var(--paper);overflow-y:auto;padding:32px 0 calc(48px + env(safe-area-inset-bottom,0px))}
.mnav .wrap{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.mnav p{font-size:.8rem;font-weight:600;color:var(--yellow);text-transform:uppercase;letter-spacing:.06em;margin-bottom:12px}
.mnav a{display:block;text-decoration:none;font-family:var(--display);font-weight:800;font-stretch:78%;text-transform:uppercase;font-size:1.5rem;line-height:1.05;padding:7px 0;border-bottom:1px solid rgba(255,255,255,.14)}
@media (max-width:1000px){.menu-btn{display:inline-block}}
@media (max-width:560px){.mnav .wrap{grid-template-columns:1fr}.nav .nav-end .btn{display:none}}

/* HOME: all case studies */
.cases{background:var(--paper);padding-bottom:112px}
.cases .sec-head h2{font-size:clamp(2.8rem,6.6vw,6rem)}
.cases-ctl{display:flex;align-items:center;gap:24px}
.cs-strip{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 max(4vw,calc((100vw - 1280px)/2)) 8px;scroll-padding-inline:max(4vw,calc((100vw - 1280px)/2));scrollbar-width:none;cursor:grab}
.cs-strip::-webkit-scrollbar{display:none}
.cs-strip .wcard{flex:0 0 clamp(270px,27vw,360px);scroll-snap-align:start}
.cs-strip .wcard h2{font-size:clamp(1.5rem,2.1vw,2rem)}
.cs-strip.stagger>*{translate:0 40px}
.cs-strip.stagger.in>*{translate:0 0}
@media (max-width:560px){.cases-ctl{width:100%;justify-content:space-between}}

/* case strip side arrows */
.cs-viewport{position:relative}
.side-arrow{position:absolute;z-index:3;top:calc(clamp(270px,27vw,360px) * .625);translate:0 -50%;width:56px;height:56px;border:0;border-radius:50%;background:var(--ink);color:var(--paper);display:grid;place-items:center;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.22);transition:background .25s,scale .25s var(--ease),opacity .25s}
.side-arrow svg{width:22px;height:22px}
.side-arrow:hover{background:var(--blue);scale:1.08}
.side-arrow:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.side-arrow.sa-prev{left:max(12px,calc((100vw - 1280px)/2 - 28px))}
.side-arrow.sa-next{right:max(12px,calc((100vw - 1280px)/2 - 28px))}
.side-arrow[disabled]{opacity:0;pointer-events:none}
@media (max-width:560px){.side-arrow{width:46px;height:46px;top:calc(clamp(270px,27vw,360px) * .625)}}
.cases{padding-top:96px}
/* case page prev/next at top */
.cs-top{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:28px}
.cs-top .crumbs{margin-bottom:0}
.pn{display:flex;gap:6px}
.pn a{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-weight:600;font-size:.88rem;border:1.5px solid currentColor;padding:7px 12px;transition:background .25s,color .25s}
.pn a:hover{background:var(--fg);color:var(--bg)}
.pn svg{width:16px;height:16px;flex:none}
@media (max-width:560px){.pn span{display:none}}

/* SERVICES with images */
.cursor-img{display:none!important}
.svc-list button{grid-template-columns:auto 1fr auto}
.svc-thumb{width:clamp(64px,8vw,112px);aspect-ratio:4/3;overflow:hidden;background:var(--mist);flex:none;transition:width .45s var(--ease)}
.svc-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.svc-list li:hover .svc-thumb img{transform:scale(1.08)}
.svc-list li.open .svc-thumb{width:0}
.svc-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:32px;align-items:start;padding:0 24px 30px}
.svc-big{aspect-ratio:4/3;overflow:hidden;background:rgba(0,0,0,.2)}
.svc-big img{width:100%;height:100%;object-fit:cover}
.svc-text p,.svc-text .tags{padding-left:0;padding-right:0}
.svc-text p a{color:inherit}
@media (max-width:700px){.svc-inner{grid-template-columns:1fr;gap:16px}}

/* TESTIMONIALS */
.testi{background:var(--mist);overflow:hidden}
.testi .sec-head h2{font-size:clamp(3rem,7vw,6.4rem)}
.testi-sub{max-width:36ch;color:#4a4a4a}
.tq-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.tq{background:var(--paper);padding:40px;display:flex;flex-direction:column;gap:24px;border-top:6px solid transparent;border-image:var(--stripes) 1}
.tq-logo{height:56px;width:auto;max-width:220px;object-fit:contain;object-position:left}
.tq blockquote{font-family:var(--display);font-weight:700;font-stretch:92%;font-size:clamp(1.35rem,2.1vw,1.85rem);line-height:1.18;letter-spacing:-.01em}
.tq figcaption{margin-top:auto;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px}
.tq figcaption b{font-size:1.05rem}
.tq figcaption span{color:var(--gm-slate)}
.tq figcaption .textlink{margin-left:auto}
.t-strip{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 max(4vw,calc((100vw - 1280px)/2)) 8px;scroll-padding-inline:max(4vw,calc((100vw - 1280px)/2));scrollbar-width:none;cursor:grab}
.t-strip::-webkit-scrollbar{display:none}
.t-strip.stagger>*{translate:0 40px}
.t-strip.stagger.in>*{translate:0 0}
.tcard{flex:0 0 clamp(270px,26vw,340px);scroll-snap-align:start;background:var(--paper);display:flex;flex-direction:column}
.tphoto{aspect-ratio:1;overflow:hidden}
.tphoto img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.tcard:hover .tphoto img{transform:scale(1.05)}
.tcard blockquote{padding:22px 22px 0;font-size:.98rem;line-height:1.55}
.tcard figcaption{padding:16px 22px 20px;margin-top:auto;display:grid;gap:2px}
.tcard figcaption span{font-size:.86rem;color:var(--gm-slate)}
.tschool{width:100%;aspect-ratio:1080/210;object-fit:cover}
.t-viewport .side-arrow{top:calc(clamp(270px,26vw,340px) * .5)}
@media (max-width:900px){.tq-grid{grid-template-columns:1fr}.tq{padding:28px}}

/* VISUAL SERVICES GRID */
.sv-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:clamp(300px,30vw,400px);gap:12px}
.sv{position:relative;overflow:hidden;color:var(--paper);text-decoration:none;background:var(--ink);isolation:isolate;display:flex;align-items:flex-end}
.sv-custom{grid-column:span 2;grid-row:span 2}
.sv>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform 1s var(--ease),filter .6s}
.sv:hover>img{transform:scale(1.07)}
.sv-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(20,16,50,0) 25%,rgba(20,16,50,.55) 55%,rgba(20,16,50,.92) 100%);transition:background .5s}
.sv::after{content:"";position:absolute;left:0;right:0;bottom:0;height:6px;background:var(--stripes);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease)}
.sv:hover::after,.sv:focus-visible::after{transform:scaleX(1)}
.sv-body{padding:26px 26px 30px;display:grid;gap:10px;width:100%}
.sv-num{font-family:var(--display);font-weight:800;font-stretch:72%;font-size:1rem;color:var(--yellow);letter-spacing:.04em}
.sv h3{font-family:var(--display);font-weight:800;font-stretch:76%;text-transform:uppercase;font-size:clamp(1.9rem,2.6vw,2.6rem);line-height:.92}
.sv-custom h3{font-size:clamp(2.8rem,5.6vw,5.4rem)}
.sv p{font-size:.98rem;line-height:1.5;color:rgba(255,255,255,.88);max-width:52ch;overflow:hidden;max-height:0;opacity:0;transition:max-height .55s var(--ease),opacity .4s}
.sv .tags{padding:0;gap:6px;max-height:0;opacity:0;overflow:hidden;transition:max-height .55s var(--ease),opacity .4s}
.sv .tag{border-color:rgba(255,255,255,.6);font-size:.8rem}
.sv:hover p,.sv:focus-visible p,.sv-custom p{max-height:12em;opacity:1}
.sv:hover .tags,.sv:focus-visible .tags,.sv-custom .tags{max-height:6em;opacity:1}
.sv-custom p{font-size:1.12rem}
.sv-badge{position:absolute;left:18px;top:18px;background:var(--yellow);color:var(--ink);font:700 .78rem var(--display);font-stretch:90%;text-transform:uppercase;letter-spacing:.05em;padding:6px 10px}
.sv-badge.new{background:var(--magenta);color:var(--paper)}
.sv:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
@media (hover:none){.sv p,.sv .tags{max-height:none;opacity:1}}
@media (max-width:900px){.sv-grid{grid-template-columns:1fr 1fr;grid-auto-rows:340px}.sv-custom{grid-column:span 2;grid-row:span 1;min-height:460px}.sv p,.sv .tags{max-height:none;opacity:1}}
@media (max-width:560px){.sv-grid{grid-template-columns:1fr;grid-auto-rows:auto}.sv,.sv-custom{grid-column:auto;min-height:380px}}

/* BIGGER HEADERS */
.sec-head h2,.services .sec-head h2{font-size:clamp(3.6rem,9.4vw,9.2rem)}
.cc h2{font-size:clamp(3.4rem,7.6vw,7.4rem)}
.case h2{font-size:clamp(3rem,6.6vw,6.4rem)}
.goals .sec-head h2{font-size:clamp(3.2rem,7vw,6.8rem);max-width:16ch}
.join h2{font-size:clamp(3.6rem,9vw,9rem)}
.geo h2{font-size:clamp(3.6rem,7.8vw,7.6rem)}
.cases .sec-head h2{font-size:clamp(3.2rem,7.4vw,7.2rem);max-width:15ch}
.testi .sec-head h2{font-size:clamp(3.6rem,9vw,8.8rem)}
.partners .sec-head h2{font-size:clamp(3.2rem,7.4vw,7rem)}
footer h2{font-size:clamp(3rem,6vw,5.6rem)}
.story .lead{font-size:clamp(2.2rem,4.4vw,4rem)}
.page-hero h1{font-size:clamp(4.6rem,16vw,15rem)}
.cs-story h2{font-size:2rem}
.more-work .sec-head h2{font-size:clamp(3rem,7vw,6.4rem)}
@media (max-width:900px){.sv-shade{background:linear-gradient(180deg,rgba(20,16,50,.25) 0%,rgba(20,16,50,.7) 40%,rgba(20,16,50,.94) 100%)}}

/* CLIENT LOGOS ON CASE STUDIES */
.wlogo{position:absolute;left:0;bottom:0;width:clamp(96px,38%,150px);aspect-ratio:2/1;background:#fff;display:grid;place-items:center;z-index:2;box-shadow:0 6px 18px rgba(0,0,0,.18)}
.wlogo img{position:static!important;width:100%;height:100%;object-fit:contain;transform:none!important}
.wlogo.txt,.mlogo.txt,.cs-logo-tile.txt{font-family:var(--display);font-weight:800;font-stretch:80%;text-transform:uppercase;color:var(--ink);text-align:center;line-height:1;padding:6px}
.wlogo.txt{font-size:1.05rem}
.wcard .wimg::after{left:auto;right:0}
.cs-logo-tile{display:inline-grid;place-items:center;width:clamp(150px,16vw,210px);aspect-ratio:2/1;background:#fff;margin-bottom:22px;box-shadow:0 10px 30px rgba(0,0,0,.14);opacity:0;animation:fade .8s .2s forwards}
.cs-logo-tile img{width:100%;height:100%;object-fit:contain}
.cs-logo-tile.txt{font-size:1.5rem}
.menu-grid a{display:flex!important;align-items:center;gap:12px}
.mlogo{flex:none;width:64px;aspect-ratio:2/1;background:#fff;border:1px solid var(--line);display:grid;place-items:center;overflow:hidden}
.mlogo img{width:100%;height:100%;object-fit:contain}
.mlogo.txt{font-size:.55rem;padding:2px}
@media (prefers-reduced-motion:reduce){.cs-logo-tile{opacity:1}}

/* TRANSPARENT LOGOS */
.p-tile{background:transparent;border:0}
.p-tile img{filter:grayscale(1) contrast(1.1);opacity:.8}
.wmeta{align-items:center}
.wmeta .wclient{margin-right:auto}
.wlogo{position:static;width:84px;height:42px;aspect-ratio:auto;background:transparent;box-shadow:none;flex:none;display:block}
.wlogo img{width:100%;height:100%;object-fit:contain;object-position:left center}
.wlogo.txt{display:none}
.cs-logo-tile{background:transparent;box-shadow:none;place-items:center start;width:clamp(170px,18vw,240px)}
.cs-logo-tile img{object-position:left center}
.mlogo{background:transparent;border:0}
.sv-brand{grid-column:1/-1}
.sv-brand h3{font-size:clamp(2.4rem,4.4vw,4.2rem)}
@media (min-width:901px){.sv-brand p,.sv-brand .tags{max-height:12em;opacity:1}}
.hero h1{max-width:none}
.hero h1 .swap{max-width:100%}
.hero h1 .swap b{white-space:normal}

/* CANADA COVERAGE */
.coverage{background:var(--paper);border-top:1px solid var(--line)}
.coverage .sec-head h2{font-size:clamp(3.4rem,8vw,7.6rem);max-width:12ch}
.cov-sub{max-width:38ch;color:#4a4a4a}
.cov-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:48px;align-items:start}
.cov-map{margin:0}
.cov-map img{width:100%;height:auto}
.cov-list{display:grid;grid-template-columns:1fr 1fr;gap:24px 28px}
.cov-reg h3{font-family:var(--display);font-weight:800;font-stretch:80%;text-transform:uppercase;font-size:1.05rem;letter-spacing:.02em;border-top:2px solid var(--ink);padding-top:10px;margin-bottom:8px}
.cov-reg ul{list-style:none;display:grid;gap:3px;font-size:.95rem}
@media (max-width:1000px){.cov-grid{grid-template-columns:1fr}.cov-list{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}}
.ticker .track{animation-duration:240s}

/* service cards are buttons now */
button.sv{border:0;padding:0;margin:0;font:inherit;text-align:left;cursor:pointer;width:100%;appearance:none}
.sv .sv-more{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:.85rem;font-family:var(--display);font-stretch:90%;text-transform:uppercase;letter-spacing:.04em;color:var(--yellow);margin-top:4px}

/* SERVICE DIALOG */
.sd{border:0;padding:0;width:min(980px,calc(100vw - 32px));max-height:calc(100vh - 48px);overflow:auto;background:var(--paper);color:var(--ink);box-shadow:0 30px 80px rgba(10,10,40,.35)}
.sd::backdrop{background:rgba(20,16,50,.72);backdrop-filter:blur(3px)}
.sd[open]{animation:sdIn .45s var(--ease)}
@keyframes sdIn{from{opacity:0;transform:translateY(24px) scale(.98)}to{opacity:1;transform:none}}
.sd-inner{display:grid;grid-template-columns:1fr 1.15fr}
.sd-img{margin:0;min-height:100%;background:var(--ink)}
.sd-img img{width:100%;height:100%;object-fit:cover;display:block}
.sd-body{padding:44px 40px 40px;display:grid;gap:14px;align-content:start}
.sd-body .kicker{margin-bottom:0}
.sd-body h2{font-size:clamp(2.2rem,4vw,3.4rem)}
.sd-desc{font-size:1.08rem;color:#3d3d3d}
.sd-body h3{font-family:var(--display);font-weight:800;font-stretch:80%;text-transform:uppercase;font-size:1rem;letter-spacing:.03em;border-top:2px solid var(--ink);padding-top:12px;margin-top:6px}
.sd-list{list-style:none;display:grid;gap:8px}
.sd-list li{display:flex;gap:10px;align-items:baseline}
.sd-list li::before{content:"";flex:none;width:10px;height:10px;background:var(--stripes);translate:0 1px}
.sd-rels{display:grid;gap:6px;margin-top:4px}
.sd-rels p{font-size:.82rem;font-weight:600;color:var(--gm-slate);text-transform:uppercase;letter-spacing:.05em}
.sd-rel{font-weight:600;text-decoration:none;border-bottom:1.5px solid currentColor;justify-self:start}
.sd-rel:hover{color:var(--blue)}
.sd-ctas{margin-top:10px}
.sd-close{position:absolute;right:12px;top:12px;width:44px;height:44px;border:0;border-radius:50%;background:var(--paper);color:var(--ink);font-size:1.8rem;line-height:1;cursor:pointer;z-index:2;box-shadow:0 4px 14px rgba(0,0,0,.2)}
.sd-close:hover{background:var(--yellow)}
.sd{position:fixed}
@media (max-width:760px){.sd-inner{grid-template-columns:1fr}.sd-img{height:220px;min-height:0}.sd-body{padding:28px 22px 28px}}

/* BOOK A CONSULT */
.consult{background:var(--blue);color:var(--paper);position:relative;overflow:hidden}
.consult::before{content:"";position:absolute;inset:0 0 auto;height:6px;background:var(--stripes)}
.consult-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:64px;align-items:start}
.consult h2{font-size:clamp(3.4rem,7.4vw,7rem)}
.consult .kicker{color:var(--paper)}
.consult-lede{margin-top:24px;font-size:1.15rem;max-width:44ch;color:rgba(255,255,255,.88)}
.consult-steps{list-style:none;counter-reset:c;display:grid;gap:14px;margin-top:36px;max-width:46ch}
.consult-steps li{counter-increment:c;display:grid;grid-template-columns:44px 1fr;column-gap:10px;border-top:1px solid rgba(255,255,255,.3);padding-top:12px}
.consult-steps li::before{content:counter(c,decimal-leading-zero);grid-row:1/3;font-family:var(--display);font-weight:800;font-stretch:72%;font-size:1.8rem;line-height:1;color:var(--yellow)}
.consult-steps b{font-family:var(--display);font-weight:700;font-size:1.1rem}
.consult-steps span{color:rgba(255,255,255,.8);font-size:.95rem}
.consult-direct{margin-top:32px;display:flex;flex-wrap:wrap;gap:6px 16px;align-items:baseline}
.consult-direct span{width:100%;font-size:.9rem;color:rgba(255,255,255,.75)}
.consult-direct b{font-family:var(--display);font-size:1.4rem;font-stretch:90%}
.sel{user-select:all;-webkit-user-select:all}
.consult-form{background:var(--paper);color:var(--ink);padding:36px;display:grid;gap:18px;box-shadow:16px 16px 0 var(--magenta);min-width:0}
.cf-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.consult-form label{display:grid;gap:6px;font-weight:600;font-size:.9rem;min-width:0}
.consult-form label small{font-weight:500;color:var(--gm-slate)}
.consult-form input,.consult-form select,.consult-form textarea{font:500 1rem var(--body);color:var(--ink);background:var(--mist);border:1.5px solid transparent;padding:12px 14px;width:100%;min-width:0;border-radius:0}
.consult-form input:focus,.consult-form select:focus,.consult-form textarea:focus{outline:none;border-color:var(--blue);background:#fff}
.consult-form fieldset{border:0;padding:0;margin:0;min-width:0}
.consult-form legend{font-weight:600;font-size:.9rem;margin-bottom:8px}
.picks{display:flex;flex-wrap:wrap;gap:6px}
.pick{display:block!important;cursor:pointer}
.pick input{position:absolute;opacity:0;width:1px;height:1px}
.pick span{display:inline-block;border:1.5px solid var(--line);padding:7px 12px;font-weight:600;font-size:.86rem;transition:background .2s,border-color .2s,color .2s}
.pick input:checked+span{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.pick input:focus-visible+span{outline:2px solid var(--blue);outline-offset:2px}
.cf-err{color:#c4002a;font-weight:600}
.cf-submit{justify-self:start;font-size:1.05rem;padding:16px 26px}
.cf-done{display:grid;gap:12px}
.cf-done h3{font-family:var(--display);font-weight:800;font-stretch:80%;text-transform:uppercase;font-size:1.6rem;line-height:1}
.cf-summary{white-space:pre-wrap;background:var(--mist);padding:14px;font:500 .9rem/1.5 var(--body);overflow-x:auto}
.cf-done-ctas{display:flex;gap:8px;flex-wrap:wrap}
.btn.outline-dark{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}
@media (max-width:900px){.consult-grid{grid-template-columns:1fr;gap:40px}.consult-form{padding:24px;box-shadow:8px 8px 0 var(--magenta)}}
@media (max-width:560px){.cf-row{grid-template-columns:1fr}}

/* CLIENTS */
.clients{background:var(--mist)}
.clients .sec-head h2{font-size:clamp(3.6rem,9vw,8.4rem)}
.clients-sub{max-width:36ch;color:#4a4a4a}
.cl-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:12px}
.cl-card{background:var(--paper);padding:28px;display:flex;flex-direction:column;gap:10px;text-decoration:none;color:var(--ink);position:relative;transition:transform .35s var(--ease),box-shadow .35s;min-width:0}
a.cl-card:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(20,20,60,.12)}
.cl-card h3{font-family:var(--display);font-weight:800;font-stretch:80%;text-transform:uppercase;font-size:1.45rem;line-height:1}
.cl-card p{color:#4a4a4a;font-size:.95rem}
.cl-card b{font-family:var(--display);font-stretch:90%;font-size:1.15rem;margin-top:auto;word-break:break-word}
.cl-ico{width:48px;height:48px;display:grid;place-items:center;background:var(--mist);color:var(--blue)}
.cl-ico svg{width:24px;height:24px}
.cl-go{margin-top:auto;font-weight:700;font-family:var(--display);font-stretch:90%;text-transform:uppercase;letter-spacing:.03em}
.cl-pay{background:var(--ink);color:var(--paper)}
.cl-pay p{color:rgba(255,255,255,.8)}
.cl-pay .cl-ico{background:var(--yellow);color:var(--ink)}
.cl-pay h3{font-size:2rem}
.cl-pay .cl-go{color:var(--yellow)}
@media (max-width:1000px){.cl-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.cl-grid{grid-template-columns:1fr}}

/* CHAT ASSISTANT */
.gmchat{position:fixed;right:max(16px,env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:80;font-family:var(--body)}
.gc-launch{display:inline-flex;align-items:center;gap:10px;border:0;cursor:pointer;background:var(--ink);color:var(--paper);font:700 .95rem var(--display);font-stretch:90%;padding:14px 20px 14px 16px;border-radius:999px;box-shadow:0 10px 30px rgba(20,16,50,.35);transition:transform .25s var(--ease),background .25s}
.gc-launch:hover{transform:translateY(-2px);background:var(--blue)}
.gc-dot{width:12px;height:12px;border-radius:50%;background:var(--stripes);box-shadow:0 0 0 3px rgba(255,255,255,.15);animation:gcPulse 2.4s ease-in-out infinite}
@keyframes gcPulse{50%{box-shadow:0 0 0 7px rgba(255,255,255,0)}}
.gmchat.open .gc-launch{opacity:0;pointer-events:none}
.gc-panel{position:absolute;right:0;bottom:0;width:min(380px,calc(100vw - 32px));height:min(600px,calc(100vh - 110px));background:var(--paper);color:var(--ink);display:flex;flex-direction:column;box-shadow:0 24px 60px rgba(20,16,50,.35);overflow:hidden;animation:sdIn .35s var(--ease)}
.gc-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;background:var(--ink);color:var(--paper);position:relative}
.gc-head::after{content:"";position:absolute;inset:auto 0 0;height:4px;background:var(--stripes)}
.gc-head b{display:block;font-family:var(--display);font-weight:800;font-stretch:80%;text-transform:uppercase;font-size:1.15rem}
.gc-head span{font-size:.82rem;color:rgba(255,255,255,.75)}
.gc-x{border:0;background:transparent;color:var(--paper);font-size:1.8rem;line-height:1;cursor:pointer;width:36px;height:36px}
.gc-log{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;background:var(--mist)}
.gc-msg{max-width:86%;padding:10px 14px;font-size:.95rem;line-height:1.45;white-space:pre-wrap;word-wrap:break-word}
.gc-msg.bot{background:var(--paper);align-self:flex-start;border-left:3px solid var(--blue)}
.gc-msg.me{background:var(--blue);color:var(--paper);align-self:flex-end}
.gc-msg.thinking{color:var(--gm-slate);font-style:italic}
.gc-acts{display:flex;flex-wrap:wrap;gap:6px;align-self:flex-start}
.gc-acts a{background:var(--yellow);color:var(--ink);font-weight:700;font-size:.82rem;padding:7px 12px;text-decoration:none}
.gc-acts a:hover{background:var(--ink);color:var(--paper)}
.gc-quick{display:flex;gap:6px;overflow-x:auto;padding:10px 12px;border-top:1px solid var(--line);scrollbar-width:none;flex:none}
.gc-quick::-webkit-scrollbar{display:none}
.gc-quick button{flex:none;border:1.5px solid var(--line);background:var(--paper);font:600 .8rem var(--body);padding:7px 11px;cursor:pointer;white-space:nowrap;color:var(--ink)}
.gc-quick button:hover{border-color:var(--ink)}
.gc-form{display:flex;border-top:1px solid var(--line);flex:none}
.gc-form input{flex:1;min-width:0;border:0;padding:14px 16px;font:500 .95rem var(--body);color:var(--ink);background:var(--paper)}
.gc-form input:focus{outline:none}
.gc-form button{border:0;background:var(--ink);color:var(--paper);width:52px;cursor:pointer;display:grid;place-items:center}
.gc-form button svg{width:20px;height:20px}
.gc-form.busy button{opacity:.5;pointer-events:none}
.gc-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@media (max-width:560px){.gc-lt{display:none}.gc-launch{padding:16px}.gc-panel{height:calc(100vh - 100px)}}
@media (prefers-reduced-motion:reduce){.gc-dot,.gc-panel,.sd[open]{animation:none}}
[hidden]{display:none!important}
.gmchat .gc-panel{padding:0}
.pay-methods{display:flex;gap:6px;flex-wrap:wrap}
.pay-methods span{border:1px solid rgba(255,255,255,.4);padding:4px 10px;font-size:.82rem;font-weight:600}
.pay-btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:6px}
.pay-btns .btn{padding:12px 16px;font-size:.9rem}
.who{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin-top:22px}
.who li{background:rgba(255,255,255,.1);padding:6px 11px;font-size:.88rem;font-weight:600}
.geo-tabs{display:flex;gap:4px;padding:0 20px 14px;flex-wrap:wrap}
.geo-tabs button{border:1.5px solid var(--line);background:var(--paper);color:var(--ink);font:600 .82rem var(--body);padding:6px 11px;cursor:pointer}
.geo-tabs button[aria-selected="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.geo-tabs button:focus-visible{outline:2px solid var(--blue);outline-offset:2px}

/* STRONGER SECTION LABELS */
.kicker{display:flex;align-items:center;gap:16px;font-family:var(--display);font-weight:800;font-stretch:85%;text-transform:uppercase;letter-spacing:.09em;font-size:clamp(1.05rem,1.5vw,1.35rem);line-height:1;margin-bottom:34px;width:100%}
.kicker::before{content:"";flex:none;width:64px;height:12px;background:var(--stripes)}
.kicker::after{content:"";flex:1;height:2px;background:currentColor;opacity:.22;min-width:24px}
.sec-head>div:first-child{flex:1;min-width:0}
.sec-head>div:first-child .kicker{max-width:none}
section{border-top:1px solid var(--line)}
.hero+section,.cases{border-top:0}
.kicker{font-size:clamp(1.2rem,2.1vw,1.95rem);letter-spacing:.06em;gap:18px;margin-bottom:40px}
.kicker::before{width:clamp(56px,6vw,88px);height:clamp(12px,1.2vw,18px)}
.kicker::after{height:3px;opacity:.3}
.kicker{white-space:nowrap}
@media (max-width:560px){.kicker{white-space:normal}}
html body .kicker{font-size:clamp(1.2rem,2.1vw,1.95rem);margin-top:0;max-width:none}

/* COLLEGIATE SECTION LABELS (varsity patch) */
html body .kicker{font-family:"Graduate","Rockwell","Roboto Slab",Georgia,serif;font-weight:400;font-stretch:normal;text-transform:uppercase;letter-spacing:.08em;font-size:clamp(1.05rem,1.6vw,1.5rem);gap:0;margin-bottom:40px;white-space:nowrap}
html body .kicker::before{display:none}
.kicker .kt{display:inline-flex;align-items:center;gap:.6em;padding:.55em 1.1em .5em;border:3px solid currentColor;border-radius:999px;box-shadow:5px 5px 0 var(--magenta);position:relative;line-height:1}
.kicker .kt::before{content:"";width:.7em;height:.7em;border-radius:50%;background:var(--stripes);flex:none}
html body .kicker::after{margin-left:22px;height:3px;opacity:1;background:repeating-linear-gradient(90deg,currentColor 0 14px,transparent 14px 22px);opacity:.35}
.cc .kicker .kt,.geo .kicker .kt,.consult .kicker .kt,.case.ah .kicker .kt,.page-hero .kicker .kt{box-shadow:5px 5px 0 var(--yellow)}
.case:not(.ah):not(.hz) .kicker .kt{box-shadow:5px 5px 0 var(--blue)}
@media (max-width:560px){html body .kicker{white-space:normal;font-size:1.05rem}.kicker .kt{padding:.5em .9em .45em}}
/* Square Campus Connect-style labels */
html body .kicker{font-family:var(--display);font-weight:800;font-stretch:85%;letter-spacing:.07em}
.kicker .kt{border:0;border-radius:0;box-shadow:none;background:color-mix(in srgb,currentColor 9%,transparent);padding:.75em 1.15em .6em;gap:.7em;position:relative;overflow:hidden}
.kicker .kt::before{width:.55em;height:.55em;border-radius:0;background:var(--magenta)}
.kicker .kt::after{content:"";position:absolute;inset:0 0 auto;height:5px;background:var(--stripes)}
.cc .kicker .kt,.geo .kicker .kt,.consult .kicker .kt,.case.ah .kicker .kt,.page-hero .kicker .kt,.case:not(.ah):not(.hz) .kicker .kt{box-shadow:none;background:color-mix(in srgb,currentColor 12%,transparent)}
.cc .kicker .kt::before,.geo .kicker .kt::before,.consult .kicker .kt::before,.case.ah .kicker .kt::before,.page-hero .kicker .kt::before{background:var(--yellow)}
html body .kicker::after{background:currentColor;height:3px;opacity:.22}

.svc-sub{max-width:40ch;display:flex;flex-direction:column;align-items:flex-start;gap:18px}.svc-sub p{color:#4a4a4a;margin:0}
.sec-head:has(.svc-sub){flex-direction:column;align-items:stretch;gap:32px}.sec-head:has(.svc-sub) h2{font-size:clamp(3rem,6.6vw,6.6rem);max-width:none}.sec-head:has(.svc-sub) .svc-sub{max-width:none;flex-direction:row;justify-content:space-between;align-items:end;flex-wrap:wrap}.svc-sub p{max-width:58ch;font-size:1.15rem}

footer ul.socials{gap:14px}
footer .soc{display:flex;align-items:center;gap:14px;text-decoration:none!important}
.soc-i{flex:none;width:44px;height:44px;display:grid;place-items:center;background:var(--ink);color:var(--paper);position:relative;overflow:hidden;transition:transform .2s}
.soc-i::after{content:"";position:absolute;inset:0 0 auto;height:4px;background:var(--stripes)}
.soc-i svg{width:22px;height:22px}
.soc-t{display:flex;flex-direction:column;line-height:1.2}.soc-t b{font-weight:700}.soc-t small{font-size:.85rem;color:var(--gm-slate)}
.soc:hover .soc-i{transform:translateY(-3px);background:var(--magenta)}
.soc:hover .soc-t b{text-decoration:underline;text-underline-offset:4px}

.join-mail{margin-top:14px;font-size:.95rem;opacity:.85}
