/*
 * Laney CMS — front-end styles.
 * All selectors are scoped under .laney-page so they don't leak into
 * the surrounding WP theme. Page-specific styles are further scoped to
 * .laney-about, .laney-resume, or .laney-case-study where needed.
 *
 * NOTE: This plugin does NOT enqueue Google Fonts. It assumes the active
 * theme already loads Fraunces, Space Mono, and Inter. This avoids the
 * "loading the same fonts twice" issue, which can cause subtle layout
 * shifts in the theme's own nav/header.
 *
 * NOTE: The plugin no longer styles the theme's site nav. The theme's own
 * site-wide custom CSS handles that (cream background, border-bottom, etc.).
 * Earlier versions added !important rules here that conflicted with the
 * theme's custom CSS — those have been removed.
 */

/* ============ VARIABLES (scoped) ============ */
.laney-page {
  --hot-pink: #FF3D7F;
  --acid-yellow: #F4FF61;
  --electric-blue: #2D5BFF;
  --cream: #FFF8E7;
  --ink: #0A0A0A;
  --lilac: #E0C7FF;
  --mint: #B6F5C9;
  --orange: #FF6B35;

  font-family: 'Inter', sans-serif;
  background: var(--cream);
  color: var(--ink);
  overflow-x: hidden;
}
.laney-page *,
.laney-page *::before,
.laney-page *::after { box-sizing: border-box; }
.laney-page h1, .laney-page h2, .laney-page h3,
.laney-page h4, .laney-page h5, .laney-page h6,
.laney-page p, .laney-page ul, .laney-page ol, .laney-page li,
.laney-page figure, .laney-page blockquote { margin: 0; padding: 0; }
.laney-page ul, .laney-page ol { list-style: none; }
.laney-page a { color: inherit; }
.laney-page img { max-width: 100%; height: auto; display: block; }

/* ============ FOOTER (shared) ============ */

/* Keyframes used by the mid-page marquee animation (About page) */
@keyframes laney-scroll {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

.laney-page .laney-footer {
  background: var(--ink); color: var(--cream);
  padding: 45px 30px 30px;
}
.laney-page .footer-content {
  max-width: 1400px; margin: 0 auto;
  display: grid; grid-template-columns: 2fr 1fr 1fr;
  gap: 60px; margin-bottom: 45px;
}
.laney-page .footer-logo {
  font-family: 'Fraunces', serif;
  font-size: 37px; font-weight: 900; font-style: italic;
  line-height: 1; margin-bottom: 16px;
}
.laney-page .footer-tag {
  font-family: 'Space Mono', monospace;
  font-size: 13px; color: var(--acid-yellow);
  text-transform: uppercase; letter-spacing: 0.1em;
}
.laney-page .footer-col h4 {
  font-family: 'Space Mono', monospace;
  font-size: 12px; text-transform: uppercase;
  letter-spacing: 0.1em; color: var(--acid-yellow);
  margin-bottom: 20px;
}
.laney-page .footer-col a {
  display: block; color: var(--cream); text-decoration: none;
  font-size: 15px; margin-bottom: 12px; transition: color 0.2s;
}
.laney-page .footer-col a:hover { color: var(--hot-pink); }
.laney-page .footer-bottom {
  max-width: 1400px; margin: 0 auto;
  padding-top: 32px; border-top: 1px solid rgba(255,248,231,0.2);
  display: flex; justify-content: space-between;
  font-family: 'Space Mono', monospace;
  font-size: 12px; text-transform: uppercase; letter-spacing: 0.1em;
}

/* ============ PAGE HEAD (shared structure, different colors per page) ============ */
.laney-page .page-head {
  padding: 60px 30px 45px;
  border-bottom: 2px solid var(--ink);
  background: var(--cream);
  position: relative;
  overflow: hidden;
}
/* About uses pink Crossroads-style hero */
.laney-about .page-head {
  background: var(--hot-pink);
  color: var(--cream);
}
.laney-about .page-head .breadcrumb { color: var(--acid-yellow); }
.laney-about .page-head .page-title { color: var(--cream); }
.laney-about .page-head .page-title em { color: var(--acid-yellow); }
.laney-about .page-head .page-title .highlight { color: var(--ink); background: var(--acid-yellow); padding: 0 8px; }
.laney-about .page-head .page-meta { color: var(--cream); }
.laney-about .page-head .page-meta strong { color: var(--acid-yellow); }
.laney-page .page-head-inner {
  max-width: 1400px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr auto;
  gap: 40px; align-items: end;
}
.laney-page .breadcrumb {
  font-family: 'Space Mono', monospace;
  font-size: 13px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.1em;
  color: var(--hot-pink); margin-bottom: 24px;
}
.laney-page .page-title {
  font-family: 'Fraunces', serif;
  font-size: clamp(48px, 9vw, 120px);
  font-weight: 900; line-height: 0.85;
  letter-spacing: -0.04em;
}
.laney-page .page-title em {
  font-style: italic; font-weight: 400;
  color: var(--electric-blue);
}
.laney-page .page-title .highlight {
  background: var(--acid-yellow);
  padding: 0 12px; display: inline-block;
  transform: rotate(-1deg);
}
.laney-page .page-meta {
  font-family: 'Space Mono', monospace;
  font-size: 12px; text-transform: uppercase;
  letter-spacing: 0.1em; line-height: 2;
  text-align: right;
  border-left: 2px solid var(--ink); padding-left: 24px;
}
.laney-page .page-meta strong { color: var(--hot-pink); }

/* Resume page head has lilac background */
.laney-resume .page-head {
  background: var(--lilac);
}

/* ============ CTA (shared blue band) ============ */
.laney-page .cta {
  padding: 90px 30px;
  background: var(--electric-blue);
  color: var(--cream);
  text-align: center;
  border-bottom: 2px solid var(--ink);
}
.laney-page .cta-content { max-width: 900px; margin: 0 auto; }
.laney-page .cta-title {
  font-family: 'Fraunces', serif;
  font-size: clamp(42px, 8vw, 90px);
  font-weight: 900; line-height: 0.9;
  letter-spacing: -0.03em; margin-bottom: 32px;
}
.laney-page .cta-title em { font-style: italic; font-weight: 400; color: var(--acid-yellow); }
.laney-page .cta-text {
  font-size: 16px; line-height: 1.5;
  max-width: 600px; margin: 0 auto 48px;
}
.laney-page .cta-btn {
  display: inline-flex; align-items: center; gap: 12px;
  background: var(--acid-yellow); color: var(--ink);
  padding: 24px 48px; border: 2px solid var(--ink);
  border-radius: 100px;
  font-size: 14px; font-weight: 700; text-decoration: none;
  box-shadow: 8px 8px 0 var(--ink);
  transition: all 0.2s;
}
.laney-page .cta-btn:hover {
  transform: translate(2px, 2px);
  box-shadow: 4px 4px 0 var(--ink);
}

/* =========================================================================
   HOME-SPECIFIC
   ========================================================================= */

/* HERO */
.laney-home .hero {
  padding: 60px 30px 90px;
  position: relative;
  overflow: hidden;
}
.laney-home .hero-grid {
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
  position: relative;
}
.laney-home .hero-tag {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: var(--acid-yellow);
  border: 2px solid var(--ink);
  padding: 8px 16px;
  border-radius: 100px;
  font-family: 'Space Mono', monospace;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 32px;
  box-shadow: 4px 4px 0 var(--ink);
}
.laney-home .hero-tag::before {
  content: '●';
  color: var(--hot-pink);
  animation: laney-pulse 1.5s infinite;
}
@keyframes laney-pulse {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0.3; }
}
.laney-home .hero-headline {
  font-family: 'Fraunces', serif;
  font-size: clamp(42px, 7.5vw, 90px);
  font-weight: 900;
  line-height: 0.9;
  letter-spacing: -0.04em;
  margin-bottom: 40px;
}
.laney-home .hero-headline .word-1      { display: inline-block; }
.laney-home .hero-headline .word-italic {
  font-style: italic;
  font-weight: 400;
  color: var(--hot-pink);
  display: inline-block;
  transform: rotate(-2deg);
}
.laney-home .hero-headline .word-block {
  background: var(--electric-blue);
  color: var(--cream);
  padding: 0 12px;
  display: inline-block;
  transform: rotate(1deg);
}
.laney-home .hero-headline .word-underline {
  text-decoration: underline;
  text-decoration-color: var(--acid-yellow);
  text-decoration-thickness: 8px;
  text-underline-offset: 4px;
}
.laney-home .hero-description {
  font-size: 15px;
  line-height: 1.5;
  max-width: 480px;
  margin-bottom: 40px;
  color: var(--ink);
}
.laney-home .hero-description strong {
  background: var(--lilac);
  padding: 0 4px;
  font-weight: 600;
}
.laney-home .hero-actions {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  align-items: center;
}
.laney-home .btn-pink {
  background: var(--hot-pink);
  color: var(--cream);
  padding: 18px 32px;
  border: 2px solid var(--ink);
  border-radius: 100px;
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 6px 6px 0 var(--ink);
  transition: all 0.2s;
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.laney-home .btn-pink:hover {
  transform: translate(2px, 2px);
  box-shadow: 2px 2px 0 var(--ink);
}
.laney-home .btn-outline {
  background: transparent;
  color: var(--ink);
  padding: 18px 32px;
  border: 2px solid var(--ink);
  border-radius: 100px;
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.2s;
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.laney-home .btn-outline:hover {
  background: var(--ink);
  color: var(--cream);
}

/* HERO VISUAL */
.laney-home .hero-visual {
  position: relative;
  aspect-ratio: 4/5;
}
.laney-home .hero-photo {
  position: absolute;
  inset: 0;
  border: 3px solid var(--ink);
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 12px 12px 0 var(--ink);
}
.laney-home .hero-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.laney-home .portrait-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%; height: 100%;
  font-family: 'Fraunces', serif;
  font-size: 156px;
  font-weight: 900;
  background: var(--lilac);
}
.laney-home .sticker {
  position: absolute;
  background: var(--cream);
  border: 2px solid var(--ink);
  padding: 12px 16px;
  border-radius: 100px;
  font-family: 'Space Mono', monospace;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  box-shadow: 4px 4px 0 var(--ink);
  z-index: 2;
}
.laney-home .sticker-1 {
  top: -20px; left: -30px;
  background: var(--acid-yellow);
  transform: rotate(-8deg);
}
.laney-home .sticker-2 {
  bottom: 80px; right: -40px;
  background: var(--mint);
  transform: rotate(6deg);
}
.laney-home .sticker-3 {
  top: 40%; left: -50px;
  background: var(--lilac);
  transform: rotate(-4deg);
}

/* STRENGTHS */
.laney-home .strengths {
  padding: 90px 30px;
  background: var(--cream);
  border-bottom: 2px solid var(--ink);
}
.laney-home .section-header {
  max-width: 1400px;
  margin: 0 auto 80px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: end;
}
.laney-home .section-eyebrow {
  font-family: 'Space Mono', monospace;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--hot-pink);
  margin-bottom: 16px;
}
.laney-home .section-title {
  font-family: 'Fraunces', serif;
  font-size: clamp(36px, 6vw, 66px);
  font-weight: 900;
  line-height: 0.95;
  letter-spacing: -0.03em;
}
.laney-home .section-title em {
  font-style: italic;
  font-weight: 400;
  color: var(--electric-blue);
}
.laney-home .section-intro {
  font-size: 14px;
  line-height: 1.5;
  padding-bottom: 12px;
}
.laney-home .strengths-grid {
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.laney-home .strength-card {
  border: 2px solid var(--ink);
  border-radius: 12px;
  padding: 40px;
  background: var(--cream);
  position: relative;
  transition: all 0.3s;
}
.laney-home .strength-card:nth-child(1) { background: var(--lilac); }
.laney-home .strength-card:nth-child(2) { background: var(--mint); }
.laney-home .strength-card:nth-child(3) { background: var(--acid-yellow); }
.laney-home .strength-card:hover {
  transform: translate(-4px, -4px);
  box-shadow: 8px 8px 0 var(--ink);
}
.laney-home .strength-number {
  font-family: 'Space Mono', monospace;
  font-size: 14px;
  font-weight: 700;
  margin-bottom: 24px;
}
.laney-home .strength-icon {
  width: 64px; height: 64px;
  background: var(--ink);
  color: var(--cream);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  margin-bottom: 24px;
}
.laney-home .strength-title {
  font-family: 'Fraunces', serif;
  font-size: 25px;
  font-weight: 700;
  line-height: 1.1;
  margin-bottom: 16px;
}
.laney-home .strength-desc {
  font-size: 15px;
  line-height: 1.5;
}

/* TOOLS */
.laney-home .tools {
  padding: 90px 30px;
  background: var(--ink);
  color: var(--cream);
  border-bottom: 2px solid var(--ink);
}
.laney-home .tools-header {
  max-width: 1400px;
  margin: 0 auto 80px;
  text-align: center;
}
.laney-home .tools-header .section-eyebrow { color: var(--acid-yellow); }
.laney-home .tools-header .section-title   { color: var(--cream); }
.laney-home .tools-header .section-title em { color: var(--hot-pink); }
.laney-home .tools-grid {
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border: 2px solid var(--cream);
  border-radius: 16px;
  overflow: hidden;
}
.laney-home .tool-card {
  padding: 40px;
  border-right: 2px solid var(--cream);
  border-bottom: 2px solid var(--cream);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 220px;
  transition: all 0.2s;
}
.laney-home .tool-card:nth-child(3n)   { border-right: none; }
.laney-home .tool-card:nth-child(n+7)  { border-bottom: none; }
.laney-home .tool-card:hover           { background: var(--hot-pink); }
.laney-home .tool-name {
  font-family: 'Fraunces', serif;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.1;
  margin-bottom: 12px;
}
.laney-home .tool-cat {
  font-family: 'Space Mono', monospace;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--acid-yellow);
}
.laney-home .tool-card:hover .tool-cat { color: var(--ink); }

