/* ============================================================
   OSN — Ohio Startup Network
   Design system per OSN Brand Guidelines v1.0 (2026)
   One Identity. Two Registers.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Archivo:ital,wght@0,400;0,500;0,600;0,700;0,800;0,900&family=Newsreader:ital@1&family=Barlow+Semi+Condensed:wght@500;600;700;800&display=swap');

:root{
  /* Tier 1 — Structure (recedes) */
  --black:#0A0A0A;
  --deep-navy:#021538;
  --navy:#0E2148;
  --mist:#EAF2FF;
  --white:#FFFFFF;

  /* Tier 2 — Accent (advances) */
  --logo-blue:#044DF1;
  --hustle-green:#7FD858;
  --hotseat-red:#CC2233;

  --font-display:'Archivo', sans-serif;
  --font-editorial:'Newsreader', serif;
  --font-kinetic:'Barlow Semi Condensed', sans-serif;

  --max:1200px;
  --radius:14px;

  /* ---------- Theme tokens (Elevated pages only) ----------
     Dark is the default. html.light overrides these for body.elevated.
     hustle-bus.html / founder-hot-seat.html never use these tokens —
     they stay permanently on the Activated black register. */
  --surf-0:#0A0A0A;              /* page background (flat fallback / reused as a solid color, e.g. button hover text) */
  --surf-1:#151330;              /* alternating panel — purple-navy tint, sampled from the Impact Report deck */
  --surf-card:#181633;           /* card / dir-card / form-container backgrounds — same purple-navy family */
  --txt-1:#FFFFFF;               /* primary text */
  --bdr-1:rgba(255,255,255,.12); /* standard border */
  --nav-bg:rgba(10,10,16,.85);   /* translucent nav backdrop */
  /* Page background gradient — colors sampled directly from the OSN H1 2026 Impact
     Report deck (Canva). Used only for body background; --surf-0 stays a flat solid
     since it's also reused as a plain color value (e.g. .btn-outline:hover text). */
  --page-bg: radial-gradient(ellipse 1300px 900px at 8% -5%, #5b4f96 0%, #2c2764 24%, #100f2c 52%, #060613 100%);
}

html.light body.elevated{
  --surf-0:#FFFFFF;
  --surf-1:#EAF2FF;
  --surf-card:#FFFFFF;
  --txt-1:#0E2148;
  --bdr-1:rgba(14,33,72,.1);
  --nav-bg:rgba(255,255,255,.92);
  --page-bg:#FFFFFF;
}

*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}

/* ---------- Scroll-reveal animations ---------- */
.reveal, .reveal-left, .reveal-right{
  opacity:0; transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1);
}
.reveal{transform:translateY(28px);}
.reveal-left{transform:translateX(-36px);}
.reveal-right{transform:translateX(36px);}
.reveal.in-view, .reveal-left.in-view, .reveal-right.in-view{opacity:1; transform:translate(0,0);}
@media (prefers-reduced-motion: reduce){
  .reveal, .reveal-left, .reveal-right{transition:none; opacity:1; transform:none;}
}
body{
  font-family:var(--font-display);
  color:var(--txt-1);
  background-image:var(--page-bg);
  background-color:var(--surf-0);
  background-repeat:no-repeat;
  background-attachment:fixed;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
ul{list-style:none;}
button{font-family:inherit; cursor:pointer;}

.wrap{max-width:var(--max); margin:0 auto; padding:0 32px;}
section{padding:96px 0;}
@media (max-width:768px){
  section{padding:64px 0;}
  .wrap{padding:0 20px;}
}

/* ---------- Eyebrow / labels (deck signature pattern) ---------- */
.eyebrow{
  font-family:var(--font-display);
  font-weight:700;
  font-size:12.5px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--logo-blue);
  margin-bottom:14px;
  display:block;
}
.activated .eyebrow{color:var(--hustle-green);}
.hotseat .eyebrow{color:var(--hotseat-red);}

/* ---------- Headings ---------- */
h1,h2,h3{font-family:var(--font-display); line-height:1.08; letter-spacing:-.01em;}
h1{font-weight:900; font-size:clamp(38px,5.6vw,72px);}
h2{font-weight:900; font-size:clamp(28px,3.6vw,44px);}
h3{font-weight:700; font-size:20px;}
p{font-size:17px; color:inherit; opacity:.85;}
.activated p, .hotseat p{color:var(--white); opacity:.78;}

em, .accent-italic{
  font-family:var(--font-editorial);
  font-style:italic;
  font-weight:400;
  color:var(--logo-blue);
}
.activated .accent-italic{color:var(--hustle-green);}
.hotseat .accent-italic{color:var(--hotseat-red);}

.lede{font-size:19px; max-width:620px;}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:14px 26px;
  border-radius:999px;
  font-weight:700; font-size:15px;
  border:2px solid transparent;
  transition:transform .15s ease, background .15s ease, border-color .15s ease;
  white-space:nowrap;
}
.btn:hover{transform:translateY(-2px);}
.btn-primary{background:var(--logo-blue); color:var(--white);}
.btn-outline{border-color:var(--txt-1); color:var(--txt-1);}
.btn-outline:hover{background:var(--txt-1); color:var(--surf-0);}

.activated .btn-primary, .btn-primary.on-black{background:var(--hustle-green); color:var(--black);}
.activated .btn-outline{border-color:var(--white); color:var(--white);}
.activated .btn-outline:hover{background:var(--white); color:var(--black);}

.hotseat .btn-primary{background:var(--hotseat-red); color:var(--white);}
.hotseat .btn-outline{border-color:var(--white); color:var(--white);}
.hotseat .btn-outline:hover{background:var(--white); color:var(--black);}

.btn-row{display:flex; gap:14px; flex-wrap:wrap; margin-top:8px;}

/* ---------- Nav ---------- */
.nav{
  position:sticky; top:0; z-index:50;
  background:var(--nav-bg);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--bdr-1);
}
.activated .nav, .hotseat .nav{
  background:rgba(10,10,10,.88);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.nav-inner{
  max-width:var(--max); margin:0 auto; padding:6px 32px;
  display:flex; align-items:center; justify-content:space-between; gap:24px;
  position:relative;
}
.brand{display:flex; align-items:center; gap:10px;}
.brand img{height:88px; width:88px; object-fit:contain; display:block; border-radius:16px;}
.brand .brand-light{display:none;}
html.light .brand .brand-dark{display:none;}
html.light .brand .brand-light{display:block;}
.nav-links{display:flex; align-items:center; gap:30px;}
.nav-links a{font-size:14.5px; font-weight:600; opacity:.82;}
.nav-links a:hover{opacity:1;}
.nav-cta{display:flex; align-items:center; gap:14px;}
.nav-menu-btn{display:none; background:none; border:none; padding:6px; color:inherit;}
.nav-menu-btn svg{display:block; width:26px; height:26px;}
.nav-cta-mobile{display:none;}

/* ---------- Nav CTA dropdown (Join the Network / Sign In) ---------- */
.nav-cta-dropdown{position:relative;}
.nav-cta-trigger{display:inline-flex; align-items:center; gap:8px;}
.nav-cta-trigger svg{width:14px; height:14px; transition:transform .15s ease;}
.nav-cta-dropdown.open .nav-cta-trigger svg{transform:rotate(180deg);}
.dropdown-menu{
  display:none; position:absolute; top:calc(100% + 10px); right:0;
  background:var(--surf-card); border:1px solid var(--bdr-1); border-radius:12px;
  padding:8px; min-width:190px; box-shadow:0 16px 32px rgba(2,21,56,.2); z-index:60;
}
.nav-cta-dropdown.open .dropdown-menu{display:block;}
.dropdown-menu a{
  display:block; padding:11px 14px; border-radius:8px; font-size:14.5px; font-weight:700; color:var(--txt-1);
}
.dropdown-menu a:hover{background:var(--surf-1);}
.dropdown-menu .dropdown-hint{display:block; padding:4px 14px 8px; font-size:12px; font-weight:600; opacity:.5; text-transform:uppercase; letter-spacing:.04em;}

/* ---------- Theme toggle ---------- */
.theme-toggle{
  display:inline-flex; align-items:center; justify-content:center;
  width:38px; height:38px; border-radius:999px; border:1px solid var(--bdr-1);
  background:none; color:var(--txt-1); flex-shrink:0; padding:0;
}
.theme-toggle svg{width:18px; height:18px; display:block;}
.theme-toggle .icon-sun{display:none;}
.theme-toggle .icon-moon{display:block;}
html.light .theme-toggle .icon-sun{display:block;}
html.light .theme-toggle .icon-moon{display:none;}

@media (max-width:1080px){
  .brand img{height:72px; width:72px;}
}

@media (max-width:900px){
  .nav-links{
    display:none;
    position:absolute; top:100%; left:0; right:0;
    flex-direction:column; align-items:stretch; gap:4px;
    background:var(--surf-0); padding:18px 20px 22px;
    border-bottom:1px solid var(--bdr-1);
    box-shadow:0 12px 24px rgba(2,21,56,.12);
  }
  .activated .nav-links, .hotseat .nav-links{background:var(--black); border-bottom:1px solid rgba(255,255,255,.1);}
  .nav-links a{padding:11px 4px; width:100%;}
  .nav-links.mobile-open{display:flex;}
  .nav-menu-btn{display:block;}
  .nav-cta > .btn{display:none;}
  .nav-cta > .nav-cta-dropdown{display:none;}
  .nav-cta-mobile{
    display:flex; width:100%; justify-content:center; margin-top:10px;
  }
  .brand img{height:56px; width:56px;}
}

@media (max-width:600px){
  .brand img{height:46px; width:46px;}
  .nav-inner{padding:6px 20px;}
}

@media (max-width:400px){
  .brand img{height:40px; width:40px;}
}

/* ---------- Hero ---------- */
.hero{padding:88px 0 72px;}
.hero h1{margin-bottom:22px;}
.hero .lede{margin-bottom:34px; font-size:19px;}

/* ---------- Stat strip ---------- */
.stat-strip{
  background:var(--surf-1);
  border-top:1px solid var(--bdr-1);
  border-bottom:1px solid var(--bdr-1);
}
.activated .stat-strip, .hotseat .stat-strip{
  background:#111111; border-top:1px solid rgba(255,255,255,.08); border-bottom:1px solid rgba(255,255,255,.08);
}
.stat-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:24px;
  padding:52px 0;
}
@media (max-width:768px){.stat-grid{grid-template-columns:repeat(2,1fr);}}
.stat{text-align:left;}
.stat .num{
  font-family:var(--font-kinetic);
  font-weight:800; font-size:clamp(34px,4.2vw,54px);
  color:var(--txt-1); line-height:1;
}
.activated .stat .num, .hotseat .stat .num{color:var(--white);}
.stat .label{
  margin-top:8px; font-size:12.5px; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; color:var(--logo-blue);
}
.activated .stat .label{color:var(--hustle-green);}
.hotseat .stat .label{color:var(--hotseat-red);}

/* ---------- Grid / cards ---------- */
.grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.grid-2{display:grid; grid-template-columns:repeat(2,1fr); gap:24px;}
@media (max-width:900px){.grid-3, .grid-2{grid-template-columns:1fr;}}

.card{
  background:var(--surf-card);
  border:1px solid var(--bdr-1);
  border-radius:var(--radius);
  padding:32px;
}
.card h3{margin-bottom:10px;}
.card p{font-size:15.5px;}

