/* Agile Brains custom theme v0.1.0
   Token layer: swap these values for the future re-skin. */
:root{
  --teal:#123B46; --slate:#2A3138; --ink:#0D2129; --ink2:#112B33;
  --bronze:#9A7450; --bronze-dark-bg:#9F7853; --bronze-btn:#936F4D; --bronze-link:#8B6948;
  --moss:#5F776B; --stone:#B7B1A6; --ivory:#F6F4F0; --white:#FFFFFF; --hair:rgba(246,244,240,.12);
  --serif:'Libre Baskerville',Georgia,serif; --sans:'Inter',system-ui,sans-serif; --mono:'IBM Plex Mono',monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px}
body{font-family:var(--sans);font-size:17px;line-height:1.65;color:var(--ivory);background:var(--ink)}
img{display:block;max-width:100%}
a{text-decoration:none;color:inherit}
.ab-inner{max-width:1280px;margin:0 auto}
.ab-inner-narrow{max-width:760px;margin:0 auto;padding:0 clamp(22px,5vw,48px)}
.ab-band{padding:clamp(80px,10vw,130px) clamp(22px,5vw,48px)}
.ab-band-alt{background:var(--ink2)}
.ab-eyebrow{font-family:var(--mono);font-size:12.5px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--stone);margin-bottom:22px}
h1,h2,h3{font-family:var(--serif);font-weight:400}
h1{font-size:clamp(42px,5.6vw,80px);line-height:1.06;letter-spacing:-.02em}
h2{font-size:clamp(30px,3.8vw,50px);line-height:1.12;letter-spacing:-.012em;max-width:24ch}
h1 em,h2 em{color:var(--bronze-dark-bg);font-style:italic}
.ab-sub{font-size:clamp(17px,1.35vw,19.5px);color:rgba(246,244,240,.78);max-width:54ch;margin-top:22px}
.ab-center{max-width:none;text-align:center;margin:0 auto 16px}
.ab-center-sub{margin:0 auto 36px;text-align:center}
.ab-ctaband{text-align:center;background:linear-gradient(120deg,var(--teal),var(--ink) 80%);border-top:1px solid var(--hair)}
.ab-btn{display:inline-block;font-weight:600;font-size:16px;padding:16px 30px;border-radius:2px;transition:background .18s,border-color .18s}
.ab-btn-primary{background:var(--bronze-btn);color:var(--white)}
.ab-btn-primary:hover{background:#7E5E41}
.ab-btn-ghost{border:1.5px solid rgba(246,244,240,.4);color:var(--ivory)}
.ab-btn-ghost:hover{border-color:rgba(246,244,240,.85)}
.ab-sectlink{font-family:var(--mono);font-size:13.5px;letter-spacing:.06em;color:rgba(246,244,240,.8);border-bottom:1px solid rgba(246,244,240,.35);padding-bottom:4px}
.ab-sectlink:hover{color:var(--ivory);border-color:var(--bronze-dark-bg)}
.ab-cta-row{display:flex;gap:16px;flex-wrap:wrap;margin-top:40px}

/* reveal */
.rv{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s ease}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){.rv{opacity:1;transform:none;transition:none}}

