/* Local workshop font comparisons. Default A; no network font requests. */
@font-face {
  font-family: 'Workshop Inter';
  src: url('assets/fonts/polish/inter-variable.ttf') format('truetype');
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}
@font-face {
  font-family: 'Workshop Space Grotesk';
  src: url('assets/fonts/polish/spacegrotesk-variable.ttf') format('truetype');
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
}
@font-face {
  font-family: 'Workshop JetBrains Mono';
  src: url('assets/fonts/polish/jetbrainsmono-variable.ttf') format('truetype');
  font-style: normal;
  font-weight: 100 800;
  font-display: swap;
}
@font-face {
  font-family: 'Workshop Bricolage Grotesque';
  src: url('assets/fonts/polish/bricolagegrotesque-variable.ttf') format('truetype');
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
}

:root,
html[data-font='a'] {
  --font-body: 'Workshop Inter', sans-serif;
  --font-heading: 'Workshop Space Grotesk', sans-serif;
  --font-value: 'Workshop JetBrains Mono', monospace;
  --font-hero: 'Workshop Space Grotesk', sans-serif;
}
html[data-font='b'] {
  --font-body: 'DM Sans', sans-serif;
  --font-heading: 'Workshop Bricolage Grotesque', sans-serif;
  --font-value: 'Workshop JetBrains Mono', monospace;
  --font-hero: 'Workshop Bricolage Grotesque', sans-serif;
}
html[data-font='c'] {
  --font-body: 'DM Sans', sans-serif;
  --font-heading: 'DM Sans', sans-serif;
  --font-value: 'Workshop JetBrains Mono', monospace;
  --font-hero: 'Luckiest Guy', sans-serif;
}

html body,
html button,
html input,
html select,
html textarea,
html .brand-cube {
  font-family: var(--font-body);
}
html .scene :is(p, li, a, button, label, small, figcaption, span, strong, b),
html .scene svg text,
html :is(.paper-tag, .hand, .walk-instruction, .copy-status),
html :is(.process-steps, .process-label, .hotend-inset) :is(b, span),
html :is(.access-field, .range-label) label,
html .dialog-top h2 {
  font-family: var(--font-body);
}
html .scene :is(h1, h2, h3),
html .scene .display,
html .scene .display span {
  font-family: var(--font-heading);
  font-weight: 700;
  letter-spacing: -.025em;
}
/* Clean headings keep the existing yellow/ink palette without heavy letter outlines. */
html .scene .display,
html .scene .display span {
  -webkit-text-stroke: 0;
  text-shadow: .10cqw .14cqw 0 var(--ink);
  line-height: 1.07;
}
html .scene .display span {
  max-width: 100%;
  transform: none;
}
html .cream .scene .display,
html .cream .scene .display span {
  text-shadow: none;
}

/* Instructions, labels and named tools always use the clean body face in A/B/C. */
html .scene :is(.tool-link, .makerlab-tool, .mcp-route, .boolean-input, .ai-action-copy, .combine-steps, .material-comparison, .resource-columns) h3,
html .scene :is(.tool-link, .makerlab-tool, .mcp-route, .boolean-input, .ai-action-copy, .combine-steps, .material-comparison, .resource-columns) h3 span,
html .scene :is(.walk-actions, .toolbar-tabs, .setting-tabs, .process-steps) :is(button, span, b),
html .scene :is(.file-type, .file-icon, .file-icon small, .settings-lines, .gcode-lines, .route-instructions b),
html .scene :is(.access-field label, .access-value input, .sphere-comparison .paper-tag) {
  font-family: var(--font-body);
  font-weight: 700;
  letter-spacing: normal;
}
html .scene .tool-link h3 {
  line-height: 1.1;
  font-size: 2.2cqw;
}
html .scene :is(.hero-title, .hero-title span),
html[data-font='c'] :is(#model-sources, #boolean-finale) .display,
html[data-font='c'] :is(#model-sources, #boolean-finale) .display span {
  font-family: var(--font-hero);
}
html[data-font='c'] :is(.hero-title, #model-sources .display, #boolean-finale .display) {
  font-weight: 400;
  letter-spacing: -.015em;
  -webkit-text-stroke: .05cqw var(--ink);
  text-shadow: .18cqw .22cqw 0 var(--ink);
}
html .scene :is(.activity-spec b, .range-label output, #layer-number),
html #counter,
html .code-paper pre,
html code {
  font-family: var(--font-value);
  font-variant-numeric: tabular-nums;
}
html .scene .corner-count strong {
  font-family: var(--font-heading);
  font-weight: 700;
  -webkit-text-stroke: 0;
}

@media (max-width: 760px) {
  html .scene .tool-link h3 { font-size: 5.5cqw; }
  html .scene .display { overflow-wrap: normal; }
  html #almost-anything .display { font-size: 16cqw; }
}