/* PORTFOLIO PREVIEW */
.laney-home .portfolio {
  padding: 90px 30px;
  background: var(--lilac);
  border-bottom: 2px solid var(--ink);
}
.laney-home .portfolio-grid {
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 24px;
}
.laney-home .portfolio-card {
  border: 2px solid var(--ink);
  border-radius: 12px;
  padding: 40px;
  position: relative;
  overflow: hidden;
  background: var(--cream);
  text-decoration: none;
  color: var(--ink);
  transition: all 0.3s;
}
.laney-home .portfolio-card:hover {
  transform: translate(-4px, -4px);
  box-shadow: 8px 8px 0 var(--ink);
}
.laney-home .portfolio-card.featured {
  grid-row: span 2;
  background: var(--hot-pink);
  color: var(--cream);
  min-height: 600px;
}
.laney-home .portfolio-card.small   { background: var(--acid-yellow); }
.laney-home .portfolio-card.small-2 { background: var(--mint); }
.laney-home .portfolio-tag {
  display: inline-block;
  font-family: 'Space Mono', monospace;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  background: var(--ink);
  color: var(--cream);
  padding: 6px 12px;
  border-radius: 100px;
  margin-bottom: 24px;
}
.laney-home .portfolio-card.featured .portfolio-tag {
  background: var(--cream);
  color: var(--ink);
}
.laney-home .portfolio-title {
  font-family: 'Fraunces', serif;
  font-size: clamp(24px, 4vw, 42px);
  font-weight: 900;
  line-height: 0.95;
  letter-spacing: -0.02em;
  margin-bottom: 16px;
}
.laney-home .portfolio-card.featured .portfolio-title {
  font-size: clamp(30px, 5vw, 54px);
}
.laney-home .portfolio-desc {
  font-size: 15px;
  line-height: 1.5;
  margin-bottom: 24px;
}
.laney-home .portfolio-arrow {
  font-family: 'Space Mono', monospace;
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

/* =========================================================================
   PORTFOLIO-SPECIFIC
   ========================================================================= */

/* PAGE HEAD (mint background variant) */
.laney-portfolio .pf-head {
  background: var(--mint);
}

/* FILTERS */
.laney-portfolio .filters {
  padding: 32px 40px;
  background: var(--cream);
  border-bottom: 2px solid var(--ink);
}
.laney-portfolio .filters-inner {
  max-width: 1400px; margin: 0 auto;
  display: flex; gap: 12px; flex-wrap: wrap;
  align-items: center;
}
.laney-portfolio .filter-label {
  font-family: 'Space Mono', monospace;
  font-size: 12px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.1em;
  margin-right: 8px;
}
.laney-portfolio .filter-btn {
  background: var(--cream);
  border: 2px solid var(--ink);
  border-radius: 100px;
  padding: 8px 18px;
  font-family: 'Space Mono', monospace;
  font-size: 12px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.05em;
  cursor: pointer;
  transition: all 0.15s;
  color: var(--ink);
}
.laney-portfolio .filter-btn:hover { background: var(--lilac); }
.laney-portfolio .filter-btn.active {
  background: var(--ink); color: var(--cream);
  box-shadow: 3px 3px 0 var(--ink);
}

/* GRID — magazine masonry */
.laney-portfolio .portfolio {
  padding: 60px 30px 90px;
  background: var(--cream);
  border-bottom: 2px solid var(--ink);
}
.laney-portfolio .portfolio-grid {
  max-width: 1400px; margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  grid-auto-rows: minmax(180px, auto);
  gap: 20px;
}
.laney-portfolio .pf-card {
  border: 3px solid var(--ink);
  border-radius: 12px;
  padding: 32px;
  text-decoration: none;
  color: var(--ink);
  position: relative;
  overflow: hidden;
  display: flex; flex-direction: column;
  justify-content: space-between;
  transition: all 0.3s;
  background: var(--cream);
}
.laney-portfolio .pf-card:hover {
  transform: translate(-5px, -5px);
  box-shadow: 10px 10px 0 var(--ink);
}

/* size variants */
.laney-portfolio .pf-hero   { grid-column: span 4; grid-row: span 2; min-height: 460px; background: var(--hot-pink); color: var(--cream); }
.laney-portfolio .pf-tall   { grid-column: span 2; grid-row: span 2; min-height: 460px; background: var(--electric-blue); color: var(--cream); }
.laney-portfolio .pf-wide   { grid-column: span 4; grid-row: span 1; min-height: 240px; background: var(--acid-yellow); }
.laney-portfolio .pf-sq     { grid-column: span 2; grid-row: span 1; min-height: 240px; background: var(--lilac); }
.laney-portfolio .pf-sq-2   { grid-column: span 2; grid-row: span 1; min-height: 240px; background: var(--mint); }
.laney-portfolio .pf-sq-3   { grid-column: span 2; grid-row: span 1; min-height: 240px; background: var(--orange); color: var(--cream); }
.laney-portfolio .pf-wide-2 { grid-column: span 4; grid-row: span 1; min-height: 240px; background: var(--cream); }

.laney-portfolio .pf-tag {
  display: inline-block;
  font-family: 'Space Mono', monospace;
  font-size: 11px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.1em;
  background: var(--ink); color: var(--cream);
  padding: 6px 12px; border-radius: 100px;
  margin-bottom: 16px;
  align-self: flex-start;
}
.laney-portfolio .pf-hero .pf-tag,
.laney-portfolio .pf-tall .pf-tag,
.laney-portfolio .pf-sq-3 .pf-tag {
  background: var(--cream); color: var(--ink);
}
.laney-portfolio .pf-title {
  font-family: 'Fraunces', serif;
  font-weight: 900;
  line-height: 0.95;
  letter-spacing: -0.02em;
  margin-bottom: 14px;
}
.laney-portfolio .pf-hero   .pf-title { font-size: clamp(30px, 5vw, 54px); }
.laney-portfolio .pf-tall   .pf-title { font-size: clamp(24px, 4vw, 36px); }
.laney-portfolio .pf-wide   .pf-title,
.laney-portfolio .pf-wide-2 .pf-title { font-size: clamp(20px, 3.2vw, 30px); }
.laney-portfolio .pf-sq     .pf-title,
.laney-portfolio .pf-sq-2   .pf-title,
.laney-portfolio .pf-sq-3   .pf-title { font-size: 22px; }
.laney-portfolio .pf-title em { font-style: italic; font-weight: 400; }
.laney-portfolio .pf-desc {
  font-size: 14px; line-height: 1.5;
  margin-bottom: 16px; max-width: 520px;
}
.laney-portfolio .pf-hero .pf-desc,
.laney-portfolio .pf-tall .pf-desc { font-size: 15px; }
.laney-portfolio .pf-meta {
  display: flex; justify-content: space-between;
  align-items: center;
  font-family: 'Space Mono', monospace;
  font-size: 11px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.1em;
  border-top: 2px solid currentColor;
  padding-top: 14px;
  opacity: 0.85;
}
.laney-portfolio .pf-arrow {
  font-family: 'Space Mono', monospace;
  font-size: 13px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.1em;
}
.laney-portfolio .pf-num {
  position: absolute;
  top: 24px; right: 28px;
  font-family: 'Fraunces', serif;
  font-size: 25px; font-weight: 900; font-style: italic;
  opacity: 0.4;
}

/* Marquee variant: blue (different from other pages) */
.laney-portfolio .marquee-blue {
  background: var(--electric-blue);
}

/* CTA variant: dark (different from blue used elsewhere) */
.laney-portfolio .cta-dark {
  background: var(--ink);
  color: var(--cream);
}
.laney-portfolio .cta-dark .cta-title em { color: var(--hot-pink); }
.laney-portfolio .cta-dark .cta-btn {
  background: var(--acid-yellow); color: var(--ink);
  border-color: var(--cream);
  box-shadow: 8px 8px 0 var(--cream);
}
.laney-portfolio .cta-dark .cta-btn:hover {
  box-shadow: 4px 4px 0 var(--cream);
}

/* =========================================================================
   ABOUT-SPECIFIC
   ========================================================================= */

/* INTRO */
.laney-about .intro {
  padding: 75px 30px;
  background: var(--cream);
  border-bottom: 2px solid var(--ink);
  position: relative;
}
.laney-about .intro-grid {
  max-width: 1400px; margin: 0 auto;
  display: grid; grid-template-columns: 1.2fr 1fr;
  gap: 80px; align-items: center;
}
.laney-about .intro-text .pull-quote {
  font-family: 'Fraunces', serif;
  font-size: clamp(24px, 4vw, 42px);
  font-weight: 400; font-style: italic;
  line-height: 1.05; letter-spacing: -0.02em;
  margin-bottom: 32px;
}
.laney-about .intro-text .pull-quote .mark {
  background: var(--hot-pink); color: var(--cream);
  padding: 0 8px; font-style: normal; font-weight: 900;
  transform: rotate(-1deg); display: inline-block;
}
.laney-about .intro-text p {
  font-size: 14px; line-height: 1.6;
  margin-bottom: 20px; max-width: 580px;
}
.laney-about .intro-text p strong {
  background: var(--lilac); padding: 0 4px; font-weight: 600;
}
.laney-about .signature {
  font-family: 'Fraunces', serif; font-style: italic;
  font-size: 25px; margin-top: 32px;
  transform: rotate(-3deg); display: inline-block;
  color: var(--electric-blue);
}
.laney-about .portrait-stack { position: relative; aspect-ratio: 4/5; }
.laney-about .portrait {
  position: absolute; inset: 0;
  border: 3px solid var(--ink);
  border-radius: 8px; overflow: hidden;
  box-shadow: 12px 12px 0 var(--ink);
  background: var(--lilac);
  display: flex; align-items: center; justify-content: center;
}
.laney-about .portrait img { width: 100%; height: 100%; object-fit: cover; display: block; }
.laney-about .portrait-placeholder {
  font-family: 'Fraunces', serif; font-style: italic;
  font-size: clamp(60px, 14vw, 150px); font-weight: 900;
  color: var(--cream); letter-spacing: -0.04em;
}
.laney-about .badge {
  position: absolute;
  background: var(--cream); border: 2px solid var(--ink);
  padding: 14px 18px; border-radius: 100px;
  font-family: 'Space Mono', monospace;
  font-size: 12px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.05em;
  box-shadow: 4px 4px 0 var(--ink); z-index: 2;
}
.laney-about .badge-1 { top: -20px; left: -30px; background: var(--acid-yellow); transform: rotate(-8deg); }
.laney-about .badge-2 { bottom: 60px; right: -50px; background: var(--mint); transform: rotate(6deg); }
.laney-about .badge-3 { top: 45%; left: -40px; background: var(--hot-pink); color: var(--cream); transform: rotate(-4deg); }

/* Q&A */
.laney-about .qa {
  padding: 90px 30px;
  background: var(--electric-blue);
  color: var(--cream);
  border-bottom: 2px solid var(--ink);
  position: relative;
}
.laney-about .qa-header {
  max-width: 1400px; margin: 0 auto 64px;
  text-align: center;
}
.laney-about .qa-eyebrow {
  font-family: 'Space Mono', monospace;
  font-size: 13px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.1em;
  color: var(--acid-yellow); margin-bottom: 16px;
}
.laney-about .qa-title {
  font-family: 'Fraunces', serif;
  font-size: clamp(36px, 7vw, 72px);
  font-weight: 900; line-height: 0.95;
  letter-spacing: -0.03em;
}
.laney-about .qa-title em {
  font-style: italic; font-weight: 400;
  color: var(--acid-yellow);
}
.laney-about .qa-grid {
  max-width: 1200px; margin: 0 auto;
  display: grid; grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}
.laney-about .qa-card {
  background: var(--cream); color: var(--ink);
  border: 3px solid var(--ink); border-radius: 16px;
  padding: 36px; position: relative;
  transition: all 0.3s;
}
.laney-about .qa-card:nth-child(1) { background: var(--acid-yellow); }
.laney-about .qa-card:nth-child(2) { background: var(--lilac); }
.laney-about .qa-card:nth-child(3) { background: var(--mint); }
.laney-about .qa-card:nth-child(4) { background: var(--hot-pink); color: var(--cream); }
.laney-about .qa-card:nth-child(5) { background: var(--cream); }
.laney-about .qa-card:nth-child(6) { background: var(--orange); color: var(--cream); }
.laney-about .qa-card:hover {
  transform: translate(-4px, -4px);
  box-shadow: 8px 8px 0 var(--ink);
}
.laney-about .qa-q {
  font-family: 'Space Mono', monospace;
  font-size: 12px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.1em;
  margin-bottom: 14px; opacity: 0.85;
}
.laney-about .qa-a {
  font-family: 'Fraunces', serif;
  font-size: clamp(18px, 2.6vw, 28px);
  font-weight: 600; line-height: 1.1;
  letter-spacing: -0.02em;
}
.laney-about .qa-a em { font-style: italic; font-weight: 400; }
.laney-about .qa-link {
  display: inline-block;
  margin-top: 10px;
  font-family: 'Space Mono', monospace;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--hot-pink);
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}
.laney-about .qa-link:hover { color: var(--ink); }

/* DESK */
.laney-about .desk {
  padding: 90px 30px;
  background: var(--cream);
  border-bottom: 2px solid var(--ink);
}
.laney-about .desk-header {
  max-width: 1400px; margin: 0 auto 60px;
  display: grid; grid-template-columns: 1fr 1fr; gap: 40px;
  align-items: end;
}
.laney-about .desk-eyebrow {
  font-family: 'Space Mono', monospace;
  font-size: 13px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.1em;
  color: var(--hot-pink); margin-bottom: 16px;
}
.laney-about .desk-title {
  font-family: 'Fraunces', serif;
  font-size: clamp(36px, 6vw, 66px);
  font-weight: 900; line-height: 0.95;
  letter-spacing: -0.03em;
}
.laney-about .desk-title em { font-style: italic; font-weight: 400; color: var(--electric-blue); }
.laney-about .desk-intro {
  font-size: 14px; line-height: 1.5;
  padding-bottom: 8px;
}
.laney-about .desk-grid {
  max-width: 1400px; margin: 0 auto;
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.laney-about .desk-item {
  border: 2px solid var(--ink); border-radius: 12px;
  padding: 28px; background: var(--cream);
  transition: all 0.2s; aspect-ratio: 1;
  display: flex; flex-direction: column; justify-content: space-between;
}
.laney-about .desk-item:nth-child(odd) { background: var(--mint); }
.laney-about .desk-item:nth-child(3n) { background: var(--lilac); transform: rotate(-1deg); }
.laney-about .desk-item:nth-child(4n) { background: var(--acid-yellow); transform: rotate(1deg); }
.laney-about .desk-item:hover {
  transform: translate(-3px, -3px) rotate(0);
  box-shadow: 6px 6px 0 var(--ink);
}
.laney-about .desk-glyph {
  font-family: 'Fraunces', serif;
  font-size: 44px; font-weight: 900; font-style: italic;
  line-height: 1;
}
.laney-about .desk-label {
  font-family: 'Space Mono', monospace;
  font-size: 11px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.1em;
  margin-top: 12px;
}
.laney-about .desk-name {
  font-family: 'Fraunces', serif;
  font-size: 17px; font-weight: 700;
  line-height: 1.1; letter-spacing: -0.01em;
}

/* MARQUEE */
.laney-page .marquee {
  background: var(--hot-pink); color: var(--cream);
  padding: 24px 0; overflow: hidden;
  border-top: 2px solid var(--ink);
  border-bottom: 2px solid var(--ink);
}
.laney-page .marquee-inner {
  display: flex; gap: 40px; white-space: nowrap;
  animation: laney-scroll 25s linear infinite;
  font-family: 'Fraunces', serif;
  font-size: 37px; font-weight: 900; font-style: italic;
  letter-spacing: -0.02em;
}
.laney-page .marquee-inner span::after {
  content: ' ✦ '; font-style: normal;
  color: var(--acid-yellow); margin: 0 24px;
}

/* SPOTIFY */
.laney-about .spotify-section {
  background: #0a0a0a;
  color: var(--cream);
  padding: 60px 45px;
  border-top: 3px solid var(--ink);
  border-bottom: 3px solid var(--ink);
  position: relative;
  overflow: hidden;
}
.laney-about .spotify-section::before {
  content: ""; position: absolute;
  top: -40%; left: -10%;
  width: 60%; height: 180%;
  background: radial-gradient(circle, rgba(202,32,23,0.35) 0%, transparent 60%);
  pointer-events: none;
}
.laney-about .spotify-section::after {
  content: ""; position: absolute;
  bottom: -40%; right: -10%;
  width: 50%; height: 180%;
  background: radial-gradient(circle, rgba(255,61,127,0.28) 0%, transparent 65%);
  pointer-events: none;
}
.laney-about .spotify-inner {
  max-width: 1200px;
  margin: 0 auto;
  position: relative; z-index: 1;
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 48px; align-items: center;
}
.laney-about .spotify-text { max-width: 32ch; }
.laney-about .spotify-eyebrow {
  font-family: 'Space Mono', monospace;
  font-size: 0.78rem; text-transform: uppercase;
  letter-spacing: 0.14em;
  margin-bottom: 16px;
  color: #ff3d3d;
}
.laney-about .spotify-title {
  font-family: 'Fraunces', serif;
  font-size: clamp(2.2rem, 5vw, 3.6rem);
  line-height: 1; letter-spacing: -0.02em;
  font-weight: 600; margin-bottom: 22px;
}
.laney-about .spotify-title em {
  font-style: italic; font-weight: 400;
  color: #ff3d3d;
}
.laney-about .spotify-blurb {
  font-size: 1rem; line-height: 1.6;
  margin-bottom: 24px; opacity: 0.9;
}
.laney-about .spotify-cta {
  display: inline-flex; align-items: center; gap: 10px;
  background: #1db954; color: #0a0a0a;
  padding: 14px 22px;
  font-family: 'Space Mono', monospace;
  font-size: 0.85rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.08em;
  border: 3px solid var(--cream);
  box-shadow: 6px 6px 0 #ff3d3d;
  transition: transform 0.15s, box-shadow 0.15s;
  text-decoration: none;
}
.laney-about .spotify-cta:hover {
  transform: translate(-2px, -2px);
  box-shadow: 8px 8px 0 #ff3d3d;
}
.laney-about .spotify-frame {
  background: var(--cream);
  border: 3px solid var(--cream);
  box-shadow: 12px 12px 0 #ff3d3d, 24px 24px 0 var(--ink);
  border-radius: 14px;
  overflow: hidden;
  position: relative;
  /* Spotify compact playlist embed needs ~152px min for collapsed view,
     but 380px for the expanded view with album art + tracklist. */
  height: 420px;
  max-width: 460px;
  margin: 0 auto;
  transform: rotate(1.5deg);
}
.laney-about .spotify-frame iframe {
  border: 0; width: 100%; height: 100%;
  display: block; background: #000;
  min-height: 380px;
}
.laney-about .spotify-tape {
  position: absolute;
  top: -14px; left: 30%;
  width: 110px; height: 28px;
  background: rgba(244,255,97,0.85);
  border: 2px solid var(--ink);
  transform: rotate(-4deg); z-index: 2;
}

/* TIMELINE */
.laney-about .timeline {
  padding: 90px 30px;
  background: var(--ink);
  color: var(--cream);
  border-bottom: 2px solid var(--ink);
}
.laney-about .timeline-header {
  max-width: 1400px; margin: 0 auto 80px;
  text-align: center;
}
.laney-about .timeline-eyebrow {
  font-family: 'Space Mono', monospace;
  font-size: 13px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.1em;
  color: var(--acid-yellow); margin-bottom: 16px;
}
.laney-about .timeline-title {
  font-family: 'Fraunces', serif;
  font-size: clamp(36px, 6vw, 66px);
  font-weight: 900; line-height: 0.95;
  letter-spacing: -0.03em;
}
.laney-about .timeline-title em { font-style: italic; font-weight: 400; color: var(--hot-pink); }
.laney-about .timeline-track {
  max-width: 1200px; margin: 0 auto;
  position: relative; padding-left: 40px;
}
.laney-about .timeline-track::before {
  content: ''; position: absolute;
  left: 8px; top: 12px; bottom: 12px;
  width: 3px; background: var(--cream);
}
.laney-about .tl-item {
  position: relative; margin-bottom: 56px;
  padding-bottom: 4px;
}
.laney-about .tl-item::before {
  content: ''; position: absolute;
  left: -40px; top: 8px;
  width: 19px; height: 19px;
  border-radius: 50%;
  background: var(--acid-yellow);
  border: 3px solid var(--cream);
}
.laney-about .tl-item:nth-child(2)::before { background: var(--hot-pink); }
.laney-about .tl-item:nth-child(3)::before { background: var(--mint); }
.laney-about .tl-item:nth-child(4)::before { background: var(--lilac); }
.laney-about .tl-item:nth-child(5)::before { background: var(--electric-blue); }
.laney-about .tl-date {
  font-family: 'Space Mono', monospace;
  font-size: 13px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.1em;
  color: var(--acid-yellow); margin-bottom: 6px;
}
.laney-about .tl-headline {
  font-family: 'Fraunces', serif;
  font-size: clamp(20px, 3.5vw, 32px);
  font-weight: 700; line-height: 1.05;
  letter-spacing: -0.02em; margin-bottom: 12px;
}
.laney-about .tl-headline em { font-style: italic; font-weight: 400; color: var(--hot-pink); }
.laney-about .tl-body {
  font-size: 13px; line-height: 1.55;
  max-width: 640px; opacity: 0.9;
}

/* COLOPHON */
.laney-page .colophon {
  background: var(--acid-yellow);
  color: var(--ink);
  border-top: 3px solid var(--ink);
  border-bottom: 3px solid var(--ink);
  padding: 42px 45px;
  position: relative; overflow: hidden;
}
.laney-page .colophon-inner {
  max-width: 1200px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1.4fr;
  gap: 60px; align-items: center;
}
.laney-page .colophon-eyebrow {
  font-family: 'Space Mono', monospace;
  font-size: 0.78rem; text-transform: uppercase;
  letter-spacing: 0.12em;
  margin-bottom: 18px;
  display: flex; align-items: center; gap: 10px;
}
.laney-page .colophon-eyebrow::before {
  content: "✦"; display: inline-block;
}
.laney-page .colophon-headline {
  font-family: 'Fraunces', serif;
  font-size: clamp(2rem, 4vw, 3.2rem);
  line-height: 1.02; font-weight: 600;
  letter-spacing: -0.02em; margin: 0;
}
.laney-page .colophon-headline em { font-style: italic; font-weight: 400; }
.laney-page .colophon-link {
  display: inline-block;
  margin-top: 18px;
  font-family: 'Space Mono', monospace;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ink);
  background: var(--cream);
  padding: 8px 14px;
  border: 2px solid var(--ink);
  box-shadow: 4px 4px 0 var(--hot-pink);
  transition: transform 0.15s, box-shadow 0.15s;
  text-decoration: none;
}
.laney-page .colophon-link:hover {
  transform: translate(-2px, -2px);
  box-shadow: 6px 6px 0 var(--hot-pink);
}
.laney-page .colophon-stack {
  display: flex; flex-direction: column; gap: 14px;
}
.laney-page .colophon-row {
  display: grid; grid-template-columns: 44px 1fr;
  gap: 18px; align-items: start;
  padding: 14px 18px;
  background: var(--cream);
  border: 2px solid var(--ink);
  box-shadow: 6px 6px 0 var(--ink);
}
.laney-page .colophon-num {
  font-family: 'Space Mono', monospace;
  font-size: 1rem; font-weight: 700;
  color: var(--hot-pink);
}
.laney-page .colophon-row-text {
  font-family: 'Inter', sans-serif;
  font-size: 0.98rem; line-height: 1.5;
  color: var(--ink);
}
.laney-page .colophon-row-text strong { font-weight: 700; }
.laney-page .colophon-row-text em {
  font-family: 'Fraunces', serif;
  font-style: italic; font-weight: 500;
}

/* =========================================================================
   RESUME-SPECIFIC
   ========================================================================= */

.laney-resume .download-btn {
  background: var(--ink); color: var(--cream);
  padding: 18px 28px;
  border: 2px solid var(--ink);
  border-radius: 100px;
  font-family: 'Space Mono', monospace;
  font-size: 13px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.1em;
  text-decoration: none;
  box-shadow: 6px 6px 0 var(--ink);
  transition: all 0.2s;
  display: inline-flex; align-items: center; gap: 10px;
}
.laney-resume .download-btn:hover {
  transform: translate(2px, 2px);
  box-shadow: 2px 2px 0 var(--ink);
  background: var(--acid-yellow); color: var(--ink);
}

.laney-resume .resume-section {
  padding: 60px 30px 90px;
  background: var(--cream);
  border-bottom: 2px solid var(--ink);
}
.laney-resume .resume-grid {
  max-width: 1280px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr 2.4fr;
  gap: 60px;
}

