/* Shared PushiHub identity; product landing pages keep their own branding. */
@media(min-width:821px) and (max-width:1100px){
  .site-header:has(.mobile-nav) .desktop-nav{display:none}
  .site-header:has(.mobile-nav) .menu-button{display:inline-grid;margin-left:0}
  .site-header:not(.detail-header):has(.mobile-nav).menu-open .mobile-nav{display:flex;flex-wrap:wrap;position:absolute;left:var(--side);right:var(--side);top:calc(var(--header-height) + 6px);gap:16px;padding:18px 22px;opacity:1;pointer-events:auto;transform:none;background:var(--ph-surface);border:1px solid var(--ph-border);border-radius:12px;box-shadow:var(--ph-shadow)}
  .site-header:not(.detail-header):has(.mobile-nav).menu-open .mobile-nav a{color:var(--ph-ink)}
}
.brand .brand-wordmark,.brand-wordmark{width:168px!important;height:56px!important;object-fit:contain!important;max-width:none;border-radius:0!important;flex-shrink:0;background:transparent;box-shadow:none!important}
.footer-brand .brand-wordmark{width:148px!important;height:49px!important}
.site-footer .brand-wordmark{filter:brightness(0) invert(1)}
.brand:has(.brand-wordmark){gap:0!important;min-width:0}
.creator-page header .brand-wordmark{width:155px!important;height:52px!important}
.ph-points{margin:24px 0;padding:25px 28px;border:1px solid #dddaf2;background:#fff;border-radius:20px}
.ph-points-head{display:flex;align-items:center;justify-content:space-between;gap:20px}.ph-points-head .eyebrow{font-size:11px;letter-spacing:2px;color:#7769b8;margin:0 0 7px}
.ph-points h2{font-size:20px;margin:0;color:#292641}.ph-points h2 strong{font-size:34px;color:#6e5adc;margin-left:12px}
.ph-points-rules{font-size:13px;line-height:1.9;color:#575175;margin:17px 0 8px}.ph-points-hint{font-size:12px;line-height:1.9;color:#7d7890;margin:0}
.ph-points [data-points-message]{font-size:12px;color:#6e5adc;min-height:20px}.ph-points button:disabled{opacity:.6;cursor:default}
.ph-ledger{border-top:1px solid #eeecf6;padding-top:16px;margin-top:15px;font-size:13px}.ph-ledger summary{cursor:pointer;color:#5a5288;font-weight:600}
.ph-ledger ul{padding:0;list-style:none;margin:15px 0}.ph-ledger li{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:12px 0;border-bottom:1px solid #f0eef7}
.ph-ledger li small{display:block;color:#8a849c;font-size:11px;margin-top:4px}.ph-ledger li strong{font-size:16px;white-space:nowrap;color:#6657c6}.ph-ledger li strong[data-negative]{color:#9c6175}
.ph-ledger-pager{display:flex;align-items:center;justify-content:center;gap:15px;margin-top:18px;font-size:12px}
@media(max-width:640px){.brand .brand-wordmark,.brand-wordmark{width:135px!important;height:45px!important}.ph-points{padding:22px 18px}.ph-points-head{gap:10px}.ph-points h2{font-size:17px}.ph-points h2 strong{font-size:29px}.ph-points-rules{font-size:12px}.ph-points-head .ua-primary{font-size:12px;padding:10px 13px;white-space:nowrap}.ph-ledger li{align-items:flex-start}}
@media(max-width:640px){.ua-account-page .header-inner{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;padding-block:9px}.ua-account-page .header-inner>.brand{grid-column:1/3;grid-row:1;margin:0}.ua-account-page .header-inner>[data-site-account]{grid-column:3;grid-row:1;justify-self:end}.ua-account-page .detail-header .back-link{grid-row:2;white-space:nowrap;justify-content:center;min-height:34px;padding:7px 10px;font-size:12px;margin:0}}
@media(max-width:640px){.ua-account-page .site-header{height:auto}}

/* PushiHub script identity: white by default, with an explicit saved dark mode. */
:root {
  color-scheme: light;
  --ph-bg: #ffffff;
  --ph-surface: #ffffff;
  --ph-soft: #f8f6f6;
  --ph-tint: #fff0f1;
  --ph-ink: #302a2e;
  --ph-muted: #746a71;
  --ph-border: #e8e1e4;
  --ph-accent: #b33d50;
  --ph-hover: #963345;
  --ph-focus: #d77f91;
  --ph-shadow: 0 8px 28px rgb(56 30 40 / 5%);
  --paper: var(--ph-bg);
  --paper-deep: var(--ph-soft);
  --ink: var(--ph-ink);
  --muted: var(--ph-muted);
  --line: var(--ph-border);
  --blue: var(--ph-accent);
  --coral: #da5a61;
  background: var(--ph-bg);
  color: var(--ph-ink);
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --ph-bg: #181719;
  --ph-surface: #211f22;
  --ph-soft: #2a262b;
  --ph-tint: #3a252e;
  --ph-ink: #f1eaee;
  --ph-muted: #c0b2ba;
  --ph-border: #463b43;
  --ph-accent: #f496a6;
  --ph-hover: #ffb1be;
  --ph-focus: #f496a6;
  --ph-shadow: 0 8px 28px rgb(0 0 0 / 15%);
}
html, body, body.learning-page { background: var(--ph-bg); color: var(--ph-ink); }
.site-header, .ai-controls, .site-footer { background: var(--ph-bg); color: var(--ph-ink); }
.site-header { border-bottom: 1px solid var(--ph-border); box-shadow: var(--ph-shadow); }
.site-footer { border-top: 1px solid var(--ph-border); }
.site-footer .brand-wordmark { filter: none; }
.site-footer :is(p, .footer-record, .footer-site-name) { color: var(--ph-muted); }
.site-footer .footer-record:is(:hover, :focus-visible) { color: var(--ph-accent); }
.site-header .mobile-nav { background: var(--ph-surface); border-color: var(--ph-border); }
.site-header :is(.desktop-nav, .mobile-nav) a { color: var(--ph-muted); }
.site-header:not(.detail-header) .desktop-nav a:is(.is-active, :hover, :focus-visible),
.site-header .mobile-nav a:is(.is-active, :hover, :focus-visible) { color: var(--ph-accent); border-bottom-color: var(--ph-accent); background: transparent; box-shadow: none; }
.site-header.detail-header .desktop-nav a.is-active { background: var(--ph-accent); color: var(--ph-bg); }
.site-header .mobile-nav a { background: var(--ph-surface); }
.eyebrow { color: var(--ph-accent); background: var(--ph-tint); }
:is(.project-card, .style-works-grid .project-card, .home-page .style-works-grid .project-card,
 .related-projects, .related-project-card, .creator-portfolio-hero, .creator-card, .case-download-panel,
 .project-pager, .card, .ua-center-hero, .ua-center-guest, .ua-record, .ph-points, .series-page-info,
 .learning-card, .ua-auth-dialog, .ps-share-dialog, .color-panel, .ai-detail) {
  background: var(--ph-surface); color: var(--ph-ink); border-color: var(--ph-border);
}
:is(.series-viewer, .series-cover, .related-project-cover, .learning-cover, .learning-cover[data-category],
 .gallery-placeholder, .identity, .email-verification, .ua-auth-modes, .switch, .ua-record-placeholder,
 .series-details pre, .ai-prompt pre, .ai-detail-stage, .ai-zoom, .ai-reference button, .series-references img) {
  background: var(--ph-soft); color: var(--ph-ink); border-color: var(--ph-border);
}
:is(.ua-center, .ua-auth-dialog, .ps-share-dialog, .card, .ai-detail, .series-information,
 .creator-portfolio-hero, .ua-user-entry, .learning-card-copy h2, .case-heading h1,
 .related-project-info strong, .creator-card strong, .ph-points h2) { color: var(--ph-ink); }
:is(.ua-user-entry small, .ua-auth-intro, .ua-center-email, .ua-record-type, .ua-record p,
 .ua-record small, .ua-activity-message, .ua-history-hint, .ua-center-guest p, .ua-pager span,
 .ps-share-title, .ps-share-eyebrow, .learning-intro p:last-child, .learning-card-copy p,
 .learning-card-meta, .learning-status, .learning-pagination, .article-back, .reading-heading > div,
 .article-source, .ai-detail-head, .ai-facts dt, .ai-reference-note, .ai-prompt summary,
 .series-references figcaption, .ph-points-rules, .ph-points-hint, .ph-ledger li small,
 .card > p:not(.eyebrow), label small, .identity small, .submission small, .avatar-picker small,
 .email-verification > p) { color: var(--ph-muted); }
:is(.ua-login-button, .ua-secondary, .ua-favorite, .series-actions button, .series-arrow,
 .series-expand, .learning-filters button, .learning-pagination button, .ai-account-link,
 .ai-prompt button, .ai-reference button, .ps-share-button, .ps-share-copy, .ps-share-native,
 .ps-share-close, .ua-close, .ua-code-row button, .secondary, .avatar-upload-button,
 .ua-favorite-filters button, .menu-button, .color-picker summary, .related-projects-head > a,
 .related-projects-empty) {
  color: var(--ph-accent); background: var(--ph-surface); border-color: var(--ph-border); box-shadow: none;
}
:is(.ua-login-button, .ua-secondary, .ua-favorite, .ps-share-button, .series-actions button):hover {
  background: var(--ph-tint); border-color: var(--ph-focus); color: var(--ph-accent);
}
:is(.ua-primary, .primary, .case-download-button, .learning-filters button.active,
 .gallery-tag-list .gallery-tag.is-active, .ua-favorite-filters button[aria-pressed="true"]) {
  color: var(--ph-bg); background: var(--ph-accent); border-color: var(--ph-accent); box-shadow: none;
}
:is(.ua-primary, .primary, .case-download-button):hover { background: var(--ph-hover); color: var(--ph-bg); }
:is(.ua-favorite[aria-pressed="true"], .ua-activity-tabs button[aria-pressed="true"],
 .ua-auth-modes button[aria-pressed="true"], .switch button.active, .learning-card-meta span,
 .learning-format, .series-tags a, .series-cover-count, .ua-level, .ai-filter-tag,
 .ai-active-filters .ai-filter-tag, .avatar-preset[aria-pressed="true"], .color-options button[aria-pressed="true"]) {
  color: var(--ph-accent); background: var(--ph-tint); border-color: var(--ph-border);
}
.ua-favorite[aria-pressed="true"] svg { fill: var(--ph-accent); stroke: var(--ph-accent); }
.ai-card .ua-favorite { background: transparent; color: white; border: 0; }
.ai-card .ua-favorite[aria-pressed="true"] svg { fill: #f5ba32; stroke: #f5ba32; }
:is(.ai-filter-tag:hover, .color-options button:hover) { background: var(--ph-tint); color: var(--ph-accent); }
:is(.ph-points-head .eyebrow, .ph-points h2 strong, .ph-points [data-points-message], .ph-ledger summary,
 .ph-ledger li strong, .ua-auth-message, .ua-text-button, .text-button, .series-details summary,
 .reading-heading > p, .article-source a, .ai-prompt button, .series-counter) { color: var(--ph-accent); }
:is(.ph-ledger, .ph-ledger li, .ua-activity-tabs, .submission, .ai-prompt, .ai-prompt pre,
 .ai-detail-head, .ai-reference, .article-source) { border-color: var(--ph-border); }
:is(.search-field, .sort-control, .learning-search input, .ua-auth-form input, .ua-code-row input,
 .ua-favorite-filters input, .card input, .card textarea, .card select, .ps-share-link input) {
  color: var(--ph-ink); background: var(--ph-surface); border-color: var(--ph-border);
}
:is(.search-field input, .sort-control select) { color: inherit; background: transparent; }
:is(input, textarea, select):focus-visible { outline-color: var(--ph-focus); border-color: var(--ph-accent); }
:is(button, a):focus-visible { outline-color: var(--ph-focus); }
.avatar-preset { background: var(--ph-soft); }
.avatar-preset:is(:hover, [aria-pressed="true"]) { border-color: var(--ph-accent); }
.series-counter { background: var(--ph-surface); }
.ua-toast { background: var(--ph-ink); color: var(--ph-bg); }
.site-header .ps-share-button, .detail-header .back-link, .collection-more > a,
.home-page .collection-more > a {
  color: var(--ph-accent); background: var(--ph-surface); border-color: var(--ph-border); box-shadow: none;
}
.ua-center-identity .eyebrow { color: var(--ph-accent); }
.ua-activity-tabs button, .series-information p, .series-byline { color: var(--ph-muted); }
.ua-activity-tabs button[aria-pressed="true"] { color: var(--ph-accent); }
.series-thumbs button { background: var(--ph-surface); }
.series-thumbs button[aria-current="true"] { border-color: var(--ph-accent); }
.ps-share-link-row input { background: var(--ph-soft); color: var(--ph-ink); border-color: var(--ph-border); }
.ps-share-hint, .ps-share-url-label { color: var(--ph-muted); }
.ps-share-status { color: var(--ph-accent); }
.project-info-card, .ppt-case-header { background: var(--ph-surface); color: var(--ph-ink); border-color: var(--ph-border); }
.case-info-section, .case-info-download { border-color: var(--ph-border); }
.case-info-section p, .case-info-section ul, .creator-card small, .creator-portfolio-intro > p:not(.eyebrow),
.project-tags { color: var(--ph-muted); }
.creator-card-link:hover, .creator-portfolio-empty { background: var(--ph-soft); color: var(--ph-ink); }
.creator-card-link > svg { color: var(--ph-accent); }
.case-pill-list :where(a, span) { background: var(--ph-soft); color: var(--ph-muted); border-color: var(--ph-border); }
.case-pill-list a:hover, .case-meta-filter:hover { color: var(--ph-accent); background: var(--ph-tint); border-color: var(--ph-focus); box-shadow: none; }
.creator-portfolio-level { color: var(--ph-accent); background: var(--ph-tint); }
.article-body, .article-body :is(h1, h2, h3, h4) { color: var(--ph-ink); }
.article-body a { color: var(--ph-accent); }
.article-body blockquote, .article-body code, .article-body th, .article-video-placeholder {
  background: var(--ph-soft); color: var(--ph-ink); border-color: var(--ph-border);
}
.article-body blockquote { border-left-color: var(--ph-accent); }
.article-body :is(td, th, hr), .reading-heading { border-color: var(--ph-border); }
.article-body pre { background: #2a262b; color: #f1eaee; }
.article-body pre code { background: none; color: inherit; }
.ai-detail-head { background: var(--ph-surface); border-color: var(--ph-border); }
.ai-detail-head button { background: var(--ph-soft); color: var(--ph-accent); }
.ai-copy-message { color: var(--ph-accent); }
.ai-detail::backdrop, .ai-zoom::backdrop, .ua-auth-dialog::backdrop, .ps-share-dialog::backdrop { background: #100e12b3; }
/* One surface for search/sort and readable tags in every resource collection. */
body[data-gallery-type] .header-search-toolbar {
  background: var(--ph-surface); border: 1px solid var(--ph-border); box-shadow: none;
}
body[data-gallery-type] .header-search-toolbar:focus-within { border-color: var(--ph-focus); box-shadow: 0 0 0 3px var(--ph-tint); }
.header-search-toolbar .search-field, .header-search-toolbar .sort-control {
  background: transparent; border-color: transparent; color: var(--ph-ink); box-shadow: none;
}
.header-search-toolbar input::placeholder { color: var(--ph-muted); opacity: 1; }
.header-search-toolbar :is(.search-field, .sort-control) svg { color: var(--ph-muted); }
.header-search-toolbar select option { background: var(--ph-surface); color: var(--ph-ink); }
.gallery-tag-list .gallery-tag { background: var(--ph-surface); color: var(--ph-ink); border-color: var(--ph-border); }
.gallery-tag-list .gallery-tag:is(:hover, :focus-visible) { background: var(--ph-tint); color: var(--ph-accent); border-color: var(--ph-focus); }
.gallery-tag-list .gallery-tag.is-active { background: var(--ph-accent); color: var(--ph-bg); border-color: var(--ph-accent); }
.color-picker summary:hover, .color-picker[open] summary { background: var(--ph-tint); color: var(--ph-accent); }
.color-panel p, .color-options button { color: var(--ph-muted); }
/* Keep header geometry stable while content, account state and hover change. */
html { scrollbar-gutter: stable; }
@supports not (scrollbar-gutter: stable) { html { overflow-y: scroll; } }
.site-header :is(.brand, .brand-wordmark, .desktop-nav, .desktop-nav a, .ps-header-share, .ph-theme-toggle) {
  transform: none !important; animation: none !important; transition: none !important;
}
.site-header:not(.detail-header) .desktop-nav a {
  box-sizing: border-box; height: 44px; border: 0; border-bottom: 2px solid transparent;
  padding: 0; font-size: 14px; font-weight: 700; line-height: 1.4;
}
.site-header:not(.detail-header) .desktop-nav a:is(:hover, :active, :focus-visible) {
  border: 0; border-bottom: 2px solid transparent; font-weight: 700;
}
.site-header:not(.detail-header) .desktop-nav a.is-active { border-bottom-color: var(--ph-accent); }
.site-header [data-site-account] { flex: 0 0 140px; width: 140px; min-height: 40px; justify-content: flex-end; }
.site-header .ua-user-entry { width: 100%; max-width: 100%; justify-content: flex-end; }
@media(max-width:700px) {
  .site-header:not(.detail-header) .header-inner { column-gap: 6px; }
  .site-header .brand .brand-wordmark { width: 120px !important; height: 40px !important; }
  .site-header [data-site-account] { flex-basis: 76px; width: 76px; min-height: 36px; }
  .site-header .ua-login-button { white-space: nowrap; padding-inline: 6px; font-size: 12px; }
  .site-header .ps-header-share { flex: 0 0 34px; width: 34px; min-height: 36px; padding: 7px; }
  .site-header .menu-button { flex: 0 0 34px; width: 34px; height: 36px; padding: 6px; }
}
.ph-theme-toggle {
  display: inline-flex; align-items: center; justify-content: center; flex: 0 0 36px;
  width: 36px; height: 36px; min-height: 36px; padding: 8px; margin-left: 8px;
  border: 1px solid var(--ph-border); border-radius: 50%; cursor: pointer;
  color: var(--ph-accent); background: var(--ph-surface); box-shadow: none;
}
.ph-theme-toggle:hover { background: var(--ph-tint); border-color: var(--ph-focus); }
.ph-theme-toggle svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.ph-theme-floating { position: fixed; right: 22px; top: 20px; z-index: 80; }
@media(max-width:640px) {
  .ph-theme-toggle { margin-left: 0; flex-basis: 34px; width: 34px; height: 34px; min-height: 34px; padding: 7px; }
  body:not(.ua-account-page) .site-header.detail-header { height: auto; min-height: var(--header-height); }
  body:not(.ua-account-page) .site-header.detail-header .header-inner {
    display: grid; grid-template-columns: minmax(0,1fr) auto auto auto; gap: 8px; padding-block: 10px;
  }
  body:not(.ua-account-page) .detail-header .brand { grid-column: 1; grid-row: 1; }
  body:not(.ua-account-page) .detail-header .ps-header-share { grid-column: 2; grid-row: 1; margin: 0; }
  body:not(.ua-account-page) .detail-header .ph-theme-toggle { grid-column: 3; grid-row: 1; }
  body:not(.ua-account-page) .detail-header [data-site-account] { grid-column: 4; grid-row: 1; margin: 0; }
  body:not(.ua-account-page) .site-header.detail-header .back-link { grid-column: 1/-1; grid-row: 2; justify-self: start; margin: 0; }
  .ua-account-page .header-inner { grid-template-columns: repeat(2,minmax(0,1fr)) auto auto; }
  .ua-account-page .header-inner > .ph-theme-toggle { grid-column: 3; grid-row: 1; }
  .ua-account-page .header-inner > [data-site-account] { grid-column: 4; }
  .ua-account-page .detail-header .back-link { grid-row: auto; }
  .ua-account-page .detail-header .back-link:last-of-type { grid-column: 3/5; }
}
@media(max-width:380px) {
  .site-header .brand .brand-wordmark { width: 110px !important; height: 37px !important; }
  .site-header [data-site-account] { flex-basis: 72px; width: 72px; }
  .site-header :is(.ps-header-share, .menu-button, .ph-theme-toggle) { flex-basis: 32px; width: 32px; }
}

/* A compact search and adjacent share/theme icons on collection pages. */
.site-header .ps-header-share .ps-share-label { display: none; }
.site-header .ps-header-share {
  display: inline-flex; align-items: center; justify-content: center;
  flex: 0 0 36px; width: 36px; height: 36px; min-height: 36px;
  padding: 8px; border-radius: 50%;
}
.site-header .ps-header-share + .ph-theme-toggle { margin-left: -4px; }
body:is([data-gallery-type], .home-page) .site-header .header-inner { column-gap: 10px; }
body:is([data-gallery-type], .home-page) .site-header .brand { margin-right: 24px; }
body[data-gallery-type] .header-search-toolbar {
  flex: 0 1 340px; width: 340px; max-width: 340px; min-width: 240px;
  height: 36px; min-height: 36px; margin-left: auto; padding: 0 4px;
  border-radius: 12px; gap: 0;
}
body[data-gallery-type] .header-search-toolbar :is(.search-field, .sort-control) {
  height: 34px; min-height: 0; padding-block: 0; border: 0;
}
.header-search-toolbar .search-field input { height: 32px; font-size: 12px; }
.header-search-toolbar .search-field svg { width: 16px; height: 16px; }
body[data-gallery-type] .header-search-toolbar + .ps-header-share { margin-left: 0; }
body:is([data-gallery-type], .home-page) .site-header .menu-button { margin-left: 0; }
.column-banner { margin: 16px var(--side) 0; overflow: hidden; border-radius: 10px; }
.column-banner[hidden] { display: none; }
.column-banner a { display: block; }
.column-banner img { display: block; width: 100%; aspect-ratio: 4 / 1; object-fit: cover; object-position: center; }
.column-banner a:focus-visible { outline: 3px solid var(--ph-focus); outline-offset: -3px; }
.ai-main > .column-banner { margin-inline: 0; }
@media(max-width:1400px) {
  body:is([data-gallery-type], .home-page) .site-header .brand { margin-right: 8px; }
  body[data-gallery-type] .header-search-toolbar { flex-basis: 300px; width: 300px; max-width: 300px; }
}
@media(max-width:700px) {
  body:is([data-gallery-type], .home-page) .site-header .header-inner { column-gap: 6px; }
  body:is([data-gallery-type], .home-page) .site-header .brand { margin-right: auto; }
  .site-header .ps-header-share + .ph-theme-toggle { margin-left: 0; }
  body[data-gallery-type] .header-search-toolbar { order: 3; flex: 1 0 100%; width: 100%; min-width: 0; max-width: none; }
  .column-banner { margin-top: 12px; border-radius: 6px; }
}
@media(max-width:380px) {
  body:is([data-gallery-type], .home-page) .site-header .header-inner { column-gap: 5px; }
  .site-header .ps-header-share { flex-basis: 32px; width: 32px; height: 34px; min-height: 34px; padding: 7px; }
  .site-header [data-site-account] { margin-left: 0; }
}

/* Quiet search surface, with the color wheel inside the text field. */
body[data-gallery-type] .header-search-toolbar { border-color: var(--ph-border); background: var(--ph-surface); }
body[data-gallery-type] .header-search-toolbar:focus-within { border-color: var(--ph-muted); box-shadow: none; }
.header-search-toolbar .search-field { position: static; gap: 8px; padding-right: 0; }
.header-search-toolbar .search-field input { flex: 1 1 auto; outline: none; }
.header-search-toolbar .color-picker { position: static; }
.header-search-toolbar .color-picker summary {
  display: flex; align-items: center; justify-content: center;
  width: 28px; height: 28px; padding: 4px; border: 0; border-radius: 50%;
  background: transparent; box-shadow: none;
}
.header-search-toolbar .color-picker summary:is(:hover, :focus-visible),
.header-search-toolbar .color-picker[open] summary { background: transparent; }
.header-search-toolbar .color-picker summary:focus-visible { outline: 2px solid var(--ph-muted); outline-offset: 1px; }
.header-search-toolbar .color-indicator { width: 18px; height: 18px; border: 1px solid #00000015; }
.header-search-toolbar .color-picker.has-color .color-indicator { outline: 2px solid var(--ph-muted); outline-offset: 2px; }
.header-search-toolbar .color-panel { right: 0; top: calc(100% + 10px); width: min(280px, calc(100vw - 36px)); box-sizing: border-box; }
.header-search-toolbar .sort-control > svg { display: none; }

/* One card edge: the cover meets the copy without an inset frame. */
.project-card, .home-page .project-card, .related-project-card {
  padding: 0; overflow: hidden; border-radius: 12px;
  box-shadow: 0 2px 12px rgb(40 30 40 / 4%);
}
.project-card:hover, .home-page .project-card:hover,
.related-project-card:is(:hover, :focus-visible) {
  transform: none; box-shadow: 0 4px 16px rgb(40 30 40 / 7%);
}
.project-card > .project-cover, .home-page .project-card > .project-cover,
.related-project-card > .related-project-cover { border-radius: 0; }
.project-card > .project-cover img, .related-project-cover img { display: block; }
.project-card > .project-cover:focus-visible { outline-offset: -3px; }
.project-card > .project-info { padding: 14px 16px; }
.home-page .project-card > .project-info { padding: 12px; }
.related-project-card > .related-project-info { padding: 12px; }

/* Show the bare star over its cover; saved stars remain visible. */
.project-card > .ua-card-favorite,
.project-card > .ua-card-favorite:is(:hover, [aria-pressed="true"]) {
  width: 36px; height: 36px; min-height: 0; padding: 6px;
  top: 8px; right: 8px; border: 0; border-radius: 0;
  background: transparent; box-shadow: none;
  color: #fff; opacity: 0; pointer-events: none; transition: opacity .15s;
}
.project-card > .ua-card-favorite svg {
  width: 24px; height: 24px; fill: none; stroke: currentColor;
  filter: drop-shadow(0 1px 2px #0009);
}
.project-card > .project-cover:is(:hover, :focus-visible) ~ .ua-card-favorite,
.project-card > .ua-card-favorite:is(:hover, :focus-visible, [aria-pressed="true"]),
.ai-card .ua-favorite[aria-pressed="true"] { opacity: 1; pointer-events: auto; }
.project-card > .ua-card-favorite[aria-pressed="true"],
.project-card > .ua-card-favorite[aria-pressed="true"] svg {
  color: #f5ba32; fill: #f5ba32; stroke: #f5ba32;
}
.project-card > .ua-card-favorite:focus-visible { outline: 2px solid var(--ph-focus); outline-offset: -3px; }
@media(hover:none) {
  .project-card > .ua-card-favorite { opacity: 1; pointer-events: auto; }
}
@media(prefers-reduced-motion:reduce) {
  .project-card > .ua-card-favorite { transition: none; }
}
