/* Fontiva marketing UI — tokens from Primary (Red) + Secondary (Warm) style guide */

:root {
  color-scheme: light;
  --primary: #d10121;
  --primary-hover: #bc011e;
  --primary-active: #a7011a;
  --primary-dark: #9d0119;
  --primary-dark-hover: #7d0114;
  --primary-dark-active: #5e000f;
  --primary-darker: #49000c;
  --primary-light: #fae6e9;
  --primary-light-hover: #f8d9de;
  --primary-light-active: #f1b0ba;
  --primary-rgb: 209, 1, 33;

  --secondary: #ffead3;
  --secondary-light: #fffdfb;
  --secondary-light-hover: #fffcf8;
  --secondary-light-active: #fff8f1;
  --secondary-hover: #e6d3be;
  --secondary-active: #ccbba9;
  --secondary-dark: #bfb09e;
  --secondary-dark-hover: #998c7f;
  --secondary-dark-active: #73695f;
  --secondary-darker: #59524a;

  --ink: #2e2e2e;
  --muted: #59524a;
  --text: #484848;
  --on-primary: #fff;
  --bg: var(--secondary-light);
  --page-bg: var(--secondary-light);
  --surface: var(--secondary);
  --soft: var(--primary-light);
  --accent: var(--primary);
  --deep: var(--primary-dark);
  --pink: var(--primary);
  --white: #fff;

  --shadow-soft: 0 4px 20px rgba(0, 0, 0, 0.05);
  --shadow-brand: 0 18px 40px rgba(var(--primary-rgb), 0.12);
  --nav-border: rgba(var(--primary-rgb), 0.22);
  --nav-bg: rgba(255, 253, 251, 0.92);
  --radius-card: 18px;
  --radius-pill: 999px;
}

html,
body {
  background: var(--page-bg);
  color: var(--ink);
}

body p {
  color: var(--muted);
}

html.site-pending-load:not(.site-loaded)::before,
html.site-pending-load:not(.site-loaded) {
  background: var(--page-bg);
}

/* Hero background edge-to-edge (main has horizontal gutter) */
main > section.hero {
  width: calc(100% + 2 * var(--site-gutter));
  max-width: none;
  margin-inline: calc(-1 * var(--site-gutter));
  box-sizing: border-box;
}

/* —— Header pill —— */
.site-header .nav-shell,
.nav-shell {
  background: var(--nav-bg) !important;
  border-color: var(--nav-border) !important;
  box-shadow: var(--shadow-brand), inset 0 1px 0 rgba(255, 255, 255, 0.75) !important;
}

.desktop-nav a {
  color: var(--ink);
  font-weight: 700;
}

.desktop-nav a:hover,
.desktop-nav a:focus-visible {
  color: var(--primary) !important;
}

.desktop-nav a[aria-current="page"] {
  color: var(--primary) !important;
}

.menu-toggle span {
  background: var(--primary) !important;
}

.lang-toggle {
  border-color: var(--nav-border);
  background: var(--primary-light);
  color: var(--primary);
}

.mobile-nav:not([hidden]) {
  border-color: var(--primary) !important;
  background: rgba(255, 253, 251, 0.98) !important;
  box-shadow: var(--shadow-brand) !important;
}

.mobile-nav a:hover,
.mobile-nav a:focus-visible,
.mobile-nav button:hover {
  background: var(--secondary) !important;
}

/* —— Hero —— */
.hero {
  background: radial-gradient(
    ellipse at 50% -10%,
    var(--primary-light-active) 0%,
    var(--secondary) 42%,
    var(--page-bg) 72%
  );
}

.hero h1 {
  color: var(--primary-dark) !important;
  font-weight: 800 !important;
  letter-spacing: -0.02em !important;
  line-height: 1.3 !important;
}

.hero-copy > p {
  color: var(--muted) !important;
  font-weight: 500;
  max-width: 46ch;
  line-height: 1.8;
}

