/* chrome.css (BLAB outer chrome + reusable modules)
   RULE: No literal colours in this file. Tokens only.
*/

*,
*::before,
*::after { box-sizing: border-box; }

html, body { height: 100%; margin: 0; padding: 0; }

/* Prevent “collapsing” layouts on very narrow windows */
html { min-width: 320px; }
body { min-width: 320px; }

body{
  font-family: var(--bl-font-sans);

  /* Warm, editorial retail wash (forest, not black). */
  background:
    radial-gradient(1200px 800px at 20% -20%,
      color-mix(in srgb, var(--bl-brand) 10%, transparent) 0%,
      transparent 62%),
    radial-gradient(1000px 700px at 90% -10%,
      color-mix(in srgb, var(--bl-accent-teal) 10%, transparent) 0%,
      transparent 66%),
    linear-gradient(180deg,
      var(--bl-bg-2) 0%,
      var(--bl-bg) 40%,
      var(--bl-bg) 100%);

  background-attachment: fixed;
  color: var(--bl-text);
  line-height: var(--bl-lh-normal);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

a { color: inherit; text-decoration: none; }
a:hover { text-decoration: underline; text-underline-offset: 0.15em; }

::selection { background: var(--bl-selection-bg); color: var(--bl-selection-fg); }
:focus-visible{
  outline: 0.16rem solid var(--bl-focus-ring);
  outline-offset: 0.16rem;
  border-radius: var(--bl-radius-sm);
}

.skip-link{
  position:absolute;
  left:-9999px;
  top:var(--bl-space-3);
  padding: var(--bl-space-2) var(--bl-space-3);
  background: var(--bl-surface);
  color: var(--bl-text);
  border-radius: var(--bl-radius-sm);
  box-shadow: var(--bl-shadow-2);
  z-index: 999;
}
.skip-link:focus{ left: var(--bl-space-3); }

.outer-chrome{
  min-height:100%;
  display:flex;
  flex-direction:column;
}

.container{
  width: min(var(--bl-maxw), calc(100% - (var(--bl-space-6) * 2)));
  margin: 0 auto;
}
@media (max-width:760px){
  .container{ width: calc(100% - (var(--bl-space-5) * 2)); }
}

/* ===== Header ===== */
.site-header{
  position: sticky;
  top:0;
  z-index:50;
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--bl-border);
  background:
    linear-gradient(180deg,
      color-mix(in srgb, var(--bl-bg) 92%, var(--bl-brand) 8%) 0%,
      color-mix(in srgb, var(--bl-bg) 98%, transparent) 100%);
}

.topbar{
  height: var(--bl-topbar-h);
  display:flex;
  align-items:center;
  position: relative;
}

.topbar-inner{
  display:grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items:center;
  gap: var(--bl-space-3);
  width:100%;
}

