.demo-page { padding-bottom: 0; }
.demo-page :focus-visible { outline: 2px solid var(--sc-sel); outline-offset: 4px; }
.demo-page [hidden] { display: none; }
.demo-page .demo-skip { position: fixed; top: 8px; left: 16px; z-index: 100; padding: 12px; background: var(--sc-surface); transform: translateY(-150%); }
.demo-page .demo-skip:focus { transform: none; }
.demo-page .eyebrow { color: var(--sc-ink-2); }
.demo-page .demo-hero { padding: clamp(44px, 7vw, 76px) 0 36px; }
.demo-page h1, .demo-page h2, .demo-page h3 { font-family: var(--sc-display); color: var(--sc-ink); }
.demo-page h1 { max-width: 820px; margin: 18px 0; font-size: clamp(36px, 5.5vw, 56px); line-height: 1.05; letter-spacing: -.03em; font-weight: 600; }
.demo-page h2 { margin: 12px 0; font-size: clamp(27px, 3.5vw, 36px); line-height: 1.12; letter-spacing: -.02em; font-weight: 600; }
.demo-page h3 { margin: 12px 0 8px; font-size: 21px; line-height: 1.2; font-weight: 600; }
.demo-page p { color: var(--sc-ink-2); line-height: 1.65; }
.demo-page .demo-hero > p { max-width: 660px; font-size: 17px; }
.demo-page .demo-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.demo-page .demo-section { padding: 40px 0; scroll-margin-top: 90px; }
.demo-page .demo-intro { max-width: 720px; margin: 12px 0 24px; font-size: 15px; }
.demo-page .demo-sample { overflow: hidden; }
.demo-page .demo-sample-top { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px; padding: 14px 20px; border-bottom: 1px solid var(--sc-rule); font-size: 12px; color: var(--sc-ink-2); }
.demo-page .demo-frame { height: 440px; overflow: hidden; border-bottom: 1px solid var(--sc-rule); background: var(--sc-paper); }
.demo-page .demo-frame iframe { display: block; width: 100%; height: 100%; border: 0; pointer-events: none; }
.demo-page .demo-guide { padding: 24px; }
.demo-page .demo-progress { margin: 0; font-size: 12px; font-weight: 600; color: var(--sc-sel); }
.demo-page #sample-description { min-height: 50px; margin: 0; font-size: 14px; max-width: 730px; }
.demo-page .demo-step-buttons { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin: 20px 0; }
.demo-page .demo-step-buttons button { padding: 12px 8px; border: 1px solid var(--sc-rule-2); border-radius: var(--sc-r-2); background: var(--sc-paper); color: var(--sc-ink-2); font: 500 12.5px var(--sc-ui); cursor: pointer; }
.demo-page .demo-step-buttons button[aria-current="step"] { border-color: var(--sc-sel); background: var(--sc-sel-soft); color: var(--sc-sel); }
.demo-page .demo-controls { display: flex; justify-content: space-between; gap: 12px; }
.demo-page .demo-controls .btn { min-width: 105px; min-height: 42px; }
.demo-page button:disabled { opacity: .45; cursor: default; }
.demo-page .demo-caption { margin: 14px 0 0; max-width: 800px; font-size: 12.5px; }
.demo-page .demo-flow { list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; padding: 0; margin: 28px 0 0; }
.demo-page .demo-flow li { border-top: 1px solid var(--sc-rule-2); padding-top: 20px; }
.demo-page .demo-number { font: 12px var(--sc-mono); color: var(--sc-sel); }
.demo-page .demo-flow p, .demo-page .demo-audiences p { margin: 0; font-size: 14px; }
.demo-page .demo-audiences { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 20px; }
.demo-page .demo-audiences article { padding-top: 8px; }
.demo-page .demo-closing { padding: 36px; margin: 32px 0 56px; border: 1px solid var(--sc-rule); border-radius: var(--sc-r-3); background: var(--sc-inset); }
.demo-page .demo-closing h2 { max-width: 620px; }
.demo-page .demo-closing p { max-width: 650px; font-size: 15px; }
.demo-page .demo-footer { display: flex; flex-wrap: wrap; gap: 16px 24px; padding-top: 24px; padding-bottom: 32px; border-top: 1px solid var(--sc-rule); color: var(--sc-ink-2); font-size: 12px; }
.demo-page .demo-footer span { margin-right: auto; }
.demo-page .demo-fallback { padding-left: 20px; line-height: 1.9; }
@media (max-width: 640px) {
  .demo-page .nav-right { gap: 12px; }
  .demo-page .demo-section { padding: 28px 0; scroll-margin-top: 75px; }
  .demo-page .demo-hero { padding-bottom: 20px; }
  .demo-page .demo-hero > p { font-size: 15px; }
  .demo-page .demo-frame { height: 360px; }
  .demo-page .demo-sample-top { padding: 12px 16px; }
  .demo-page .demo-guide { padding: 20px 16px; }
  .demo-page #sample-description { min-height: 92px; }
  .demo-page .demo-step-buttons { grid-template-columns: repeat(2, 1fr); }
  .demo-page .demo-flow, .demo-page .demo-audiences { grid-template-columns: 1fr; gap: 20px; }
  .demo-page .demo-closing { padding: 24px; margin: 24px 0 40px; }
  .demo-page .demo-closing .demo-actions { flex-direction: column; }
}