.store-link {
  background: var(--white) !important;
  border: 1px solid var(--primary-light-active) !important;
  border-radius: 14px !important;
  box-shadow: var(--shadow-soft) !important;
  color: var(--ink) !important;
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.store-link[href*="apps.apple.com"] svg,
.store-link[data-store="apple"] svg { color: #000; fill: #000; }
.store-link[aria-disabled="true"] { cursor: default; }
/* Store destinations stay disabled while their visual hover state remains available. */
.store-link > svg,
.store-link > .store-icon {
  box-sizing: content-box;
  width: 27px;
  height: 27px;
  padding: 7px;
  flex: none;
  border-radius: 8px;
  background: var(--primary-light);
}

.store-link:hover,
.store-link:focus-visible {
  transform: translateY(-2px);
  border-color: var(--primary) !important;
  box-shadow: 0 8px 28px rgba(var(--primary-rgb), 0.14) !important;
}

.store-link strong {
  color: var(--ink);
}

.store-link small {
  color: var(--muted) !important;
}

.hero-scroll-hint {
  color: var(--primary);
}

/* —— Library / creativity —— */
.library {
  background: transparent;
}

.section-heading h2 {
  color: var(--primary-dark) !important;
  font-weight: 800;
}

.section-heading p {
  color: var(--muted) !important;
  font-weight: 500;
}

.gallery-tags {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px 14px;
  max-width: 1120px;
  margin-inline: auto;
}

.gallery-tags .gallery-tag,
.gallery-tags span {
  background: var(--secondary);
  color: var(--ink);
  border: 1px solid transparent;
  border-radius: var(--radius-pill);
  font-weight: 600;
  line-height: 1.25;
  cursor: default;
  pointer-events: none;
  user-select: none;
}


.library .carousel {
  -webkit-mask-image: linear-gradient(
    to right,
    transparent 0%,
    #000 8%,
    #000 92%,
    transparent 100%
  ) !important;
  mask-image: linear-gradient(
    to right,
    transparent 0%,
    #000 8%,
    #000 92%,
    transparent 100%
  ) !important;
}

.carousel-arrow {
  color: var(--primary) !important;
}

.carousel-arrow:hover,
.carousel-arrow:focus-visible {
  color: var(--primary-hover) !important;
}

.carousel-dots span {
  background: rgba(var(--primary-rgb), 0.25);
}

.carousel-dots span.active {
  background: var(--primary) !important;
}

/* —— Visual studio —— */
.visual-studio .lang-panel h2,
.visual-studio .lang-panel h2 span {
  color: var(--primary-dark) !important;
  text-transform: none;
  letter-spacing: -0.02em;
}

.visual-studio .studio-dashboard {
  border: 0;
  box-shadow: none;
  background: transparent !important;
}

.visual-studio .lang-btn {
  background: var(--white) !important;
  color: var(--muted) !important;
  border: 1px solid transparent !important;
  box-shadow: var(--shadow-soft) !important;
  text-transform: none !important;
  font-weight: 600;
  letter-spacing: 0 !important;
}

.visual-studio .lang-btn:hover:not(.active-glow),
.visual-studio .lang-btn:focus-visible:not(.active-glow) {
  background: var(--secondary-light-hover) !important;
  color: var(--ink) !important;
  border-color: rgba(var(--primary-rgb), 0.15) !important;
  box-shadow: var(--shadow-soft) !important;
  transform: translateY(-1px);
}

.visual-studio .lang-btn.active-glow,
.visual-studio .lang-btn.is-active {
  background: var(--primary-light) !important;
  color: var(--primary) !important;
  border-color: var(--primary) !important;
  box-shadow: none !important;
  transform: none;
}

.visual-studio .lang-btn.active-glow:hover,
.visual-studio .lang-btn.active-glow:focus-visible {
  transform: translateY(-1px);
  box-shadow: var(--shadow-soft) !important;
}

.visual-studio .image-showcase,
.visual-studio .studio-preview {
  background: var(--page-bg) !important;
  border-radius: 20px;
}

/* —— Features —— */
.features {
  background: var(--page-bg) !important;
}

.feature-card {
  background: var(--secondary-light-active) !important;
  border-radius: var(--radius-card) !important;
  box-shadow: none !important;
  border: 1px solid var(--secondary) !important;
}

.feature-card h3 {
  color: var(--primary-dark) !important;
  font-weight: 800;
}

.feature-card p {
  color: var(--muted) !important;
}

/* —— Contact page (when used) —— */
.contact-copy__panel {
  box-shadow: var(--shadow-soft);
  background: var(--secondary) !important;
}

.contact-copy__panel h2,
.contact-copy h2 {
  color: var(--primary) !important;
}

.contact-copy__detail {
  border-color: rgba(var(--primary-rgb), 0.22);
  background: rgba(255, 253, 251, 0.9);
}

.contact-copy__detail-icon {
  border-color: rgba(var(--primary-rgb), 0.25);
  color: var(--primary);
  background: linear-gradient(145deg, var(--white), var(--secondary));
}

/* —— Footer —— */
.site-footer {
  background: var(--secondary-light-active) !important;
  border-top-color: rgba(var(--primary-rgb), 0.12) !important;
  padding-block: 48px 56px;
}

.footer-inner {
  border-top: 0;
  padding-top: 0;
}

.footer-social-block .social-links a {
  color: var(--primary);
}

.footer-social-block .social-links a:hover,
.footer-social-block .social-links a:focus-visible {
  color: var(--primary-hover);
}

.footer-address-line {
  color: var(--muted);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 8px;
}

.footer-address-label {
  font-weight: 700;
  color: var(--ink);
}

.footer-contact-heading {
  margin: 0 0 12px;
  font-weight: 800;
  font-size: 1.05rem;
  color: var(--primary);
}

.footer-social-block .social-links {
  gap: 16px;
}

.footer-social-block .social-links .icon {
  width: 22px;
  height: 22px;
}

.scroll-top {
  border-color: var(--nav-border);
  background: rgba(255, 253, 251, 0.94);
}

.scroll-top:hover,
.scroll-top:focus-visible {
  border-color: rgba(var(--primary-rgb), 0.55);
  color: var(--primary);
  background: linear-gradient(145deg, var(--white), var(--secondary)) !important;
}

.scroll-top:focus-visible {
  outline-color: var(--primary);
}

/* Shared interaction roles: red actions, warm surfaces, visible keyboard focus. */
:where(a, button, input, textarea, select, summary):focus-visible {
  outline: 2px solid var(--primary-dark);
  outline-offset: 4px;
}

.site-header .nav-shell {
  padding-block: 8px;
  box-shadow: 0 8px 24px rgba(var(--primary-rgb), 0.06) !important;
}

.lang-toggle:hover { background: var(--primary-light-hover); }
.lang-toggle:active { background: var(--primary-light-active); }
.store-link:active { background: var(--secondary-light-active) !important; transform: none; }

.xf-form-wrap .contact-page-form button,
.io-form button {
  min-height: 48px;
  border: 1px solid var(--primary);
  background: var(--primary-light);
  color: var(--primary-dark);
  transition: background-color 160ms ease, border-color 160ms ease;
}
.xf-form-wrap .contact-page-form button:hover,
.io-form button:hover { background: var(--primary-light-hover); border-color: var(--primary-hover); color: var(--primary-dark); }
.xf-form-wrap .contact-page-form button:active,
.io-form button:active { background: var(--primary-light-active); border-color: var(--primary-active); }
.xf-form-wrap .contact-page-form button:disabled,
.io-form button:disabled { opacity: .65; cursor: wait; }

.xf-form-wrap .contact-page-form input,
.xf-form-wrap .contact-page-form textarea,
.io-form input, .io-form select, .io-form textarea {
  background-color: var(--secondary-light);
  border-color: var(--secondary-dark);
  color: var(--ink);
  min-height: 48px;
  font: inherit;
}
.xf-form-wrap .contact-page-form :is(input, textarea):focus,
.io-form :is(input, select, textarea):focus { border-color: var(--primary); }
.xf-form-wrap .contact-page-form [aria-invalid="true"],
.io-form [aria-invalid="true"] { border-color: var(--primary-dark); }
.xf-form-wrap .field-error { color: var(--primary-dark); }
.contact-copy__lead, .contact-copy__extra { color: var(--muted) !important; }
body.page-contact { background: var(--page-bg); }
body.page-contact { color: var(--ink); }
.page-contact .card-info p { color: var(--muted); }
.contact-page-form label { color: var(--ink); }
.site-header .desktop-nav a { color: var(--ink); }
.site-header .desktop-nav a:hover { color: var(--primary); }
.page-contact .card-info { background: var(--secondary-light-active); border-color: var(--secondary-hover); }
.page-contact .card-info :is(h2, h3) { color: var(--primary-dark); }
.page-contact .info-link { background: var(--secondary-light); border-color: var(--primary-light-hover); color: var(--muted); }
.page-contact .info-link:hover { background: var(--primary-light); color: var(--primary-dark); }

/* Landing composition follows the reference without copying placeholder content. */
body:not(.io-page) main > section.hero {
  min-height: 100svh;
  padding-block: clamp(132px, 12vw, 172px) 64px;
}
.hero-inner > *, .feature-grid > *, .visual-studio .split-layout > * { min-width: 0; }
.hero h1 { font-size: clamp(32px, 4.1vw, 58px); }
.hero-art img { max-height: 530px; object-fit: contain; }
.store-links { gap: 12px; flex-wrap: wrap; }
.store-link { padding: 12px 16px; min-height: 64px; }
.library { padding-block: 40px 64px; }
.section-heading h2 { font-size: clamp(28px, 3.3vw, 44px); line-height: 1.4; }
.gallery-tags { margin-block: 24px 32px; gap: 10px; }
.gallery-tags .gallery-tag { border-color: var(--secondary-hover); }
.gallery-tags span {
  font-size: 13px;
  font-weight: 500;
  padding: 8px 16px;
  border-color: var(--secondary-hover);
  white-space: nowrap;
}
.visual-studio {
  background: linear-gradient(180deg, var(--page-bg), var(--secondary), var(--page-bg));
  padding-block: 64px;
}
.visual-studio .lang-panel h2 { font-size: clamp(28px, 3vw, 40px); line-height: 1.4; }
.visual-studio .section-heading { margin: 10px; padding: 10px; }
.visual-studio .lang-btn { font-size: 15px; line-height: 1.5; white-space: normal; min-height: 48px; }
.visual-studio .lang-btn:active:not(.active-glow) { background: var(--primary-light-active) !important; }
.visual-studio .image-showcase { padding: 0; background: transparent !important; }
.visual-studio .card-image {
  aspect-ratio: auto;
  height: auto;
  border: 0;
  border-radius: 20px;
  box-shadow: none;
  background: transparent;
}
.visual-studio .card-image img {
  display: block;
  width: 100%;
  height: auto;
  background: transparent;
}
.feature-card img { object-fit: contain; }
.feature-card p { line-height: 1.8; }
.footer-social-block .social-links a { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
.footer-social-block .social-links { gap: 4px; flex-wrap: wrap; }
.footer-copy { color: var(--primary-dark); }

/* Blog surfaces also share the palette; article content remains untouched. */
body.page-blog { background: var(--page-bg); }
.blog-archive-card, .blog-sidebar, .blog-toc { background: var(--secondary-light-active); border-color: var(--secondary-hover); }
.blog-post-header h1, .blog-category-header h1,
.blog-archive-body h3 a { color: var(--primary-dark); }
.blog-prose :is(h2, h3, h4) { color: var(--ink); }
.blog-archive-body h3 a:hover, .blog-archive-more a:hover { color: var(--primary); }
.blog-archive-tag:hover { background: var(--primary-hover); }

/* The standalone introduction page uses the same tokens and form states. */
body.io-page { background: var(--page-bg); }
.io-page .fonto-isolated {
  background: radial-gradient(ellipse at 50% 0%, var(--primary-light), transparent 36%), var(--page-bg);
}
.io-page .fonto-isolated .hero { background: transparent; }
.io-page .headline, .io-page .headline span,
.io-page .block h2, .io-page .collab-title { color: var(--primary-dark); }
.io-page .block, .io-page .block:nth-child(2n),
.io-page .feature, .io-page .stat { background: var(--secondary-light-active); border-color: var(--secondary-hover); }
.io-page .features { background: transparent !important; }
.io-page .io-back, .io-page .links a { min-height: 44px; }
.io-page .io-back { background: var(--primary-light); color: var(--primary-dark); }
.io-page .fonto-isolated .io-cta .links a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 12px 22px;
  border: 1px solid var(--primary);
  background: var(--primary-light);
  color: var(--primary-dark);
  line-height: 1.5;
  transition: background-color 160ms ease, border-color 160ms ease;
}
.io-page .fonto-isolated .io-cta .links a:hover { background: var(--primary-light-hover); border-color: var(--primary); }
.io-page .fonto-isolated .io-cta .links a:active { background: var(--primary-light-active); }

.hub h1, .hub-card strong { color: var(--primary-dark); }
.hub-card { background: var(--secondary-light-active); border-color: var(--secondary-hover); }
.hub-card:hover { border-color: var(--primary); }

@media (min-width: 901px) {
  .hero-inner { max-width: 1120px; gap: 64px; }
  .hero-scroll-hint { display: none; }
  .store-link { flex: 1 1 140px; }
}
@media (max-width: 900px) {
  body:not(.io-page) main > section.hero { padding-block: 116px 40px; }
  .hero-inner { gap: 24px; }
  .hero-art img { max-height: 360px; }
  .hero-copy > p { margin-inline: auto; }
  .visual-studio .studio-dashboard { padding: 20px; }
}
@media (max-width: 520px) {
  .hero-art img { max-height: 280px; }
  .hero h1 { font-size: clamp(30px, 8vw, 40px); }
  .hero-copy > p { font-size: 15px; }
  .store-link { flex: 1 1 100%; min-height: 60px; }
  .library, .visual-studio { padding-block: 40px; }
  .visual-studio .studio-dashboard { padding: 12px; }
  .visual-studio .lang-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .visual-studio .lang-btn { font-size: 13px; padding: 10px 8px; }
  .site-footer { padding-block: 32px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .store-link, .visual-studio .lang-btn, .feature-card { transition: none; }
  .visual-studio .card-image { animation: none; }
  .store-link:hover, .visual-studio .lang-btn:hover { transform: none; }
}

/* Full-width section backgrounds with bounded, responsive content inside. */
.page-home main {
  max-width: none;
  width: 100%;
  padding-inline: 0;
}
.page-home main > section {
  width: 100%;
  max-width: none;
  margin-inline: 0;
  box-sizing: border-box;
  padding-inline: clamp(16px, 4vw, 56px);
}
.page-home main > section.hero {
  width: 100%;
  max-width: none;
  margin-inline: 0;
}
.page-home .hero-inner,
.page-home .studio-dashboard,
.page-home .feature-grid,
.page-home .carousel-wrap { margin-inline: auto; max-width: 1200px; width: 100%; }
.page-home .gallery-tags { max-width: 1000px; gap: 8px; }
.page-home .library { background: var(--page-bg); }
.page-home .visual-studio {
  background: linear-gradient(180deg, var(--page-bg), var(--secondary), var(--page-bg));
}
.page-home .features { background: var(--page-bg) !important; }
.hero-copy > p, .footer-address-line,
.blog-archive-excerpt, .blog-archive-meta, .server-blog-eyebrow { color: var(--muted); }
.page-blog-server .server-blog-heading h1,
.page-blog-server .server-blog-sidebar h2 { color: var(--primary-dark); }
.site-header [data-i18n="nav.download"], .site-header a[href$="/download/"] { display: none; }
@media (max-width: 520px) {
  .gallery-tags span { font-size: 12px; padding: 7px 12px; }
}

/* Footer follows the guide: warm surface, neutral details, red accents. */
.site-footer {
  background: var(--secondary-light-active) !important;
  border-style: solid;
  border-width: 2px 0 0;
  border-color: var(--secondary);
  border-top-color: var(--secondary) !important;
  padding: 40px clamp(20px, 5vw, 64px);
}
.site-footer .footer-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, auto);
  grid-template-rows: auto minmax(24px, auto) minmax(44px, auto);
  margin-inline: auto;
  max-width: 1200px;
  align-items: start;
  gap: 28px 48px;
}
.site-footer .footer-legal,
.site-footer .footer-social-block {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: 1 / span 3;
  min-width: 0;
  row-gap: 12px;
}
.site-footer .footer-legal { grid-column: 1; }
.site-footer .footer-social-block { grid-column: 2; }
.site-footer .footer-inner p { margin: 0; }
.site-footer .footer-copy { align-self: center; }
.site-footer .footer-address-line .icon-pin { width: 18px; height: 18px; flex: none; }
.site-footer .footer-address-label,
.site-footer .footer-contact-heading {
  margin: 0 0 12px;
  font-size: 16px;
  line-height: 1.5;
  font-weight: 700;
  color: var(--ink);
}
.site-footer .footer-social-lead {
  margin: 0 0 12px;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.7;
}
.site-footer .footer-copy { color: var(--primary-dark); margin: 0; font-size: 13px; line-height: 1.6; }
.site-footer .footer-social-block { text-align: start; }
.site-footer .social-links { justify-content: start; gap: 8px; }
.site-footer .social-links a { color: var(--primary-dark); }
.site-footer .social-links a:hover { color: var(--primary); }
@media (max-width: 850px) {
  .site-footer .footer-inner { grid-template-columns: 1fr; grid-template-rows: none; gap: 28px; text-align: center; }
  .site-footer .footer-legal, .site-footer .footer-social-block { grid-column: 1; grid-row: auto; grid-template-rows: auto auto auto; justify-items: center; }
  .site-footer .footer-social-block { grid-row: 1; }
  .site-footer .footer-legal { grid-row: 2; }
  .site-footer .footer-address-line { justify-content: center; }
  .site-footer .footer-social-block { text-align: center; }
  .site-footer .social-links { justify-content: center; }
}

/* IO text hierarchy: neutral labels and distinct goal cards. */
.io-page .fonto-isolated .brand-sub,
.io-page .lang-toggle .lang-toggle__code,
.io-page .fonto-isolated .io-cta .cta span { color: var(--muted); }
.io-page .fonto-isolated .block h2 > span:not(.icon),
.io-page .collab-title > span:not(.icon),
.io-page .io-back > span,
.io-page .fonto-isolated .stat strong,
.io-page .fonto-isolated .stat > span,
.io-page .fonto-isolated .io-cta .links a,
.io-page .io-form button,
.io-page .io-form button:hover { color: var(--ink); }
.io-page .fonto-isolated .stat {
  background: radial-gradient(circle 150px at 50% 50%, rgba(234, 123, 123, .28) 0%, rgba(234, 123, 123, .12) 40%, transparent 70%), var(--secondary-light-active);
  border-color: var(--secondary-hover);
}
.io-page .fonto-isolated .stat .mouse { display: none; }
.io-page .fonto-isolated .io-cta .links a { font-weight: 400; }
html[dir="rtl"] .io-page .fonto-isolated .io-cta .cta {
  direction: rtl;
  text-align: right;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0 .25em;
}

/* Use the same language font for navigation, editorial and introduction UI. */
body.io-page, .io-page .fonto-isolated .brand-title,
.io-page .fonto-isolated h1, .io-page .fonto-isolated h2,
.io-page .fonto-isolated h3,
.io-page :is(button, input, textarea, select, .io-back) {
  font-family: var(--font-site);
}
.lang-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  line-height: 1.5;
}
.lang-toggle__icon { display: block; width: 16px; height: 16px; flex: none; }
.lang-toggle__code { display: block; line-height: 1.5; }