.brand{
  min-width: 0;
  display:flex;
  flex-direction:column;
  gap:2px;
}
.brand a{
  color: var(--bl-brand);
  font-weight: 860;
  font-size: var(--bl-text-md);
  letter-spacing: 0.2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.brand small{
  color: var(--bl-muted);
  font-size: var(--bl-text-xs);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Desktop nav */
.nav{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap: var(--bl-space-2);
  flex-wrap: nowrap;
  min-width: 0;
}
.nav a{
  color: var(--bl-muted);
  font-size: var(--bl-text-sm);
  padding: 8px 10px;
  border-radius: var(--bl-radius-sm);
  white-space: nowrap;
}
.nav a:hover{ color: var(--bl-brand); }
.nav a[aria-current="page"]{
  color: var(--bl-brand);
  background: var(--bl-surface);
  border: 1px solid var(--bl-border);
}

/* CTA */
.header-cta{
  display:flex;
  align-items:center;
  gap: var(--bl-space-2);
  justify-content:flex-end;
  white-space: nowrap;
}

/* Buttons */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  font-weight:740;
  font-size: var(--bl-text-sm);
  padding: 10px 14px;
  border-radius: 999px;
  border: 1px solid transparent;
  cursor:pointer;
  user-select:none;
  line-height:1;
  text-decoration:none;
}
.btn--primary{
  background: var(--bl-btn-primary-bg);
  color: var(--bl-btn-primary-fg);
  border-color: var(--bl-btn-primary-border);
  box-shadow: var(--bl-shadow-1);
}
.btn--ghost{
  background: var(--bl-btn-ghost-bg);
  color: var(--bl-btn-ghost-fg);
  border-color: var(--bl-btn-ghost-border);
}

/* Mobile menu toggle (hidden on desktop) */
.nav-toggle{
  display:none;
  align-items:center;
  justify-content:center;
  width: 44px;
  height: 44px;
  border-radius: 999px;
  border: 1px solid var(--bl-btn-ghost-border);
  background: var(--bl-surface);
  color: var(--bl-brand);
  cursor:pointer;
  padding: 0;
}
.nav-toggle-icon{
  width: 18px;
  height: 12px;
  display:block;
  background:
    linear-gradient(var(--bl-brand), var(--bl-brand)) 0 0 / 100% 2px no-repeat,
    linear-gradient(var(--bl-brand), var(--bl-brand)) 0 50% / 100% 2px no-repeat,
    linear-gradient(var(--bl-brand), var(--bl-brand)) 0 100% / 100% 2px no-repeat;
  opacity: 0.9;
}

/* Backdrop: only used on mobile nav open */
.nav-backdrop{
  display:none;
  position: fixed;
  inset: 0;
  top: var(--bl-topbar-h);
  z-index: 55;
  background: color-mix(in srgb, var(--bl-brand) 10%, transparent);
  backdrop-filter: blur(8px);
}
html.nav-open .nav-backdrop{ display:block; }

/* ===== Responsive header behavior ===== */
@media (max-width: 900px){
  .nav-toggle{ display:inline-flex; }

  .nav{
    display:flex;
    position: fixed;
    left: var(--bl-space-5);
    right: var(--bl-space-5);
    top: calc(var(--bl-topbar-h) + var(--bl-space-3));
    z-index: 60;

    flex-direction: column;
    align-items: stretch;
    gap: var(--bl-space-2);

    padding: var(--bl-space-3);
    border-radius: var(--bl-radius-lg);
    border: 1px solid var(--bl-border);
    background: var(--bl-bg);
    box-shadow: var(--bl-shadow-2);

    opacity: 0;
    transform: translateY(-10px);
    pointer-events: none;
  }

  .nav a{
    padding: 12px 12px;
    border-radius: var(--bl-radius-md);
    border: 1px solid var(--bl-border);
    background: var(--bl-surface);
    color: var(--bl-brand);
  }

  html.nav-open .nav{
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
  }

  .btn{ padding: 10px 12px; }
}

@media (max-width: 420px){
  .topbar{ height: auto; padding: var(--bl-space-2) 0; }
  .topbar-inner{
    grid-template-columns: 1fr auto;
    grid-auto-rows: auto;
    gap: var(--bl-space-2);
  }
  .header-cta{
    grid-column: 1 / -1;
    justify-content: flex-start;
    flex-wrap: wrap;
  }
}

/* ===== Main + stage ===== */
.site-main{
  flex:1;
  padding: var(--bl-space-7) 0 var(--bl-space-8);
}

/* BLAB is not a “stage card”; page is the surface */
.centre-stage{
  background: transparent;
  color: var(--bl-text);
  border: 0;
  border-radius: 0;
  box-shadow: none;
  min-height: unset;
}

.stage-inner{ padding: 0; }

/* Default typography */
h1{
  margin: 0 0 var(--bl-space-3);
  font-size: var(--bl-text-3xl);
  line-height: var(--bl-lh-tight);
  letter-spacing: -0.02em;
  color: var(--bl-text);
}
p{
  margin: 0 0 var(--bl-space-4);
  font-size: var(--bl-text-md);
  line-height: var(--bl-lh-relaxed);
  color: var(--bl-muted);
}
.lead{
  font-size: var(--bl-text-lg);
  color: var(--bl-text);
}
.muted{ color: var(--bl-muted); }

a{ color: var(--bl-link); }
a:hover{ color: var(--bl-link-hover); }

/* Helpers */
.kicker{
  font-family: var(--bl-font-mono);
  font-size: var(--bl-text-xs);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--bl-muted);
  margin: 0 0 var(--bl-space-2);
}
.rule{
  height:1px;
  background: var(--bl-border);
  margin: var(--bl-space-6) 0;
}
.actions{
  display:flex;
  gap: var(--bl-space-3);
  flex-wrap: wrap;
}

/* Highlights */
.hl-yellow{ box-shadow: inset 0 -0.35em 0 0 var(--bl-accent-yellow); }
.hl-teal{   box-shadow: inset 0 -0.35em 0 0 var(--bl-accent-teal); }

/* Surfaces */
.card{
  border: 1px solid var(--bl-border);
  background: var(--bl-surface);
  border-radius: var(--bl-radius-lg);
  padding: var(--bl-space-6);
  box-shadow: var(--bl-shadow-1);
}

/* Book/product module */
.book{
  display:grid;
  grid-template-columns: 160px 1fr;
  gap: var(--bl-space-6);
  align-items:start;
  border: 1px solid var(--bl-border);
  background: var(--bl-surface);
  border-radius: var(--bl-radius-lg);
  padding: var(--bl-space-6);
  box-shadow: var(--bl-shadow-1);
}
@media (max-width:760px){
  .book{ grid-template-columns: 1fr; }
}
.book img{
  width:160px;
  height:auto;
  border-radius: var(--bl-radius-md);
  border: 1px solid var(--bl-border);
  box-shadow: var(--bl-shadow-1);
  display:block;
}

