/* WallStreet Research, site styles (v3, Oct 19 2026: navy and crimson, moving logo wallpaper) */
:root{
  --paper:#FBFBFA;--mist:#EDF1F5;--ledger:#EDF1F5;--ink:#0E1726;--navy:#0B1A2C;--navy2:#10233A;--navy3:#163050;
  --ox:#9A1D24;--ox2:#7C151B;--oxl:#E8737A;--silver:#B7C0CB;--slate:#526072;--line:#DCE2E9;--fog:#C4CEDA;--fog2:#8E9CAE;
  --r:6px;--hh:64px;--ease:cubic-bezier(.22,.61,.36,1);--spring:cubic-bezier(.2,.9,.25,1.12);
  --serif:"Source Serif 4",Georgia,"Times New Roman",serif;--sans:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;--mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  --sh:0 1px 2px rgba(14,23,38,.05),0 10px 28px rgba(14,23,38,.07);--sh2:0 2px 6px rgba(14,23,38,.07),0 24px 52px rgba(14,23,38,.14);
  --tw:2080px;--th:675px;--wt:80s;
}
@media(min-width:1100px){:root{--hh:80px}}
@media(max-width:759px){:root{--tw:1290px;--th:419px;--wt:60s}}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--hh) + 20px)}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.65 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
@media(min-width:1024px){body{font-size:18px}}
@media(max-width:1099px){body{padding-bottom:calc(76px + env(safe-area-inset-bottom))}}
main{display:block;overflow-x:clip}
img{max-width:100%;height:auto;display:block}
a{color:var(--ox);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--ox2)}
:focus-visible{outline:2px solid var(--ox);outline-offset:3px}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;line-height:1.15;margin:0 0 .5em;letter-spacing:-.012em;color:inherit}
h1{font-size:clamp(2.2rem,1.3rem + 3.5vw,4rem);line-height:1.06;letter-spacing:-.02em}
h2{font-size:clamp(1.75rem,1.2rem + 1.9vw,2.65rem);line-height:1.12}
h3{font-size:1.28rem;line-height:1.25}
p{margin:0 0 1em;max-width:68ch}
ul{margin:0;padding:0;list-style:none}
.wrap{width:100%;max-width:1240px;margin:0 auto;padding:0 16px}
@media(min-width:760px){.wrap{padding:0 32px}}
.sec{position:relative;padding:72px 0}
@media(min-width:1024px){.sec{padding:112px 0}}
.sec.tight{padding-top:24px}
.ledger{background:rgba(232,238,245,.74);border-top:1px solid rgba(220,226,233,.8);border-bottom:1px solid rgba(220,226,233,.8)}
.label{display:inline-flex;align-items:center;gap:12px;font:500 .74rem/1.4 var(--mono);letter-spacing:.15em;text-transform:uppercase;color:var(--ox);margin:0 0 16px}
.label::before{content:"";width:24px;height:1px;background:currentColor}
.lead{font-size:1.1em;color:var(--slate);max-width:58ch}
.muted{color:var(--slate)}
.mono{font-family:var(--mono);font-weight:500}
.sec-head{max-width:780px;margin-bottom:44px}
.sec-head p{color:var(--slate)}
.center{text-align:center;margin-inline:auto}
.center p{margin-inline:auto}
.rule{border:0;border-top:1px solid var(--line);margin:0}

