/* Shared appearance, layout and type for the PXA website and storefront. */
:root {
  -webkit-text-size-adjust: 100%; text-size-adjust: 100%;
  --page-max: 1200px;
  --page-gutter: 32px;
  --ui-radius: 12px;
  --ui-control-radius: 8px;
  --ui-line: var(--theme-border, #2a3942);
  --ui-surface: var(--theme-surface, #101920);
  --ui-muted: var(--theme-muted, #9cafb7);
  --ui-shadow: 0 8px 24px -16px var(--theme-shadow-color, #0005);
}
:root:not([data-theme="dark"]) {
  color-scheme: light;
  --theme-page: #f8faf7;
  --theme-surface: #ffffff;
  --theme-subtle: #f0f4ed;
  --theme-inset: #f4f7f1;
  --theme-hover: #e8f0e3;
  --theme-text: #15231a;
  --theme-muted: #445747;
  --theme-faint: #647565;
  --theme-border: #d7e1d3;
  --theme-edge: #afc2aa;
  --theme-accent-ink: #356d16;
  --theme-link: #17666d;
  --theme-warning: #8a5611;
  --theme-danger: #b03539;
  --theme-shadow-color: #1d3c2414;
  --theme-surface-rgb: 255,255,255;
  --theme-border-rgb: 132,157,122;
  --theme-text-rgb: 21,35,26;
  --theme-muted-rgb: 82,100,82;
}
:root[data-theme="dark"] { color-scheme: dark; }
:root:not([data-theme="dark"]) :is(input,select,textarea) { color-scheme: light; }
:root[data-theme="dark"] :is(input,select,textarea) { color-scheme: dark; }
body { font-size: 16px; line-height: 1.75; }

/* The header, page sections and footer share the same outer edges. */
.wrap,.shell {
  width: min(var(--page-max), calc(100% - 2 * var(--page-gutter)));
  max-width: var(--page-max); margin-inline: auto; padding-inline: 0;
}
.site-header,.topbar { height: auto; min-height: 88px; padding: 12px 0; }
.site-header .header-inner,.topbar .topbar-inner {
  width: min(var(--page-max), calc(100% - 2 * var(--page-gutter)));
  max-width: var(--page-max); min-height: 64px; height: auto; margin-inline: auto;
  padding: 8px 18px; gap: 16px; border: 1px solid var(--ui-line);
  border-radius: var(--ui-radius); box-shadow: var(--ui-shadow);
}
.site-header nav { gap: 4px; }
.site-header nav > a,.topbar nav > a,.topbar .link-button { font-size: 14px; line-height: 1.5; }
.site-header nav > a { padding: 9px 10px; border-radius: var(--ui-control-radius); }
.brand-label { font-size: 11px; line-height: 1.5; letter-spacing: 1px; max-width: 144px; }
.brand .brand-section { font-size: 12px; line-height: 1.5; }
.pxa-brand-logo { display: block; width: 120px; height: 40px; flex: 0 0 120px; }
.pxa-brand-logo > img { width: 100%; height: 100%; object-fit: contain; }
.pxa-brand-logo .logo-on-dark { display: block; }
.pxa-brand-logo .logo-on-light { display: none; }
:root:not([data-theme="dark"]) .pxa-brand-logo .logo-on-dark { display: none; }
:root:not([data-theme="dark"]) .pxa-brand-logo .logo-on-light { display: block; }

.theme-control {
  display: inline-flex; align-items: center; gap: 4px; flex: 0 0 auto;
  margin: 0; padding: 0 6px; min-height: 40px; border-radius: var(--ui-control-radius);
  border: 1px solid var(--ui-line); background: var(--ui-surface);
  color: var(--theme-text, #d4e1e5);
}
.theme-control[hidden] { display: none; }
.theme-control svg { width: 16px; height: 16px; }
.theme-control select {
  width: 68px; min-width: 0; min-height: 38px; margin: 0; padding: 4px 2px;
  border: 0; border-radius: 4px; background: transparent; color: inherit;
  box-shadow: none; font: inherit; font-size: 13px; line-height: 1.4; cursor: pointer;
}
.theme-control:focus-within { outline: 2px solid var(--theme-link, #76d9e6); outline-offset: 3px; }
.theme-control select:focus-visible { outline: none; }
:root:not([data-theme="dark"]) :focus-visible { outline: 2px solid var(--theme-link); outline-offset: 3px; }

/* A small type scale keeps descriptions readable without competing with titles. */
:is(.hero-desc,.create-description,.discovery-hero > div > p:not(.eyebrow),.flash-intro > p:not(.eyebrow),.section-heading > p) { font-size: 17px; line-height: 1.85; }
:is(.button,.button-primary,.button-quiet,.quiet-button,.filter-reset) { font-size: 15px; line-height: 1.5; min-height: 44px; border-radius: var(--ui-control-radius); }
:is(.eyebrow,.hero-kicker,.composer-hint,.terminal-caption,.screen-label) { font-size: 12px; line-height: 1.6; }
:is(.composer-output,.compact .composer-output) { font-size: 15px; line-height: 1.9; }
:is(.composer-feedback,.composer-bottom > span,.composer-custom,.hero-under,.composer-draft) { font-size: 13px; line-height: 1.7; }
.composer-tab { font-size: 14px; min-height: 44px; }
:is(.composer-custom textarea,.composer-language select,.form-stack input,.form-stack select,.form-stack textarea,#search-input) { font-size: 16px; line-height: 1.6; border-radius: var(--ui-control-radius); }
:is(.prose,.doc) { font-size: 17px; line-height: 1.9; }
:is(.prose code,.doc code,.code-block pre code) { font-size: 14px; line-height: 1.8; }
:is(.nav-group a,.doc-toc a,.docs-home,.screenshot-grid p,.journey-grid p,.field-hint,.mode-card span span,.connection-guide,.flash-trust) { font-size: 14px; line-height: 1.75; }
:is(.breadcrumb,.doc-meta,.doc-sources,.code-toolbar,.doc-context,.release-line,.card-meta,.app-meta,.app-card .meta,.app-card small) { font-size: 13px; line-height: 1.7; }
:is(.app-summary,.discovery-shortcuts a,.catalog-chip,.catalog-tab) { font-size: 15px; line-height: 1.7; }
:is(.discovery-shortcuts span,.catalog-head > div > p,.app-badges span) { font-size: 13px; line-height: 1.7; }
:root .app-grid .app-card.app-card--visual :is(h2,h3) { font-size: 18px; line-height: 1.5; }
:root .app-grid .app-card.app-card--visual p { font-size: 15px; line-height: 1.75; }
:is(.workspace-title,.workspace-files,.workspace-screen > p,.workspace-terminal > div) { font-size: 12px; line-height: 1.6; }
.workspace-terminal code { font-size: 13px; line-height: 1.9; }
.workspace-files > * { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Consistent borders, spacing and restrained shadows. */
.wrap.section { padding-block: 64px; }
.create-hero { padding-block: 40px 56px; gap: 48px; align-items: start; }
.create-copy h1 { font-size: clamp(40px,4.8vw,60px); line-height: 1.22; letter-spacing: -1.5px; }
.section-heading { margin-bottom: 28px; gap: 24px; }
.discovery-hero > div > p:not(.eyebrow) { max-width: none; text-wrap: pretty; }
.section-heading h2 { font-size: clamp(26px,3vw,36px); line-height: 1.35; margin-block: 8px 0; }
.journey-grid,.screenshot-grid { gap: 24px; }
.journey-grid article,.about-panel,.app-card.app-card--visual,.prompt-composer,.dev-workspace,.flash-panel {
  border: 1px solid var(--ui-line); border-radius: var(--ui-radius); box-shadow: var(--ui-shadow);
}
.journey-grid article { padding: 28px; }
.journey-grid h3 { margin-block: 14px 10px; font-size: 20px; line-height: 1.5; }
.journey-grid p { margin-block: 0 20px; }
.dev-workspace,.dev-workspace:hover { transform: none; }
.screenshot-grid figure { margin: 0; overflow: hidden; border: 1px solid var(--ui-line); border-radius: var(--ui-radius); background: var(--ui-surface); }
.screenshot-grid .screenshot-stage { border: 0; border-bottom: 1px solid var(--ui-line); border-radius: 0; }
.screenshot-grid figcaption { padding: 24px; }
.screenshot-grid figcaption h3 { margin-block: 10px; font-size: 20px; line-height: 1.5; }
:root:not([data-theme="dark"]) :is(.button.primary,.button-primary,.copy-prompt.is-copied) { color: #142008; }
:root:not([data-theme="dark"]) .glass-material { background: rgba(255,255,255,.95) !important; }
:root .catalog-head { gap: 24px; align-items: end; }
:root .catalog-filter { gap: 12px; grid-template-columns: minmax(160px,1fr) 128px 128px auto; }
:root .catalog-filter :is(input,select) { width: 100%; min-width: 0; min-height: 44px; height: 44px; padding: 10px 12px; font-size: 15px; line-height: 1.5; border-radius: var(--ui-control-radius); }
:root .catalog-filter input { font-size: 16px; }
:root .catalog-filter--library { grid-template-columns: minmax(0,1fr) 160px auto; }
:root .catalog-filter .button { min-height: 44px; font-size: 15px; padding-inline: 18px; }
:root .catalog-chip,:root .catalog-tab { min-height: 40px; padding: 8px 12px; font-size: 14px; }
.doc-layout { max-width: var(--page-max); width: calc(100% - 2 * var(--page-gutter)); margin-inline: auto; padding-inline: 0; grid-template-columns: 210px minmax(0,1fr) 180px; gap: 32px; }

/* Framed components own their content insets, independently of page gutters. */
.device-banner.wrap {
  padding: 40px; gap: 40px; margin-block: 12px 0;
  border: 1px solid var(--ui-line); border-radius: var(--ui-radius); box-shadow: var(--ui-shadow);
}
.device-banner p:not(.eyebrow),.developer-entry p:not(.eyebrow) { font-size: 16px; line-height: 1.8; }
.device-banner .text-link { font-size: 14px; }
.device-list { gap: 8px; }
.device-list span { padding: 16px 18px; border: 1px solid var(--ui-line); border-radius: var(--ui-control-radius); font-size: 14px; }
.device-list b { font-size: 11px; }
.developer-links { display: grid; gap: 12px; }
.developer-links a { padding: 20px 24px; gap: 8px 16px; border: 1px solid var(--ui-line); border-radius: var(--ui-radius); }
.developer-links span { font-size: 12px; line-height: 1.6; }
.developer-links strong { font-size: 18px; line-height: 1.5; }
.section-band { margin-top: 32px; padding: 28px; border: 1px solid var(--ui-line); border-radius: var(--ui-radius); background: var(--ui-surface); box-shadow: var(--ui-shadow); }
.section-band > .section-title { align-items: flex-start; gap: 16px; flex-wrap: wrap; margin: 0 0 20px; }
.section-band > .section-title h2 { margin: 0; font-size: 22px; line-height: 1.4; }
.section-band > .section-title .eyebrow { margin: 0 0 6px; font-size: 12px; }
.section-band > .section-title > span { font-size: 13px; line-height: 1.7; }
.store-release-summary,.version-history,.store-description,.store-compatibility { width: 100%; max-width: none; }
.store-release-facts { gap: 1px; margin: 0; border: 1px solid var(--ui-line); border-radius: var(--ui-control-radius); overflow: hidden; background: var(--ui-line); }
.store-release-facts > div { padding: 16px 18px; border: 0; background: var(--ui-surface); }
.store-release-facts > div:last-child:nth-child(odd) { grid-column: 1 / -1; }
.store-release-facts dt { margin-bottom: 5px; font-size: 13px; line-height: 1.6; }
.store-release-facts dd { font-size: 15px; line-height: 1.6; }
.store-release-facts code { font-size: 13px; }
.store-variant-downloads { margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--ui-line); }
.store-variant-downloads h3 { margin: 0; font-size: 17px; line-height: 1.5; }
.store-variant-actions { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,220px),1fr)); gap: 12px; margin-top: 12px; }
.store-variant-actions > .button { width: 100%; min-height: 88px; padding: 16px 18px; flex-direction: column; align-items: flex-start; justify-content: center; gap: 6px; white-space: normal; text-align: left; border-radius: var(--ui-control-radius); }
.variant-platform { font-size: 16px; line-height: 1.5; }
.variant-size { color: var(--ui-muted); font-size: 13px; font-weight: 400; line-height: 1.7; }
.store-release-summary > .muted-inline { margin: 16px 0 0; font-size: 14px; line-height: 1.8; }
.section-band .release-notes { margin-top: 24px; padding: 20px; border-left: 3px solid var(--theme-accent-ink,#b6f568); border-radius: var(--ui-control-radius); }
.release-notes h3 { margin-bottom: 8px; font-size: 17px; }
.release-notes p { font-size: 15px; line-height: 1.8; }
.section-band .version-list { border: 0; border-radius: 0; background: transparent; }
.version-row { padding: 20px 0; gap: 20px; align-items: start; }
.version-row:first-child { padding-top: 0; }
.version-row:last-child { padding-bottom: 0; }
.version-row h3 { font-size: 17px; line-height: 1.5; }
.version-row p { font-size: 13px; line-height: 1.8; }
.version-row .version-note { margin-top: 10px; font-size: 15px; line-height: 1.8; }
.store-description > p { margin: 0 0 20px; font-size: 16px; line-height: 1.9; }
.store-description > p:last-child { margin-bottom: 0; }
.section-band .empty-state { margin: 0; padding: 24px 12px; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.section-band .empty-state p { margin: 0; font-size: 14px; line-height: 1.7; }
.section-band .table-wrap { margin: 0; border: 1px solid var(--ui-line); border-radius: var(--ui-control-radius); overflow-x: auto; }
.section-band .table-wrap table { margin: 0; border: 0; }
.section-band .table-wrap :is(th,td) { padding: 14px 16px; font-size: 14px; line-height: 1.65; }

/* Company information and the shared footer. */
body.home-page > .footer,body.docs-page > .footer {
  width: min(var(--page-max),calc(100% - 2 * var(--page-gutter))); max-width: var(--page-max);
  margin-inline: auto; padding: 32px 0; display: grid; grid-template-columns: minmax(240px,1fr) auto;
  gap: 12px 32px; border-top: 1px solid var(--ui-line);
}
:is(body.home-page,body.docs-page) > .footer > .brand { grid-column: 1; grid-row: 1; margin: 0; }
:is(body.home-page,body.docs-page) > .footer > p { display: block; grid-column: 1; grid-row: 2; margin: 0; font-size: 14px; color: var(--ui-muted); }
:is(body.home-page,body.docs-page) > .footer > div { grid-column: 2; grid-row: 1; display: flex; justify-content: end; align-items: center; gap: 20px; flex-wrap: wrap; }
:is(body.home-page,body.docs-page) > .footer > small { grid-column: 1; grid-row: 3; width: auto; font-size: 13px; }
:is(body.home-page,body.docs-page) > .footer > .effects-toggle { grid-column: 2; grid-row: 3; justify-self: end; }
.footer :is(a,small,p) { line-height: 1.7; }
:is(body.home-page,body.docs-page) > .footer > div a,.footer .company-credit { font-size: 14px; }
.store-footer { display: grid; grid-template-columns: minmax(280px,1fr) auto; gap: 20px 32px; align-items: start; padding-block: 0; }
.store-footer > div { grid-column: 1; grid-row: 1 / span 2; }
.store-footer nav { grid-column: 2; grid-row: 1; display: flex; gap: 20px; flex-wrap: wrap; justify-content: end; }
.store-footer nav a { font-size: 14px; }
.store-footer > .effects-toggle { grid-column: 2; grid-row: 2; justify-self: end; }
.store-footer p { margin-block: 12px 6px; font-size: 14px; color: var(--ui-muted); }
.company-credit { display: inline-block; color: var(--ui-muted); }
.about-page { padding-block: 48px 72px; }
.about-intro { padding-bottom: 32px; margin-bottom: 32px; border-bottom: 1px solid var(--ui-line); }
.about-intro h1 { margin-block: 12px 20px; font-size: clamp(36px,4.5vw,52px); line-height: 1.25; letter-spacing: -1px; }
.page-lead { max-width: 46rem; margin: 0; font-size: 18px; line-height: 1.85; color: var(--ui-muted); }
.about-grid { display: grid; grid-template-columns: minmax(0,1.5fr) minmax(0,1fr); gap: 24px; }
.about-panel { min-width: 0; padding: 32px; background: var(--ui-surface); }
.about-panel h2 { margin-block: 0 20px; font-size: 26px; line-height: 1.5; text-wrap: balance; }
.about-panel p { margin-block: 0 20px; }
.about-company > .button { margin-top: 8px; }
.company-details { margin: 0; }
.company-details > div { display: grid; grid-template-columns: 48px minmax(0,1fr); gap: 16px; padding-block: 16px; border-bottom: 1px solid var(--ui-line); }
.company-details > div:first-child { padding-top: 0; }
.company-details dt { color: var(--ui-muted); }
.company-details dd { margin: 0; overflow-wrap: anywhere; }
.company-details a { color: var(--theme-link, #76d9e6); }
.about-panel .about-note { margin: 20px 0 0; font-size: 14px; color: var(--ui-muted); }
.about-ecosystem { margin-top: 64px; }

@media (max-width: 1100px) {
  .brand-label { display: none; }
  .site-header nav { display: none; }
  .header-inner .menu-toggle { display: inline-flex; align-items: center; justify-content: center; margin-left: 0; min-width: 44px; min-height: 44px; border-radius: var(--ui-control-radius); }
  .header-inner .theme-control { margin-left: auto; }
  .header-inner .search-open { margin-left: 0; }
  .nav-open .site-header nav { display: flex; position: absolute; top: 76px; left: 0; right: 0; margin: 0; padding: 12px; flex-direction: column; align-items: stretch; gap: 4px; background: var(--ui-surface); border: 1px solid var(--ui-line); border-radius: var(--ui-radius); box-shadow: var(--ui-shadow); }

  .doc-layout { grid-template-columns: 200px minmax(0,1fr); gap: 24px; }
  .doc-toc { display: none; }
}
@media (max-width: 960px) {
  :root .catalog-head { grid-template-columns: 1fr; }
  .about-grid { grid-template-columns: 1fr; }
}
@media (max-width: 950px) {
  .header-inner .theme-control { margin-left: auto; }
  .header-inner :is(.search-open,.menu-toggle) { margin-left: 0; }
}
@media (max-width: 760px) {
  :root { --page-gutter: 20px; }
  .site-header,.topbar { min-height: 80px; padding-block: 8px; }
  .site-header .header-inner,.topbar .topbar-inner { min-height: 64px; gap: 6px; padding: 8px 12px; }
  .pxa-brand-logo { width: 108px; height: 36px; flex-basis: 108px; }
  .theme-control { padding: 0; min-height: 44px; }
  .theme-control svg { display: none; }
  .theme-control select { width: 56px; min-height: 42px; padding-inline: 4px; font-size: 12px; }
  .topbar .theme-control { margin-left: auto; order: 1; }
  .topbar nav { order: 2; }
  .brand .brand-section { font-size: 11px; }
  .create-hero { gap: 32px; padding-block: 28px 40px; }
  .wrap.section { padding-block: 44px; }
  .journey-grid,.screenshot-grid { gap: 20px; }
  .journey-grid article,.screenshot-grid figcaption { padding: 24px; }
  :is(.hero-desc,.create-description,.discovery-hero > div > p:not(.eyebrow),.flash-intro > p:not(.eyebrow),.prose,.doc) { font-size: 16px; line-height: 1.85; }
  :is(.prose code,.doc code,.code-block pre code,.workspace-terminal code) { font-size: 13px; }
  :is(.workspace-title,.workspace-files,.workspace-screen > p,.workspace-terminal > div) { font-size: 11px; }
  .doc-layout { display: block; }
  body.home-page > .footer,body.docs-page > .footer,.store-footer { grid-template-columns: 1fr; gap: 16px; }
  :is(body.home-page,body.docs-page) > .footer > .brand,:is(body.home-page,body.docs-page) > .footer > p,:is(body.home-page,body.docs-page) > .footer > div,:is(body.home-page,body.docs-page) > .footer > small,:is(body.home-page,body.docs-page) > .footer > .effects-toggle,
  .store-footer > div,.store-footer nav,.store-footer > .effects-toggle { grid-column: 1; grid-row: auto; justify-self: start; justify-content: start; }
  :is(body.home-page,body.docs-page) > .footer > div,.store-footer nav { gap: 12px 20px; }
  .device-banner.wrap { padding: 24px; gap: 24px; }
  .device-list span { padding: 14px 16px; }
  .developer-links a { padding: 18px 20px; }
  .section-band { padding: 20px; margin-top: 24px; }
  .section-band > .section-title { margin-bottom: 16px; }
  .section-band > .section-title h2 { font-size: 20px; }
  .store-release-facts > div { padding: 14px 16px; }
  .section-band .release-notes { padding: 16px; }
  .about-page { padding-block: 32px 48px; }
  .about-intro { padding-bottom: 24px; margin-bottom: 24px; }
  .page-lead { font-size: 17px; }
  .about-panel { padding: 24px; }
  .about-panel h2 { font-size: 24px; }
  .about-ecosystem { margin-top: 44px; }
}
@media (max-width: 600px) {
  :root { --page-gutter: 16px; }
  :root .catalog-filter { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
  :root .catalog-filter :is(input,.button) { grid-column: 1 / -1; }
  :root .catalog-filter--library .button { grid-column: auto; }
}
@media (max-width: 380px) {
  .pxa-brand-logo { width: 96px; height: 32px; flex-basis: 96px; }
  .site-header .header-inner { gap: 3px; padding-inline: 8px; }
}
@media print {
  .theme-control { display: none !important; }
  .about-page { width: 100%; }
}