/* ===== Footer ===== */
.site-footer{ padding: 0 0 var(--bl-space-6); }

.footer-inner{
  border-top: 1px solid var(--bl-border);
  margin-top: var(--bl-space-6);
  padding-top: var(--bl-space-5);
  display:flex;
  gap: var(--bl-space-6);
  align-items:flex-start;
  justify-content:space-between;
  flex-wrap:wrap;
}

.footer-links{
  display:flex;
  gap: var(--bl-space-2);
  flex-wrap:wrap;
}
.footer-links a{
  color: var(--bl-muted);
  font-size: var(--bl-text-sm);
  padding: 6px 8px;
  border-radius: var(--bl-radius-sm);
}
.footer-links a:hover{ color: var(--bl-brand); }

.footer-meta{
  color: var(--bl-muted);
  font-size: var(--bl-text-xs);
  max-width: 60ch;
}








/* ===== PRODUCTS: 2x2 GRID (premium editorial) ===== */
/* ===== PRODUCTS: 2x2 GRID (premium editorial) ===== */
/* ===== PRODUCTS: 2x2 GRID (premium editorial) ===== */
/* ===== PRODUCTS: 2x2 GRID (premium editorial) ===== */

.productsGrid{
  padding: var(--bl-space-8) 0;
}

.productsGrid__head{
  max-width: 72ch;
  margin-bottom: var(--bl-space-6);
}

.productsGrid__tiles{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--bl-space-5);
  align-items: stretch;
}

/* Tile base */
.tile{
  border: 1px solid var(--bl-border);
  border-radius: var(--bl-radius-lg);
  background: var(--bl-surface);
  box-shadow: var(--bl-shadow-1);
  padding: var(--bl-space-6);
  text-decoration: none;
  color: inherit;
  position: relative;
  overflow: clip;
  min-height: 260px;
  display: grid;
  grid-template-rows: auto 1fr;
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.tile:hover{
  transform: translateY(-2px);
  box-shadow: var(--bl-shadow-2);
  border-color: var(--bl-border-strong);
}

.tile__top{
  display:flex;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--bl-space-3);
  margin-bottom: var(--bl-space-4);
}

.tile__label{
  font-family: var(--bl-font-mono);
  letter-spacing: 0.10em;
  text-transform: uppercase;
  font-size: var(--bl-text-xs);
  color: var(--bl-muted);
}

.tile__meta{
  font-family: var(--bl-font-mono);
  font-size: var(--bl-text-xs);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--bl-muted);
}

.tile__title{
  font-size: var(--bl-text-xl);
  line-height: var(--bl-lh-tight);
  font-weight: 780;
  letter-spacing: -0.02em;
  margin: 0 0 var(--bl-space-2);
}

.tile__lede{
  margin: 0 0 var(--bl-space-4);
  color: var(--bl-text);
  font-size: var(--bl-text-md);
  line-height: var(--bl-lh-relaxed);
  max-width: 60ch;
}

.tile__actions{
  margin-top: auto;
  display:flex;
  gap: var(--bl-space-3);
  flex-wrap: wrap;
  align-items: center;
}

.tile__note{
  margin-top: var(--bl-space-3);
}

/* Small colour/interest: editorial “rule” + wash */
.tile::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width: 3px;
  background: var(--bl-border-strong);
  opacity: 0.55;
}

.tile::after{
  content:"";
  position:absolute;
  right:-110px;
  top:-110px;
  width: 220px;
  height: 220px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--bl-accent-teal) 8%, transparent);
  pointer-events:none;
}

/* Per-tile accents */
.tile--map::before{ background: var(--bl-accent-yellow); opacity: .60; }
.tile--map::after{ background: color-mix(in srgb, var(--bl-accent-yellow) 10%, transparent); }

.tile--install::before{ background: var(--bl-accent-teal); opacity: .55; }
.tile--platform::before{ background: var(--bl-accent-yellow); opacity: .25; }
.tile--foundations::before{ background: var(--bl-accent-teal); opacity: .25; }

.tile__media{
  margin-top: var(--bl-space-4);
  display:flex;
  justify-content: flex-start;
}

.tile__media img{
  width: 128px;
  height: auto;
  border-radius: var(--bl-radius-md);
  border: 1px solid var(--bl-border);
  background: var(--bl-surface-2);
  box-shadow: var(--bl-shadow-1);
}

/* Foundations tile "button" should not look clickable as a real button */
.btn--ghostStatic{
  pointer-events: none;
}

/* ===== FOUNDATIONS ROW (3 cards) ===== */

.foundations{
  margin-top: var(--bl-space-7);
  padding-top: var(--bl-space-6);
  border-top: 1px solid var(--bl-border);
}