/* the moving logo wallpaper: every company WSR has covered, drifting slowly behind the page */
.wall{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.wall>i{position:absolute;left:0;top:0;width:100%;height:calc(100% + var(--th));background:currentColor;-webkit-mask:url(/wsr/wp-content/themes/wsr-2025/assets/img/logo-wall.webp) 0 0/var(--tw) var(--th) repeat;mask:url(/wsr/wp-content/themes/wsr-2025/assets/img/logo-wall.webp) 0 0/var(--tw) var(--th) repeat;will-change:transform;animation:wall var(--wt) linear infinite}
@keyframes wall{to{transform:translate3d(0,calc(-1 * var(--th)),0)}}
.wall-page{position:fixed;color:#1B2B44;opacity:.075}
.dk .wall{color:#fff;opacity:.05}
.wall-fade{-webkit-mask-image:linear-gradient(180deg,transparent,#000 22%,#000 78%,transparent);mask-image:linear-gradient(180deg,transparent,#000 22%,#000 78%,transparent)}

/* dark bands */
.dk{position:relative;isolation:isolate;background:var(--navy);color:#fff}
.dk::before{content:"";position:absolute;inset:0;z-index:-2;background:radial-gradient(70% 80% at 82% 18%,rgba(32,64,104,.62),transparent 72%),radial-gradient(60% 70% at 0% 100%,rgba(122,24,32,.16),transparent 70%)}
.dk h1,.dk h2,.dk h3{color:#fff}
.dk p,.dk .lead,.dk .sec-head p{color:var(--fog)}
.dk .label{color:var(--oxl)}
.dk .meta{color:var(--fog2)}
.dk .tick{background:transparent;border-color:rgba(255,255,255,.28);color:#fff}
.dk a:not(.btn){color:#fff}
.dk .tlink{color:#fff}
.dk .tlink svg{color:var(--oxl)}
.dk .fee{color:var(--fog2);border-top-color:rgba(255,255,255,.14)}
.dk .fee a{color:#fff}
.dk :focus-visible{outline-color:#fff}

/* buttons and links */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:12px 24px;border-radius:var(--r);border:1px solid transparent;font:600 1rem/1.2 var(--sans);text-decoration:none;cursor:pointer;white-space:nowrap;transition:background .25s,color .25s,border-color .25s,box-shadow .3s,translate .3s var(--ease)}
.btn-p{background:var(--ox);color:#fff}
.btn-p:hover{background:var(--ox2);color:#fff;box-shadow:0 10px 24px rgba(154,29,36,.28);translate:0 -1px}
.btn-g{background:transparent;color:var(--ink);border-color:var(--silver)}
.btn-g:hover{border-color:var(--ink);color:var(--ink)}
.on-ink .btn-g,.dk .btn-g,.mbar .btn-g,.mnav .btn-g{color:#fff;border-color:rgba(255,255,255,.38)}
.on-ink .btn-g:hover,.dk .btn-g:hover,.mbar .btn-g:hover,.mnav .btn-g:hover{border-color:#fff;color:#fff;background:rgba(255,255,255,.06)}
.dk .btn-p:hover{box-shadow:0 12px 30px rgba(0,0,0,.35)}
.btn svg{width:18px;height:18px}
.btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.tlink{display:inline-flex;align-items:center;gap:7px;min-height:44px;font-weight:600;color:var(--ox);text-decoration:none}
.tlink:hover{text-decoration:underline}
.tlink svg{width:15px;height:15px;transition:translate .3s var(--ease)}
.tlink:hover svg{translate:3px 0}

/* header, navy on every page */
.hdr{position:sticky;top:0;z-index:50;height:var(--hh);background:rgba(11,26,44,.94);backdrop-filter:saturate(1.3) blur(12px);-webkit-backdrop-filter:saturate(1.3) blur(12px);border-bottom:1px solid rgba(255,255,255,.08);color:#fff;transition:box-shadow .35s,background .35s}
.hdr.scrolled{background:rgba(11,26,44,.97);box-shadow:0 10px 30px rgba(6,12,22,.28)}
.hdr::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--ox);transform-origin:left;transform:scaleX(var(--sp,0));pointer-events:none}
.hdr .wrap{height:100%;display:flex;align-items:center;gap:26px}
.brand{display:flex;align-items:center;gap:12px;margin-right:auto;min-height:44px;color:#fff;text-decoration:none}
.brand:hover{color:#fff}
.brand img{height:40px;width:auto}
.brand b{display:block;font:600 1.12rem/1.1 var(--serif);letter-spacing:-.005em}
.brand small{display:none;margin-top:5px;font:500 .6rem/1.3 var(--mono);letter-spacing:.13em;text-transform:uppercase;color:var(--fog2)}
.brand .tm{display:none}
.nav,.hdr-tel,.hdr-cta{display:none}
.nav a{position:relative;padding:12px 0;color:#D6DEE7;font-weight:600;font-size:.94rem;text-decoration:none;transition:color .25s}
.nav a:hover,.nav a[aria-current]{color:#fff}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:6px;height:2px;background:var(--oxl);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.nav a:hover::after,.nav a[aria-current]::after{transform:scaleX(1)}
.hdr-tel{align-items:center;gap:8px;font:500 .9rem var(--mono);color:#fff;text-decoration:none;white-space:nowrap;min-height:44px}
.hdr-tel:hover{color:#fff}
.hdr-tel svg{width:16px;height:16px;color:var(--oxl)}
.hdr-cta{min-height:44px;padding:10px 20px}
.menu-btn{display:inline-flex;align-items:center;gap:10px;min-height:44px;min-width:44px;padding:0 12px;border:1px solid rgba(255,255,255,.34);border-radius:var(--r);background:transparent;font:600 .9rem var(--sans);color:#fff;cursor:pointer}
.menu-btn i{display:block;width:18px;height:10px;border-top:2px solid currentColor;border-bottom:2px solid currentColor}
@media(min-width:1100px){
  .brand img{height:44px}.brand b{font-size:1.28rem}.brand small{display:block}.brand .tm{display:inline}
  .nav{display:flex;gap:26px;align-items:center}.hdr-cta{display:inline-flex}.menu-btn{display:none}
}
@media(min-width:1320px){.hdr-tel{display:inline-flex}}
.mnav{position:fixed;inset:0;z-index:70;display:flex;flex-direction:column;background:var(--navy);color:#fff;opacity:0;visibility:hidden;transition:opacity .22s ease,visibility 0s .22s;overflow-y:auto;overscroll-behavior:contain}
.mnav.open{opacity:1;visibility:visible;transition:opacity .22s ease,visibility 0s}
.mnav-top{display:flex;align-items:center;justify-content:space-between;height:var(--hh);padding:0 16px;border-bottom:1px solid rgba(255,255,255,.1)}
.mnav nav{padding:20px 16px;display:flex;flex-direction:column}
.mnav nav a{display:flex;justify-content:space-between;align-items:center;min-height:60px;border-bottom:1px solid rgba(255,255,255,.1);font:600 1.6rem/1.2 var(--serif);color:#fff;text-decoration:none}
.mnav nav a svg{color:var(--oxl)}
.mnav nav a[aria-current]{color:var(--oxl)}
.mnav-foot{padding:8px 16px 40px;display:grid;gap:12px}
.mnav-foot p{font-size:.9rem;color:var(--fog);margin:8px 0 0}
.mbar{position:fixed;left:0;right:0;bottom:0;z-index:45;display:grid;grid-template-columns:1fr 1.5fr;gap:10px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:rgba(11,26,44,.96);border-top:1px solid rgba(255,255,255,.1);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.mbar .btn{min-height:52px;padding:10px 14px}
@media(min-width:1100px){.mbar{display:none}}

/* heroes */
.hero{padding:40px 0 64px}
@media(min-width:900px){.hero{padding:72px 0 104px}}
.hero.dk{padding:48px 0 64px;overflow:hidden}
@media(min-width:900px){.hero.dk{padding:88px 0 104px}}
.hero.short{padding:44px 0 52px}
@media(min-width:900px){.hero.short{padding:72px 0 76px}}
.hero-grid{display:grid;gap:44px;align-items:center}
@media(min-width:900px){.hero-grid{grid-template-columns:1.08fr .92fr;gap:72px}}
.hero h1{margin-bottom:22px;max-width:16ch}
.hero.wide h1{max-width:20ch}
.hero.dk .lead{color:#CDD6E1}
@media(max-width:559px){.hero.dk .btns .btn{flex:1 1 100%}}
.trust{display:grid;gap:10px;margin-top:38px;padding-top:22px;border-top:1px solid var(--line)}
.trust span{padding-left:14px;border-left:1px solid var(--silver);font-size:.92rem;font-weight:600;line-height:1.4}
.dk .trust{border-top-color:rgba(255,255,255,.14)}
.dk .trust span{border-left-color:rgba(255,255,255,.22);color:#E4E9EF}
@media(min-width:620px){.trust{grid-template-columns:repeat(3,1fr);gap:0}.trust span{padding:2px 18px}.trust span:first-child{padding-left:0;border-left:0}}
/* Oct 27 2026 call: the trust row is a stats row, Alan wants the 200,000 subscribers to stand out */
.trust.stats span{font-weight:500;font-size:.88rem;line-height:1.35}
.trust.stats span b{display:block;font:600 1.55rem/1.05 var(--serif);letter-spacing:-.01em;margin-bottom:6px;color:var(--ink)}
.dk .trust.stats span b{color:#fff}
@media(min-width:620px){.trust.stats{gap:0}.trust.stats span{padding:4px 22px 4px 18px}.trust.stats span:first-child{padding-left:0}}
/* Oct 27 2026 call: Global Capital Network partner band on Services */
#gcn .sec-head{max-width:760px}#gcn .sec-head .lead{color:#D5DCE4}#gcn .btns{margin-top:28px}
.facts{display:flex;flex-wrap:wrap;gap:16px 0;margin-top:36px;padding-top:22px;border-top:1px solid var(--line)}
.facts div{padding:0 24px;border-left:1px solid var(--silver)}
.facts div:first-child{padding-left:0;border-left:0}
.facts b{display:block;font:600 1.7rem/1.1 var(--serif)}
.facts span{font:500 .7rem/1.4 var(--mono);letter-spacing:.13em;text-transform:uppercase;color:var(--slate)}
.dk .facts{border-top-color:rgba(255,255,255,.14)}
.dk .facts div{border-left-color:rgba(255,255,255,.22)}
.dk .facts b{color:#fff}
.dk .facts span{color:var(--fog2)}
@media(max-width:559px){.facts{display:grid;grid-template-columns:1fr 1fr;gap:18px 0}.facts div:nth-child(3){grid-column:1 / -1;padding-left:0;border-left:0}}
.hero-media{position:relative;width:100%;max-width:540px;margin-left:auto}
.dateline{flex-wrap:wrap;row-gap:6px}
.dateline span{display:inline-flex;align-items:center;gap:12px}
.dateline span+span::before{content:"";width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.55}
@media(min-width:1100px){.hero.home-hero .hx .dateline{max-width:none}}
/* Oct 27 2026: Alan asked for the home hero city names to be easier to read; near white text, crimson rule kept */
.dk .dateline{color:#F2F5F9}.dk .dateline::before{background:var(--oxl)}

/* frames and photos */
.frame{position:relative;margin:0;padding:8px;background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh)}
.dk .frame{border-color:rgba(255,255,255,.18);box-shadow:0 2px 6px rgba(0,0,0,.3),0 34px 70px -18px rgba(0,0,0,.65)}
.ph{position:relative;overflow:hidden;border-radius:3px;background:var(--mist)}
.ph>img{width:100%;height:100%;object-fit:cover;transition:scale .8s var(--ease)}
[data-px]>img{transform:translate3d(0,var(--py,0px),0) scale(1.1);will-change:transform}
a:hover .ph>img,.zoom:hover .ph>img{scale:1.04}
.r45{aspect-ratio:4/5}.r32{aspect-ratio:3/2}.r169{aspect-ratio:16/9}.r43{aspect-ratio:4/3}.r34{aspect-ratio:3/4}
.nat{display:block;max-width:100%}
.nat img{width:auto;max-width:100%}
figcaption,.cap{margin-top:12px;font-size:.86rem;line-height:1.55;color:var(--slate);max-width:48ch}
.frame figcaption{padding:2px 4px 2px}
.dk figcaption{color:var(--slate)}

/* home hero: the research desk */
.hx{display:grid;gap:40px;align-items:center}
@media(min-width:960px){.hx{grid-template-columns:1.06fr .94fr;gap:56px;min-height:min(640px,calc(100svh - var(--hh) - 170px))}}
.home-hero h1{font-size:clamp(2.4rem,1.3rem + 3.1vw,3.8rem);line-height:1.05;max-width:19ch;margin-bottom:24px}
@media(min-width:960px){.hero.home-hero{padding:56px 0 72px}}
.home-hero .lead{max-width:54ch}
.desk{position:relative;width:100%;max-width:560px;margin:0 auto;--mx:0;--my:0}
.sheets{position:relative;height:300px}
@media(min-width:400px){.sheets{height:330px}}
@media(min-width:560px){.sheets{height:470px}}
@media(min-width:960px){.desk{margin:0 0 0 auto}.sheets{height:540px}}
.sheet{position:absolute;display:block;background:#fff;border-radius:2px;box-shadow:0 1px 2px rgba(0,0,0,.25),0 26px 56px -14px rgba(0,0,0,.62);transform:rotate(var(--r));translate:calc(var(--mx) * var(--dp) * 1px) calc(var(--my) * var(--dp) * 1px);transition:transform .7s var(--ease),translate .9s var(--ease),box-shadow .5s var(--ease)}
.sheet img{width:100%;height:auto;border-radius:2px}
.sheet::after{content:"";position:absolute;inset:0;border-radius:2px;background:linear-gradient(115deg,rgba(255,255,255,.0) 40%,rgba(255,255,255,.14) 52%,rgba(255,255,255,0) 64%);pointer-events:none}
.sheet.s1{z-index:3;width:57%;left:40%;top:1%;--r:3.5deg;--dp:16}
.sheet.s2{z-index:2;width:51%;left:19%;top:0;--r:-3deg;--dp:10}
.sheet.s3{z-index:1;width:47%;left:1%;top:8%;--r:-9deg;--dp:6}
@media(hover:hover){
  .sheet:hover{transform:rotate(calc(var(--r) * .35)) translate3d(0,-10px,0);box-shadow:0 0 0 1px rgba(255,255,255,.55),0 0 46px rgba(255,255,255,.14),0 36px 70px -16px rgba(0,0,0,.7);z-index:4}
}
html.js .desk[data-rv]{opacity:1;transform:none}
html.js .desk .sheet{opacity:0;transform:translate3d(0,90px,0) rotate(calc(var(--r) * 2.6))}
html.js .desk.in .sheet{opacity:1;transform:rotate(var(--r));transition:opacity .9s var(--ease),transform 1.25s var(--spring),translate .9s var(--ease),box-shadow .5s var(--ease)}
html.js .desk.in .s3{transition-delay:.15s}
html.js .desk.in .s2{transition-delay:.3s}
html.js .desk.in .s1{transition-delay:.45s}
html.js .desk.in .sheet:hover,html.js .desk.settled .sheet{transition-delay:0s}
.desk .latest{position:relative;z-index:5;max-width:none;margin:-34px 0 0}
@media(min-width:560px){.desk .latest{position:absolute;left:0;bottom:0;width:min(310px,62%);margin:0}}
html.js .desk .latest{opacity:0;transform:translate3d(-24px,0,0);transition:opacity .8s var(--ease) .8s,transform .9s var(--ease) .8s}
html.js .desk.in .latest{opacity:1;transform:none}

/* latest coverage card */
.latest{position:relative;z-index:2;max-width:350px;margin:-64px 0 0 14px;padding:18px 20px 12px;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 2px 6px rgba(0,0,0,.18),0 30px 60px -18px rgba(0,0,0,.6)}
.latest .label{margin-bottom:12px;font-size:.66rem;color:var(--ox)}
.latest .row{display:flex;gap:14px;align-items:center}
.latest .lg{flex:none;width:64px;height:64px;display:grid;place-items:center;padding:6px;border:1px solid var(--line);border-radius:4px;background:#fff}
.latest .lg img{max-width:100%;max-height:100%;width:auto;height:auto}
.latest b{display:block;font:600 1.05rem/1.25 var(--serif);color:var(--ink)}
.latest .meta{margin:12px 0 2px;color:var(--slate)}
.dk .latest .tlink,.dk .latest a:not(.btn){color:var(--ox)}
.dk .latest .tlink svg{color:var(--ox)}

/* research hero: the library shelf, framed with clean edges */
.shelf{--g:16px;position:relative;height:420px;padding:8px;background:#fff;border:1px solid rgba(255,255,255,.18);border-radius:var(--r);box-shadow:0 2px 6px rgba(0,0,0,.3),0 34px 70px -18px rgba(0,0,0,.65)}
@media(min-width:900px){.shelf{height:560px}}
.shelf-clip{position:relative;height:100%;overflow:hidden;border-radius:3px;background:var(--mist)}
.shelf-in{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--g);height:100%;padding:0 12px;transform:rotate(-7deg) scale(1.16);transform-origin:50% 50%}
.shelf .col{display:flex;flex-direction:column;gap:var(--g);animation:shelf var(--sd,60s) linear infinite;will-change:transform}
.shelf .col:nth-child(2){--sd:72s;animation-direction:reverse}
.shelf .col:nth-child(3){--sd:66s}
.shelf img{width:100%;height:auto;border-radius:2px;box-shadow:0 1px 2px rgba(0,0,0,.3),0 18px 34px -12px rgba(0,0,0,.4)}
@keyframes shelf{to{transform:translate3d(0,calc(-50% - var(--g) / 2),0)}}
@media(max-width:899px){.shelf{--g:12px;height:330px}.shelf-in{transform:rotate(-6deg) scale(1.1)}}

/* ticker tape */
.tape{position:relative;overflow:hidden;background:var(--navy2);color:#fff;border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.06)}
.tape-track{display:flex;width:max-content;animation:tape 70s linear infinite}
.tape:hover .tape-track{animation-play-state:paused}
.tape-set{display:flex}
.tape-item{display:inline-flex;align-items:baseline;gap:9px;padding:17px 28px;border-right:1px solid rgba(255,255,255,.1);font:500 .95rem var(--mono);white-space:nowrap}
.tape-item small{font-size:.64rem;letter-spacing:.15em;text-transform:uppercase;color:var(--fog2)}
@keyframes tape{to{transform:translate3d(-50%,0,0)}}
.tape-tag{position:absolute;left:0;top:0;bottom:0;z-index:2;display:none;align-items:center;padding:0 48px 0 32px;background:linear-gradient(90deg,var(--navy2) calc(100% - 44px),rgba(16,35,58,0));font:500 .66rem/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--oxl)}
@media(min-width:1100px){.tape-tag{display:inline-flex}.tape .tape-mask{padding-left:190px}}

/* cards */
.card{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);transition:translate .35s var(--ease),box-shadow .35s var(--ease),border-color .35s}
.card:hover{translate:0 -4px;box-shadow:var(--sh2),0 0 0 4px rgba(154,29,36,.06);border-color:var(--silver)}
.g2,.g3{display:grid;gap:20px}
@media(min-width:700px){.g2,.g3{grid-template-columns:repeat(2,1fr);gap:24px}}
@media(min-width:1024px){.g3{grid-template-columns:repeat(3,1fr);gap:28px}}
.tick{display:inline-block;padding:3px 8px;border:1px solid var(--silver);border-radius:4px;background:var(--paper);font:500 .76rem/1.4 var(--mono);color:var(--ink);letter-spacing:.02em}
.meta{margin:10px 0 12px;font:500 .78rem/1.55 var(--mono);color:var(--slate);letter-spacing:.01em}
.badge{display:inline-block;margin-bottom:14px;padding:6px 10px;border:1px solid rgba(154,29,36,.25);border-radius:4px;background:rgba(154,29,36,.06);color:var(--ox);font-size:.84rem;font-weight:600;line-height:1.4}
.acts{display:flex;flex-wrap:wrap;gap:4px 20px;margin-top:auto;padding-top:10px;border-top:1px solid var(--line)}

/* products */
.prod{display:flex;flex-direction:column;overflow:hidden}
.cover{display:grid;place-items:center;aspect-ratio:4/3;padding:24px;background:linear-gradient(180deg,#fff,#F3F6F9);border-bottom:1px solid var(--line);overflow:hidden}
.cover img{width:auto;max-height:100%;object-fit:contain;transition:scale .7s var(--ease),rotate .7s var(--ease);box-shadow:0 6px 18px rgba(14,23,38,.14)}
.cover:hover img{scale:1.05;rotate:-1.5deg}
.prod .pb{display:flex;flex-direction:column;flex:1;padding:24px}
.tag{font:600 1.02rem/1.4 var(--serif);color:var(--ox);margin-bottom:10px}
.prod p{color:var(--slate);font-size:.96rem}

/* featured coverage */
.feat{display:grid;overflow:hidden}
@media(min-width:760px){.feat{grid-template-columns:260px 1fr}}
.feat .lt{display:grid;place-items:center;min-height:180px;padding:28px;background:#fff;border-bottom:1px solid var(--line)}
@media(min-width:760px){.feat .lt{border-bottom:0;border-right:1px solid var(--line)}}
.feat .lt img{max-height:110px;width:auto;max-width:100%}
.feat .fb{display:flex;flex-direction:column;padding:26px 28px}
.feat h3{font-size:1.45rem;margin:12px 0 6px}
.feat p{color:var(--slate);font-size:.98rem}
.stack{display:grid;gap:24px}
.feat .peek{display:none}
@media(min-width:1024px){
  .feat{grid-template-columns:260px 1fr 190px}
  .feat .peek{display:block;position:relative;overflow:hidden;border-left:1px solid var(--line);background:linear-gradient(180deg,#F3F6F9,#E6ECF2)}
  .feat .peek img{position:absolute;left:50%;top:26px;width:150px;margin-left:-75px;box-shadow:0 2px 4px rgba(14,23,38,.12),0 16px 30px -10px rgba(14,23,38,.35);transform:rotate(3deg) translate3d(0,26px,0);transition:transform .7s var(--ease)}
  .feat:hover .peek img{transform:rotate(0) translate3d(0,0,0)}
}

/* case study tiles */
.cs-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
@media(min-width:760px){.cs-grid{grid-template-columns:repeat(3,1fr);gap:28px}}
.cs{display:flex;flex-direction:column}
.cs .tile{display:grid;place-items:center;padding:14px;background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);overflow:hidden;transition:box-shadow .4s var(--ease),translate .4s var(--ease)}
.cs .tile img{width:100%;max-width:239px;aspect-ratio:239/160;object-fit:contain;transition:scale .7s var(--ease)}
.cs:hover .tile img{scale:1.05}
.cs .ms{margin-top:14px;font:600 1rem/1.4 var(--serif);color:var(--ink)}
.cs .tk{font:500 .82rem var(--mono);color:var(--ink);letter-spacing:.04em}
.dk .cs .tile{border-color:transparent;box-shadow:0 2px 6px rgba(0,0,0,.3),0 24px 50px -16px rgba(0,0,0,.6)}
.dk .cs:hover .tile{translate:0 -4px;box-shadow:0 0 0 1px rgba(255,255,255,.5),0 0 40px rgba(255,255,255,.12),0 30px 60px -16px rgba(0,0,0,.7)}
.dk .cs .ms{color:#fff}
.dk .cs .tk{color:#E4E9EF}
.fee{margin-top:36px;padding-top:18px;border-top:1px solid var(--line);font-size:.88rem;color:var(--slate);max-width:none}
.fee a{font-weight:600}

/* skyline and panorama bands */
.sky{position:relative;height:220px;overflow:hidden;background:var(--navy)}
.sky img{position:absolute;left:0;top:-15%;width:100%;height:130%;object-fit:cover;transform:translate3d(0,var(--py,0px),0);will-change:transform}
@media(min-width:760px){.sky{height:360px}}
.pano{position:relative;height:150px;overflow:hidden;background:var(--navy)}
.pano img{position:absolute;left:0;top:-20%;width:100%;height:140%;object-fit:cover;object-position:50% 70%;transform:translate3d(0,var(--py,0px),0);will-change:transform}
@media(min-width:760px){.pano{height:210px}}

/* split */
.split{display:grid;gap:44px;align-items:center}
@media(min-width:900px){.split{grid-template-columns:auto 1fr;gap:80px}.split.rev>:first-child{order:2}}
.split .media{justify-self:center}
.split h2{max-width:18ch}

/* bands */
.report{position:relative;background:var(--ox);color:#fff;overflow:hidden;isolation:isolate}
.report::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(60% 120% at 100% 0%,rgba(255,255,255,.12),transparent 60%),linear-gradient(90deg,rgba(0,0,0,.1),transparent)}
.report .wrap{display:grid;gap:24px;padding-top:56px;padding-bottom:56px;align-items:center}
@media(min-width:900px){.report .wrap{grid-template-columns:1fr auto;gap:48px}}
.report h2{margin-bottom:8px;color:#fff}
.report p{margin:0;color:#F6DCDE}
.report .btn-p{background:#fff;color:var(--ox)}
.report .btn-p:hover{background:#F7EDEE;color:var(--ox2);box-shadow:0 12px 28px rgba(0,0,0,.25)}
.closing{overflow:hidden}
.closing .wrap{padding-top:96px;padding-bottom:96px}
.closing h2{max-width:20ch}
.closing p{color:var(--fog)}

/* footer */
.ftr{background:#08131F;color:#C4CCD6;padding:64px 0 36px;border-top:1px solid rgba(255,255,255,.08);font-size:.92rem}
.ftr a{color:#fff;text-decoration:none}
.ftr a:hover{color:#fff;text-decoration:underline}
.ftr-grid{display:grid;gap:40px}
@media(min-width:900px){.ftr-grid{grid-template-columns:1.5fr 1fr 1.2fr}}
.ftr-brand{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.ptile{display:grid;place-items:center;width:56px;height:56px;background:transparent;border-radius:6px}
.ptile img{height:46px;width:auto}
.ftr-brand b{display:block;font:600 1.2rem/1.2 var(--serif);color:#fff}
.ftr-brand small{display:block;font:500 .62rem/1.4 var(--mono);letter-spacing:.13em;text-transform:uppercase;color:var(--fog2);margin-top:4px}
.ftr h4{font:500 .7rem/1.4 var(--mono);letter-spacing:.15em;text-transform:uppercase;color:var(--fog2);margin:0 0 14px}
.ftr li{margin:0 0 6px}
.ftr li a{display:inline-flex;align-items:center;min-height:32px}
.ftr address{font-style:normal;line-height:1.7}
.ftr-legal{margin-top:48px;padding-top:24px;border-top:1px solid rgba(255,255,255,.12)}
.ftr-legal p{max-width:none;font-size:.82rem;line-height:1.6;color:#A3ADB9}
.ftr-small{display:flex;flex-wrap:wrap;gap:6px 24px;font:500 .72rem var(--mono);letter-spacing:.04em;color:#8592A1}

/* research toolbar and cards */
.tb{z-index:30;background:rgba(251,251,250,.97);border-bottom:1px solid var(--line);border-top:1px solid var(--line);padding:14px 0}
@media(min-width:760px){.tb{position:sticky;top:var(--hh);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}}
.tb .wrap{display:grid;gap:10px}
@media(min-width:1024px){.tb .wrap{grid-template-columns:minmax(240px,1fr) auto;align-items:center;gap:12px 24px}.tb .chips-wrap{grid-column:1 / -1;display:flex;gap:28px;flex-wrap:wrap}}
.search{position:relative}
.search svg{position:absolute;left:14px;top:50%;width:18px;height:18px;margin-top:-9px;color:var(--slate)}
input,select,textarea{font:400 16px/1.4 var(--sans);color:var(--ink)}
.search input{width:100%;min-height:48px;padding:12px 14px 12px 42px;border:1px solid var(--silver);border-radius:var(--r);background:#fff}
.chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;margin:0 -16px;padding:0 16px}
.chips::-webkit-scrollbar{display:none}
@media(min-width:760px){.chips{margin:0;padding:0;flex-wrap:wrap;overflow:visible}}
.chip{flex:none;min-height:44px;padding:8px 16px;border:1px solid var(--silver);border-radius:999px;background:#fff;color:var(--ink);font:600 .86rem var(--sans);cursor:pointer;white-space:nowrap;transition:background .25s,border-color .25s,color .25s}
.chip:hover{border-color:var(--ink)}
.chip[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:#fff}
.tb-end{display:flex;align-items:center;justify-content:space-between;gap:16px}
.tb-end select{min-height:44px;padding:8px 36px 8px 12px;border:1px solid var(--silver);border-radius:var(--r);background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%230E1726' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 12px center;appearance:none;-webkit-appearance:none;font-size:15px}
.count{font:500 .78rem var(--mono);color:var(--slate);letter-spacing:.04em;white-space:nowrap}
.lib{display:flex;flex-direction:column;overflow:hidden}
.lib .lt{position:relative;display:grid;place-items:center;aspect-ratio:16/7;padding:18px 26px;background:#fff;border-bottom:1px solid var(--line);overflow:hidden}
.lib .lt img{max-height:84px;max-width:82%;width:auto;height:auto;transition:scale .6s var(--ease),opacity .5s var(--ease)}
.lib .lt.sym{background:var(--mist);font:600 2.3rem/1 var(--serif);letter-spacing:.03em;color:var(--ink)}
.lib .lt .pg{position:absolute;right:18px;top:100%;width:96px;max-width:none;max-height:none;box-shadow:0 2px 4px rgba(14,23,38,.12),0 14px 28px -8px rgba(14,23,38,.35);transform:rotate(4deg);transition:top .6s var(--ease),transform .6s var(--ease)}
@media(hover:hover){.lib:hover .lt .pg{top:22px;transform:rotate(2deg)}.lib:hover .lt img:not(.pg){opacity:.25;scale:.96}}
.lib .lbody{display:flex;flex-direction:column;flex:1;padding:20px 22px 14px}
.lib h3{font-size:1.16rem;margin:0 0 10px}
.lib .meta{margin:10px 0}
.blurb{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:14px;font-size:.95rem;color:var(--slate)}
.empty{padding:64px 16px;text-align:center;border:1px dashed var(--silver);border-radius:var(--r);background:#fff}
.empty h3{margin-bottom:16px}

/* services */
.prow{display:grid;gap:32px;align-items:center;padding:44px 0;border-top:1px solid var(--line)}
.prow:first-child{border-top:0;padding-top:0}
@media(min-width:900px){.prow{grid-template-columns:1fr 1.1fr;gap:72px}.prow:nth-child(even) .pc{order:2}}
.prow .pc{display:grid;place-items:center;padding:36px;background:linear-gradient(180deg,#fff,#F1F5F9);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh)}
.prow .pc img{box-shadow:0 8px 24px rgba(14,23,38,.16);transition:rotate .7s var(--ease),scale .7s var(--ease)}
.prow:hover .pc img{rotate:-1.5deg;scale:1.03}
.checks{display:grid;gap:12px 48px}
@media(min-width:760px){.checks{grid-template-columns:1fr 1fr}}
.checks li{display:flex;gap:14px;align-items:flex-start;padding:14px 0;border-bottom:1px solid var(--line)}
.checks svg{flex:none;width:26px;height:26px;color:var(--ox);margin-top:1px}
.stages{position:relative;display:grid;gap:34px;padding-left:64px}
.stages .track,.stages .fill{position:absolute;left:21px;top:8px;bottom:8px;width:2px;background:var(--line)}
.stages .fill{background:var(--ox);transform-origin:top;transform:scaleY(var(--p,0))}
.stage{position:relative}
.stage .num{position:absolute;left:-64px;top:-4px;display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--ox);border-radius:50%;background:var(--paper);font:600 1.1rem var(--serif);color:var(--ox)}
.stage h3{margin-bottom:6px}
.stage p{color:var(--slate);font-size:.96rem}
@media(min-width:900px){
  .stages{grid-template-columns:repeat(4,1fr);gap:32px;padding:68px 0 0}
  .stages .track,.stages .fill{left:22px;right:22px;top:21px;bottom:auto;width:auto;height:2px}
  .stages .fill{transform-origin:left;transform:scaleX(var(--p,0))}
  .stage .num{left:0;top:-68px}
}

/* track record */
.csc{display:flex;flex-direction:column;overflow:hidden}
.csc .tile{display:grid;place-items:center;padding:16px;background:#fff;border-bottom:1px solid var(--line)}
.csc .tile img{width:100%;max-width:239px;aspect-ratio:239/160;object-fit:contain}
.csc .cb{display:flex;flex-direction:column;flex:1;padding:20px 22px 12px}
.csc h3{font-size:1.15rem;margin:0 0 6px}
.csc .ms{font:600 1.12rem/1.4 var(--serif);color:var(--ox);margin:10px 0 14px}
html.js [data-rv="flipl"]{transform:perspective(900px) rotateY(-16deg) translate3d(-28px,0,0)}
html.js [data-rv="flipr"]{transform:perspective(900px) rotateY(16deg) translate3d(28px,0,0)}
.ledg{border-top:1px solid var(--ink)}
.ledg .lr{display:grid;gap:4px;padding:16px 0;border-bottom:1px solid var(--line)}
.ledg .lh{display:none;font:500 .7rem var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--slate)}
.ledg .co{font:600 1.05rem/1.35 var(--serif)}
.ledg .tk{font:500 .82rem var(--mono);color:var(--slate)}
.ledg .om{font-size:.95rem}
.ledg .cv a{display:inline-flex;align-items:center;min-height:40px;font-weight:600;text-decoration:none}
.ledg .cv a:hover{text-decoration:underline}
@media(min-width:900px){
  .ledg .lr{grid-template-columns:2fr 1.1fr 2.2fr 1fr;gap:24px;align-items:center;padding:14px 0}
  .ledg .lh{display:grid}
  .ledg .lr:hover:not(.lh){background:rgba(237,241,245,.9)}
}
.panel{padding:28px;background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh)}
.panel p{font-size:.94rem;color:var(--slate)}
.panel p:last-child{margin:0}

/* events */
.vid{display:flex;flex-direction:column;width:100%;padding:0;overflow:hidden;text-align:left;font:inherit;color:inherit;cursor:pointer}
.vid .ph{border-radius:0;display:block}
.play{position:absolute;left:50%;top:50%;display:grid;place-items:center;width:64px;height:64px;margin:-32px 0 0 -32px;border-radius:50%;background:rgba(251,251,250,.95);box-shadow:0 8px 24px rgba(0,0,0,.25);transition:scale .35s var(--ease),background .35s}
.play svg{width:22px;height:22px;margin-left:4px;color:var(--ox)}
.vid:hover .play{scale:1.1;background:#fff}
.vid .vb{display:block;padding:18px 20px 20px}
.vid .vt{display:block;margin:0 0 8px;font:600 1.04rem/1.35 var(--serif)}
.vid .meta{display:block;margin:0}
.tl{position:relative;display:grid;gap:28px;padding-left:36px}
.tl .track,.tl .fill{position:absolute;left:8px;top:0;bottom:0;width:2px;background:var(--line)}
.tl .fill{background:var(--ox);transform-origin:top;transform:scaleY(var(--p,0))}
.tl-item{position:relative}
.tl-item::before{content:"";position:absolute;left:-34px;top:28px;width:14px;height:14px;border:2px solid var(--ox);border-radius:50%;background:var(--paper);transition:background .5s var(--ease)}
.tl-item.on::before{background:var(--ox)}
.tl-card{overflow:hidden}
.tl-card .ph{border-radius:0}
.tl-card .tb2{padding:20px 22px 12px}
.tl-card h3{font-size:1.2rem;margin:10px 0 6px}
.tl-card p{font-size:.95rem;color:var(--slate)}
.xrow{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0 14px}
.xrow button{display:block;width:76px;height:58px;padding:3px;border:1px solid var(--line);border-radius:4px;background:#fff;cursor:zoom-in;transition:border-color .25s,translate .3s var(--ease),box-shadow .3s}
.xrow button:hover{border-color:var(--silver);translate:0 -2px;box-shadow:var(--sh)}
.xrow img{width:100%;height:100%;object-fit:contain;border-radius:2px}
.xrow-l{display:block;width:100%;margin:0 0 6px;font:500 .66rem/1.4 var(--mono);letter-spacing:.13em;text-transform:uppercase;color:var(--slate)}
.chipline{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center}
.type{display:inline-block;padding:3px 10px;border-radius:999px;background:var(--mist);border:1px solid var(--line);font:500 .7rem/1.5 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ox)}
.lbtn{display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:0;border:0;background:none;font:600 1rem var(--sans);color:var(--ox);cursor:pointer}
.lbtn:hover{text-decoration:underline}
.lbtn svg{width:15px;height:15px}
@media(min-width:900px){
  .tl{grid-template-columns:1fr 1fr;column-gap:88px;row-gap:28px;padding-left:0}
  .tl .track,.tl .fill{left:50%;margin-left:-1px}
  .tl .tl-item:nth-child(odd){grid-column:1}
  .tl .tl-item:nth-child(even){grid-column:2;margin-top:150px}
  .tl-item::before{top:30px}
  .tl .tl-item:nth-child(odd)::before{left:auto;right:-51px}
  .tl .tl-item:nth-child(even)::before{left:-51px;right:auto}
}
.masonry{columns:3 280px;column-gap:28px}
.masonry figure{break-inside:avoid;margin:0 0 28px;display:inline-block;width:100%}
.masonry button{display:block;padding:8px;border:1px solid var(--line);border-radius:var(--r);background:#fff;box-shadow:var(--sh);cursor:zoom-in;transition:box-shadow .35s,translate .35s var(--ease)}
.masonry button:hover{box-shadow:var(--sh2),0 0 0 4px rgba(154,29,36,.06);translate:0 -3px}
.masonry img{width:auto;max-width:100%;border-radius:3px}
.lcard{display:flex;flex-direction:column;padding:26px;text-decoration:none;color:inherit}
.lcard h3{margin:0 0 8px}
.lcard p{color:var(--slate);font-size:.95rem}
.lcard .tlink{margin-top:auto}

/* about */
.cols{display:grid;gap:8px 56px}
@media(min-width:900px){.cols{grid-template-columns:1fr 1fr}}
.leader{display:grid;gap:36px;align-items:start}
@media(min-width:900px){.leader{grid-template-columns:auto 1fr;gap:64px}}
.leader .bio p{color:#26303C}
.reach{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}
.reach a{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-weight:600;text-decoration:none}
.reach svg{width:17px;height:17px}
.team{display:flex;flex-direction:column;padding:24px}
.team h3{margin:0 0 2px;font-size:1.2rem}
.role{font:500 .74rem/1.5 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--slate);margin:0 0 12px}
.creds{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.team .sum{font-size:.95rem;color:var(--slate)}
.acc-btn{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin-top:auto;padding:0;border:0;background:none;font:600 .98rem var(--sans);color:var(--ox);cursor:pointer}
.acc-btn svg{width:14px;height:14px;transition:rotate .35s var(--ease)}
.acc-btn[aria-expanded="true"] svg{rotate:180deg}
.acc-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s var(--ease)}
.acc-panel>div{overflow:hidden}
.acc-panel.open{grid-template-rows:1fr}
.acc-panel p{font-size:.95rem;color:#26303C;margin:12px 0 0}
.adv{padding:24px;background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh)}
.adv h3{font-size:1.15rem;margin:0 0 4px}
.adv p{font-size:.95rem;color:var(--slate);margin:0}
.avatar,.mono-disc{width:88px;height:88px;border-radius:50%;margin-bottom:18px;border:1px solid var(--line);box-shadow:0 0 0 4px #fff,0 0 0 5px var(--line)}
.avatar{overflow:hidden;background:var(--mist)}
.avatar img{width:100%;height:100%;object-fit:cover;filter:saturate(.92) contrast(1.02);transition:scale .7s var(--ease)}
.team:hover .avatar img{scale:1.06}
.mono-disc{display:grid;place-items:center;background:var(--mist);font:600 1.6rem var(--serif);color:var(--ox)}
.leader .side{display:grid;gap:18px;justify-items:start;align-self:start}
.side-meta{display:none}
.side-meta .label{margin-bottom:4px;font-size:.66rem}
.readbar{position:sticky;top:var(--hh);z-index:6;display:flex;align-items:center;gap:12px;height:60px;margin:0 -16px -60px;padding:0 16px;background:rgba(237,241,245,.97);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;transform:translate3d(0,-12px,0);pointer-events:none;transition:opacity .35s var(--ease),transform .35s var(--ease)}
.readbar.show{opacity:1;transform:none}
.readbar img{width:40px;height:40px;border-radius:50%;object-fit:cover;border:1px solid var(--silver)}
.readbar b{display:block;font:600 1rem/1.2 var(--serif)}
.readbar small{font:500 .64rem/1.4 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--slate)}
.readbar i{position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--ox);transform-origin:left;transform:scaleX(var(--p,0))}
@media(min-width:900px){
  .leader .side{position:sticky;top:calc(var(--hh) + 32px)}
  .side-meta{display:block;width:218px;padding:16px 16px 10px;background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh)}
  .side-meta .reach{display:grid;gap:0;margin:0;padding:0;border:0}
  .side-meta .reach a{font-size:.88rem;min-height:40px}
  /* Nov 1 2026: alanstone@wallstreetresearch.org ran past the card; it now breaks after the @ and the icon lines up with the first line */
  .side-meta .reach a[href^="mailto:"]{align-items:flex-start;gap:8px;padding:9px 0;line-height:1.35;letter-spacing:-.005em}
  .side-meta .reach a[href^="mailto:"] svg{flex:none;margin-top:1px}
  .side-meta .reach a[href^="mailto:"] span{min-width:0;overflow-wrap:anywhere}
  .bio .alan-reach{display:none}
  .leader .bio{max-width:62ch}
  .readbar{display:none}
}
@media(max-width:699px){
  .team{display:grid;grid-template-columns:72px 1fr;column-gap:16px;align-items:center;padding:20px}
  .team .avatar,.team .mono-disc{width:72px;height:72px;margin:0;grid-row:1 / span 3;align-self:start}
  .team .mono-disc{font-size:1.3rem}
  .team h3,.team .role,.team .creds{grid-column:2}
  .team h3{margin:2px 0 2px}
  .team .role{margin-bottom:8px}
  .team .creds{margin-bottom:0}
  .team .sum,.team .acc-btn,.team .acc-panel{grid-column:1 / -1}
  .team .sum{margin:14px 0 0}
  .team .acc-btn{margin-top:6px}
}

/* contact */
.cgrid{display:grid;gap:44px;align-items:start}
@media(min-width:1000px){.cgrid{grid-template-columns:.9fr 1.1fr;gap:72px}}
.ccards{display:grid;gap:14px}
.ccard{padding:20px 22px}
.ccard h3{font-size:1.15rem;margin:0}
.ccard .role{margin:2px 0 10px}
.ccard a{display:flex;align-items:center;gap:10px;min-height:40px;font-weight:600;text-decoration:none;word-break:break-word}
.ccard a svg{flex:none;width:17px;height:17px}
.office{margin-top:22px;padding:20px 22px;background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh)}
.office address{font-style:normal;margin-bottom:6px}.office address+address{margin-top:12px}.addr-gap{display:block;height:8px}
.req{padding:24px 20px;overflow:hidden}
@media(min-width:760px){.req{padding:36px}}
.prog{height:3px;background:var(--mist);border-radius:3px;overflow:hidden;margin:6px 0 24px}
.prog i{display:block;height:100%;width:33.4%;background:var(--ox);transition:width .5s var(--ease)}
.step-n{font:500 .72rem var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--slate)}
.step{display:none}
.step.on{display:block;animation:stepin .55s var(--ease)}
@keyframes stepin{from{opacity:0;transform:translate3d(28px,0,0)}to{opacity:1;transform:none}}
.step h2{font-size:1.6rem;margin:0 0 20px}
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.tile-b{position:relative;display:flex;flex-direction:column;gap:6px;min-height:92px;padding:16px;border:1px solid var(--silver);border-radius:var(--r);background:#fff;text-align:left;font:600 .98rem/1.3 var(--sans);color:var(--ink);cursor:pointer;transition:border-color .25s,background .25s,box-shadow .25s}
.tile-b small{font:400 .8rem/1.4 var(--sans);color:var(--slate)}
.tile-b:hover{border-color:var(--ink)}
.tile-b[aria-pressed="true"]{border-color:var(--ox);background:rgba(154,29,36,.05);box-shadow:inset 0 0 0 1px var(--ox)}
.tile-b[aria-pressed="true"]::after{content:"";position:absolute;right:12px;top:12px;width:18px;height:18px;border-radius:50%;background:var(--ox) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='8'%3E%3Cpath d='M1 4l3 3 5-6' fill='none' stroke='%23fff' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat center}
.fld{display:grid;gap:6px;margin-bottom:16px}
.fld label{font-weight:600;font-size:.94rem}
.fld label span{font-weight:400;color:var(--slate)}
.fld input,.fld select,.fld textarea{width:100%;min-height:50px;padding:12px 14px;border:1px solid var(--silver);border-radius:var(--r);background:#fff}
.fld textarea{min-height:110px;resize:vertical}
.fld input:focus,.fld select:focus,.fld textarea:focus,.search input:focus{outline:none;border-color:var(--ox);box-shadow:0 0 0 3px rgba(154,29,36,.12)}
.fld .err{display:none;font-size:.85rem;color:var(--ox);font-weight:600}
.fld.bad input,.fld.bad select{border-color:var(--ox)}
.fld.bad .err{display:block}
#f-ticker{font-family:var(--mono);text-transform:uppercase}
.two{display:grid;gap:0 16px}
@media(min-width:620px){.two{grid-template-columns:1fr 1fr}}
.step-nav{display:flex;justify-content:space-between;gap:12px;margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}
.step-err{display:none;margin:12px 0 0;color:var(--ox);font-weight:600;font-size:.9rem}
.step-err.on{display:block}
.thinking{display:none;padding:56px 8px;text-align:center}
.thinking.on{display:block}
.bar{position:relative;width:200px;height:3px;margin:20px auto 0;background:var(--mist);border-radius:3px;overflow:hidden}
.bar i{position:absolute;inset:0;background:var(--ox);transform-origin:left;animation:fillbar 1.5s var(--ease) forwards}
@keyframes fillbar{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.done{display:none}
.done.on{display:block;animation:stepin .55s var(--ease)}
.sum-list{margin:18px 0 24px;border-top:1px solid var(--line)}
.sum-list div{display:grid;grid-template-columns:120px 1fr;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:.95rem}
.sum-list dt{font:500 .7rem/1.9 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--slate)}
.sum-list dd{margin:0;word-break:break-word}
.faq{border-top:1px solid var(--ink);max-width:860px}
.faq-i{border-bottom:1px solid var(--line)}
.faq-i .acc-btn{width:100%;justify-content:space-between;min-height:64px;font:600 1.12rem/1.35 var(--serif);color:var(--ink);text-align:left}
.faq-i .acc-btn svg{color:var(--ox)}
.faq-i .acc-panel p{margin:0 0 20px;color:var(--slate)}
.req-top{display:flex;flex-direction:column;gap:2px}
.step[hidden],#steps[hidden]{display:none}
#done-h{outline:none}

/* disclaimer */
.prose{max-width:820px;padding:28px 22px 12px;background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh)}
@media(min-width:760px){.prose{padding:48px 56px 28px}}
.prose p{max-width:70ch;color:#26303C}

/* lightbox */
.lb{position:fixed;inset:0;z-index:100;display:none;place-items:center;padding:64px 16px 24px;background:rgba(7,13,22,.92)}
.lb.open{display:grid;animation:fade .3s ease}
@keyframes fade{from{opacity:0}to{opacity:1}}
.lb-in{width:100%;max-width:1040px}
.lb.open .lb-in{animation:lbin .5s var(--ease)}
@keyframes lbin{from{opacity:0;transform:scale(.97) translate3d(0,10px,0)}to{opacity:1;transform:none}}
.lb-vid{position:relative;aspect-ratio:16/9;background:#000;border-radius:var(--r);overflow:hidden}
.lb-vid iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.lb-img{display:grid;justify-items:center}
.lb-img img{max-height:76vh;width:auto;border-radius:4px;background:#fff}
.lb-cap{margin:14px auto 0;max-width:62ch;text-align:center;color:#D9DEE4;font-size:.95rem}
.lb-x{position:absolute;top:12px;right:12px;display:grid;place-items:center;width:48px;height:48px;border:1px solid rgba(255,255,255,.35);border-radius:50%;background:transparent;color:#fff;cursor:pointer}
.lb-x:hover{background:rgba(255,255,255,.1)}
.lb-x svg{width:20px;height:20px}

/* grids added in v2 */
.g4{display:grid;gap:20px}
@media(min-width:700px){.g4{grid-template-columns:repeat(2,1fr);gap:24px}}
@media(min-width:1100px){.g4{grid-template-columns:repeat(4,1fr)}}
.split.even{grid-template-columns:1fr}
@media(min-width:900px){.split.even{grid-template-columns:1fr 1fr}}
.split.even .media{justify-self:stretch}
.ph.fit{background:#fff}
.ph.fit img{object-fit:contain;padding:14px}
.feat .lt .sym{font:600 2.6rem/1 var(--serif);letter-spacing:.03em}
.chips-wrap{display:grid;gap:8px}

/* motion */
html.js [data-rv]{opacity:0;transition:opacity .7s var(--ease),transform .7s var(--ease),translate .35s var(--ease),box-shadow .35s var(--ease),border-color .35s}
html.js [data-rv="up"]{transform:translate3d(0,28px,0)}
html.js [data-rv="down"]{transform:translate3d(0,-28px,0)}
html.js [data-rv="left"]{transform:translate3d(-28px,0,0)}
html.js [data-rv="right"]{transform:translate3d(28px,0,0)}
html.js :is(h1,h2,h3)[data-rv]{opacity:1}
html.js [data-rv].in{opacity:1;transform:none}
html.js [data-rv="mask"]{opacity:1;transform:none}
.w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.14em;margin-bottom:-.14em}
.w>span{display:inline-block}
html.js [data-rv="mask"] .w>span{transform:translate3d(0,112%,0);transition:transform 1s var(--ease);transition-delay:calc(var(--d,0ms) + var(--i,0) * 45ms)}
html.js [data-rv="mask"].in .w>span{transform:none}
html.js .label[data-rv]::before{transform:scaleX(0);transform-origin:left;transition:transform .8s var(--ease) .25s}
html.js .label[data-rv].in::before{transform:none}
html.js .frame[data-rv] .ph,html.js .frame.nat[data-rv]>img{clip-path:inset(100% 0 0 0);transition:clip-path 1.2s var(--ease) .12s}
html.js .frame[data-rv].in .ph,html.js .frame.nat[data-rv].in>img{clip-path:inset(0 0 0 0)}
html.js .hero .frame[data-rv] .ph>img{scale:1.12;transition:scale 2.6s var(--ease) .1s}
html.js .hero .frame[data-rv].in .ph>img{scale:1}
.stage .num{transition:background .5s var(--ease),color .5s var(--ease)}
.stage.on .num{background:var(--ox);color:#fff}
.tape-mask{-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.lib .lt img{transition:scale .6s var(--ease),opacity .5s var(--ease)}
.lib:hover .lt img{scale:1.05}
@media(hover:hover) and (pointer:fine){@view-transition{navigation:auto}}
::view-transition-old(root),::view-transition-new(root){animation-duration:.4s}
.hdr{view-transition-name:site-header}
.mbar{view-transition-name:site-bar}
@media(prefers-reduced-motion:reduce){
  @view-transition{navigation:none}
  html.js [data-rv]{opacity:1;transform:none;transition:none}
  [data-px]>img,.sky img,.pano img{transform:none}
  .tape-track{animation:none;width:auto}
  .tape-set{flex-wrap:wrap;justify-content:center}
  .tape-set[aria-hidden]{display:none}
  .mnav,.acc-panel,.step.on,.done.on{transition:none;animation:none}
  .stages .fill,.tl .fill{transform:none}
  html.js [data-rv="mask"] .w>span,html.js .label[data-rv]::before{transform:none;transition:none}
  html.js .frame[data-rv] .ph,html.js .frame.nat[data-rv]>img{clip-path:none;transition:none}
  html.js .hero .frame[data-rv] .ph>img{scale:1}
  .tape-mask{-webkit-mask-image:none;mask-image:none}
  .mnav nav a,.mnav-foot{opacity:1;transform:none;transition:none}
  .readbar{transition:none}
  .wall>i,.shelf .col{animation:none}
  html.js .desk .sheet,html.js .desk .latest{opacity:1;transform:rotate(var(--r,0deg));transition:none}
  html.js .desk .latest{transform:none}
  .sheet{translate:none}
}

/* v4, Oct 20 call: overview, publication kinds, photo strip, founder, roadshows */
.hero-alt{margin:14px 0 0}
.hero-alt .tlink{min-height:36px;font-size:.95rem}
.dk .hero-alt .tlink{color:#E4E9EF}
.glance-card{display:flex;flex-direction:column;padding:28px 28px 22px}
.glance-card .label{margin-bottom:10px}
.glance-card h3{font-size:1.35rem;margin-bottom:10px}
.glance-card p{color:var(--slate);font-size:.97rem}
.glance-card .tlink{margin-top:auto}
.kind{display:inline-block;align-self:flex-start;margin:0 0 12px;padding:4px 9px;border-radius:4px;font:500 .66rem/1.4 var(--mono);letter-spacing:.12em;text-transform:uppercase}
.kind.k1{background:rgba(11,26,44,.08);color:var(--navy)}
.kind.k2{background:rgba(154,29,36,.08);color:var(--ox)}
.kind.k3{background:rgba(82,96,114,.12);color:var(--slate)}
.strip{display:flex;gap:20px;justify-content:center;align-items:flex-start;margin:0 0 44px}
.strip .frame{flex:none}
.strip .ph{height:260px}
.strip .ph.tall{width:195px}
.strip .ph.wide{width:390px}
.strip figcaption{max-width:390px}
.strip .ph.tall+figcaption{max-width:195px}
@media(max-width:899px){.strip{justify-content:flex-start;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;margin:0 -16px 36px;padding:0 16px 8px}.strip::-webkit-scrollbar{display:none}.strip .frame{scroll-snap-align:start}.strip .ph{height:220px}.strip .ph.tall{width:165px}.strip .ph.wide{width:330px}}
.founder{display:grid;gap:22px;align-items:start;margin-top:56px;padding-top:48px;border-top:1px solid var(--line)}
@media(min-width:900px){.founder{grid-template-columns:auto 1fr;gap:48px}}
.founder .mono-disc{width:120px;height:120px;font-size:2.2rem;margin:0}
.founder h2{margin-bottom:4px}
.founder .lead{max-width:62ch;margin-bottom:14px}
.founder #founder-bio p{color:#26303C;max-width:62ch}
.vid .vb .tick{display:inline-block;margin-bottom:10px}
.lcard h3{font-size:1.18rem}

/* events photo grid: every photo the same size so they sit together */
.gal{--gc:2;--gx:12px;display:flex;flex-wrap:wrap;justify-content:center;gap:16px var(--gx)}
@media(min-width:700px){.gal{--gc:3;--gx:18px;gap:22px var(--gx)}}
@media(min-width:1100px){.gal{--gc:4}}
.gal figure{margin:0;display:flex;flex-direction:column;min-width:0;flex:0 0 calc((100% - (var(--gc) - 1) * var(--gx)) / var(--gc))}
.gal button{display:block;width:100%;padding:6px;border:1px solid var(--line);border-radius:var(--r);background:#fff;box-shadow:var(--sh);cursor:zoom-in;transition:box-shadow .35s,translate .35s var(--ease)}
.gal button:hover{box-shadow:var(--sh2),0 0 0 4px rgba(154,29,36,.06);translate:0 -3px}
.gal img{width:100%;aspect-ratio:3/2;object-fit:cover;object-position:50% 22%;border-radius:3px;background:var(--mist)}
.gal figcaption{margin-top:9px;font-size:.8rem;line-height:1.45;color:var(--slate);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

/* Oct 25 2026: six roadshow cities split by coast in the home dateline, Home in the menu */
.dateline .brk{display:block;flex-basis:100%;height:0}
.nav a{white-space:nowrap}
@media(min-width:1100px) and (max-width:1319px){.nav{gap:18px}.hdr .brand small{display:none}}

/* Oct 28 2026 call: section headings in the brand crimson on light backgrounds; the navy hero and the dark bands stay white */
.sec:not(.dk) .sec-head h2,.sec:not(.dk) .split h2,.sec:not(.dk) .leader h2,.sec:not(.dk) .founder h2{color:var(--ox)}
/* Oct 28 2026 call: all three publication chips in crimson, matching the center one (Tom) */
.kind.k1,.kind.k3{background:rgba(154,29,36,.08);color:var(--ox)}
/* Oct 28 2026 call: small type in near black so it reads easily (Alan and Tom: black is the standard for small type now) */
figcaption,.dk figcaption,.gal figcaption,.meta,.muted,.fee,.role,.team .sum,.adv p,.panel p,.glance-card p,.feat p,.sec-head p,.prod .pb p,.tile-b small,.ledg .tk{color:var(--ink)}
/* Oct 28 2026 call: four stats in the home hero row (the #1 on Google, Yahoo and Bing box) */
@media(min-width:620px){.trust.four{grid-template-columns:repeat(2,1fr);row-gap:18px}.trust.four span:nth-child(odd){padding-left:0;border-left:0}}
@media(min-width:960px){.trust.four{grid-template-columns:repeat(4,1fr);row-gap:0}.trust.four span:nth-child(odd){padding-left:18px;border-left:1px solid rgba(255,255,255,.22)}.trust.four span:first-child{padding-left:0;border-left:0}}
/* Oct 28 2026 call: the Events hero holds the Pacific Club room shot, a landscape photo */
.r43{aspect-ratio:4/3}.hero-media.wide{max-width:640px}
/* Oct 28 2026 call: first research firm to cover the owner of Truth Social, under the success stories on the home page */
.first{display:grid;gap:22px;align-items:center;margin-top:44px;padding-top:40px;border-top:1px solid rgba(255,255,255,.14)}
.first .label{margin-bottom:10px}.first h3{font-size:1.5rem;line-height:1.2;margin:0 0 10px;max-width:24ch}.first p{max-width:58ch;margin:0 0 14px}
@media(min-width:860px){.first{grid-template-columns:340px 1fr;gap:44px}}

/* Oct 28 2026 call, second half: industry chips on the research cards and the track record (Alan: the industry instead of the date, and next to the milestone) */
.chips-row{display:flex;flex-wrap:wrap;gap:6px 8px}
.tick.ind{border-color:transparent;background:rgba(154,29,36,.08);color:var(--ox)}
.dk .tick.ind{border-color:transparent;background:rgba(255,255,255,.1);color:#fff}
.ledg .ind{font-size:.95rem} /* "ind", not "in": the reveal system adds class "in" to every revealed row */
@media(max-width:899px){.ledg .om:empty{display:none}.ledg .om::before,.ledg .ind::before{font:500 .68rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--slate);margin-right:6px}.ledg .om::before{content:"Milestone: "}.ledg .ind::before{content:"Industry: "}}
@media(min-width:900px){.ledg .lr{grid-template-columns:2fr 1.1fr 2fr 1.4fr 1fr}}
/* Oct 28 2026 call, second half: the three publication labels on Services a size up (Alan: make it a little larger) */
.prow .label{font-size:.98rem;letter-spacing:.16em}

/* Oct 30 2026 call 3 (Alan and Tom) */
/* every small red label with the line in front now uses the size Alan liked on the Services publication labels */
.label,.latest .label,.side-meta .label{font-size:.98rem;letter-spacing:.16em}
/* labels on dark backgrounds a step lighter so they do not fade into the navy (Alan, GCN band); the home dateline keeps its near white */
.dk .label:not(.dateline){color:#F4A7AC}
/* Track Record ledger headings: crimson, bigger, bolder */
.ledg .lh{font:700 .92rem var(--mono);letter-spacing:.12em;color:var(--ox)}
@media(max-width:899px){.ledg .om::before,.ledg .ind::before{color:var(--ox);font-weight:700;font-size:.78rem}}
/* Subscribe in the header on every screen size (Alan) */
.hdr-sub{display:inline-flex;min-height:40px;padding:0 14px;font-size:.88rem;color:#fff;border-color:rgba(255,255,255,.38)}
.hdr-sub:hover{color:#fff;border-color:#fff;background:rgba(255,255,255,.06)}
@media(max-width:1099px){.hdr .wrap{gap:10px}.menu-btn span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.menu-btn{padding:0 11px}.brand{gap:10px}.brand img{height:36px}.brand b{font-size:1.04rem}}
@media(max-width:349px){.hdr .brand>span{display:none}}
@media(min-width:1100px){.hdr-sub{min-height:44px;padding:10px 18px;font-size:1rem}}
@media(min-width:1100px) and (max-width:1319px){.hdr .wrap{gap:18px}.nav{gap:16px}.nav a{font-size:.9rem}.hdr-sub,.hdr-cta{padding:10px 15px;font-size:.94rem}}
/* The #1 on Google badge, Google only (Nov 1 team notes). Nov 2 2026 (call 4): it moved from the top of the home page to beside What we publish, where the research starts; the hero stats say it in words */
.no1{position:relative;z-index:6;width:max-content;max-width:100%;margin:0;perspective:900px}
.no1-tilt,.no1-bob,.no1-card{transform-style:preserve-3d}
.no1-tilt{transform:rotateX(calc(var(--my, 0) * -10deg)) rotateY(calc(var(--mx, 0) * 14deg));transition:transform 1s var(--ease)}
.no1-bob{animation:no1-bob 5.6s ease-in-out infinite}
.no1-card{position:relative;display:flex;align-items:center;gap:18px;padding:16px 24px 16px 20px;color:var(--ink);animation:no1-sway 9s ease-in-out infinite}
/* back to front in source order, so the card still stacks right in a browser that flattens 3D: two plates give it an edge as it turns, then the face */
.no1-card>i{position:absolute;inset:0;border-radius:12px;pointer-events:none}
.no1-e2{background:#8F9CAD;transform:translateZ(-10px);box-shadow:0 3px 8px rgba(0,0,0,.25),0 34px 60px -20px rgba(0,0,0,.7)}
.no1-e1{background:#C9D2DC;transform:translateZ(-5px)}
.no1-face{background:linear-gradient(150deg,#fff 55%,#EEF2F6);border:1px solid #fff}
.no1-num{position:relative;display:block;font:600 4rem/.92 var(--serif);letter-spacing:-.02em;white-space:nowrap;color:#AE2129;transform:translateZ(30px);text-shadow:0.5px 0.5px 0 #961D24,1px 1px 0 #911C23,1.5px 1.5px 0 #8C1B21,2px 2px 0 #871920,2.5px 2.5px 0 #82181F,3px 3px 0 #7D171D,3.5px 3.5px 0 #77161C,4px 4px 0 #72151A,4.5px 4.5px 0 #6D1419,5px 5px 0 #681218,5.5px 5.5px 0 #631116,6px 6px 0 #5E1015,8px 10px 14px rgba(14,23,38,.3)}
.no1-num::after{content:attr(data-n);position:absolute;left:0;top:0;color:transparent;text-shadow:none;background:linear-gradient(105deg,transparent 40%,rgba(255,226,228,.95) 50%,transparent 60%) 100% 0/260% 100% no-repeat;-webkit-background-clip:text;background-clip:text;animation:no1-glint 9s ease-in-out infinite}
.no1-on{display:grid;gap:7px;transform:translateZ(16px)}
.no1-on small{font:500 .64rem/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--slate)}
.no1-on svg{display:block;width:120px;height:auto}
.no1-shade{position:absolute;left:12%;right:12%;bottom:-30px;height:18px;border-radius:50%;background:radial-gradient(closest-side,rgba(0,0,0,.55),transparent);animation:no1-shade 5.6s ease-in-out infinite;pointer-events:none}
@keyframes no1-bob{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(0,-12px,0)}}
@keyframes no1-sway{0%,100%{transform:rotateY(-18deg) rotateX(8deg) rotateZ(-1.5deg)}50%{transform:rotateY(14deg) rotateX(-4deg) rotateZ(1deg)}}
@keyframes no1-shade{0%,100%{transform:scale(1);opacity:.9}50%{transform:scale(.78);opacity:.45}}
@keyframes no1-glint{0%,50%{background-position:100% 0}72%,100%{background-position:0 0}}
html.js .no1[data-rv]:not(.in){translate:0 -24px;scale:.9}
html.js .no1[data-rv].in{translate:none;scale:none;transition:opacity .9s var(--ease),translate 1.4s var(--spring),scale 1.4s var(--spring)}
@media(max-width:559px){.no1-card{gap:14px;padding:13px 18px 13px 16px}.no1-num{font-size:3.1rem}.no1-on svg{width:96px}.no1-on small{font-size:.58rem}}
@media(prefers-reduced-motion:reduce){
  .no1-bob,.no1-card,.no1-shade,.no1-num::after{animation:none}
  .no1-card{transform:rotateY(-12deg) rotateX(5deg)}
  .no1-tilt{transition:none}
  html.js .no1[data-rv]{opacity:1;translate:none;scale:none;transition:none}
}
/* Events: the two upcoming conferences side by side */
.g2{display:grid;gap:20px}
@media(min-width:700px){.g2{grid-template-columns:repeat(2,1fr);gap:24px}}
.up-label{margin:44px 0 16px}
/* forum and conference boxes: four smaller boxes in a row */
.fcards .lcard{padding:22px}
.fcards .lcard h3{font-size:1.08rem}
.fcards .lcard p{font-size:.92rem}
/* next GCN conference date on the dark band */
.next-ev{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px;width:fit-content;max-width:100%;margin:4px 0 26px;padding:14px 20px;border:1px solid rgba(255,255,255,.24);border-radius:var(--r)}
.next-ev span{font:600 .98rem var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#F4A7AC}
.next-ev b{font:600 1.35rem/1.2 var(--serif);color:#fff}
/* five steps on the path (Elevate added after Broaden) */
@media(min-width:900px){.stages.five{grid-template-columns:repeat(5,1fr);gap:26px}}

/* the white Latest coverage card sits inside the dark hero, so its label stays crimson */
.dk .latest .label{color:var(--ox)}
/* the city line: a dot after each city instead of before, so a wrapped line ends on a dot rather than starting with one; a size that fits phones */
.dateline span+span::before{content:none}
.dateline span:has(+ span)::after{content:"";width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.55}
@media(max-width:559px){.dateline{font-size:.86rem;letter-spacing:.12em}}
/* small phones keep the name in the header next to Subscribe and the menu */
@media(max-width:399px){.hdr .wrap{gap:8px}.brand{gap:8px}.brand img{height:34px}.brand b{font-size:.94rem}.hdr-sub{padding:0 11px;font-size:.84rem}.menu-btn{padding:0 10px}}
/* labels inside cards were held back by the card paragraph size; same size everywhere */
.lcard p.label,.glance-card p.label,.fcards .lcard p.label{font-size:.98rem}

/* Nov 2 2026 (call 4) */
/* the #1 on Google badge beside What we publish, under the text on phones */
.pub-head{max-width:none}
.pub-head>div{max-width:780px}
.pub-head .no1{margin:34px 0 6px 4px}
@media(min-width:900px){.pub-head{display:grid;grid-template-columns:minmax(0,780px) auto;justify-content:space-between;align-items:center;gap:48px}.pub-head .no1{margin:0 30px 8px 0}}
/* photo captions bold, with a little more air, the same everywhere */
figcaption{font-weight:600;line-height:1.6;letter-spacing:.005em;margin-top:14px}
.gal figcaption{font-weight:600;line-height:1.5;margin-top:10px;display:block;-webkit-line-clamp:unset;overflow:visible} /* bold runs wider, so the full caption shows instead of three lines */
.lb-cap{font-weight:600} /* and the caption under an enlarged photo */
/* the closing band speaks to companies and investors; stacked on phones */
.cl2{display:grid;gap:44px}
.cl2 h2{font-size:clamp(1.7rem,1.15rem + 1.7vw,2.4rem);max-width:19ch}
.cl-side+.cl-side{padding-top:44px;border-top:1px solid rgba(255,255,255,.16)}
@media(min-width:900px){.cl2{grid-template-columns:1fr 1fr;gap:0}.cl-side{padding-right:56px}.cl-side+.cl-side{padding:0 0 0 56px;border-top:0;border-left:1px solid rgba(255,255,255,.16)}}
/* Track Record lists the milestone companies; the full list has its own page, column headings pinned while scrolling */
.ledg-more{margin:16px 0 0;font-size:.92rem;color:var(--ink)}
.ledg-more a{font-weight:600}
.ledg-title{margin:56px 0 14px;font-size:clamp(1.3rem,1.1rem + .6vw,1.6rem)}
@media(min-width:900px){.ledg.four .lr{grid-template-columns:2fr 1.1fr 1.6fr 1fr}.ledg.pin .lh{position:sticky;top:var(--hh);z-index:3;background:var(--paper);box-shadow:0 1px 0 var(--line)}}
/* a coming up event: the details first, the package price right above the button */
.lb-ev{position:relative;width:100%;max-width:600px;margin:0 auto;padding:30px 28px 24px;background:var(--paper);color:var(--ink);border-radius:10px;box-shadow:0 30px 80px rgba(0,0,0,.45);max-height:calc(100vh - 96px);max-height:calc(100dvh - 96px);overflow-y:auto;overscroll-behavior:contain;text-align:left}
.lb-ev .label{margin:0 0 10px}
.lb-ev h2{margin:0 0 6px;font-size:clamp(1.45rem,1.2rem + 1vw,1.9rem);color:var(--ink)}
.lb-ev p{margin:0 0 12px;font-size:.98rem}
.lb-ev .ev-sub{color:var(--slate);font-size:.95rem}
.ev-dl{display:grid;gap:12px;margin:16px 0 0;padding:16px 0 0;border-top:1px solid var(--line)}
.ev-dl dt{font:500 .72rem var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ox)}
.ev-dl dd{margin:3px 0 0;font-size:.95rem}
.ev-dl ul{margin:0;padding-left:18px;list-style:disc}
@media(max-width:559px){.lb-ev{padding:24px 20px 20px}.lb-ev p,.ev-dl dd{font-size:.93rem}}
.lb-ev .ev-price{display:grid;gap:2px;margin:20px 0 14px;padding:14px 16px;border:1px solid var(--line);border-left:3px solid var(--ox);border-radius:6px;background:#fff}
.ev-price span{font:500 .72rem var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--slate)}
.ev-price b{font:600 1.6rem/1.2 var(--serif);color:var(--ink)}
.ev-price small{font-size:.9rem;color:var(--ink)}
.lb-ev .btns{margin:0}
.lb-ev .ev-inv{margin:14px 0 0;font-size:.9rem}
.lb-ev .ev-inv a{font-weight:600}
/* the contact form says which event a request is for */
.ev-tag{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:0 0 18px;padding:10px 14px;border-left:3px solid var(--ox);border-radius:4px;background:var(--mist);font-weight:600;color:var(--ink)}
.ev-tag span{font:500 .7rem var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ox)}
/* 7 Nov 2026 (Tom): the Services forum row centers its boxes, so three boxes (no featured event) sit centered at the
   same width as four. Same widths and gaps as Landon's .g4 (1 column, 2 from 700px, 4 from 1100px). */
.fc-center{display:flex;flex-wrap:wrap;justify-content:center;gap:20px}
.fc-center>*{flex:0 0 100%;min-width:0}
@media(min-width:700px){.fc-center{gap:24px}.fc-center>*{flex-basis:calc(50% - 12px)}}
@media(min-width:1100px){.fc-center>*{flex-basis:calc(25% - 18px)}}
/* 7 Nov 2026 (Tom): the header's Subscribe button now reads "Invitation List" (site.js) and shows on phones only,
   below 1100px where the Menu button shows ("on the phone menu change both subscribe to Invitation List").
   On desktop it is gone ("on the desktop in the menu 'subscribe' disappears"; Alan wanted it off the top), since the
   Join the Invitation List button sits above the footer on every page. Links unchanged until the forms are wired. */
@media(min-width:1100px){.hdr .hdr-sub{display:none}}