/* English store names need room beside their fixed-size brand icons. */
html[lang="en"] .hero #download {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  width: 100%;
  max-width: 420px;
  gap: 12px;
}
html[lang="en"] .hero #download .store-link {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  min-height: 76px;
  gap: 15px;
  text-align: left;
}
html[lang="en"] .hero #download .store-link > span { min-width: 0; }
html[lang="en"] .hero #download .store-link strong { white-space: nowrap; }
@media (max-width: 900px) {
  html[lang="en"] .hero #download { margin-inline: auto; }
}

/* Keep capability cards static and soften the introduction-to-content surface. */
.io-page .fonto-isolated .feature .mouse { display: none; }
.io-page .fonto-isolated .hero {
  background: linear-gradient(to bottom, transparent calc(100% - 100px), var(--page-bg));
  border-bottom: 0;
}
.io-page .fonto-isolated .grid {
  background: linear-gradient(to bottom, var(--page-bg), var(--secondary-light-active) 140px);
}
.io-page .fonto-isolated .grid > .block:nth-child(-n + 2) { background: transparent; }

/* Shared desktop navigation spacing and home hero alignment. */
.site-header .desktop-nav { column-gap: 24px; }
.page-home .hero-inner { width: 100%; max-width: 1150px; gap: 0; }
.page-home .hero-art { justify-content: flex-end; }

/* Scale home typography on the existing two-column desktop breakpoint. */
@media (min-width: 901px) {
  .page-home #hero-title { font-size: clamp(44px, 4.2vw, 64px); }
  .page-home .hero-copy > p { font-size: 20px; }
}

/* Desktop gallery height keeps the original artwork proportions. */
@media (min-width: 901px) {
  .page-home #library .carousel-wrap {
    --library-slide-width: calc(340px * 732 / 1280);
    height: 340px;
  }
  .page-home #library .carousel { height: 340px; padding-bottom: 0; }
  .page-home #library .carousel img { height: 340px; }
}