.foundations__head{
  display:flex;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--bl-space-4);
  margin-bottom: var(--bl-space-5);
  flex-wrap: wrap;
}

.foundations__row{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--bl-space-4);
}

.fCard{
  border: 1px solid var(--bl-border);
  border-radius: var(--bl-radius-lg);
  padding: var(--bl-space-5);
  text-decoration: none;
  color: inherit;
  background: linear-gradient(
    180deg,
    color-mix(in srgb, var(--bl-surface-2) 55%, transparent),
    var(--bl-surface)
  );
  box-shadow: var(--bl-shadow-1);
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
  position: relative;
  overflow: clip;
  min-height: 180px;
  display: grid;
  grid-template-rows: auto auto 1fr auto;
}

.fCard:hover{
  transform: translateY(-2px);
  box-shadow: var(--bl-shadow-2);
  border-color: var(--bl-border-strong);
}

.fCard::after{
  content:"";
  position:absolute;
  left:-90px;
  bottom:-90px;
  width: 180px;
  height: 180px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--bl-accent-yellow) 8%, transparent);
  pointer-events:none;
}

.fCard__top{
  display:flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--bl-space-3);
}

.fTag{
  font-family: var(--bl-font-mono);
  font-size: var(--bl-text-xs);
  text-transform: uppercase;
  letter-spacing: 0.10em;
  color: var(--bl-muted);
}

.fCard__title{
  font-weight: 820;
  letter-spacing: -0.015em;
  margin-bottom: var(--bl-space-2);
}

.fCard__text{
  margin: 0;
  color: var(--bl-text);
  line-height: var(--bl-lh-relaxed);
}

.fCard__cta{
  margin-top: var(--bl-space-4);
  font-family: var(--bl-font-mono);
  font-size: var(--bl-text-xs);
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--bl-brand);
  border-top: 1px solid var(--bl-border);
  padding-top: var(--bl-space-3);
}

/* Responsive */
@media (max-width: 980px){
  .productsGrid__tiles{ grid-template-columns: 1fr; }
  .foundations__row{ grid-template-columns: 1fr; }
  .tile{ min-height: unset; }
}


/* ===== Make highlight bars thinner (half thickness) ===== */
.hl-teal   { box-shadow: inset 0 -0.28em 0 0 var(--bl-accent-teal); }
.hl-yellow { box-shadow: inset 0 -0.28em 0 0 var(--bl-accent-yellow); }


/* --- Sticky header anchor offset --- */
:root{
  /* tweak these until it feels perfect */
  --anchor-offset: 96px;
}

/* usually the header is a bit shorter on mobile */
@media (max-width: 899px){
  :root{ --anchor-offset: 84px; }
}

/* when the browser scrolls to a hash target, keep this much room at the top */
html{
  scroll-padding-top: var(--anchor-offset);
}

/* ensure elements with ids don't get hidden under the sticky header */
[id]{
  scroll-margin-top: var(--anchor-offset);
}















/* ===== Who it’s for — Pressure grid (BLAB) ===== */
/* ===== Who it’s for — Pressure grid (BLAB) ===== */
/* ===== Who it’s for — Pressure grid (BLAB) ===== */
/* ===== Who it’s for — Pressure grid (BLAB) ===== */
/* ===== Who it’s for — Pressure grid (BLAB) ===== */

#who-its-for{
  margin-top: var(--bl-space-7);
}

#who-its-for .pt-title{
  margin: 0 0 var(--bl-space-2);
  font-size: clamp(1.6rem, 3vw, 2.1rem);
  line-height: var(--bl-lh-tight);
  letter-spacing: -0.02em;
  color: var(--bl-text);
}

#who-its-for .pt-sub{
  margin: 0 0 var(--bl-space-6);
  max-width: 72ch;
  color: var(--bl-muted);
  font-size: var(--bl-text-md);
  line-height: var(--bl-lh-relaxed);
}

/* Grid */
.pressure-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--bl-space-4);
}
@media (max-width: 980px){
  .pressure-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px){
  .pressure-grid{ grid-template-columns: 1fr; }
}

.pt-item{ position: relative; }

/* TRUE visually-hidden checkbox (survives global input styles) */
.pt-toggle{
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
  appearance: none;
}

/* Card shell */
.pt-card{
  display:block;
  width: 100%;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  border-radius: var(--bl-radius-lg);
  perspective: 1200px;
}

/* Inner flip stage */
.pt-card__inner{
  display: grid;              /* layer faces reliably */
  transform-style: preserve-3d;
  transition: transform 560ms cubic-bezier(0.2, 0.8, 0.2, 1);
  min-height: 270px;
}

/* Flip when checked */
.pt-toggle:checked + .pt-card .pt-card__inner{
  transform: rotateY(180deg);
}

