/* Hero: the AI Control Tower prototype inside the app window frame. */
/* AI Adoption Platform hero (owner choice of November 5, 2026, "Long table"): the copy over a lavender riso illustration
   of a long table with a pair of colleagues at each end, and the AI Control Tower screen resting on the empty middle of
   the table. The colored frame stops at 90% of the screen's height, so the screen runs out below it and the front of the
   table is left out. All sizes are shares of the section's width S: the art is S wide and S / (21/9) tall; the screen is
   65% of S wide and 65% / 1.6 = 40.6% of S tall, its left edge at 18.25% so it sits in the gap between the nearest
   shoulders (22% to 79.5% of the art) with a little overlap. */
.program-hero { --bleed: 30px; width: min(calc(100% - 48px), var(--hero-width, 1600px)); margin-inline: auto; }
.program-hero-stage { position: relative; isolation: isolate; display: flex; flex-direction: column; align-items: center; overflow: clip; padding: 20px var(--bleed) 0; border-radius: 20px; background: #d4d8fb; }
.program-hero-copy { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; padding-top: 52px; text-align: center; }
.program-hero h1 { margin: 16px 0 0; font-size: clamp(48px, 5.3vw, 72px); font-weight: 500; line-height: 1.02; letter-spacing: -.052em; text-wrap: balance; }
.program-hero-intro { max-width: 640px; margin-top: 14px; color: #3f5650; font-size: 19px; line-height: 1.5; text-wrap: pretty; }
.program-hero-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 22px; }
.program-hero-note { margin-top: 14px; color: #3f5650; font-size: 15px; }
/* The art starts 18px under the copy (where the screen starts too) and the frame ends 0.9 × 40.6% = 36.5% of S lower. */
.program-hero-art { flex-shrink: 0; width: calc(100% + 2 * var(--bleed)); aspect-ratio: 21 / 9; margin: 18px calc(-1 * var(--bleed)) calc(-1 * (100% + 2 * var(--bleed)) * (9 / 21 - .365)); background: url('hero/long-table-lavender.webp?v=f0e35618104a') center top / 100% auto no-repeat; -webkit-mask-image: linear-gradient(transparent, #000 8%); mask-image: linear-gradient(transparent, #000 8%); }
/* Two classes so the rule wins over .app-window--shot's margin below. */
.program-hero .program-hero-shot { position: relative; z-index: 1; width: 65%; margin: calc(100% * -.365) 0 0 18.25%; scroll-margin-top: 24px; }

/* The hero shows the AI Control Tower home as a screen; the clickable prototype lives at /dev/control-tower/. */
.app-window--shot { margin: 0; }
.app-window--shot img { display: block; width: 100%; height: auto; }
.app-window--prototype { background: #fff; }
/* Below the wide layout: a 16:9 picture of the desktop view (app.js sets the scale). The 1200 px view still counts as overflow, so the frame clips instead of scrolling: a scroll container could be scrolled sideways by scrollIntoView. */
.app-window--prototype.is-scaled { aspect-ratio: 16 / 9; min-height: 0; overflow: clip; }
.app-window--prototype.is-scaled .product-prototype { --fzct-viewport: 1200px; width: 1200px; transform: scale(var(--prototype-scale, 1)); transform-origin: 0 0; }


/* How it works: one card per step, each with a crop of the real screen (a Figma export, site/assets/screens/steps/). */
.journey-step { display: inline-block; margin-bottom: 12px; padding: 5px 11px; border-radius: 999px; background: #edf2eb; color: #3e6650; font-size: 13px; line-height: 1.4; }
.journey-shot { margin: 0; }
/* The screen sits on a soft color field like an app window and runs off the right and bottom edges, so its text stays readable. */
.journey-screen { position: relative; isolation: isolate; overflow: hidden; aspect-ratio: 4 / 3; border-radius: 13px; background: var(--js-base); }
.journey-screen::before { content: ""; position: absolute; inset: -25%; z-index: -1; background: radial-gradient(30% 34% at 28% 32%, var(--js-a), transparent 100%), radial-gradient(34% 30% at 74% 26%, var(--js-b), transparent 100%), radial-gradient(40% 36% at 58% 78%, var(--js-c), transparent 100%); filter: blur(28px); }
.journey-screen img { position: absolute; top: 10%; left: 7%; width: max(124%, 520px); max-width: none; height: auto; border-radius: 12px 0 0; box-shadow: 0 0 0 1px rgb(15 11 10 / .06), 0 1px 2px rgb(15 11 10 / .04), 0 28px 56px -28px rgb(16 54 57 / .5); }
.journey-screen--lavender { --js-base: #f0edf7; --js-a: #dcd3f3; --js-b: #f0dcef; --js-c: #d9e2f6; }
.journey-screen--mint { --js-base: #e9f4ee; --js-a: #c4ebd7; --js-b: #def3dc; --js-c: #cfe9ee; }
.journey-screen--peach { --js-base: #f8eee7; --js-a: #f6d8c4; --js-b: #fbe5cf; --js-c: #efdcea; }

@media (min-width: 651px) and (max-width: 1050px) {
  .journey-shot { align-self: center; }
}
@media (max-width: 650px) {
  .journey-screen { aspect-ratio: 6 / 5; }
}

/* Copy rhythm: short blocks that break in sensible places. */
.journey-card p, .meet-intro, .faq-list details > p { text-wrap: pretty; }
h1, h2, h3, .hero-intro, .founderz-summary { text-wrap: balance; }

/* The header switches to the menu button at 760 px on every page (layout.css). */
.quiet-link { min-height: 44px; }

/* Four product tabs: one row when they fit, otherwise two by two. */
@media (max-width: 650px) {
  /* Phones: the whole art shows, people and table, and a wider screen overlaps the front of the table. */
  .program-hero { --bleed: 15px; width: calc(100% - 24px); }
  .program-hero-stage { border-radius: 14px; }
  .program-hero-copy { padding-top: 28px; }
  .program-hero h1 { font-size: clamp(36px, 10vw, 48px); }
  .program-hero-intro { font-size: 18px; }
  .program-hero-actions { flex-direction: column; align-items: stretch; width: 100%; }
  .program-hero-art { margin-bottom: 0; }
  .program-hero .program-hero-shot { width: calc(100% - 24px); margin: -14% auto 0; }
}

@media (min-width: 651px) and (max-width: 799px) {
  .product-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; max-width: 100%; }
}

/* Touch screens: every small control gets a 48px hit area without changing its look. */
@media (pointer: coarse) {
  .wordmark, .eyebrow-pill, .footer > a:first-child, .footer-links a, .image-dialog-close, .live-dialog-link { position: relative; }
  .wordmark::after, .eyebrow-pill::after, .footer > a:first-child::after, .footer-links a::after, .image-dialog-close::after, .live-dialog-link::after { content: ""; position: absolute; top: 50%; left: 50%; width: max(100%, 48px); height: max(100%, 48px); transform: translate(-50%, -50%); }
}

/* The gap: three sourced findings on the Control Tower texture, after Meet your AI Fellows. Every figure names its publisher, study and year on the page (.ai/README.md). */
.gap-section { padding-bottom: 90px; }
.gap-panel { padding: clamp(28px, 4.6vw, 64px); border-radius: 20px; background: linear-gradient(180deg, rgb(250 251 248 / .8), rgb(250 251 248 / .35) 42%, rgb(250 251 248 / 0) 80%), #cfe3d3 url('screens/backgrounds/tower.webp?v=ce006eac251c') center / cover no-repeat; }
.gap-section .section-heading p { max-width: 62ch; margin-top: 16px; color: #3c4d47; font-size: 19px; line-height: 1.55; text-wrap: pretty; }
.gap-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 40px 0 0; padding: 0; list-style: none; }
.gap-grid > li { display: flex; flex-direction: column; min-width: 0; padding: 26px; border-radius: 16px; background: rgb(255 255 255 / .8); box-shadow: 0 0 0 1px rgb(255 255 255 / .7), 0 24px 48px -30px rgb(16 54 57 / .55); -webkit-backdrop-filter: blur(16px) saturate(1.15); backdrop-filter: blur(16px) saturate(1.15); }
.gap-figure { color: var(--deep); font-size: clamp(38px, 3.6vw, 52px); line-height: 1.05; letter-spacing: -.04em; white-space: nowrap; }
.gap-text { margin-top: 14px; font-size: 18px; line-height: 1.5; text-wrap: pretty; }
.gap-source { margin-top: auto; padding-top: 18px; color: var(--muted); font-size: 14px; line-height: 1.5; text-wrap: pretty; }
.gap-source a { text-decoration: underline; text-decoration-color: #9db8a6; text-underline-offset: 3px; }

@media (max-width: 1000px) {
  .gap-section { padding-bottom: 72px; }
  .gap-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 650px) {
  .gap-section { padding-bottom: 60px; }
  .gap-section .section-heading p, .gap-text { font-size: 17px; }
  .gap-panel { padding: 24px 16px 16px; border-radius: 14px; }
  .gap-grid { margin-top: 28px; }
  .gap-grid > li { padding: 20px; border-radius: 12px; }
}
