/* Control owner: shared geometry, roles, and states. Loaded after page adaptations.
   Source interfaces marked data-design-evidence retain their own design language. */
body.pf-system, body[data-portfolio='home'] {
  --pf-interactive: var(--project-color);
  --pf-interactive-hover: var(--project-hover);
  --pf-interactive-ink: var(--project-on-color);
  --pf-control-surface: var(--pf-surface, #fff);
  --pf-control-ink: var(--pf-ink, #252b28);
  --pf-control-selected: var(--project-tint);
  --pf-control-selected-line: var(--project-text, var(--project-color));
  --pf-control-border: #9aa59e;
  --pf-control-hover: var(--project-soft);
  --pf-control-focus: var(--project-text, var(--project-color));
}
body.pf-system[data-ds-tone='dark'], body.pf-system [data-ds-tone='dark'], body[data-portfolio='home'] {
  --pf-control-surface: var(--pf-surface, #15171a);
  --pf-control-ink: #f0efec;
  --pf-control-selected: color-mix(in srgb, var(--project-color) 12%, #15171a);
  --pf-control-selected-line: var(--project-bright);
  --pf-control-border: #626973;
  --pf-control-hover: color-mix(in srgb, var(--project-color) 18%, #15171a);
  --pf-control-focus: var(--project-focus, var(--project-bright));
}
body.pf-system[data-portfolio='pawsitive'] { --pf-control-selected-line: #8f5233; --pf-control-focus: #8f5233; }
body.pf-system.pf-unified[data-portfolio] :is(button,[role='button'],[data-pf-control]):not(:where([data-design-evidence],[data-design-evidence] *,.zoom,.image-button,.pf-play,.pf-reading-toggle,.pf-site-link)) {
  box-sizing: border-box;
  min-height: var(--pf-control-height) !important; min-width: var(--pf-control-height);
  padding: var(--pf-control-padding) !important;
  border: 1px solid var(--pf-control-border) !important;
  border-radius: var(--pf-control-radius) !important;
  background: var(--pf-control-surface) !important; color: var(--pf-control-ink) !important;
  font: 500 var(--pf-type-control)/1.5 var(--pf-font) !important;
  text-transform: none !important; letter-spacing: 0 !important;
  box-shadow: none !important; cursor: pointer;
  transition: background-color var(--pf-motion-fast) ease, border-color var(--pf-motion-fast) ease, color var(--pf-motion-fast) ease;
}
body.pf-system.pf-unified[data-portfolio] :is(button,[role='button'],[data-pf-control]):hover:not(:where(:disabled,[aria-disabled='true'],[data-pf-control='text'],[data-design-evidence],[data-design-evidence] *,.zoom,.image-button,.pf-play,.pf-reading-toggle,.pf-site-link)) {
  background: var(--pf-control-hover) !important; border-color: var(--pf-control-selected-line) !important;
}
body.pf-system.pf-unified[data-portfolio] :is(button,[role='button'],[data-pf-control]):is([aria-pressed='true'],[aria-selected='true']):not(:where([data-pf-control='text'],[data-design-evidence],[data-design-evidence] *)) {
  background: var(--pf-control-selected) !important;
  border-color: var(--pf-control-selected-line) !important;
  box-shadow: inset 0 -2px 0 var(--pf-control-selected-line) !important;
}
body.pf-system.pf-unified[data-portfolio] :is(button,[data-pf-control]) :is(span,strong,small,div,svg):not(:where([data-design-evidence],[data-design-evidence] *)) { color: inherit !important; }
/* Primary actions; existing class names are compatibility adapters for dynamic UI. */
body.pf-system.pf-unified[data-portfolio] :is([data-pf-control='primary'],.hero-link,.primary-link,.experience-button,.button.dark,button.gx-primary,button.model-load):not(:where([data-design-evidence],[data-design-evidence] *)) {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--pf-space-1);
  min-height: var(--pf-control-height) !important; padding: var(--pf-control-padding) !important;
  border: 1px solid var(--project-color) !important; border-radius: var(--pf-control-radius) !important;
  background: var(--project-color) !important; color: var(--project-on-color) !important;
  font: 500 var(--pf-type-control)/1.5 var(--pf-font) !important;
  text-decoration: none !important; box-shadow: none !important;
}
body.pf-system.pf-unified[data-portfolio] :is([data-pf-control='primary'],.hero-link,.primary-link,.experience-button,.button.dark,button.gx-primary,button.model-load):hover:not(:where(:disabled,[aria-disabled='true'],[data-design-evidence],[data-design-evidence] *)) {
  background: var(--project-hover) !important; border-color: var(--project-hover) !important;
}
body.pf-system.pf-unified[data-portfolio] :is([data-pf-control='secondary'],[data-pf-action='secondary']) { background: transparent !important; }
body.pf-system.pf-unified[data-portfolio] [data-pf-control='text'] {
  display: inline-flex; align-items: center; gap: 8px;
  padding-inline: 0 !important; background: transparent !important; border-color: transparent !important;
  box-shadow: none !important; text-underline-offset: 4px;
}
body.pf-system.pf-unified[data-portfolio] [data-pf-control='text']:is(:hover,[aria-pressed='true'],[aria-selected='true']) { text-decoration: underline; }
body.pf-system.pf-unified[data-portfolio] :is([data-pf-control='icon'],.screen-arrow,.motion-icon-button,.model-reset,#dialog-close) {
  display: inline-flex; align-items: center; justify-content: center;
  width: var(--pf-control-height); height: var(--pf-control-height); padding: 10px !important; flex: none;
}
body.pf-system.pf-unified[data-portfolio] [data-pf-control='icon'] svg { width: var(--pf-control-icon); height: var(--pf-control-icon); }
/* Large choice cards: ratio icon, ratio, and resolution remain on one row where they fit. */
body.pf-system.pf-unified[data-portfolio] .viewport-options { display: flex !important; flex-wrap: wrap; gap: var(--pf-space-2); }
body.pf-system.pf-unified[data-portfolio] [data-pf-control='choice'] {
  display: flex !important; flex-direction: row !important; align-items: center !important;
  justify-content: flex-start; gap: var(--pf-space-2) !important; text-align: left !important; max-width: 100%;
}
body.pf-system.pf-unified[data-portfolio] [data-pf-control='choice'] :is(strong,span) { white-space: nowrap; font: 500 var(--pf-type-control)/1.5 var(--pf-font) !important; }
body.pf-system.pf-unified[data-portfolio] [data-pf-control='choice'] > span { font-weight: 400 !important; }
body.pf-system.pf-unified[data-portfolio] .viewport-options button small { display: none !important; }
body.pf-system.pf-unified[data-portfolio] .viewport-options .ratio-icon {
  display: block; flex: 0 0 auto; width: 60px; height: 34px; margin: 0;
  border: 2px solid currentColor !important; border-bottom-width: 4px !important; background: transparent !important;
}
body.pf-system.pf-unified[data-portfolio] .viewport-options .ratio-ultra { width: 70px; height: 30px; }
body.pf-system.pf-unified[data-portfolio] .viewport-options .ratio-compact { width: 48px; height: 36px; }
body.pf-system.pf-unified[data-portfolio] [data-pf-control='thumbnail'] { overflow: hidden; text-align: left; padding: 0 !important; }
body.pf-system.pf-unified[data-portfolio] :is(.ui-tabs,.source-hud-tabs) button img { opacity: 1 !important; }
body.pf-system.pf-unified[data-portfolio] :is(.ui-tabs,.source-hud-tabs) button::after { color: inherit !important; }
body.pf-system.pf-unified[data-portfolio] :is(.annotation-trigger,.stage-jump) > span { background: transparent !important; border: 1px solid currentColor !important; color: inherit !important; }
/* States always win, including on primary actions. Disabled controls have no hover response. */
body.pf-system.pf-unified[data-portfolio] :is(button,a,[data-pf-control]):is(:disabled,[aria-disabled='true']):not(:where([data-design-evidence],[data-design-evidence] *)) {
  background: var(--pf-soft) !important; color: var(--pf-muted) !important; border-color: var(--pf-border) !important;
  box-shadow: none !important; opacity: .65 !important; cursor: not-allowed !important; text-decoration: none !important;
}
body.pf-system.pf-unified[data-portfolio] :is(button,a,input,select,textarea,[tabindex]):focus-visible:not(:where([data-design-evidence],[data-design-evidence] *)) {
  outline: var(--pf-focus-width) solid var(--pf-control-focus) !important; outline-offset: 4px;
}
body.pf-system.pf-unified[data-portfolio] [aria-busy='true'] { cursor: progress !important; }
body.pf-system.pf-unified[data-portfolio] input[type='range']:not(:where([data-design-evidence],[data-design-evidence] *)) { accent-color: var(--pf-control-selected-line); min-height: var(--pf-control-height); }
body[data-portfolio='home'] .panel-cta { min-height: var(--pf-control-height); padding: var(--pf-control-padding); font: 500 var(--pf-type-control)/1.5 var(--pf-font); }
@media (max-width: 380px) {
  body.pf-system.pf-unified[data-portfolio] [data-pf-control='choice'] { gap: var(--pf-space-1) !important; }
  body.pf-system.pf-unified[data-portfolio] .viewport-options .ratio-icon { width: 44px; height: 26px; }
  body.pf-system.pf-unified[data-portfolio] .viewport-options .ratio-ultra { width: 50px; height: 22px; }
  body.pf-system.pf-unified[data-portfolio] .viewport-options .ratio-compact { width: 32px; height: 26px; }
}

body.pf-system.pf-unified[data-portfolio] .source-hud-tabs [data-pf-control='thumbnail'] { padding: var(--pf-space-2) !important; }