/* Faces */
.pt-face{
  grid-area: 1 / 1;           /* same grid cell */
  border-radius: var(--bl-radius-lg);
  border: 1px solid var(--bl-border);
  padding: var(--bl-space-6);
  backface-visibility: hidden;
  display:flex;
  flex-direction: column;
  gap: var(--bl-space-3);
  overflow: hidden;
}

/* Keep depth premium but quiet */
.pt-front{
  background:
    linear-gradient(180deg,
      color-mix(in srgb, var(--bl-surface) 92%, var(--bl-bg) 8%),
      var(--bl-surface));
  box-shadow: var(--bl-shadow-1);
}

.pt-back{
  transform: rotateY(180deg);
  background: var(--bl-bg);
  border-color: color-mix(in srgb, var(--bl-border) 72%, var(--bl-brand) 28%);
  box-shadow: var(--bl-shadow-2);
}

/* Front typography */
.pt-kicker{
  font-family: var(--bl-font-mono);
  font-size: var(--bl-text-xs);
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--bl-muted);
}

.pt-head{
  font-weight: 840;
  font-size: clamp(1.15rem, 2vw, 1.45rem);
  line-height: 1.05;
  letter-spacing: -0.015em;
  color: var(--bl-text);
}

.pt-line{
  color: var(--bl-muted);
  line-height: var(--bl-lh-relaxed);
  max-width: 52ch;
}

/* Hint stays quiet */
.pt-hint{
  margin-top: auto;
  font-family: var(--bl-font-mono);
  font-size: var(--bl-text-xs);
  color: var(--bl-muted);
  opacity: 0.9;
}
.pt-hint-back{ opacity: 0.85; }

/* Back top */
.pt-back-top{
  display:flex;
  flex-direction: column;
  gap: 8px;
}

/* ===== Old-style back: “picks / pills” ===== */

.pt-picks{
  margin-top: var(--bl-space-2);
  display: grid;
  gap: var(--bl-space-2);
}

.pt-picktitle{
  margin-top: var(--bl-space-2);
  font-family: var(--bl-font-mono);
  font-size: var(--bl-text-xs);
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--bl-muted);
  opacity: 0.9;
}

.pt-pickrule{
  height: 1px;
  background: var(--bl-border);
  margin: var(--bl-space-2) 0;
}

.pt-pick{
  display:block;
  border-radius: 16px;
  border: 1px solid var(--bl-border);
  background: color-mix(in srgb, var(--bl-surface) 86%, var(--bl-bg) 14%);
  padding: 12px 14px;
  text-decoration:none;
  color: inherit;
  box-shadow: var(--bl-shadow-1);
  transition: transform 140ms ease, border-color 140ms ease, background 140ms ease;
}
.pt-pick:hover{
  transform: translateY(-1px);
  border-color: color-mix(in srgb, var(--bl-border) 70%, var(--bl-brand) 30%);
}

.pt-pick-main{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 6px;
}

.pt-pick-name{
  font-weight: 820;
  letter-spacing: -0.01em;
  color: var(--bl-text);
}

.pt-pick-desc{
  font-size: var(--bl-text-sm);
  color: var(--bl-muted);
  line-height: var(--bl-lh-relaxed);
}

.pt-best{
  border-color: color-mix(in srgb, var(--bl-accent-teal) 28%, var(--bl-border) 72%);
  background: color-mix(in srgb, var(--bl-accent-teal) 7%, var(--bl-bg) 93%);
}

/* Badges */
.pt-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: var(--bl-text-xs);
  font-weight: 760;
  border: 1px solid var(--bl-border);
  background: var(--bl-bg-2);
  white-space: nowrap;
}

.pt-free{
  border-color: color-mix(in srgb, var(--bl-accent-teal) 26%, var(--bl-border) 74%);
  background: color-mix(in srgb, var(--bl-accent-teal) 10%, var(--bl-bg-2) 90%);
}

.pt-paid{
  border-color: color-mix(in srgb, var(--bl-accent-yellow) 26%, var(--bl-border) 74%);
  background: color-mix(in srgb, var(--bl-accent-yellow) 12%, var(--bl-bg-2) 88%);
}

/* Mobile: add a little height so the back never feels cramped */
@media (max-width: 720px){
  .pt-card__inner{ min-height: 320px; }
}

/* Accessibility focus */
.pt-card:focus-visible{
  outline: 0.16rem solid var(--bl-focus-ring);
  outline-offset: 0.16rem;
  border-radius: var(--bl-radius-lg);
}





/* ===== Backed by research ===== */
/* Uses the same language as .tile and .book: surface card + spine + wash */
/* ===== Backed by research: Founder + Boundaries (minimal glue) ===== */
/* ===== Backed by research ===== */
/* Uses the same language as .tile and .book: surface card + spine + wash */
/* ===== Backed by research: Founder + Boundaries (minimal glue) ===== */
/* ===== Backed by research ===== */
/* Uses the same language as .tile and .book: surface card + spine + wash */
/* ===== Backed by research: Founder + Boundaries (minimal glue) ===== */

