/* Readable type only inside a project's showcase. Keep the illustrated stage,
   collection labels, and every saved canvas frame/position unchanged. */
.works-content.is-detail,
.works-lightbox {
  --project-readable-font: Inter, "Segoe UI", Arial, "Noto Sans SC", sans-serif;
  font-family: var(--project-readable-font);
  font-kerning: normal;
}

/* Explicit font declarations in the flow, resource and saved-canvas styles
   otherwise reintroduce the handwritten face. Font-only overrides also keep
   editor previews identical to the published page without moving its blocks. */
.works-content.is-detail :is(h1, h2, h3, h4, h5, h6, p, a, button, input, textarea, select, label, li, figcaption, blockquote, span, summary, output, legend),
.works-content.is-detail :is(.works-eyebrow, .canvas-caption, .canvas-editorial-summary, .canvas-empty, .canvas-skills, .project-skills, .project-page > span, .managed-page-caption, .project-extra-caption, .project-resource-link),
.works-lightbox,
.works-lightbox :is(button, a, p, span) {
  font-family: var(--project-readable-font) !important;
}

.works-content.is-detail :is(h1, h2, h3, h4, h5, h6) {
  font-weight: 600;
}


/* A resized interactive block keeps its controls inside its own frame. */
.canvas-kind-demo .project-interaction-demo { overflow: auto; }
.works-content.is-detail .canvas-text :is(span,p,a) { font-family:inherit!important; }
.works-root .restored-gallery > .project-extra-demo .project-interaction-demo { aspect-ratio:auto; }
/* Compact skill tags retain the owner's shallow saved text frame. */
.works-content.is-detail .canvas-skills:not([contenteditable]) { gap:8px; }
.works-content.is-detail .canvas-skills:not([contenteditable]) > span { font-size:.72em; padding:4px 8px; }
.works-content.is-detail .project-heading h1 { font-size:clamp(40px,5.6vw,78px)!important; line-height:1.08; letter-spacing:-.035em; }

.works-content.is-detail .occupied-demo .od-invitation {font-family:"Annie Use Your Telescope",cursive!important;font-weight:400}