/* header */
.ab-hdr{position:fixed;top:0;left:0;right:0;z-index:60;padding:16px clamp(22px,4vw,44px);display:flex;align-items:center;justify-content:space-between;gap:16px;pointer-events:none;transition:background .25s,border-color .25s;border-bottom:1px solid transparent}
.ab-scrolled .ab-hdr{background:#0d2129;border-bottom-color:var(--hair)}
.ab-hdr>*{pointer-events:auto}
.ab-hdr-logo img{height:30px}
.ab-hdr-wordmark{font-family:var(--serif);font-size:22px;color:var(--ivory)}
.ab-navbar{position:absolute;left:50%;transform:translateX(-50%);background:rgba(13,33,41,.72);backdrop-filter:blur(12px);border:1px solid var(--hair);border-radius:2px;padding:8px 10px;transition:background .25s}
.ab-scrolled .ab-navbar{background:rgba(13,33,41,.95)}
.ab-navbar ul{display:flex;align-items:center;gap:6px;list-style:none}
.ab-navbar a{color:rgba(246,244,240,.88);font-size:15px;font-weight:500;padding:8px 16px;border-radius:2px;display:block}
.ab-navbar a:hover{background:rgba(246,244,240,.08);color:var(--ivory)}
.ab-hdr-actions{display:flex;align-items:center;gap:12px}
.ab-hdr-actions .ab-btn{padding:12px 22px;font-size:15px}
.ab-nav-toggle{display:none;background:rgba(13,33,41,.8);border:1px solid var(--hair);border-radius:2px;width:44px;height:44px;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:6px}
.ab-nav-toggle span{display:block;width:18px;height:2px;background:var(--ivory);transition:transform .2s}
.ab-mobile-menu{display:none;position:fixed;inset:0;z-index:55;background:rgba(13,33,41,.98);padding:110px 32px 40px;flex-direction:column;gap:8px}
.ab-mobile-menu.open{display:flex}
.ab-mobile-menu ul{list-style:none;display:flex;flex-direction:column;gap:4px;margin-bottom:24px}
.ab-mobile-menu a{color:var(--ivory);font-size:22px;font-family:var(--serif);padding:10px 0;display:block}
.ab-mobile-menu .ab-btn{align-self:flex-start}
@media(max-width:920px){
  .ab-navbar{display:none}
  .ab-nav-toggle{display:flex}
  .ab-hdr-actions .ab-btn-primary{display:none}
  .ab-mobile-menu .ab-btn-primary{display:inline-block}
}

/* hero */
.ab-hero{position:relative;min-height:100vh;display:flex;align-items:center;padding:150px clamp(22px,5vw,48px) 90px;overflow:hidden;background:linear-gradient(115deg,var(--ink) 45%,var(--ink2))}
#ab-hero-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.ab-hero .ab-inner{position:relative;z-index:2;width:100%}
.ab-hero-copy{max-width:660px}
.ab-chip{display:inline-block;font-family:var(--mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--stone);border:1px solid rgba(183,177,166,.35);border-radius:2px;padding:8px 14px;margin-bottom:30px}
.ab-hero h1{margin-bottom:8px}

/* logo strip */
.ab-logostrip{border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);padding:34px clamp(22px,5vw,48px);background:var(--ink)}
.ab-logostrip .ab-inner{display:flex;flex-wrap:wrap;gap:32px 46px;align-items:center;justify-content:center}
.ab-logostrip{--ab-logo-h:26px}
.ab-logostrip img{opacity:.8}

/* band head + cards */
.ab-band-head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap;margin-bottom:56px}
.ab-cardgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:16px}
.ab-cardgrid-3{grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr))}
.ab-card{border:1px solid var(--hair);border-radius:2px;background:rgba(246,244,240,.025);padding:32px 30px 36px;transition:border-color .2s,background .2s,transform .2s}
.ab-card:hover{border-color:rgba(159,120,83,.55);background:rgba(246,244,240,.05)}
.ab-num{font-family:var(--mono);font-size:12px;color:var(--stone);letter-spacing:.16em;display:block;margin-bottom:24px}
.ab-card h3{font-size:23px;margin-bottom:12px}
.ab-card p{font-size:15px;color:rgba(246,244,240,.72)}
.ab-card>a{display:inline-block;margin-top:18px;color:var(--bronze-dark-bg);font-weight:600;font-size:15px}

/* post cards */
.ab-postcard{padding:0;overflow:hidden}
.ab-postcard:hover{transform:translateY(-3px)}
.ab-postcard>a{display:block}
.ab-postcard img{width:100%;height:200px;object-fit:cover;opacity:.92}
.ab-postcard-pad{padding:26px}
.ab-tag{display:inline-block;font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--stone);border:1px solid rgba(183,177,166,.3);border-radius:2px;padding:5px 10px;margin-bottom:18px}
.ab-postcard h3{font-size:20px;line-height:1.35;margin-bottom:14px}
.ab-postcard h3 a:hover{color:var(--bronze-dark-bg)}
.ab-postcard-excerpt{font-size:14.5px;color:rgba(246,244,240,.65);margin-bottom:14px}
.ab-read{font-family:var(--mono);font-size:13.5px;color:var(--bronze-dark-bg)}

/* method */
.ab-method{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:16px;margin-top:60px}
.ab-mcard{border-top:2px solid var(--bronze-dark-bg);padding-top:26px}
.ab-letter{font-family:var(--serif);font-size:52px;color:var(--bronze-dark-bg);line-height:1;margin-bottom:18px}
.ab-mcard h4{font-weight:700;font-size:17px;margin-bottom:10px}
.ab-mcard p{font-size:15px;color:rgba(246,244,240,.75)}