.program-card{
  border-radius:var(--radius);
  padding:36px 32px;
  color:var(--white);
  display:flex; flex-direction:column; height:100%;
}
.program-card .pc-banner{
  width:calc(100% + 64px); margin:-36px -32px 20px; height:140px;
  object-fit:cover; object-position:center; display:block; border-radius:var(--radius) var(--radius) 0 0;
}
.program-card.hotseat-card .pc-banner{object-position:top;}
.program-card .tag{font-size:12px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; opacity:.85; margin-bottom:14px;}
.program-card h3{font-size:24px; color:var(--white); margin-bottom:12px;}
.program-card p{color:var(--white); opacity:.85; margin-bottom:22px; flex-grow:1;}
.program-card.core{background:var(--deep-navy);}
.program-card.core .tag, .program-card.core a.pc-link{color:var(--logo-blue);}
.program-card.hustle{background:var(--black);}
.program-card.hustle .tag, .program-card.hustle a.pc-link{color:var(--hustle-green);}
.program-card.hotseat-card{background:#141414;}
.program-card.hotseat-card .tag, .program-card.hotseat-card a.pc-link{color:var(--hotseat-red);}
.program-card.national{background:var(--deep-navy);}
.program-card.national .tag, .program-card.national a.pc-link{color:var(--logo-blue);}
.pc-link{font-weight:700; font-size:14.5px; display:inline-flex; align-items:center; gap:6px;}

/* ---------- Chips / tags ---------- */
.chip-row{display:flex; flex-wrap:wrap; gap:10px; margin-top:20px;}
.chip{
  padding:9px 16px; border-radius:999px; font-size:13.5px; font-weight:600;
  background:var(--surf-1); color:var(--txt-1); border:1px solid var(--bdr-1);
}
.activated .chip{background:#161616; color:var(--white); border-color:rgba(255,255,255,.14);}

/* ---------- Directory ---------- */
.dir-card{
  border:1px solid var(--bdr-1);
  border-radius:var(--radius);
  padding:24px;
  background:var(--surf-card);
}
.dir-card .dir-type{font-size:11.5px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--logo-blue); margin-bottom:10px;}
.dir-card h3{font-size:19px; margin-bottom:6px;}
.dir-card .dir-meta{font-size:13.5px; opacity:.65; margin-bottom:12px;}
.sample-note{
  font-size:13px; opacity:.6; font-style:italic; margin-top:10px;
}

/* ---------- Filter bar ---------- */
.filter-bar{
  display:flex; gap:12px; flex-wrap:wrap; align-items:center;
  background:var(--surf-1); border-radius:var(--radius); padding:20px 22px; margin-bottom:36px;
}
.filter-bar select, .filter-bar input{
  font-family:inherit; font-size:14px; padding:11px 14px; border-radius:8px;
  border:1px solid rgba(14,33,72,.15); background:var(--white); color:var(--navy);
}
.filter-bar input{flex-grow:1; min-width:200px;}

/* ---------- Form ---------- */
.osn-form{display:grid; gap:16px; max-width:560px;}
.osn-form label{font-size:13px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; margin-bottom:6px; display:block; opacity:.7;}
.osn-form input, .osn-form select, .osn-form textarea{
  width:100%; font-family:inherit; font-size:15px; padding:13px 14px;
  border-radius:8px; border:1px solid rgba(14,33,72,.18); background:var(--white); color:var(--navy);
}
.osn-form textarea{min-height:110px; resize:vertical;}

/* ---------- Section header pattern ---------- */
.section-head{max-width:680px; margin-bottom:52px;}
.section-head.center{margin-left:auto; margin-right:auto; text-align:center;}

/* ---------- Divider row (icon rows) ---------- */
.row-item{
  display:flex; gap:20px; padding:26px 0;
  border-top:1px solid var(--bdr-1);
}
.activated .row-item, .hotseat .row-item{border-top:1px solid rgba(255,255,255,.1);}
.row-item .idx{font-family:var(--font-kinetic); font-weight:800; font-size:28px; color:var(--logo-blue); min-width:50px;}
.activated .row-item .idx{color:var(--hustle-green);}
.hotseat .row-item .idx{color:var(--hotseat-red);}

/* ---------- Icon badge (alt to numbered .idx, for program-specific format lists) ---------- */
.row-item .idx-icon{
  flex:0 0 auto; width:52px; height:52px; border-radius:13px;
  display:flex; align-items:center; justify-content:center;
  background:rgba(127,216,88,.14); color:var(--hustle-green);
}
.row-item .idx-icon svg{width:24px; height:24px;}
.hotseat .row-item .idx-icon{background:rgba(204,34,51,.14); color:var(--hotseat-red);}

/* ---------- Route line (HustleBus stop visual) ---------- */
.route-line{position:relative; padding-left:2px; margin-bottom:4px;}
.route-line::before{
  content:""; position:absolute; left:6px; top:8px; bottom:8px; width:2px;
  background:repeating-linear-gradient(to bottom, var(--hustle-green) 0 6px, transparent 6px 12px);
  opacity:.5;
}

/* ---------- Episode card (Founder Hot Seat theme cards) ---------- */
.episode-card{
  border-radius:var(--radius); padding:24px; background:#1a1a1a; border:1px solid rgba(255,255,255,.1);
  position:relative; overflow:hidden;
}
.episode-card .ep-top{display:flex; align-items:center; justify-content:space-between; margin-bottom:18px;}
.episode-card .ep-play{
  flex:0 0 auto; width:38px; height:38px; border-radius:999px; background:rgba(204,34,51,.16); color:var(--hotseat-red);
  display:flex; align-items:center; justify-content:center;
}
.episode-card .ep-play svg{width:16px; height:16px;}
.episode-card .ep-wave{display:flex; align-items:flex-end; gap:3px; height:22px;}
.episode-card .ep-wave span{width:3px; background:rgba(204,34,51,.55); border-radius:2px; display:block;}
.episode-card h3{color:var(--white); margin-bottom:8px;}
.episode-card p{color:var(--white);}

/* ---------- Footer ---------- */
footer{background:var(--deep-navy); color:var(--white); padding:64px 0 28px;}
.activated footer, .hotseat footer{background:var(--black);}
.footer-top{display:flex; justify-content:space-between; gap:40px; flex-wrap:wrap; padding-bottom:44px; border-bottom:1px solid rgba(255,255,255,.12);}
.footer-brand img{height:34px; width:auto; max-width:100%; object-fit:contain; margin-bottom:14px;}
.footer-brand p{color:rgba(255,255,255,.65); max-width:280px; font-size:14.5px;}
.footer-cols{display:flex; gap:64px; flex-wrap:wrap;}
.footer-col h4{font-size:12.5px; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.5); margin-bottom:16px;}
.footer-col a{display:block; font-size:14.5px; color:rgba(255,255,255,.85); margin-bottom:11px;}
.footer-col a:hover{color:var(--hustle-green);}
.footer-bottom{display:flex; justify-content:space-between; padding-top:26px; font-size:13px; color:rgba(255,255,255,.5); flex-wrap:wrap; gap:10px;}

/* ---------- Utility ---------- */
.tag-line{
  font-family:var(--font-display); font-weight:900; letter-spacing:.02em;
  font-size:13px; text-transform:uppercase; color:var(--logo-blue);
}
.activated .tag-line, .hotseat .tag-line{color:var(--hustle-green);}
.hotseat .tag-line{color:var(--hotseat-red);}

.split{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start;}
@media (max-width:900px){.split{grid-template-columns:1fr; gap:32px;}}

.faq-item{border-top:1px solid var(--bdr-1); padding:22px 0;}
.faq-item h3{font-size:17px; margin-bottom:8px;}
.faq-item p{font-size:15px;}

.badge-note{
  display:inline-block; font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  background:rgba(4,77,241,.1); color:var(--logo-blue); padding:6px 12px; border-radius:6px; margin-bottom:16px;
}
.activated .badge-note{background:rgba(127,216,88,.12); color:var(--hustle-green);}
.hotseat .badge-note{background:rgba(204,34,51,.15); color:var(--hotseat-red);}

/* ---------- Audience doors (homepage hero) ---------- */
.door-row{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:36px;}
@media (max-width:900px){.door-row{grid-template-columns:1fr;}}
.door-card{
  display:block;
  border:2px solid var(--bdr-1); border-radius:var(--radius);
  padding:26px 24px; transition:border-color .15s ease, transform .15s ease;
}
.door-card:hover{border-color:var(--logo-blue); transform:translateY(-2px);}
.door-card .door-label{font-size:11.5px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--logo-blue); margin-bottom:10px;}
.door-card h3{font-size:19px; margin-bottom:8px;}
.door-card p{font-size:14.5px; margin-bottom:16px;}
.door-card .pc-link{font-weight:700; font-size:14px; color:var(--txt-1);}

/* ---------- Leverage stat band ($1M -> $1B) ---------- */
.leverage-band{background:var(--black); color:var(--white); padding:64px 0;}
.leverage-inner{display:flex; align-items:center; justify-content:center; gap:40px; flex-wrap:wrap; text-align:center;}
.leverage-num{font-family:var(--font-kinetic); font-weight:800; line-height:1;}
.leverage-num .n{font-size:clamp(48px,7vw,88px); display:block;}
.leverage-num .n.raise{color:var(--white);}
.leverage-num .n.impact{color:var(--hustle-green);}
.leverage-num .l{font-size:12.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.55); margin-top:6px;}
.leverage-arrow{font-size:36px; color:var(--hustle-green); font-family:var(--font-kinetic);}
.leverage-caption{text-align:center; max-width:560px; margin:28px auto 0; color:rgba(255,255,255,.7); font-size:15px;}

/* ---------- Why Ohio ---------- */
.why-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:22px;}
@media (max-width:900px){.why-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.why-grid{grid-template-columns:1fr;}}
.why-item{padding:26px 22px; background:var(--surf-1); border-radius:var(--radius);}
.why-item .why-num{font-family:var(--font-kinetic); font-weight:800; font-size:28px; color:var(--logo-blue); margin-bottom:10px;}
.why-item h3{font-size:16.5px; margin-bottom:8px;}
.why-item p{font-size:14px;}

/* ---------- Resource list ---------- */
.resource-item{
  display:flex; justify-content:space-between; align-items:flex-start; gap:20px;
  padding:22px 0; border-top:1px solid var(--bdr-1);
}
.resource-item h3{font-size:17px; margin-bottom:4px;}
.resource-item p{font-size:14.5px; margin:0;}
.resource-item .rlink{font-weight:700; font-size:14px; white-space:nowrap; color:var(--logo-blue);}
@media (max-width:560px){
  .resource-item{flex-direction:column; gap:10px;}
  .resource-item .rlink{align-self:flex-start;}
}

/* ---------- Resource explorer (search + filterable cards) ---------- */
.resource-explorer{margin-top:8px;}
.resource-search{position:relative; max-width:480px; margin-bottom:24px;}
.resource-search svg{position:absolute; left:16px; top:50%; transform:translateY(-50%); width:18px; height:18px; opacity:.45; pointer-events:none;}
.resource-search input{
  width:100%; font-family:inherit; font-size:15px; padding:13px 16px 13px 44px;
  border-radius:999px; border:1px solid var(--bdr-1); background:var(--surf-1); color:var(--txt-1);
}
.resource-search input::placeholder{color:var(--txt-1); opacity:.45;}
.resource-search input:focus{outline:2px solid var(--hustle-green); outline-offset:1px;}

.filter-pill-group{margin-bottom:16px;}
.filter-pill-group .fpg-label{display:block; font-size:11.5px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; opacity:.5; margin-bottom:10px;}
.filter-pills{display:flex; flex-wrap:wrap; gap:8px;}
.filter-pill{
  font-family:inherit; font-size:13.5px; font-weight:700; cursor:pointer;
  padding:8px 16px; border-radius:999px; border:1px solid var(--bdr-1);
  background:var(--surf-1); color:var(--txt-1); opacity:.75; transition:opacity .15s, background .15s, border-color .15s, color .15s;
}
.filter-pill:hover{opacity:1;}
.filter-pill.active{opacity:1; background:var(--hustle-green); border-color:var(--hustle-green); color:var(--black);}
.filter-pill[data-tag="underserved"].active{background:var(--hustle-green); border-color:var(--hustle-green); color:var(--black);}

.resource-count{font-size:13.5px; opacity:.6; margin:20px 0 18px;}

.resource-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
@media (max-width:980px){.resource-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:640px){.resource-grid{grid-template-columns:1fr;}}

.resource-card{
  display:flex; flex-direction:column; border:1px solid var(--bdr-1); border-radius:var(--radius);
  padding:22px; background:var(--surf-card); transition:border-color .15s, transform .15s;
}
.resource-card:hover{border-color:var(--hustle-green); transform:translateY(-2px);}
.resource-card h3{font-size:16.5px; margin-bottom:6px; line-height:1.25;}
.resource-card p{font-size:13.8px; line-height:1.5; opacity:.85; margin:0 0 16px; flex-grow:1;}
.resource-card .rc-tags{display:flex; flex-wrap:wrap; gap:6px; margin-bottom:14px;}
.resource-card .rc-tag{
  font-size:11px; font-weight:700; letter-spacing:.03em; padding:4px 10px; border-radius:999px;
  background:var(--surf-1); border:1px solid var(--bdr-1); opacity:.7;
}
.resource-card .rc-tag.rc-tag-underserved{
  background:rgba(127,216,88,.14); border-color:rgba(127,216,88,.3); color:var(--hustle-green); opacity:1;
}
.resource-card .rlink{font-weight:700; font-size:13.5px; color:var(--logo-blue); align-self:flex-start;}

.resource-empty{display:none; text-align:center; padding:48px 20px; opacity:.6;}
.resource-empty.show{display:block;}

/* ---------- Handoff / process row ---------- */
.handoff-row{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:40px;}
@media (max-width:900px){.handoff-row{grid-template-columns:1fr;}}
.handoff-step{position:relative; padding:28px 24px; background:var(--surf-1); border-radius:var(--radius);}
.handoff-step .hs-num{font-family:var(--font-kinetic); font-weight:800; font-size:32px; color:var(--logo-blue); margin-bottom:12px;}
.handoff-step h3{font-size:17px; margin-bottom:8px;}
.handoff-step p{font-size:14px;}