.research__foot{
  margin-top: var(--bl-space-5);
  padding-top: var(--bl-space-4);
  border-top: 1px solid var(--bl-border);
  display: grid;
  gap: var(--bl-space-4);
  max-width: 78ch;
}

/* “What this isn’t” list: clean + confident bullets */
.research__not-list{
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
}

.research__not-list li{
  position: relative;
  padding-left: 16px;
  color: var(--bl-text);
  line-height: var(--bl-lh-relaxed);
}

.research__not-list li::before{
  content:"";
  position:absolute;
  left:0;
  top: 0.65em;
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--bl-accent-teal) 55%, var(--bl-border));
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--bl-accent-teal) 10%, transparent);
  opacity: .85;
}

.research{
  display: grid;
  gap: var(--bl-space-6);
  margin-top: var(--bl-space-8);
}

.research__head{
  max-width: 78ch;
  display: grid;
  gap: var(--bl-space-3);
}

.research__title{
  margin: 0;
  font-size: var(--bl-text-2xl);
  line-height: var(--bl-lh-tight);
  letter-spacing: -0.02em;
  color: var(--bl-text);
}

.research__lead{
  margin: 0;
  max-width: 70ch;
}

/* Panel base — match book/tile surfaces */
.research__panel{
  position: relative;
  border: 1px solid var(--bl-border);
  background: var(--bl-surface);
  border-radius: var(--bl-radius-lg);
  padding: var(--bl-space-6);
  box-shadow: var(--bl-shadow-1);
  overflow: clip;
}

/* Editorial spine (same idea as .tile::before) */
.research__panel::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width: 3px;
  background: var(--bl-border-strong);
  opacity: 0.55;
}

/* Soft wash (same idea as .tile::after) */
.research__panel::after{
  content:"";
  position:absolute;
  right:-110px;
  top:-110px;
  width: 220px;
  height: 220px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--bl-accent-teal) 8%, transparent);
  pointer-events:none;
}

/* Method panel gets the brand spine */
.research__panel--method::before{
  background: var(--bl-accent-teal);
  opacity: .55;
}

/* Receipts panel slightly calmer spine */
.research__panel--receipts::before{
  background: var(--bl-border-strong);
  opacity: .45;
}

/* Panel header row */
.research__panel-top{
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--bl-space-3);
  align-items: center;
  margin-bottom: var(--bl-space-5);
}

.research__panel-kicker{
  font-family: var(--bl-font-mono);
  font-size: var(--bl-text-xs);
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--bl-muted);
  white-space: nowrap;
}

.research__panel-rule{
  height: 1px;
  background: var(--bl-border);
}

.research__method-intro{
  margin: 0 0 var(--bl-space-5);
  color: var(--bl-muted);
  max-width: 75ch;
}

/* ===== WOW: make the loop look like a system ===== */

.research__method{
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: var(--bl-space-3);
  position: relative;
}

/* Connector line for steps (desktop/tablet) */
.research__method::before{
  content:"";
  position:absolute;
  left: 22px;
  top: 12px;
  bottom: 12px;
  width: 1px;
  background: color-mix(in srgb, var(--bl-accent-teal) 28%, var(--bl-border));
  opacity: .95;
}

.research__method-item{
  display: grid;
  grid-template-columns: 44px auto 1fr;
  gap: var(--bl-space-3);
  align-items: start;

  padding: var(--bl-space-4);
  border-radius: var(--bl-radius-lg);
  border: 1px solid var(--bl-border);
  background: color-mix(in srgb, var(--bl-bg-2) 55%, var(--bl-surface));
  box-shadow: var(--bl-shadow-1);
  transition: transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.research__method-item:hover{
  transform: translateY(-1px);
  border-color: var(--bl-border-strong);
  box-shadow: var(--bl-shadow-2);
}

/* Step badge: looks like your system badges (pt-free/pt-paid vibe) */
.research__step{
  width: 40px;
  height: 40px;
  border-radius: 999px;
  display: grid;
  place-items: center;

  font-family: var(--bl-font-mono);
  font-size: var(--bl-text-xs);
  letter-spacing: .12em;
  color: var(--bl-brand);

  border: 1px solid color-mix(in srgb, var(--bl-accent-teal) 22%, var(--bl-border));
  background: color-mix(in srgb, var(--bl-accent-teal) 10%, var(--bl-bg-2));
}

/* Little signal dot (tiny pop, still premium) */
.research__step{
  position: relative;
}
.research__step::after{
  content:"";
  position:absolute;
  right: 6px;
  top: 6px;
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: var(--bl-accent-teal);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--bl-accent-teal) 14%, transparent);
  opacity: .85;
}