/* embed / sphere */
.ab-embed-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(40px,6vw,90px);align-items:center}
@media(max-width:900px){.ab-embed-grid{grid-template-columns:1fr}}
.ab-embed .ab-sectlink{display:inline-block;margin-top:34px}
.ab-spherewrap{aspect-ratio:1/1;max-width:520px;margin:0 auto;width:100%}
#ab-sphere-canvas{width:100%;height:100%}

/* stats */
.ab-stats{background:var(--ink2);border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.ab-stats .ab-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr))}
.ab-stats-lead{padding:30px 34px 0}
a.ab-stat{display:block;text-decoration:none;color:inherit}
.ab-stat .ab-stat-cta{display:block;margin-top:14px;font-family:var(--mono);font-size:12.5px;letter-spacing:.06em;color:var(--stone);transition:color .2s ease}
a.ab-stat:hover .ab-stat-cta{color:var(--ivory)}
a.ab-stat:focus-visible{outline:2px solid var(--bronze-dark-bg);outline-offset:-2px}
.ab-stat{padding:26px 34px;border-left:1px solid var(--hair)}
.ab-stat:first-child{border-left:0}
@media(max-width:760px){.ab-stat{border-left:0;border-top:1px solid var(--hair)}.ab-stat:first-child{border-top:0}}
.ab-stat b{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(44px,4.6vw,64px);color:var(--bronze-dark-bg);line-height:1.05;margin-bottom:10px}
.ab-stat span{font-size:14.5px;color:rgba(246,244,240,.7)}

/* article */
.ab-article-head{padding:170px 0 40px;text-align:left}
.ab-article-head h1{font-size:clamp(34px,4.4vw,58px);margin:18px 0}
.ab-article-deck{font-size:19px;color:rgba(246,244,240,.78);max-width:56ch;margin-bottom:22px}
.ab-article-meta{font-family:var(--mono);font-size:13px;color:var(--stone);display:flex;gap:10px;flex-wrap:wrap}
.ab-article-feature{max-width:760px;margin:38px auto 0;padding:0 clamp(22px,5vw,48px)}
.ab-article-feature img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:2px;display:block}
.ab-article-feature figcaption{font-size:13.5px;color:var(--stone);margin-top:12px;text-align:center}
.ab-content{padding:56px 0 90px}
.gh-content>*+*{margin-top:22px}
.gh-content h2{font-size:clamp(26px,2.8vw,36px);margin-top:52px}
.gh-content h3{font-size:21px;margin-top:38px;font-family:var(--sans);font-weight:700}
.gh-content p,.gh-content li{font-size:18px;line-height:1.75;color:rgba(246,244,240,.88)}
.gh-content a{color:var(--bronze-dark-bg);border-bottom:1px solid rgba(159,120,83,.4)}
.gh-content a:hover{border-color:var(--bronze-dark-bg)}
.gh-content ul,.gh-content ol{padding-left:24px}
.gh-content blockquote{border-left:2px solid var(--bronze-dark-bg);padding-left:22px;font-family:var(--serif);font-size:20px;color:rgba(246,244,240,.85)}
.gh-content img{border-radius:2px}
.gh-content hr{border:0;border-top:1px solid var(--hair);margin:48px 0}
.gh-content figcaption{font-size:13.5px;color:var(--stone);margin-top:10px;text-align:center}
.gh-content pre{background:var(--ink2);border:1px solid var(--hair);padding:20px;border-radius:2px;overflow-x:auto;font-size:14px}
.ab-case-head{padding:150px 0 0}
.ab-case-back{display:block;font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--stone);margin-bottom:22px}
.ab-case-back:hover{color:var(--ivory)}
.ab-case-head h1{font-size:clamp(30px,3.9vw,50px);line-height:1.14;margin:12px 0 0}
.ab-case-deck{font-size:19px;line-height:1.62;color:rgba(246,244,240,.78);max-width:56ch;margin-top:20px}
.ab-case-feature{max-width:760px;margin:40px auto 0;padding:0 clamp(22px,5vw,48px)}
.ab-case-feature img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:2px;display:block}
.ab-case-content{padding:54px 0 20px}
.ab-case-content>h2:first-child,.ab-case-content>p:first-child{margin-top:0}
.ab-listing-head{margin-bottom:56px}
.ab-listing-head h1{font-size:clamp(34px,4.2vw,54px);line-height:1.12}
.ab-listing-head:empty{display:none}
.ab-page-body{max-width:1240px;margin:0 auto;padding:90px clamp(22px,5vw,48px) 70px}
.ab-page .abx-inner{margin-left:auto !important;margin-right:auto !important}
.ab-page .gh-content{max-width:820px;margin:0 auto}
.ab-page .gh-content>*+*{margin-top:22px}