/* SIDEBAR */
.laney-resume .sidebar {
  position: sticky; top: 110px;
  align-self: start;
}
.laney-resume .sb-card {
  border: 2px solid var(--ink);
  border-radius: 12px;
  padding: 28px;
  margin-bottom: 20px;
  background: var(--cream);
}
.laney-resume .sb-card.contact { background: var(--acid-yellow); }
.laney-resume .sb-card.skills  { background: var(--mint); }
.laney-resume .sb-card.tools   { background: var(--cream); }
.laney-resume .sb-card.lang    { background: var(--orange); color: var(--cream); }

.laney-resume .sb-label {
  font-family: 'Space Mono', monospace;
  font-size: 11px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.12em;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 2px solid currentColor;
}
.laney-resume .sb-card .sb-row {
  display: flex; justify-content: space-between;
  padding: 8px 0;
  font-size: 13px;
  align-items: baseline;
}
.laney-resume .sb-card .sb-row .k {
  font-family: 'Space Mono', monospace;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: 11px;
}
.laney-resume .sb-card .sb-row .v {
  font-family: 'Fraunces', serif;
  font-size: 13px; font-weight: 600;
  text-align: right;
}
.laney-resume .sb-list { list-style: none; padding: 0; }
.laney-resume .sb-list li {
  padding: 6px 0;
  font-family: 'Fraunces', serif;
  font-size: 13px; font-weight: 600;
  display: flex; align-items: baseline; gap: 10px;
}
.laney-resume .sb-list li::before {
  content: '✦'; font-family: 'Inter', sans-serif;
  font-weight: 400;
}

/* MAIN COLUMN */
.laney-resume .main-col { padding-top: 0; }
.laney-resume .main-section { margin-bottom: 48px; }
.laney-resume .main-section:last-child { margin-bottom: 0; }
.laney-resume .ms-eyebrow {
  font-family: 'Space Mono', monospace;
  font-size: 13px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.1em;
  color: var(--hot-pink); margin-bottom: 8px;
}
.laney-resume .ms-title {
  font-family: 'Fraunces', serif;
  font-size: clamp(30px, 5vw, 48px);
  font-weight: 900; line-height: 0.95;
  letter-spacing: -0.03em;
  margin-bottom: 32px;
  border-bottom: 3px solid var(--ink);
  padding-bottom: 16px;
}
.laney-resume .ms-title em {
  font-style: italic; font-weight: 400;
  color: var(--electric-blue);
}

/* SUMMARY */
.laney-resume .summary-text {
  font-family: 'Fraunces', serif;
  font-size: clamp(16px, 2.4vw, 22px);
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: -0.01em;
  max-width: 700px;
}
.laney-resume .summary-text strong {
  background: var(--acid-yellow);
  padding: 0 4px;
  font-weight: 600;
}
.laney-resume .summary-text em {
  font-style: italic; font-weight: 400;
  color: var(--hot-pink);
}

/* EXPERIENCE */
.laney-resume .exp-entry {
  padding: 28px 0;
  border-bottom: 2px solid var(--ink);
  display: grid; grid-template-columns: 180px 1fr;
  gap: 32px;
  align-items: start;
}
.laney-resume .exp-entry:last-child { border-bottom: none; }
.laney-resume .exp-date {
  font-family: 'Space Mono', monospace;
  font-size: 12px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.1em;
  padding-top: 6px;
  color: var(--hot-pink);
}
.laney-resume .exp-role {
  font-family: 'Fraunces', serif;
  font-size: clamp(18px, 2.6vw, 26px);
  font-weight: 700; line-height: 1.1;
  letter-spacing: -0.02em;
  margin-bottom: 4px;
}
.laney-resume .exp-role em { font-style: italic; font-weight: 400; }
.laney-resume .exp-org {
  font-family: 'Space Mono', monospace;
  font-size: 13px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.05em;
  color: var(--electric-blue);
  margin-bottom: 14px;
}
.laney-resume .exp-bullets { list-style: none; padding: 0; }
.laney-resume .exp-bullets li {
  padding: 6px 0;
  font-size: 13px; line-height: 1.5;
  display: flex; gap: 12px; align-items: baseline;
  max-width: 720px;
}
.laney-resume .exp-bullets li::before {
  content: '✦';
  color: var(--hot-pink);
  flex-shrink: 0;
}

/* EDUCATION */
.laney-resume .edu-card {
  border: 2px solid var(--ink);
  border-radius: 12px;
  padding: 32px;
  background: var(--mint);
  box-shadow: 6px 6px 0 var(--ink);
}
.laney-resume .edu-school {
  font-family: 'Fraunces', serif;
  font-size: clamp(20px, 3vw, 30px);
  font-weight: 900; line-height: 1;
  letter-spacing: -0.02em;
  margin-bottom: 8px;
}
.laney-resume .edu-school em { font-style: italic; font-weight: 400; }
.laney-resume .edu-degree {
  font-family: 'Space Mono', monospace;
  font-size: 13px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.05em;
  margin-bottom: 16px;
}
.laney-resume .edu-detail {
  font-size: 13px; line-height: 1.5;
  margin-bottom: 8px;
}
.laney-resume .edu-detail strong {
  background: var(--cream); padding: 0 4px;
  font-weight: 600;
}

/* HONORS */
.laney-resume .honors-grid {
  display: grid; grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}
.laney-resume .honor-chip {
  border: 2px solid var(--ink);
  border-radius: 12px;
  padding: 24px;
  background: var(--cream);
  transition: all 0.2s;
}
.laney-resume .honor-chip:nth-child(1) { background: var(--lilac); }
.laney-resume .honor-chip:nth-child(2) { background: var(--acid-yellow); }
.laney-resume .honor-chip:nth-child(3) { background: var(--orange); color: var(--cream); }
.laney-resume .honor-chip:nth-child(4) { background: var(--mint); }
.laney-resume .honor-chip:hover {
  transform: translate(-3px, -3px);
  box-shadow: 6px 6px 0 var(--ink);
}
.laney-resume .honor-name {
  font-family: 'Fraunces', serif;
  font-size: 17px; font-weight: 700;
  line-height: 1.1; letter-spacing: -0.01em;
  margin-bottom: 6px;
}
.laney-resume .honor-name em { font-style: italic; font-weight: 400; }
.laney-resume .honor-meta {
  font-family: 'Space Mono', monospace;
  font-size: 11px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.1em;
}

/* =========================================================================
   CASE STUDY-SPECIFIC
   ========================================================================= */

.laney-case-study .back-bar {
  padding: 20px 40px;
  background: var(--cream);
  border-bottom: 2px solid var(--ink);
}
.laney-case-study .back-link {
  font-family: 'Space Mono', monospace;
  font-size: 12px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.1em;
  text-decoration: none; color: var(--ink);
}
.laney-case-study .back-link:hover { color: var(--hot-pink); }

/* HERO */
.laney-case-study .cs-hero {
  padding: 60px 30px 75px;
  background: var(--hot-pink);
  color: var(--cream);
  border-bottom: 2px solid var(--ink);
  position: relative; overflow: hidden;
}
.laney-case-study .cs-hero-inner {
  max-width: 1400px; margin: 0 auto;
  position: relative;
}
.laney-case-study .cs-eyebrow {
  font-family: 'Space Mono', monospace;
  font-size: 13px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.1em;
  color: var(--acid-yellow); margin-bottom: 24px;
}
.laney-case-study .cs-title {
  font-family: 'Fraunces', serif;
  font-size: clamp(48px, 9vw, 126px);
  font-weight: 900; line-height: 0.85;
  letter-spacing: -0.04em;
  max-width: 1100px;
  margin-bottom: 40px;
}
.laney-case-study .cs-title em {
  font-style: italic; font-weight: 400;
  color: var(--acid-yellow);
}
.laney-case-study .cs-subtitle {
  font-size: 17px; line-height: 1.4;
  max-width: 700px;
  margin-bottom: 56px;
}
.laney-case-study .cs-meta-row {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  border-top: 2px solid var(--cream);
  padding-top: 32px;
}
.laney-case-study .cs-meta-item .meta-label {
  font-family: 'Space Mono', monospace;
  font-size: 11px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.1em;
  color: var(--acid-yellow); margin-bottom: 8px;
}
.laney-case-study .cs-meta-item .meta-value {
  font-family: 'Fraunces', serif;
  font-size: 17px; font-weight: 600;
  line-height: 1.15;
}

/* MOCKUP */
.laney-case-study .cs-mockup {
  padding: 0 40px;
  background: var(--cream);
  border-bottom: 2px solid var(--ink);
  margin-top: -60px;
  position: relative;
  z-index: 5;
}
.laney-case-study .cs-mockup-inner {
  max-width: 1400px; margin: 0 auto;
  border: 3px solid var(--ink);
  border-radius: 16px;
  box-shadow: 16px 16px 0 var(--ink);
  background: var(--lilac);
  aspect-ratio: 16/9;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
  position: relative;
}
.laney-case-study .cs-mockup-text {
  text-align: center;
  padding: 40px;
}
.laney-case-study .cs-mockup-text .big {
  font-family: 'Fraunces', serif;
  font-size: clamp(54px, 12vw, 150px);
  font-weight: 900; font-style: italic;
  line-height: 0.85;
  letter-spacing: -0.04em;
  color: var(--ink);
}
.laney-case-study .cs-mockup-text .small {
  font-family: 'Space Mono', monospace;
  font-size: 14px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.15em;
  margin-top: 24px;
}