.research__tag{
  display: inline-flex;
  align-items: center;
  height: 28px;
  padding: 0 12px;
  border-radius: 999px;

  border: 1px solid color-mix(in srgb, var(--bl-accent-teal) 22%, var(--bl-border));
  background: color-mix(in srgb, var(--bl-accent-teal) 6%, var(--bl-bg-2));

  color: var(--bl-brand);
  font-family: var(--bl-font-mono);
  font-size: var(--bl-text-xs);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  white-space: nowrap;
}

.research__method-copy{
  color: var(--bl-text);
  max-width: 85ch;
}

.research__boundary{
  margin: var(--bl-space-6) 0 0;
  padding-top: var(--bl-space-4);
  border-top: 1px solid var(--bl-border);
  color: var(--bl-muted);
  max-width: 70ch;
}

/* ===== Receipts (keep your 3-up row, but make it feel like tiles) ===== */

.research__receipts{
  display: grid;
  gap: var(--bl-space-4);
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* Scope receipt styling to this section so we don’t break other receipts later */
.research .receipt{
  position: relative;
  border: 1px solid var(--bl-border);
  background: color-mix(in srgb, var(--bl-bg-2) 45%, var(--bl-surface));
  border-radius: var(--bl-radius-lg);
  padding: var(--bl-space-5);
  box-shadow: var(--bl-shadow-1);
  overflow: clip;
  transition: transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

/* tiny left rule = structure */
.research .receipt::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width: 3px;
  background: var(--bl-accent-teal);
  opacity: .22;
}

/* tiny wash = life */
.research .receipt::after{
  content:"";
  position:absolute;
  right:-90px;
  top:-90px;
  width: 180px;
  height: 180px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--bl-accent-teal) 7%, transparent);
  pointer-events:none;
}

.research .receipt:hover{
  transform: translateY(-2px);
  border-color: var(--bl-border-strong);
  box-shadow: var(--bl-shadow-2);
}

.research .receipt__title{
  margin: 0 0 var(--bl-space-2);
  font-size: var(--bl-text-md);
  letter-spacing: -0.01em;
  color: var(--bl-text);
}

.research .receipt__desc{
  margin: 0 0 var(--bl-space-3);
  color: var(--bl-muted);
}

.research .receipt__links{
  margin: 0;
  padding-left: 18px;
  display: grid;
  gap: 10px;
  color: var(--bl-text);
}

.research .receipt__links a{
  color: var(--bl-link);
  text-decoration: underline;
  text-underline-offset: 0.18em;
  text-decoration-thickness: 1px;
  text-decoration-color: color-mix(in srgb, var(--bl-accent-teal) 45%, currentColor);
}
.research .receipt__links a:hover{
  color: var(--bl-link-hover);
  text-decoration-thickness: 2px;
}

.research__cta{
  margin-top: var(--bl-space-5);
  padding-top: var(--bl-space-4);
  border-top: 1px solid var(--bl-border);
  display: flex;
  justify-content: flex-start;
}

/* Responsive */
@media (max-width: 980px){
  .research__receipts{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px){
  .research__panel{ padding: var(--bl-space-5); }
  .research__receipts{ grid-template-columns: 1fr; }

  /* Mobile: remove connector line, stack step grid nicely */
  .research__method::before{ display:none; }

  .research__method-item{
    grid-template-columns: 1fr;
    gap: var(--bl-space-3);
  }
  .research__step{ justify-self: start; }
  .research__tag{ justify-self: start; }
}











/* ===== GET THE APP v2 (premium, striking, typography-led) ===== */
/* ===== GET THE APP v2 (premium, striking, typography-led) ===== */
/* ===== GET THE APP v2 (premium, striking, typography-led) ===== */
/* ===== GET THE APP v2 (premium, striking, typography-led) ===== */
/* ===== GET THE APP v2 (premium, striking, typography-led) ===== */

.getApp2{
  padding: var(--bl-space-8) 0;
  position: relative;
}

/* subtle colour energy without “graphics” */
.getApp2::before{
  content:"";
  position:absolute;
  inset: -28px 0;
  z-index:-1;
  background:
    radial-gradient(900px 520px at 15% 0%,
      color-mix(in srgb, var(--bl-accent-teal) 12%, transparent) 0%,
      transparent 55%),
    radial-gradient(880px 540px at 85% 10%,
      color-mix(in srgb, var(--bl-accent-yellow) 10%, transparent) 0%,
      transparent 60%);
  pointer-events:none;
}

.getApp2__head{
  max-width: 78ch;
  margin-bottom: var(--bl-space-6);
}

.getApp2__actions{
  display:flex;
  gap: var(--bl-space-3);
  flex-wrap: wrap;
  margin-top: var(--bl-space-4);
}

.getApp2__meta{
  display:flex;
  flex-wrap: wrap;
  gap: var(--bl-space-2);
  margin-top: var(--bl-space-4);
}

.metaPill{
  display:inline-flex;
  align-items:center;
  padding: 7px 10px;
  border-radius: 999px;
  border: 1px solid var(--bl-border-strong);
  background: color-mix(in srgb, var(--bl-surface-2) 70%, transparent);
  color: var(--bl-brand);
  font-family: var(--bl-font-mono);
  font-size: var(--bl-text-xs);
  letter-spacing: .06em;
  text-transform: uppercase;
}
.metaPill--ghost{
  background: transparent;
  border-color: var(--bl-border);
  color: var(--bl-muted);
}

.getApp2__grid{
  display:grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: var(--bl-space-6);
  align-items: start;
}

@media (max-width: 980px){
  .getApp2__grid{ grid-template-columns: 1fr; }
}

/* Panels */
.getApp2__panel{
  border: 1px solid var(--bl-border-strong);
  background: color-mix(in srgb, var(--bl-surface) 86%, transparent);
  border-radius: var(--bl-radius-lg);
  box-shadow: var(--bl-shadow-2);
  padding: var(--bl-space-6);
  position: relative;
  overflow: clip;
}

.getApp2__panel::after{
  content:"";
  position:absolute;
  right:-120px;
  bottom:-120px;
  width: 240px;
  height: 240px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--bl-accent-teal) 10%, transparent);
  pointer-events:none;
}

