/* Source: /css/portfolio-filters.css */
.portfolio-refinements{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin:18px 0;color:#334365;font-size:13px;word-break:keep-all}
.portfolio-work-search{display:grid;gap:7px;margin:0 0 20px;color:#334365;font-size:13px;font-weight:650;word-break:keep-all}
.portfolio-work-search input{box-sizing:border-box;width:100%;min-width:0;min-height:44px;padding:10px 12px;border:1px solid #c7d4e9;border-radius:10px;background:#fff;color:#23385b;font:inherit;font-size:16px}
.portfolio-work-search input:focus-visible{outline:3px solid #1154dd;outline-offset:3px}
.portfolio-filter-details{margin:0 0 14px;border:1px solid #c7d4e9;border-radius:10px;background:rgba(255,255,255,.8);color:#334365;font-size:13px;word-break:keep-all}
.portfolio-filter-details[hidden]{display:none!important}
.portfolio-filter-details>summary{padding:12px;min-height:44px;cursor:pointer;font-weight:700}
.portfolio-filter-details>summary span{margin-left:8px;font-size:12px;font-weight:500;color:#52617b}
.portfolio-filter-details>summary:focus-visible{outline:3px solid #1154dd;outline-offset:3px;border-radius:10px}
.portfolio-filter-details>.portfolio-refinements{margin:0;padding:4px 12px 12px}
.portfolio-refinements .portfolio-compact-filter{flex:1 1 140px;min-width:0}
.portfolio-refinements .portfolio-compact-filter select{width:100%;min-width:0}
.portfolio-work-number{display:inline-block;max-width:100%;padding:4px 7px;border:1px solid #c7d4e9;border-radius:6px;background:#f0f5ff;color:#234d9d;font:600 11px/1.35 ui-monospace,monospace;white-space:nowrap}
.g-tile>.portfolio-work-number,.work-photo>.portfolio-work-number{position:absolute;left:8px;top:8px;max-width:calc(100% - 16px);background:rgba(255,255,255,.95);pointer-events:none}
#pBody .portfolio-work-number{margin-bottom:5px}
@media(max-width:640px){.page>.portfolio-work-search,.page>.portfolio-filter-details{margin-left:16px;margin-right:16px}.portfolio-refinements .portfolio-compact-filter{flex-basis:calc(50% - 6px)}}
.portfolio-refinements[hidden],.portfolio-refinements [hidden],.portfolio-artist-links[hidden],.portfolio-artist-heading[hidden]{display:none!important}
.portfolio-refinements label{display:flex;flex:0 1 180px;flex-direction:column;gap:6px;min-width:0;font-weight:650}
.portfolio-refinements select,.portfolio-refinements button{min-height:44px;max-width:100%;padding:10px 12px;border:1px solid #c7d4e9;border-radius:10px;background:#fff;color:#23385b;font:inherit}
.portfolio-refinements button{cursor:pointer}
.portfolio-refinements :is(select,button):focus-visible{outline:3px solid #1154dd;outline-offset:3px}
.portfolio-filter-status{font-size:13px;color:#52617b;margin:10px 0 18px;word-break:keep-all}
.portfolio-refinements input[type=number]{width:100%;min-height:44px;box-sizing:border-box;border:1px solid #c7d4e9;border-radius:10px;padding:10px 12px;font:inherit}
.portfolio-artist-picker{border:1px solid #c7d4e9;border-radius:10px;margin:14px 0;padding:12px;display:flex;flex-wrap:wrap;gap:8px 16px;word-break:keep-all}
.portfolio-artist-picker label{display:flex;align-items:center;gap:8px;min-height:44px;font-size:13px;cursor:pointer;margin:0}
.portfolio-artist-picker input[type=checkbox]{width:18px;height:18px;margin:0;flex-shrink:0}
.portfolio-artist-picker small{flex-basis:100%;color:#52617b}
.portfolio-artist-links{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.portfolio-artist-tag{display:inline-flex;align-items:center;min-height:44px;padding:6px 12px;border:1px solid #b8ccef;border-radius:20px;color:#234d9d;background:#f0f5ff;text-decoration:none;font-size:13px}
.portfolio-artist-tag:focus-visible{outline:3px solid #1154dd;outline-offset:3px}
.portfolio-artist-heading{margin:18px 0;padding:16px;border:1px solid #c7d4e9;border-radius:14px;background:#f5f8ff;word-break:keep-all}
#work-filters{flex-wrap:wrap;overflow:visible}
#work-filters button{min-height:44px;white-space:normal;word-break:keep-all}
.portfolio-bulk-artists{flex-basis:100%;min-width:0;border-top:1px solid #c7d4e9;padding-top:4px;word-break:keep-all}
.portfolio-bulk-artists fieldset{min-width:0}
.portfolio-bulk-artist-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.portfolio-bulk-artist-actions select,.portfolio-bulk-artist-actions button{min-height:44px;max-width:100%;box-sizing:border-box;white-space:normal}
.portfolio-bulk-artist-actions label{margin:0}
.portfolio-bulk-artists :is(input,select,button):focus-visible{outline:3px solid #1154dd;outline-offset:3px}
#pBulkArtistStatus:empty{display:none}
.portfolio-tag-tools{flex:1 1 100%;min-width:0;display:grid;gap:10px;margin-top:4px}
.portfolio-tag-tools>label{max-width:420px}
.portfolio-tag-tools input[type=search]{width:100%;min-height:44px;border:1px solid #c7d4e9;border-radius:10px;padding:10px 12px;font:inherit;background:#fff;color:#23385b;box-sizing:border-box}
.portfolio-tag-buttons{display:flex;flex-wrap:wrap;gap:8px}
.portfolio-tag-buttons button{border-radius:24px;white-space:normal;word-break:keep-all}
.portfolio-tag-buttons button[aria-pressed=true]{background:#e7efff;border-color:#1154dd;color:#1746a4;font-weight:700}
.portfolio-tag-note{margin:0;font-size:12px;color:#52617b;word-break:keep-all}
.portfolio-refinements input:focus-visible{outline:3px solid #1154dd;outline-offset:3px}
.portfolio-filter-group{flex:1 0 100%;min-width:0;margin:0;padding:0;border:0}
.portfolio-filter-group legend{padding:0;margin-bottom:8px;font-weight:650;font-size:13px}
.portfolio-filter-buttons{display:flex;flex-wrap:wrap;gap:8px}
.portfolio-filter-buttons button{flex:0 1 auto!important;min-width:64px;border-radius:24px}
.portfolio-filter-buttons button[aria-pressed=true]{background:#e7efff;border-color:#1154dd;color:#1746a4;font-weight:700}
.portfolio-filter-buttons button[aria-pressed=true]::before{content:'✓ ';}
.portfolio-tag-settings{border:1px solid #c7d4e9;border-radius:10px;padding:14px;margin:16px 0;word-break:keep-all}
.portfolio-tag-settings summary{cursor:pointer;font-weight:700;min-height:32px}
.portfolio-tag-settings label{display:block;max-width:560px;margin:12px 0}
.portfolio-tag-settings p{margin:10px 0;font-size:13px;line-height:1.6}
.portfolio-tag-choice-buttons{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.portfolio-tag-choice-buttons button{min-height:44px;max-width:100%;padding:9px 14px;border:1px solid #c7d4e9;border-radius:24px;background:#fff;color:#23385b;font:inherit;cursor:pointer;word-break:keep-all}
.portfolio-tag-choice-buttons button[aria-pressed=true]{background:#e7efff;border-color:#1154dd;color:#1746a4;font-weight:700}
.portfolio-tag-choice-buttons button[aria-pressed=true]::before{content:'✓ ';}
.portfolio-tag-choice-buttons button:disabled{opacity:.55;cursor:default}
.portfolio-tag-settings :is(button,input,select):focus-visible{outline:3px solid #1154dd;outline-offset:3px}
@media(max-width:600px){.portfolio-refinements{gap:10px}.portfolio-refinements label{flex:1 1 calc(50% - 10px)}.portfolio-refinements button{flex:1 1 auto}.works-section .gallery-toolbar{display:block}#work-filters{gap:8px}#work-filters button{font-size:13px;padding:9px 12px}}

/* Source: /css/page-loading-performance.css */
/* Loading-only space; the final portfolio controls keep their existing layout. */
body[data-portfolio-loading] #filterTabs:empty { min-height: 44px; }
body[data-portfolio-loading] #portfolio-detail-filters[hidden] {
  display: block !important;
  visibility: hidden;
  pointer-events: none;
}
body[data-portfolio-loading] #portfolio-filter-count:empty { min-height: 21.4375px; }
/* Keep the footer below the viewport until real gallery rows replace the loader. */
body[data-portfolio-loading] #gallery { min-height: 100vh; }
@media (max-width: 1100px) {
  body[data-portfolio-loading] #filterTabs:empty { min-height: 96px; }
}
@media (max-width: 640px) {
  body[data-portfolio-loading] #filterTabs:empty { min-height: 95px; }
}
@media (max-width: 540px) {
  body[data-portfolio-loading] #filterTabs:empty { min-height: 146px; }
}
@media (max-width: 399px) {
  body[data-portfolio-loading] #filterTabs:empty { min-height: 197px; }
}
@media (max-width: 340px) {
  body[data-portfolio-loading] #filterTabs:empty { min-height: 248px; }
}
html.order-loading-public-notice #publicOrderNotice[hidden] { display: block !important; }

/* Preserve the pastel backdrop and 22s/26s drift on these two pages. Moving a
   fixed layer avoids repainting the background of the whole long gallery. */
body.site-renewal:is([data-renewal-page="portfolio"], [data-renewal-page="v4-order"]) {
  animation: none;
  background-image: linear-gradient(120deg, #fff 12%, #fbfdff 51%, #fffafd 100%);
  background-size: 100% 100%;
  background-position: 0 0;
}
body.site-renewal:is([data-renewal-page="portfolio"], [data-renewal-page="v4-order"])::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  background-image:
    radial-gradient(ellipse 44vw 38vw at 8% 24%, rgba(204, 233, 250, .37), transparent 72%),
    radial-gradient(ellipse 35vw 34vw at 92% 18%, rgba(246, 214, 237, .32), transparent 72%),
    radial-gradient(ellipse 42vw 36vw at 77% 86%, rgba(225, 220, 251, .26), transparent 74%);
  background-size: 118% 118%, 122% 122%, 118% 118%;
  background-position: 0% 8%, 100% 0%, 86% 100%;
  animation: limi-page-ambient-pan 26s ease-in-out infinite alternate;
  will-change: transform;
}
body.site-renewal:is([data-renewal-page="portfolio"], [data-renewal-page="v4-order"])::before {
  animation-name: limi-page-ambient-drift;
  will-change: transform;
}
@keyframes limi-page-ambient-pan {
  from { transform: translate3d(0, 0, 0) scale(1); }
  to { transform: translate3d(-1.5%, -1.5%, 0) scale(1.04); }
}
@keyframes limi-page-ambient-drift {
  0% { transform: translate3d(-2%, 1%, 0) scale(1); }
  50% { transform: translate3d(2%, -2%, 0) scale(1.05); }
  100% { transform: translate3d(-1%, 2%, 0) scale(1.02); }
}
@media (max-width: 640px) {
  body.site-renewal:is([data-renewal-page="portfolio"], [data-renewal-page="v4-order"]) { background-image: linear-gradient(125deg, #fff, #fcfdff 56%, #fffafd); }
  body.site-renewal:is([data-renewal-page="portfolio"], [data-renewal-page="v4-order"])::after {
    background-image:
      radial-gradient(ellipse 68vw 68vw at 0% 18%, rgba(204, 233, 250, .39), transparent 74%),
      radial-gradient(ellipse 67vw 62vw at 100% 48%, rgba(246, 214, 237, .3), transparent 74%),
      radial-gradient(ellipse 72vw 68vw at 72% 91%, rgba(225, 220, 251, .24), transparent 74%);
  }
}
@media (prefers-reduced-motion: reduce) {
  body.site-renewal:is([data-renewal-page="portfolio"], [data-renewal-page="v4-order"])::before,
  body.site-renewal:is([data-renewal-page="portfolio"], [data-renewal-page="v4-order"])::after { animation: none; will-change: auto; }
}

/* Source: /css/portfolio-intro.css */

/* Compact archive introduction; keep shared navigation and filters unchanged. */
.site-renewal[data-renewal-page=portfolio] .page{padding-top:28px}
.site-renewal[data-renewal-page=portfolio] .customer-breadcrumb{margin-bottom:14px}
.site-renewal[data-renewal-page=portfolio] .portfolio-profile{margin-bottom:20px;padding-bottom:16px}
.site-renewal .portfolio-profile .profile-copy{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 20px}
.site-renewal .portfolio-profile h1{margin:0;font-size:28px;line-height:1.3;letter-spacing:-.8px}
.site-renewal .portfolio-profile .profile-stats{margin:0 0 0 auto;padding:0;border:0;gap:6px 16px;flex-wrap:wrap}
.site-renewal .portfolio-profile .profile-stats li{display:block;font-size:12px;line-height:1.6;white-space:nowrap}
.site-renewal .portfolio-profile .profile-stats strong{font-size:13px;margin-right:3px}
.site-renewal .portfolio-profile .lead{flex-basis:100%;max-width:none;margin:0;font-size:14px;line-height:1.6}
@media(max-width:700px){
  .site-renewal[data-renewal-page=portfolio] .page{padding-top:20px}
  .site-renewal[data-renewal-page=portfolio] .customer-breadcrumb{margin-bottom:12px}
  .site-renewal .portfolio-profile h1{font-size:26px}
  .site-renewal .portfolio-profile .profile-copy{column-gap:14px}
  .site-renewal .portfolio-profile .profile-stats{column-gap:10px}
}