/* RESULTS */
.laney-case-study .results {
  padding: 120px 30px 90px;
  background: var(--cream);
  border-bottom: 2px solid var(--ink);
}
.laney-case-study .section-eyebrow {
  font-family: 'Space Mono', monospace;
  font-size: 13px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.1em;
  color: var(--hot-pink); margin-bottom: 16px;
}
.laney-case-study .section-title {
  font-family: 'Fraunces', serif;
  font-size: clamp(36px, 6vw, 66px);
  font-weight: 900; line-height: 0.95;
  letter-spacing: -0.03em;
}
.laney-case-study .section-title em {
  font-style: italic; font-weight: 400;
  color: var(--electric-blue);
}
.laney-case-study .section-header {
  max-width: 1400px; margin: 0 auto 64px;
}
.laney-case-study .results-grid {
  max-width: 1400px; margin: 0 auto;
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.laney-case-study .result-card {
  border: 3px solid var(--ink);
  border-radius: 16px;
  padding: 36px;
  aspect-ratio: 1;
  display: flex; flex-direction: column;
  justify-content: space-between;
  transition: all 0.3s;
}
.laney-case-study .result-card:nth-child(1) { background: var(--acid-yellow); }
.laney-case-study .result-card:nth-child(2) { background: var(--mint); }
.laney-case-study .result-card:nth-child(3) { background: var(--lilac); }
.laney-case-study .result-card:nth-child(4) { background: var(--orange); color: var(--cream); }
.laney-case-study .result-card:hover {
  transform: translate(-4px, -4px);
  box-shadow: 8px 8px 0 var(--ink);
}
.laney-case-study .result-num {
  font-family: 'Fraunces', serif;
  font-size: clamp(48px, 7vw, 72px);
  font-weight: 900; line-height: 0.85;
  letter-spacing: -0.04em;
}
.laney-case-study .result-num em { font-style: italic; font-weight: 400; }
.laney-case-study .result-label {
  font-family: 'Space Mono', monospace;
  font-size: 12px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.1em;
}

/* CONTENT BLOCKS */
.laney-case-study .content-block {
  padding: 90px 30px;
  border-bottom: 2px solid var(--ink);
}
.laney-case-study .block-light { background: var(--cream); }
.laney-case-study .block-dark  { background: var(--ink); color: var(--cream); }
.laney-case-study .block-blue  { background: var(--electric-blue); color: var(--cream); }

.laney-case-study .content-grid {
  max-width: 1400px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr 2fr;
  gap: 80px; align-items: start;
}
.laney-case-study .content-grid .lhs {
  position: sticky; top: 100px;
}
.laney-case-study .lhs-num {
  font-family: 'Space Mono', monospace;
  font-size: 13px; font-weight: 700;
  letter-spacing: 0.1em; text-transform: uppercase;
  margin-bottom: 16px;
}
.laney-case-study .block-light .lhs-num { color: var(--hot-pink); }
.laney-case-study .block-dark .lhs-num,
.laney-case-study .block-blue .lhs-num { color: var(--acid-yellow); }

.laney-case-study .lhs-title {
  font-family: 'Fraunces', serif;
  font-size: clamp(30px, 5vw, 54px);
  font-weight: 900; line-height: 0.9;
  letter-spacing: -0.03em;
}
.laney-case-study .lhs-title em { font-style: italic; font-weight: 400; }
.laney-case-study .block-light .lhs-title em { color: var(--electric-blue); }
.laney-case-study .block-dark .lhs-title em { color: var(--hot-pink); }
.laney-case-study .block-blue .lhs-title em { color: var(--acid-yellow); }

.laney-case-study .rhs p {
  font-size: 15px; line-height: 1.6;
  margin-bottom: 24px;
  max-width: 720px;
}
.laney-case-study .rhs p strong {
  background: var(--acid-yellow); color: var(--ink);
  padding: 0 4px; font-weight: 600;
}
.laney-case-study .block-blue .rhs p strong { background: var(--cream); }
.laney-case-study .rhs ul {
  list-style: none; padding: 0;
  margin-bottom: 32px;
}
.laney-case-study .rhs ul li {
  font-size: 13px; line-height: 1.6;
  padding: 16px 0;
  border-bottom: 1px solid currentColor;
  display: flex; gap: 16px;
  align-items: baseline;
}
.laney-case-study .rhs ul li::before {
  content: '✦'; color: var(--hot-pink);
  flex-shrink: 0;
}
.laney-case-study .block-dark .rhs ul li::before,
.laney-case-study .block-blue .rhs ul li::before { color: var(--acid-yellow); }

/* PULL QUOTE */
.laney-case-study .pullquote {
  padding: 90px 30px;
  background: var(--acid-yellow);
  border-bottom: 2px solid var(--ink);
  text-align: center;
}
.laney-case-study .pullquote-inner {
  max-width: 1100px; margin: 0 auto;
}
.laney-case-study .pullquote .mark {
  font-family: 'Fraunces', serif;
  font-size: 94px; font-weight: 900;
  line-height: 0.5; color: var(--hot-pink);
  display: block;
}
.laney-case-study .pullquote-text {
  font-family: 'Fraunces', serif;
  font-size: clamp(28px, 5vw, 54px);
  font-weight: 400; font-style: italic;
  line-height: 1.05; letter-spacing: -0.02em;
  margin-bottom: 32px;
}
.laney-case-study .pullquote-text strong {
  font-style: normal; font-weight: 900;
  background: var(--hot-pink); color: var(--cream);
  padding: 0 8px;
}
.laney-case-study .pullquote-attr {
  font-family: 'Space Mono', monospace;
  font-size: 13px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.1em;
}

/* DELIVERABLES */
.laney-case-study .deliverables {
  padding: 90px 30px;
  background: var(--mint);
  border-bottom: 2px solid var(--ink);
}
.laney-case-study .del-header {
  max-width: 1400px; margin: 0 auto 60px;
}
.laney-case-study .del-grid {
  max-width: 1400px; margin: 0 auto;
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.laney-case-study .del-card {
  border: 2px solid var(--ink);
  border-radius: 12px;
  padding: 32px;
  background: var(--cream);
  transition: all 0.3s;
}
.laney-case-study .del-card:hover {
  transform: translate(-3px, -3px);
  box-shadow: 6px 6px 0 var(--ink);
}
.laney-case-study .del-num {
  font-family: 'Fraunces', serif;
  font-size: 44px; font-weight: 900; font-style: italic;
  line-height: 1; color: var(--hot-pink);
  margin-bottom: 8px;
}
.laney-case-study .del-name {
  font-family: 'Fraunces', serif;
  font-size: 19px; font-weight: 700;
  line-height: 1.1; margin-bottom: 12px;
}
.laney-case-study .del-desc {
  font-size: 14px; line-height: 1.5;
  color: var(--ink);
}

/* NEXT */
.laney-case-study .next {
  padding: 75px 30px;
  background: var(--electric-blue);
  color: var(--cream);
  border-bottom: 2px solid var(--ink);
  text-align: center;
}
.laney-case-study .next-eyebrow {
  font-family: 'Space Mono', monospace;
  font-size: 13px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.1em;
  color: var(--acid-yellow); margin-bottom: 16px;
}
.laney-case-study .next-title {
  font-family: 'Fraunces', serif;
  font-size: clamp(36px, 7vw, 72px);
  font-weight: 900; line-height: 0.9;
  letter-spacing: -0.03em; margin-bottom: 32px;
}
.laney-case-study .next-title em {
  font-style: italic; font-weight: 400;
  color: var(--acid-yellow);
}
.laney-case-study .next-btn {
  display: inline-flex; align-items: center; gap: 12px;
  background: var(--acid-yellow); color: var(--ink);
  padding: 24px 48px; border: 2px solid var(--ink);
  border-radius: 100px;
  font-size: 14px; font-weight: 700; text-decoration: none;
  box-shadow: 8px 8px 0 var(--ink);
  transition: all 0.2s;
}
.laney-case-study .next-btn:hover {
  transform: translate(2px, 2px);
  box-shadow: 4px 4px 0 var(--ink);
}

/* =========================================================================
   CONTACT-SPECIFIC
   ========================================================================= */

/* HERO statement */
.laney-contact .contact-hero {
  padding: 75px 30px 90px;
  background: var(--cream);
  border-bottom: 2px solid var(--ink);
  position: relative;
  overflow: hidden;
}
.laney-contact .contact-hero-inner {
  max-width: 1400px; margin: 0 auto;
  position: relative;
}
.laney-contact .ch-eyebrow {
  font-family: 'Space Mono', monospace;
  font-size: 13px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.1em;
  color: var(--hot-pink); margin-bottom: 32px;
}
.laney-contact .ch-title {
  font-family: 'Fraunces', serif;
  font-size: clamp(54px, 12vw, 164px);
  font-weight: 900; line-height: 0.82;
  letter-spacing: -0.05em;
  margin-bottom: 32px;
}
.laney-contact .ch-title em {
  font-style: italic; font-weight: 400;
  color: var(--electric-blue);
}
.laney-contact .ch-title .pink-block {
  background: var(--hot-pink); color: var(--cream);
  padding: 0 14px; display: inline-block;
  transform: rotate(-1.5deg);
}
.laney-contact .ch-title .yellow-block {
  background: var(--acid-yellow);
  padding: 0 12px; display: inline-block;
  transform: rotate(1deg);
}
.laney-contact .ch-sub {
  font-size: 17px; line-height: 1.5;
  max-width: 680px;
}
.laney-contact .ch-sub strong {
  background: var(--lilac); padding: 0 4px;
  font-weight: 600;
}

/* FAST-LINKS row */
.laney-contact .fastlinks {
  padding: 40px 40px;
  background: var(--ink);
  color: var(--cream);
  border-bottom: 2px solid var(--ink);
}
.laney-contact .fastlinks-inner {
  max-width: 1400px; margin: 0 auto;
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 0;
}
.laney-contact .fl-item {
  padding: 28px;
  border-right: 2px solid var(--cream);
  transition: all 0.2s;
  text-decoration: none;
  color: var(--cream);
  display: flex; flex-direction: column; gap: 8px;
}
.laney-contact .fl-item:last-child { border-right: none; }
.laney-contact .fl-item:hover { background: var(--hot-pink); }
.laney-contact .fl-label {
  font-family: 'Space Mono', monospace;
  font-size: 11px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.1em;
  color: var(--acid-yellow);
}
.laney-contact .fl-item:hover .fl-label { color: var(--ink); }
.laney-contact .fl-value {
  font-family: 'Fraunces', serif;
  font-size: 20px; font-weight: 700;
  line-height: 1.05; letter-spacing: -0.02em;
}
.laney-contact .fl-value em { font-style: italic; font-weight: 400; }

/* FORM SECTION */
.laney-contact .form-section {
  padding: 90px 30px;
  background: var(--lilac);
  border-bottom: 2px solid var(--ink);
  position: relative;
  overflow: hidden;
}
.laney-contact .form-grid {
  max-width: 1400px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1.4fr;
  gap: 80px; align-items: start;
}
.laney-contact .form-intro .form-eyebrow {
  font-family: 'Space Mono', monospace;
  font-size: 13px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.1em;
  color: var(--hot-pink); margin-bottom: 16px;
}
.laney-contact .form-intro .form-title {
  font-family: 'Fraunces', serif;
  font-size: clamp(30px, 5vw, 54px);
  font-weight: 900; line-height: 0.95;
  letter-spacing: -0.03em;
  margin-bottom: 32px;
}
.laney-contact .form-intro .form-title em {
  font-style: italic; font-weight: 400;
  color: var(--electric-blue);
}
.laney-contact .form-intro p {
  font-size: 13px; line-height: 1.55;
  margin-bottom: 24px;
}
.laney-contact .form-intro p strong {
  background: var(--acid-yellow); padding: 0 4px;
  font-weight: 600;
}
.laney-contact .form-intro ul { list-style: none; padding: 0; }
.laney-contact .form-intro ul li {
  padding: 10px 0;
  font-family: 'Fraunces', serif;
  font-size: 15px; font-weight: 600;
  line-height: 1.2;
  display: flex; gap: 12px; align-items: baseline;
  border-bottom: 2px solid var(--ink);
}
.laney-contact .form-intro ul li::before {
  content: '✦'; color: var(--hot-pink);
}
.laney-contact .form-intro ul li:last-child { border-bottom: none; }

/* form card */
.laney-contact .form-card {
  border: 3px solid var(--ink);
  border-radius: 16px;
  padding: 40px;
  background: var(--cream);
  box-shadow: 12px 12px 0 var(--ink);
}
.laney-contact .field { margin-bottom: 24px; }
.laney-contact .field label {
  display: block;
  font-family: 'Space Mono', monospace;
  font-size: 11px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.1em;
  margin-bottom: 8px;
}
.laney-contact .field label .req { color: var(--hot-pink); }
.laney-contact .field input,
.laney-contact .field textarea,
.laney-contact .field select {
  width: 100%;
  border: 2px solid var(--ink);
  border-radius: 8px;
  padding: 16px 18px;
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  background: var(--cream);
  color: var(--ink);
  transition: all 0.15s;
}
.laney-contact .field input:focus,
.laney-contact .field textarea:focus,
.laney-contact .field select:focus {
  outline: none;
  background: var(--acid-yellow);
  box-shadow: 4px 4px 0 var(--ink);
  transform: translate(-2px, -2px);
}
.laney-contact .field textarea {
  min-height: 140px;
  resize: vertical;
  font-family: 'Inter', sans-serif;
}
.laney-contact .field-row {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 16px;
}

/* topic chips */
.laney-contact .topic-chips {
  display: flex; gap: 8px; flex-wrap: wrap;
  margin-top: 4px;
}
.laney-contact .topic-chip {
  padding: 8px 16px;
  border: 2px solid var(--ink);
  border-radius: 100px;
  font-family: 'Space Mono', monospace;
  font-size: 12px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.05em;
  background: var(--cream);
  cursor: pointer;
  transition: all 0.15s;
}
.laney-contact .topic-chip:hover { background: var(--lilac); }
.laney-contact .topic-chip.selected {
  background: var(--ink); color: var(--cream);
  box-shadow: 3px 3px 0 var(--ink);
}

.laney-contact .submit-btn {
  width: 100%;
  background: var(--hot-pink); color: var(--cream);
  padding: 22px 32px;
  border: 2px solid var(--ink);
  border-radius: 100px;
  font-family: 'Inter', sans-serif;
  font-size: 13px; font-weight: 700;
  cursor: pointer;
  box-shadow: 6px 6px 0 var(--ink);
  transition: all 0.2s;
  margin-top: 8px;
}
.laney-contact .submit-btn:hover {
  transform: translate(2px, 2px);
  box-shadow: 2px 2px 0 var(--ink);
  background: var(--acid-yellow); color: var(--ink);
}
.laney-contact .form-note {
  margin-top: 16px;
  font-family: 'Space Mono', monospace;
  font-size: 11px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.05em;
  color: var(--ink); opacity: 0.7;
  text-align: center;
}
/* honeypot — hidden from real users */
.laney-contact .laney-hp {
  position: absolute !important;
  left: -10000px !important;
  width: 1px; height: 1px;
  overflow: hidden;
}
/* form banner (success/error after submission) */
.laney-contact .laney-form-banner {
  padding: 14px 18px;
  border: 2px solid var(--ink);
  border-radius: 8px;
  margin-bottom: 24px;
  font-family: 'Space Mono', monospace;
  font-size: 13px;
  font-weight: 700;
}
.laney-contact .laney-form-banner.ok  { background: var(--mint); }
.laney-contact .laney-form-banner.err { background: var(--acid-yellow); }

/* FAQ */
.laney-contact .faq {
  padding: 90px 30px;
  background: var(--cream);
  border-bottom: 2px solid var(--ink);
}
.laney-contact .faq-header {
  max-width: 1100px; margin: 0 auto 60px;
  text-align: center;
}
.laney-contact .faq-eyebrow {
  font-family: 'Space Mono', monospace;
  font-size: 13px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.1em;
  color: var(--hot-pink); margin-bottom: 16px;
}
.laney-contact .faq-title {
  font-family: 'Fraunces', serif;
  font-size: clamp(36px, 6vw, 66px);
  font-weight: 900; line-height: 0.95;
  letter-spacing: -0.03em;
}
.laney-contact .faq-title em { font-style: italic; font-weight: 400; color: var(--electric-blue); }
.laney-contact .faq-list { max-width: 1100px; margin: 0 auto; }
.laney-contact .faq-item {
  border-top: 3px solid var(--ink);
  padding: 32px 0;
}
.laney-contact .faq-item:last-child { border-bottom: 3px solid var(--ink); }
.laney-contact .faq-item summary {
  font-family: 'Fraunces', serif;
  font-size: clamp(18px, 2.6vw, 28px);
  font-weight: 700; line-height: 1.1;
  letter-spacing: -0.02em;
  cursor: pointer;
  list-style: none;
  display: flex; justify-content: space-between;
  align-items: baseline;
  gap: 24px;
}
.laney-contact .faq-item summary::-webkit-details-marker { display: none; }
.laney-contact .faq-item summary em { font-style: italic; font-weight: 400; color: var(--hot-pink); }
.laney-contact .faq-item summary::after {
  content: '+';
  font-family: 'Space Mono', monospace;
  font-size: 25px; font-weight: 700;
  color: var(--hot-pink);
  flex-shrink: 0;
  transition: transform 0.2s;
}
.laney-contact .faq-item[open] summary::after { content: '×'; }
.laney-contact .faq-item p {
  font-size: 13px; line-height: 1.6;
  margin-top: 16px;
  max-width: 720px;
}

/* =========================================================================
   RESPONSIVE
   ========================================================================= */
@media (max-width: 1000px) {
  /* Resume */
  .laney-resume .resume-grid { grid-template-columns: 1fr; gap: 40px; }
  .laney-resume .sidebar { position: static; }
  .laney-resume .exp-entry { grid-template-columns: 1fr; gap: 12px; }
  .laney-resume .honors-grid { grid-template-columns: 1fr; }
  /* Case study */
  .laney-case-study .cs-meta-row { grid-template-columns: repeat(2, 1fr); }
  .laney-case-study .results-grid { grid-template-columns: repeat(2, 1fr); }
  .laney-case-study .content-grid { grid-template-columns: 1fr; gap: 40px; }
  .laney-case-study .content-grid .lhs { position: static; }
  .laney-case-study .del-grid { grid-template-columns: 1fr; }
  /* About */
  .laney-page .colophon { padding: 44px 28px; }
  .laney-page .colophon-inner { grid-template-columns: 1fr; gap: 32px; }
}
@media (max-width: 900px) {
  .laney-page .page-head { padding: 50px 20px 40px; }
  .laney-page .page-head-inner { grid-template-columns: 1fr; }
  .laney-page .page-meta { text-align: left; border-left: none; border-top: 2px solid var(--ink); padding: 16px 0 0; }
  .laney-page .cta { padding: 52px 20px; }
  .laney-page .footer-content { grid-template-columns: 1fr; }
  /* About */
  .laney-about .intro,
  .laney-about .qa,
  .laney-about .desk,
  .laney-about .timeline { padding: 52px 20px; }
  .laney-about .intro-grid { grid-template-columns: 1fr; gap: 60px; }
  .laney-about .portrait-stack { max-width: 380px; margin: 0 auto; }
  .laney-about .qa-grid { grid-template-columns: 1fr; }
  .laney-about .desk-header { grid-template-columns: 1fr; }
  .laney-about .desk-grid { grid-template-columns: repeat(2, 1fr); }
  .laney-page .marquee-inner { font-size: 25px; }
  .laney-about .spotify-section { padding: 45px 20px; }
  .laney-about .spotify-inner { grid-template-columns: 1fr; gap: 36px; }
  .laney-about .spotify-frame { transform: none; box-shadow: 8px 8px 0 #ff3d3d, 16px 16px 0 var(--ink); max-width: 100%; }
  .laney-about .spotify-text { max-width: none; text-align: left; }
  /* Home */
  .laney-home .hero { padding: 30px 20px 60px; }
  .laney-home .hero-grid { grid-template-columns: 1fr; gap: 40px; }
  .laney-home .hero-visual { max-width: 400px; margin: 0 auto; }
  .laney-home .section-header { grid-template-columns: 1fr; }
  .laney-home .strengths-grid { grid-template-columns: 1fr; }
  .laney-home .tools-grid { grid-template-columns: 1fr; }
  .laney-home .tool-card { border-right: none; border-bottom: 2px solid var(--cream); }
  .laney-home .tool-card:last-child { border-bottom: none; }
  .laney-home .portfolio-grid { grid-template-columns: 1fr; }
  .laney-home .portfolio-card.featured { grid-row: auto; min-height: 400px; }
  .laney-home .strengths,
  .laney-home .tools,
  .laney-home .portfolio { padding: 52px 20px; }
  /* Portfolio */
  .laney-portfolio .page-head { padding: 50px 20px 40px; }
  .laney-portfolio .page-head-inner { grid-template-columns: 1fr; }
  .laney-portfolio .portfolio { padding: 45px 20px 75px; }
  .laney-portfolio .portfolio-grid { grid-template-columns: 1fr; }
  .laney-portfolio .pf-card,
  .laney-portfolio .pf-hero,
  .laney-portfolio .pf-tall,
  .laney-portfolio .pf-wide,
  .laney-portfolio .pf-sq,
  .laney-portfolio .pf-sq-2,
  .laney-portfolio .pf-sq-3,
  .laney-portfolio .pf-wide-2 { grid-column: span 1; grid-row: span 1; min-height: 280px; }
  .laney-portfolio .filters { padding: 24px 20px; }
  /* Contact */
  .laney-contact .contact-hero { padding: 45px 20px 60px; }
  .laney-contact .fastlinks { padding: 20px; }
  .laney-contact .fastlinks-inner { grid-template-columns: 1fr 1fr; }
  .laney-contact .fl-item:nth-child(2) { border-right: none; }
  .laney-contact .fl-item:nth-child(1),
  .laney-contact .fl-item:nth-child(2) { border-bottom: 2px solid var(--cream); }
  .laney-contact .form-section { padding: 52px 20px; }
  .laney-contact .form-grid { grid-template-columns: 1fr; gap: 40px; }
  .laney-contact .form-card { padding: 28px; box-shadow: 8px 8px 0 var(--ink); }
  .laney-contact .field-row { grid-template-columns: 1fr; }
  .laney-contact .faq { padding: 52px 20px; }
}
@media (max-width: 700px) {
  .laney-resume .resume-section { padding: 38px 20px 60px; }
  .laney-case-study .back-bar { padding: 16px 20px; }
  .laney-case-study .cs-hero { padding: 38px 20px 60px; }
  .laney-case-study .cs-mockup { padding: 0 20px; }
  .laney-case-study .results,
  .laney-case-study .content-block,
  .laney-case-study .pullquote,
  .laney-case-study .deliverables,
  .laney-case-study .next { padding: 52px 20px; }
  .laney-case-study .results-grid { grid-template-columns: 1fr; }
  .laney-page .colophon { padding: 36px 20px; }
  .laney-page .colophon-row { grid-template-columns: 32px 1fr; gap: 12px; padding: 12px 14px; box-shadow: 4px 4px 0 var(--ink); }
}

/* =========================================================================
   CASE STUDY v3 — universal template
   ========================================================================= */

.laney-cs2 { padding: 0; }

.laney-cs2 .cs2-crumb {
  padding: 24px 40px;
  font-family: 'Space Mono', monospace;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ink);
  border-bottom: 2px solid var(--ink);
  background: var(--cream);
}

/* HERO */
.laney-cs2 .cs2-hero {
  padding: 60px 30px 75px;
  background: var(--hot-pink);
  color: var(--cream);
  border-bottom: 2px solid var(--ink);
}
.laney-cs2 .cs2-hero .cs2-crumb,
.laney-cs2 .cs2-hero .cs2-eyebrow {
  color: var(--acid-yellow);
  font-family: 'Space Mono', monospace;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 24px;
}
.laney-cs2 .cs2-hero h1,
.laney-cs2 .cs2-hero .cs2-title {
  color: var(--cream);
}
.laney-cs2 .cs2-hero em {
  color: var(--acid-yellow);
  font-style: italic;
  font-weight: 400;
}
.laney-cs2 .cs2-hero-inner {
  max-width: 1400px;
  margin: 0 auto;
}
.laney-cs2 .cs2-title {
  font-family: 'Fraunces', serif;
  font-size: clamp(48px, 9vw, 126px);
  font-weight: 900;
  line-height: 0.85;
  letter-spacing: -0.04em;
  max-width: 1100px;
  margin-bottom: 32px;
}
.laney-cs2 .cs2-title em {
  font-style: italic;
  font-weight: 400;
  color: var(--acid-yellow);
}
.laney-cs2 .cs2-sub {
  font-size: 18px;
  line-height: 1.4;
  max-width: 700px;
  margin-bottom: 48px;
  color: var(--cream);
  opacity: 0.95;
}
.laney-cs2 .cs2-sub strong {
  background: var(--acid-yellow);
  color: var(--ink);
  padding: 0 6px;
  font-weight: 700;
}
.laney-cs2 .cs2-sub em {
  color: var(--acid-yellow);
}
/* Hero grid: meta strip below subtitle, stamp aligned right */
.laney-cs2 .cs2-hero-grid {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 40px;
  align-items: start;
}
/* 4-column meta strip with cream divider above — matches source HTMLs */
.laney-cs2 .cs2-meta {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px 24px;
  border-top: 2px solid var(--cream);
  padding-top: 24px;
  grid-column: 1 / -1;
}
.laney-cs2 .cs2-meta-row {
  border-top: 0;
  padding-top: 0;
}
.laney-cs2 .cs2-meta-label {
  font-family: 'Space Mono', monospace;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--acid-yellow);
  opacity: 1;
  margin-bottom: 8px;
}
.laney-cs2 .cs2-meta-value {
  font-family: 'Fraunces', serif;
  font-size: 19px;
  font-weight: 600;
  line-height: 1.15;
  color: var(--cream);
}
.laney-cs2 .cs2-meta-value em {
  font-style: italic;
  font-weight: 400;
  color: var(--acid-yellow);
}

/* =========================================================================
   PER-CASE-STUDY HERO BACKGROUND COLORS
   ---------------------------------------------------------------------
   Each case study gets its own hero color. Pulled from the source HTML
   designs where they existed; chosen for the rest based on subject matter.
   Light backgrounds get ink (dark) text + hot-pink accents so contrast works.
   ========================================================================= */

/* Crossroads — hot-pink (source HTML default; baseline already set above) */

/* Refined Interiors — lilac (soft, refined feel from source HTML) */
.laney-cs2[data-slug="refined-interiors"] .cs2-hero {
  background: var(--lilac);
  color: var(--ink);
}
.laney-cs2[data-slug="refined-interiors"] .cs2-hero .cs2-eyebrow,
.laney-cs2[data-slug="refined-interiors"] .cs2-hero .cs2-crumb {
  color: var(--hot-pink);
}
.laney-cs2[data-slug="refined-interiors"] .cs2-hero h1,
.laney-cs2[data-slug="refined-interiors"] .cs2-hero .cs2-title,
.laney-cs2[data-slug="refined-interiors"] .cs2-hero .cs2-sub,
.laney-cs2[data-slug="refined-interiors"] .cs2-hero .cs2-meta-value {
  color: var(--ink);
}
.laney-cs2[data-slug="refined-interiors"] .cs2-hero em,
.laney-cs2[data-slug="refined-interiors"] .cs2-hero .cs2-title em,
.laney-cs2[data-slug="refined-interiors"] .cs2-hero .cs2-meta-value em {
  color: var(--hot-pink);
}
.laney-cs2[data-slug="refined-interiors"] .cs2-hero .cs2-meta {
  border-top-color: var(--ink);
}
.laney-cs2[data-slug="refined-interiors"] .cs2-hero .cs2-meta-label {
  color: var(--hot-pink);
}
.laney-cs2[data-slug="refined-interiors"] .cs2-hero .cs2-sub strong {
  background: var(--hot-pink);
  color: var(--cream);
}

/* Zen Donkey Farms — mint (source HTML; farm/natural vibe) */
.laney-cs2[data-slug="zen-donkey-farms"] .cs2-hero {
  background: var(--mint);
  color: var(--ink);
}
.laney-cs2[data-slug="zen-donkey-farms"] .cs2-hero .cs2-eyebrow,
.laney-cs2[data-slug="zen-donkey-farms"] .cs2-hero .cs2-crumb {
  color: var(--hot-pink);
}
.laney-cs2[data-slug="zen-donkey-farms"] .cs2-hero h1,
.laney-cs2[data-slug="zen-donkey-farms"] .cs2-hero .cs2-title,
.laney-cs2[data-slug="zen-donkey-farms"] .cs2-hero .cs2-sub,
.laney-cs2[data-slug="zen-donkey-farms"] .cs2-hero .cs2-meta-value {
  color: var(--ink);
}
.laney-cs2[data-slug="zen-donkey-farms"] .cs2-hero em,
.laney-cs2[data-slug="zen-donkey-farms"] .cs2-hero .cs2-title em,
.laney-cs2[data-slug="zen-donkey-farms"] .cs2-hero .cs2-meta-value em {
  color: var(--hot-pink);
}
.laney-cs2[data-slug="zen-donkey-farms"] .cs2-hero .cs2-meta {
  border-top-color: var(--ink);
}
.laney-cs2[data-slug="zen-donkey-farms"] .cs2-hero .cs2-meta-label {
  color: var(--hot-pink);
}
.laney-cs2[data-slug="zen-donkey-farms"] .cs2-hero .cs2-sub strong {
  background: var(--hot-pink);
  color: var(--cream);
}

/* Tami's Tasty Tables — acid-yellow (food/warmth, distinguish from Zen's mint) */
.laney-cs2[data-slug="tamis-tasty-tables"] .cs2-hero {
  background: var(--acid-yellow);
  color: var(--ink);
}
.laney-cs2[data-slug="tamis-tasty-tables"] .cs2-hero .cs2-eyebrow,
.laney-cs2[data-slug="tamis-tasty-tables"] .cs2-hero .cs2-crumb {
  color: var(--hot-pink);
}
.laney-cs2[data-slug="tamis-tasty-tables"] .cs2-hero h1,
.laney-cs2[data-slug="tamis-tasty-tables"] .cs2-hero .cs2-title,
.laney-cs2[data-slug="tamis-tasty-tables"] .cs2-hero .cs2-sub,
.laney-cs2[data-slug="tamis-tasty-tables"] .cs2-hero .cs2-meta-value {
  color: var(--ink);
}
.laney-cs2[data-slug="tamis-tasty-tables"] .cs2-hero em,
.laney-cs2[data-slug="tamis-tasty-tables"] .cs2-hero .cs2-title em,
.laney-cs2[data-slug="tamis-tasty-tables"] .cs2-hero .cs2-meta-value em {
  color: var(--hot-pink);
}
.laney-cs2[data-slug="tamis-tasty-tables"] .cs2-hero .cs2-meta {
  border-top-color: var(--ink);
}
.laney-cs2[data-slug="tamis-tasty-tables"] .cs2-hero .cs2-meta-label {
  color: var(--hot-pink);
}
.laney-cs2[data-slug="tamis-tasty-tables"] .cs2-hero .cs2-sub strong {
  background: var(--hot-pink);
  color: var(--cream);
}

/* Monsees & Mayer — electric-blue (legal/serious from source HTML) */
.laney-cs2[data-slug="monsees-mayer"] .cs2-hero {
  background: var(--electric-blue);
  color: var(--cream);
}

/* Holding Them Accountable — deeper blue variant (sister to M&M) */
.laney-cs2[data-slug="holding-them-accountable"] .cs2-hero {
  background: #1a3a8a; /* darker electric blue */
  color: var(--cream);
}

/* Why a Kansas Comeback — KU blue (deep traditional editorial) */
.laney-cs2[data-slug="why-a-kansas-comeback"] .cs2-hero {
  background: #003e7e; /* KU blue */
  color: var(--cream);
}

/* KC Real Estate — warm orange (real estate / warmth) */
.laney-cs2[data-slug="kc-real-estate"] .cs2-hero {
  background: var(--orange);
  color: var(--cream);
}

/* KC Media Team — electric-blue lighter shade (hub/multi-client) */
.laney-cs2[data-slug="kc-media-team"] .cs2-hero {
  background: #4a7cff;
  color: var(--cream);
}

/* KC Flooring — ink (dark, premium) */
.laney-cs2[data-slug="kc-flooring"] .cs2-hero {
  background: var(--ink);
  color: var(--cream);
}
.laney-cs2[data-slug="kc-flooring"] .cs2-hero em,
.laney-cs2[data-slug="kc-flooring"] .cs2-hero .cs2-title em {
  color: var(--acid-yellow);
}

/* Branding — cream with ink text (showcase, neutral) */
.laney-cs2[data-slug="branding"] .cs2-hero {
  background: var(--cream);
  color: var(--ink);
}
.laney-cs2[data-slug="branding"] .cs2-hero .cs2-eyebrow,
.laney-cs2[data-slug="branding"] .cs2-hero .cs2-crumb {
  color: var(--hot-pink);
}
.laney-cs2[data-slug="branding"] .cs2-hero h1,
.laney-cs2[data-slug="branding"] .cs2-hero .cs2-title,
.laney-cs2[data-slug="branding"] .cs2-hero .cs2-sub,
.laney-cs2[data-slug="branding"] .cs2-hero .cs2-meta-value {
  color: var(--ink);
}
.laney-cs2[data-slug="branding"] .cs2-hero em,
.laney-cs2[data-slug="branding"] .cs2-hero .cs2-title em,
.laney-cs2[data-slug="branding"] .cs2-hero .cs2-meta-value em {
  color: var(--hot-pink);
}
.laney-cs2[data-slug="branding"] .cs2-hero .cs2-meta {
  border-top-color: var(--ink);
}
.laney-cs2[data-slug="branding"] .cs2-hero .cs2-meta-label {
  color: var(--hot-pink);
}
.laney-cs2[data-slug="branding"] .cs2-hero .cs2-sub strong {
  background: var(--hot-pink);
  color: var(--cream);
}
.laney-cs2 .cs2-stamp {
  background: var(--ink);
  color: var(--cream);
  border-radius: 12px;
  padding: 24px 28px;
  text-align: center;
  transform: rotate(-2deg);
  box-shadow: 8px 8px 0 var(--hot-pink);
}
.laney-cs2 .cs2-stamp-l1 {
  font-family: 'Space Mono', monospace;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  opacity: 0.8;
  margin-bottom: 8px;
}
.laney-cs2 .cs2-stamp-l2 {
  font-family: 'Fraunces', serif;
  font-size: 28px;
  font-weight: 900;
  line-height: 1;
  margin-bottom: 8px;
}
.laney-cs2 .cs2-stamp-l3 {
  font-family: 'Space Mono', monospace;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  opacity: 0.7;
}

/* SECTION HEAD shared across all blocks */
.laney-cs2 .cs2-section-head {
  max-width: 1400px;
  margin: 0 auto 60px;
}
.laney-cs2 .cs2-eyebrow {
  font-family: 'Space Mono', monospace;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--hot-pink);
  margin-bottom: 16px;
}
.laney-cs2 .cs2-h2 {
  font-family: 'Fraunces', serif;
  font-size: clamp(36px, 6vw, 66px);
  font-weight: 900;
  line-height: 0.95;
  letter-spacing: -0.03em;
}
.laney-cs2 .cs2-h2 em {
  font-style: italic;
  font-weight: 400;
  color: var(--electric-blue);
}