.getApp2__panel--visual::after{
  background: color-mix(in srgb, var(--bl-accent-yellow) 10%, transparent);
}

.panelHead{
  display:flex;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--bl-space-4);
  margin-bottom: var(--bl-space-5);
  flex-wrap: wrap;
}

.panelKicker{
  font-family: var(--bl-font-mono);
  font-size: var(--bl-text-xs);
  letter-spacing: .10em;
  text-transform: uppercase;
  color: var(--bl-muted);
}

/* Steps (editorial, bold) */
.steps{
  display:grid;
  gap: var(--bl-space-4);
  margin-top: var(--bl-space-2);
}

.step{
  display:grid;
  grid-template-columns: 44px 1fr;
  gap: var(--bl-space-4);
  padding: var(--bl-space-4);
  border-radius: var(--bl-radius-md);
  border: 1px solid var(--bl-border);
  background: color-mix(in srgb, var(--bl-surface-2) 72%, transparent);
}

.step__label{
  font-family: var(--bl-font-mono);
  font-size: var(--bl-text-sm);
  letter-spacing: .08em;
  color: var(--bl-brand);
  opacity: .9;
}

.step__t{
  font-weight: 820;
  letter-spacing: -0.01em;
}

.step__s{
  margin-top: var(--bl-space-2);
  color: var(--bl-text);
  line-height: var(--bl-lh-relaxed);
}

.panelFoot{
  margin-top: var(--bl-space-5);
  padding-top: var(--bl-space-4);
  border-top: 1px solid var(--bl-border);
  display:flex;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--bl-space-4);
  flex-wrap: wrap;
}

.linkStrong{
  font-weight: 780;
  text-decoration: none;
  color: var(--bl-brand);
}
.linkStrong:hover{ text-decoration: underline; }

/* Divider */
.panelDivider{
  height: 1px;
  background: var(--bl-border);
  margin: var(--bl-space-5) 0;
  opacity: .9;
}

/* Horizontal screenshot strip (trust + clarity) */
.shotStrip{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--bl-space-3);
}

@media (max-width: 760px){
  .shotStrip{ grid-template-columns: 1fr; }
}

.shotCard{
  border: 1px solid var(--bl-border);
  border-radius: var(--bl-radius-md);
  background: color-mix(in srgb, var(--bl-surface-2) 70%, transparent);
  overflow: clip;
  box-shadow: var(--bl-shadow-1);
}

.shotCard img{
  width: 100%;
  height: auto;
  display:block;
}

.shotCard figcaption{
  padding: 10px 12px;
}

/* Mini FAQ (5 max) */
.faqMini{
  display:grid;
  gap: var(--bl-space-2);
}

.faqItem{
  border: 1px solid var(--bl-border);
  border-radius: var(--bl-radius-md);
  padding: 12px 14px;
  background: color-mix(in srgb, var(--bl-surface-2) 72%, transparent);
}

.faqItem summary{
  cursor: pointer;
  font-weight: 760;
  list-style: none;
}
.faqItem summary::-webkit-details-marker{ display:none; }

.faqItem[open]{
  border-color: var(--bl-border-strong);
}

.faqItem div{
  margin-top: 10px;
}

/* Footer routing */
.getApp2__footer{
  margin-top: var(--bl-space-6);
  padding-top: var(--bl-space-4);
  border-top: 1px solid var(--bl-border);
  display:flex;
  justify-content: space-between;
  gap: var(--bl-space-4);
  flex-wrap: wrap;
}