/* ---------- Footer newsletter ---------- */
.footer-newsletter{margin-top:18px;}
.footer-newsletter form{display:flex; gap:8px; max-width:320px;}
.footer-newsletter input{
  flex-grow:1; font-family:inherit; font-size:14px; padding:11px 14px; border-radius:8px;
  border:1px solid rgba(255,255,255,.2); background:rgba(255,255,255,.06); color:var(--white);
}
.footer-newsletter input::placeholder{color:rgba(255,255,255,.5);}
.footer-newsletter button{
  padding:11px 18px; border-radius:8px; border:none; background:var(--logo-blue); color:var(--white);
  font-weight:700; font-size:14px;
}
.activated .footer-newsletter button, .hotseat .footer-newsletter button{background:var(--hustle-green); color:var(--black);}

/* ---------- Report stack visual ---------- */
.report-stack{
  position:relative; height:340px; max-width:280px; margin:0 auto;
}
.report-stack .rs-page{
  position:absolute; inset:0; border-radius:10px;
  box-shadow:0 18px 40px rgba(2,21,56,.18);
  display:flex; flex-direction:column; justify-content:space-between;
  padding:26px 22px;
}
.report-stack .rs-page.rs-3{background:var(--mist); transform:rotate(6deg); z-index:1;}
.report-stack .rs-page.rs-2{background:var(--navy); transform:rotate(-4deg); z-index:2;}
.report-stack .rs-page.rs-1{background:var(--deep-navy); transform:rotate(1deg); z-index:3; color:var(--white);}
.report-stack .rs-1 .rs-eyebrow{font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--hustle-green);}
.report-stack .rs-1 h4{font-family:var(--font-display); font-weight:900; font-size:24px; line-height:1.15; color:var(--white); margin-top:10px;}
.report-stack .rs-1 .rs-year{font-family:var(--font-kinetic); font-weight:800; font-size:15px; color:rgba(255,255,255,.6);}

/* ---------- Testimonial card ---------- */
.testimonial-card{
  display:flex; gap:24px; align-items:flex-start; padding:32px; border-radius:var(--radius);
  border:1px solid var(--bdr-1); background:var(--surf-card); max-width:640px; margin:0 auto;
}
.testimonial-card .tc-avatar{
  flex:0 0 auto; width:76px; height:76px; border-radius:999px; object-fit:cover;
  border:2px solid var(--bdr-1); display:block;
}
.testimonial-card .tc-avatar.tc-initials{
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-weight:900; font-size:22px; color:var(--txt-1);
  background:rgba(127,216,88,.14);
}
.testimonial-card .tc-quote{font-size:19px; line-height:1.45; color:var(--txt-1); font-weight:600; margin-bottom:14px;}
.testimonial-card .tc-name{font-weight:800; color:var(--txt-1); font-size:15px;}
.testimonial-card .tc-role{font-size:13.5px; opacity:.6; color:var(--txt-1);}
@media (max-width:600px){
  .testimonial-card{flex-direction:column; align-items:center; text-align:center;}
}

/* ---------- Quote grid (social proof, no headshot) ---------- */
.quote-grid{display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:28px;}
.quote-card{padding:32px; border-radius:var(--radius); border:1px solid var(--bdr-1); background:var(--surf-card);}
.quote-card .qc-mark{font-family:Georgia,serif; font-size:42px; line-height:1; color:var(--hustle-green); opacity:.5; display:block; margin-bottom:6px;}
.quote-card .qc-text{font-size:16.5px; line-height:1.55; color:var(--txt-1); margin-bottom:22px;}
.quote-card .qc-divider{border:none; border-top:1px solid var(--bdr-1); margin-bottom:14px;}
.quote-card .qc-name{font-weight:800; color:var(--txt-1); font-size:15px;}
.quote-card .qc-role{font-size:13.5px; opacity:.6; color:var(--txt-1); margin-top:2px;}
@media (max-width:700px){.quote-grid{grid-template-columns:1fr;}}

/* ---------- Photo strip (event highlight images) ---------- */
.photo-strip{display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:28px;}
.photo-strip img{width:100%; height:190px; object-fit:cover; min-width:0; min-height:0; border-radius:var(--radius); display:block; border:1px solid var(--bdr-1);}
@media (max-width:700px){
  .photo-strip{grid-template-columns:1fr 1fr;}
  .photo-strip img:nth-child(n+5){display:none;}
}

/* ---------- Logo marquee (partner / university scroll bar) ---------- */
.logo-marquee{
  position:relative; overflow:hidden; padding:6px 0;
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
  mask-image:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.logo-marquee .lm-track{
  display:flex; align-items:center; gap:14px; width:max-content;
  animation:lm-scroll 34s linear infinite;
}
.logo-marquee.lm-short .lm-track{animation-duration:20s;}
.logo-marquee:hover .lm-track, .logo-marquee:focus-within .lm-track{animation-play-state:paused;}
.logo-marquee .lm-item{
  flex:0 0 auto; display:flex; align-items:center; justify-content:center;
  min-width:190px; height:64px; padding:0 22px; border-radius:10px;
  border:1px solid var(--bdr-1); background:var(--surf-card);
  font-family:var(--font-display); font-weight:800; font-size:14.5px; text-align:center; line-height:1.2;
  color:var(--txt-1); opacity:.78; transition:opacity .2s, border-color .2s;
}
.logo-marquee .lm-item:hover, .logo-marquee .lm-item:focus-visible{opacity:1; border-color:var(--logo-blue);}
@keyframes lm-scroll{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}
@media (prefers-reduced-motion: reduce){
  .logo-marquee .lm-track{animation:none;}
}

/* ---------- Report carousel (preview pages) ---------- */
.report-carousel{
  position:relative; border-radius:var(--radius); overflow:hidden;
  border:1px solid var(--bdr-1); background:var(--surf-card);
  box-shadow:0 18px 40px rgba(2,21,56,.14);
}
.report-carousel .rc-viewport{position:relative; overflow:hidden; aspect-ratio:16/9; background:var(--black);}
.report-carousel .rc-track{display:flex; height:100%; transition:transform .5s cubic-bezier(.2,.7,.2,1);}
.report-carousel .rc-slide{flex:0 0 100%; height:100%;}
.report-carousel .rc-slide img{width:100%; height:100%; object-fit:contain; display:block; background:var(--black);}
.report-carousel .rc-btn{
  position:absolute; top:50%; transform:translateY(-50%); width:42px; height:42px; border-radius:999px;
  background:rgba(10,10,10,.55); color:var(--white); border:1px solid rgba(255,255,255,.22);
  display:flex; align-items:center; justify-content:center; cursor:pointer; backdrop-filter:blur(4px);
}
.report-carousel .rc-btn:hover{background:rgba(10,10,10,.78);}
.report-carousel .rc-prev{left:14px;}
.report-carousel .rc-next{right:14px;}
.report-carousel .rc-meta{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:14px 20px; border-top:1px solid var(--bdr-1); flex-wrap:wrap;
}
.report-carousel .rc-counter{font-family:var(--font-kinetic); font-weight:700; font-size:13px; color:var(--txt-1); opacity:.6; white-space:nowrap;}
.report-carousel .rc-dots{display:flex; gap:6px; flex-wrap:wrap; justify-content:center;}
.report-carousel .rc-dots button{
  width:7px; height:7px; border-radius:999px; border:none; background:var(--bdr-1); padding:0; cursor:pointer;
}
.report-carousel .rc-dots button.active{background:var(--logo-blue); width:18px;}
@media (max-width:640px){
  .report-carousel .rc-btn{width:34px; height:34px;}
  .report-carousel .rc-dots{display:none;}
}

/* ---------- Report gate (email unlock) ---------- */
.report-gate{
  border:1px solid var(--bdr-1); border-radius:var(--radius);
  padding:28px; background:var(--surf-card);
}
.report-gate .rg-lock{
  display:inline-flex; align-items:center; justify-content:center;
  width:38px; height:38px; border-radius:999px; background:rgba(4,77,241,.14); color:var(--logo-blue);
  margin-bottom:14px;
}
.report-gate h3{font-size:18px; margin-bottom:6px;}
.report-gate p{font-size:14.5px; margin-bottom:18px;}
.gate-form{display:flex; gap:10px; flex-wrap:wrap;}
.gate-form input{
  flex-grow:1; min-width:180px; font-family:inherit; font-size:14px; padding:12px 14px;
  border-radius:8px; border:1px solid rgba(14,33,72,.18); background:var(--white); color:var(--navy);
}
.gate-form button{
  padding:12px 20px; border-radius:8px; border:none; background:var(--logo-blue); color:var(--white);
  font-weight:700; font-size:14px; white-space:nowrap;
}
.report-viewer{
  display:none; margin-top:18px; border-radius:10px; overflow:hidden; border:1px solid var(--bdr-1);
}
.report-viewer.unlocked{display:block;}
.report-viewer iframe{width:100%; height:520px; border:none; display:block;}
.gate-note{font-size:12.5px; opacity:.55; margin-top:10px;}

/* ---------- Sponsor tiers ---------- */
.sponsor-tier{margin-bottom:44px;}
.sponsor-tier:last-child{margin-bottom:0;}
.sponsor-tier-label{font-size:12.5px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--logo-blue); margin-bottom:18px;}
.sponsor-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px;}
.sponsor-grid.sponsor-grid-3{grid-template-columns:repeat(3,1fr);}
@media (max-width:900px){.sponsor-grid, .sponsor-grid.sponsor-grid-3{grid-template-columns:repeat(2,1fr);}}
@media (max-width:480px){.sponsor-grid, .sponsor-grid.sponsor-grid-3{grid-template-columns:1fr;}}
.sponsor-tile{
  display:flex; align-items:center; justify-content:center; text-align:center;
  height:96px; border-radius:10px; background:var(--surf-1); border:1px dashed var(--bdr-1);
  font-size:13px; font-weight:700; color:var(--txt-1); opacity:.6; padding:12px;
}
.sponsor-tier.presenting .sponsor-tile{height:120px; font-size:15px;}

/* ---------- Access wall (gated directory) ---------- */
.access-wall{
  text-align:center; padding:64px 40px; background:var(--surf-1); border-radius:var(--radius);
  max-width:620px; margin:0 auto 48px;
}
.access-wall .rg-lock{margin:0 auto 18px;}
.access-wall h2{margin-bottom:12px;}
.access-wall p{max-width:440px; margin:0 auto 28px;}
.access-preview-toggle{
  display:block; text-align:center; font-size:13px; color:var(--txt-1); opacity:.4;
  margin:-24px auto 40px; text-decoration:underline; background:none; border:none; font-family:inherit; cursor:pointer;
}
.gated-content{display:none;}
.gated-content.demo-visible{display:block;}

/* ---------- Login form ---------- */
.login-card{max-width:400px; margin:0 auto; background:var(--surf-card); border:1px solid var(--bdr-1); border-radius:var(--radius); padding:36px;}

/* ---------- Role toggle (registration) ---------- */
.role-toggle{display:inline-flex; background:var(--surf-1); border-radius:999px; padding:5px; gap:4px; margin-bottom:36px;}
.role-toggle button{
  border:none; background:none; padding:11px 22px; border-radius:999px;
  font-family:inherit; font-weight:700; font-size:14.5px; color:var(--txt-1); opacity:.6;
}
.role-toggle button.active{background:var(--surf-card); opacity:1; box-shadow:0 2px 8px rgba(2,21,56,.1);}
.reg-form-panel{display:none;}
.reg-form-panel.active{display:block;}