/* NUMBERS — 4-stat grid */
.laney-cs2 .cs2-numbers {
  padding: 75px 30px;
  background: var(--lilac);
  border-bottom: 2px solid var(--ink);
}
.laney-cs2 .cs2-numbers-grid {
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
.laney-cs2 .cs2-num-card {
  border: 2px solid var(--ink);
  border-radius: 12px;
  padding: 32px 28px;
  background: var(--cream);
  text-align: left;
}
.laney-cs2 .cs2-num-stat {
  font-family: 'Fraunces', serif;
  font-size: clamp(42px, 6.5vw, 72px);
  font-weight: 900;
  line-height: 0.95;
  letter-spacing: -0.04em;
  margin-bottom: 14px;
}
.laney-cs2 .cs2-num-stat em {
  font-style: italic;
  font-weight: 400;
  color: var(--hot-pink);
}
.laney-cs2 .cs2-num-desc {
  font-family: 'Space Mono', monospace;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  line-height: 1.5;
}

/* GENERIC TEXT SECTIONS */
.laney-cs2 .cs2-section {
  padding: 75px 30px;
  background: var(--cream);
  border-bottom: 2px solid var(--ink);
}
.laney-cs2 .cs2-section:nth-of-type(odd) { background: var(--cream); }
.laney-cs2 .cs2-body {
  max-width: 880px;
  margin: 0 auto;
  font-size: 14px;
  line-height: 1.6;
}
.laney-cs2 .cs2-body p { margin: 0 0 20px; }
.laney-cs2 .cs2-body p:last-child { margin-bottom: 0; }
.laney-cs2 .cs2-body strong { font-weight: 700; }
.laney-cs2 .cs2-body em { font-style: italic; }
.laney-cs2 .cs2-body ul {
  list-style: none;
  padding: 0;
  margin: 24px 0;
}
.laney-cs2 .cs2-body ul li {
  padding: 12px 0 12px 28px;
  position: relative;
  border-bottom: 1px solid rgba(10,10,10,0.15);
  font-size: 13px;
}
.laney-cs2 .cs2-body ul li:last-child { border-bottom: none; }
.laney-cs2 .cs2-body ul li::before {
  content: '✦';
  color: var(--hot-pink);
  position: absolute;
  left: 0;
  top: 12px;
}
.laney-cs2 .cs2-body a {
  color: var(--electric-blue);
  text-decoration: underline;
}

/* NUMBERED GRID — 4 cards with numbers */
.laney-cs2 .cs2-numbered {
  padding: 75px 30px;
  background: var(--acid-yellow);
  border-bottom: 2px solid var(--ink);
}
.laney-cs2 .cs2-numbered-grid {
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}
.laney-cs2 .cs2-numbered-card {
  border: 2px solid var(--ink);
  border-radius: 12px;
  padding: 36px;
  background: var(--cream);
  position: relative;
}
.laney-cs2 .cs2-numbered-num {
  font-family: 'Space Mono', monospace;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--hot-pink);
  margin-bottom: 16px;
}
.laney-cs2 .cs2-numbered-title {
  font-family: 'Fraunces', serif;
  font-size: 22px;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.02em;
  margin-bottom: 16px;
}
.laney-cs2 .cs2-numbered-title em {
  font-style: italic;
  font-weight: 400;
  color: var(--hot-pink);
}
.laney-cs2 .cs2-numbered-desc {
  font-size: 13px;
  line-height: 1.55;
}

/* PULLQUOTE */
.laney-cs2 .cs2-pullquote {
  padding: 90px 30px;
  background: var(--electric-blue);
  color: var(--cream);
  text-align: center;
  border-bottom: 2px solid var(--ink);
}
.laney-cs2 .cs2-pullquote .cs2-eyebrow { color: var(--acid-yellow); margin-bottom: 24px; }
.laney-cs2 .cs2-quote {
  font-family: 'Fraunces', serif;
  font-size: clamp(28px, 5vw, 56px);
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -0.02em;
  max-width: 1100px;
  margin: 0 auto 24px;
  font-style: italic;
}
.laney-cs2 .cs2-quote strong { font-weight: 900; font-style: normal; background: var(--hot-pink); color: var(--cream); padding: 0 8px; }
.laney-cs2 .cs2-quote em { color: var(--acid-yellow); font-style: italic; font-weight: 400; }
.laney-cs2 .cs2-quote-attr {
  font-family: 'Space Mono', monospace;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--cream);
  opacity: 0.85;
  max-width: 720px;
  margin: 0 auto;
}

/* GALLERY */
.laney-cs2 .cs2-gallery {
  padding: 75px 30px;
  background: var(--mint);
  border-bottom: 2px solid var(--ink);
}
.laney-cs2 .cs2-gallery-grid {
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
/* Each gallery image is a small "polaroid" card — fades in staggered on scroll,
   tilts subtly on hover. Padded cream background so screenshots aren't cropped. */
.laney-cs2 .cs2-gallery-grid img {
  width: 100%;
  height: auto;
  object-fit: contain;
  object-position: center;
  aspect-ratio: 1 / 1;
  border: 2px solid var(--ink);
  border-radius: 8px;
  background: var(--cream);
  padding: 10px;
  box-shadow: 6px 6px 0 var(--ink);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
  opacity: 0;
  animation: cs2-gallery-pop 0.6s ease-out forwards;
}
.laney-cs2 .cs2-gallery-grid img:nth-child(1) { animation-delay: 0.05s; }
.laney-cs2 .cs2-gallery-grid img:nth-child(2) { animation-delay: 0.15s; }
.laney-cs2 .cs2-gallery-grid img:nth-child(3) { animation-delay: 0.25s; }
.laney-cs2 .cs2-gallery-grid img:nth-child(4) { animation-delay: 0.35s; }
.laney-cs2 .cs2-gallery-grid img:nth-child(5) { animation-delay: 0.45s; }
.laney-cs2 .cs2-gallery-grid img:nth-child(6) { animation-delay: 0.55s; }
.laney-cs2 .cs2-gallery-grid img:nth-child(7) { animation-delay: 0.65s; }
.laney-cs2 .cs2-gallery-grid img:nth-child(8) { animation-delay: 0.75s; }

/* Alternating tilt — gives the grid a hand-arranged feel rather than rigid grid */
.laney-cs2 .cs2-gallery-grid img:nth-child(odd)  { transform: rotate(-1deg); }
.laney-cs2 .cs2-gallery-grid img:nth-child(even) { transform: rotate(1deg); }
.laney-cs2 .cs2-gallery-grid img:hover {
  transform: rotate(0deg) scale(1.04) translateY(-4px);
  box-shadow: 10px 10px 0 var(--ink);
  z-index: 5;
  cursor: zoom-in;
}

@keyframes cs2-gallery-pop {
  0%   { opacity: 0; transform: translateY(20px) rotate(-3deg); }
  100% { opacity: 1; }
}
/* Override the pop keyframe end state so alternating tilt still applies */
.laney-cs2 .cs2-gallery-grid img:nth-child(odd)  {
  animation-name: cs2-gallery-pop-odd;
}
.laney-cs2 .cs2-gallery-grid img:nth-child(even) {
  animation-name: cs2-gallery-pop-even;
}
@keyframes cs2-gallery-pop-odd {
  0%   { opacity: 0; transform: translateY(20px) rotate(-4deg); }
  100% { opacity: 1; transform: translateY(0) rotate(-1deg); }
}
@keyframes cs2-gallery-pop-even {
  0%   { opacity: 0; transform: translateY(20px) rotate(4deg); }
  100% { opacity: 1; transform: translateY(0) rotate(1deg); }
}
.laney-cs2 .cs2-gallery-caption {
  max-width: 1400px;
  margin: 24px auto 0;
  font-family: 'Space Mono', monospace;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  opacity: 0.7;
}

/* TAKEAWAY */
.laney-cs2 .cs2-takeaway {
  padding: 90px 30px;
  background: var(--ink);
  color: var(--cream);
  border-bottom: 2px solid var(--ink);
}
.laney-cs2 .cs2-takeaway .cs2-eyebrow {
  color: var(--acid-yellow);
  max-width: 1100px;
  margin: 0 auto 24px;
}
.laney-cs2 .cs2-takeaway-intro {
  font-family: 'Fraunces', serif;
  font-size: clamp(24px, 4.5vw, 44px);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.02em;
  max-width: 1100px;
  margin: 0 auto 48px;
}
.laney-cs2 .cs2-takeaway-intro strong { font-weight: 900; }
.laney-cs2 .cs2-takeaway-intro em { font-style: italic; font-weight: 400; color: var(--acid-yellow); }
.laney-cs2 .cs2-takeaway-list {
  max-width: 1100px;
  margin: 0 auto;
  list-style: none;
  padding: 0;
}
.laney-cs2 .cs2-takeaway-list li {
  padding: 18px 0 18px 36px;
  position: relative;
  border-top: 2px solid var(--cream);
  font-size: 13px;
  line-height: 1.5;
}
.laney-cs2 .cs2-takeaway-list li:last-child { border-bottom: 2px solid var(--cream); }
.laney-cs2 .cs2-takeaway-list li::before {
  content: '/ ' counter(li-counter, decimal-leading-zero);
  counter-increment: li-counter;
  position: absolute;
  left: 0;
  top: 18px;
  font-family: 'Space Mono', monospace;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--hot-pink);
}
.laney-cs2 .cs2-takeaway-list { counter-reset: li-counter; }

/* CLOSER BANNER */
.laney-cs2 .cs2-banner {
  background: var(--hot-pink);
  color: var(--cream);
  padding: 36px 0;
  border-bottom: 2px solid var(--ink);
  overflow: hidden;
}
.laney-cs2 .cs2-banner-inner {
  font-family: 'Fraunces', serif;
  font-size: clamp(28px, 5vw, 48px);
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.02em;
  font-style: italic;
  text-align: center;
  white-space: nowrap;
}

/* NEXT LINK */
.laney-cs2 .cs2-next {
  padding: 75px 30px;
  background: var(--cream);
  border-bottom: 2px solid var(--ink);
  text-align: center;
}
.laney-cs2 .cs2-next .cs2-eyebrow {
  margin: 0 auto 16px;
}
.laney-cs2 .cs2-next .cs2-h2 {
  margin-bottom: 48px;
}
.laney-cs2 .cs2-next-buttons {
  display: flex;
  gap: 16px;
  justify-content: center;
  flex-wrap: wrap;
}
.laney-cs2 .cs2-next-btn {
  display: inline-block;
  background: var(--hot-pink);
  color: var(--cream);
  padding: 20px 36px;
  border: 2px solid var(--ink);
  border-radius: 100px;
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 6px 6px 0 var(--ink);
  transition: all 0.2s;
}
.laney-cs2 .cs2-next-btn-2 {
  background: var(--cream);
  color: var(--ink);
}
.laney-cs2 .cs2-next-btn:hover {
  transform: translate(2px, 2px);
  box-shadow: 2px 2px 0 var(--ink);
}

/* RESPONSIVE */
@media (max-width: 900px) {
  .laney-cs2 .cs2-hero { padding: 38px 20px 45px; }
  .laney-cs2 .cs2-hero-grid { grid-template-columns: 1fr; gap: 36px; }
  .laney-cs2 .cs2-meta { grid-template-columns: 1fr; }
  .laney-cs2 .cs2-stamp { max-width: 280px; }
  .laney-cs2 .cs2-numbers { padding: 45px 20px; }
  .laney-cs2 .cs2-numbers-grid { grid-template-columns: repeat(2, 1fr); }
  .laney-cs2 .cs2-numbered { padding: 45px 20px; }
  .laney-cs2 .cs2-numbered-grid { grid-template-columns: 1fr; }
  .laney-cs2 .cs2-section { padding: 45px 20px; }
  .laney-cs2 .cs2-pullquote { padding: 52px 20px; }
  .laney-cs2 .cs2-gallery { padding: 45px 20px; }
  .laney-cs2 .cs2-gallery-grid { grid-template-columns: repeat(2, 1fr); }
  .laney-cs2 .cs2-takeaway { padding: 52px 20px; }
  .laney-cs2 .cs2-next { padding: 45px 20px; }
  .laney-cs2 .cs2-crumb { padding: 16px 20px; }
}

/* =========================================================================
   ARTIFACTS GRID — captioned image cards with click-to-enlarge lightbox
   ========================================================================= */