/* listing */
.ab-listing{padding-top:170px}
nav.pagination{display:flex;justify-content:space-between;margin-top:56px;font-family:var(--mono);font-size:14px;color:var(--stone)}
nav.pagination a{color:var(--bronze-dark-bg)}

/* footer */
.ab-footer{background:var(--ink);border-top:1px solid var(--hair);padding:76px clamp(22px,5vw,48px) 42px}
.ab-footer-in{max-width:1280px;margin:0 auto}
.ab-footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;padding-bottom:54px;border-bottom:1px solid var(--hair)}
@media(max-width:800px){.ab-footer-grid{grid-template-columns:1fr 1fr}}
.ab-footer-brand img{height:28px;margin-bottom:20px}
.ab-footer-brand p{font-size:14.5px;color:rgba(246,244,240,.55);max-width:34ch}
.ab-footer-col h5{font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--stone);margin-bottom:18px}
.ab-footer-col ul{list-style:none}
.ab-footer-col li{margin-bottom:10px}
.ab-footer-col li a{font-size:15px;color:rgba(246,244,240,.8)}
.ab-footer-col li a:hover{color:var(--ivory)}
.ab-footer-legal{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;padding-top:26px;font-size:13.5px;color:rgba(246,244,240,.45)}
.ab-footer-legal a{color:rgba(246,244,240,.6)}

/* legacy .abx page content compatibility: give inline-built pages breathing room under fixed header */
.page-template .gh-content{padding-top:0}

/* Koenig editor card widths */
.kg-width-wide{position:relative;width:85vw;max-width:1100px;margin-left:50%;transform:translateX(-50%)}
.kg-width-full{position:relative;width:100vw;margin-left:50%;transform:translateX(-50%)}
.kg-width-full img{width:100%}

/* --- client logo marks: one scale system for the strip, the carousel and the clients page.
   Multipliers derived from measured ink mass so each mark reads at equal visual weight.
   starbucks / ea / mastercard / blackstone are hand-set: ink-mass equalisation under-sizes
   a compact icon and over-sizes a thin serif. --- */