.check-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin-top:6px;}
@media (max-width:560px){.check-grid{grid-template-columns:1fr;}}
.check-item{
  display:flex; align-items:center; gap:10px; padding:12px 14px;
  border:1px solid rgba(14,33,72,.15); border-radius:8px; font-size:14.5px; cursor:pointer;
  background:var(--white); color:var(--navy);
}
.check-item input{width:16px; height:16px; accent-color:var(--logo-blue); flex-shrink:0;}
.check-item:has(input:checked){border-color:var(--logo-blue); background:#E4ECFF; color:var(--navy);}  /* solid tint: a translucent fill let dark text sink into the dark page */

.reg-confirm{
  display:none; text-align:center; padding:44px 32px; background:var(--mist); border-radius:var(--radius);
}
.reg-confirm.show{display:block;}
.reg-confirm .rc-icon{
  width:56px; height:56px; border-radius:999px; background:rgba(4,77,241,.12); color:var(--logo-blue);
  display:flex; align-items:center; justify-content:center; margin:0 auto 18px;
}
.reg-confirm h3{font-size:22px; margin-bottom:10px; color:var(--navy);}
.reg-confirm p{max-width:420px; margin:0 auto; color:var(--navy); opacity:.85;}

/* ---------- Slack community band ---------- */
.slack-band{background:var(--deep-navy); color:var(--white);}
.slack-inner{display:flex; align-items:center; gap:40px; justify-content:space-between; flex-wrap:wrap;}
.slack-icon{
  width:64px; height:64px; border-radius:16px; background:rgba(127,216,88,.14);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.slack-icon svg{width:32px; height:32px;}
.slack-copy{flex:1; min-width:260px;}
.slack-copy h2{color:var(--white); margin-bottom:10px;}
.slack-copy p{color:rgba(255,255,255,.75); max-width:520px;}
.slack-cta{flex-shrink:0;}

/* ---------- Recap cards ---------- */
.recap-card{border-radius:var(--radius); overflow:hidden; border:1px solid var(--bdr-1);}
.recap-card .recap-img{height:170px; background:linear-gradient(135deg, var(--deep-navy), var(--navy)); display:flex; align-items:center; justify-content:center; overflow:hidden;}
.recap-card .recap-img span{color:rgba(255,255,255,.4); font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;}
.recap-card .recap-img img{width:100%; height:100%; object-fit:cover; display:block;}
.recap-card .recap-img-grid{display:grid; gap:2px; height:170px; overflow:hidden;}
.recap-card .recap-img-grid.cols-2{grid-template-columns:1fr 1fr;}
.recap-card .recap-img-grid.cols-3{grid-template-columns:1fr 1fr 1fr;}
.recap-card .recap-img-grid img{width:100%; height:100%; min-width:0; min-height:0; object-fit:cover; display:block;}
.recap-card .recap-body{padding:20px;}
.recap-card .recap-date{font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--logo-blue); margin-bottom:8px;}
.recap-card h3{font-size:16.5px; margin-bottom:6px;}
.recap-card p{font-size:14px;}

/* ---------- Member app (gated directory, map, submit, admin) ---------- */
.hp{position:absolute; left:-9999px; width:1px; height:1px; opacity:0;}
.form-status{display:none; font-size:14px; font-weight:600; padding:12px 14px; border-radius:8px; background:rgba(127,216,88,.14); color:var(--txt-1);}
.form-status.show{display:block;}
.form-status.error{background:rgba(204,34,51,.16); border:1px solid rgba(204,34,51,.4);}
.form-status.ok{background:rgba(127,216,88,.16); border:1px solid rgba(127,216,88,.4);}

.member-bar{display:flex; flex-wrap:wrap; gap:12px 20px; align-items:center; justify-content:space-between; padding:14px 18px; margin-bottom:28px; border:1px solid var(--bdr-1); border-radius:var(--radius); background:var(--surf-1); font-size:14px;}
.member-bar a, .member-bar button{font-weight:700; color:var(--logo-blue); background:none; border:none; font-family:inherit; font-size:14px; cursor:pointer; padding:0;}
.member-bar .mb-links{display:flex; flex-wrap:wrap; gap:18px;}

.tab-bar{display:inline-flex; flex-wrap:wrap; background:var(--surf-1); border-radius:999px; padding:5px; gap:4px; margin-bottom:24px;}
.tab-bar button{border:none; background:none; padding:10px 20px; border-radius:999px; font-family:inherit; font-weight:700; font-size:14px; color:var(--txt-1); opacity:.6; cursor:pointer;}
.tab-bar button.active{background:var(--surf-card); opacity:1; box-shadow:0 2px 8px rgba(2,21,56,.12);}

.app-toolbar{display:flex; flex-wrap:wrap; gap:12px; margin-bottom:20px;}
.app-toolbar .resource-search{margin:0; flex:1 1 260px; max-width:none;}
.app-select{font-family:inherit; font-size:14px; padding:12px 16px; border-radius:999px; border:1px solid var(--bdr-1); background:var(--surf-1); color:var(--txt-1);}
.app-select option{color:#0E2148; background:#fff;}

.dir-card .rc-tags{display:flex; flex-wrap:wrap; gap:6px; margin:12px 0;}
.dir-card .rc-tag{font-size:11px; font-weight:700; padding:4px 10px; border-radius:999px; background:var(--surf-1); border:1px solid var(--bdr-1); opacity:.75;}
.dir-card .rc-tag.rc-tag-underserved{background:rgba(127,216,88,.14); border-color:rgba(127,216,88,.3); color:var(--hustle-green); opacity:1;}
.dir-card a.rlink{font-weight:700; font-size:13.5px; color:var(--logo-blue);}
.pending-pill{display:inline-block; font-size:11px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; padding:3px 9px; border-radius:999px; background:rgba(255,193,7,.16); color:#e6a800; margin-left:8px; vertical-align:middle;}

.endorse-row{display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:14px; padding-top:14px; border-top:1px solid var(--bdr-1);}
.endorse-btn{font-family:inherit; font-size:13px; font-weight:700; padding:7px 14px; border-radius:999px; border:1px solid var(--hustle-green); background:none; color:var(--hustle-green); cursor:pointer;}
.endorse-btn:hover{background:var(--hustle-green); color:#000;}
.endorse-btn[disabled]{opacity:.5; cursor:default; background:none; color:var(--txt-1); border-color:var(--bdr-1);}
.endorse-count{font-size:13px; opacity:.7;}
.endorse-form{display:none; width:100%; gap:8px;}
.endorse-form.open{display:flex;}
.endorse-form input{flex:1; font-family:inherit; font-size:13.5px; padding:9px 12px; border-radius:8px; border:1px solid rgba(14,33,72,.18); background:#fff; color:#0E2148;}

.map-layout{display:grid; grid-template-columns:1fr 300px; gap:20px; align-items:start;}
@media (max-width:900px){.map-layout{grid-template-columns:1fr;}}
#osn-map{height:600px; border-radius:var(--radius); border:1px solid var(--bdr-1); background:var(--surf-1); z-index:0;}
@media (max-width:640px){#osn-map{height:440px;}}
.map-side{border:1px solid var(--bdr-1); border-radius:var(--radius); padding:18px; background:var(--surf-card); max-height:600px; overflow:auto;}
.map-side h3{font-size:14px; letter-spacing:.06em; text-transform:uppercase; opacity:.7; margin:0 0 12px;}
.map-legend label{display:flex; align-items:center; gap:10px; font-size:14px; margin-bottom:8px; cursor:pointer;}
.map-legend .dot{width:12px; height:12px; border-radius:999px; display:inline-block;}
.map-side .sw-item{font-size:13.5px; padding:10px 0; border-top:1px solid var(--bdr-1);}
.map-side .sw-item a{font-weight:700; color:var(--logo-blue);}
.leaflet-popup-content{font-family:inherit; font-size:13.5px; line-height:1.45; color:#0E2148;}
.leaflet-popup-content strong{font-size:14.5px;}
.leaflet-popup-content a{color:#044DF1; font-weight:700;}

.queue-section{margin-bottom:44px;}
.queue-section > h3{font-size:14px; letter-spacing:.08em; text-transform:uppercase; opacity:.7; margin-bottom:14px;}
.queue-item{display:flex; flex-wrap:wrap; gap:14px 24px; justify-content:space-between; align-items:flex-start; padding:18px; border:1px solid var(--bdr-1); border-radius:var(--radius); background:var(--surf-card); margin-bottom:12px;}
.queue-item .qi-main{flex:1 1 360px; min-width:0;}
.queue-item h4{font-size:16.5px; margin:0 0 4px;}
.queue-item p{font-size:13.8px; margin:4px 0; opacity:.85;}
.queue-item .qi-meta{font-size:12.5px; opacity:.6;}
.queue-item .qi-actions{display:flex; gap:8px;}
.qi-actions button{font-family:inherit; font-size:13px; font-weight:800; padding:9px 16px; border-radius:999px; cursor:pointer; border:1px solid var(--bdr-1); background:none; color:var(--txt-1);}
.qi-actions .approve{background:var(--hustle-green); border-color:var(--hustle-green); color:#000;}
.qi-actions .reject:hover{border-color:#CC2233; color:#CC2233;}
.queue-empty{font-size:14px; opacity:.55; padding:6px 0;}
.app-empty{text-align:center; padding:48px 20px; opacity:.6; display:none;}
.app-empty.show{display:block;}

/* ---------- Resource explorer: member strip ---------- */
.resource-member-strip{display:flex; flex-wrap:wrap; gap:16px 32px; justify-content:space-between; align-items:center; margin-top:36px; padding:22px 26px; border:1px solid var(--bdr-1); border-radius:var(--radius); background:var(--surf-1); font-size:14.5px;}
.resource-member-strip > div:first-child{flex:1 1 320px;}
.resource-member-strip .rms-links{display:flex; flex-wrap:wrap; gap:10px 24px;}

/* ---- Unified directory (list + map) ---- */
.dx-top{display:flex; gap:12px; flex-wrap:wrap; align-items:center;}
.dx-top .resource-search{flex:1 1 320px; margin:0;}
.dx-seg{display:inline-flex; border:1px solid var(--bdr-1); border-radius:999px; overflow:hidden; background:var(--surf-1);}
.dx-seg button{background:none; border:0; color:inherit; font:inherit; font-size:13.5px; font-weight:600; padding:9px 16px; cursor:pointer; opacity:.75;}
.dx-seg button.active{background:var(--logo-blue); color:#fff; opacity:1;}
.dx-ftoggle{background:var(--surf-1); border:1px solid var(--bdr-1); color:inherit; font:inherit; font-size:13.5px; font-weight:600; padding:9px 16px; border-radius:999px; cursor:pointer;}
.dx-fbadge{display:inline-block; min-width:18px; padding:0 5px; margin-left:4px; border-radius:999px; background:var(--logo-blue); color:#fff; font-size:11px; line-height:18px; text-align:center;}
.dx-filters{margin-top:14px; padding:16px; border:1px solid var(--bdr-1); border-radius:var(--radius); background:var(--surf-1); display:grid; gap:12px;}
.dx-filters[hidden]{display:none;}
.dx-fgroup h5{margin:0 0 6px; font-size:11px; letter-spacing:.08em; text-transform:uppercase; opacity:.6;}
.dx-link{background:none; border:0; padding:0; color:var(--logo-blue); font:inherit; font-size:13.5px; font-weight:700; cursor:pointer; text-decoration:none; justify-self:start;}
.dx-bar{display:flex; justify-content:space-between; align-items:center; margin:14px 0 10px; font-size:13px; opacity:.85;}
.dx-body{display:grid; grid-template-columns:minmax(300px,420px) 1fr; gap:18px; align-items:start;}
.dx-list{max-height:640px; overflow-y:auto; display:grid; gap:8px; padding-right:4px;}
.dx-mapwrap{position:sticky; top:84px;}
.dx-mapwrap #osn-map{height:640px;}
.dx-unpinned{font-size:12px; opacity:.6; margin:6px 2px 0;}
.dx-card{display:flex; gap:10px; padding:12px 14px; border:1px solid var(--bdr-1); border-radius:12px; background:var(--surf-1); cursor:pointer; transition:border-color .15s;}
.dx-card:hover,.dx-card.open{border-color:var(--logo-blue);}
.dx-dot{flex:0 0 10px; height:10px; border-radius:50%; margin-top:7px;}
.dx-main{min-width:0; flex:1;}
.dx-card h3{margin:0; font-size:15.5px; line-height:1.3;}
.dx-meta{font-size:12px; opacity:.6; margin:2px 0 4px;}
.dx-desc{margin:0 0 6px; font-size:13.5px; opacity:.85; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;}
.dx-card.open .dx-desc{display:block; -webkit-line-clamp:unset;}
.dx-actions{display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin-top:10px;}
.dx-rec{font-size:12.5px; opacity:.8;}
.dx-actions .endorse-form{flex-basis:100%;}
@media (max-width:900px){.dx-body{grid-template-columns:1fr;} .dx-mapwrap{position:static; order:-1;} .dx-mapwrap #osn-map{height:320px;} .dx-list{max-height:none;}}
.dx-fgroup .filter-pill-group{display:flex; flex-wrap:wrap; gap:8px; margin:0;}

/* ---- Newsletter / events signup ---- */
.news-msg{display:none; margin:8px 0 0; font-size:13px; font-weight:600;}
.news-msg.show{display:block;} .news-msg.ok{color:var(--hustle-green,#7FD858);} .news-msg.err{color:#FF8A80;}
.news-card{max-width:760px; margin:0 auto; padding:32px; border:1px solid var(--bdr-1); border-radius:var(--radius); background:var(--surf-1); text-align:center;}
.news-card h2{margin:0 0 8px;} .news-card p{opacity:.85;}
.news-big{display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin-top:18px;}
.news-big input[type="text"],.news-big input[type="email"]{flex:1 1 200px; padding:12px 14px; border-radius:10px; border:1px solid var(--bdr-1); background:var(--bg, transparent); color:inherit; font:inherit;}
.footer-newsletter .news-msg{max-width:320px;}
.hp{position:absolute !important; left:-9999px; width:1px; height:1px; opacity:0;}

/* ---- Directory v2: small tiles, support chips, like button, quick view ---- */
.dx-support{display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:12px;}
.dx-support-label{font-size:12px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; opacity:.55;}
.dx-support .filter-pill-group{display:flex; flex-wrap:wrap; gap:6px; margin:0;}
.dx-body{grid-template-columns:1fr 340px;}
.dx-list{display:grid; grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); gap:10px; max-height:680px; align-content:start;}
.dx-mapwrap #osn-map{height:680px;}
.dx-tile{position:relative; display:flex; flex-direction:column; gap:4px; padding:11px 12px 10px; border:1px solid var(--bdr-1); border-radius:10px; background:var(--surf-1); cursor:pointer; min-height:104px; transition:border-color .15s, transform .15s;}
.dx-tile:hover{border-color:var(--logo-blue); transform:translateY(-1px);}
.dx-tile h3{margin:0; font-size:14px; line-height:1.25; padding-right:4px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;}
.dx-tile .dx-sup{font-size:11.5px; font-weight:700; color:var(--logo-blue); line-height:1.3;}
.dx-tile .dx-where{font-size:11.5px; opacity:.6; margin-top:auto;}
.dx-tile .dx-dot{position:absolute; top:12px; right:12px; width:8px; height:8px; margin:0;}
.dx-tile h3{padding-right:18px;}
.dx-like{display:inline-flex; align-items:center; gap:4px; background:none; border:0; padding:2px 4px; margin:-2px -4px; color:inherit; font:inherit; font-size:12px; font-weight:700; cursor:pointer; opacity:.75; border-radius:6px;}
.dx-like svg{width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:2;}
.dx-like:hover{opacity:1;}
.dx-like.on{color:#FF5C7A; opacity:1;} .dx-like.on svg{fill:currentColor;}
.dx-tile .dx-foot{display:flex; justify-content:space-between; align-items:center;}
.dx-modal{position:fixed; inset:0; z-index:200; background:rgba(0,0,0,.55); display:flex; align-items:center; justify-content:center; padding:20px;}
.dx-modal[hidden]{display:none;}
.dx-sheet{position:relative; width:min(520px,100%); max-height:86vh; overflow:auto; background:var(--surf-1,#0E2148); border:1px solid var(--bdr-1); border-radius:16px; padding:26px;}
.dx-x{position:absolute; top:10px; right:14px; background:none; border:0; color:inherit; font-size:26px; line-height:1; cursor:pointer; opacity:.7;}
.dx-sheet h3{margin:0 0 4px; font-size:21px; padding-right:28px;}
.dx-sheet .dx-meta{margin-bottom:12px;}
.dx-sheet p{font-size:14.5px; line-height:1.55; opacity:.9;}
.dx-sheet .dx-sec{margin:14px 0 6px; font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; opacity:.55;}
.dx-sheet .dx-modal-actions{display:flex; align-items:center; gap:16px; margin-top:18px;}
@media (max-width:900px){.dx-body{grid-template-columns:1fr;} .dx-mapwrap #osn-map{height:300px;} .dx-list{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));}}

/* Pilots & Special Offers */
.pilot-opt{border:1px solid var(--bdr-1); border-radius:12px; padding:14px; background:var(--surf-1);}
.pilot-opt .pilot-fields[hidden]{display:none;}
.pl-card{border:1px solid var(--bdr-1); border-radius:14px; padding:20px; background:var(--surf-1); margin-top:16px;}
.pl-card h3{margin:0 0 4px; font-size:18px;}
.pl-live{color:var(--hustle-green); font-weight:800;}
.pl-card .osn-form{margin-top:14px;}
.pl-card .btn-row{display:flex; gap:10px; flex-wrap:wrap;}

/* Directory tiles v3: uniform, scannable */
.dx-list{grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); grid-auto-rows:132px; gap:10px; align-content:start;}
.dx-tile{min-height:0; height:100%; padding:12px 14px; gap:6px; overflow:hidden; border-radius:12px;}
.dx-tile .dx-kind{display:flex; align-items:center; gap:6px; font-size:10px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; opacity:.55;}
.dx-tile .dx-kind .dx-dot{position:static; width:7px; height:7px; flex:none;}
.dx-tile h3{font-size:14.5px; line-height:1.25; padding-right:0; min-height:2.5em; -webkit-line-clamp:2;}
.dx-tile .dx-chips{display:flex; gap:5px; overflow:hidden; white-space:nowrap; min-height:20px;}
.dx-tile .dx-chips span{font-size:11px; font-weight:700; color:var(--logo-blue); background:rgba(76,141,255,.12); padding:2px 8px; border-radius:999px; flex:none; max-width:100%; overflow:hidden; text-overflow:ellipsis;}
.dx-tile .dx-foot{margin-top:auto; padding-top:7px; border-top:1px solid var(--bdr-1); gap:8px;}
.dx-tile .dx-where{font-size:11.5px; margin:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0;}
.dx-bar-r{display:flex; align-items:center; gap:18px;}
.dx-sortl{font-size:12.5px; opacity:.85; display:inline-flex; align-items:center; gap:6px;}
.dx-sortl select{background:var(--surf-1); color:inherit; border:1px solid var(--bdr-1); border-radius:8px; padding:5px 8px; font:inherit; font-size:12.5px;}
@media (max-width:900px){.dx-list{grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); grid-auto-rows:136px;}}
.dx-like svg{stroke-linejoin:round; stroke-linecap:round;}
.dx-like.on{color:var(--logo-blue);}
.dx-sheet .dx-like{border:1px solid var(--bdr-1); border-radius:999px; padding:7px 14px; margin:0; font-size:13.5px; gap:7px;}
.dx-sheet .dx-like.on{background:rgba(76,141,255,.14); border-color:var(--logo-blue);}
.dx-body{grid-template-columns:1fr;}
.dx-list{max-height:none;}

/* Directory list view */
.dx-view button{padding:6px 14px; font-size:12.5px;}
.dx-rows{display:block; border:1px solid var(--bdr-1); border-radius:12px; overflow:hidden; background:var(--surf-1);}
.dx-rowhead, .dx-row{display:grid; grid-template-columns:minmax(0,2.2fr) minmax(0,2fr) minmax(0,1.1fr) 160px; gap:14px; align-items:center; padding:0 16px;}
.dx-rowhead{height:38px; font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; opacity:.7; border-bottom:1px solid var(--bdr-1);}
.dx-h{background:none; border:0; color:inherit; font:inherit; text-align:left; padding:0; cursor:pointer;}
.dx-h.on{color:var(--logo-blue); opacity:1;}
.dx-row{height:46px; border-bottom:1px solid var(--bdr-1); cursor:pointer; font-size:13.5px;}
.dx-row:last-child{border-bottom:0;}
.dx-row:hover, .dx-row:focus{background:rgba(76,141,255,.08); outline:none;}
.dx-row .dx-c-name{display:flex; align-items:center; gap:10px; min-width:0;}
.dx-row .dx-c-name strong{font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.dx-row .dx-dot{position:static; flex:none; width:8px; height:8px;}
.dx-row .dx-c-sup, .dx-row .dx-c-where{overflow:hidden; text-overflow:ellipsis; white-space:nowrap; opacity:.8; font-size:12.5px;}
.dx-row .dx-c-rec, .dx-rowhead .dx-c-rec{text-align:right; justify-self:end;}
@media (max-width:700px){
  .dx-rowhead{display:none;}
  .dx-row{grid-template-columns:minmax(0,1fr) auto; height:auto; padding:10px 14px; row-gap:2px;}
  .dx-row .dx-c-sup{grid-column:1; grid-row:2;} .dx-row .dx-c-where{grid-column:1; grid-row:3;}
  .dx-row .dx-c-rec{grid-column:2; grid-row:1 / span 3;}
}

/* Frozen filter bar */
.dx-sticky{position:sticky; top:72px; z-index:40; background:transparent; padding:10px 0 4px; margin:0 0 8px; border-bottom:1px solid transparent; transition:background .15s;}
.dx-sticky.stuck{background:var(--surf-0); border-bottom-color:var(--bdr-1);}
.dx-sticky .dx-support{margin-top:8px;}
.dx-sticky .dx-bar{margin:8px 0 4px;}
.dx-filters{margin-top:10px;}
@media (max-width:700px){.dx-sticky .dx-support-label{display:none;} .dx-sticky .dx-support .filter-pill-group{flex-wrap:nowrap; overflow-x:auto;}}

/* Partner logo tiles (logos are dark-on-white, so tiles stay white in both themes) */
.partner-tile{background:#fff; border-radius:14px; height:140px; display:flex; align-items:center; justify-content:center; padding:20px;}
.partner-tile img{max-width:100%; max-height:100%; object-fit:contain;}
.partner-tile span{color:#0A0A0A; font-weight:800; font-size:20px; letter-spacing:-.01em; text-align:center;}
.partner-grid{display:flex; flex-wrap:wrap; justify-content:center; gap:18px;}
.partner-grid > *{flex:0 1 calc(33.333% - 12px); min-width:220px;}
@media (max-width:700px){.partner-grid > *{flex-basis:100%;}}
a.partner-tile{text-decoration:none; transition:transform .15s, box-shadow .15s;} a.partner-tile:hover{transform:translateY(-2px); box-shadow:0 6px 18px rgba(0,0,0,.35);} a.sponsor-tile:hover{border-color:var(--hustle-green) !important;}

/* ================= Mobile hardening ================= */
html{-webkit-text-size-adjust:100%; text-size-adjust:100%;}
html, body{overflow-x:clip; max-width:100%;}
img, video, iframe{max-width:100%; height:auto;}
.theme-toggle{width:44px; height:44px;}
.nav-menu-btn{min-width:44px; min-height:44px; padding:9px;}
@media (max-width:900px){
  .reveal-right, .reveal-left{transform:translateY(24px);}  /* no sideways slide-in: it widened the page on phones */
  .nav-links a{padding:14px 4px; min-height:44px; display:flex; align-items:center;}
}
@media (max-width:700px){
  body{font-size:16px;}
  .btn{min-height:46px;}
  .pc-link, .rlink, .dx-link{display:inline-flex; align-items:center; min-height:44px;}
  .check-item{min-height:44px; padding-top:8px; padding-bottom:8px; align-items:center;}
  .check-item input[type=checkbox], .check-item input[type=radio]{width:20px; height:20px; flex:none;}
  .filter-pill{min-height:40px; padding:9px 16px; font-size:14px;}
  .osn-form input, .osn-form select, .osn-form textarea, .resource-search input{font-size:16px; min-height:46px;}   /* 16px stops iOS zooming into fields */
  .footer-col a, footer a{display:inline-block; padding:6px 0;}
  .hero{padding:64px 0 48px;}
  .hero .lede{font-size:17px;}
  .wrap{padding-left:20px; padding-right:20px;}
  .dx-seg button, .dx-ftoggle{min-height:44px;}
  .dx-top .dx-seg{width:100%; overflow-x:auto;}
  .dx-top .dx-seg button{flex:1 0 auto;}
  .dx-bar{flex-wrap:wrap; gap:8px;}
  .dx-bar-r{width:100%; justify-content:space-between; gap:10px;}
  .dx-sheet{padding:20px 18px; max-height:92vh;}
  .dx-like{padding:10px 12px; margin:-8px -8px;}
  .partner-tile{height:120px;}
  .sample-note, .eyebrow, .dx-sec, .dx-rowhead, .dx-kind{font-size:12.5px;}
}
@media (max-width:380px){
  .dx-bar-r .dx-seg button{padding:8px 10px;}
}
@media (max-width:700px){
  .filter-pill-group .fpg-label, .dir-card .dir-type, .door-card .door-label, .dx-tile .dx-sup, .dx-tile .dx-where{font-size:12.5px;}
  .rc-btn{min-width:44px; min-height:44px;}
  .sample-note a, .news-msg a, .footer-bottom a{display:inline-block; padding:8px 2px;}
  .login-links a, .form-links a{display:inline-block; padding:10px 0;}
}
@media (max-width:700px){
  .partner-grid{gap:12px;}
  .partner-grid > .partner-tile{flex:0 0 calc(50% - 6px); min-width:0; height:110px; padding:14px;}
  .partner-grid > .sponsor-tile{flex:0 0 100%; min-width:0;}
}

/* Startup directory preview */
.sd-bar{display:flex; gap:16px; align-items:center; flex-wrap:wrap; margin:8px 0 20px;}
.sd-bar input{flex:1 1 280px; min-height:44px; padding:10px 14px; font-size:16px; border-radius:10px; border:1px solid var(--border,rgba(255,255,255,.15)); background:var(--surf-1); color:inherit;}
.sd-note{font-size:14px; opacity:.7;}
.sd-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:16px;}
.sd-card{display:flex; flex-direction:column; background:var(--surf-1); border:1px solid var(--border,rgba(255,255,255,.12)); border-radius:14px; padding:18px;}
.sd-card h3{margin:0 0 4px; font-size:17px;}
.sd-meta{font-size:13px; opacity:.7; margin-bottom:8px;}
.sd-card p{font-size:14.5px; margin:0 0 10px;}
.sd-empty{grid-column:1/-1; opacity:.8;}
.sd-lock{margin-top:28px; display:flex; justify-content:center; text-align:center;}
.sd-lock[hidden]{display:none;}
/* Guard: images given explicit width/height attrs keep their aspect ratio */
.partner-tile img, .sponsor-tile img{width:auto; height:auto;}

/* Directory: filters live inside the frozen bar and scroll if tall */
.dx-sticky .dx-filters{margin:8px 0 4px; max-height:min(46vh, 380px); overflow-y:auto; -webkit-overflow-scrolling:touch;}
.dx-sticky.stuck{box-shadow:0 8px 20px rgba(0,0,0,.25);}
.dx-fgroup h5 small{font-weight:500; opacity:.6; text-transform:none; letter-spacing:0;}
#dx-clearall{margin-left:auto; min-height:32px; padding:0 8px;}
#dx-clearall[hidden]{display:none;}
.filter-pill[aria-pressed="true"]{font-weight:800;}

.dx-bar-l{display:flex; align-items:center; gap:14px;}
#dx-clearall{margin-left:0;}
@media (max-width:700px){
  .dx-sticky{padding-top:6px;}
  .dx-top{gap:8px;}
  .dx-top .dx-seg{width:auto; flex:1 1 0; min-width:0;}
  .dx-top .dx-ftoggle{flex:0 0 auto;}
  .dx-sticky .dx-bar{margin:6px 0 2px;}
  .dx-sticky .dx-bar-r a.dx-link{display:none;}
  .dx-sticky .dx-bar-r{width:auto; margin-left:auto;}
  .dx-sticky .dx-filters{max-height:30vh; padding:12px;}
  .dx-sticky .dx-view button{min-height:36px;}
}
@media (max-width:700px){ .dx-top .resource-search{flex:1 1 100%;} }

/* Founders repeater + listing manager */
.founder-row{display:grid; grid-template-columns:1fr 1fr 1.4fr; gap:8px; margin-bottom:8px;}
@media (max-width:600px){.founder-row{grid-template-columns:1fr;}}
.vis-note{font-size:13.5px; line-height:1.5; padding:12px 14px; border-radius:12px; border:1px solid var(--bdr-1); background:var(--surf-1); margin:0 0 18px;}
.vis-note b{font-weight:800;}
.danger-zone{margin-top:28px; padding-top:18px; border-top:1px solid var(--bdr-1);}
.btn-danger{background:transparent; color:#ff6b6b; border:1px solid #ff6b6b; border-radius:999px; padding:12px 22px; font-weight:700; cursor:pointer;}
.dx-founder{display:flex; align-items:center; gap:10px; padding:6px 0; font-size:15px;}
.dx-founder a{font-weight:700; font-size:13.5px;}
.legal{max-width:760px;}
.legal h2{font-size:22px; margin:28px 0 8px;}
.legal p{line-height:1.65;}
.acct-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:28px; margin-top:8px;}

/* Public resource pages */
.rs > *{max-width:860px;}
.rs .rc-tags{display:flex; flex-wrap:wrap; gap:8px;}
.rs .rc-tag{display:inline-block; padding:6px 12px; border:1px solid var(--bdr-1); border-radius:999px; font-size:13px; font-weight:600; text-decoration:none; background:var(--surf-1);}
.rs .rc-tag-underserved{border-color:var(--logo-blue);}
.rs h2{font-size:22px; margin:32px 0 12px;}
.rs-list{list-style:none; padding:0; margin:0; display:grid; gap:2px;}
.rs-list li{padding:14px 0; border-bottom:1px solid var(--bdr-1); line-height:1.5;}
.rs-list a{text-decoration:none;}
.rs-meta{font-size:13px; opacity:.65;}
.rs-sum{font-size:14.5px; opacity:.85;}
.rs-chips{list-style:none; padding:0; margin:0 0 8px; display:flex; flex-wrap:wrap; gap:8px;}
.rs-chips li a{display:inline-block; padding:10px 16px; border:1px solid var(--bdr-1); border-radius:999px; font-weight:600; font-size:14px; text-decoration:none; min-height:44px; line-height:24px;}
.rs-facts{display:grid; grid-template-columns:max-content 1fr; gap:10px 22px; margin:0 0 22px;}
.rs-facts dt{font-weight:800; font-size:13px; letter-spacing:.05em; text-transform:uppercase; opacity:.6;}
.rs-facts dd{margin:0;}
@media (max-width:600px){.rs-facts{grid-template-columns:1fr; gap:2px;} .rs-facts dd{margin-bottom:10px;}}
.rs-cta{margin:28px 0; padding:20px; border:1px solid var(--logo-blue); border-radius:14px; display:flex; gap:16px; align-items:center; justify-content:space-between; flex-wrap:wrap;}
.rs-note{font-size:13px; opacity:.65; margin-top:28px;}

/* Accessibility */
.skip-link{position:absolute; left:12px; top:-60px; z-index:1000; background:#fff; color:#000; padding:12px 18px; border-radius:10px; font-weight:800; text-decoration:none; transition:top .15s;}
.skip-link:focus{top:12px;}
:focus-visible{outline:3px solid #7FB0FF; outline-offset:2px;}
#main:focus{outline:none;}
@media (max-width:900px){
  .nav-links a, .dropdown-menu a{min-height:44px; display:flex; align-items:center;}
  footer .footer-col a{min-height:44px; display:flex; align-items:center;}
  .footer-bottom a{display:inline-block; padding:10px 4px;}
}

/* Startup directory: claimed / unclaimed */
.sd-head{display:flex; align-items:flex-start; justify-content:space-between; gap:10px;}
.sd-head h3{margin:0;}
.sd-badge{flex:none; font-size:11px; font-weight:700; letter-spacing:.04em; padding:3px 9px; border-radius:99px; white-space:nowrap;}
.sd-claimed{background:rgba(46,160,90,.16); color:#4cd08a;}
.sd-unclaimed{background:rgba(255,255,255,.08); color:var(--muted, #aab3c5);}
.sd-actions{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px 14px; margin-top:auto;}
.sd-claim{font-size:13px; font-weight:600; color:#6ea8ff; text-decoration:none;}
.sd-claim:hover{text-decoration:underline;}
html.light .sd-claimed{color:#1f7a45;} html.light .sd-unclaimed{background:rgba(0,0,0,.06); color:#5b6572;} html.light .sd-claim{color:#1f5fbf;}

/* ---------- Hero photo (faded background image behind page headers) ---------- */
.has-photo{position:relative; overflow:hidden;}
.has-photo > .wrap{position:relative; z-index:1;}
.hero-bg{position:absolute; top:0; right:0; bottom:0; width:64%; background-size:cover; background-position:center var(--py,40%); opacity:.55; pointer-events:none;
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 60%),linear-gradient(to bottom,#000 72%,transparent 100%);
  -webkit-mask-composite:source-in; mask-image:linear-gradient(to right,transparent 0,#000 60%),linear-gradient(to bottom,#000 72%,transparent 100%); mask-composite:intersect;}
html.light .hero-bg{opacity:.7;}
.band-photo .hero-bg{width:55%; opacity:.4;}
@media (max-width:760px){
  .hero-bg{width:100%; opacity:.22; -webkit-mask-image:linear-gradient(to bottom,#000 0,transparent 95%); mask-image:linear-gradient(to bottom,#000 0,transparent 95%);}
  html.light .hero-bg{opacity:.3;}
}

/* ---------- Photo feature (full-width photo with caption) ---------- */
.photo-feature{margin:0 0 36px;}
.photo-feature img{width:100%; height:clamp(220px,38vw,460px); object-fit:cover; border-radius:var(--radius); display:block; border:1px solid var(--bdr-1);}
.photo-feature figcaption{font-size:13.5px; opacity:.65; margin-top:10px; text-align:center;}

/* ---------- Natural-language search + prominent submit ---------- */
.dx-intent{font-size:13.5px; opacity:.75; margin:8px 2px 0;}
.dx-submit{white-space:nowrap; padding:11px 18px; min-height:44px;}
.mb-links .mb-cta{background:var(--logo-blue); color:#fff !important; padding:6px 14px; border-radius:999px; font-weight:800; opacity:1 !important;}
.dx-ai{margin:10px 0 0; padding:14px; border:1px solid var(--bdr-1); border-radius:var(--radius); background:var(--surf-card); display:grid; gap:8px;}
.dx-ai-a{margin:0 0 4px; font-weight:600;}
.dx-ai-pick{display:grid; gap:2px; text-align:left; padding:10px 12px; border:1px solid var(--bdr-1); border-radius:10px; background:transparent; color:inherit; cursor:pointer;}
.dx-ai-pick:hover{border-color:var(--logo-blue);}
.dx-ai-pick span{font-size:12.5px; opacity:.6;} .dx-ai-pick em{font-style:normal; font-size:14px; opacity:.85;}

/* Directory toolbar polish: [hidden] must win over component display rules */
.dx [hidden]{display:none !important;}
.dx-top .resource-search{flex:1 1 340px; min-width:240px;}
.dx-submit{display:inline-flex; align-items:center; height:44px; padding:0 18px; min-height:0; white-space:nowrap;}
.dx-top .btn-outline{height:44px; padding:0 16px; min-height:0; display:inline-flex; align-items:center;}

/* ---------- HustleBus routes + partner shout-out ---------- */
.hb-routes{display:grid; gap:10px;}
.hb-route{display:grid; grid-template-columns:170px 1fr; gap:14px; align-items:center; padding:16px 18px; border:1px solid var(--bdr-1); border-radius:var(--radius); background:var(--surf-card);}
.hb-route .hb-when{font-weight:800; color:var(--hustle-green);}
.hb-route .hb-what strong span{font-weight:500; opacity:.7;}
.hb-route .hb-what a{margin-left:10px; font-weight:700; color:var(--hustle-green);}
.hb-route-empty{grid-template-columns:1fr; gap:4px;}
.hb-route-empty span{opacity:.75;}
.hb-pill{display:inline-block; margin-left:10px; padding:2px 10px; border-radius:999px; font-size:12px; font-weight:700; border:1px solid var(--bdr-1);}
.hb-confirmed{background:rgba(127,216,88,.18); border-color:transparent;}
.hb-open{border-style:dashed;}
.partner-shout{max-width:760px; margin:0 auto; text-align:center;}
.partner-shout .btn-row{justify-content:center;}
@media (max-width:700px){.hb-route{grid-template-columns:1fr; gap:4px;}}
.photo-strip.tall img{height:300px;}
@media (max-width:700px){.photo-strip.tall img{height:200px;} .photo-strip.tall img:nth-child(n+3){display:block;}}

/* Alignment fixes: checkbox/radio rows inside forms and the signed-in member bar */
.osn-form label.check-item{display:flex; align-items:center; gap:10px; margin:0; font-size:14.5px; font-weight:500; letter-spacing:0; text-transform:none; line-height:1.3; opacity:1; color:var(--navy);}
.osn-form .check-item input[type=checkbox], .osn-form .check-item input[type=radio]{width:18px; height:18px; min-height:0; padding:0; margin:0; flex:none;}
.osn-form label.check-item > span{flex:1; min-width:0;}
@media (max-width:700px){
  .osn-form label.check-item{min-height:44px; padding-top:8px; padding-bottom:8px;}
  .osn-form .check-item input[type=checkbox], .osn-form .check-item input[type=radio]{width:20px; height:20px;}
}
.member-bar .mb-links{align-items:center;}
.member-bar a, .member-bar button{display:inline-flex; align-items:center; line-height:1.2; min-height:0; margin:0;}
.member-bar .mb-cta{min-height:0;}

/* Checkbox rows: box lines up with the FIRST line of text; wrapped lines stay flush with the text, not the box */
.osn-form label.check-item{align-items:flex-start; min-height:0; padding:12px 14px; line-height:1.35;}
.osn-form .check-item input[type=checkbox], .osn-form .check-item input[type=radio]{margin:1px 0 0; position:relative;}
@media (max-width:700px){
  .osn-form label.check-item{min-height:0; padding:12px 14px;}
  .osn-form .check-item input[type=checkbox], .osn-form .check-item input[type=radio]{margin-top:0;}
}

/* donate support strip */
.osn-support{background:var(--surf-1,#f4f4f1); border-top:1px solid rgba(0,0,0,.08); border-bottom:1px solid rgba(0,0,0,.08); padding:22px 0;}
.osn-support .wrap{display:flex; gap:16px 28px; align-items:center; justify-content:center; flex-wrap:wrap; text-align:center;}
.osn-support p{margin:0; max-width:640px; font-size:15px; line-height:1.5;}
.osn-support a.btn{white-space:nowrap;}
.osn-support-note{font-size:14px; margin:12px 0 0;}
.osn-support-note a{font-weight:700;}

/* HustleBus hero: copy left, poster as a contained card right */
.hb-hero .hero-bg{opacity:.28;}
.hb-hero-grid{display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:48px; align-items:center;}
.hb-hero-poster{margin:0;}
.hb-hero-poster img{display:block; width:100%; height:auto; border-radius:var(--radius); box-shadow:0 18px 48px rgba(0,0,0,.45); border:1px solid rgba(255,255,255,.12);}
@media (max-width:900px){
  .hb-hero-grid{grid-template-columns:1fr; gap:32px;}
  .hb-hero-poster{order:-1; max-width:520px;}
}

/* investors: align the CTA buttons at the bottom of each phase card */
.handoff-step{display:flex; flex-direction:column;}
.handoff-step .btn{margin-top:auto !important; align-self:flex-start;}
.handoff-step p{margin-bottom:20px;}

/* Startup logos + founders on claimed listings */
.osn-logo{flex:none; width:48px; height:48px; border-radius:12px; overflow:hidden; display:inline-flex; align-items:center; justify-content:center; background:#fff;}
.osn-logo img{width:100%; height:100%; object-fit:contain; display:block;}
.osn-logo-ini{background:hsl(var(--h,210) 45% 32%); color:#fff; font-weight:800; font-size:16px; letter-spacing:.02em;}
.sd-id{display:flex; align-items:center; gap:12px; min-width:0;}
.sd-id h3{min-width:0;}
.sd-founders{list-style:none; margin:0 0 10px; padding:10px 0 0; border-top:1px solid rgba(255,255,255,.1); display:grid; gap:6px; font-size:14px;}
.sd-founders li{display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px;}
.sd-fname{font-weight:700;}
.sd-frole{opacity:.75;}
.sd-fli{font-weight:700; font-size:13px;}
.dx-role{font-style:normal; opacity:.75; margin-left:6px; font-size:13.5px;}
.logo-row{display:flex; align-items:center; gap:14px; margin-top:6px;}
.logo-row .osn-logo{width:64px; height:64px;}

/* heading hierarchy fixes (visual size unchanged) */
.dx-fh{margin:0 0 6px; font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; opacity:.6;}
.dx-fh small{font-weight:500; opacity:.6; text-transform:none; letter-spacing:0;}
.grid-3 > .card > h2{font-size:20px; font-weight:700; margin-bottom:10px;}
.door-card h2{font-size:19px; font-weight:700; margin-bottom:8px;}
.reg-confirm h2{font-size:22px; font-weight:700; margin-bottom:10px; color:var(--navy);}

/* Events: drifting quote marquee (pauses on hover/focus; static grid for reduced motion) */
.quote-marquee.on{display:block; overflow:hidden; margin-top:28px; -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent); mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);}
.quote-marquee.on .qm-track{display:flex; gap:20px; width:max-content; animation:qm-scroll 70s linear infinite;}
.quote-marquee.on .quote-card{flex:none; width:min(400px,82vw); opacity:1 !important; transform:none !important; transition:border-color .2s, box-shadow .2s;}
.quote-marquee.on:hover .qm-track, .quote-marquee.on:focus-within .qm-track{animation-play-state:paused;}
.quote-marquee.on .quote-card:hover{border-color:var(--hustle-green); box-shadow:0 8px 28px rgba(0,0,0,.25);}
@keyframes qm-scroll{to{transform:translateX(calc(-50% - 10px));}}
.ev-programs .program-card{height:100%;}

/* Impact: unified numbers panel */
.impact-dash{display:grid; grid-template-columns:1.1fr 1fr; gap:56px; align-items:center;}
.impact-stats{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.12); border-radius:var(--radius); overflow:hidden;}
.impact-stats .stat{background:var(--black); padding:22px 20px; text-align:left;}
.impact-stats .num{font-family:var(--font-kinetic); font-weight:800; font-size:clamp(26px,3.4vw,38px); line-height:1; color:var(--hustle-green);}
.impact-stats .label{margin-top:8px; font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,.6);}
@media (max-width:860px){.impact-dash{grid-template-columns:1fr; gap:36px;}}

/* Startups page lock: investor + resource CTAs and benefits card */
.sd-lock .sd-actions-row{display:flex; flex-wrap:wrap; gap:12px; justify-content:center;}
.sd-lock{flex-direction:column; align-items:center; gap:24px;}
.sd-benefits{text-align:left; max-width:680px; width:100%; background:var(--surf-1); border:1px solid var(--bdr-1,rgba(255,255,255,.12)); border-radius:14px; padding:22px 26px;}
.sd-benefits h3{margin:0 0 12px; font-size:18px;}
.sd-benefits ul{margin:0; padding-left:20px; display:grid; gap:8px; font-size:15px;}

.sd-lock .sd-cols{display:grid; grid-template-columns:1fr 1fr; gap:20px; width:100%; text-align:left;}
.sd-lock .sd-cols .sd-benefits{max-width:none; display:flex; flex-direction:column;}
.sd-lock .sd-cols .sd-benefits .btn{margin-top:auto; align-self:flex-start;}
.sd-lock .sd-cols .sd-benefits ul{margin-bottom:20px;}
@media (max-width:760px){.sd-lock .sd-cols{grid-template-columns:1fr;}}

/* Mobile hardening for the new blocks */
@media (max-width:480px){
  .sd-head{flex-wrap:wrap;}
  .logo-row{flex-wrap:wrap;}
  .sd-lock .sd-actions-row .btn, .sd-lock .sd-cols .sd-benefits .btn{width:100%; justify-content:center; text-align:center; align-self:stretch;}
  .impact-stats .stat{padding:18px 14px;}
  .quote-marquee.on .qm-track{animation-duration:100s;}
  .ev-programs .program-card, .plug-top .program-card{padding-left:20px; padding-right:20px;}
}

/* Funders: logo tiles with names below */
.funder-grid{display:grid; grid-template-columns:repeat(2,minmax(0,280px)); gap:28px; justify-content:center; margin-top:8px;}
.funder .partner-tile{height:200px; padding:18px;}
.funder-name{margin-top:12px; text-align:center; font-weight:700; font-size:16px; color:var(--white);}
@media (max-width:560px){.funder-grid{grid-template-columns:minmax(0,300px);} .funder .partner-tile{height:180px;}}

.fund-sub{font-size:13px; letter-spacing:.1em; text-transform:uppercase; opacity:.65; margin:0 0 14px;}
.fund-support{margin:40px 0 0;} .fund-support ~ .photo-strip{margin-top:40px;}
.fund-support + .photo-strip, .fund-sub + .grid-3{margin-top:0;}
.fund-support{margin-bottom:8px;}
.funder-note{margin-top:4px; text-align:center; font-size:14px; color:rgba(255,255,255,.65);}

/* Network logo bar (shown only once 5+ approved, opted-in logos exist) */
#network-logos[hidden]{display:none;}
.nl-marquee{overflow:hidden; -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent); mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);}
.nl-track{display:flex; align-items:center; gap:20px; width:max-content; animation:nl-scroll 40s linear infinite;}
.nl-track.static{animation:none; flex-wrap:wrap; width:auto; justify-content:center;}
.nl-marquee:hover .nl-track{animation-play-state:paused;}
.nl-tile{flex:none; display:flex; align-items:center; justify-content:center; background:#fff; border-radius:14px; height:96px; min-width:150px; padding:16px 22px; text-decoration:none;}
.nl-tile img{max-height:60px; max-width:170px; width:auto; object-fit:contain; display:block;}
@keyframes nl-scroll{to{transform:translateX(calc(-50% - 10px));}}
@media (max-width:480px){.nl-tile{height:80px; min-width:120px; padding:12px 16px;} .nl-tile img{max-height:48px; max-width:130px;}}

/* Investor favorites */
.sd-head-r{display:flex; align-items:center; gap:8px; flex:none;}
.sd-fav{display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:50%; border:1px solid var(--bdr-1,rgba(255,255,255,.2)); background:transparent; color:var(--txt-1,#fff); opacity:.55; cursor:pointer; transition:opacity .15s, transform .15s, color .15s;}
.sd-fav svg path{fill:none;}
.sd-fav:hover{opacity:1; transform:scale(1.08);}
.sd-fav.on{opacity:1; color:#ff5d73; border-color:#ff5d73;}
.sd-fav.on svg path{fill:currentColor;}

/* Startup card: logo + badge/heart on one row, name below (no overlap) */
.sd-head{align-items:center; margin-bottom:10px;}
.sd-head-r{margin-left:auto; flex-wrap:wrap; justify-content:flex-end;}
.sd-card .sd-name{margin:0 0 4px; overflow-wrap:anywhere;}
.sd-card, .sd-card p, .sd-meta{min-width:0; overflow-wrap:anywhere;}
.sd-founders li{min-width:0;}

/* Logo box grows for wide logos (wordmarks), stays square for marks and initials */
.osn-logo{width:auto; min-width:48px; max-width:150px; height:48px; padding:4px;}
.osn-logo img{height:100%; width:auto; max-width:100%; object-fit:contain;}
.osn-logo-ini{width:48px; padding:0;}
.logo-row .osn-logo{width:auto; min-width:64px; max-width:200px; height:64px;}
.logo-row .osn-logo-ini{width:64px;}
.sd-head{flex-wrap:wrap; row-gap:8px;}

/* save-for-later bookmark on directory cards/rows */
.dx-acts{display:inline-flex; align-items:center; gap:10px;}
.dx-c-rec{display:inline-flex; align-items:center; gap:10px; justify-content:flex-end;}
.dx-save{display:inline-flex; align-items:center; background:none; border:0; padding:3px; margin:-3px; color:inherit; cursor:pointer; opacity:.7; border-radius:6px;}
.dx-save svg{width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;}
.dx-save:hover{opacity:1;} .dx-save.on{color:var(--logo-blue); opacity:1;} .dx-save.on svg{fill:currentColor;}

.dx-likecount{display:inline-flex; align-items:center; gap:4px; font-size:12px; font-weight:700; opacity:.7;}
.dx-likecount svg{width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;}

/* HustleBus event routes */
.hbe-list{display:grid; gap:18px;}
.hbe-card{border:1px solid var(--bdr-1); border-radius:16px; padding:18px 20px; background:rgba(255,255,255,.03);}
.hbe-card h3{margin:0 0 4px;} .hbe-meta{margin:0 0 8px; opacity:.8; font-size:14px;}
.hbe-meta a, .hbe-req a{color:var(--hustle-green); font-weight:700;}
.hbe-route{display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; align-items:center; padding:12px 0; border-top:1px solid var(--bdr-1);}
.hbe-rmain{display:grid; gap:4px; min-width:220px; flex:1 1 260px;}
.hbe-cities{font-size:13.5px; opacity:.8;} .hbe-seats{font-size:12.5px; font-weight:700; opacity:.85;}
.hbe-bar{height:6px; border-radius:999px; background:rgba(255,255,255,.12); overflow:hidden; max-width:260px;}
.hbe-bar span{display:block; height:100%; background:var(--hustle-green);}
.hbe-act{display:flex; gap:8px; align-items:center; flex-wrap:wrap;}
.hbe-act select, .hbe-reqform input{font-size:16px; padding:8px 10px; border-radius:8px; border:1px solid var(--bdr-1); background:transparent; color:inherit;}
.hbe-on{font-weight:700; color:var(--hustle-green);} .hbe-closed{opacity:.7; font-size:14px;}
.hbe-req{margin-top:10px; border-top:1px solid var(--bdr-1); padding-top:10px;}
.hbe-reqform{display:flex; gap:8px; flex-wrap:wrap; margin-top:8px;} .hbe-reqform input{flex:1 1 160px;}
@media (max-width:640px){ .hbe-act{width:100%;} .hbe-act .btn{width:100%; justify-content:center;} }

/* Directory on phones: toggle on its own full row, one-line scrolling help pills, no tall sticky header */
@media (max-width:700px){
  .dx-top .dx-seg{flex:1 1 100%; width:100%; min-width:0; overflow:hidden; order:3;}
  .dx-top .dx-seg button{flex:1 1 0; padding:9px 6px; white-space:nowrap; text-align:center;}
  .dx-top .btn-outline{flex:1 1 auto; justify-content:center;}
  .dx-support .filter-pill-group, .dx-sticky .dx-support .filter-pill-group{flex-wrap:nowrap; overflow-x:auto; padding-bottom:6px; scrollbar-width:none; -webkit-overflow-scrolling:touch;}
  .dx-support .filter-pill-group::-webkit-scrollbar{display:none;}
  .dx-support .filter-pill{flex:none; white-space:nowrap; padding:7px 14px; font-size:13px; line-height:1.2;}
  .dx-sticky{position:static;}
  .dx-bar{flex-wrap:wrap;}
  #dx-sort{max-width:150px; min-width:0;}
}
/* Quick-view tags: spaced pills (they rendered run together) */
.dx-sheet .rc-tags{display:flex; flex-wrap:wrap; gap:6px; margin:4px 0 10px;}
.dx-sheet .rc-tag{display:inline-block; padding:4px 10px; border-radius:999px; border:1px solid var(--bdr-1); background:var(--surf-1); font-size:12.5px; font-weight:600;}

/* Directory declutter: results first. No sticky stack, one slim bar, one scrollable row of topic chips. */
.dx-hero{padding-top:96px;}
.dx-hero + section{padding-top:12px !important;}
.dx-hero + section .member-bar{padding:8px 14px; margin-bottom:12px; font-size:13px;}
.dx-sticky, .dx-sticky.stuck{position:static; box-shadow:none; background:transparent; border-bottom-color:transparent; padding:0;}
.dx-top .dx-submit{padding:10px 16px; font-size:14px;}
.dx-support{flex-wrap:nowrap; margin-top:10px;}
.dx-support .filter-pill-group{flex-wrap:nowrap; overflow-x:auto; scrollbar-width:thin; padding-bottom:4px; -webkit-mask-image:linear-gradient(90deg,#000 94%,transparent); mask-image:linear-gradient(90deg,#000 94%,transparent);}
.dx-support .filter-pill-group > *{flex:0 0 auto; white-space:nowrap;}
.dx-support-label{white-space:nowrap;}

/* Homepage hero search */
.hero-search{display:flex; gap:10px; flex-wrap:wrap; margin:22px 0 22px; max-width:760px;}
.hero-search input{flex:1 1 320px; min-width:0; padding:14px 18px; border-radius:999px; border:1px solid rgba(255,255,255,.25); background:rgba(10,14,40,.72); color:#fff; font:inherit; font-size:16px;}
.hero-search input::placeholder{color:rgba(255,255,255,.65);}
.hero-search input:focus{outline:2px solid var(--hustle-green,#34d399); outline-offset:2px;}
.hero-search .btn{flex:0 0 auto;}
a.chip{display:inline-block;} a.chip:hover{filter:brightness(1.25);}
.sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;}


/* Footnotes sit just above the footer, not inside the stat boxes */
.fn-notes{padding:20px 0 28px; border-top:1px solid var(--bdr-1);}
.fn-notes p{margin:0 0 6px; font-size:12.5px; line-height:1.5; opacity:.7;}

/* Investors: Ohio venture market snapshot */
.vm-stats{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--bdr-1); border:1px solid var(--bdr-1); border-radius:var(--radius); overflow:hidden; margin:8px 0 32px;}
.vm-stat{background:var(--surf-1); padding:20px 18px;}
.vm-n{font-family:var(--font-kinetic); font-weight:800; font-size:clamp(26px,3.4vw,40px); line-height:1; color:var(--hustle-green);}
.vm-l{margin-top:8px; font-size:13px; opacity:.8;}
.vm-h{font-size:18px; margin:0 0 12px;}
.vm-scroll{overflow-x:auto; border:1px solid var(--bdr-1); border-radius:var(--radius); -webkit-overflow-scrolling:touch;}
.vm-table{width:100%; border-collapse:collapse; font-size:14.5px; min-width:520px;}
.vm-table th, .vm-table td{padding:10px 14px; text-align:left; border-bottom:1px solid var(--bdr-1); white-space:nowrap;}
.vm-table thead th{font-size:12px; letter-spacing:.06em; text-transform:uppercase; opacity:.7; background:var(--surf-1);}
.vm-table tbody th{font-weight:700;}
.vm-table tbody tr:last-child th, .vm-table tbody tr:last-child td{border-bottom:none;}
.vm-table .vm-num{text-align:right; font-variant-numeric:tabular-nums;}
.vm-src{margin:12px 0 0; font-size:12.5px; opacity:.75;}
.vm-src a{color:var(--logo-blue); font-weight:700;}
@media (max-width:700px){.vm-stats{grid-template-columns:repeat(2,1fr);}}

/* Investors: opt-in highlight cards */
.ih-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:16px; margin-top:8px;}
.ih-card{background:var(--surf-1); border:1px solid var(--bdr-1); border-radius:var(--radius); padding:18px;}
.ih-top{display:flex; gap:12px; align-items:center; margin-bottom:12px;}
.ih-top h3{margin:0; font-size:17px;} .ih-top h3 a{color:inherit; text-decoration:none;} .ih-top h3 a:hover{text-decoration:underline;}
.ih-city{margin:2px 0 0; font-size:12.5px; opacity:.7;}
.ih-hl{margin:0 0 12px; font-size:15px; line-height:1.5;}
.ih-chips{display:flex; flex-wrap:wrap; gap:6px;} .ih-chip{font-size:12px; padding:3px 10px; border-radius:999px; border:1px solid var(--bdr-1); opacity:.85;}

.vm-cta{display:flex; gap:16px; align-items:center; justify-content:space-between; flex-wrap:wrap; padding:16px 18px; margin:0 0 14px; border:1px solid var(--bdr-1); border-left:4px solid var(--hustle-green); border-radius:var(--radius); background:var(--surf-1);}
.vm-cta p{margin:0; flex:1 1 320px; font-size:14.5px;}
.vm-locked{display:inline-block; filter:blur(3.5px); opacity:.7; user-select:none; pointer-events:none;}

/* Investors: even vertical rhythm for the deal section; no double 96px gap before the directory */
#market-snapshot{padding-bottom:40px;}
#investor-highlights{padding-top:40px; padding-bottom:40px;}
#startup-dir{padding-top:40px;}
#market-snapshot .section-head{margin-bottom:24px;}
#market-snapshot .vm-stats{margin:0 0 24px;}
#market-snapshot .vm-cta{margin:0 0 24px;}
#market-snapshot .vm-h{margin:0 0 16px;}
#market-snapshot .vm-src{margin:16px 0 0;}
.vm-co{color:var(--logo-blue); font-weight:700; text-decoration:none;} .vm-co:hover{text-decoration:underline;}

#deal-card{padding-top:100px; padding-bottom:40px;}
.dc-back{margin:0 0 16px; font-size:14px;} .dc-back a{color:var(--logo-blue); font-weight:700;}
#deal-card .sd-grid{grid-template-columns:minmax(260px,420px);}

/* Founder perks */
.pk-filters{display:flex; flex-wrap:wrap; gap:8px; margin:0 0 20px;}
.pk-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:16px;}
.pk-card{background:var(--surf-1); border:1px solid var(--bdr-1); border-radius:var(--radius); padding:18px; display:flex; flex-direction:column; gap:10px;}
.pk-card h3{margin:0; font-size:18px; line-height:1.3;} .pk-card p{margin:0; font-size:14.5px; line-height:1.5;}
.pk-top{display:flex; gap:12px; align-items:center;} .pk-partner{font-weight:700; font-size:14px;} .pk-partner a{color:inherit; text-decoration:none;} .pk-partner a:hover{text-decoration:underline;}
.pk-cat{display:inline-block; margin-top:3px; font-size:12px; padding:2px 10px; border-radius:999px; border:1px solid var(--bdr-1); opacity:.85;}
.pk-meta{font-size:12.5px !important; opacity:.7;} .pk-act{margin-top:auto; padding-top:6px; display:flex; flex-wrap:wrap; gap:10px; align-items:center;}
.pk-redeem{width:100%;} .pk-redeem code{background:var(--surf-0); padding:2px 8px; border-radius:6px; font-size:14px;}
.pk-err{font-size:13.5px; margin:0;} .pk-err a{color:var(--logo-blue); font-weight:700;}
.pk-offer{margin-top:40px; padding:24px; border:1px solid var(--bdr-1); border-left:4px solid var(--hustle-green); border-radius:var(--radius); background:var(--surf-1);} .pk-offer h2{margin:0 0 6px; font-size:20px;} .pk-offer p{margin:0 0 14px;}
.pk-strip-head{display:flex; justify-content:space-between; align-items:flex-end; gap:16px; flex-wrap:wrap; margin-bottom:16px;}
.pk-strip{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:12px;}
.pk-mini{display:flex; gap:12px; align-items:center; padding:14px; border:1px solid var(--bdr-1); border-radius:var(--radius); background:var(--surf-1); text-decoration:none; color:inherit;}
.pk-mini strong{display:block; font-size:15px;} .pk-mini span{font-size:12.5px; opacity:.7;} .pk-mini:hover{border-color:var(--hustle-green);}
.pk-soon{margin:0; opacity:.75; font-size:14.5px;}

.claim-banner{margin:0 0 16px; padding:14px 16px; border:1px solid var(--bdr-1); border-left:4px solid var(--hustle-green); border-radius:var(--radius); background:var(--surf-1); font-size:14.5px; line-height:1.5;}

@media (max-width:640px){.swc-card{grid-template-columns:1fr !important}.swc-card img{max-width:240px}}

/* City landing pages */
.cc-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:16px;}
.cc-card{display:flex; flex-direction:column; gap:8px; padding:22px; border:1px solid var(--logo-blue); border-radius:14px; background:var(--surf-1); text-decoration:none; color:inherit; transition:transform .15s, border-color .15s;}
.cc-card:hover{transform:translateY(-2px); border-color:var(--hustle-green);}
.cc-name{font-size:20px; font-weight:700;}
.cc-card p{margin:0; opacity:.8; font-size:15px; line-height:1.5;}
.cc-go{margin-top:auto; padding-top:6px; font-weight:600; color:var(--hustle-green);}
.rs-more{margin:12px 0 0 18px; line-height:1.9;}
.program-card.swc-card{background:#141414;}
.program-card.swc-card .tag, .program-card.swc-card a.pc-link{color:var(--hustle-green);}
.program-card.swc-card h3, .program-card.swc-card p, .program-card.swc-card p strong{color:#fff;}
.qc-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:18px;}
.qc-card{display:flex; flex-direction:column; justify-content:space-between; gap:20px; padding:28px; border-radius:16px; background:var(--surf-1); border:1px solid var(--logo-blue); border-left:5px solid var(--hustle-green); text-decoration:none; color:inherit; transition:transform .15s;}
.qc-card:hover{transform:translateY(-2px);}
.qc-card blockquote{margin:0; font-size:20px; line-height:1.45; font-weight:600;}
.qc-src{display:flex; flex-direction:column; gap:4px; font-size:14px;}
.qc-src strong{font-size:16px;}
.qc-src span{opacity:.7;}
.qc-src .cc-go{opacity:1; margin-top:6px;}

/* ---------- Mobile compaction (<=640px) ---------- */
@media (max-width:640px){
  section{padding:40px 0;}
  header.hero{padding-top:40px; padding-bottom:28px;}
  h1{font-size:clamp(30px,8.4vw,38px);}
  h2{font-size:clamp(24px,6.8vw,30px);}
  h3{font-size:18px;}
  p{font-size:15.5px;}
  .lede{font-size:16px;}
  .section-head{margin-bottom:18px;}
  .m-swipe{display:flex !important; grid-template-columns:none !important; overflow-x:auto; scroll-snap-type:x mandatory; gap:12px; margin-left:-20px; margin-right:-20px; padding:4px 20px 14px; -webkit-overflow-scrolling:touch; scrollbar-width:none;}
  .m-swipe::-webkit-scrollbar{display:none;}
  .m-swipe > *{flex:0 0 82%; max-width:82%; min-width:0; scroll-snap-align:start; height:auto;}
  .m-swipe > .swc-card{flex-basis:88%; max-width:88%;}
  .m-hide{display:none !important;}
  .m-more{display:block; margin:16px auto 0; width:100%;}
  .stat-grid{gap:12px;}
  .program-card, .card, .sd-card, .recap-card .recap-body{padding:18px;}
  .rs-cta{padding:16px; gap:12px;}
}

/* Mobile: home page + accordions */
@media (max-width:640px){
  .door-row{gap:10px;}
  .door-row .door-card{padding:14px 16px;}
  .door-row .door-card p{display:none;}
  .door-row .door-card h2{font-size:18px; margin:2px 0 4px;}
  #home-directory .lede{display:none;}
  #home-directory .btn-row{margin-top:14px;}
  #home-directory .chip-row{gap:8px;}
  #mission p{font-size:16px !important; margin-bottom:14px !important;}
  #mission img{width:100% !important; max-width:320px;}
  .faq-item.m-acc{border-bottom:1px solid var(--bdr-1,rgba(128,128,128,.25)); padding:2px 0;}
  .faq-item.m-acc h3{cursor:pointer; position:relative; padding:12px 30px 12px 0; margin:0; font-size:16px;}
  .faq-item.m-acc h3::after{content:'+'; position:absolute; right:4px; top:10px; font-size:22px; font-weight:400;}
  .faq-item.m-acc.open h3::after{content:'\2013';}
  .faq-item.m-acc p{display:none; margin:0 0 14px;}
  .faq-item.m-acc.open p{display:block;}
}