.laney-cs2 .cs2-artifacts {
  padding: 75px 30px;
  background: var(--cream);
  border-bottom: 2px solid var(--ink);
}
.laney-cs2 .cs2-artifacts-grid {
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.laney-cs2 .cs2-artifact {
  display: flex;
  flex-direction: column;
  margin: 0;
}
.laney-cs2 .cs2-artifact-img-btn {
  display: block;
  padding: 0;
  margin: 0;
  border: 2px solid var(--ink);
  border-radius: 8px;
  background: var(--cream);
  cursor: pointer;
  overflow: hidden;
  box-shadow: 6px 6px 0 var(--ink);
  transition: transform 0.15s, box-shadow 0.15s;
  width: 100%;
}
.laney-cs2 .cs2-artifact-img-btn:hover,
.laney-cs2 .cs2-artifact-img-btn:focus {
  transform: translate(2px, 2px);
  box-shadow: 2px 2px 0 var(--ink);
  outline: none;
}
.laney-cs2 .cs2-artifact-img-btn img {
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: 16 / 10;
  object-fit: contain;
  object-position: center;
  background: var(--cream);
  padding: 8px;
}
.laney-cs2 .cs2-artifact figcaption {
  margin-top: 14px;
  padding: 12px 16px;
  background: var(--cream);
  border: 2px solid var(--ink);
  border-radius: 6px;
  font-family: 'Space Mono', monospace;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  line-height: 1.4;
}

/* Lightbox */
.laney-cs2 .cs2-lightbox {
  position: fixed;
  inset: 0;
  background: rgba(10, 10, 10, 0.92);
  z-index: 10000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 40px;
}
.laney-cs2 .cs2-lightbox.cs2-lightbox-open {
  display: flex;
}
.laney-cs2 .cs2-lightbox-img {
  max-width: 100%;
  max-height: 100%;
  border: 2px solid var(--cream);
  border-radius: 8px;
  box-shadow: 12px 12px 0 var(--hot-pink);
}
.laney-cs2 .cs2-lightbox-close {
  position: absolute;
  top: 20px;
  right: 20px;
  background: var(--hot-pink);
  color: var(--cream);
  border: 2px solid var(--cream);
  border-radius: 50%;
  width: 48px;
  height: 48px;
  font-size: 22px;
  font-weight: 700;
  cursor: pointer;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}
.laney-cs2 .cs2-lightbox-close:hover {
  background: var(--cream);
  color: var(--hot-pink);
}

/* =========================================================================
   VIDEO EMBEDS — pair of YouTube shorts / Instagram reels
   ========================================================================= */

.laney-cs2 .cs2-videos {
  padding: 75px 30px;
  background: var(--ink);
  color: var(--cream);
  border-bottom: 2px solid var(--ink);
}
.laney-cs2 .cs2-videos-grid {
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 36px;
}
.laney-cs2 .cs2-video {
  display: flex;
  flex-direction: column;
}
.laney-cs2 .cs2-video-label {
  font-family: 'Space Mono', monospace;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--acid-yellow);
  margin-bottom: 16px;
}
.laney-cs2 .cs2-video-frame {
  border: 2px solid var(--cream);
  border-radius: 12px;
  box-shadow: 8px 8px 0 var(--hot-pink);
  overflow: hidden;
  background: var(--ink);
  position: relative;
  aspect-ratio: 16 / 9;
  max-width: 100%;
}
/* Vertical reels / shorts — 9:16 aspect, centered with max-width */
.laney-cs2 .cs2-video-frame-reel {
  aspect-ratio: 9 / 16;
  max-width: 360px;
  margin: 0 auto;
}
/* LinkedIn embeds — taller card aspect (native iframe is 670x504) */
.laney-cs2 .cs2-video-frame-linkedin {
  aspect-ratio: 4 / 5;
  max-width: 480px;
  margin: 0 auto;
  background: #fff;
}
/* Facebook video plugin — native 16:9 but the plugin chrome adds height */
.laney-cs2 .cs2-video-frame-facebook {
  aspect-ratio: 16 / 11;
  background: #18191a;
}
/* Instagram post embeds — taller than reels (more like 4:5 with caption visible) */
.laney-cs2 .cs2-video-frame-instagram {
  aspect-ratio: 9 / 13;
  max-width: 400px;
  margin: 0 auto;
  background: #fff;
}
/* When an embed is BOTH instagram AND is_reel (reel format), prefer 9:16 reel */
.laney-cs2 .cs2-video-frame-reel.cs2-video-frame-instagram {
  aspect-ratio: 9 / 16;
  max-width: 360px;
}
.laney-cs2 .cs2-video-frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* === CLICKABLE THUMBNAIL CARD — fallback when iframes get blocked === */
.laney-cs2 .cs2-video-thumb {
  display: block;
  position: relative;
  border: 2px solid var(--cream);
  border-radius: 12px;
  box-shadow: 8px 8px 0 var(--hot-pink);
  overflow: hidden;
  background: #111;
  aspect-ratio: 16 / 9;
  max-width: 100%;
  text-decoration: none;
  color: var(--cream);
  cursor: pointer;
  transition: transform 0.2s, box-shadow 0.2s;
}
.laney-cs2 .cs2-video-thumb:hover {
  transform: translate(-3px, -3px);
  box-shadow: 12px 12px 0 var(--hot-pink);
}
.laney-cs2 .cs2-video-thumb.cs2-video-frame-reel {
  aspect-ratio: 9 / 16;
  max-width: 360px;
  margin: 0 auto;
}
.laney-cs2 .cs2-video-thumb.cs2-video-frame-linkedin {
  aspect-ratio: 4 / 5;
  max-width: 480px;
  margin: 0 auto;
}
.laney-cs2 .cs2-video-thumb.cs2-video-frame-instagram {
  aspect-ratio: 9 / 13;
  max-width: 400px;
  margin: 0 auto;
}
.laney-cs2 .cs2-video-thumb.cs2-video-frame-reel.cs2-video-frame-instagram {
  aspect-ratio: 9 / 16;
  max-width: 360px;
}
.laney-cs2 .cs2-video-thumb-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.laney-cs2 .cs2-video-thumb-placeholder {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #1a1a1a 0%, #2a2a2a 100%);
}
.laney-cs2 .cs2-video-thumb-platform-icon {
  font-size: clamp(48px, 8vw, 84px);
  color: rgba(255, 248, 231, 0.18);
  font-weight: 700;
  font-family: 'Fraunces', serif;
  font-style: italic;
}
.laney-cs2 .cs2-video-thumb-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 18px;
  background: rgba(10, 10, 10, 0.45);
  transition: background 0.2s;
}
.laney-cs2 .cs2-video-thumb:hover .cs2-video-thumb-overlay {
  background: rgba(10, 10, 10, 0.6);
}
.laney-cs2 .cs2-video-thumb-play {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: var(--hot-pink);
  color: var(--cream);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 28px;
  padding-left: 5px; /* visual center for the play triangle */
  border: 3px solid var(--cream);
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.45);
  transition: transform 0.2s, background 0.2s;
}
.laney-cs2 .cs2-video-thumb:hover .cs2-video-thumb-play {
  transform: scale(1.1);
  background: var(--acid-yellow);
  color: var(--ink);
}
.laney-cs2 .cs2-video-thumb-cta {
  font-family: 'Space Mono', monospace;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--cream);
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.6);
}

.laney-cs2 .cs2-video-caption {
  margin-top: 18px;
  font-size: 15px;
  line-height: 1.5;
  color: var(--cream);
  opacity: 0.9;
}
.laney-cs2 .cs2-video-caption a {
  color: var(--acid-yellow);
  text-decoration: underline;
}

@media (max-width: 900px) {
  .laney-cs2 .cs2-artifacts { padding: 45px 20px; }
  .laney-cs2 .cs2-artifacts-grid { grid-template-columns: 1fr; }
  .laney-cs2 .cs2-videos { padding: 45px 20px; }
  .laney-cs2 .cs2-videos-grid { grid-template-columns: 1fr; gap: 40px; }
  .laney-cs2 .cs2-video-frame-reel { max-width: 100%; }
}

/* =========================================================================
   CAMPAIGN CALLOUT — featured ad campaign with banner creative + metrics
   ========================================================================= */

.laney-cs2 .cs2-campaign {
  padding: 75px 30px;
  background: var(--electric-blue);
  color: var(--cream);
  border-bottom: 2px solid var(--ink);
}
/* Whole-section clickable variant: hover affordance + focus ring + "tap anywhere" hint */
.laney-cs2 .cs2-campaign-clickable {
  cursor: pointer;
  position: relative;
  transition: background 0.2s ease;
}
.laney-cs2 .cs2-campaign-clickable:hover {
  background: #1e3fb3; /* slightly darker electric blue on hover */
}
.laney-cs2 .cs2-campaign-clickable:hover .cs2-campaign-cta-btn {
  background: var(--acid-yellow);
  color: var(--ink);
  transform: translate(-2px, -2px);
  box-shadow: 6px 6px 0 var(--ink);
}
.laney-cs2 .cs2-campaign-clickable:focus-visible {
  outline: 3px solid var(--acid-yellow);
  outline-offset: -3px;
}
/* Small hint pill in the top-right corner so users know the whole section is clickable */
.laney-cs2 .cs2-campaign-clickable::before {
  content: '↗ Click to view live';
  position: absolute;
  top: 18px;
  right: 24px;
  font-family: 'Space Mono', monospace;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  padding: 6px 10px;
  background: var(--acid-yellow);
  color: var(--ink);
  border-radius: 100px;
  opacity: 0.85;
  pointer-events: none;
  z-index: 2;
}
@media (max-width: 700px) {
  .laney-cs2 .cs2-campaign-clickable::before { display: none; }
}
.laney-cs2 .cs2-campaign .cs2-section-head {
  text-align: center;
  margin: 0 auto 36px;
}
.laney-cs2 .cs2-campaign .cs2-eyebrow {
  color: var(--acid-yellow);
}
.laney-cs2 .cs2-campaign .cs2-h2 {
  color: var(--cream);
}
.laney-cs2 .cs2-campaign .cs2-h2 em {
  color: var(--acid-yellow);
}
.laney-cs2 .cs2-campaign-platform {
  margin-top: 18px;
  font-family: 'Space Mono', monospace;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--cream);
  opacity: 0.85;
}
.laney-cs2 .cs2-campaign-desc {
  max-width: 880px;
  margin: 0 auto 56px;
  font-size: 14px;
  line-height: 1.55;
  text-align: center;
  color: var(--cream);
}
.laney-cs2 .cs2-campaign-desc strong {
  background: var(--hot-pink);
  color: var(--cream);
  padding: 0 6px;
  font-weight: 700;
}
.laney-cs2 .cs2-campaign-desc em {
  font-style: italic;
  color: var(--acid-yellow);
}

/* Banner ads — three sizes shown at native proportions. Mobile + Leaderboard
   side-by-side on top row, interstitial centered below. */
/* Banners — each one wrapped in a device-frame mockup (phone or browser)
   showing the ad in context as it'd appear during a real browsing session. */
.laney-cs2 .cs2-banners {
  max-width: 1100px;
  margin: 0 auto 56px;
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 32px;
  align-items: start;
}
.laney-cs2 .cs2-banner-card {
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
}
/* 320x480 interstitial takes a full row beneath */
.laney-cs2 .cs2-banner-card.cs2-banner-frame-phone-portrait {
  grid-column: 1 / -1;
  margin-top: 16px;
}

.laney-cs2 .cs2-banner-card figcaption {
  margin-top: 14px;
  font-family: 'Space Mono', monospace;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--cream);
  text-align: center;
}

/* Device chrome — shared base */
.laney-cs2 .cs2-banner-device {
  background: var(--cream);
  border: 3px solid var(--ink);
  box-shadow: 8px 8px 0 var(--ink);
  overflow: hidden;
  position: relative;
}

/* === PHONE FRAME (320x50 sticky banner) === */
.laney-cs2 .cs2-banner-frame-phone .cs2-banner-device {
  width: 260px;
  height: 360px;
  border-radius: 28px;
  padding: 0;
}
.laney-cs2 .cs2-banner-frame-phone .cs2-phone-notch {
  width: 70px;
  height: 14px;
  background: var(--ink);
  border-radius: 0 0 10px 10px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}
.laney-cs2 .cs2-banner-frame-phone .cs2-phone-statusbar {
  display: flex;
  justify-content: space-between;
  padding: 6px 18px;
  font-family: -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 10px;
  font-weight: 600;
  color: var(--ink);
  background: var(--cream);
}
.laney-cs2 .cs2-banner-frame-phone .cs2-phone-content {
  position: relative;
  height: calc(100% - 38px);
  display: flex;
  flex-direction: column;
  background: #fafafa;
}
.laney-cs2 .cs2-phone-page-skeleton {
  flex: 1;
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  overflow: hidden;
}
.laney-cs2 .cs2-banner-frame-phone .cs2-banner-img-btn {
  display: block;
  width: 100%;
  padding: 6px 0;
  margin: 0;
  background: var(--cream);
  border: 0;
  border-top: 1px solid #d0d0d0;
  cursor: pointer;
  position: relative;
  animation: cs2-banner-slide-up 8s ease-in-out infinite;
}
.laney-cs2 .cs2-banner-frame-phone .cs2-banner-img-btn img {
  width: 240px;
  max-width: 90%;
  height: 38px;
  margin: 0 auto;
  display: block;
  object-fit: contain;
  background: var(--cream);
}