.ab-lg{height:var(--ab-logo-h,28px);width:auto;max-width:none;flex:0 0 auto}
.ab-lg.logo-alliancebernstein{height:calc(var(--ab-logo-h,28px) * 0.95)}
.ab-lg.logo-amazon{height:calc(var(--ab-logo-h,28px) * 0.92)}
.ab-lg.logo-bank-of-america{height:calc(var(--ab-logo-h,28px) * 0.80)}
.ab-lg.logo-bcbs-nc{height:calc(var(--ab-logo-h,28px) * 1.42)}
.ab-lg.logo-blackstone{height:calc(var(--ab-logo-h,28px) * 1.50)}
.ab-lg.logo-capital-one{height:calc(var(--ab-logo-h,28px) * 1.36)}
.ab-lg.logo-cincinnati-insurance{height:calc(var(--ab-logo-h,28px) * 1.78)}
.ab-lg.logo-cisco{height:calc(var(--ab-logo-h,28px) * 1.54)}
.ab-lg.logo-comcast{height:calc(var(--ab-logo-h,28px) * 1.49)}
.ab-lg.logo-coned{height:calc(var(--ab-logo-h,28px) * 0.81)}
.ab-lg.logo-costco{height:calc(var(--ab-logo-h,28px) * 0.82)}
.ab-lg.logo-discover{height:calc(var(--ab-logo-h,28px) * 0.80)}
.ab-lg.logo-ea{height:calc(var(--ab-logo-h,28px) * 1.45)}
.ab-lg.logo-eaton{height:calc(var(--ab-logo-h,28px) * 0.80)}
.ab-lg.logo-emc{height:calc(var(--ab-logo-h,28px) * 1.03)}
.ab-lg.logo-ericsson{height:calc(var(--ab-logo-h,28px) * 1.86)}
.ab-lg.logo-fidelity{height:calc(var(--ab-logo-h,28px) * 0.80)}
.ab-lg.logo-guardian{height:calc(var(--ab-logo-h,28px) * 0.80)}
.ab-lg.logo-hartford{height:calc(var(--ab-logo-h,28px) * 2.00)}
.ab-lg.logo-hbo{height:calc(var(--ab-logo-h,28px) * 0.80)}
.ab-lg.logo-hydro{height:calc(var(--ab-logo-h,28px) * 1.13)}
.ab-lg.logo-intuit{height:calc(var(--ab-logo-h,28px) * 0.97)}
.ab-lg.logo-john-hancock{height:calc(var(--ab-logo-h,28px) * 1.62)}
.ab-lg.logo-macys{height:calc(var(--ab-logo-h,28px) * 1.57)}
.ab-lg.logo-mastercard{height:calc(var(--ab-logo-h,28px) * 1.32)}
.ab-lg.logo-michelin{height:calc(var(--ab-logo-h,28px) * 1.09)}
.ab-lg.logo-nasdaq{height:calc(var(--ab-logo-h,28px) * 0.95)}
.ab-lg.logo-nike{height:calc(var(--ab-logo-h,28px) * 1.26)}
.ab-lg.logo-ny-state-of-labor{height:calc(var(--ab-logo-h,28px) * 1.18)}
.ab-lg.logo-nyc{height:calc(var(--ab-logo-h,28px) * 0.80)}
.ab-lg.logo-prudential{height:calc(var(--ab-logo-h,28px) * 0.90)}
.ab-lg.logo-red-hat{height:calc(var(--ab-logo-h,28px) * 0.84)}
.ab-lg.logo-starbucks{height:calc(var(--ab-logo-h,28px) * 1.55)}
.ab-lg.logo-swift{height:calc(var(--ab-logo-h,28px) * 0.94)}
.ab-lg.logo-toyota{height:calc(var(--ab-logo-h,28px) * 0.80)}
.ab-lg.logo-uf{height:calc(var(--ab-logo-h,28px) * 0.85)}
.ab-lg.logo-university-of-chicago{height:calc(var(--ab-logo-h,28px) * 1.18)}
.ab-lg.logo-vanguard{height:calc(var(--ab-logo-h,28px) * 0.82)}
.ab-lg.logo-walmart{height:calc(var(--ab-logo-h,28px) * 0.94)}
.ab-lg.logo-world-bank{height:calc(var(--ab-logo-h,28px) * 1.09)}

/* --- clients carousel (v0.1.7) --- */
.ab-clients{border-top:1px solid var(--hair);padding-left:0;padding-right:0}
.ab-clients .ab-inner{padding:0 clamp(22px,5vw,48px)}
.ab-cc-eyebrow{text-align:center}
.ab-cc-wrap{margin-top:clamp(38px,4vw,54px);overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 72px,#000 calc(100% - 72px),transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 72px,#000 calc(100% - 72px),transparent 100%)}
.ab-cc-track{display:flex;width:max-content;animation:ab-cc-scroll 90s linear infinite}
.ab-cc-set{display:flex;align-items:center}
/* margin, not gap: each set is then exactly half the track, so -50% loops seamlessly */
.ab-cc-set .ab-lg{--ab-logo-h:34px;margin-right:64px;opacity:.82}
.ab-cc-wrap:hover .ab-cc-track,.ab-cc-wrap:focus-within .ab-cc-track{animation-play-state:paused}
@keyframes ab-cc-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (max-width:600px){
  .ab-cc-set .ab-lg{--ab-logo-h:28px;margin-right:40px}
  .ab-cc-track{animation-duration:68s}
  .ab-cc-wrap{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 32px,#000 calc(100% - 32px),transparent 100%);
    mask-image:linear-gradient(90deg,transparent 0,#000 32px,#000 calc(100% - 32px),transparent 100%)}
}
@media (prefers-reduced-motion:reduce){
  .ab-cc-track{animation:none;flex-wrap:wrap;justify-content:center;width:auto;row-gap:34px}
  .ab-cc-set{flex-wrap:wrap;justify-content:center;row-gap:34px}
  .ab-cc-set:nth-child(2){display:none}
  .ab-cc-wrap{-webkit-mask-image:none;mask-image:none;overflow:visible}
  .ab-cc-set .ab-lg{margin:0 32px}
}
