/* Demo page (demo.html) — page-specific styles. Immutable-cached under /css/*:
   bump the ?v= on demo.html whenever this file changes. */
.demo-hero { padding: clamp(88px, 12vh, 130px) 0 12px; }
/* The demo is the whole app, not a video clip. The stage starts COMPACT
   (sized to the welcome card inside the iframe) and grows to a near-full
   viewport app stage the moment the visitor presses Start (the embedded app
   posts nd-demo:started → js/demo-page.js adds .live). */
.demo-wrap { max-width: min(1760px, calc(100vw - 40px)); margin: 0 auto; padding: 0; }
.demo-embed {
  position: relative;
  border: 1px solid var(--border);
  border-radius: var(--r-2xl);
  overflow: hidden;
  background: var(--bg-s);
  height: clamp(500px, 62vh, 620px);
  max-width: 880px;
  margin: 0 auto;
  box-shadow: var(--shadow-lg);
  transition: height 0.55s cubic-bezier(0.16, 1, 0.3, 1), max-width 0.55s cubic-bezier(0.16, 1, 0.3, 1);
}
.demo-embed.live { height: clamp(560px, 86vh, 1060px); max-width: 1760px; }
.demo-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; }
@media (max-width: 860px) {
  .demo-wrap { max-width: calc(100vw - 16px); }
  .demo-embed { height: 66vh; border-radius: var(--r-lg); }
  .demo-embed.live { height: 84vh; }
}
.demo-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
@media (max-width: 860px) { .demo-cards { grid-template-columns: 1fr; } }
.demo-card {
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  background: var(--bg-c);
  padding: 22px 22px 20px;
}
.demo-card h3 { font-family: var(--f-mono); font-size: 15px; font-weight: 600; letter-spacing: .02em; margin: 0 0 8px; color: var(--t1); }
.demo-card p { font-size: 13.5px; line-height: 1.65; color: var(--t2); margin: 0; }
.demo-card .tag { font-family: var(--f-mono); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: var(--t3); display: block; margin-bottom: 10px; }

.demo-embed-sec { padding-top: 20px; padding-bottom: clamp(56px, 8vw, 100px); }
.demo-cta-sub { margin-top: 14px; }
.demo-cta-actions { margin-top: 26px; display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