/* === BROWSER FRAME (728x90 leaderboard) === */
.laney-cs2 .cs2-banner-frame-browser .cs2-banner-device {
  width: 100%;
  border-radius: 10px;
  height: 360px;
  display: flex;
  flex-direction: column;
}
.laney-cs2 .cs2-browser-bar {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 10px 14px;
  background: #e8e8e8;
  border-bottom: 2px solid var(--ink);
}
.laney-cs2 .cs2-browser-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  display: inline-block;
  border: 1.5px solid var(--ink);
}
.laney-cs2 .cs2-browser-dot-r { background: #ff5f57; }
.laney-cs2 .cs2-browser-dot-y { background: #febc2e; }
.laney-cs2 .cs2-browser-dot-g { background: #28c840; }
.laney-cs2 .cs2-browser-url {
  flex: 1;
  margin-left: 12px;
  background: #fafafa;
  border: 1px solid #bbb;
  border-radius: 100px;
  padding: 5px 14px;
  font-family: -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 11px;
  color: #444;
  text-align: center;
}
.laney-cs2 .cs2-browser-content {
  flex: 1;
  padding: 22px;
  background: #fff;
  display: flex;
  flex-direction: column;
  gap: 14px;
  overflow: hidden;
  justify-content: center;
}
.laney-cs2 .cs2-browser-content .cs2-banner-img-btn {
  display: block;
  width: 100%;
  padding: 0;
  margin: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  cursor: pointer;
}
.laney-cs2 .cs2-browser-content .cs2-banner-img-btn img {
  width: 100%;
  max-width: 728px;
  height: auto;
  display: block;
  margin: 0 auto;
}

/* Skeleton lines — placeholder content around the ad */
.laney-cs2 .cs2-browser-skeleton,
.laney-cs2 .cs2-phone-page-skeleton {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.laney-cs2 .cs2-skel {
  height: 7px;
  background: #e8e8e8;
  border-radius: 4px;
}
.laney-cs2 .cs2-skel-h { height: 14px; width: 60%; }
.laney-cs2 .cs2-skel-1 { width: 100%; }
.laney-cs2 .cs2-skel-2 { width: 85%; }
.laney-cs2 .cs2-skel-3 { width: 70%; }

/* === PHONE PORTRAIT (320x480 interstitial) === */
.laney-cs2 .cs2-banner-frame-phone-portrait .cs2-banner-device {
  width: 260px;
  height: 500px;
  border-radius: 28px;
}
.laney-cs2 .cs2-banner-frame-phone-portrait .cs2-phone-notch {
  width: 70px;
  height: 14px;
  background: var(--ink);
  border-radius: 0 0 10px 10px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}
.laney-cs2 .cs2-banner-frame-phone-portrait .cs2-phone-statusbar {
  display: flex;
  justify-content: space-between;
  padding: 6px 18px;
  font-family: -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 10px;
  font-weight: 600;
  color: var(--ink);
  background: var(--cream);
}
.laney-cs2 .cs2-banner-frame-phone-portrait .cs2-phone-content {
  height: calc(100% - 38px);
  background: var(--ink);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 14px;
}
.laney-cs2 .cs2-banner-img-btn-full {
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  margin: 0;
  background: transparent;
  border: 0;
  cursor: pointer;
}
.laney-cs2 .cs2-banner-img-btn-full img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

/* === ANIMATIONS === */
@keyframes cs2-banner-slide-up {
  0%, 100% { transform: translateY(60px); opacity: 0; }
  20%, 80% { transform: translateY(0);    opacity: 1; }
}

/* Hover affordance for the device frame as a whole */
.laney-cs2 .cs2-banner-device {
  transition: transform 0.2s, box-shadow 0.2s;
}
.laney-cs2 .cs2-banner-device:hover {
  transform: translate(-2px, -2px);
  box-shadow: 12px 12px 0 var(--ink);
}

@media (max-width: 700px) {
  .laney-cs2 .cs2-banners { grid-template-columns: 1fr; }
  .laney-cs2 .cs2-banner-frame-browser .cs2-banner-device { height: 280px; }
  .laney-cs2 .cs2-banner-frame-phone .cs2-banner-device,
  .laney-cs2 .cs2-banner-frame-phone-portrait .cs2-banner-device { width: 240px; }
}

/* Metrics row — up to 6 stat tiles */
.laney-cs2 .cs2-campaign-metrics {
  max-width: 1200px;
  margin: 0 auto 40px;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 14px;
}
.laney-cs2 .cs2-campaign-metric {
  background: rgba(255, 248, 231, 0.08);
  border: 2px solid var(--cream);
  border-radius: 8px;
  padding: 20px 14px;
  text-align: center;
}
.laney-cs2 .cs2-campaign-metric-stat {
  font-family: 'Fraunces', serif;
  font-size: clamp(20px, 3vw, 30px);
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--acid-yellow);
  margin-bottom: 8px;
}
.laney-cs2 .cs2-campaign-metric-label {
  font-family: 'Space Mono', monospace;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--cream);
  line-height: 1.4;
  opacity: 0.9;
}

/* CTA button */
.laney-cs2 .cs2-campaign-cta-row {
  text-align: center;
}
.laney-cs2 .cs2-campaign-cta-btn {
  display: inline-block;
  background: var(--hot-pink);
  color: var(--cream);
  padding: 18px 32px;
  border: 2px solid var(--cream);
  border-radius: 100px;
  font-family: 'Space Mono', monospace;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  text-decoration: none;
  box-shadow: 6px 6px 0 var(--ink);
  transition: all 0.2s;
}
.laney-cs2 .cs2-campaign-cta-btn:hover {
  transform: translate(2px, 2px);
  box-shadow: 2px 2px 0 var(--ink);
}

@media (max-width: 900px) {
  .laney-cs2 .cs2-campaign { padding: 45px 20px; }
  .laney-cs2 .cs2-banners {
    grid-template-columns: 1fr;
    justify-items: center;
  }
  .laney-cs2 .cs2-banner-card:nth-child(1) .cs2-banner-img-btn img,
  .laney-cs2 .cs2-banner-card:nth-child(2) .cs2-banner-img-btn img {
    max-width: 100%;
    height: auto;
  }
  .laney-cs2 .cs2-banner-card:nth-child(2) .cs2-banner-img-btn img {
    width: 100%;
  }
  .laney-cs2 .cs2-banner-card:nth-child(3) .cs2-banner-img-btn img {
    width: 280px;
    height: 420px;
  }
  .laney-cs2 .cs2-campaign-metrics {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* =========================================================================
   TOP NAVIGATION (replaces theme menu — flyout menu with HTA under M&M)
   ========================================================================= */

.laney-topnav {
  display: flex;
  align-items: center;
  gap: 28px;
  padding: 18px 36px;
  background: var(--cream);
  border-bottom: 2px solid var(--ink);
  position: relative;
  z-index: 1000;
  font-family: 'Space Mono', monospace;
}

.laney-topnav-logo {
  font-family: 'Fraunces', serif;
  font-weight: 900;
  font-size: 28px;
  color: var(--ink);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  line-height: 1;
}
.laney-topnav-logo-accent {
  background: var(--hot-pink);
  color: var(--cream);
  padding: 4px 10px;
  margin-left: 6px;
  font-style: italic;
  border-radius: 4px;
}
/* Image logo — sized so it matches the visual weight of a beefed-up text logo */
.laney-topnav-logo-img img {
  display: block;
  height: 56px;
  width: auto;
  max-width: 260px;
  object-fit: contain;
}

.laney-topnav-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1;
  justify-content: center;
}
.laney-topnav-item {
  position: relative;
}
.laney-topnav-item > a {
  display: block;
  padding: 12px 18px;
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  color: var(--ink);
  text-decoration: none;
  border-radius: 4px;
  transition: background 0.15s;
}
.laney-topnav-item > a:hover {
  background: rgba(0,0,0,0.05);
}
.laney-topnav-item.is-current > a {
  color: var(--hot-pink);
}
.laney-topnav-arrow {
  font-size: 9px;
  margin-left: 2px;
}

/* Flyout */
.laney-topnav-flyout {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 240px;
  background: var(--cream);
  border: 2px solid var(--ink);
  border-radius: 6px;
  box-shadow: 4px 4px 0 var(--ink);
  list-style: none;
  margin: 8px 0 0;
  padding: 6px 0;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-4px);
  transition: opacity 0.15s, transform 0.15s;
}
.laney-topnav-item.has-flyout:hover > .laney-topnav-flyout,
.laney-topnav-item.has-flyout:focus-within > .laney-topnav-flyout {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}
.laney-topnav-flyout-item {
  position: relative;
}
.laney-topnav-flyout-item > a {
  display: block;
  padding: 8px 16px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--ink);
  text-decoration: none;
  white-space: nowrap;
}
.laney-topnav-flyout-item > a:hover {
  background: var(--hot-pink);
  color: var(--cream);
}

/* Sub-flyout (e.g. HTA under M&M) */
.laney-topnav-subflyout {
  position: absolute;
  top: -8px;
  left: 100%;
  min-width: 220px;
  background: var(--cream);
  border: 2px solid var(--ink);
  border-radius: 6px;
  box-shadow: 4px 4px 0 var(--ink);
  list-style: none;
  margin: 0 0 0 4px;
  padding: 6px 0;
  opacity: 0;
  pointer-events: none;
  transform: translateX(-4px);
  transition: opacity 0.15s, transform 0.15s;
}
.laney-topnav-flyout-item.has-subflyout:hover > .laney-topnav-subflyout,
.laney-topnav-flyout-item.has-subflyout:focus-within > .laney-topnav-subflyout {
  opacity: 1;
  pointer-events: auto;
  transform: translateX(0);
}
.laney-topnav-subflyout li a {
  display: block;
  padding: 8px 16px;
  font-size: 11px;
  font-weight: 600;
  color: var(--ink);
  text-decoration: none;
  white-space: nowrap;
}
.laney-topnav-subflyout li a:hover {
  background: var(--hot-pink);
  color: var(--cream);
}

/* CTA */
.laney-topnav-cta {
  background: var(--hot-pink);
  color: var(--cream);
  padding: 13px 22px;
  border: 2px solid var(--ink);
  border-radius: 100px;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  text-decoration: none;
  box-shadow: 3px 3px 0 var(--ink);
  transition: all 0.15s;
  flex-shrink: 0;
}
.laney-topnav-cta:hover {
  transform: translate(1px, 1px);
  box-shadow: 1px 1px 0 var(--ink);
}

/* Mobile toggle button (hamburger) — hidden on desktop, shown on mobile.
   Using !important because Hello Elementor / some themes style button{} which
   can win on specificity. */
.laney-topnav-toggle {
  display: none !important;
  background: none;
  border: 0;
  cursor: pointer;
  padding: 8px;
  margin-left: auto;
}
.laney-topnav-toggle span {
  display: block;
  width: 26px;
  height: 3px;
  background: var(--ink);
  margin: 5px 0;
}

@media (max-width: 900px) {
  .laney-topnav { padding: 14px 18px; gap: 14px; flex-wrap: wrap; }
  .laney-topnav-toggle { display: inline-block !important; }
  .laney-topnav-cta { font-size: 12px; padding: 10px 16px; }
  .laney-topnav-logo { font-size: 22px; }
  .laney-topnav-logo-img img { height: 44px; max-width: 200px; }
  .laney-topnav-item > a { font-size: 15px; padding: 12px 14px; }
  .laney-topnav-list {
    display: none;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    order: 99;
    padding-top: 12px;
    border-top: 1px solid rgba(0,0,0,0.1);
    margin-top: 8px;
  }
  .laney-topnav-list.is-open { display: flex; }
  .laney-topnav-item.has-flyout > .laney-topnav-flyout {
    position: static;
    box-shadow: none;
    border: 0;
    margin-left: 16px;
    opacity: 1;
    pointer-events: auto;
    transform: none;
    display: none;
  }
  .laney-topnav-item.is-open-mobile > .laney-topnav-flyout { display: block; }
  .laney-topnav-subflyout {
    position: static;
    box-shadow: none;
    border: 0;
    margin-left: 16px;
    opacity: 1;
    pointer-events: auto;
    transform: none;
  }
}

/* =========================================================================
   HIDE THE THEME (Hello Elementor) HEADER/MENU ON PLUGIN PAGES
   ---------------------------------------------------------------------
   The plugin renders its own top nav (.laney-topnav). To avoid showing
   two menus, this hides the theme header on any page that contains a
   .laney-page wrapper. We use :has() to scope the hide to the document
   only when a .laney-page is present (so non-plugin pages keep their
   theme header intact). Falls back to a body-class selector if :has()
   isn't supported (older browsers).
   ========================================================================= */

/* Modern browsers — :has() lets us target the body only when the page
   contains a .laney-page wrapper. */
body:has(.laney-page) .site-header,
body:has(.laney-page) header.site-header,
body:has(.laney-page) .ehf-header,
body:has(.laney-page) .elementor-location-header,
body:has(.laney-page) #masthead,
body:has(.laney-page) .header-footer-builder header,
body:has(.laney-page) [data-elementor-type="header"] {
  display: none !important;
}

/* Fallback: also hide via a body class we set with JavaScript below */
body.laney-page-active .site-header,
body.laney-page-active header.site-header,
body.laney-page-active .ehf-header,
body.laney-page-active .elementor-location-header,
body.laney-page-active #masthead,
body.laney-page-active .header-footer-builder header,
body.laney-page-active [data-elementor-type="header"] {
  display: none !important;
}

/* Remove any top margin/padding the theme adds to <main> when its
   header is gone — otherwise there's a big gap at the top. */
body:has(.laney-page) main,
body:has(.laney-page) #page,
body:has(.laney-page) .site-content,
body.laney-page-active main,
body.laney-page-active #page,
body.laney-page-active .site-content {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* =========================================================================
   MOCKUP BLOCK — giant typographic card, overlaps hero (Crossroads-style)
   ========================================================================= */

.laney-cs2 .cs2-mockup-wrap {
  padding: 0 30px;
  background: var(--cream);
  margin-top: -45px;
  position: relative;
  z-index: 5;
}
.laney-cs2 .cs2-mockup {
  max-width: 1400px;
  margin: 0 auto;
  border: 3px solid var(--ink);
  border-radius: 16px;
  box-shadow: 12px 12px 0 var(--ink);
  aspect-ratio: 16 / 9;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  position: relative;
}
.laney-cs2 .cs2-mockup-bg-lilac        { background: var(--lilac); }
.laney-cs2 .cs2-mockup-bg-mint         { background: var(--mint); }
.laney-cs2 .cs2-mockup-bg-acid-yellow  { background: var(--acid-yellow); }
.laney-cs2 .cs2-mockup-bg-hot-pink     { background: var(--hot-pink); color: var(--cream); }
.laney-cs2 .cs2-mockup-bg-electric-blue{ background: var(--electric-blue); color: var(--cream); }
.laney-cs2 .cs2-mockup-bg-cream        { background: var(--cream); }
.laney-cs2 .cs2-mockup-bg-ink          { background: var(--ink); color: var(--cream); }
.laney-cs2 .cs2-mockup-text {
  text-align: center;
  padding: 36px;
}
.laney-cs2 .cs2-mockup-big {
  font-family: 'Fraunces', serif;
  font-size: clamp(54px, 11vw, 150px);
  font-weight: 900;
  line-height: 0.85;
  letter-spacing: -0.04em;
  color: var(--ink);
}
.laney-cs2 .cs2-mockup-bg-hot-pink     .cs2-mockup-big,
.laney-cs2 .cs2-mockup-bg-electric-blue .cs2-mockup-big,
.laney-cs2 .cs2-mockup-bg-ink          .cs2-mockup-big {
  color: var(--cream);
}
.laney-cs2 .cs2-mockup-big em {
  font-style: italic;
  font-weight: 400;
}
.laney-cs2 .cs2-mockup-small {
  font-family: 'Space Mono', monospace;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  margin-top: 24px;
  color: var(--ink);
  opacity: 0.7;
}
.laney-cs2 .cs2-mockup-bg-hot-pink     .cs2-mockup-small,
.laney-cs2 .cs2-mockup-bg-electric-blue .cs2-mockup-small,
.laney-cs2 .cs2-mockup-bg-ink          .cs2-mockup-small {
  color: var(--cream);
  opacity: 0.85;
}

/* Push the next section down to account for the mockup overlap */
.laney-cs2 .cs2-mockup-wrap + section {
  padding-top: 90px;
}

@media (max-width: 900px) {
  .laney-cs2 .cs2-mockup-wrap { padding: 0 16px; margin-top: -30px; }
  .laney-cs2 .cs2-mockup { box-shadow: 6px 6px 0 var(--ink); border-width: 2px; }
  .laney-cs2 .cs2-mockup-text { padding: 22px; }
  .laney-cs2 .cs2-mockup-wrap + section { padding-top: 60px; }
}

/* =========================================================================
   BEFORE / AFTER — 2-card transformation block (Refined Interiors-style)
   ========================================================================= */

.laney-cs2 .cs2-ba {
  padding: 80px 30px;
  background: var(--ink);
  color: var(--cream);
  border-bottom: 2px solid var(--ink);
}
.laney-cs2 .cs2-ba .cs2-section-head {
  max-width: 1400px;
  margin: 0 auto 48px;
}
.laney-cs2 .cs2-ba .cs2-eyebrow {
  color: var(--acid-yellow);
}
.laney-cs2 .cs2-ba .cs2-h2 {
  color: var(--cream);
}
.laney-cs2 .cs2-ba .cs2-h2 em {
  color: var(--acid-yellow);
  font-style: italic;
  font-weight: 400;
}
.laney-cs2 .cs2-ba-grid {
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
}
.laney-cs2 .cs2-ba-card {
  padding: 36px;
  border: 2px solid var(--cream);
  border-radius: 12px;
  background: rgba(255, 248, 231, 0.05);
}
.laney-cs2 .cs2-ba-card.cs2-ba-after {
  background: var(--hot-pink);
  border-color: var(--hot-pink);
}
.laney-cs2 .cs2-ba-tag {
  display: inline-block;
  font-family: 'Space Mono', monospace;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  padding: 5px 12px;
  border: 2px solid var(--cream);
  border-radius: 100px;
  margin-bottom: 24px;
  color: var(--cream);
}
.laney-cs2 .cs2-ba-after .cs2-ba-tag {
  background: var(--cream);
  color: var(--hot-pink);
  border-color: var(--cream);
}
.laney-cs2 .cs2-ba-headline {
  font-family: 'Fraunces', serif;
  font-size: clamp(24px, 3.2vw, 38px);
  font-weight: 900;
  line-height: 1.05;
  letter-spacing: -0.02em;
  margin-bottom: 16px;
  color: var(--cream);
}
.laney-cs2 .cs2-ba-headline em {
  font-style: italic;
  font-weight: 400;
  color: var(--acid-yellow);
}
.laney-cs2 .cs2-ba-after .cs2-ba-headline em {
  color: var(--cream);
  opacity: 0.85;
}
.laney-cs2 .cs2-ba-desc {
  font-size: 15px;
  line-height: 1.55;
  color: var(--cream);
  opacity: 0.92;
}

@media (max-width: 900px) {
  .laney-cs2 .cs2-ba { padding: 50px 18px; }
  .laney-cs2 .cs2-ba-grid { grid-template-columns: 1fr; gap: 18px; }
  .laney-cs2 .cs2-ba-card { padding: 24px; }
}

/* =========================================================================
   AGENCY / TEAM CARD — highlighted card with tag pills (Zen Donkey-style)
   ========================================================================= */

.laney-cs2 .cs2-agency {
  padding: 80px 30px;
  background: var(--cream);
  border-bottom: 2px solid var(--ink);
}
.laney-cs2 .cs2-agency-inner {
  max-width: 1100px;
  margin: 0 auto;
}
.laney-cs2 .cs2-agency .cs2-eyebrow {
  color: var(--hot-pink);
  margin-bottom: 24px;
}
.laney-cs2 .cs2-agency-card {
  border: 3px solid var(--ink);
  border-radius: 16px;
  padding: 48px;
  background: var(--mint);
  box-shadow: 10px 10px 0 var(--ink);
}
.laney-cs2 .cs2-agency-name {
  font-family: 'Fraunces', serif;
  font-size: clamp(28px, 4vw, 48px);
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.02em;
  margin-bottom: 18px;
  color: var(--ink);
}
.laney-cs2 .cs2-agency-name em {
  font-style: italic;
  font-weight: 400;
  color: var(--hot-pink);
}
.laney-cs2 .cs2-agency-desc {
  font-size: 16px;
  line-height: 1.55;
  margin-bottom: 24px;
  color: var(--ink);
  max-width: 760px;
}
.laney-cs2 .cs2-agency-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.laney-cs2 .cs2-agency-tag {
  font-family: 'Space Mono', monospace;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  padding: 6px 14px;
  border: 2px solid var(--ink);
  border-radius: 100px;
  background: var(--cream);
  color: var(--ink);
}

@media (max-width: 900px) {
  .laney-cs2 .cs2-agency { padding: 50px 18px; }
  .laney-cs2 .cs2-agency-card { padding: 28px; box-shadow: 6px 6px 0 var(--ink); }
}

/* =========================================================================
   CONTENT BLOCKS — 2-column numbered + body sections with color variants
   ========================================================================= */

.laney-cs2 .cs2-content-block {
  padding: 70px 30px;
  border-bottom: 2px solid var(--ink);
}
.laney-cs2 .cs2-content-block-light { background: var(--cream); color: var(--ink); }
.laney-cs2 .cs2-content-block-dark  { background: var(--ink); color: var(--cream); }
.laney-cs2 .cs2-content-block-blue  { background: var(--electric-blue); color: var(--cream); }
.laney-cs2 .cs2-content-block-pink  { background: var(--hot-pink); color: var(--cream); }
.laney-cs2 .cs2-content-block-mint  { background: var(--mint); color: var(--ink); }
.laney-cs2 .cs2-content-block-lilac { background: var(--lilac); color: var(--ink); }
.laney-cs2 .cs2-content-block-yellow{ background: var(--acid-yellow); color: var(--ink); }

.laney-cs2 .cs2-content-grid {
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1.8fr;
  gap: 60px;
  align-items: start;
}
.laney-cs2 .cs2-content-num {
  font-family: 'Space Mono', monospace;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 16px;
  opacity: 0.8;
}
.laney-cs2 .cs2-content-title {
  font-family: 'Fraunces', serif;
  font-size: clamp(28px, 4vw, 48px);
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.02em;
}
.laney-cs2 .cs2-content-title em {
  font-style: italic;
  font-weight: 400;
}
.laney-cs2 .cs2-content-block-light .cs2-content-title em,
.laney-cs2 .cs2-content-block-mint  .cs2-content-title em,
.laney-cs2 .cs2-content-block-lilac .cs2-content-title em,
.laney-cs2 .cs2-content-block-yellow .cs2-content-title em {
  color: var(--hot-pink);
}
.laney-cs2 .cs2-content-block-dark .cs2-content-title em,
.laney-cs2 .cs2-content-block-blue .cs2-content-title em,
.laney-cs2 .cs2-content-block-pink .cs2-content-title em {
  color: var(--acid-yellow);
}
.laney-cs2 .cs2-content-rhs p {
  font-size: 16px;
  line-height: 1.6;
  margin-bottom: 16px;
}
.laney-cs2 .cs2-content-rhs p:last-child { margin-bottom: 0; }
.laney-cs2 .cs2-content-rhs strong {
  font-weight: 700;
}
.laney-cs2 .cs2-content-block-light .cs2-content-rhs strong,
.laney-cs2 .cs2-content-block-mint  .cs2-content-rhs strong,
.laney-cs2 .cs2-content-block-lilac .cs2-content-rhs strong,
.laney-cs2 .cs2-content-block-yellow .cs2-content-rhs strong {
  background: var(--acid-yellow);
  padding: 0 4px;
}
.laney-cs2 .cs2-content-rhs ul {
  margin: 12px 0 16px 20px;
  padding: 0;
}
.laney-cs2 .cs2-content-rhs li {
  font-size: 15px;
  line-height: 1.6;
  margin-bottom: 8px;
}

@media (max-width: 900px) {
  .laney-cs2 .cs2-content-block { padding: 45px 18px; }
  .laney-cs2 .cs2-content-grid { grid-template-columns: 1fr; gap: 24px; }
}

/* =========================================================================
   INSIGHT CALLOUT — single giant stat with caption + source
   ========================================================================= */

.laney-cs2 .cs2-insight {
  padding: 100px 30px;
  background: var(--acid-yellow);
  color: var(--ink);
  border-bottom: 2px solid var(--ink);
  text-align: center;
}
.laney-cs2 .cs2-insight-inner {
  max-width: 1100px;
  margin: 0 auto;
}
.laney-cs2 .cs2-insight-eyebrow {
  font-family: 'Space Mono', monospace;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--hot-pink);
  margin-bottom: 24px;
}
.laney-cs2 .cs2-insight-stat {
  font-family: 'Fraunces', serif;
  font-size: clamp(72px, 14vw, 180px);
  font-weight: 900;
  line-height: 0.85;
  letter-spacing: -0.04em;
  color: var(--ink);
  margin-bottom: 24px;
}
.laney-cs2 .cs2-insight-stat em {
  font-style: italic;
  font-weight: 400;
  color: var(--hot-pink);
}
.laney-cs2 .cs2-insight-text {
  font-family: 'Fraunces', serif;
  font-size: clamp(22px, 2.6vw, 32px);
  font-weight: 400;
  line-height: 1.3;
  margin-bottom: 32px;
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
}
.laney-cs2 .cs2-insight-text em { font-style: italic; color: var(--hot-pink); }
.laney-cs2 .cs2-insight-source {
  font-family: 'Space Mono', monospace;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  opacity: 0.7;
}

@media (max-width: 900px) {
  .laney-cs2 .cs2-insight { padding: 60px 18px; }
}

/* =========================================================================
   INSIGHTS LIST — 3 numbered insight cards
   ========================================================================= */

.laney-cs2 .cs2-il {
  padding: 80px 30px;
  background: var(--cream);
  border-bottom: 2px solid var(--ink);
}
.laney-cs2 .cs2-il-inner {
  max-width: 1400px;
  margin: 0 auto;
}
.laney-cs2 .cs2-il .cs2-section-head { margin-bottom: 36px; }
.laney-cs2 .cs2-il .cs2-eyebrow { color: var(--hot-pink); margin-bottom: 16px; }
.laney-cs2 .cs2-il-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.laney-cs2 .cs2-il-card {
  background: var(--cream);
  border: 2px solid var(--ink);
  border-radius: 12px;
  padding: 28px;
  box-shadow: 6px 6px 0 var(--ink);
}
.laney-cs2 .cs2-il-num {
  font-family: 'Space Mono', monospace;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--hot-pink);
  margin-bottom: 16px;
}
.laney-cs2 .cs2-il-text {
  font-size: 15px;
  line-height: 1.55;
  color: var(--ink);
}
.laney-cs2 .cs2-il-text strong {
  background: var(--acid-yellow);
  padding: 0 4px;
  font-weight: 700;
}

@media (max-width: 900px) {
  .laney-cs2 .cs2-il { padding: 50px 18px; }
  .laney-cs2 .cs2-il-grid { grid-template-columns: 1fr; }
}

/* =========================================================================
   PROOF — text + phone-screenshot 2-column
   ========================================================================= */

.laney-cs2 .cs2-proof {
  padding: 90px 30px;
  background: var(--electric-blue);
  color: var(--cream);
  border-bottom: 2px solid var(--ink);
}
.laney-cs2 .cs2-proof-inner {
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}
.laney-cs2 .cs2-proof-eyebrow {
  font-family: 'Space Mono', monospace;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--acid-yellow);
  margin-bottom: 20px;
}
.laney-cs2 .cs2-proof-headline {
  font-family: 'Fraunces', serif;
  font-size: clamp(36px, 6vw, 80px);
  font-weight: 900;
  line-height: 0.95;
  letter-spacing: -0.03em;
  color: var(--cream);
}
.laney-cs2 .cs2-proof-headline em {
  font-style: italic;
  font-weight: 400;
  color: var(--acid-yellow);
}
.laney-cs2 .cs2-proof-strong {
  background: var(--hot-pink);
  color: var(--cream);
  padding: 0 8px;
  font-weight: 900;
  font-style: normal;
}
.laney-cs2 .cs2-proof-desc {
  font-size: 16px;
  line-height: 1.55;
  margin-top: 18px;
  opacity: 0.92;
  color: var(--cream);
}
.laney-cs2 .cs2-proof-caption {
  margin-top: 20px;
  font-family: 'Space Mono', monospace;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: var(--acid-yellow);
}
.laney-cs2 .cs2-proof-phone {
  position: relative;
  max-width: 340px;
  margin: 0 auto;
}
.laney-cs2 .cs2-proof-phone img {
  width: 100%;
  height: auto;
  display: block;
  border: 3px solid var(--ink);
  border-radius: 24px;
  box-shadow: 10px 10px 0 var(--ink);
}
.laney-cs2 .cs2-proof-ping {
  position: absolute;
  top: -10px; right: -10px;
  width: 24px; height: 24px;
  background: var(--hot-pink);
  border: 3px solid var(--ink);
  border-radius: 50%;
  animation: cs2-ping 1.8s ease-in-out infinite;
  z-index: 2;
}
@keyframes cs2-ping {
  0%, 100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(255,61,127,0.7); }
  50%      { transform: scale(1.15); box-shadow: 0 0 0 12px rgba(255,61,127,0); }
}

@media (max-width: 900px) {
  .laney-cs2 .cs2-proof { padding: 50px 18px; }
  .laney-cs2 .cs2-proof-inner { grid-template-columns: 1fr; gap: 32px; }
  .laney-cs2 .cs2-proof-phone { max-width: 280px; }
}

/* =========================================================================
   DOWNLOAD STRIP — thin band with text + CTA
   ========================================================================= */

.laney-cs2 .cs2-download-strip {
  padding: 40px 30px;
  background: var(--ink);
  color: var(--cream);
  border-bottom: 2px solid var(--ink);
}
.laney-cs2 .cs2-download-inner {
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 32px;
  align-items: center;
}
.laney-cs2 .cs2-download-text {
  font-family: 'Fraunces', serif;
  font-size: clamp(20px, 2.6vw, 28px);
  font-weight: 700;
  line-height: 1.2;
  color: var(--cream);
}
.laney-cs2 .cs2-download-text em {
  font-style: italic;
  font-weight: 400;
  color: var(--acid-yellow);
}
.laney-cs2 .cs2-download-text strong {
  background: var(--hot-pink);
  color: var(--cream);
  padding: 0 6px;
  font-weight: 900;
}
.laney-cs2 .cs2-download-btn {
  display: inline-block;
  background: var(--acid-yellow);
  color: var(--ink);
  padding: 14px 26px;
  border: 2px solid var(--cream);
  border-radius: 100px;
  font-family: 'Space Mono', monospace;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  text-decoration: none;
  box-shadow: 4px 4px 0 var(--cream);
  transition: all 0.15s;
  white-space: nowrap;
}
.laney-cs2 .cs2-download-btn:hover {
  transform: translate(2px, 2px);
  box-shadow: 1px 1px 0 var(--cream);
}

@media (max-width: 900px) {
  .laney-cs2 .cs2-download-strip { padding: 28px 18px; }
  .laney-cs2 .cs2-download-inner { grid-template-columns: 1fr; gap: 16px; text-align: center; }
}

/* =========================================================================
   ANIMATED MESSENGER CHAT — replaces the static image in proof block when
   `proof.animated_chat` is true. Bubbles fade/slide in on a timed loop.
   ========================================================================= */

.laney-cs2 .cs2-proof-chat {
  max-width: 380px;
  width: 100%;
}
.laney-cs2 .cs2-chat-frame {
  background: #fff;
  border: 3px solid var(--ink);
  border-radius: 18px;
  box-shadow: 10px 10px 0 var(--ink);
  overflow: hidden;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  position: relative;
}
.laney-cs2 .cs2-chat-header {
  background: #f0f2f5;
  padding: 12px 16px;
  display: flex;
  align-items: center;
  gap: 10px;
  border-bottom: 1px solid #e4e6eb;
}
.laney-cs2 .cs2-chat-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: linear-gradient(135deg, #F4FF61, #FF3D7F);
  color: var(--ink);
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  flex-shrink: 0;
}
.laney-cs2 .cs2-chat-meta { line-height: 1.2; }
.laney-cs2 .cs2-chat-name {
  font-size: 13px;
  font-weight: 600;
  color: #050505;
}
.laney-cs2 .cs2-chat-status {
  font-size: 11px;
  color: #1877f2;
  margin-top: 2px;
}
.laney-cs2 .cs2-chat-body {
  padding: 14px 12px;
  min-height: 280px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  background: #fff;
}
.laney-cs2 .cs2-chat-msg {
  display: flex;
  flex-direction: column;
  opacity: 0;
  animation: cs2-msg-in 0.4s ease-out forwards;
  animation-iteration-count: infinite;
  animation-duration: 12s;
}
.laney-cs2 .cs2-chat-msg-customer { align-items: flex-start; }
.laney-cs2 .cs2-chat-msg-business { align-items: flex-end; }
.laney-cs2 .cs2-chat-bubble {
  max-width: 78%;
  padding: 8px 12px;
  border-radius: 18px;
  font-size: 13px;
  line-height: 1.35;
  word-wrap: break-word;
  opacity: 0;
  animation: cs2-bubble-in 0.5s ease-out forwards;
  animation-iteration-count: infinite;
  animation-duration: 12s;
}
.laney-cs2 .cs2-chat-msg-customer .cs2-chat-bubble {
  background: #e4e6eb;
  color: #050505;
  border-bottom-left-radius: 4px;
}
.laney-cs2 .cs2-chat-msg-business .cs2-chat-bubble {
  background: linear-gradient(135deg, #1877f2, #0066d4);
  color: #fff;
  border-bottom-right-radius: 4px;
}
.laney-cs2 .cs2-chat-typing {
  display: flex;
  gap: 3px;
  padding: 6px 12px;
  background: #e4e6eb;
  border-radius: 18px;
  border-bottom-left-radius: 4px;
  width: fit-content;
  margin-bottom: 4px;
  opacity: 0;
  animation: cs2-typing-pulse 0.6s ease forwards;
  animation-iteration-count: infinite;
  animation-duration: 12s;
}
.laney-cs2 .cs2-chat-msg-business .cs2-chat-typing {
  background: #d4e3fc;
  border-bottom-left-radius: 18px;
  border-bottom-right-radius: 4px;
  margin-left: auto;
}
.laney-cs2 .cs2-chat-typing span {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #65676b;
  animation: cs2-dot-bounce 1.2s ease-in-out infinite;
}
.laney-cs2 .cs2-chat-typing span:nth-child(2) { animation-delay: 0.2s; }
.laney-cs2 .cs2-chat-typing span:nth-child(3) { animation-delay: 0.4s; }

@keyframes cs2-msg-in {
  0%   { opacity: 0; transform: translateY(8px); }
  6%   { opacity: 1; transform: translateY(0); }
  90%  { opacity: 1; transform: translateY(0); }
  100% { opacity: 0; transform: translateY(0); }
}
@keyframes cs2-bubble-in {
  0%   { opacity: 0; transform: translateY(6px) scale(0.95); }
  3%   { opacity: 1; transform: translateY(0) scale(1); }
  90%  { opacity: 1; }
  100% { opacity: 0; }
}
@keyframes cs2-typing-pulse {
  0%   { opacity: 0; }
  1%   { opacity: 1; }
  5%   { opacity: 1; }
  6%   { opacity: 0; height: 0; padding: 0; margin: 0; }
  100% { opacity: 0; height: 0; padding: 0; margin: 0; }
}
@keyframes cs2-dot-bounce {
  0%, 60%, 100% { transform: translateY(0); }
  30%           { transform: translateY(-4px); }
}

@media (max-width: 900px) {
  .laney-cs2 .cs2-proof-chat { max-width: 320px; }
}

/* =========================================================================
   INTERACTIVE CHART — animated SVG line chart mimicking a GroundTruth-style
   campaign dashboard. Line draws in on load, dots pop along the trail.
   ========================================================================= */

.laney-cs2 .cs2-chart {
  padding: 80px 30px;
  background: var(--cream);
  border-bottom: 2px solid var(--ink);
}
.laney-cs2 .cs2-chart-head {
  max-width: 1200px;
  margin: 0 auto 32px;
}
.laney-cs2 .cs2-chart .cs2-eyebrow {
  color: var(--hot-pink);
}
.laney-cs2 .cs2-chart-platform {
  margin-top: 14px;
  font-family: 'Space Mono', monospace;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ink);
  opacity: 0.7;
}

.laney-cs2 .cs2-chart-card {
  max-width: 1200px;
  margin: 0 auto;
  background: #fff;
  border: 2px solid var(--ink);
  border-radius: 12px;
  box-shadow: 10px 10px 0 var(--ink);
  overflow: hidden;
}

.laney-cs2 .cs2-chart-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 18px;
  background: #fafafa;
  border-bottom: 1px solid #e8e8e8;
  flex-wrap: wrap;
  gap: 12px;
  font-family: -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 12px;
}
.laney-cs2 .cs2-chart-toolbar-l,
.laney-cs2 .cs2-chart-toolbar-r {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.laney-cs2 .cs2-chart-tab {
  padding: 6px 12px;
  border: 1.5px solid #d0d0d0;
  border-radius: 6px;
  background: #fff;
  color: #666;
  white-space: nowrap;
}
.laney-cs2 .cs2-chart-tab-active {
  background: #d1f2e3;
  border-color: #28c840;
  color: #137a35;
  font-weight: 600;
}
.laney-cs2 .cs2-chart-select {
  padding: 6px 12px;
  border: 1.5px solid #d0d0d0;
  border-radius: 6px;
  background: #d1f2e3;
  color: #137a35;
  white-space: nowrap;
  font-weight: 600;
}

.laney-cs2 .cs2-chart-legend {
  padding: 14px 22px 4px;
  display: flex;
  align-items: center;
  gap: 22px;
  flex-wrap: wrap;
}
.laney-cs2 .cs2-chart-legend-item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 13px;
  font-weight: 600;
  color: var(--ink);
}
.laney-cs2 .cs2-chart-dot-reach {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #28c840;
  display: inline-block;
}
.laney-cs2 .cs2-chart-subtitle {
  font-family: 'Space Mono', monospace;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #888;
}

.laney-cs2 .cs2-chart-canvas {
  padding: 8px 12px 0;
}
.laney-cs2 .cs2-chart-svg {
  width: 100%;
  height: auto;
  display: block;
  max-height: 380px;
}

/* Line draw-in animation — calculate the perimeter, animate stroke-dashoffset */
.laney-cs2 .cs2-chart-line {
  stroke-dasharray: 2000;
  stroke-dashoffset: 2000;
  animation: cs2-chart-draw 2.2s ease-out 0.3s forwards;
}
@keyframes cs2-chart-draw {
  to { stroke-dashoffset: 0; }
}

/* Area fade-in */
.laney-cs2 .cs2-chart-area {
  opacity: 0;
  animation: cs2-chart-fade 1s ease-out 1.8s forwards;
}
@keyframes cs2-chart-fade {
  to { opacity: 1; }
}

/* Dots — pop in after the line has drawn past them */
.laney-cs2 .cs2-chart-pt {
  opacity: 0;
  transform-origin: center;
  animation: cs2-chart-dot-pop 0.4s ease-out forwards;
}
@keyframes cs2-chart-dot-pop {
  0%   { opacity: 0; transform: scale(0); }
  60%  { opacity: 1; transform: scale(1.6); }
  100% { opacity: 1; transform: scale(1); }
}

/* On hover, pulse a dot */
.laney-cs2 .cs2-chart-pt:hover {
  r: 6;
  filter: drop-shadow(0 0 6px rgba(40, 200, 64, 0.6));
  cursor: crosshair;
  transition: r 0.15s;
}

/* Summary row — campaign at-a-glance below the chart */
.laney-cs2 .cs2-chart-summary-row {
  border-top: 2px solid #e8e8e8;
  padding: 22px;
  background: #fafafa;
  font-family: -apple-system, BlinkMacSystemFont, sans-serif;
}
.laney-cs2 .cs2-chart-sum-name-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
  padding-bottom: 14px;
  border-bottom: 1px solid #e0e0e0;
  gap: 12px;
  flex-wrap: wrap;
}
.laney-cs2 .cs2-chart-sum-name {
  font-size: 16px;
  font-weight: 700;
  color: var(--ink);
}
.laney-cs2 .cs2-chart-sum-dates {
  font-family: 'Space Mono', monospace;
  font-size: 11px;
  color: #888;
  margin-top: 4px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.laney-cs2 .cs2-chart-sum-status {
  display: inline-block;
  padding: 4px 12px;
  background: #fde8e8;
  color: #d93025;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  border-radius: 100px;
}
.laney-cs2 .cs2-chart-sum-tiles {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 12px;
}
.laney-cs2 .cs2-chart-sum-tile {
  text-align: center;
  padding: 12px 6px;
  background: #fff;
  border: 1px solid #e8e8e8;
  border-radius: 8px;
}
.laney-cs2 .cs2-chart-sum-label {
  font-family: 'Space Mono', monospace;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #888;
  margin-bottom: 4px;
}
.laney-cs2 .cs2-chart-sum-value {
  font-family: 'Fraunces', serif;
  font-size: 20px;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.1;
}

@media (max-width: 800px) {
  .laney-cs2 .cs2-chart { padding: 50px 16px; }
  .laney-cs2 .cs2-chart-toolbar { font-size: 11px; }
  .laney-cs2 .cs2-chart-sum-tiles { grid-template-columns: repeat(3, 1fr); }
  .laney-cs2 .cs2-chart-sum-value { font-size: 16px; }
}
@media (max-width: 500px) {
  .laney-cs2 .cs2-chart-sum-tiles { grid-template-columns: repeat(2, 1fr); }
}

/* =========================================================================
   DASHBOARD MOCKUP — SVG/HTML cards recreating analytics dashboards
   (replaces broken WP screenshot galleries with text-based renderings)
   ========================================================================= */

.laney-cs2 .cs2-dashboard {
  padding: 80px 30px;
  background: var(--cream);
  border-bottom: 2px solid var(--ink);
}
.laney-cs2 .cs2-dashboard .cs2-section-head {
  max-width: 1400px;
  margin: 0 auto 36px;
}
.laney-cs2 .cs2-dashboard-subtitle {
  margin-top: 14px;
  font-family: 'Space Mono', monospace;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ink);
  opacity: 0.7;
}
.laney-cs2 .cs2-dashboard-grid {
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}
.laney-cs2 .cs2-dashcard {
  background: #fff;
  border: 2px solid var(--ink);
  border-radius: 12px;
  box-shadow: 8px 8px 0 var(--ink);
  padding: 22px;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  transition: transform 0.2s, box-shadow 0.2s;
}
.laney-cs2 .cs2-dashcard:hover {
  transform: translate(-3px, -3px);
  box-shadow: 12px 12px 0 var(--ink);
}
.laney-cs2 .cs2-dashcard-head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 18px;
  padding-bottom: 14px;
  border-bottom: 1px solid #eee;
}
.laney-cs2 .cs2-dashcard-icon {
  width: 38px;
  height: 38px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 16px;
  flex-shrink: 0;
  color: #fff;
}
/* Platform-tinted icon backgrounds */
.laney-cs2 .cs2-dashcard-email     .cs2-dashcard-icon { background: #1a73e8; }
.laney-cs2 .cs2-dashcard-linkedin  .cs2-dashcard-icon { background: #0a66c2; font-size: 14px; }
.laney-cs2 .cs2-dashcard-instagram .cs2-dashcard-icon { background: linear-gradient(135deg, #f58529, #dd2a7b, #8134af); }
.laney-cs2 .cs2-dashcard-facebook  .cs2-dashcard-icon { background: #1877f2; font-family: Georgia, serif; }
.laney-cs2 .cs2-dashcard-youtube   .cs2-dashcard-icon { background: #ff0000; }
.laney-cs2 .cs2-dashcard-calendar  .cs2-dashcard-icon { background: #4285f4; }
.laney-cs2 .cs2-dashcard-tiktok    .cs2-dashcard-icon { background: #000; }
.laney-cs2 .cs2-dashcard-analytics .cs2-dashcard-icon { background: #e37400; }
.laney-cs2 .cs2-dashcard-social    .cs2-dashcard-icon { background: var(--hot-pink); }
.laney-cs2 .cs2-dashcard-generic   .cs2-dashcard-icon { background: var(--ink); }

.laney-cs2 .cs2-dashcard-titles {
  flex: 1;
  min-width: 0;
}
.laney-cs2 .cs2-dashcard-title {
  font-size: 16px;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.2;
}
.laney-cs2 .cs2-dashcard-subtitle {
  font-size: 12px;
  color: #777;
  margin-top: 2px;
}
.laney-cs2 .cs2-dashcard-stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.laney-cs2 .cs2-dashcard-stat {
  padding: 14px;
  background: #fafafa;
  border: 1px solid #eee;
  border-radius: 8px;
}
.laney-cs2 .cs2-dashcard-stat-label {
  font-size: 11px;
  font-weight: 600;
  color: #777;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 4px;
}
.laney-cs2 .cs2-dashcard-stat-value {
  font-family: 'Fraunces', serif;
  font-size: 28px;
  font-weight: 700;
  color: var(--ink);
  line-height: 1;
}
.laney-cs2 .cs2-dashcard-stat-change {
  margin-top: 6px;
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 100px;
}
.laney-cs2 .cs2-dashcard-stat-change.cs2-up {
  background: #d6f5e0;
  color: #137a35;
}
.laney-cs2 .cs2-dashcard-stat-change.cs2-down {
  background: #fde8e8;
  color: #d93025;
}

@media (max-width: 900px) {
  .laney-cs2 .cs2-dashboard { padding: 50px 18px; }
  .laney-cs2 .cs2-dashboard-grid { grid-template-columns: 1fr; }
  .laney-cs2 .cs2-dashcard-stats { grid-template-columns: 1fr; }
}
