/* ShootDocks 0.9.1 — blank-canvas, theme-independent client experience */
html:has(body.pc-standalone-page),body.pc-standalone-page{margin:0!important;padding:0!important;width:100%;min-height:100%;background:#f5f5f3}
body.pc-standalone-page{overflow-x:hidden}
.pc-portal,.pc-portal *,.pc-portal *::before,.pc-portal *::after{box-sizing:border-box}
.pc-portal{--pc-bg:#f5f5f3;--pc-surface:#fff;--pc-surface-soft:#efefec;--pc-text:#11110f;--pc-muted:#777772;--pc-line:rgba(17,17,15,.09);--pc-shadow:0 18px 50px rgba(20,20,15,.07);--pc-radius:18px;--pc-radius-sm:12px;--pc-content:1440px;--pc-ease:cubic-bezier(.22,1,.36,1);width:100%;min-height:100vh;margin:0!important;padding:0!important;background:var(--pc-bg);color:var(--pc-text);font-family:var(--pc-font,"Ubuntu",sans-serif);font-size:16px;font-weight:400;line-height:1.5;font-synthesis:none;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;isolation:isolate;color-scheme:light}
.pc-theme-dark{--pc-bg:#0d0d0c;--pc-surface:#171716;--pc-surface-soft:#212120;--pc-text:#f7f7f4;--pc-muted:#aaa9a2;--pc-line:rgba(255,255,255,.1);--pc-shadow:0 22px 70px rgba(0,0,0,.25);color-scheme:dark}
.pc-theme-auto{color-scheme:light}@media(prefers-color-scheme:dark){.pc-theme-auto{--pc-bg:#0d0d0c;--pc-surface:#171716;--pc-surface-soft:#212120;--pc-text:#f7f7f4;--pc-muted:#aaa9a2;--pc-line:rgba(255,255,255,.1);--pc-shadow:0 22px 70px rgba(0,0,0,.25);color-scheme:dark}}
.pc-portal :where(h1,h2,h3,p,form,button,input,textarea,a,span,strong,small){font-family:inherit}.pc-portal :where(h1,h2,h3,p){padding:0;border:0}.pc-portal :where(a){color:inherit}.pc-portal :where(button,input,textarea){font:inherit}.pc-portal button{-webkit-tap-highlight-color:transparent}.pc-portal img{max-width:none}


/* 0.8.7 true blank canvas. The WordPress theme is not rendered on the dedicated portal route. */
html,body.pc-standalone-page{margin:0!important;padding:0!important;width:100%!important;min-height:100%!important;background:#f5f5f3!important}
body.pc-standalone-page{overflow-x:hidden!important}
.pc-portal{position:relative!important;z-index:0!important;min-height:100vh!important;overflow:visible!important;background:var(--pc-bg)!important}
.pc-portal :where(*, *::before, *::after){box-sizing:border-box}
.pc-portal :where(button,input,textarea,select){appearance:none}

/* Header / brand */
.pc-header{width:min(calc(100% - 64px),var(--pc-content));height:92px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--pc-line)}
.pc-brand{
  padding-top: 24px;width:min(220px,48vw);height:64px;display:flex;align-items:center;justify-content:flex-start;overflow:hidden;min-width:0}
.pc-brand img{display:block;width:auto!important;height:auto!important;max-width:100%!important;max-height:48px!important;object-fit:contain!important;object-position:left center!important;margin:0!important;padding:0!important;border:0!important;box-shadow:none!important}
.pc-brand strong{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:17px;font-weight:600;letter-spacing:-.01em}
.pc-logout{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border:1px solid var(--pc-line);border-radius:999px;color:var(--pc-muted)!important;text-decoration:none!important;font-size:13px;font-weight:500;transition:background .18s ease,color .18s ease,border-color .18s ease}.pc-logout:hover{background:var(--pc-surface);color:var(--pc-text)!important}

/* Shared typography */
.pc-kicker{display:block;margin:0;text-transform:uppercase;letter-spacing:.14em;font-size:10px;font-weight:600;color:var(--pc-muted)}
.pc-welcome h1,.pc-login-card h1,.pc-expired-card h1{margin:9px 0 0!important;color:var(--pc-text)!important;font-size:clamp(38px,5vw,66px)!important;line-height:.98!important;letter-spacing:-.045em!important;font-weight:500!important}
.pc-gallery-top h1{margin:0!important;color:var(--pc-text)!important;font-size:clamp(24px,3vw,34px)!important;line-height:1.05!important;letter-spacing:-.03em!important;font-weight:500!important}

/* Login */
.pc-login-wrap{width:min(calc(100% - 40px),760px);min-height:calc(100vh - 92px);margin:0 auto;padding:64px 0 100px;display:grid;place-items:center}
.pc-login-card{width:min(100%,560px);text-align:center;padding:46px 44px;background:var(--pc-surface);border:1px solid var(--pc-line);border-radius:26px;box-shadow:var(--pc-shadow)}
.pc-login-card p{max-width:440px;margin:18px auto 0!important;color:var(--pc-muted)!important;font-size:15px!important;font-weight:300;line-height:1.65!important}
.pc-login-card form{display:grid;grid-template-columns:1fr auto;gap:8px;margin:30px 0 0!important;padding:7px!important;background:var(--pc-bg)!important;border:1px solid var(--pc-line)!important;border-radius:15px!important;box-shadow:none!important}
.pc-login-card input{width:100%!important;min-width:0!important;height:48px!important;margin:0!important;padding:0 14px!important;border:0!important;border-radius:10px!important;background:transparent!important;color:var(--pc-text)!important;outline:0!important;box-shadow:none!important;font-size:14px!important}.pc-login-card input::placeholder{color:var(--pc-muted)}
.pc-login-card button,.pc-download-trigger,.pc-submit-selection{appearance:none;border:0!important;background:var(--pc-accent)!important;color:#fff!important;border-radius:10px!important;cursor:pointer;font-weight:500!important;box-shadow:none!important;transition:transform .18s var(--pc-ease),opacity .18s ease,filter .18s ease}.pc-login-card button{height:48px;padding:0 18px!important}.pc-login-card button:hover,.pc-download-trigger:hover,.pc-submit-selection:hover{transform:translateY(-1px);filter:brightness(1.05)}
.pc-error{margin:18px 0 0;padding:10px 12px;border-radius:10px;background:#fff1ef;color:#9f2d22;font-size:13px}

/* Home */
.pc-client-home,.pc-gallery-page{width:min(calc(100% - 64px),var(--pc-content));margin:0 auto;padding:64px 0 90px!important}
.pc-welcome{max-width:760px;margin:14px 0 48px}.pc-welcome>span{color:var(--pc-muted);font-size:12px;font-weight:500}.pc-welcome p{margin:18px 0 0!important;color:var(--pc-muted)!important;font-size:15px!important;font-weight:300;line-height:1.65!important}
.pc-shoot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.pc-shoot-card{display:block;min-width:0;overflow:hidden;background:var(--pc-surface);border:1px solid var(--pc-line);border-radius:var(--pc-radius);color:var(--pc-text)!important;text-decoration:none!important;box-shadow:0 1px 0 rgba(0,0,0,.01);transition:transform .3s var(--pc-ease),box-shadow .3s ease,border-color .3s ease}.pc-shoot-card:hover{transform:translateY(-3px);box-shadow:var(--pc-shadow);border-color:transparent}
.pc-shoot-cover{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--pc-surface-soft)}.pc-shoot-cover img{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important;margin:0!important;border:0!important;border-radius:0!important;transform:scale(1.001);transition:opacity .32s ease,transform .6s var(--pc-ease)}.pc-shoot-card:hover .pc-shoot-cover img{transform:scale(1.018)}.pc-empty-cover{background:linear-gradient(145deg,var(--pc-surface-soft),var(--pc-line))}
.pc-shoot-meta{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:18px 20px 20px}.pc-shoot-meta>div{min-width:0}.pc-shoot-meta h2{margin:0 0 5px!important;color:var(--pc-text)!important;font-size:17px!important;line-height:1.25!important;font-weight:500!important;letter-spacing:-.012em!important}.pc-shoot-meta span{display:block;color:var(--pc-muted);font-size:11px;font-weight:400}.pc-expiry{margin-top:3px}.pc-arrow{flex:0 0 34px;width:34px;height:34px;border-radius:50%;display:grid!important;place-items:center;background:var(--pc-bg);color:var(--pc-text)!important;font-size:16px!important;transition:transform .25s var(--pc-ease)}.pc-shoot-card:hover .pc-arrow{transform:translate(2px,-2px)}
.pc-no-shoots{grid-column:1/-1;padding:70px 24px;text-align:center;color:var(--pc-muted);background:var(--pc-surface);border:1px solid var(--pc-line);border-radius:var(--pc-radius)}

/* Gallery header */
.pc-gallery-top{display:grid;grid-template-columns:1fr minmax(260px,1.7fr) 1fr;align-items:center;gap:28px;margin:0 0 26px}.pc-gallery-top>a{justify-self:start;color:var(--pc-muted)!important;text-decoration:none!important;font-size:13px;font-weight:500;transition:color .18s ease}.pc-gallery-top>a:hover{color:var(--pc-text)!important}.pc-gallery-top>div:nth-child(2){text-align:center}.pc-gallery-top>div:nth-child(2)>span{display:block;margin-top:5px;color:var(--pc-muted);font-size:11px}.pc-gallery-actions{justify-self:end;text-align:right}
.pc-download-menu{position:relative;display:inline-block}.pc-download-trigger{min-height:42px;padding:0 15px!important;font-size:13px}.pc-download-popover{position:absolute;right:0;top:calc(100% + 9px);z-index:30;width:270px;padding:7px;background:var(--pc-surface);border:1px solid var(--pc-line);border-radius:14px;box-shadow:var(--pc-shadow);text-align:left;opacity:0;transform:translateY(-5px) scale(.985);pointer-events:none;transition:opacity .16s ease,transform .2s var(--pc-ease)}.pc-download-menu.is-open .pc-download-popover{opacity:1;transform:none;pointer-events:auto}.pc-download-popover a{display:flex;flex-direction:column;gap:2px;padding:11px 12px;border-radius:9px;color:var(--pc-text)!important;text-decoration:none!important;font-size:13px;font-weight:500}.pc-download-popover a:hover{background:var(--pc-bg)}.pc-download-popover small{color:var(--pc-muted);font-size:11px;font-weight:300;line-height:1.35}

/* Selection */
.pc-selection-panel{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0 0 14px;padding:16px 18px;background:var(--pc-surface);border:1px solid var(--pc-line);border-radius:14px;box-shadow:none}.pc-selection-panel>div{display:flex;flex-direction:column;gap:2px}.pc-selection-panel strong{color:var(--pc-text);font-size:18px;font-weight:500}.pc-selection-panel small{color:var(--pc-muted);font-size:12px;font-weight:300}.pc-selection-panel.is-submitted{border-color:color-mix(in srgb,var(--pc-accent) 26%,var(--pc-line))}.pc-submit-selection{min-height:40px;padding:0 14px!important;font-size:12px}.pc-submit-selection:disabled{opacity:.4;cursor:default;transform:none!important}.pc-submitted-badge{display:inline-flex;align-items:center;justify-content:center;padding:9px 12px;border-radius:999px;background:color-mix(in srgb,var(--pc-accent) 10%,var(--pc-surface));color:var(--pc-text);font-size:12px;font-weight:500}
.pc-gallery-filter{display:flex;gap:7px;align-items:center;margin:0 0 18px;overflow:auto;padding:0 0 2px}.pc-filter-button{appearance:none;margin:0!important;padding:8px 12px!important;border:1px solid var(--pc-line)!important;border-radius:999px!important;background:transparent!important;color:var(--pc-muted)!important;cursor:pointer;white-space:nowrap;font-size:12px!important;font-weight:500!important;box-shadow:none!important;transition:background .18s ease,color .18s ease,border-color .18s ease}.pc-filter-button:hover{color:var(--pc-text)!important}.pc-filter-button.is-active{background:var(--pc-text)!important;color:var(--pc-bg)!important;border-color:var(--pc-text)!important}

/* Gallery grid */
.pc-masonry{columns:4 260px;column-gap:10px}.pc-thumb{position:relative;display:block;width:100%!important;margin:0 0 10px!important;padding:0!important;border:0!important;border-radius:6px!important;background:transparent!important;box-shadow:none!important;overflow:hidden;cursor:zoom-in;break-inside:avoid;content-visibility:auto;contain-intrinsic-size:320px 240px}.pc-thumb img{display:block!important;width:100%!important;height:auto!important;margin:0!important;padding:0!important;border:0!important;border-radius:6px!important;box-shadow:none!important;opacity:0;transition:opacity .3s ease,transform .5s var(--pc-ease)}.pc-thumb img.pc-img-ready{opacity:1}.pc-thumb:hover img{transform:scale(1.008)}.pc-thumb-fav,.pc-thumb-note{position:absolute;top:10px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.12);background:rgba(12,12,12,.47);backdrop-filter:blur(10px);color:#fff;box-shadow:none}.pc-thumb-fav{right:10px;width:32px;height:32px;border-radius:50%;font-size:15px;transition:transform .2s var(--pc-ease),background .2s ease}.pc-thumb:hover .pc-thumb-fav{transform:scale(1.04)}.pc-thumb-note{left:10px;width:25px;height:25px;border-radius:50%;font-size:7px}.pc-thumb.pc-filter-hidden{display:none}

/* Lightbox */
.pc-lightbox{position:fixed;z-index:2147483000;inset:0;display:grid;place-items:center;background:#080808;color:#fff;opacity:0;transition:opacity .18s ease}.pc-lightbox[hidden]{display:none}.pc-lightbox.pc-open{opacity:1}.pc-lb-stage{width:calc(100vw - 120px);height:calc(100vh - 100px);display:grid;place-items:center;transition:opacity .14s ease,transform .18s ease}.pc-lb-stage.pc-changing{opacity:.28;transform:scale(.997)}.pc-lb-stage img{display:block;max-width:100%!important;max-height:100%!important;width:auto!important;height:auto!important;object-fit:contain!important;margin:0!important;border:0!important;box-shadow:none!important}.pc-lb-close,.pc-lb-prev,.pc-lb-next{position:absolute;margin:0!important;padding:0!important;border:1px solid rgba(255,255,255,.08)!important;background:rgba(255,255,255,.07)!important;color:#fff!important;cursor:pointer;box-shadow:none!important;backdrop-filter:blur(12px);transition:background .18s ease,transform .18s var(--pc-ease)}.pc-lb-close{right:20px;top:18px;width:42px;height:42px;border-radius:50%!important;font-size:25px!important;line-height:1!important}.pc-lb-prev,.pc-lb-next{top:50%;width:42px;height:56px;border-radius:12px!important;transform:translateY(-50%);font-size:34px!important;line-height:1!important}.pc-lb-prev{left:18px}.pc-lb-next{right:18px}.pc-lb-close:hover{background:rgba(255,255,255,.13)!important;transform:scale(1.04)}.pc-lb-prev:hover,.pc-lb-next:hover{background:rgba(255,255,255,.13)!important;transform:translateY(-50%) scale(1.04)}
.pc-lb-bar{position:absolute;left:50%;bottom:max(16px,env(safe-area-inset-bottom));transform:translateX(-50%);display:flex;align-items:center;gap:3px;max-width:calc(100vw - 30px);padding:5px;border:1px solid rgba(255,255,255,.09);border-radius:13px;background:rgba(18,18,18,.72);backdrop-filter:blur(18px);box-shadow:0 16px 50px rgba(0,0,0,.22)}.pc-lb-fav,.pc-lb-web,.pc-lb-original,.pc-lb-comment-toggle{display:inline-flex;align-items:center;justify-content:center;min-height:38px;margin:0!important;padding:0 10px!important;border:0!important;border-radius:8px!important;background:transparent!important;color:#fff!important;text-decoration:none!important;box-shadow:none!important;cursor:pointer;font-size:12px!important;font-weight:500!important;white-space:nowrap;transition:background .18s ease}.pc-lb-fav{width:38px;padding:0!important;font-size:18px!important}.pc-lb-fav:hover,.pc-lb-web:hover,.pc-lb-original:hover,.pc-lb-comment-toggle:hover{background:rgba(255,255,255,.1)!important}.pc-lb-count{padding:0 10px;color:#a9a9a9;font-size:11px;font-weight:500;white-space:nowrap}

/* Photo note */
.pc-comment-panel{position:absolute;z-index:12;inset:0;display:grid;place-items:center;padding:20px;background:rgba(0,0,0,.48);backdrop-filter:blur(6px)}.pc-comment-panel[hidden]{display:none}.pc-comment-card{width:min(470px,100%);padding:25px;background:#fff;color:#151515;border-radius:20px;box-shadow:0 28px 90px rgba(0,0,0,.34)}.pc-comment-card .pc-kicker{color:#888}.pc-comment-card h3{margin:7px 0 14px!important;color:#151515!important;font-size:22px!important;line-height:1.2!important;letter-spacing:-.025em!important;font-weight:500!important}.pc-comment-card textarea{display:block;width:100%!important;min-height:135px;margin:0!important;padding:13px 14px!important;resize:vertical;border:1px solid #ddd!important;border-radius:12px!important;background:#fff!important;color:#151515!important;box-shadow:none!important;outline:none!important;font-size:14px!important}.pc-comment-card textarea:focus{border-color:#aaa!important;box-shadow:0 0 0 3px rgba(0,0,0,.045)!important}.pc-comment-card>div{display:flex;justify-content:flex-end;gap:7px;margin-top:11px}.pc-comment-card button{min-height:39px;margin:0!important;padding:0 14px!important;border:0!important;border-radius:9px!important;cursor:pointer;box-shadow:none!important;font-size:13px!important;font-weight:500!important}.pc-comment-cancel{background:#efefef!important;color:#222!important}.pc-comment-save{background:var(--pc-accent)!important;color:#fff!important}.pc-comment-status{display:block;min-height:17px;margin-top:8px;color:#666;font-size:11px}

/* Empty / expiry / footer */
.pc-expired-card{max-width:610px;margin:60px auto;padding:44px;background:var(--pc-surface);border:1px solid var(--pc-line);border-radius:22px;text-align:center;box-shadow:var(--pc-shadow)}.pc-expired-card p{margin:18px auto 0!important;color:var(--pc-muted)!important;line-height:1.65!important}.pc-expired-card a{display:inline-block;margin-top:20px;color:var(--pc-text)!important;text-decoration:none!important;font-size:13px;font-weight:500}.pc-footer{width:min(calc(100% - 64px),var(--pc-content));margin:0 auto;padding:24px 0 34px;border-top:1px solid var(--pc-line);text-align:center;color:var(--pc-muted);font-size:11px;font-weight:400}

/* Motion */
.pc-reveal{opacity:1;transform:none}.pc-js .pc-reveal{opacity:0;transform:translateY(8px);transition:opacity .42s ease,transform .5s var(--pc-ease);transition-delay:var(--pc-delay,0ms)}.pc-js .pc-reveal.pc-in{opacity:1;transform:none}.pc-pop{animation:pcPop .22s var(--pc-ease)}@keyframes pcPop{50%{transform:scale(1.16)}}

@media(max-width:900px){.pc-header,.pc-client-home,.pc-gallery-page,.pc-footer{width:min(calc(100% - 40px),var(--pc-content))}.pc-gallery-top{grid-template-columns:1fr auto;gap:18px}.pc-gallery-top>div:nth-child(2){grid-row:2;grid-column:1/-1;text-align:left}.pc-shoot-grid{gap:14px}.pc-masonry{columns:3 210px}}
@media(max-width:700px){.pc-header{height:78px;width:calc(100% - 32px)}.pc-brand{
  padding-top: 24px;height:54px;max-width:180px}.pc-brand img{max-height:40px!important}.pc-logout{min-height:36px;padding:0 11px}.pc-login-wrap{min-height:calc(100vh - 78px);padding:36px 0 70px}.pc-login-card{padding:34px 20px;border-radius:20px}.pc-login-card form{grid-template-columns:1fr}.pc-login-card button{width:100%}.pc-client-home,.pc-gallery-page{width:calc(100% - 32px);padding:38px 0 70px!important}.pc-welcome{margin:8px 0 34px}.pc-welcome h1,.pc-login-card h1,.pc-expired-card h1{font-size:clamp(36px,12vw,52px)!important}.pc-shoot-grid{grid-template-columns:1fr}.pc-shoot-meta{padding:16px 17px 18px}.pc-gallery-top{margin-bottom:20px}.pc-gallery-top>div:nth-child(2){margin-top:4px}.pc-gallery-actions{justify-self:end}.pc-selection-panel{align-items:flex-start;flex-direction:column}.pc-submit-selection,.pc-submitted-badge{width:100%}.pc-masonry{columns:2 140px;column-gap:7px}.pc-thumb{margin-bottom:7px!important;border-radius:4px!important}.pc-thumb img{border-radius:4px!important}.pc-lb-prev,.pc-lb-next{display:none}.pc-lb-stage{width:100vw;height:calc(100vh - 92px)}.pc-lb-bar{justify-content:flex-start;overflow:auto}.pc-lb-count{margin-left:auto}.pc-download-popover{width:min(270px,84vw)}.pc-comment-panel{align-items:end;padding:10px}.pc-comment-card{border-radius:18px 18px 10px 10px}.pc-expired-card{margin:26px auto;padding:32px 20px}.pc-footer{width:calc(100% - 32px)}}
@media(max-width:420px){.pc-lb-comment-toggle{font-size:0!important;width:38px;padding:0!important}.pc-lb-comment-toggle::first-letter{font-size:15px}.pc-lb-web,.pc-lb-original{padding:0 8px!important}.pc-lb-count{padding:0 7px}}
@media(prefers-reduced-motion:reduce){.pc-portal *,.pc-portal *::before,.pc-portal *::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.pc-reveal{opacity:1!important;transform:none!important}}

/* 0.8.1 rhythm refinements */
.pc-shoot-meta h2{margin-bottom:7px!important}.pc-shoot-meta span{line-height:1.45}.pc-gallery-top>div:nth-child(2)>span{margin-top:7px;line-height:1.4}.pc-selection-panel>div{gap:5px}.pc-selection-panel strong{line-height:1.25}.pc-selection-panel small{line-height:1.45}.pc-download-popover a{gap:4px}.pc-welcome p,.pc-login-card p,.pc-expired-card p{line-height:1.7!important}.pc-comment-card h3{margin-bottom:16px!important}.pc-footer{line-height:1.5}

/* 0.9.4 portal stability: missing covers remain intentional and lightweight */
.pc-empty-cover{position:relative;background:
linear-gradient(135deg,rgba(255,255,255,.45),rgba(255,255,255,0)),
linear-gradient(145deg,var(--pc-surface-soft),color-mix(in srgb,var(--pc-surface-soft) 72%,var(--pc-line)))}
.pc-empty-cover::after{content:"";position:absolute;inset:50% auto auto 50%;width:34px;height:26px;transform:translate(-50%,-50%);border:1px solid var(--pc-line);border-radius:7px;opacity:.65}

/* 0.9.5 – refined client overview */
.pc-overview-head{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin:10px 0 38px;padding-bottom:28px;border-bottom:1px solid var(--pc-line)}
.pc-overview-head>div{max-width:760px}
.pc-overview-head .pc-kicker{display:block;margin:0 0 12px;color:var(--pc-muted);font-size:12px;line-height:1.4;font-weight:500;letter-spacing:.01em}
.pc-overview-head h1{margin:0!important;color:var(--pc-text)!important;font-family:var(--pc-font)!important;font-size:clamp(34px,4.5vw,58px)!important;line-height:1.02!important;letter-spacing:-.04em!important;font-weight:500!important}
.pc-overview-head p{margin:15px 0 0!important;color:var(--pc-muted)!important;font-size:15px!important;line-height:1.65!important;font-weight:300!important}
.pc-overview-count{display:grid;place-items:center;flex:0 0 auto;min-width:48px;height:48px;padding:0 14px;border:1px solid var(--pc-line);border-radius:999px;background:var(--pc-surface);color:var(--pc-text);font-size:14px;font-weight:500}
.pc-shoot-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px!important}
.pc-shoot-card{border-radius:12px!important}
.pc-shoot-cover{aspect-ratio:3/2!important}
.pc-shoot-meta{min-height:92px;padding:18px 20px 20px!important}
.pc-shoot-meta h2{font-size:18px!important;line-height:1.3!important;margin:0 0 8px!important}
.pc-shoot-details{display:flex!important;flex-wrap:wrap;align-items:center;gap:7px 14px}
.pc-shoot-details span{position:relative;display:inline-block!important;font-size:12px!important;line-height:1.5!important}
.pc-shoot-details span+span::before{content:"";position:absolute;left:-8px;top:50%;width:2px;height:2px;border-radius:50%;background:currentColor;opacity:.45}
.pc-expiry{margin-top:7px!important;font-size:11px!important;line-height:1.5!important}
.pc-arrow{align-self:center}

/* 0.9.5 – selection hearts must be unmistakable and independently clickable */
.pc-thumb{position:relative;display:block;width:100%;padding:0!important;border:0!important;background:transparent!important;cursor:zoom-in;overflow:hidden}
.pc-thumb:focus-visible{outline:2px solid var(--pc-accent);outline-offset:3px}
.pc-thumb-fav{appearance:none;-webkit-appearance:none;position:absolute!important;z-index:4;right:11px!important;top:11px!important;width:38px!important;height:38px!important;padding:0!important;margin:0!important;border:1px solid rgba(255,255,255,.4)!important;border-radius:999px!important;background:rgba(15,15,15,.58)!important;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:grid!important;place-items:center!important;color:#fff!important;font-size:21px!important;line-height:1!important;font-family:Arial,sans-serif!important;box-shadow:0 2px 14px rgba(0,0,0,.14)!important;cursor:pointer!important;transition:transform .18s ease,background .18s ease}
.pc-thumb-fav:hover{transform:scale(1.06);background:rgba(15,15,15,.72)!important}
.pc-thumb-fav.is-selected{background:rgba(15,15,15,.76)!important}
.pc-thumb-fav:disabled,.pc-thumb-fav.is-locked{cursor:default!important;opacity:.78}
.pc-lb-fav{border-radius:999px!important;border:1px solid rgba(255,255,255,.18)!important;background:rgba(255,255,255,.06)!important;width:42px!important;height:42px!important;font-size:22px!important}
.pc-lb-fav.is-selected{background:#fff!important;color:#111!important}
.pc-lb-fav:disabled,.pc-lb-fav.is-locked{opacity:.72;cursor:default!important}
@media(max-width:700px){
  .pc-overview-head{align-items:flex-start;margin-top:4px;margin-bottom:26px;padding-bottom:22px}
  .pc-overview-head h1{font-size:clamp(32px,11vw,46px)!important}
  .pc-overview-count{min-width:42px;height:42px;padding:0 12px}
  .pc-shoot-grid{grid-template-columns:1fr!important;gap:16px!important}
  .pc-shoot-meta{min-height:0;padding:16px 17px 18px!important}
  .pc-thumb-fav{width:36px!important;height:36px!important;font-size:20px!important}
}

.pc-runtime-error{max-width:680px;margin:8vh auto 0!important}
.pc-runtime-error small{display:block;margin-top:18px;color:var(--pc-muted);font-size:11px;letter-spacing:.04em}

/* 0.9.13 configurable interaction styling */
.pc-portal button,.pc-portal a{transition:background-color .18s ease,color .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease}
.pc-login-card button:hover,
.pc-submit-selection:hover:not(:disabled),
.pc-download-trigger:hover,
.pc-filter-button:hover,
.pc-comment-save:hover,
.pc-comment-cancel:hover,
.pc-lb-comment-toggle:hover,
.pc-lb-web:hover,
.pc-lb-original:hover,
.pc-logout:hover{
  background:var(--pc-hover)!important;
  border-color:var(--pc-hover)!important;
  color:#fff!important;
}
.pc-thumb-fav:hover,
.pc-lb-fav:hover{
  background:var(--pc-hover)!important;
  border-color:var(--pc-hover)!important;
  color:#fff!important;
}
.pc-corners-square .pc-shoot-card,
.pc-corners-square .pc-login-card,
.pc-corners-square .pc-expired-card,
.pc-corners-square .pc-selection-panel,
.pc-corners-square .pc-download-popover,
.pc-corners-square .pc-comment-card,
.pc-corners-square button,
.pc-corners-square .pc-thumb-fav,
.pc-corners-square .pc-lb-fav,
.pc-corners-square input,
.pc-corners-square textarea,
.pc-corners-square select{
  border-radius:0!important;
}

/* 0.9.18 mobile UX */
@media(max-width:700px){
  /* Login vertically centered on mobile viewport */
  .pc-login-wrap{
    min-height:calc(100svh - 78px)!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding:24px 0 36px!important;
  }
  .pc-login-card{
    width:min(100%,460px)!important;
    margin:0 auto!important;
  }

  /* Gallery overview: 3 equal thumbs per row */
  .pc-masonry{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:3px!important;
    column-count:unset!important;
    column-gap:unset!important;
  }
  .pc-thumb{
    aspect-ratio:1/1!important;
    width:100%!important;
    margin:0!important;
    overflow:hidden!important;
    border-radius:0!important;
  }
  .pc-thumb img{
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    display:block!important;
  }
  .pc-thumb-fav{
    top:6px!important;
    right:6px!important;
    width:30px!important;
    height:30px!important;
    font-size:17px!important;
  }
  .pc-thumb-note{
    top:6px!important;
    left:6px!important;
  }

  /* Lightbox fills mobile screen with persistent nav */
  .pc-lightbox{
    padding:0!important;
  }
  .pc-lb-stage{
    position:absolute!important;
    inset:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding:64px 0 110px!important;
  }
  .pc-lb-stage img{
    max-width:100vw!important;
    max-height:calc(100svh - 174px)!important;
    width:auto!important;
    height:auto!important;
    object-fit:contain!important;
  }
  .pc-lb-prev,.pc-lb-next{
    display:grid!important;
    place-items:center!important;
    position:fixed!important;
    z-index:10004!important;
    top:50%!important;
    transform:translateY(-50%)!important;
    width:44px!important;
    height:54px!important;
    padding:0!important;
    margin:0!important;
    border:0!important;
    border-radius:0 10px 10px 0!important;
    background:rgba(0,0,0,.42)!important;
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    color:#fff!important;
    font-size:34px!important;
    line-height:1!important;
    opacity:.92!important;
  }
  .pc-lb-prev{left:0!important}
  .pc-lb-next{
    right:0!important;
    border-radius:10px 0 0 10px!important;
  }
  .pc-lb-close{
    position:fixed!important;
    top:max(14px,env(safe-area-inset-top))!important;
    right:14px!important;
    z-index:10005!important;
  }

  /* Mobile action bar: horizontal scroll instead of clipped controls */
  .pc-lb-bar{
    position:fixed!important;
    left:10px!important;
    right:10px!important;
    bottom:max(10px,env(safe-area-inset-bottom))!important;
    z-index:10005!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:4px!important;
    max-width:none!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    padding:7px!important;
    border-radius:12px!important;
  }
  .pc-lb-bar::-webkit-scrollbar{display:none}
  .pc-lb-bar>*{
    flex:0 0 auto!important;
  }
  .pc-lb-comment-toggle{
    display:inline-flex!important;
    min-width:44px!important;
  }
  .pc-lb-count{
    margin-left:auto!important;
    padding:0 8px!important;
  }

  /* Comment editor becomes a bottom sheet on mobile */
  .pc-comment-panel{
    position:fixed!important;
    inset:0!important;
    z-index:10010!important;
    display:flex!important;
    align-items:flex-end!important;
    justify-content:center!important;
    background:rgba(0,0,0,.46)!important;
    padding:0!important;
  }
  .pc-comment-panel[hidden]{display:none!important}
  .pc-comment-card{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:22px 18px calc(22px + env(safe-area-inset-bottom))!important;
    border-radius:16px 16px 0 0!important;
    max-height:78svh!important;
    overflow:auto!important;
  }
  .pc-comment-card textarea{
    min-height:120px!important;
    font-size:16px!important;
  }
  .pc-comment-card>div{
    display:flex!important;
    gap:8px!important;
  }
  .pc-comment-card button{
    flex:1!important;
    min-height:46px!important;
  }
}

/* =========================================================
   ShootDocks 0.9.23 — mobile gallery/lightbox polish
   ========================================================= */
@media(max-width:700px){

  /* Keep three thumbnails, but give them breathing room */
  .pc-masonry{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:5px!important;
    column-count:unset!important;
    column-gap:unset!important;
  }

  .pc-thumb{
    width:100%!important;
    aspect-ratio:1 / 1!important;
    margin:0!important;
    border-radius:6px!important;
    overflow:hidden!important;
    background:#ecece8!important;
  }

  .pc-thumb img{
    display:block!important;
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
  }

  /* Lightbox: true full-screen centering */
  .pc-lightbox{
    position:fixed!important;
    inset:0!important;
    width:100vw!important;
    height:100svh!important;
    padding:0!important;
    margin:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    overflow:hidden!important;
  }

  .pc-lightbox[hidden]{
    display:none!important;
  }

  .pc-lb-stage{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding:
      calc(56px + env(safe-area-inset-top))
      14px
      calc(92px + env(safe-area-inset-bottom))!important;
    box-sizing:border-box!important;
  }

  .pc-lb-stage img{
    display:block!important;
    width:auto!important;
    height:auto!important;
    max-width:calc(100vw - 28px)!important;
    max-height:calc(100svh - 148px - env(safe-area-inset-top) - env(safe-area-inset-bottom))!important;
    margin:auto!important;
    object-fit:contain!important;
    object-position:center center!important;
    transform:none!important;
  }

  /* Fixed controls should not push visual center off-axis */
  .pc-lb-prev,
  .pc-lb-next{
    position:fixed!important;
    top:50%!important;
    transform:translateY(-50%)!important;
    z-index:10004!important;
  }

  .pc-lb-prev{left:0!important}
  .pc-lb-next{right:0!important}

  .pc-lb-close{
    position:fixed!important;
    top:max(12px,env(safe-area-inset-top))!important;
    right:12px!important;
    z-index:10005!important;
  }

  .pc-lb-bar{
    position:fixed!important;
    left:50%!important;
    right:auto!important;
    bottom:max(10px,env(safe-area-inset-bottom))!important;
    transform:translateX(-50%)!important;
    width:calc(100vw - 20px)!important;
    max-width:620px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:5px!important;
    padding:7px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    box-sizing:border-box!important;
    -webkit-overflow-scrolling:touch;
  }

  .pc-lb-bar>*{
    flex:0 0 auto!important;
  }

  .pc-lb-count{
    margin-left:auto!important;
    margin-right:2px!important;
  }

  /* Comment sheet stays centered in width */
  .pc-comment-panel{
    position:fixed!important;
    inset:0!important;
    display:flex!important;
    align-items:flex-end!important;
    justify-content:center!important;
    padding:0!important;
  }

  .pc-comment-panel[hidden]{
    display:none!important;
  }

  .pc-comment-card{
    width:100%!important;
    max-width:620px!important;
    margin:0 auto!important;
    border-radius:16px 16px 0 0!important;
  }
}

/* =========================================================
   ShootDocks 0.9.25 — mobile lightbox corrections
   ========================================================= */
@media(max-width:700px){

  /* Define the visual image stage explicitly so controls can align to it */
  .pc-lb-stage{
    --pc-lb-top:calc(56px + env(safe-area-inset-top));
    --pc-lb-bottom:calc(96px + env(safe-area-inset-bottom));
    position:absolute!important;
    inset:var(--pc-lb-top) 0 var(--pc-lb-bottom) 0!important;
    width:100%!important;
    height:auto!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding:0 14px!important;
    box-sizing:border-box!important;
  }

  .pc-lb-stage img{
    max-width:calc(100vw - 28px)!important;
    max-height:100%!important;
    width:auto!important;
    height:auto!important;
    margin:auto!important;
    object-fit:contain!important;
    object-position:center center!important;
  }

  /* Align arrows with center of the image stage, not center of viewport */
  .pc-lb-prev,
  .pc-lb-next{
    top:calc(
      var(--pc-lb-top,56px) +
      (100svh - var(--pc-lb-top,56px) - var(--pc-lb-bottom,96px)) / 2
    )!important;
    transform:translateY(-50%)!important;
  }

  /* Heart follows photographer accent color */
  .pc-thumb-fav.is-selected,
  .pc-lb-fav.is-selected{
    background:var(--pc-accent)!important;
    border-color:var(--pc-accent)!important;
    color:#fff!important;
  }

  .pc-thumb-fav:hover,
  .pc-lb-fav:hover{
    background:var(--pc-hover)!important;
    border-color:var(--pc-hover)!important;
    color:#fff!important;
  }

  /* Make mobile action bar stable and keep comment button visible */
  .pc-lb-bar{
    min-height:52px!important;
    justify-content:flex-start!important;
    gap:6px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    padding:7px 8px!important;
  }

  .pc-lb-comment-toggle{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-height:38px!important;
    min-width:84px!important;
    padding:0 12px!important;
    position:relative!important;
    z-index:2!important;
    pointer-events:auto!important;
  }

  .pc-lb-fav,
  .pc-lb-web,
  .pc-lb-original{
    min-height:38px!important;
  }

  /* Comment sheet must sit above every lightbox control */
  .pc-comment-panel{
    position:fixed!important;
    inset:0!important;
    z-index:10020!important;
    display:flex!important;
    align-items:flex-end!important;
    justify-content:center!important;
    background:rgba(0,0,0,.48)!important;
    pointer-events:auto!important;
  }

  .pc-comment-panel[hidden]{
    display:none!important;
  }

  .pc-comment-card{
    position:relative!important;
    z-index:10021!important;
    width:100%!important;
    max-width:620px!important;
    margin:0 auto!important;
    padding:22px 18px calc(22px + env(safe-area-inset-bottom))!important;
    border-radius:16px 16px 0 0!important;
    background:#181818!important;
    color:#fff!important;
    pointer-events:auto!important;
  }

  .pc-comment-card textarea{
    width:100%!important;
    min-height:126px!important;
    font-size:16px!important;
    background:#fff!important;
    color:#171717!important;
  }

  .pc-comment-card button{
    min-height:46px!important;
    pointer-events:auto!important;
  }
}

/* =========================================================
   ShootDocks 0.9.26 — mobile comment icon + real thumb gap
   ========================================================= */
.pc-lb-comment-toggle{
  width:42px!important;
  min-width:42px!important;
  height:42px!important;
  min-height:42px!important;
  padding:0!important;
  display:inline-grid!important;
  place-items:center!important;
  border-radius:999px!important;
  overflow:hidden!important;
}
.pc-comment-icon{
  display:block!important;
  font-size:18px!important;
  line-height:1!important;
  pointer-events:none!important;
}

@media(max-width:700px){
  /* Force actual spacing between mobile thumbs */
  .pc-gallery-page .pc-masonry{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:8px!important;
    row-gap:8px!important;
    column-gap:8px!important;
    width:100%!important;
  }

  .pc-gallery-page .pc-masonry>.pc-thumb{
    width:100%!important;
    margin:0!important;
    aspect-ratio:1/1!important;
    border-radius:7px!important;
    overflow:hidden!important;
  }

  .pc-lb-comment-toggle{
    flex:0 0 42px!important;
    width:42px!important;
    min-width:42px!important;
    height:42px!important;
    min-height:42px!important;
    padding:0!important;
    margin:0!important;
    position:relative!important;
    z-index:10006!important;
    pointer-events:auto!important;
    touch-action:manipulation!important;
  }

  .pc-lb-comment-toggle::before{
    content:""!important;
    position:absolute!important;
    inset:-5px!important;
  }

  .pc-lb-bar{
    gap:7px!important;
  }
}

/* 0.9.28 — force heart to be a text glyph, never a red emoji */
.pc-lb-fav .pc-heart-glyph{
  display:block!important;
  width:22px!important;
  height:22px!important;
  position:relative!important;
  color:#fff!important;
  font-family:Arial,"Helvetica Neue",sans-serif!important;
  font-size:22px!important;
  font-weight:400!important;
  line-height:22px!important;
  text-align:center!important;
}
.pc-lb-fav .pc-heart-glyph::before{
  content:"\2661\FE0E"!important;
  display:block!important;
  color:currentColor!important;
  font-family:Arial,"Helvetica Neue",sans-serif!important;
  font-variant-emoji:text!important;
}
.pc-lb-fav.is-selected .pc-heart-glyph::before{
  content:"\2665\FE0E"!important;
  color:#fff!important;
}
.pc-lb-fav.is-selected{
  background:var(--pc-accent)!important;
  border-color:var(--pc-accent)!important;
  color:#fff!important;
}
.pc-lb-fav.is-selected:hover{
  background:var(--pc-hover)!important;
  border-color:var(--pc-hover)!important;
  color:#fff!important;
}

/* =========================================================
   ShootDocks 0.9.29 — strict lightbox viewport fitting
   ========================================================= */
.pc-lightbox{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100dvh!important;
  max-width:100vw!important;
  max-height:100dvh!important;
  overflow:hidden!important;
}

.pc-lb-stage{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
}

.pc-lb-stage img{
  display:block!important;
  width:auto!important;
  height:auto!important;
  max-width:calc(100vw - 32px)!important;
  max-height:calc(100dvh - 132px)!important;
  margin:auto!important;
  object-fit:contain!important;
  object-position:center center!important;
  box-sizing:border-box!important;
}

@supports(height:100svh){
  .pc-lightbox{
    height:100svh!important;
    max-height:100svh!important;
  }

  .pc-lb-stage img{
    max-height:calc(100svh - 132px)!important;
  }
}

@media(max-width:700px){
  .pc-lb-stage{
    inset:
      calc(52px + env(safe-area-inset-top))
      0
      calc(86px + env(safe-area-inset-bottom))
      0!important;
    width:auto!important;
    height:auto!important;
    padding:8px 12px!important;
  }

  .pc-lb-stage img{
    max-width:calc(100vw - 24px)!important;
    max-height:100%!important;
    width:auto!important;
    height:auto!important;
    object-fit:contain!important;
    object-position:center center!important;
  }
}

/* =========================================================
   ShootDocks 0.9.32 — lightbox nav interaction fix
   ========================================================= */
.pc-lightbox{
  position:fixed!important;
  inset:0!important;
  z-index:99999!important;
}

.pc-lb-stage{
  z-index:1!important;
  pointer-events:none!important;
}

.pc-lb-stage img{
  pointer-events:auto!important;
}

.pc-lb-prev,
.pc-lb-next,
.pc-lb-close{
  position:fixed!important;
  z-index:100010!important;
  pointer-events:auto!important;
  touch-action:manipulation!important;
  cursor:pointer!important;
}

.pc-lb-prev,
.pc-lb-next{
  min-width:44px!important;
  min-height:54px!important;
}

.pc-lb-close{
  min-width:42px!important;
  min-height:42px!important;
}

.pc-lb-bar{
  z-index:100005!important;
}

.pc-comment-panel{
  z-index:100020!important;
}

@media(max-width:700px){
  .pc-lb-prev,
  .pc-lb-next,
  .pc-lb-close{
    z-index:100030!important;
  }
}

/* 0.9.35 shoot date in gallery header */
.pc-gallery-meta{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  flex-wrap:wrap!important;
}
.pc-gallery-meta span{
  color:var(--pc-muted,#777)!important;
  font-size:12px!important;
  line-height:1.4!important;
}
.pc-gallery-meta span+span::before{
  content:"•";
  margin-right:7px;
  opacity:.45;
}
@media(max-width:700px){
  .pc-gallery-meta{
    justify-content:flex-start!important;
  }
}

/* =========================================================
   ShootDocks 0.9.36 — mobile selected heart styling
   ========================================================= */
@media(max-width:700px){

  /* Selected heart button: accent-colored circle */
  .pc-lb-fav.is-selected,
  .pc-thumb-fav.is-selected{
    background:var(--pc-accent)!important;
    border-color:var(--pc-accent)!important;
    color:var(--pc-bg,#f5f5f3)!important;
  }

  /* Heart glyph itself matches page background */
  .pc-lb-fav.is-selected .pc-heart-glyph,
  .pc-lb-fav.is-selected .pc-heart-glyph::before{
    color:var(--pc-bg,#f5f5f3)!important;
  }

  /* Thumbnail heart glyph fallback */
  .pc-thumb-fav.is-selected{
    color:var(--pc-bg,#f5f5f3)!important;
    font-family:Arial,"Helvetica Neue",sans-serif!important;
    font-variant-emoji:text!important;
  }

  /* Hover remains darker accent, heart remains page-background colored */
  .pc-lb-fav.is-selected:hover,
  .pc-thumb-fav.is-selected:hover{
    background:var(--pc-hover)!important;
    border-color:var(--pc-hover)!important;
    color:var(--pc-bg,#f5f5f3)!important;
  }

  .pc-lb-fav.is-selected:hover .pc-heart-glyph,
  .pc-lb-fav.is-selected:hover .pc-heart-glyph::before{
    color:var(--pc-bg,#f5f5f3)!important;
  }
}

/* 0.9.37 — desktop lightbox navigation interaction */
@media(min-width:701px){
  .pc-lb-prev,
  .pc-lb-next,
  .pc-lb-close{
    pointer-events:auto!important;
    cursor:pointer!important;
    user-select:none!important;
  }

  .pc-lb-prev:hover,
  .pc-lb-next:hover,
  .pc-lb-close:hover{
    background:rgba(255,255,255,.12)!important;
  }
}

/* =========================================================
   ShootDocks 0.9.38 — unified heart + slide polish
   ========================================================= */

/* Selected heart is identical on desktop and mobile */
.pc-lb-fav.is-selected,
.pc-thumb-fav.is-selected{
  background:var(--pc-accent)!important;
  border-color:var(--pc-accent)!important;
  color:#fff!important;
}

.pc-lb-fav.is-selected .pc-heart-glyph,
.pc-lb-fav.is-selected .pc-heart-glyph::before{
  color:#fff!important;
}

.pc-thumb-fav.is-selected{
  color:#fff!important;
  font-family:Arial,"Helvetica Neue",sans-serif!important;
  font-variant-emoji:text!important;
}

/* Override old mobile-specific heart rule */
@media(max-width:700px){
  .pc-lb-fav.is-selected,
  .pc-thumb-fav.is-selected{
    background:var(--pc-accent)!important;
    border-color:var(--pc-accent)!important;
    color:#fff!important;
  }

  .pc-lb-fav.is-selected .pc-heart-glyph,
  .pc-lb-fav.is-selected .pc-heart-glyph::before{
    color:#fff!important;
  }

  .pc-thumb-fav.is-selected{
    color:#fff!important;
  }
}

/* Lightbox image slide */
.pc-lb-stage img{
  will-change:transform,opacity;
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
  transform:translate3d(0,0,0);
  touch-action:pan-y;
}

/* =========================================================
   ShootDocks 0.9.39 — CSS-only heart icon, no emoji rendering
   ========================================================= */
.pc-thumb-fav,
.pc-lb-fav{
  font-family:Arial,"Helvetica Neue",sans-serif!important;
  font-variant-emoji:text!important;
}

.pc-thumb-fav .pc-heart-glyph,
.pc-lb-fav .pc-heart-glyph{
  display:block!important;
  width:20px!important;
  height:20px!important;
  position:relative!important;
  pointer-events:none!important;
  color:#fff!important;
}

.pc-thumb-fav .pc-heart-glyph::before,
.pc-lb-fav .pc-heart-glyph::before{
  content:""!important;
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  width:11px!important;
  height:11px!important;
  transform:translate(-50%,-44%) rotate(-45deg)!important;
  border:2px solid currentColor!important;
  border-top:0!important;
  border-right:0!important;
  border-radius:0 0 0 2px!important;
  background:transparent!important;
  box-sizing:border-box!important;
}

.pc-thumb-fav .pc-heart-glyph::after,
.pc-lb-fav .pc-heart-glyph::after{
  content:""!important;
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  width:11px!important;
  height:11px!important;
  transform:translate(-50%,-64%)!important;
  background:
    radial-gradient(circle at 30% 38%, transparent 0 38%, currentColor 39% 52%, transparent 53%),
    radial-gradient(circle at 70% 38%, transparent 0 38%, currentColor 39% 52%, transparent 53%)!important;
  opacity:1!important;
}

/* Selected state: white heart on photographer accent-colored circle */
.pc-thumb-fav.is-selected,
.pc-lb-fav.is-selected{
  background:var(--pc-accent)!important;
  border-color:var(--pc-accent)!important;
  color:#fff!important;
}

.pc-thumb-fav.is-selected .pc-heart-glyph,
.pc-lb-fav.is-selected .pc-heart-glyph{
  color:#fff!important;
}

.pc-thumb-fav.is-selected .pc-heart-glyph::before,
.pc-lb-fav.is-selected .pc-heart-glyph::before{
  background:#fff!important;
  border-color:#fff!important;
}

.pc-thumb-fav.is-selected .pc-heart-glyph::after,
.pc-lb-fav.is-selected .pc-heart-glyph::after{
  background:
    radial-gradient(circle at 30% 38%, #fff 0 48%, transparent 49%),
    radial-gradient(circle at 70% 38%, #fff 0 48%, transparent 49%)!important;
}

/* Kill any legacy text/emoji rendering */
.pc-thumb-fav,
.pc-lb-fav{
  color:#fff!important;
  text-indent:0!important;
}

@media(max-width:700px){
  .pc-thumb-fav.is-selected,
  .pc-lb-fav.is-selected{
    background:var(--pc-accent)!important;
    border-color:var(--pc-accent)!important;
  }
}

/* =========================================================
   ShootDocks 0.9.40 — consistent centered icon system
   ========================================================= */

/* Generic round icon controls */
.pc-thumb-fav,
.pc-lb-fav,
.pc-lb-comment-toggle,
.pc-lb-close,
.pc-lb-prev,
.pc-lb-next{
  display:grid!important;
  place-items:center!important;
  align-content:center!important;
  justify-content:center!important;
  padding:0!important;
  line-height:1!important;
  text-align:center!important;
  vertical-align:middle!important;
  box-sizing:border-box!important;
}

/* Heart icon */
.pc-heart-glyph{
  width:20px!important;
  height:20px!important;
  display:grid!important;
  place-items:center!important;
  line-height:0!important;
  pointer-events:none!important;
}
.pc-heart-glyph svg{
  display:block!important;
  width:18px!important;
  height:18px!important;
  overflow:visible!important;
}
.pc-heart-glyph path{
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.8!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
  vector-effect:non-scaling-stroke;
}
.pc-thumb-fav.is-selected .pc-heart-glyph path,
.pc-lb-fav.is-selected .pc-heart-glyph path{
  fill:currentColor!important;
  stroke:currentColor!important;
}

/* Comment icon */
.pc-comment-icon{
  width:20px!important;
  height:20px!important;
  display:grid!important;
  place-items:center!important;
  line-height:0!important;
  pointer-events:none!important;
}
.pc-comment-icon svg{
  display:block!important;
  width:18px!important;
  height:18px!important;
}
.pc-comment-icon path{
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.8!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}

/* Remove legacy pseudo-heart drawings */
.pc-heart-glyph::before,
.pc-heart-glyph::after{
  content:none!important;
  display:none!important;
}

/* Ensure round controls have true center geometry */
.pc-thumb-fav,
.pc-lb-fav,
.pc-lb-comment-toggle{
  width:42px!important;
  min-width:42px!important;
  height:42px!important;
  min-height:42px!important;
  border-radius:999px!important;
}

/* Lightbox nav/close icon alignment */
.pc-lb-close{
  width:42px!important;
  min-width:42px!important;
  height:42px!important;
  min-height:42px!important;
  border-radius:999px!important;
}
.pc-lb-prev,
.pc-lb-next{
  width:44px!important;
  min-width:44px!important;
  height:54px!important;
  min-height:54px!important;
}

/* Normalize any textual glyphs inside nav controls */
.pc-lb-close,
.pc-lb-prev,
.pc-lb-next{
  font-family:Arial,"Helvetica Neue",sans-serif!important;
  font-size:28px!important;
  font-weight:400!important;
}

/* Selected heart colors */
.pc-thumb-fav.is-selected,
.pc-lb-fav.is-selected{
  background:var(--pc-accent)!important;
  border-color:var(--pc-accent)!important;
  color:#fff!important;
}
.pc-thumb-fav.is-selected:hover,
.pc-lb-fav.is-selected:hover{
  background:var(--pc-hover)!important;
  border-color:var(--pc-hover)!important;
  color:#fff!important;
}

@media(max-width:700px){
  .pc-thumb-fav{
    width:34px!important;
    min-width:34px!important;
    height:34px!important;
    min-height:34px!important;
  }
  .pc-thumb-fav .pc-heart-glyph{
    width:17px!important;
    height:17px!important;
  }
  .pc-thumb-fav .pc-heart-glyph svg{
    width:16px!important;
    height:16px!important;
  }
}

/* 0.9.41 — lightbox heart contains SVG only */
.pc-lb-fav{
  font-size:0!important;
  line-height:0!important;
  color:#fff!important;
}
.pc-lb-fav > .pc-heart-glyph{
  font-size:initial!important;
  line-height:0!important;
}
.pc-lb-fav::before,
.pc-lb-fav::after{
  content:none!important;
  display:none!important;
}

/* =========================================================
   ShootDocks 0.9.42 — definitive lightbox heart alignment
   ========================================================= */

/* Lightbox favorite button gets its own isolated geometry */
.pc-lightbox .pc-lb-fav{
  position:relative!important;
  display:block!important;
  width:42px!important;
  min-width:42px!important;
  max-width:42px!important;
  height:42px!important;
  min-height:42px!important;
  max-height:42px!important;
  padding:0!important;
  margin:0!important;
  border-radius:999px!important;
  overflow:hidden!important;
  line-height:0!important;
  font-size:0!important;
  text-indent:0!important;
  box-sizing:border-box!important;
  flex:0 0 42px!important;
}

/* Ignore all inherited grid/flex centering and center the icon explicitly */
.pc-lightbox .pc-lb-fav .pc-heart-glyph{
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  width:19px!important;
  height:19px!important;
  margin:0!important;
  padding:0!important;
  transform:translate(-50%,-50%)!important;
  display:block!important;
  line-height:0!important;
  font-size:0!important;
  pointer-events:none!important;
}

.pc-lightbox .pc-lb-fav .pc-heart-glyph svg{
  position:absolute!important;
  left:0!important;
  top:0!important;
  display:block!important;
  width:19px!important;
  height:19px!important;
  margin:0!important;
  padding:0!important;
  transform:none!important;
  overflow:visible!important;
}

.pc-lightbox .pc-lb-fav .pc-heart-glyph path{
  fill:none!important;
  stroke:#fff!important;
  stroke-width:1.8!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}

.pc-lightbox .pc-lb-fav.is-selected{
  background:var(--pc-accent)!important;
  border-color:var(--pc-accent)!important;
}

.pc-lightbox .pc-lb-fav.is-selected .pc-heart-glyph path{
  fill:#fff!important;
  stroke:#fff!important;
}

.pc-lightbox .pc-lb-fav:hover{
  background:var(--pc-hover)!important;
  border-color:var(--pc-hover)!important;
}

/* Kill every possible legacy text/pseudo icon */
.pc-lightbox .pc-lb-fav::before,
.pc-lightbox .pc-lb-fav::after,
.pc-lightbox .pc-lb-fav .pc-heart-glyph::before,
.pc-lightbox .pc-lb-fav .pc-heart-glyph::after{
  content:none!important;
  display:none!important;
}

@media(max-width:700px){
  .pc-lightbox .pc-lb-fav{
    width:42px!important;
    min-width:42px!important;
    max-width:42px!important;
    height:42px!important;
    min-height:42px!important;
    max-height:42px!important;
    flex:0 0 42px!important;
  }

  .pc-lightbox .pc-lb-fav .pc-heart-glyph,
  .pc-lightbox .pc-lb-fav .pc-heart-glyph svg{
    width:19px!important;
    height:19px!important;
  }
}

/* 0.9.43 — iPhone-style filmstrip lightbox */
.pc-lb-stage{
  overflow:hidden!important;
  cursor:grab!important;
  user-select:none!important;
  -webkit-user-select:none!important;
  touch-action:pan-y!important;
}
.pc-lb-stage:active{cursor:grabbing!important}
.pc-lb-track{
  position:absolute!important;
  inset:0!important;
  display:flex!important;
  width:300%!important;
  height:100%!important;
  transform:translate3d(-33.333333%,0,0);
  will-change:transform!important;
  backface-visibility:hidden!important;
  -webkit-backface-visibility:hidden!important;
}
.pc-lb-slide{
  flex:0 0 33.333333%!important;
  width:33.333333%!important;
  height:100%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:hidden!important;
  padding:0 16px!important;
  box-sizing:border-box!important;
}
.pc-lb-slide img{
  display:block!important;
  width:auto!important;
  height:auto!important;
  max-width:100%!important;
  max-height:100%!important;
  object-fit:contain!important;
  object-position:center!important;
  pointer-events:none!important;
  user-select:none!important;
  -webkit-user-select:none!important;
  -webkit-user-drag:none!important;
  transform:translateZ(0)!important;
}
@media(max-width:700px){
  .pc-lb-slide{padding:0 12px!important}
}
@media(prefers-reduced-motion:reduce){
  .pc-lb-track{transition:none!important}
}

/* 0.9.44 — corrected filmstrip geometry */
.pc-lb-track{
  width:300%!important;
  transform:translate3d(-33.333333%,0,0);
}
.pc-lb-slide{
  flex:0 0 33.333333%!important;
  width:33.333333%!important;
}

/* =========================================================
   ShootDocks 0.9.45 — true touch swipe in lightbox
   ========================================================= */
.pc-lightbox .pc-lb-stage{
  pointer-events:auto!important;
  touch-action:pan-y!important;
  -ms-touch-action:pan-y!important;
  overscroll-behavior:contain!important;
}

.pc-lightbox .pc-lb-track{
  pointer-events:none!important;
}

.pc-lightbox .pc-lb-slide,
.pc-lightbox .pc-lb-slide img{
  pointer-events:none!important;
}

@media(max-width:700px){
  .pc-lightbox .pc-lb-stage{
    pointer-events:auto!important;
    touch-action:pan-y!important;
    -webkit-user-select:none!important;
    user-select:none!important;
  }
}

/* 0.9.46 — clearer shoot dates on front end */
.pc-gallery-meta .pc-gallery-date{
  font-size:14px!important;
  font-weight:500!important;
  letter-spacing:.01em!important;
}
.pc-shoot-date,
.pc-card-date,
.pc-portal .pc-date{
  font-size:14px!important;
  font-weight:500!important;
  line-height:1.5!important;
}
@media(max-width:700px){
  .pc-gallery-meta .pc-gallery-date,
  .pc-shoot-date,
  .pc-card-date,
  .pc-portal .pc-date{
    font-size:13px!important;
  }
}

/* 0.9.47 — dates match photo-count typography everywhere */
.pc-gallery-meta .pc-gallery-date,
.pc-gallery-meta > span,
.pc-shoot-details > span,
.pc-shoot-details .pc-shoot-date{
  font-size:14px!important;
  font-weight:400!important;
  line-height:1.45!important;
  letter-spacing:normal!important;
}
@media(max-width:700px){
  .pc-gallery-meta .pc-gallery-date,
  .pc-gallery-meta > span,
  .pc-shoot-details > span,
  .pc-shoot-details .pc-shoot-date{
    font-size:14px!important;
  }
}

/* =========================================================
   ShootDocks 0.9.49 — ZIP preparation progress
   ========================================================= */
.pc-download-progress{
  position:fixed!important;
  left:50%!important;
  bottom:24px!important;
  z-index:100100!important;
  width:min(calc(100% - 32px),460px)!important;
  transform:translateX(-50%)!important;
}
.pc-download-progress[hidden]{display:none!important}

.pc-download-progress-card{
  padding:16px 17px!important;
  border:1px solid rgba(17,24,39,.10)!important;
  border-radius:var(--pc-radius,14px)!important;
  background:rgba(255,255,255,.96)!important;
  color:#171717!important;
  box-shadow:0 18px 50px rgba(17,24,39,.14)!important;
  backdrop-filter:blur(18px)!important;
  -webkit-backdrop-filter:blur(18px)!important;
}

.pc-download-progress-label{
  display:block!important;
  margin-bottom:10px!important;
  color:#171717!important;
  font-size:13px!important;
  line-height:1.3!important;
  font-weight:600!important;
}

.pc-download-progress-track{
  width:100%!important;
  height:5px!important;
  overflow:hidden!important;
  border-radius:999px!important;
  background:#e7e7e4!important;
}

.pc-download-progress-track span{
  display:block!important;
  width:4%;
  height:100%!important;
  border-radius:inherit!important;
  background:var(--pc-accent)!important;
}

.pc-download-progress-card small{
  display:block!important;
  margin-top:9px!important;
  color:#7a7a76!important;
  font-size:11px!important;
  line-height:1.45!important;
}

.pc-download-progress.is-done .pc-download-progress-track span{
  background:var(--pc-accent)!important;
}

.pc-download-progress.is-error .pc-download-progress-track span{
  background:#9b3333!important;
}

@media(max-width:700px){
  .pc-download-progress{
    bottom:max(14px,env(safe-area-inset-bottom))!important;
    width:calc(100% - 24px)!important;
  }
  .pc-download-progress-card{
    padding:14px 15px!important;
  }
}

/* =========================================================
   ShootDocks 0.9.50 — unified note indicator icon
   ========================================================= */
.pc-thumb-note{
  display:grid!important;
  place-items:center!important;
  width:28px!important;
  height:28px!important;
  padding:0!important;
  line-height:0!important;
  font-size:0!important;
  border-radius:999px!important;
  background:var(--pc-accent)!important;
  color:#fff!important;
  box-sizing:border-box!important;
}
.pc-thumb-note .pc-comment-icon{
  display:grid!important;
  place-items:center!important;
  width:16px!important;
  height:16px!important;
  color:#fff!important;
  line-height:0!important;
}
.pc-thumb-note .pc-comment-icon svg{
  display:block!important;
  width:16px!important;
  height:16px!important;
}
.pc-thumb-note .pc-comment-icon path{
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.8!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}
@media(max-width:700px){
  .pc-thumb-note{
    width:26px!important;
    height:26px!important;
  }
  .pc-thumb-note .pc-comment-icon,
  .pc-thumb-note .pc-comment-icon svg{
    width:15px!important;
    height:15px!important;
  }
}

/* 0.9.64 — subtle depth for white button labels */
.pc-shell button,
.pc-shell .pc-button,
.pc-shell .pc-btn,
.pc-shell a.pc-button,
.pc-shell a.pc-btn{
  transition:text-shadow .22s ease, background-color .22s ease, border-color .22s ease, transform .22s ease!important;
}

/* Only visually affects white/light button text. */
.pc-shell button,
.pc-shell .pc-button,
.pc-shell .pc-btn,
.pc-shell a.pc-button,
.pc-shell a.pc-btn,
.pc-shell .pc-filter-button.is-active,
.pc-shell .pc-lb-action{
  text-shadow:0 1px 2px rgba(0,0,0,.22)!important;
}

/* Do not shadow dark labels on light/inactive controls. */
.pc-shell .pc-filter-button:not(.is-active),
.pc-shell button[style*="color: #"],
.pc-shell button[style*="color:#"]{
  text-shadow:none;
}

/* 0.9.65 — visible tasteful shadow on the main gallery CTAs */
.pc-shell .pc-selection-panel .pc-submit-selection,
.pc-shell .pc-download-menu .pc-download-trigger,
.pc-gallery-page .pc-submit-selection,
.pc-gallery-page .pc-download-trigger{
  color:#fff!important;
  text-shadow:0 1px 2px rgba(0,0,0,.38),0 1px 1px rgba(0,0,0,.16)!important;
}

.pc-shell .pc-selection-panel .pc-submit-selection:hover:not(:disabled),
.pc-shell .pc-download-menu .pc-download-trigger:hover{
  text-shadow:0 1px 2px rgba(0,0,0,.44),0 1px 1px rgba(0,0,0,.20)!important;
}

/* 0.9.69 — stronger desktop gallery thumbnail hover */
@media(min-width:701px) and (hover:hover){
  .pc-gallery-page .pc-thumb{
    overflow:hidden!important;
  }

  .pc-gallery-page .pc-thumb img{
    transition:
      transform .42s cubic-bezier(.22,1,.36,1),
      filter .28s ease!important;
    transform-origin:center center!important;
    will-change:transform!important;
  }

  .pc-gallery-page .pc-thumb:hover img{
    transform:scale(1.075)!important;
  }
}

/* 0.9.70 — slower, more cinematic desktop thumbnail zoom */
@media(min-width:701px) and (hover:hover){
  .pc-gallery-page .pc-thumb img{
    transition:
      transform 1.15s cubic-bezier(.16,1,.3,1),
      filter .45s ease!important;
  }
}

/* 0.9.92 — clean Safari gallery compatibility layer */
@supports (-webkit-touch-callout:none){
  /* Stable responsive grid: no CSS columns, no contain/content-visibility. */
  .pc-masonry{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:10px!important;
    width:100%!important;
    height:auto!important;
    columns:auto!important;
    -webkit-columns:auto!important;
    column-count:auto!important;
    -webkit-column-count:auto!important;
    column-width:auto!important;
    -webkit-column-width:auto!important;
    column-gap:0!important;
    -webkit-column-gap:0!important;
  }

  .pc-masonry .pc-thumb{
    position:relative!important;
    display:block!important;
    width:100%!important;
    min-width:0!important;
    height:auto!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
    content-visibility:visible!important;
    contain:none!important;
    contain-intrinsic-size:auto!important;
    will-change:auto!important;
    transform:none!important;
    -webkit-transform:none!important;
    transition:none!important;
  }

  .pc-masonry .pc-thumb img{
    display:block!important;
    width:100%!important;
    height:auto!important;
    aspect-ratio:auto!important;
    object-fit:initial!important;
    margin:0!important;
    opacity:1!important;
    visibility:visible!important;
    transform:none!important;
    -webkit-transform:none!important;
    transition:none!important;
    backface-visibility:visible!important;
    -webkit-backface-visibility:visible!important;
  }

  /* Critical Safari fix: blur layers on every thumb trigger compositor flicker. */
  .pc-masonry .pc-thumb-fav,
  .pc-masonry .pc-thumb-note{
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
    transform:none!important;
    -webkit-transform:none!important;
    transition:background-color .18s ease!important;
  }

  .pc-masonry .pc-thumb:hover img,
  .pc-masonry .pc-thumb:hover .pc-thumb-fav{
    transform:none!important;
    -webkit-transform:none!important;
  }

  .pc-masonry .pc-thumb.pc-filter-hidden{
    display:none!important;
  }

  @media(max-width:1100px) and (min-width:701px){
    .pc-masonry{
      grid-template-columns:repeat(3,minmax(0,1fr))!important;
    }
  }

  @media(max-width:700px){
    .pc-masonry{
      grid-template-columns:repeat(3,minmax(0,1fr))!important;
      gap:6px!important;
    }
  }

  .pc-portal.pc-corners-square .pc-masonry .pc-thumb,
  .pc-portal.pc-corners-square .pc-masonry .pc-thumb img{
    border-radius:0!important;
  }

  .pc-portal.pc-corners-rounded .pc-masonry .pc-thumb,
  .pc-portal.pc-corners-rounded .pc-masonry .pc-thumb img{
    border-radius:var(--pc-radius-sm)!important;
  }
}

/* 0.9.93 — unified cross-browser gallery architecture */

/* One layout system for all browsers. No CSS columns, no browser-specific masonry. */
.pc-gallery-page .pc-masonry{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:10px!important;
  width:100%!important;
  height:auto!important;
  columns:auto!important;
  -webkit-columns:auto!important;
  column-count:auto!important;
  -webkit-column-count:auto!important;
  column-width:auto!important;
  -webkit-column-width:auto!important;
  column-gap:0!important;
  -webkit-column-gap:0!important;
  align-items:start!important;
}

/* Thumb is a stable card; image sits in a fixed-ratio viewport.
   This avoids Safari reflow/paint bugs from variable-height column layouts. */
.pc-gallery-page .pc-thumb{
  position:relative!important;
  display:block!important;
  width:100%!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:var(--pc-thumb-radius)!important;
  overflow:hidden!important;
  background:var(--pc-surface-soft)!important;
  box-shadow:none!important;
  break-inside:auto!important;
  content-visibility:visible!important;
  contain:none!important;
  contain-intrinsic-size:auto!important;
  transform:none!important;
  -webkit-transform:none!important;
  will-change:auto!important;
}

/* Use a predictable 4:3 presentation viewport across browsers. */
.pc-gallery-page .pc-thumb{
  aspect-ratio:4 / 3!important;
}

.pc-gallery-page .pc-thumb img{
  position:absolute!important;
  inset:0!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:var(--pc-thumb-radius)!important;
  object-fit:cover!important;
  object-position:center center!important;
  opacity:1!important;
  visibility:visible!important;
  backface-visibility:visible!important;
  -webkit-backface-visibility:visible!important;
}

/* Hidden filtered items leave no layout footprint anywhere. */
.pc-gallery-page .pc-thumb.pc-filter-hidden{
  display:none!important;
}

/* Desktop hover kept, but applied only to image content and without compositor hacks. */
@media(min-width:701px) and (hover:hover){
  .pc-gallery-page .pc-thumb img{
    transition:transform 1.15s cubic-bezier(.16,1,.3,1)!important;
  }
  .pc-gallery-page .pc-thumb:hover img{
    transform:scale(1.06)!important;
    -webkit-transform:scale(1.06)!important;
  }
}

/* Safari: disable only the image transform to eliminate scroll repaint flicker.
   Layout itself stays identical to every other browser. */
@supports (-webkit-touch-callout:none){
  .pc-gallery-page .pc-thumb,
  .pc-gallery-page .pc-thumb img{
    content-visibility:visible!important;
    contain:none!important;
    will-change:auto!important;
  }
  .pc-gallery-page .pc-thumb img{
    transition:none!important;
    transform:none!important;
    -webkit-transform:none!important;
  }
  .pc-gallery-page .pc-thumb:hover img{
    transform:none!important;
    -webkit-transform:none!important;
  }
  .pc-gallery-page .pc-thumb-fav,
  .pc-gallery-page .pc-thumb-note{
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
  }
}

@media(max-width:1100px) and (min-width:701px){
  .pc-gallery-page .pc-masonry{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
}

@media(max-width:700px){
  .pc-gallery-page .pc-masonry{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:6px!important;
  }
}

/* Corner style is authoritative and applies to the thumb itself and image viewport. */
.pc-portal.pc-corners-square{
  --pc-thumb-radius:0px!important;
}
.pc-portal.pc-corners-rounded{
  --pc-thumb-radius:var(--pc-radius-sm)!important;
}
.pc-portal.pc-corners-square .pc-gallery-page .pc-thumb,
.pc-portal.pc-corners-square .pc-gallery-page .pc-thumb img{
  border-radius:0!important;
}

/* 0.9.94 — consistent horizontal and vertical gallery spacing */
.pc-gallery-page .pc-masonry{
  column-gap:10px!important;
  row-gap:10px!important;
  gap:10px!important;
}
@media(max-width:700px){
  .pc-gallery-page .pc-masonry{
    column-gap:6px!important;
    row-gap:6px!important;
    gap:6px!important;
  }
}

/* 0.9.95 — iPhone Safari top/bottom browser chrome and safe-area background */
html:has(.pc-portal),
body:has(.pc-portal){
  background:#080808!important;
}

@supports (-webkit-touch-callout:none){
  html:has(.pc-portal),
  body:has(.pc-portal){
    background:#080808!important;
    min-height:100%!important;
  }

  .pc-portal{
    min-height:100svh!important;
    background:#080808;
    padding-top:env(safe-area-inset-top,0px);
    padding-bottom:env(safe-area-inset-bottom,0px);
  }

  .pc-lightbox{
    padding-top:env(safe-area-inset-top,0px)!important;
    padding-bottom:env(safe-area-inset-bottom,0px)!important;
    background:#080808!important;
  }
}

/* 0.9.96 — mobile overview arrow matches desktop */
@media(max-width:700px){
  .pc-shoot-card .pc-arrow{
    display:grid!important;
    place-items:center!important;
    flex:0 0 34px!important;
    width:34px!important;
    height:34px!important;
    min-width:34px!important;
    min-height:34px!important;
    padding:0!important;
    margin:0!important;
    border-radius:50%!important;
    background:var(--pc-bg)!important;
    color:var(--pc-text)!important;
    font-size:16px!important;
    line-height:1!important;
    font-family:Arial,sans-serif!important;
    font-weight:400!important;
    text-align:center!important;
    transform:none!important;
  }

  .pc-shoot-card:hover .pc-arrow{
    transform:none!important;
  }
}

/* 0.9.97 — force overview arrow visible on mobile */
@media(max-width:700px){
  .pc-shoot-card .pc-shoot-meta{
    position:relative!important;
    padding-right:62px!important;
  }

  .pc-shoot-card .pc-arrow{
    position:absolute!important;
    right:17px!important;
    top:50%!important;
    transform:translateY(-50%)!important;
    display:grid!important;
    visibility:visible!important;
    opacity:1!important;
    place-items:center!important;
    width:34px!important;
    height:34px!important;
    min-width:34px!important;
    min-height:34px!important;
    padding:0!important;
    margin:0!important;
    border-radius:50%!important;
    background:var(--pc-bg)!important;
    color:transparent!important;
    overflow:visible!important;
    z-index:5!important;
    font-size:0!important;
    line-height:1!important;
    pointer-events:none!important;
  }

  .pc-shoot-card .pc-arrow::before{
    content:"↗"!important;
    display:block!important;
    color:var(--pc-text)!important;
    font-family:Arial,sans-serif!important;
    font-size:16px!important;
    font-weight:400!important;
    line-height:1!important;
    transform:none!important;
  }

  .pc-shoot-card:hover .pc-arrow{
    transform:translateY(-50%)!important;
  }
}

/* 0.9.98 — CSS-drawn overview arrow, never rendered as emoji on iOS */
.pc-shoot-card .pc-arrow{
  position:relative;
}

.pc-shoot-card .pc-arrow i{
  position:relative!important;
  display:block!important;
  width:13px!important;
  height:13px!important;
  font-size:0!important;
  line-height:0!important;
}

.pc-shoot-card .pc-arrow i::before{
  content:""!important;
  position:absolute!important;
  left:1px!important;
  bottom:2px!important;
  width:11px!important;
  height:2px!important;
  background:currentColor!important;
  border-radius:999px!important;
  transform:rotate(-45deg)!important;
  transform-origin:center!important;
}

.pc-shoot-card .pc-arrow i::after{
  content:""!important;
  position:absolute!important;
  right:0!important;
  top:0!important;
  width:6px!important;
  height:6px!important;
  border-top:2px solid currentColor!important;
  border-right:2px solid currentColor!important;
  box-sizing:border-box!important;
}

@media(max-width:700px){
  .pc-shoot-card .pc-arrow::before{
    content:none!important;
    display:none!important;
  }

  .pc-shoot-card .pc-arrow{
    color:var(--pc-text)!important;
    font-size:0!important;
  }
}

/* 0.9.99 — browser-independent SVG shoot arrow */
.pc-shoot-card .pc-arrow i,
.pc-shoot-card .pc-arrow::before{
  display:none!important;
  content:none!important;
}
.pc-shoot-card .pc-arrow svg{
  display:block!important;
  width:16px!important;
  height:16px!important;
  overflow:visible!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.8!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
  pointer-events:none!important;
}
@media(max-width:700px){
  .pc-shoot-card .pc-arrow{
    color:var(--pc-text)!important;
  }
  .pc-shoot-card .pc-arrow svg{
    width:16px!important;
    height:16px!important;
  }
}

/* 1.0.2 — premium dark client portal redesign inspired by editorial photo interfaces */
.pc-portal{
  --pc-bg:#0d1116;
  --pc-surface:#151a20;
  --pc-surface-soft:#1b2129;
  --pc-text:#f7f8fa;
  --pc-muted:#a2a9b3;
  --pc-line:rgba(255,255,255,.09);
  --pc-shadow:0 22px 70px rgba(0,0,0,.26);
  color-scheme:dark!important;
  background:
    radial-gradient(circle at 18% -8%,rgba(106,120,255,.08),transparent 34%),
    linear-gradient(180deg,#0e1319 0%,#0b0f14 100%)!important;
}
html,body.pc-standalone-page{background:#0d1116!important}

.pc-header{
  height:104px!important;
  border-bottom:0!important;
}
.pc-brand img{max-height:42px!important}
.pc-logout{
  min-height:42px!important;
  padding:0 18px!important;
  border-color:rgba(255,255,255,.22)!important;
  color:#fff!important;
  background:rgba(255,255,255,.025)!important;
}

/* Overview */
.pc-client-home{padding-top:40px!important}
.pc-overview-head{
  margin:0 0 34px!important;
  padding:26px 0 30px!important;
  border-bottom:0!important;
  align-items:flex-start!important;
}
.pc-overview-head>div{max-width:760px!important}
.pc-overview-head .pc-kicker{
  margin-bottom:14px!important;
  color:#aab0ba!important;
  font-size:11px!important;
  letter-spacing:.09em!important;
}
.pc-overview-head h1{
  font-size:clamp(48px,6vw,76px)!important;
  font-weight:600!important;
  letter-spacing:-.045em!important;
}
.pc-overview-head p{
  max-width:500px!important;
  margin-top:16px!important;
  color:#a8afb9!important;
  font-size:17px!important;
  line-height:1.5!important;
}

.pc-overview-tools{
  display:grid!important;
  grid-template-columns:minmax(280px,1fr) 170px auto!important;
  gap:12px!important;
  align-items:center!important;
  margin:0 0 30px!important;
}
.pc-overview-search{
  height:48px!important;
  display:flex!important;
  align-items:center!important;
  gap:11px!important;
  padding:0 17px!important;
  border:1px solid rgba(255,255,255,.13)!important;
  border-radius:999px!important;
  background:#151a20!important;
}
.pc-overview-search svg{
  width:18px!important;height:18px!important;fill:none!important;stroke:#d5d9df!important;stroke-width:1.7!important
}
.pc-overview-search input{
  flex:1!important;
  min-width:0!important;
  height:44px!important;
  padding:0!important;
  border:0!important;
  outline:0!important;
  background:transparent!important;
  color:#fff!important;
  box-shadow:none!important;
  font-size:13px!important;
}
.pc-overview-search input::placeholder{color:#7f8792!important}
.pc-overview-sort{
  height:48px!important;
  padding:0 38px 0 16px!important;
  border:1px solid rgba(255,255,255,.13)!important;
  border-radius:999px!important;
  background-color:#151a20!important;
  color:#fff!important;
  font-size:13px!important;
  outline:0!important;
}
.pc-overview-view{
  display:flex!important;
  height:48px!important;
  padding:4px!important;
  border:1px solid rgba(255,255,255,.1)!important;
  border-radius:12px!important;
  background:#151a20!important;
}
.pc-overview-view button{
  width:40px!important;height:40px!important;padding:0!important;border:0!important;border-radius:9px!important;
  display:grid!important;place-items:center!important;background:transparent!important;color:#8f98a5!important;cursor:pointer!important;
}
.pc-overview-view button.is-active{background:var(--pc-accent)!important;color:#fff!important}
.pc-overview-view svg{width:18px!important;height:18px!important;fill:currentColor!important}

.pc-shoot-grid.pc-view-list{
  display:flex!important;
  flex-direction:column!important;
  gap:18px!important;
}
.pc-view-list .pc-shoot-card{
  display:grid!important;
  grid-template-columns:minmax(0,1.55fr) minmax(300px,.7fr)!important;
  min-height:250px!important;
  border:1px solid rgba(255,255,255,.055)!important;
  background:linear-gradient(135deg,#151a20,#11161c)!important;
  box-shadow:none!important;
}
.pc-view-list .pc-shoot-cover{
  aspect-ratio:auto!important;
  min-height:250px!important;
}
.pc-view-list .pc-shoot-meta{
  min-height:250px!important;
  padding:34px 34px!important;
  align-items:center!important;
}
.pc-view-list .pc-shoot-meta h2{
  font-size:21px!important;
  font-weight:500!important;
  margin-bottom:8px!important;
}
.pc-view-list .pc-arrow{
  width:42px!important;height:42px!important;background:rgba(255,255,255,.1)!important;color:#fff!important;
}
.pc-view-list .pc-arrow svg{width:17px!important;height:17px!important}
.pc-shoot-card:hover{transform:translateY(-2px)!important;border-color:rgba(255,255,255,.1)!important}
.pc-shoot-card:hover .pc-shoot-cover img{transform:scale(1.025)!important}

.pc-shoot-grid.pc-view-grid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:18px!important;
}
.pc-view-grid .pc-shoot-card{display:block!important}
.pc-view-grid .pc-shoot-cover{aspect-ratio:16/10!important}
.pc-view-grid .pc-shoot-meta{min-height:100px!important}

/* Gallery hero */
.pc-gallery-page{padding-top:24px!important}
.pc-gallery-hero{
  position:relative!important;
  min-height:360px!important;
  margin:0 0 28px!important;
  overflow:hidden!important;
  border:1px solid rgba(255,255,255,.07)!important;
  border-radius:var(--pc-radius)!important;
  background:linear-gradient(135deg,#181f27,#11161c)!important;
}
.pc-gallery-hero-image{
  position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important;margin:0!important;
}
.pc-gallery-hero-shade{
  position:absolute!important;inset:0!important;
  background:linear-gradient(180deg,rgba(5,8,12,.12) 0%,rgba(6,9,13,.1) 38%,rgba(6,9,13,.88) 100%)!important;
}
.pc-gallery-hero-top{
  position:absolute!important;left:30px!important;top:26px!important;z-index:2!important;
}
.pc-gallery-hero-top a{
  color:#fff!important;text-decoration:none!important;font-size:13px!important;font-weight:500!important;text-shadow:0 1px 4px rgba(0,0,0,.4)!important;
}
.pc-gallery-hero-content{
  position:absolute!important;left:30px!important;right:30px!important;bottom:28px!important;z-index:2!important;
  display:flex!important;align-items:flex-end!important;justify-content:space-between!important;gap:24px!important;
}
.pc-gallery-hero-content h1{
  margin:0 0 8px!important;color:#fff!important;font-size:clamp(32px,4vw,48px)!important;font-weight:600!important;letter-spacing:-.035em!important;
}
.pc-gallery-meta{display:flex!important;gap:10px!important;color:rgba(255,255,255,.82)!important;font-size:13px!important}
.pc-gallery-actions{display:flex!important;align-items:center!important;justify-content:flex-end!important}
.pc-download-trigger{
  min-height:46px!important;
  padding:0 18px!important;
  border-radius:11px!important;
  background:var(--pc-accent)!important;
  color:#fff!important;
}

/* Selection and filters */
.pc-selection-panel{
  border-radius:var(--pc-radius-sm)!important;
  background:#141a20!important;
  border-color:rgba(255,255,255,.08)!important;
}
.pc-gallery-filter{
  gap:24px!important;
  margin:0 0 18px!important;
  padding:0 0 0!important;
  border-bottom:1px solid rgba(255,255,255,.08)!important;
}
.pc-filter-button{
  position:relative!important;
  padding:14px 2px 13px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:#9da5af!important;
}
.pc-filter-button.is-active{
  background:transparent!important;
  color:#fff!important;
}
.pc-filter-button.is-active::after{
  content:""!important;
  position:absolute!important;left:0!important;right:0!important;bottom:-1px!important;height:3px!important;
  border-radius:999px!important;background:var(--pc-accent)!important;
}

/* Photo grid */
.pc-gallery-page .pc-masonry{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:10px!important;
}
.pc-gallery-page .pc-thumb{
  background:#151a20!important;
  border-radius:var(--pc-thumb-radius)!important;
}
.pc-gallery-page .pc-thumb img{border-radius:var(--pc-thumb-radius)!important}
.pc-thumb-fav,.pc-thumb-note{
  background:rgba(15,18,22,.62)!important;
  border-color:rgba(255,255,255,.28)!important;
}

/* Footer */
.pc-footer{
  margin-top:50px!important;
  padding-top:26px!important;
  color:#8e96a0!important;
}

/* Per-client corners remain authoritative */
.pc-corners-square .pc-shoot-card,
.pc-corners-square .pc-shoot-cover,
.pc-corners-square .pc-gallery-hero,
.pc-corners-square .pc-selection-panel,
.pc-corners-square .pc-thumb,
.pc-corners-square .pc-thumb img,
.pc-corners-square .pc-download-trigger,
.pc-corners-square .pc-download-popover{
  border-radius:0!important;
}
.pc-corners-rounded .pc-shoot-card,
.pc-corners-rounded .pc-gallery-hero{
  border-radius:var(--pc-radius)!important;
}

/* Responsive */
@media(max-width:900px){
  .pc-overview-tools{grid-template-columns:1fr auto!important}
  .pc-overview-sort{display:none!important}
  .pc-view-list .pc-shoot-card{grid-template-columns:1fr 260px!important}
  .pc-gallery-page .pc-masonry{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}
@media(max-width:700px){
  .pc-header{height:82px!important}
  .pc-client-home,.pc-gallery-page{padding-top:24px!important}
  .pc-overview-head{padding-top:16px!important;margin-bottom:20px!important}
  .pc-overview-head h1{font-size:clamp(38px,12vw,54px)!important}
  .pc-overview-head p{font-size:14px!important}
  .pc-overview-tools{grid-template-columns:1fr auto!important;gap:8px!important;margin-bottom:20px!important}
  .pc-overview-search{height:44px!important;padding:0 13px!important}
  .pc-overview-view{height:44px!important}
  .pc-overview-view button{width:36px!important;height:36px!important}

  .pc-shoot-grid.pc-view-list,
  .pc-shoot-grid.pc-view-grid{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:12px!important;
  }
  .pc-view-list .pc-shoot-card,
  .pc-view-grid .pc-shoot-card{
    display:block!important;
    min-height:0!important;
  }
  .pc-view-list .pc-shoot-cover,
  .pc-view-grid .pc-shoot-cover{
    min-height:0!important;
    aspect-ratio:4/3!important;
  }
  .pc-view-list .pc-shoot-meta,
  .pc-view-grid .pc-shoot-meta{
    position:relative!important;
    min-height:94px!important;
    padding:12px 12px 14px!important;
    padding-right:12px!important;
  }
  .pc-view-list .pc-shoot-meta h2,
  .pc-view-grid .pc-shoot-meta h2{
    font-size:14px!important;
    margin-bottom:5px!important;
  }
  .pc-shoot-details span{font-size:10px!important}
  .pc-shoot-card .pc-arrow{display:none!important}

  .pc-gallery-hero{
    min-height:310px!important;
    margin-left:-16px!important;
    margin-right:-16px!important;
    border-left:0!important;border-right:0!important;
  }
  .pc-gallery-hero-top{left:18px!important;top:18px!important}
  .pc-gallery-hero-content{
    left:18px!important;right:18px!important;bottom:18px!important;
    align-items:flex-start!important;flex-direction:column!important;gap:14px!important;
  }
  .pc-gallery-hero-content h1{font-size:32px!important}
  .pc-gallery-actions{width:100%!important}
  .pc-download-menu,.pc-download-trigger{width:100%!important}
  .pc-gallery-filter{gap:18px!important;overflow:auto!important}
  .pc-filter-button{font-size:11px!important}
  .pc-gallery-page .pc-masonry{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important}
}
@media(max-width:430px){
  .pc-shoot-grid.pc-view-list,
  .pc-shoot-grid.pc-view-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

/* 1.0.3 — gallery tabs spacing + download popover layering */

/* Give the filter tabs a real clickable/hover area without changing the underline alignment. */
.pc-gallery-filter{
  align-items:stretch!important;
  gap:8px!important;
}
.pc-gallery-filter .pc-filter-button{
  min-height:46px!important;
  padding:0 16px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:9px 9px 0 0!important;
  line-height:1.2!important;
}
.pc-gallery-filter .pc-filter-button:hover{
  background:rgba(255,255,255,.055)!important;
  color:#fff!important;
}
.pc-gallery-filter .pc-filter-button.is-active{
  background:rgba(255,255,255,.035)!important;
}
.pc-gallery-filter .pc-filter-button.is-active::after{
  left:16px!important;
  right:16px!important;
}

/* The download dropdown must be allowed to leave the hero and sit above all gallery content. */
.pc-gallery-hero{
  overflow:visible!important;
  z-index:20!important;
}
.pc-gallery-hero-image,
.pc-gallery-hero-shade{
  border-radius:inherit!important;
}
.pc-gallery-hero-image{
  clip-path:inset(0 round var(--pc-radius));
}
.pc-corners-square .pc-gallery-hero-image{
  clip-path:none!important;
}
.pc-gallery-hero-content,
.pc-gallery-actions,
.pc-download-menu{
  position:relative!important;
  z-index:50!important;
}
.pc-download-popover{
  z-index:9999!important;
  top:calc(100% + 10px)!important;
  overflow:visible!important;
  box-shadow:0 24px 70px rgba(0,0,0,.48)!important;
}
.pc-selection-panel,
.pc-gallery-filter,
.pc-masonry{
  position:relative!important;
  z-index:1!important;
}

@media(max-width:700px){
  .pc-gallery-filter{
    gap:4px!important;
  }
  .pc-gallery-filter .pc-filter-button{
    min-height:44px!important;
    padding:0 12px!important;
  }
  .pc-gallery-filter .pc-filter-button.is-active::after{
    left:12px!important;
    right:12px!important;
  }
  .pc-download-popover{
    left:0!important;
    right:auto!important;
    width:min(310px,calc(100vw - 36px))!important;
  }
}

/* 1.0.4 — hidden search results must override list/grid display rules */
.pc-shoot-grid .pc-shoot-card[hidden]{
  display:none!important;
}

/* 1.0.5 — hero layout: back link above, title left bottom, download right bottom */
.pc-gallery-back{
  margin:0 0 14px!important;
}
.pc-gallery-back a{
  display:inline-flex!important;
  align-items:center!important;
  gap:7px!important;
  color:var(--pc-muted)!important;
  text-decoration:none!important;
  font-size:13px!important;
  font-weight:500!important;
  transition:color .18s ease!important;
}
.pc-gallery-back a:hover{
  color:var(--pc-text)!important;
}

.pc-gallery-hero{
  position:relative!important;
  overflow:visible!important;
  z-index:20!important;
}

.pc-gallery-hero-image,
.pc-gallery-hero-shade{
  border-radius:inherit!important;
}

/* Keep the visual hero clipped, but not the dropdown layer. */
.pc-gallery-hero-image{
  clip-path:inset(0 round var(--pc-radius));
}
.pc-corners-square .pc-gallery-hero-image{
  clip-path:none!important;
}

.pc-gallery-hero-content{
  position:absolute!important;
  left:30px!important;
  right:30px!important;
  bottom:28px!important;
  z-index:60!important;
  display:flex!important;
  align-items:flex-end!important;
  justify-content:space-between!important;
  gap:28px!important;
}

.pc-gallery-hero-copy{
  min-width:0!important;
}

.pc-gallery-hero-copy h1{
  margin:0 0 8px!important;
  color:#fff!important;
  font-size:clamp(32px,4vw,48px)!important;
  font-weight:600!important;
  line-height:1.05!important;
  letter-spacing:-.035em!important;
  text-shadow:0 2px 14px rgba(0,0,0,.28)!important;
}

.pc-gallery-hero-copy .pc-gallery-meta{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:7px 12px!important;
  color:rgba(255,255,255,.84)!important;
  font-size:13px!important;
  text-shadow:0 1px 8px rgba(0,0,0,.3)!important;
}

.pc-gallery-actions{
  position:relative!important;
  z-index:80!important;
  flex:0 0 auto!important;
  align-self:flex-end!important;
}

.pc-download-menu{
  position:relative!important;
  z-index:90!important;
}

.pc-download-popover{
  z-index:99999!important;
  top:calc(100% + 10px)!important;
  right:0!important;
  left:auto!important;
  overflow:visible!important;
  box-shadow:0 24px 80px rgba(0,0,0,.52)!important;
}

.pc-selection-panel,
.pc-gallery-filter,
.pc-masonry{
  position:relative!important;
  z-index:1!important;
}

@media(max-width:700px){
  .pc-gallery-back{
    margin-bottom:12px!important;
  }

  .pc-gallery-hero-content{
    left:18px!important;
    right:18px!important;
    bottom:18px!important;
    align-items:flex-end!important;
    flex-direction:row!important;
    gap:14px!important;
  }

  .pc-gallery-hero-copy{
    flex:1 1 auto!important;
    min-width:0!important;
  }

  .pc-gallery-hero-copy h1{
    font-size:28px!important;
  }

  .pc-gallery-actions{
    width:auto!important;
    flex:0 0 auto!important;
  }

  .pc-download-menu,
  .pc-download-trigger{
    width:auto!important;
  }

  .pc-download-trigger{
    min-width:44px!important;
    white-space:nowrap!important;
  }

  .pc-download-popover{
    right:0!important;
    left:auto!important;
    width:min(310px,calc(100vw - 36px))!important;
  }
}

/* 1.0.6 — mobile search/sort/view controls */

/* iOS Safari zooms focused inputs below 16px. */
@media(max-width:700px){
  .pc-overview-search input{
    font-size:16px!important;
  }

  /* Keep all three controls available on mobile. */
  .pc-overview-tools{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    grid-template-areas:
      "search search"
      "sort view"!important;
    gap:8px!important;
    align-items:center!important;
  }

  .pc-overview-search{
    grid-area:search!important;
    width:100%!important;
    min-width:0!important;
  }

  .pc-overview-sort{
    grid-area:sort!important;
    display:block!important;
    width:100%!important;
    min-width:0!important;
    height:44px!important;
    padding:0 36px 0 14px!important;
    border-radius:999px!important;
    font-size:14px!important;
  }

  .pc-overview-view{
    grid-area:view!important;
    display:flex!important;
    justify-self:end!important;
    height:44px!important;
  }

  .pc-overview-view button{
    width:38px!important;
    height:36px!important;
  }

  /* LIST / STACKED VIEW: one shoot per row. */
  .pc-shoot-grid.pc-view-list{
    display:flex!important;
    flex-direction:column!important;
    gap:12px!important;
  }

  .pc-shoot-grid.pc-view-list .pc-shoot-card{
    display:grid!important;
    grid-template-columns:42% minmax(0,58%)!important;
    min-height:132px!important;
  }

  .pc-shoot-grid.pc-view-list .pc-shoot-cover{
    min-height:132px!important;
    height:100%!important;
    aspect-ratio:auto!important;
  }

  .pc-shoot-grid.pc-view-list .pc-shoot-meta{
    min-height:132px!important;
    padding:15px 14px!important;
    display:flex!important;
    align-items:center!important;
  }

  .pc-shoot-grid.pc-view-list .pc-shoot-meta h2{
    font-size:15px!important;
    line-height:1.25!important;
    margin-bottom:6px!important;
  }

  .pc-shoot-grid.pc-view-list .pc-shoot-details span{
    font-size:10px!important;
  }

  /* GRID VIEW: two compact cards next to each other. */
  .pc-shoot-grid.pc-view-grid{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
  }

  .pc-shoot-grid.pc-view-grid .pc-shoot-card{
    display:block!important;
    min-height:0!important;
  }

  .pc-shoot-grid.pc-view-grid .pc-shoot-cover{
    min-height:0!important;
    aspect-ratio:4/3!important;
  }

  .pc-shoot-grid.pc-view-grid .pc-shoot-meta{
    min-height:92px!important;
    padding:11px 11px 13px!important;
  }

  .pc-shoot-grid.pc-view-grid .pc-shoot-meta h2{
    font-size:14px!important;
    line-height:1.25!important;
    margin-bottom:5px!important;
  }

  .pc-shoot-grid.pc-view-grid .pc-shoot-details{
    gap:4px 9px!important;
  }

  .pc-shoot-grid.pc-view-grid .pc-shoot-details span{
    font-size:10px!important;
  }

  /* The overview arrow is intentionally omitted in the compact mobile cards. */
  .pc-shoot-card .pc-arrow{
    display:none!important;
  }
}

@media(max-width:390px){
  .pc-overview-sort{
    font-size:13px!important;
  }
}

/* 1.0.7 — exact hero alignment + guaranteed gallery thumb visibility */

/* Hero bottom row: title/meta left, download right, same inset all around. */
.pc-gallery-hero-content{
  position:absolute!important;
  left:30px!important;
  right:30px!important;
  bottom:30px!important;
  z-index:60!important;
  display:flex!important;
  flex-direction:row!important;
  align-items:flex-end!important;
  justify-content:space-between!important;
  gap:28px!important;
  text-align:left!important;
}

.pc-gallery-hero-copy{
  flex:1 1 auto!important;
  min-width:0!important;
  text-align:left!important;
}

.pc-gallery-hero-copy h1{
  text-align:left!important;
  margin:0 0 8px!important;
}

.pc-gallery-hero-copy .pc-gallery-meta{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  text-align:left!important;
  margin:0!important;
}

.pc-gallery-actions{
  position:relative!important;
  z-index:80!important;
  flex:0 0 auto!important;
  align-self:flex-end!important;
  margin:0!important;
}

.pc-download-menu{
  position:relative!important;
  z-index:100!important;
}

.pc-download-popover{
  position:absolute!important;
  z-index:100000!important;
  right:0!important;
  left:auto!important;
  top:calc(100% + 10px)!important;
}

/* Thumbnails must never depend on the reveal observer to be visible. */
.pc-gallery-page .pc-masonry .pc-thumb{
  opacity:1!important;
  visibility:visible!important;
  transform:none!important;
}

.pc-gallery-page .pc-masonry .pc-thumb img{
  opacity:1!important;
  visibility:visible!important;
}

@media(max-width:700px){
  .pc-gallery-hero-content{
    left:18px!important;
    right:18px!important;
    bottom:18px!important;
    flex-direction:row!important;
    align-items:flex-end!important;
    gap:12px!important;
  }

  .pc-gallery-hero-copy{
    min-width:0!important;
    text-align:left!important;
  }

  .pc-gallery-hero-copy h1,
  .pc-gallery-hero-copy .pc-gallery-meta{
    text-align:left!important;
    justify-content:flex-start!important;
  }

  .pc-gallery-actions{
    width:auto!important;
    flex:0 0 auto!important;
    align-self:flex-end!important;
  }

  .pc-download-menu,
  .pc-download-trigger{
    width:auto!important;
  }

  .pc-download-popover{
    right:0!important;
    left:auto!important;
    width:min(310px,calc(100vw - 36px))!important;
  }
}

/* 1.0.8 — search filtering must win over every responsive card display rule */
.pc-shoot-grid .pc-shoot-card[hidden],
.pc-shoot-grid.pc-view-list .pc-shoot-card[hidden],
.pc-shoot-grid.pc-view-grid .pc-shoot-card[hidden]{
  display:none!important;
}
@media(max-width:700px){
  .pc-overview-search input{
    font-size:16px!important;
    touch-action:manipulation!important;
    -webkit-appearance:none!important;
    appearance:none!important;
  }
}

/* 1.0.9 — consistent mobile page gutters */
@media(max-width:700px){
  .pc-portal{
    --pc-mobile-gutter:16px;
  }

  /* The page container owns the mobile side padding. */
  .pc-client-home,
  .pc-gallery-page{
    padding-left:var(--pc-mobile-gutter)!important;
    padding-right:var(--pc-mobile-gutter)!important;
    box-sizing:border-box!important;
  }

  /* Never let the hero escape the same gutter as the rest of the page. */
  .pc-gallery-hero{
    width:100%!important;
    max-width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
    box-sizing:border-box!important;
  }

  .pc-gallery-back,
  .pc-selection-panel,
  .pc-gallery-filter,
  .pc-masonry{
    width:100%!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }

  /* Hero content uses the same 16px visual inset. */
  .pc-gallery-hero-content{
    left:var(--pc-mobile-gutter)!important;
    right:var(--pc-mobile-gutter)!important;
    bottom:var(--pc-mobile-gutter)!important;
  }

  /* Keep controls aligned to the exact same page gutter. */
  .pc-overview-head,
  .pc-overview-tools,
  .pc-shoot-grid{
    width:100%!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }
}

/* 1.0.10 — mobile content uses exactly the same gutter as logo/logout header */
@media(max-width:700px){
  /*
   * Header is width: calc(100% - 32px), centered = 16px gutter.
   * Client/gallery containers already use the same centered width, so do not
   * add a second 16px padding on top of it.
   */
  .pc-client-home,
  .pc-gallery-page{
    width:calc(100% - 32px)!important;
    max-width:none!important;
    margin-left:auto!important;
    margin-right:auto!important;
    padding-left:0!important;
    padding-right:0!important;
    box-sizing:border-box!important;
  }

  .pc-gallery-hero,
  .pc-gallery-back,
  .pc-selection-panel,
  .pc-gallery-filter,
  .pc-masonry,
  .pc-overview-head,
  .pc-overview-tools,
  .pc-shoot-grid{
    width:100%!important;
    max-width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
    box-sizing:border-box!important;
  }

  /* Inner hero spacing remains a separate 16px content inset. */
  .pc-gallery-hero-content{
    left:16px!important;
    right:16px!important;
    bottom:16px!important;
  }
}

/* 1.0.11 — restore shoot overview arrow on mobile */
@media(max-width:700px){
  .pc-shoot-card .pc-arrow{
    display:grid!important;
    place-items:center!important;
    position:absolute!important;
    right:12px!important;
    top:50%!important;
    transform:translateY(-50%)!important;
    width:34px!important;
    height:34px!important;
    min-width:34px!important;
    border-radius:50%!important;
    background:rgba(255,255,255,.10)!important;
    color:#fff!important;
    z-index:3!important;
  }

  .pc-shoot-card .pc-arrow svg{
    display:block!important;
    width:15px!important;
    height:15px!important;
  }

  .pc-shoot-card .pc-shoot-meta{
    position:relative!important;
    padding-right:54px!important;
  }

  /* In grid view keep the arrow compact in the lower-right corner. */
  .pc-shoot-grid.pc-view-grid .pc-arrow{
    right:9px!important;
    top:auto!important;
    bottom:10px!important;
    transform:none!important;
    width:30px!important;
    height:30px!important;
    min-width:30px!important;
  }

  .pc-shoot-grid.pc-view-grid .pc-shoot-meta{
    padding-right:44px!important;
  }
}

/* 1.0.12 — per-client portal theme + complete light version of redesigned UI */

/* Dark theme remains the redesigned reference. */
.pc-portal.pc-theme-dark{
  --pc-bg:#0d1116;
  --pc-surface:#151a20;
  --pc-surface-soft:#1b2129;
  --pc-text:#f7f8fa;
  --pc-muted:#a2a9b3;
  --pc-line:rgba(255,255,255,.09);
  --pc-shadow:0 22px 70px rgba(0,0,0,.26);
  color-scheme:dark!important;
  background:
    radial-gradient(circle at 18% -8%,rgba(106,120,255,.08),transparent 34%),
    linear-gradient(180deg,#0e1319 0%,#0b0f14 100%)!important;
}

/* Light theme built from the same new design language. */
.pc-portal.pc-theme-light{
  --pc-bg:#f3f0e9;
  --pc-surface:#fffdf8;
  --pc-surface-soft:#ebe7de;
  --pc-text:#202733;
  --pc-muted:#737b86;
  --pc-line:rgba(32,39,51,.11);
  --pc-shadow:0 22px 64px rgba(49,43,33,.10);
  color-scheme:light!important;
  background:
    radial-gradient(circle at 18% -8%,rgba(115,126,255,.08),transparent 34%),
    linear-gradient(180deg,#f7f4ee 0%,#f0ede6 100%)!important;
}

.pc-theme-light .pc-header{
  border-bottom-color:rgba(32,39,51,.08)!important;
}
.pc-theme-light .pc-brand strong{
  color:var(--pc-text)!important;
}
.pc-theme-light .pc-logout{
  background:rgba(255,255,255,.60)!important;
  border-color:rgba(32,39,51,.16)!important;
  color:var(--pc-text)!important;
}
.pc-theme-light .pc-logout:hover{
  background:#fff!important;
  border-color:rgba(32,39,51,.24)!important;
}

.pc-theme-light .pc-overview-head .pc-kicker,
.pc-theme-light .pc-overview-head p{
  color:var(--pc-muted)!important;
}
.pc-theme-light .pc-overview-head h1{
  color:var(--pc-text)!important;
}

.pc-theme-light .pc-overview-search,
.pc-theme-light .pc-overview-sort,
.pc-theme-light .pc-overview-view{
  background:rgba(255,253,248,.88)!important;
  border-color:rgba(32,39,51,.12)!important;
  box-shadow:0 6px 22px rgba(54,47,37,.035)!important;
}
.pc-theme-light .pc-overview-search svg{
  stroke:#626b77!important;
}
.pc-theme-light .pc-overview-search input,
.pc-theme-light .pc-overview-sort{
  color:var(--pc-text)!important;
}
.pc-theme-light .pc-overview-search input::placeholder{
  color:#9299a1!important;
}
.pc-theme-light .pc-overview-view button{
  color:#7f8791!important;
}
.pc-theme-light .pc-overview-view button.is-active{
  color:#fff!important;
  background:var(--pc-accent)!important;
}

.pc-theme-light .pc-shoot-card{
  background:linear-gradient(135deg,#fffdf9,#f7f3eb)!important;
  border-color:rgba(32,39,51,.08)!important;
  color:var(--pc-text)!important;
  box-shadow:0 8px 30px rgba(45,39,31,.045)!important;
}
.pc-theme-light .pc-shoot-card:hover{
  border-color:rgba(32,39,51,.14)!important;
  box-shadow:0 18px 45px rgba(45,39,31,.085)!important;
}
.pc-theme-light .pc-shoot-meta h2{
  color:var(--pc-text)!important;
}
.pc-theme-light .pc-shoot-details span,
.pc-theme-light .pc-expiry{
  color:var(--pc-muted)!important;
}
.pc-theme-light .pc-arrow{
  background:rgba(32,39,51,.075)!important;
  color:var(--pc-text)!important;
}

/* Hero remains image-led, so white copy stays readable in both themes. */
.pc-theme-light .pc-gallery-back a{
  color:#6d7580!important;
}
.pc-theme-light .pc-gallery-back a:hover{
  color:var(--pc-text)!important;
}
.pc-theme-light .pc-gallery-hero{
  background:linear-gradient(135deg,#dcd8cf,#cfc9be)!important;
  border-color:rgba(32,39,51,.09)!important;
}
.pc-theme-light .pc-gallery-hero-shade{
  background:linear-gradient(180deg,rgba(10,13,18,.04) 0%,rgba(10,13,18,.06) 38%,rgba(10,13,18,.80) 100%)!important;
}

.pc-theme-light .pc-selection-panel{
  background:rgba(255,253,248,.88)!important;
  border-color:rgba(32,39,51,.10)!important;
  color:var(--pc-text)!important;
  box-shadow:0 6px 24px rgba(45,39,31,.035)!important;
}
.pc-theme-light .pc-selection-panel small,
.pc-theme-light .pc-selection-panel .pc-kicker{
  color:var(--pc-muted)!important;
}
.pc-theme-light .pc-selection-panel strong{
  color:var(--pc-text)!important;
}

.pc-theme-light .pc-gallery-filter{
  border-bottom-color:rgba(32,39,51,.10)!important;
}
.pc-theme-light .pc-filter-button{
  color:#747d88!important;
}
.pc-theme-light .pc-filter-button:hover{
  background:rgba(32,39,51,.045)!important;
  color:var(--pc-text)!important;
}
.pc-theme-light .pc-filter-button.is-active{
  background:rgba(32,39,51,.035)!important;
  color:var(--pc-text)!important;
}

.pc-theme-light .pc-gallery-page .pc-thumb{
  background:#e8e3d9!important;
}
.pc-theme-light .pc-thumb-fav,
.pc-theme-light .pc-thumb-note{
  background:rgba(20,24,30,.58)!important;
  border-color:rgba(255,255,255,.38)!important;
  color:#fff!important;
}

.pc-theme-light .pc-download-popover{
  background:#fffdf8!important;
  border-color:rgba(32,39,51,.10)!important;
  box-shadow:0 24px 70px rgba(46,39,29,.18)!important;
}
.pc-theme-light .pc-download-popover a{
  color:var(--pc-text)!important;
}
.pc-theme-light .pc-download-popover a:hover{
  background:#f2eee6!important;
}
.pc-theme-light .pc-download-popover small{
  color:var(--pc-muted)!important;
}

.pc-theme-light .pc-footer{
  border-top-color:rgba(32,39,51,.10)!important;
  color:#79818b!important;
}

/* Login gets the same light/dark treatment. */
.pc-theme-light .pc-login-card{
  background:rgba(255,253,248,.94)!important;
  border-color:rgba(32,39,51,.10)!important;
  box-shadow:0 28px 70px rgba(45,39,31,.10)!important;
}
.pc-theme-light .pc-login-card h1{
  color:var(--pc-text)!important;
}
.pc-theme-light .pc-login-card p{
  color:var(--pc-muted)!important;
}
.pc-theme-light .pc-login-card form{
  background:#f3f0e9!important;
  border-color:rgba(32,39,51,.10)!important;
}
.pc-theme-light .pc-login-card input{
  color:var(--pc-text)!important;
}

/* Auto continues to follow OS, but uses the new light and dark palettes. */
.pc-portal.pc-theme-auto{
  --pc-bg:#f3f0e9;
  --pc-surface:#fffdf8;
  --pc-surface-soft:#ebe7de;
  --pc-text:#202733;
  --pc-muted:#737b86;
  --pc-line:rgba(32,39,51,.11);
  color-scheme:light!important;
  background:linear-gradient(180deg,#f7f4ee 0%,#f0ede6 100%)!important;
}
@media(prefers-color-scheme:dark){
  .pc-portal.pc-theme-auto{
    --pc-bg:#0d1116;
    --pc-surface:#151a20;
    --pc-surface-soft:#1b2129;
    --pc-text:#f7f8fa;
    --pc-muted:#a2a9b3;
    --pc-line:rgba(255,255,255,.09);
    color-scheme:dark!important;
    background:linear-gradient(180deg,#0e1319 0%,#0b0f14 100%)!important;
  }
}

/* Make body chrome visually follow the portal theme where supported. */
body.pc-standalone-page{
  background:transparent!important;
}

/* 1.0.13 — minimal frontend light/dark switch */
.pc-header-actions{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:10px!important;
  min-width:0!important;
}

.pc-theme-toggle{
  appearance:none!important;
  -webkit-appearance:none!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  min-width:76px!important;
  height:34px!important;
  margin:0!important;
  padding:0 8px!important;
  border:1px solid var(--pc-line)!important;
  background:color-mix(in srgb,var(--pc-surface) 82%,transparent)!important;
  color:var(--pc-muted)!important;
  box-shadow:none!important;
  cursor:pointer!important;
  line-height:1!important;
  -webkit-tap-highlight-color:transparent!important;
}

.pc-corners-rounded .pc-theme-toggle{
  border-radius:999px!important;
}

.pc-corners-square .pc-theme-toggle{
  border-radius:0!important;
}

.pc-theme-icon{
  display:grid!important;
  place-items:center!important;
  width:14px!important;
  height:14px!important;
  flex:0 0 14px!important;
  opacity:.48!important;
  transition:opacity .18s ease,color .18s ease!important;
}

.pc-theme-icon svg{
  display:block!important;
  width:14px!important;
  height:14px!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.7!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}

.pc-theme-toggle-track{
  position:relative!important;
  display:block!important;
  width:26px!important;
  height:14px!important;
  flex:0 0 26px!important;
  background:color-mix(in srgb,var(--pc-text) 13%,transparent)!important;
  border:1px solid color-mix(in srgb,var(--pc-text) 12%,transparent)!important;
  transition:background .18s ease!important;
}

.pc-corners-rounded .pc-theme-toggle-track{
  border-radius:999px!important;
}

.pc-corners-square .pc-theme-toggle-track{
  border-radius:0!important;
}

.pc-theme-toggle-knob{
  position:absolute!important;
  top:2px!important;
  left:2px!important;
  width:8px!important;
  height:8px!important;
  background:var(--pc-text)!important;
  transition:transform .2s var(--pc-ease),background .18s ease!important;
}

.pc-corners-rounded .pc-theme-toggle-knob{
  border-radius:50%!important;
}

.pc-corners-square .pc-theme-toggle-knob{
  border-radius:0!important;
}

.pc-theme-toggle.is-dark .pc-theme-toggle-knob{
  transform:translateX(12px)!important;
}

.pc-theme-toggle:not(.is-dark) .pc-theme-icon-sun,
.pc-theme-toggle.is-dark .pc-theme-icon-moon{
  opacity:1!important;
  color:var(--pc-text)!important;
}

.pc-theme-toggle:hover{
  border-color:color-mix(in srgb,var(--pc-text) 22%,var(--pc-line))!important;
}

.pc-theme-light .pc-theme-toggle{
  background:rgba(255,253,248,.72)!important;
}

.pc-theme-dark .pc-theme-toggle{
  background:rgba(255,255,255,.035)!important;
}

@media(max-width:700px){
  .pc-header-actions{
    gap:7px!important;
  }

  .pc-theme-toggle{
    min-width:64px!important;
    height:32px!important;
    gap:4px!important;
    padding:0 6px!important;
  }

  .pc-theme-icon,
  .pc-theme-icon svg{
    width:12px!important;
    height:12px!important;
  }

  .pc-theme-toggle-track{
    width:24px!important;
    flex-basis:24px!important;
  }

  .pc-theme-toggle.is-dark .pc-theme-toggle-knob{
    transform:translateX(10px)!important;
  }
}

/* 1.0.14 — corner style is authoritative for every interactive control */

/* Rounded client style */
.pc-corners-rounded button,
.pc-corners-rounded .button,
.pc-corners-rounded input[type="button"],
.pc-corners-rounded input[type="submit"],
.pc-corners-rounded .pc-logout,
.pc-corners-rounded .pc-download-trigger,
.pc-corners-rounded .pc-filter-button,
.pc-corners-rounded .pc-overview-search,
.pc-corners-rounded .pc-overview-sort,
.pc-corners-rounded .pc-overview-view,
.pc-corners-rounded .pc-overview-view button,
.pc-corners-rounded .pc-theme-toggle,
.pc-corners-rounded .pc-theme-toggle-track,
.pc-corners-rounded .pc-login-card input,
.pc-corners-rounded .pc-login-card form,
.pc-corners-rounded .pc-selection-panel button,
.pc-corners-rounded .pc-download-popover,
.pc-corners-rounded .pc-download-popover a{
  border-radius:var(--pc-radius-sm)!important;
}

/* Controls that are intentionally pill-shaped in rounded mode. */
.pc-corners-rounded .pc-overview-search,
.pc-corners-rounded .pc-overview-sort,
.pc-corners-rounded .pc-theme-toggle{
  border-radius:999px!important;
}
.pc-corners-rounded .pc-theme-toggle-track,
.pc-corners-rounded .pc-theme-toggle-knob,
.pc-corners-rounded .pc-arrow{
  border-radius:999px!important;
}

/* Square client style: no control may retain a rounded radius. */
.pc-corners-square button,
.pc-corners-square .button,
.pc-corners-square input,
.pc-corners-square select,
.pc-corners-square textarea,
.pc-corners-square .pc-logout,
.pc-corners-square .pc-download-trigger,
.pc-corners-square .pc-filter-button,
.pc-corners-square .pc-overview-search,
.pc-corners-square .pc-overview-sort,
.pc-corners-square .pc-overview-view,
.pc-corners-square .pc-overview-view button,
.pc-corners-square .pc-theme-toggle,
.pc-corners-square .pc-theme-toggle-track,
.pc-corners-square .pc-theme-toggle-knob,
.pc-corners-square .pc-arrow,
.pc-corners-square .pc-login-card,
.pc-corners-square .pc-login-card form,
.pc-corners-square .pc-selection-panel,
.pc-corners-square .pc-download-menu,
.pc-corners-square .pc-download-popover,
.pc-corners-square .pc-download-popover a,
.pc-corners-square .pc-thumb-fav,
.pc-corners-square .pc-thumb-note{
  border-radius:0!important;
}

/* 1.0.16 — gallery filter tabs: horizontal only, never vertical scroll */
.pc-gallery-filter{
  overflow-x:auto!important;
  overflow-y:hidden!important;
  max-height:none!important;
  -webkit-overflow-scrolling:touch!important;
  scrollbar-width:none!important;
  overscroll-behavior-y:none!important;
}
.pc-gallery-filter::-webkit-scrollbar{
  display:none!important;
  width:0!important;
  height:0!important;
}
.pc-gallery-filter .pc-filter-button{
  flex:0 0 auto!important;
  overflow:visible!important;
}

@media(max-width:700px){
  .pc-gallery-filter{
    overflow-x:auto!important;
    overflow-y:hidden!important;
    white-space:nowrap!important;
    touch-action:pan-x!important;
  }
}

/* 1.0.18 — light theme background mirrors dark theme contrast direction */
.pc-portal.pc-theme-light{
  background:
    radial-gradient(circle at 18% -8%,rgba(74,68,58,.12),transparent 36%),
    linear-gradient(180deg,#ece8df 0%,#f6f3ed 42%,#faf8f4 100%)!important;
}

/* Keep the automatic light palette visually consistent as well. */
.pc-portal.pc-theme-auto{
  background:
    radial-gradient(circle at 18% -8%,rgba(74,68,58,.12),transparent 36%),
    linear-gradient(180deg,#ece8df 0%,#f6f3ed 42%,#faf8f4 100%)!important;
}

@media(prefers-color-scheme:dark){
  .pc-portal.pc-theme-auto{
    background:
      radial-gradient(circle at 18% -8%,rgba(106,120,255,.08),transparent 34%),
      linear-gradient(180deg,#0e1319 0%,#0b0f14 100%)!important;
  }
}

/* 1.0.19 — more neutral grey depth from top-left in light mode */
.pc-portal.pc-theme-light{
  background:
    radial-gradient(circle at 16% -6%,rgba(80,84,89,.14),transparent 38%),
    linear-gradient(180deg,#e8e9ea 0%,#f2f2f1 43%,#fafafa 100%)!important;
}

.pc-portal.pc-theme-auto{
  background:
    radial-gradient(circle at 16% -6%,rgba(80,84,89,.14),transparent 38%),
    linear-gradient(180deg,#e8e9ea 0%,#f2f2f1 43%,#fafafa 100%)!important;
}

@media(prefers-color-scheme:dark){
  .pc-portal.pc-theme-auto{
    background:
      radial-gradient(circle at 18% -8%,rgba(106,120,255,.08),transparent 34%),
      linear-gradient(180deg,#0e1319 0%,#0b0f14 100%)!important;
  }
}

/* 1.0.20 — subtle Liquid Glass treatment
   Kept restrained: translucent surfaces, soft edge highlight, blur and depth.
   Photo content itself is never blurred. */

/* Shared glass surfaces */
.pc-overview-search,
.pc-overview-sort,
.pc-overview-view,
.pc-theme-toggle,
.pc-logout,
.pc-selection-panel,
.pc-download-popover,
.pc-login-card{
  -webkit-backdrop-filter:blur(16px) saturate(125%)!important;
  backdrop-filter:blur(16px) saturate(125%)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.10),
    0 10px 30px rgba(0,0,0,.055)!important;
}

/* Dark glass */
.pc-theme-dark .pc-overview-search,
.pc-theme-dark .pc-overview-sort,
.pc-theme-dark .pc-overview-view,
.pc-theme-dark .pc-theme-toggle,
.pc-theme-dark .pc-logout,
.pc-theme-dark .pc-selection-panel,
.pc-theme-dark .pc-download-popover,
.pc-theme-dark .pc-login-card{
  background:linear-gradient(
    135deg,
    rgba(255,255,255,.075),
    rgba(255,255,255,.025)
  )!important;
  border-color:rgba(255,255,255,.12)!important;
}

/* Light glass */
.pc-theme-light .pc-overview-search,
.pc-theme-light .pc-overview-sort,
.pc-theme-light .pc-overview-view,
.pc-theme-light .pc-theme-toggle,
.pc-theme-light .pc-logout,
.pc-theme-light .pc-selection-panel,
.pc-theme-light .pc-download-popover,
.pc-theme-light .pc-login-card{
  background:linear-gradient(
    135deg,
    rgba(255,255,255,.76),
    rgba(255,255,255,.48)
  )!important;
  border-color:rgba(255,255,255,.70)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.92),
    0 10px 30px rgba(42,48,55,.075)!important;
}

/* Shoot cards: much lighter glass treatment so photography remains dominant. */
.pc-shoot-card{
  -webkit-backdrop-filter:blur(10px) saturate(112%)!important;
  backdrop-filter:blur(10px) saturate(112%)!important;
}
.pc-theme-dark .pc-shoot-card{
  background:linear-gradient(
    135deg,
    rgba(255,255,255,.055),
    rgba(255,255,255,.018)
  )!important;
  border-color:rgba(255,255,255,.085)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.055),
    0 14px 36px rgba(0,0,0,.10)!important;
}
.pc-theme-light .pc-shoot-card{
  background:linear-gradient(
    135deg,
    rgba(255,255,255,.72),
    rgba(255,255,255,.44)
  )!important;
  border-color:rgba(255,255,255,.76)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.88),
    0 14px 36px rgba(53,58,64,.065)!important;
}

/* Tiny controls receive only a restrained glass highlight. */
.pc-arrow,
.pc-thumb-fav,
.pc-thumb-note,
.pc-overview-view button.is-active{
  -webkit-backdrop-filter:blur(10px) saturate(120%)!important;
  backdrop-filter:blur(10px) saturate(120%)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.13)!important;
}

/* Hero download button: retain accent identity, add a glassy highlight only. */
.pc-download-trigger{
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.22),
    0 8px 22px rgba(0,0,0,.14)!important;
}

/* Hover should feel like glass catching slightly more light, not a large animation. */
@media(hover:hover){
  .pc-overview-search:hover,
  .pc-overview-sort:hover,
  .pc-overview-view:hover,
  .pc-theme-toggle:hover,
  .pc-logout:hover{
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.18),
      0 12px 34px rgba(0,0,0,.075)!important;
  }

  .pc-theme-light .pc-overview-search:hover,
  .pc-theme-light .pc-overview-sort:hover,
  .pc-theme-light .pc-overview-view:hover,
  .pc-theme-light .pc-theme-toggle:hover,
  .pc-theme-light .pc-logout:hover{
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,1),
      0 12px 34px rgba(42,48,55,.095)!important;
  }
}

/* Graceful fallback for browsers without backdrop-filter. */
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .pc-theme-dark .pc-overview-search,
  .pc-theme-dark .pc-overview-sort,
  .pc-theme-dark .pc-overview-view,
  .pc-theme-dark .pc-theme-toggle,
  .pc-theme-dark .pc-logout,
  .pc-theme-dark .pc-selection-panel,
  .pc-theme-dark .pc-download-popover{
    background:#171c22!important;
  }

  .pc-theme-light .pc-overview-search,
  .pc-theme-light .pc-overview-sort,
  .pc-theme-light .pc-overview-view,
  .pc-theme-light .pc-theme-toggle,
  .pc-theme-light .pc-logout,
  .pc-theme-light .pc-selection-panel,
  .pc-theme-light .pc-download-popover{
    background:#f8f8f7!important;
  }
}

/* 1.0.21 — refined Apple-inspired Liquid Glass
   Subtle optical depth: translucent material, edge refraction/highlight,
   backdrop blur + saturation, without overpowering photography. */

.pc-overview-search,
.pc-overview-sort,
.pc-overview-view,
.pc-theme-toggle,
.pc-logout,
.pc-selection-panel,
.pc-download-popover{
  position:relative!important;
  isolation:isolate!important;
  -webkit-backdrop-filter:blur(22px) saturate(145%)!important;
  backdrop-filter:blur(22px) saturate(145%)!important;
}

/* Soft glass edge/refraction layer. */
.pc-overview-search::after,
.pc-overview-view::after,
.pc-theme-toggle::after,
.pc-logout::after,
.pc-selection-panel::after,
.pc-download-popover::after{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  border-radius:inherit!important;
  pointer-events:none!important;
  z-index:-1!important;
  background:
    linear-gradient(145deg,
      rgba(255,255,255,.16) 0%,
      rgba(255,255,255,.045) 34%,
      transparent 58%,
      rgba(255,255,255,.035) 100%)!important;
}

/* Dark material */
.pc-theme-dark .pc-overview-search,
.pc-theme-dark .pc-overview-sort,
.pc-theme-dark .pc-overview-view,
.pc-theme-dark .pc-theme-toggle,
.pc-theme-dark .pc-logout,
.pc-theme-dark .pc-selection-panel,
.pc-theme-dark .pc-download-popover{
  background:linear-gradient(
    145deg,
    rgba(255,255,255,.095),
    rgba(255,255,255,.038) 48%,
    rgba(255,255,255,.025)
  )!important;
  border-color:rgba(255,255,255,.145)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.16),
    inset 0 -1px 0 rgba(255,255,255,.025),
    0 10px 30px rgba(0,0,0,.10)!important;
}

/* Light material */
.pc-theme-light .pc-overview-search,
.pc-theme-light .pc-overview-sort,
.pc-theme-light .pc-overview-view,
.pc-theme-light .pc-theme-toggle,
.pc-theme-light .pc-logout,
.pc-theme-light .pc-selection-panel,
.pc-theme-light .pc-download-popover{
  background:linear-gradient(
    145deg,
    rgba(255,255,255,.68),
    rgba(255,255,255,.42) 48%,
    rgba(255,255,255,.30)
  )!important;
  border-color:rgba(255,255,255,.78)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.96),
    inset 0 -1px 0 rgba(70,76,84,.035),
    0 10px 30px rgba(55,60,67,.07)!important;
}

/* Cards use lighter glass so the photographs stay dominant. */
.pc-shoot-card{
  -webkit-backdrop-filter:blur(14px) saturate(125%)!important;
  backdrop-filter:blur(14px) saturate(125%)!important;
}
.pc-theme-dark .pc-shoot-card{
  background:linear-gradient(145deg,rgba(255,255,255,.065),rgba(255,255,255,.022))!important;
  border-color:rgba(255,255,255,.10)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.09),
    0 12px 32px rgba(0,0,0,.09)!important;
}
.pc-theme-light .pc-shoot-card{
  background:linear-gradient(145deg,rgba(255,255,255,.68),rgba(255,255,255,.38))!important;
  border-color:rgba(255,255,255,.78)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.90),
    0 12px 32px rgba(55,60,67,.06)!important;
}

/* Floating controls on photography: slightly denser translucent glass. */
.pc-arrow,
.pc-thumb-fav,
.pc-thumb-note{
  -webkit-backdrop-filter:blur(14px) saturate(150%)!important;
  backdrop-filter:blur(14px) saturate(150%)!important;
  background:rgba(20,24,30,.38)!important;
  border:1px solid rgba(255,255,255,.18)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.18),
    0 5px 16px rgba(0,0,0,.12)!important;
}

/* Accent download remains recognizable, with a glass-like surface reflection. */
.pc-download-trigger{
  position:relative!important;
  overflow:hidden!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.30),
    inset 0 -1px 0 rgba(0,0,0,.07),
    0 8px 22px rgba(0,0,0,.13)!important;
}
.pc-download-trigger::after{
  content:""!important;
  position:absolute!important;
  left:8%!important;
  right:8%!important;
  top:1px!important;
  height:45%!important;
  border-radius:inherit!important;
  background:linear-gradient(180deg,rgba(255,255,255,.18),transparent)!important;
  pointer-events:none!important;
}

/* Small tactile response, intentionally restrained. */
@media(hover:hover){
  .pc-theme-toggle:hover,
  .pc-logout:hover,
  .pc-overview-view button:hover{
    transform:translateY(-1px)!important;
  }
}
.pc-theme-toggle:active,
.pc-logout:active,
.pc-download-trigger:active{
  transform:scale(.985)!important;
}

/* Respect the client's selected geometry everywhere. */
.pc-corners-square .pc-overview-search::after,
.pc-corners-square .pc-overview-view::after,
.pc-corners-square .pc-theme-toggle::after,
.pc-corners-square .pc-logout::after,
.pc-corners-square .pc-selection-panel::after,
.pc-corners-square .pc-download-popover::after,
.pc-corners-square .pc-download-trigger::after{
  border-radius:0!important;
}

/* 1.0.22 — keep hero download action anchored bottom-right.
   This intentionally overrides generic Liquid Glass control alignment. */
.pc-gallery-hero .pc-gallery-hero-content{
  position:absolute!important;
  left:30px!important;
  right:30px!important;
  top:auto!important;
  bottom:30px!important;
  display:flex!important;
  flex-direction:row!important;
  align-items:flex-end!important;
  justify-content:space-between!important;
  z-index:60!important;
}

.pc-gallery-hero .pc-gallery-actions{
  position:relative!important;
  display:flex!important;
  flex:0 0 auto!important;
  align-self:flex-end!important;
  justify-content:flex-end!important;
  margin:0!important;
  padding:0!important;
  top:auto!important;
  right:auto!important;
  bottom:auto!important;
  left:auto!important;
  transform:none!important;
  z-index:100!important;
}

.pc-gallery-hero .pc-download-menu{
  position:relative!important;
  display:block!important;
  margin:0!important;
  transform:none!important;
  z-index:110!important;
}

.pc-gallery-hero .pc-download-trigger{
  position:relative!important;
  margin:0!important;
  transform:none;
}

.pc-gallery-hero .pc-download-popover{
  position:absolute!important;
  right:0!important;
  left:auto!important;
  top:calc(100% + 10px)!important;
  bottom:auto!important;
  z-index:100000!important;
}

/* Preserve tactile press without changing the action container position. */
.pc-gallery-hero .pc-download-trigger:active{
  transform:scale(.985)!important;
}

@media(max-width:700px){
  .pc-gallery-hero .pc-gallery-hero-content{
    left:16px!important;
    right:16px!important;
    top:auto!important;
    bottom:16px!important;
    align-items:flex-end!important;
  }

  .pc-gallery-hero .pc-gallery-actions{
    align-self:flex-end!important;
    justify-content:flex-end!important;
  }
}

/* 1.0.23 — quieter Liquid Glass.
   Less blur, less transparency/reflection and almost no floating shadow. */
.pc-overview-search,
.pc-overview-sort,
.pc-overview-view,
.pc-theme-toggle,
.pc-logout,
.pc-selection-panel,
.pc-download-popover{
  -webkit-backdrop-filter:blur(10px) saturate(108%)!important;
  backdrop-filter:blur(10px) saturate(108%)!important;
}

/* Reduce the optical highlight layer substantially. */
.pc-overview-search::after,
.pc-overview-view::after,
.pc-theme-toggle::after,
.pc-logout::after,
.pc-selection-panel::after,
.pc-download-popover::after{
  background:linear-gradient(
    145deg,
    rgba(255,255,255,.055) 0%,
    rgba(255,255,255,.015) 38%,
    transparent 64%
  )!important;
}

/* Dark: closer to the original dark UI, with just a hint of glass. */
.pc-theme-dark .pc-overview-search,
.pc-theme-dark .pc-overview-sort,
.pc-theme-dark .pc-overview-view,
.pc-theme-dark .pc-theme-toggle,
.pc-theme-dark .pc-logout,
.pc-theme-dark .pc-selection-panel,
.pc-theme-dark .pc-download-popover{
  background:rgba(255,255,255,.038)!important;
  border-color:rgba(255,255,255,.09)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.065),
    0 6px 18px rgba(0,0,0,.035)!important;
}

/* Light: more solid/neutral, less milky glass. */
.pc-theme-light .pc-overview-search,
.pc-theme-light .pc-overview-sort,
.pc-theme-light .pc-overview-view,
.pc-theme-light .pc-theme-toggle,
.pc-theme-light .pc-logout,
.pc-theme-light .pc-selection-panel,
.pc-theme-light .pc-download-popover{
  background:rgba(255,255,255,.58)!important;
  border-color:rgba(255,255,255,.62)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.72),
    0 6px 18px rgba(50,55,62,.035)!important;
}

/* Shoot cards: virtually solid, only minimal material depth. */
.pc-shoot-card{
  -webkit-backdrop-filter:blur(6px) saturate(105%)!important;
  backdrop-filter:blur(6px) saturate(105%)!important;
}
.pc-theme-dark .pc-shoot-card{
  background:rgba(255,255,255,.035)!important;
  border-color:rgba(255,255,255,.075)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.04),
    0 7px 20px rgba(0,0,0,.035)!important;
}
.pc-theme-light .pc-shoot-card{
  background:rgba(255,255,255,.56)!important;
  border-color:rgba(255,255,255,.64)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.68),
    0 7px 20px rgba(50,55,62,.025)!important;
}

/* Floating image controls: less blur and less gloss. */
.pc-arrow,
.pc-thumb-fav,
.pc-thumb-note{
  -webkit-backdrop-filter:blur(8px) saturate(110%)!important;
  backdrop-filter:blur(8px) saturate(110%)!important;
  background:rgba(20,24,30,.46)!important;
  border-color:rgba(255,255,255,.12)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.09),
    0 3px 10px rgba(0,0,0,.07)!important;
}

/* Download button: remove the obvious glossy reflection, retain tiny depth. */
.pc-download-trigger{
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.13),
    0 5px 14px rgba(0,0,0,.08)!important;
}
.pc-download-trigger::after{
  opacity:.28!important;
}

/* Remove the floating-on-hover feel introduced by 1.0.21. */
@media(hover:hover){
  .pc-theme-toggle:hover,
  .pc-logout:hover,
  .pc-overview-view button:hover{
    transform:none!important;
  }

  .pc-overview-search:hover,
  .pc-overview-sort:hover,
  .pc-overview-view:hover,
  .pc-theme-toggle:hover,
  .pc-logout:hover{
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.075),
      0 6px 18px rgba(0,0,0,.045)!important;
  }

  .pc-theme-light .pc-overview-search:hover,
  .pc-theme-light .pc-overview-sort:hover,
  .pc-theme-light .pc-overview-view:hover,
  .pc-theme-light .pc-theme-toggle:hover,
  .pc-theme-light .pc-logout:hover{
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.78),
      0 6px 18px rgba(50,55,62,.045)!important;
  }
}

/* 1.0.24 — restore subtle floating interaction while keeping quieter glass */
.pc-theme-toggle,
.pc-logout,
.pc-overview-view button,
.pc-download-trigger,
.pc-shoot-card{
  transition:
    transform .22s cubic-bezier(.2,.8,.2,1),
    box-shadow .22s ease,
    border-color .22s ease,
    background-color .22s ease!important;
}

@media(hover:hover){
  .pc-theme-toggle:hover,
  .pc-logout:hover,
  .pc-overview-view button:hover{
    transform:translateY(-2px)!important;
  }

  .pc-download-trigger:hover{
    transform:translateY(-2px)!important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.15),
      0 9px 20px rgba(0,0,0,.11)!important;
  }

  .pc-shoot-card:hover{
    transform:translateY(-3px)!important;
  }

  .pc-theme-dark .pc-shoot-card:hover{
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.055),
      0 12px 28px rgba(0,0,0,.075)!important;
  }

  .pc-theme-light .pc-shoot-card:hover{
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.74),
      0 12px 28px rgba(50,55,62,.065)!important;
  }
}

/* Tactile press remains small and quick. */
.pc-theme-toggle:active,
.pc-logout:active,
.pc-overview-view button:active,
.pc-download-trigger:active{
  transform:translateY(0) scale(.985)!important;
}

/* 1.0.25 — compact portal overview spacing */
.pc-portal .pc-client-home{
  padding-top:0!important;
}

.pc-client-home .pc-overview-head{
  padding-bottom:0!important;
  margin-top:0!important;
}

.pc-portal .pc-header{
  height:90px!important;
}

/* 1.0.26 — prepared page fade-in
   Page shell remains painted immediately; content arrives calmly once
   critical above-the-fold assets are ready. */
.pc-portal.pc-page-preparing{
  opacity:0!important;
  transform:translateY(5px)!important;
}

.pc-portal.pc-page-ready{
  opacity:1!important;
  transform:translateY(0)!important;
  transition:
    opacity .42s cubic-bezier(.22,.61,.36,1),
    transform .52s cubic-bezier(.22,.61,.36,1)!important;
}

/* Prevent animation from affecting later hover/interaction transitions. */
.pc-portal{
  will-change:opacity,transform;
}

/* Respect accessibility preferences: no delayed visual animation. */
@media(prefers-reduced-motion:reduce){
  .pc-portal.pc-page-preparing,
  .pc-portal.pc-page-ready{
    opacity:1!important;
    transform:none!important;
    transition:none!important;
  }
}

/* 1.0.27 — keep background + header/logo visible while page content prepares */

/* The portal itself must remain painted so its light/dark background never disappears. */
.pc-portal.pc-page-preparing{
  opacity:1!important;
  transform:none!important;
}

/* Keep header, logo, theme switch and logout visible and stable. */
.pc-page-preparing .pc-header{
  opacity:1!important;
  transform:none!important;
  visibility:visible!important;
}

/* Only the actual page content/footer waits for the calm reveal. */
.pc-page-preparing .pc-client-home,
.pc-page-preparing .pc-gallery-page,
.pc-page-preparing .pc-footer{
  opacity:0!important;
  transform:translateY(5px)!important;
}

.pc-page-ready .pc-client-home,
.pc-page-ready .pc-gallery-page,
.pc-page-ready .pc-footer{
  opacity:1!important;
  transform:translateY(0)!important;
  transition:
    opacity .42s cubic-bezier(.22,.61,.36,1),
    transform .52s cubic-bezier(.22,.61,.36,1)!important;
}

/* Do not animate the whole portal anymore; this prevents a background flash. */
.pc-portal.pc-page-ready{
  opacity:1!important;
  transform:none!important;
  transition:none!important;
  will-change:auto!important;
}

.pc-client-home,
.pc-gallery-page,
.pc-footer{
  will-change:opacity,transform;
}

@media(prefers-reduced-motion:reduce){
  .pc-page-preparing .pc-client-home,
  .pc-page-preparing .pc-gallery-page,
  .pc-page-preparing .pc-footer,
  .pc-page-ready .pc-client-home,
  .pc-page-ready .pc-gallery-page,
  .pc-page-ready .pc-footer{
    opacity:1!important;
    transform:none!important;
    transition:none!important;
  }
}

/* 1.0.28 — stable browser canvas during document navigation */
html,
body{
  min-height:100%!important;
}

body.pc-standalone-page{
  margin:0!important;
}

/* The background/header are never part of the page reveal animation. */
.pc-portal,
.pc-header,
.pc-brand,
.pc-header-actions{
  transition-property:none!important;
}

/* Content reveal only; no delayed visibility and no full-page opacity animation. */
.pc-page-preparing .pc-client-home,
.pc-page-preparing .pc-gallery-page,
.pc-page-preparing .pc-footer{
  visibility:visible!important;
}

.pc-page-ready .pc-client-home,
.pc-page-ready .pc-gallery-page,
.pc-page-ready .pc-footer{
  transition:
    opacity .34s cubic-bezier(.22,.61,.36,1),
    transform .42s cubic-bezier(.22,.61,.36,1)!important;
}

/* 1.0.29 — lightbox is a viewport layer, independent from page fade/glass contexts */
html.pc-lightbox-open,
body.pc-lightbox-open{
  overflow:hidden!important;
  overscroll-behavior:none!important;
}

body > .pc-lightbox{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100dvh!important;
  min-height:100dvh!important;
  margin:0!important;
  padding:0!important;
  z-index:2147483646!important;
  opacity:0;
  transform:none!important;
  isolation:isolate!important;
  background:#080808!important;
  color:#fff!important;
}

body > .pc-lightbox.pc-open{
  opacity:1!important;
}

body > .pc-lightbox[hidden]{
  display:none!important;
}

/* The page reveal may transform the gallery, but never the lightbox itself. */
body > .pc-lightbox .pc-lb-stage{
  transform:none;
  max-width:100vw!important;
  max-height:100dvh!important;
}

@supports not (height:100dvh){
  body > .pc-lightbox{
    height:100vh!important;
    min-height:100vh!important;
  }
  body > .pc-lightbox .pc-lb-stage{
    max-height:100vh!important;
  }
}

@supports (-webkit-touch-callout:none){
  body > .pc-lightbox{
    padding-top:env(safe-area-inset-top,0px)!important;
    padding-bottom:env(safe-area-inset-bottom,0px)!important;
    box-sizing:border-box!important;
  }
}

/* 1.0.30 — clearer frosted download menu, desktop + mobile */
.pc-gallery-hero .pc-download-popover{
  -webkit-backdrop-filter:blur(24px) saturate(135%)!important;
  backdrop-filter:blur(24px) saturate(135%)!important;
  border:1px solid!important;
  overflow:hidden!important;
}
.pc-theme-dark .pc-gallery-hero .pc-download-popover{
  background:linear-gradient(145deg,rgba(28,33,40,.96),rgba(18,22,28,.94))!important;
  border-color:rgba(255,255,255,.16)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 18px 48px rgba(0,0,0,.30)!important;
  color:#f7f8fa!important;
}
.pc-theme-light .pc-gallery-hero .pc-download-popover{
  background:linear-gradient(145deg,rgba(250,250,250,.97),rgba(237,239,241,.95))!important;
  border-color:rgba(255,255,255,.92)!important;
  box-shadow:inset 0 1px 0 #fff,0 18px 48px rgba(32,38,44,.18)!important;
  color:#202733!important;
}
.pc-theme-dark .pc-gallery-hero .pc-download-popover a{color:#f7f8fa!important}
.pc-theme-dark .pc-gallery-hero .pc-download-popover small{color:rgba(247,248,250,.68)!important}
.pc-theme-light .pc-gallery-hero .pc-download-popover a{color:#202733!important}
.pc-theme-light .pc-gallery-hero .pc-download-popover small{color:#69717b!important}
.pc-theme-dark .pc-gallery-hero .pc-download-popover a:hover{background:rgba(255,255,255,.075)!important}
.pc-theme-light .pc-gallery-hero .pc-download-popover a:hover{background:rgba(32,39,51,.055)!important}

@media(max-width:700px){
  .pc-gallery-hero .pc-download-popover{
    min-width:min(290px,calc(100vw - 32px))!important;
    max-width:calc(100vw - 32px)!important;
    -webkit-backdrop-filter:blur(28px) saturate(130%)!important;
    backdrop-filter:blur(28px) saturate(130%)!important;
  }
  .pc-theme-dark .pc-gallery-hero .pc-download-popover{background:rgba(20,24,30,.975)!important}
  .pc-theme-light .pc-gallery-hero .pc-download-popover{background:rgba(246,247,248,.98)!important}
}

/* 1.0.31 — reliable mobile content fade */
.pc-client-home,
.pc-gallery-page,
.pc-footer{
  transition:
    opacity .38s cubic-bezier(.22,.61,.36,1),
    transform .46s cubic-bezier(.22,.61,.36,1)!important;
}

.pc-page-preparing .pc-client-home,
.pc-page-preparing .pc-gallery-page,
.pc-page-preparing .pc-footer{
  opacity:0!important;
  transform:translateY(6px)!important;
}

.pc-page-ready:not(.pc-page-preparing) .pc-client-home,
.pc-page-ready:not(.pc-page-preparing) .pc-gallery-page,
.pc-page-ready:not(.pc-page-preparing) .pc-footer{
  opacity:1!important;
  transform:translateY(0)!important;
}

@media(max-width:700px){
  .pc-client-home,
  .pc-gallery-page,
  .pc-footer{
    transition:
      opacity .42s cubic-bezier(.22,.61,.36,1),
      transform .50s cubic-bezier(.22,.61,.36,1)!important;
  }
}

/* Respect accessibility settings. */
@media(prefers-reduced-motion:reduce){
  .pc-client-home,
  .pc-gallery-page,
  .pc-footer{
    transition:none!important;
  }
}

/* 1.0.32 — download progress is always a true viewport overlay */
.pc-download-progress{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100dvh!important;
  z-index:2147483645!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:20px!important;
  box-sizing:border-box!important;
  background:rgba(8,11,15,.28)!important;
  -webkit-backdrop-filter:blur(5px)!important;
  backdrop-filter:blur(5px)!important;
  opacity:1!important;
  visibility:visible!important;
  transform:none!important;
}
.pc-download-progress[hidden]{
  display:none!important;
}
.pc-download-progress-card{
  position:relative!important;
  width:min(420px,calc(100vw - 40px))!important;
  padding:22px!important;
  box-sizing:border-box!important;
  -webkit-backdrop-filter:blur(26px) saturate(125%)!important;
  backdrop-filter:blur(26px) saturate(125%)!important;
  box-shadow:0 18px 50px rgba(0,0,0,.22)!important;
}
.pc-theme-dark .pc-download-progress-card{
  background:rgba(24,29,36,.96)!important;
  border:1px solid rgba(255,255,255,.13)!important;
  color:#fff!important;
}
.pc-theme-light .pc-download-progress-card{
  background:rgba(248,249,250,.97)!important;
  border:1px solid rgba(255,255,255,.9)!important;
  color:#202733!important;
}
.pc-download-progress-track{
  display:block!important;
  width:100%!important;
  height:6px!important;
  overflow:hidden!important;
  margin:14px 0 10px!important;
  background:rgba(127,127,127,.18)!important;
}
.pc-download-progress-track span{
  display:block!important;
  height:100%!important;
  min-width:4%!important;
}
@media(max-width:700px){
  .pc-download-progress{
    height:100dvh!important;
    padding:16px!important;
  }
  .pc-download-progress-card{
    width:calc(100vw - 32px)!important;
    padding:20px!important;
  }
}
@supports not (height:100dvh){
  .pc-download-progress{height:100vh!important}
}

/* 1.0.33 — cancellable ZIP preparation + strict theme contrast */
.pc-download-progress-card,
.pc-download-progress-card *{
  box-sizing:border-box!important;
}
.pc-theme-dark .pc-download-progress-card,
.pc-theme-dark .pc-download-progress-card .pc-download-progress-label,
.pc-theme-dark .pc-download-progress-card small{
  color:#fff!important;
}
.pc-theme-light .pc-download-progress-card,
.pc-theme-light .pc-download-progress-card .pc-download-progress-label,
.pc-theme-light .pc-download-progress-card small{
  color:#20252c!important;
}
.pc-download-cancel{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  margin-top:16px!important;
  min-height:40px!important;
  padding:9px 16px!important;
  font:inherit!important;
  font-weight:600!important;
  cursor:pointer!important;
  -webkit-backdrop-filter:blur(10px)!important;
  backdrop-filter:blur(10px)!important;
}
.pc-download-cancel[hidden]{display:none!important}
.pc-theme-dark .pc-download-cancel{
  color:#fff!important;
  background:rgba(255,255,255,.08)!important;
  border:1px solid rgba(255,255,255,.16)!important;
}
.pc-theme-light .pc-download-cancel{
  color:#20252c!important;
  background:rgba(20,28,38,.055)!important;
  border:1px solid rgba(20,28,38,.11)!important;
}
.pc-download-cancel:hover{transform:translateY(-1px)!important}
.pc-download-cancel:disabled{opacity:.55!important;cursor:default!important;transform:none!important}

/* Progress fill follows the client's accent color when available. */
.pc-download-progress-track span{
  background:var(--pc-accent,#6f7cff)!important;
}

/* 1.0.34 — slower, calmer page reveal on desktop and mobile */
.pc-client-home,
.pc-gallery-page,
.pc-footer{
  transition:
    opacity .72s cubic-bezier(.22,.61,.36,1),
    transform .82s cubic-bezier(.22,.61,.36,1)!important;
}

.pc-page-preparing .pc-client-home,
.pc-page-preparing .pc-gallery-page,
.pc-page-preparing .pc-footer{
  opacity:0!important;
  transform:translateY(8px)!important;
}

.pc-page-ready:not(.pc-page-preparing) .pc-client-home,
.pc-page-ready:not(.pc-page-preparing) .pc-gallery-page,
.pc-page-ready:not(.pc-page-preparing) .pc-footer{
  opacity:1!important;
  transform:translateY(0)!important;
}

@media(max-width:700px){
  .pc-client-home,
  .pc-gallery-page,
  .pc-footer{
    transition:
      opacity .76s cubic-bezier(.22,.61,.36,1),
      transform .86s cubic-bezier(.22,.61,.36,1)!important;
  }
}

/* Download preparation overlay is always centered in the actual browser viewport. */
body > .pc-download-progress,
.pc-download-progress{
  position:fixed!important;
  inset:0!important;
  top:0!important;
  right:0!important;
  bottom:0!important;
  left:0!important;
  width:100vw!important;
  height:100dvh!important;
  margin:0!important;
  padding:20px!important;
  display:grid!important;
  place-items:center!important;
  align-items:center!important;
  justify-items:center!important;
  box-sizing:border-box!important;
  transform:none!important;
  z-index:2147483645!important;
}

.pc-download-progress[hidden]{
  display:none!important;
}

.pc-download-progress-card{
  position:relative!important;
  top:auto!important;
  right:auto!important;
  bottom:auto!important;
  left:auto!important;
  margin:0!important;
  transform:none!important;
  align-self:center!important;
  justify-self:center!important;
  width:min(420px,calc(100vw - 40px))!important;
  max-height:calc(100dvh - 40px)!important;
}

/* iPhone safe areas must not shift the card away from visual center. */
@media(max-width:700px){
  body > .pc-download-progress,
  .pc-download-progress{
    padding:
      max(16px,env(safe-area-inset-top))
      max(16px,env(safe-area-inset-right))
      max(16px,env(safe-area-inset-bottom))
      max(16px,env(safe-area-inset-left))!important;
  }

  .pc-download-progress-card{
    width:min(420px,calc(100vw - 32px))!important;
    max-height:calc(100dvh - 32px)!important;
  }
}

@supports not (height:100dvh){
  body > .pc-download-progress,
  .pc-download-progress{
    height:100vh!important;
  }
  .pc-download-progress-card{
    max-height:calc(100vh - 40px)!important;
  }
}

@media(prefers-reduced-motion:reduce){
  .pc-client-home,
  .pc-gallery-page,
  .pc-footer{
    transition:none!important;
  }
}

/* 1.0.35 — more cinematic, restrained page reveal */
.pc-client-home,
.pc-gallery-page,
.pc-footer{
  transition:
    opacity 1.05s cubic-bezier(.16,1,.3,1),
    transform 1.15s cubic-bezier(.16,1,.3,1),
    filter .90s cubic-bezier(.16,1,.3,1)!important;
}

.pc-page-preparing .pc-client-home,
.pc-page-preparing .pc-gallery-page,
.pc-page-preparing .pc-footer{
  opacity:0!important;
  transform:translateY(10px)!important;
  filter:blur(1.2px)!important;
}

.pc-page-ready:not(.pc-page-preparing) .pc-client-home,
.pc-page-ready:not(.pc-page-preparing) .pc-gallery-page,
.pc-page-ready:not(.pc-page-preparing) .pc-footer{
  opacity:1!important;
  transform:translateY(0)!important;
  filter:blur(0)!important;
}

@media(max-width:700px){
  .pc-client-home,
  .pc-gallery-page,
  .pc-footer{
    transition:
      opacity 1.10s cubic-bezier(.16,1,.3,1),
      transform 1.20s cubic-bezier(.16,1,.3,1),
      filter .95s cubic-bezier(.16,1,.3,1)!important;
  }
}

/* Lightbox is moved directly under <body>, so explicitly carry the
   client-selected font into the detached viewport layer. */
body > .pc-lightbox{
  --pc-lightbox-font:var(--pc-font,"Ubuntu",sans-serif);
  font-family:var(--pc-font,"Ubuntu",sans-serif)!important;
  font-synthesis:none!important;
  -webkit-font-smoothing:antialiased!important;
  text-rendering:optimizeLegibility!important;
}

body > .pc-lightbox :where(
  .pc-lb-bottom,
  .pc-lb-meta,
  .pc-lb-counter,
  .pc-lb-caption,
  .pc-lb-note-panel,
  .pc-lb-note-panel *,
  button,
  input,
  textarea,
  span,
  small,
  strong,
  p
){
  font-family:inherit!important;
}

/* Never let the bottom lightbox information fall back to browser/system fonts. */
body > .pc-lightbox .pc-lb-bottom,
body > .pc-lightbox .pc-lb-bottom *{
  font-family:var(--pc-font,"Ubuntu",sans-serif)!important;
}

@media(prefers-reduced-motion:reduce){
  .pc-client-home,
  .pc-gallery-page,
  .pc-footer{
    transition:none!important;
    filter:none!important;
  }
}

/* 1.0.36 — lightbox and iPhone browser chrome follow portal background */
body > .pc-lightbox{
  background:var(--pc-lightbox-bg,var(--pc-bg,#0e1319))!important;
  color:var(--pc-lightbox-text,var(--pc-text,#fff))!important;
}

/* Keep the lightbox stage transparent so the portal background remains visible
   around portrait/landscape images rather than introducing a black frame. */
body > .pc-lightbox .pc-lb-stage,
body > .pc-lightbox .pc-lb-slide,
body > .pc-lightbox .pc-lb-strip{
  background:transparent!important;
}

/* Lightbox controls remain readable against photography in both themes. */
body > .pc-lightbox .pc-lb-close,
body > .pc-lightbox .pc-lb-prev,
body > .pc-lightbox .pc-lb-next{
  color:#fff!important;
}

/* The document canvas uses the same portal palette, including iPhone safe areas. */
html:has(.pc-theme-dark),
body:has(.pc-theme-dark){
  background-color:#0e1319!important;
}
html:has(.pc-theme-light),
body:has(.pc-theme-light){
  background-color:#e8e9ea!important;
}

/* 1.0.37 — restore visible lightbox material and guarantee viewport-centred progress */

/* Lightbox must be opaque enough to visually separate the photo from the page.
   Preserve the same portal palette/gradient rather than making the stage transparent. */
body > .pc-lightbox{
  background-color:var(--pc-lightbox-bg,#0e1319)!important;
  background-image:var(--pc-lightbox-bg-image,none)!important;
  background-repeat:no-repeat!important;
  background-size:cover!important;
  opacity:0!important;
}

body > .pc-lightbox.pc-open{
  opacity:1!important;
}

/* Add a subtle theme-coloured veil so the lightbox is visibly a full-screen layer. */
body > .pc-lightbox::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  pointer-events:none!important;
  z-index:0!important;
  background:rgba(0,0,0,.10)!important;
}

body > .pc-lightbox > *{
  position:relative;
  z-index:1;
}

/* Light portal needs a neutral translucent veil instead of disappearing into the page. */
body > .pc-lightbox[style*="--pc-lightbox-text"]::before{
  backdrop-filter:none!important;
}

/* Download progress is detached to body and centered against the browser viewport,
   independent of portal width, gallery transforms or screen size. */
body > .pc-download-progress{
  position:fixed!important;
  inset:0!important;
  width:100%!important;
  height:100dvh!important;
  min-width:0!important;
  max-width:none!important;
  margin:0!important;
  padding:24px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  box-sizing:border-box!important;
  transform:none!important;
  z-index:2147483645!important;
}

body > .pc-download-progress[hidden]{
  display:none!important;
}

body > .pc-download-progress .pc-download-progress-card{
  position:static!important;
  flex:0 0 auto!important;
  width:min(420px,calc(100vw - 48px))!important;
  max-width:420px!important;
  margin:auto!important;
  inset:auto!important;
  transform:none!important;
}

/* Theme survives after the progress overlay is detached from .pc-portal. */
body > .pc-download-progress.pc-progress-dark .pc-download-progress-card{
  background:rgba(24,29,36,.97)!important;
  border-color:rgba(255,255,255,.13)!important;
  color:#fff!important;
}
body > .pc-download-progress.pc-progress-dark .pc-download-progress-card *{
  color:#fff!important;
}
body > .pc-download-progress.pc-progress-light .pc-download-progress-card{
  background:rgba(248,249,250,.98)!important;
  border-color:rgba(255,255,255,.92)!important;
  color:#20252c!important;
}
body > .pc-download-progress.pc-progress-light .pc-download-progress-card *{
  color:#20252c!important;
}

@supports not (height:100dvh){
  body > .pc-download-progress{
    height:100vh!important;
  }
}

/* 1.0.38 — explicit, visible lightbox overlay + exact viewport centering */

/* Use a solid themed base plus a subtle veil. Never transparent. */
body > .pc-lightbox.pc-lightbox-dark{
  background:#0e1319!important;
  background-image:
    radial-gradient(circle at 18% -8%,rgba(255,255,255,.055),transparent 34%),
    linear-gradient(180deg,#0e1319 0%,#0b0f14 100%)!important;
}
body > .pc-lightbox.pc-lightbox-light{
  background:#e8e9ea!important;
  background-image:
    radial-gradient(circle at 16% -6%,rgba(80,84,89,.14),transparent 38%),
    linear-gradient(180deg,#e8e9ea 0%,#f2f2f1 43%,#fafafa 100%)!important;
}
body > .pc-lightbox::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  z-index:0!important;
  pointer-events:none!important;
}
body > .pc-lightbox.pc-lightbox-dark::before{
  background:rgba(0,0,0,.16)!important;
}
body > .pc-lightbox.pc-lightbox-light::before{
  background:rgba(255,255,255,.10)!important;
}
body > .pc-lightbox > *{
  position:relative!important;
  z-index:1!important;
}

/* Exact center of the visible browser viewport on phone, laptop and ultrawide.
   The card itself is absolutely centered, so no parent/grid sizing can shift it. */
body > .pc-download-progress{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100dvh!important;
  margin:0!important;
  padding:0!important;
  display:block!important;
  transform:none!important;
  z-index:2147483645!important;
}
body > .pc-download-progress[hidden]{
  display:none!important;
}
body > .pc-download-progress .pc-download-progress-card{
  position:absolute!important;
  top:50%!important;
  left:50%!important;
  right:auto!important;
  bottom:auto!important;
  width:min(420px,calc(100vw - 32px))!important;
  max-width:420px!important;
  max-height:calc(100dvh - 32px)!important;
  margin:0!important;
  transform:translate(-50%,-50%)!important;
  overflow:auto!important;
}

@supports not (height:100dvh){
  body > .pc-download-progress{
    height:100vh!important;
  }
  body > .pc-download-progress .pc-download-progress-card{
    max-height:calc(100vh - 32px)!important;
  }
}

/* iOS visual viewport-safe centering. */
@supports (-webkit-touch-callout:none){
  body > .pc-download-progress{
    height:100dvh!important;
  }
}

/* =========================================================
   1.0.39 — authoritative lightbox + download overlay rebuild
   ========================================================= */

/* LIGHTBOX ROOT */
body > .pc-lightbox{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100dvh!important;
  min-height:100dvh!important;
  margin:0!important;
  padding:0!important;
  display:grid!important;
  place-items:center!important;
  overflow:hidden!important;
  z-index:2147483646!important;
  isolation:isolate!important;
  opacity:0!important;
  visibility:visible!important;
  transform:none!important;
  transition:opacity .20s ease!important;
  color:#fff!important;
}

/* Critical: do NOT change positioning of every direct child.
   Previous versions did that and broke nav, stage and bottom bar. */
body > .pc-lightbox > *{
  z-index:auto!important;
}

/* Themed opaque viewport material. */
body > .pc-lightbox.pc-lightbox-dark{
  background:
    radial-gradient(circle at 18% -8%,rgba(255,255,255,.045),transparent 34%),
    linear-gradient(180deg,#0e1319 0%,#0b0f14 100%)!important;
}
body > .pc-lightbox.pc-lightbox-light{
  background:
    radial-gradient(circle at 16% -6%,rgba(80,84,89,.12),transparent 38%),
    linear-gradient(180deg,#e8e9ea 0%,#f2f2f1 43%,#fafafa 100%)!important;
}

/* Subtle overlay tint without touching layout. */
body > .pc-lightbox::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  z-index:0!important;
  pointer-events:none!important;
}
body > .pc-lightbox.pc-lightbox-dark::before{
  background:rgba(0,0,0,.12)!important;
}
body > .pc-lightbox.pc-lightbox-light::before{
  background:rgba(255,255,255,.06)!important;
}

body > .pc-lightbox.pc-open{
  opacity:1!important;
}
body > .pc-lightbox[hidden]{
  display:none!important;
}

/* Restore the actual filmstrip geometry. */
body > .pc-lightbox .pc-lb-stage{
  position:relative!important;
  z-index:1!important;
  width:calc(100vw - 120px)!important;
  height:calc(100dvh - 100px)!important;
  max-width:100vw!important;
  max-height:100dvh!important;
  overflow:hidden!important;
  display:grid!important;
  place-items:center!important;
  background:transparent!important;
  transform:none!important;
}
body > .pc-lightbox .pc-lb-track{
  position:absolute!important;
  inset:0!important;
  z-index:1!important;
  display:flex!important;
  width:300%!important;
  height:100%!important;
  transform:translate3d(-33.333333%,0,0);
}
body > .pc-lightbox .pc-lb-slide{
  position:relative!important;
  flex:0 0 33.333333%!important;
  width:33.333333%!important;
  height:100%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:hidden!important;
  padding:0 16px!important;
  box-sizing:border-box!important;
  background:transparent!important;
}
body > .pc-lightbox .pc-lb-slide img{
  display:block!important;
  width:auto!important;
  height:auto!important;
  max-width:100%!important;
  max-height:100%!important;
  object-fit:contain!important;
  object-position:center!important;
  margin:0!important;
  opacity:1!important;
  visibility:visible!important;
}

/* Restore nav and close positions. */
body > .pc-lightbox .pc-lb-close,
body > .pc-lightbox .pc-lb-prev,
body > .pc-lightbox .pc-lb-next{
  position:absolute!important;
  z-index:30!important;
  color:#fff!important;
}
body > .pc-lightbox .pc-lb-close{
  top:max(18px,env(safe-area-inset-top))!important;
  right:20px!important;
}
body > .pc-lightbox .pc-lb-prev,
body > .pc-lightbox .pc-lb-next{
  top:50%!important;
  transform:translateY(-50%)!important;
}
body > .pc-lightbox .pc-lb-prev{left:18px!important}
body > .pc-lightbox .pc-lb-next{right:18px!important}

/* Bottom action bar remains dark translucent on both themes for image contrast. */
body > .pc-lightbox .pc-lb-bar{
  position:absolute!important;
  z-index:35!important;
  left:50%!important;
  right:auto!important;
  top:auto!important;
  bottom:max(16px,env(safe-area-inset-bottom))!important;
  transform:translateX(-50%)!important;
  display:flex!important;
  align-items:center!important;
  gap:3px!important;
  max-width:calc(100vw - 30px)!important;
  padding:5px!important;
  background:rgba(18,21,25,.82)!important;
  border:1px solid rgba(255,255,255,.12)!important;
  color:#fff!important;
  -webkit-backdrop-filter:blur(18px) saturate(120%)!important;
  backdrop-filter:blur(18px) saturate(120%)!important;
  box-shadow:0 14px 42px rgba(0,0,0,.20)!important;
}
body > .pc-lightbox .pc-lb-bar,
body > .pc-lightbox .pc-lb-bar *{
  color:#fff!important;
  font-family:var(--pc-font,"Ubuntu",sans-serif)!important;
}
body > .pc-lightbox .pc-lb-count{
  color:rgba(255,255,255,.66)!important;
}

/* Comment panel above everything inside lightbox. */
body > .pc-lightbox .pc-comment-panel{
  position:absolute!important;
  inset:0!important;
  z-index:50!important;
}

/* DOWNLOAD PROGRESS: detached under body, true viewport-centered layer */
body > .pc-download-progress{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100dvh!important;
  margin:0!important;
  padding:20px!important;
  display:grid!important;
  place-items:center!important;
  box-sizing:border-box!important;
  transform:none!important;
  overflow:hidden!important;
  z-index:2147483645!important;
  -webkit-backdrop-filter:blur(5px)!important;
  backdrop-filter:blur(5px)!important;
}
body > .pc-download-progress[hidden]{
  display:none!important;
}
body > .pc-download-progress.pc-progress-dark{
  background:rgba(4,7,10,.38)!important;
}
body > .pc-download-progress.pc-progress-light{
  background:rgba(230,232,234,.42)!important;
}

body > .pc-download-progress .pc-download-progress-card{
  position:static!important;
  inset:auto!important;
  width:min(420px,calc(100vw - 40px))!important;
  max-width:420px!important;
  max-height:calc(100dvh - 40px)!important;
  margin:0!important;
  transform:none!important;
  overflow:auto!important;
  padding:22px!important;
}

/* Dark progress card */
body > .pc-download-progress.pc-progress-dark .pc-download-progress-card{
  background:rgba(24,29,36,.97)!important;
  border:1px solid rgba(255,255,255,.13)!important;
  color:#fff!important;
  box-shadow:0 22px 65px rgba(0,0,0,.34)!important;
}
body > .pc-download-progress.pc-progress-dark .pc-download-progress-card :where(
  .pc-download-progress-label,small
){
  color:#fff!important;
}
body > .pc-download-progress.pc-progress-dark .pc-download-cancel{
  color:#fff!important;
  background:rgba(255,255,255,.08)!important;
  border-color:rgba(255,255,255,.16)!important;
}

/* Light progress card */
body > .pc-download-progress.pc-progress-light .pc-download-progress-card{
  background:rgba(248,249,250,.98)!important;
  border:1px solid rgba(255,255,255,.94)!important;
  color:#20252c!important;
  box-shadow:0 22px 65px rgba(37,43,49,.18)!important;
}
body > .pc-download-progress.pc-progress-light .pc-download-progress-card :where(
  .pc-download-progress-label,small
){
  color:#20252c!important;
}
body > .pc-download-progress.pc-progress-light .pc-download-cancel{
  color:#20252c!important;
  background:rgba(20,28,38,.06)!important;
  border-color:rgba(20,28,38,.12)!important;
}

/* Do not let old global color rules recolor the accent progress fill. */
body > .pc-download-progress .pc-download-progress-track span{
  background:var(--pc-accent,#6f7cff)!important;
}

/* MOBILE LIGHTBOX */
@media(max-width:700px){
  body > .pc-lightbox{
    height:100dvh!important;
    min-height:100dvh!important;
  }
  body > .pc-lightbox .pc-lb-stage{
    width:100vw!important;
    height:calc(100dvh - 92px)!important;
  }
  body > .pc-lightbox .pc-lb-slide{
    padding:0 12px!important;
  }
  body > .pc-lightbox .pc-lb-prev,
  body > .pc-lightbox .pc-lb-next{
    display:none!important;
  }
  body > .pc-lightbox .pc-lb-bar{
    max-width:calc(100vw - 20px)!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    scrollbar-width:none!important;
  }
  body > .pc-lightbox .pc-lb-bar::-webkit-scrollbar{
    display:none!important;
  }

  body > .pc-download-progress{
    height:100dvh!important;
    padding:
      max(16px,env(safe-area-inset-top))
      max(16px,env(safe-area-inset-right))
      max(16px,env(safe-area-inset-bottom))
      max(16px,env(safe-area-inset-left))!important;
  }
  body > .pc-download-progress .pc-download-progress-card{
    width:min(420px,calc(100vw - 32px))!important;
    max-height:calc(100dvh - 32px)!important;
  }
}

@supports not (height:100dvh){
  body > .pc-lightbox,
  body > .pc-download-progress{
    height:100vh!important;
    min-height:100vh!important;
  }
  body > .pc-lightbox .pc-lb-stage{
    height:calc(100vh - 100px)!important;
  }
}

/* =========================================================
   1.0.40 — comment dialog + definitive light/dark lightbox polish
   ========================================================= */

/* Keep lightbox layout intact and theme only the canvas around the image. */
body > .pc-lightbox.pc-lightbox-dark{
  background:#0d1116!important;
  background-image:
    radial-gradient(circle at 18% 0%,rgba(255,255,255,.045),transparent 36%),
    linear-gradient(180deg,#11161d 0%,#0d1116 48%,#090d12 100%)!important;
  color:#fff!important;
}
body > .pc-lightbox.pc-lightbox-light{
  background:#e7e8e9!important;
  background-image:
    radial-gradient(circle at 16% 0%,rgba(70,74,80,.11),transparent 38%),
    linear-gradient(180deg,#e3e4e5 0%,#eeeeee 48%,#f7f7f6 100%)!important;
  color:#20252c!important;
}

/* Remove the extra pseudo overlay that could visually interfere with the filmstrip. */
body > .pc-lightbox::before{
  display:none!important;
}

/* Image stage stays fully transparent; only the viewport canvas is themed. */
body > .pc-lightbox .pc-lb-stage,
body > .pc-lightbox .pc-lb-track,
body > .pc-lightbox .pc-lb-slide{
  background:transparent!important;
}

/* Navigation is glassy and readable in both themes. */
body > .pc-lightbox .pc-lb-close,
body > .pc-lightbox .pc-lb-prev,
body > .pc-lightbox .pc-lb-next{
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(15,18,22,.52)!important;
  border:1px solid rgba(255,255,255,.12)!important;
  color:#fff!important;
  -webkit-backdrop-filter:blur(14px) saturate(120%)!important;
  backdrop-filter:blur(14px) saturate(120%)!important;
  box-shadow:0 10px 30px rgba(0,0,0,.14)!important;
}

/* COMMENT FOR PHOTOGRAPHER OVERLAY */
body > .pc-lightbox .pc-comment-panel{
  position:absolute!important;
  inset:0!important;
  z-index:80!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:
    max(20px,env(safe-area-inset-top))
    max(20px,env(safe-area-inset-right))
    max(20px,env(safe-area-inset-bottom))
    max(20px,env(safe-area-inset-left))!important;
  box-sizing:border-box!important;
  -webkit-backdrop-filter:blur(8px)!important;
  backdrop-filter:blur(8px)!important;
}
body > .pc-lightbox .pc-comment-panel[hidden]{
  display:none!important;
}
body > .pc-lightbox.pc-lightbox-dark .pc-comment-panel{
  background:rgba(5,8,12,.52)!important;
}
body > .pc-lightbox.pc-lightbox-light .pc-comment-panel{
  background:rgba(220,222,224,.56)!important;
}

/* Dialog is truly centered, including the textarea. */
body > .pc-lightbox .pc-comment-card{
  position:relative!important;
  width:min(470px,calc(100vw - 40px))!important;
  max-width:470px!important;
  margin:0 auto!important;
  padding:24px!important;
  box-sizing:border-box!important;
  border-radius:var(--pc-radius-lg,20px)!important;
  overflow:hidden!important;
  -webkit-backdrop-filter:blur(24px) saturate(125%)!important;
  backdrop-filter:blur(24px) saturate(125%)!important;
}
body > .pc-lightbox.pc-lightbox-dark .pc-comment-card{
  background:rgba(24,29,36,.96)!important;
  border:1px solid rgba(255,255,255,.13)!important;
  color:#fff!important;
  box-shadow:0 26px 80px rgba(0,0,0,.36)!important;
}
body > .pc-lightbox.pc-lightbox-light .pc-comment-card{
  background:rgba(248,249,250,.97)!important;
  border:1px solid rgba(255,255,255,.94)!important;
  color:#20252c!important;
  box-shadow:0 26px 80px rgba(38,44,50,.18)!important;
}

body > .pc-lightbox .pc-comment-card .pc-kicker,
body > .pc-lightbox .pc-comment-card h3,
body > .pc-lightbox .pc-comment-card .pc-comment-status{
  width:100%!important;
  box-sizing:border-box!important;
  font-family:var(--pc-font,"Ubuntu",sans-serif)!important;
}
body > .pc-lightbox.pc-lightbox-dark .pc-comment-card .pc-kicker,
body > .pc-lightbox.pc-lightbox-dark .pc-comment-card h3{
  color:#fff!important;
}
body > .pc-lightbox.pc-lightbox-dark .pc-comment-card .pc-comment-status{
  color:rgba(255,255,255,.68)!important;
}
body > .pc-lightbox.pc-lightbox-light .pc-comment-card .pc-kicker,
body > .pc-lightbox.pc-lightbox-light .pc-comment-card h3{
  color:#20252c!important;
}
body > .pc-lightbox.pc-lightbox-light .pc-comment-card .pc-comment-status{
  color:#69717b!important;
}

/* Textarea: same inset left/right, no browser width overflow. */
body > .pc-lightbox .pc-comment-card textarea{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  min-height:140px!important;
  margin:14px 0 0!important;
  padding:14px 15px!important;
  box-sizing:border-box!important;
  resize:vertical!important;
  outline:none!important;
  border-radius:var(--pc-radius-md,12px)!important;
  font-family:var(--pc-font,"Ubuntu",sans-serif)!important;
  font-size:16px!important; /* prevents iPhone zoom */
  line-height:1.5!important;
  box-shadow:none!important;
}
body > .pc-lightbox.pc-lightbox-dark .pc-comment-card textarea{
  background:rgba(255,255,255,.065)!important;
  border:1px solid rgba(255,255,255,.14)!important;
  color:#fff!important;
  caret-color:#fff!important;
}
body > .pc-lightbox.pc-lightbox-dark .pc-comment-card textarea::placeholder{
  color:rgba(255,255,255,.46)!important;
}
body > .pc-lightbox.pc-lightbox-light .pc-comment-card textarea{
  background:rgba(255,255,255,.82)!important;
  border:1px solid rgba(31,38,46,.12)!important;
  color:#20252c!important;
  caret-color:#20252c!important;
}
body > .pc-lightbox.pc-lightbox-light .pc-comment-card textarea::placeholder{
  color:#8a9199!important;
}
body > .pc-lightbox .pc-comment-card textarea:focus{
  border-color:var(--pc-accent,#6f7cff)!important;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--pc-accent,#6f7cff) 18%,transparent)!important;
}

/* Buttons keep the selected square/rounded customer geometry. */
body > .pc-lightbox .pc-comment-card > div{
  width:100%!important;
  margin-top:14px!important;
  display:flex!important;
  justify-content:flex-end!important;
  gap:8px!important;
  box-sizing:border-box!important;
}
body > .pc-lightbox .pc-comment-card button{
  min-height:40px!important;
  padding:0 15px!important;
  border-radius:var(--pc-radius-md,9px)!important;
  font-family:var(--pc-font,"Ubuntu",sans-serif)!important;
}
body > .pc-lightbox.pc-lightbox-dark .pc-comment-cancel{
  background:rgba(255,255,255,.08)!important;
  border:1px solid rgba(255,255,255,.13)!important;
  color:#fff!important;
}
body > .pc-lightbox.pc-lightbox-light .pc-comment-cancel{
  background:rgba(28,35,43,.06)!important;
  border:1px solid rgba(28,35,43,.10)!important;
  color:#20252c!important;
}
body > .pc-lightbox .pc-comment-save{
  background:var(--pc-accent,#6f7cff)!important;
  color:#fff!important;
  border:1px solid transparent!important;
}

/* DOWNLOAD INDICATOR — explicit current-theme appearance */
body > .pc-download-progress.pc-progress-dark{
  background:rgba(4,7,10,.44)!important;
}
body > .pc-download-progress.pc-progress-light{
  background:rgba(225,227,229,.48)!important;
}
body > .pc-download-progress.pc-progress-dark .pc-download-progress-card{
  background:rgba(24,29,36,.97)!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.13)!important;
}
body > .pc-download-progress.pc-progress-dark .pc-download-progress-card .pc-download-progress-label,
body > .pc-download-progress.pc-progress-dark .pc-download-progress-card small{
  color:#fff!important;
}
body > .pc-download-progress.pc-progress-light .pc-download-progress-card{
  background:rgba(248,249,250,.98)!important;
  color:#20252c!important;
  border:1px solid rgba(255,255,255,.94)!important;
}
body > .pc-download-progress.pc-progress-light .pc-download-progress-card .pc-download-progress-label,
body > .pc-download-progress.pc-progress-light .pc-download-progress-card small{
  color:#20252c!important;
}

/* Mobile dialog: centered, balanced padding, full usable width. */
@media(max-width:700px){
  body > .pc-lightbox .pc-comment-panel{
    align-items:center!important;
    justify-content:center!important;
    padding:
      max(16px,env(safe-area-inset-top))
      max(16px,env(safe-area-inset-right))
      max(16px,env(safe-area-inset-bottom))
      max(16px,env(safe-area-inset-left))!important;
  }
  body > .pc-lightbox .pc-comment-card{
    width:100%!important;
    max-width:470px!important;
    padding:20px!important;
    margin:auto!important;
  }
  body > .pc-lightbox .pc-comment-card textarea{
    min-height:132px!important;
    margin-top:12px!important;
  }
  body > .pc-lightbox .pc-comment-card > div{
    gap:7px!important;
  }
}

/* =========================================================
   1.0.41 — unified popup gutters + photo-centred lightbox
   ========================================================= */

/* One shared page gutter. Popups use exactly the same outer spacing. */
.pc-portal{
  --pc-page-gutter:24px;
}
@media(max-width:700px){
  .pc-portal{
    --pc-page-gutter:16px;
  }
}

/* Detached overlays cannot inherit portal vars, so mirror the page gutters. */
body > .pc-lightbox .pc-comment-panel,
body > .pc-download-progress{
  padding:24px!important;
  box-sizing:border-box!important;
}
@media(max-width:700px){
  body > .pc-lightbox .pc-comment-panel,
  body > .pc-download-progress{
    padding:
      max(16px,env(safe-area-inset-top))
      max(16px,env(safe-area-inset-right))
      max(16px,env(safe-area-inset-bottom))
      max(16px,env(safe-area-inset-left))!important;
  }
}

/* Popup widths are calculated from the same gutter, never from arbitrary margins. */
body > .pc-lightbox .pc-comment-card,
body > .pc-download-progress .pc-download-progress-card{
  width:min(470px,calc(100vw - 48px))!important;
  max-width:470px!important;
  margin:auto!important;
}
body > .pc-download-progress .pc-download-progress-card{
  max-width:420px!important;
}
@media(max-width:700px){
  body > .pc-lightbox .pc-comment-card,
  body > .pc-download-progress .pc-download-progress-card{
    width:100%!important;
  }
}

/* LIGHTBOX: stage itself is the visual centre of the viewport. */
body > .pc-lightbox{
  display:block!important;
}
body > .pc-lightbox .pc-lb-stage{
  position:absolute!important;
  top:50%!important;
  left:50%!important;
  right:auto!important;
  bottom:auto!important;
  width:calc(100vw - 144px)!important;
  height:calc(100dvh - 96px)!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  transform:translate(-50%,-50%)!important;
  overflow:hidden!important;
  display:block!important;
}

/* Track/slides fill that centred stage. */
body > .pc-lightbox .pc-lb-track{
  position:absolute!important;
  inset:0!important;
  width:300%!important;
  height:100%!important;
}
body > .pc-lightbox .pc-lb-slide{
  height:100%!important;
  align-items:center!important;
  justify-content:center!important;
}
body > .pc-lightbox .pc-lb-slide img{
  display:block!important;
  width:auto!important;
  height:auto!important;
  max-width:100%!important;
  max-height:100%!important;
  object-fit:contain!important;
  object-position:center center!important;
  margin:auto!important;
}

/* Arrows are centred on the PHOTO/STAGE, not on the whole page chrome. */
body > .pc-lightbox .pc-lb-prev,
body > .pc-lightbox .pc-lb-next{
  top:50%!important;
  bottom:auto!important;
  transform:translateY(-50%)!important;
  margin:0!important;
}
body > .pc-lightbox .pc-lb-prev{
  left:24px!important;
}
body > .pc-lightbox .pc-lb-next{
  right:24px!important;
}

/* On mobile the photo is still vertically centred in the visible viewport.
   Swipe remains primary navigation, so arrows stay hidden as before. */
@media(max-width:700px){
  body > .pc-lightbox .pc-lb-stage{
    top:50%!important;
    left:50%!important;
    width:100vw!important;
    height:calc(100dvh - 112px)!important;
    transform:translate(-50%,-50%)!important;
  }
  body > .pc-lightbox .pc-lb-slide{
    padding:0 16px!important;
  }
  body > .pc-lightbox .pc-lb-slide img{
    margin:auto!important;
    object-position:center center!important;
  }
}

/* Fallback for browsers without dynamic viewport units. */
@supports not (height:100dvh){
  body > .pc-lightbox .pc-lb-stage{
    height:calc(100vh - 96px)!important;
  }
  @media(max-width:700px){
    body > .pc-lightbox .pc-lb-stage{
      height:calc(100vh - 112px)!important;
    }
  }
}

/* =========================================================
   1.0.42 — visible mobile lightbox navigation arrows
   ========================================================= */

/* Mobile also gets previous/next controls. Keep them vertically aligned
   with the centred photo stage and inside the safe page gutter. */
@media(max-width:700px){
  body > .pc-lightbox .pc-lb-prev,
  body > .pc-lightbox .pc-lb-next{
    display:flex!important;
    visibility:visible!important;
    opacity:1!important;
    position:absolute!important;
    top:50%!important;
    bottom:auto!important;
    width:42px!important;
    height:42px!important;
    min-width:42px!important;
    min-height:42px!important;
    padding:0!important;
    margin:0!important;
    align-items:center!important;
    justify-content:center!important;
    transform:translateY(-50%)!important;
    z-index:45!important;
    border-radius:var(--pc-radius-md,10px)!important;
    background:rgba(15,18,22,.54)!important;
    border:1px solid rgba(255,255,255,.14)!important;
    color:#fff!important;
    -webkit-backdrop-filter:blur(14px) saturate(120%)!important;
    backdrop-filter:blur(14px) saturate(120%)!important;
    box-shadow:0 8px 24px rgba(0,0,0,.18)!important;
    pointer-events:auto!important;
  }

  body > .pc-lightbox .pc-lb-prev{
    left:max(16px,env(safe-area-inset-left))!important;
    right:auto!important;
  }

  body > .pc-lightbox .pc-lb-next{
    right:max(16px,env(safe-area-inset-right))!important;
    left:auto!important;
  }

  /* Keep SVG/icon glyphs centred and theme-independent. */
  body > .pc-lightbox .pc-lb-prev svg,
  body > .pc-lightbox .pc-lb-next svg{
    display:block!important;
    width:18px!important;
    height:18px!important;
    margin:auto!important;
    flex:none!important;
    stroke:currentColor!important;
  }
}

/* Square-corner client preference must also apply to these controls. */
.pc-corners-square ~ .pc-lightbox .pc-lb-prev,
.pc-corners-square ~ .pc-lightbox .pc-lb-next{
  border-radius:0!important;
}

/* =========================================================
   1.0.43 — mobile lightbox edge navigation + perfectly centered close
   ========================================================= */

/* Make the arrow glyph itself sit optically and mathematically centered. */
body > .pc-lightbox .pc-lb-prev,
body > .pc-lightbox .pc-lb-next{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  line-height:1!important;
  font-size:0!important;
}

body > .pc-lightbox .pc-lb-prev::before,
body > .pc-lightbox .pc-lb-next::before{
  display:block!important;
  width:12px!important;
  height:12px!important;
  content:""!important;
  border-top:2px solid currentColor!important;
  border-right:2px solid currentColor!important;
  box-sizing:border-box!important;
  transform-origin:50% 50%!important;
}

body > .pc-lightbox .pc-lb-prev::before{
  transform:rotate(-135deg)!important;
  margin-left:3px!important;
}

body > .pc-lightbox .pc-lb-next::before{
  transform:rotate(45deg)!important;
  margin-right:3px!important;
}

/* Hide any old text glyph inside the buttons so there is only one arrow. */
body > .pc-lightbox .pc-lb-prev,
body > .pc-lightbox .pc-lb-next{
  color:#fff!important;
}

/* Close button: true circular control with the × perfectly centered. */
body > .pc-lightbox .pc-lb-close{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  width:42px!important;
  height:42px!important;
  min-width:42px!important;
  min-height:42px!important;
  padding:0!important;
  margin:0!important;
  border-radius:50%!important;
  font-size:0!important;
  line-height:1!important;
}

body > .pc-lightbox .pc-lb-close::before,
body > .pc-lightbox .pc-lb-close::after{
  content:""!important;
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  width:16px!important;
  height:2px!important;
  margin:0!important;
  background:currentColor!important;
  border-radius:2px!important;
  transform-origin:center!important;
}

body > .pc-lightbox .pc-lb-close::before{
  transform:translate(-50%,-50%) rotate(45deg)!important;
}

body > .pc-lightbox .pc-lb-close::after{
  transform:translate(-50%,-50%) rotate(-45deg)!important;
}

/* Mobile: controls sit flush against the screen edge.
   Left control = straight left edge, rounded inner/right corners.
   Right control = straight right edge, rounded inner/left corners. */
@media(max-width:700px){
  body > .pc-lightbox .pc-lb-prev,
  body > .pc-lightbox .pc-lb-next{
    top:50%!important;
    bottom:auto!important;
    width:44px!important;
    height:58px!important;
    min-width:44px!important;
    min-height:58px!important;
    padding:0!important;
    margin:0!important;
    transform:translateY(-50%)!important;
    background:rgba(15,18,22,.58)!important;
    border:1px solid rgba(255,255,255,.14)!important;
    -webkit-backdrop-filter:blur(14px) saturate(120%)!important;
    backdrop-filter:blur(14px) saturate(120%)!important;
    box-shadow:0 8px 24px rgba(0,0,0,.18)!important;
    z-index:45!important;
  }

  body > .pc-lightbox .pc-lb-prev{
    left:0!important;
    right:auto!important;
    border-left:0!important;
    border-radius:0 14px 14px 0!important;
  }

  body > .pc-lightbox .pc-lb-next{
    right:0!important;
    left:auto!important;
    border-right:0!important;
    border-radius:14px 0 0 14px!important;
  }

  /* Keep arrow optically centered inside the asymmetric edge tabs. */
  body > .pc-lightbox .pc-lb-prev::before{
    margin-left:2px!important;
  }
  body > .pc-lightbox .pc-lb-next::before{
    margin-right:2px!important;
  }

  body > .pc-lightbox .pc-lb-close{
    top:max(16px,env(safe-area-inset-top))!important;
    right:max(16px,env(safe-area-inset-right))!important;
  }
}

/* Client square style: edge tabs remain flush and fully square. */
body > .pc-lightbox.pc-corners-square .pc-lb-prev,
body > .pc-lightbox.pc-corners-square .pc-lb-next,
body > .pc-lightbox.pc-corners-square .pc-lb-close{
  border-radius:0!important;
}

/* 1.0.44 — download cancel button follows client corner preference */

/* Rounded client setting */
.pc-download-progress .pc-download-cancel{
  border-radius:var(--pc-radius-md,10px)!important;
}

/* The progress overlay is detached from .pc-portal, so use the corner
   preference copied onto body by the portal classes where available. */
body:has(.pc-portal.pc-corners-square) > .pc-download-progress .pc-download-cancel,
body:has(.pc-portal.pc-corners-straight) > .pc-download-progress .pc-download-cancel{
  border-radius:0!important;
}

body:has(.pc-portal.pc-corners-round) > .pc-download-progress .pc-download-cancel,
body:has(.pc-portal.pc-corners-rounded) > .pc-download-progress .pc-download-cancel{
  border-radius:10px!important;
}

/* 1.0.46 — subtle photo filename beneath the lightbox image */
body > .pc-lightbox .pc-lb-filename{
  position:absolute!important;
  z-index:24!important;
  left:50%!important;
  bottom:18px!important;
  max-width:min(620px,calc(100vw - 180px))!important;
  transform:translateX(-50%)!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  font-family:var(--pc-font,"Ubuntu",sans-serif)!important;
  font-size:11px!important;
  font-weight:400!important;
  line-height:1.3!important;
  letter-spacing:.01em!important;
  text-align:center!important;
  pointer-events:none!important;
}

/* Dark: quiet white filename. */
body > .pc-lightbox.pc-lightbox-dark .pc-lb-filename{
  color:rgba(255,255,255,.58)!important;
  text-shadow:0 1px 2px rgba(0,0,0,.22)!important;
}

/* Light: quiet neutral-dark filename. */
body > .pc-lightbox.pc-lightbox-light .pc-lb-filename{
  color:rgba(32,37,44,.62)!important;
  text-shadow:none!important;
}

@media(max-width:700px){
  body > .pc-lightbox .pc-lb-filename{
    bottom:max(12px,env(safe-area-inset-bottom))!important;
    max-width:calc(100vw - 120px)!important;
    font-size:10px!important;
  }
}

/* =========================================================
   1.0.47 — filename pill directly above lightbox action bar
   ========================================================= */

/* The filename is its own compact frosted pill, vertically stacked
   just above the main lightbox toolbar. */
body > .pc-lightbox .pc-lb-filename{
  position:absolute!important;
  z-index:36!important;
  left:50%!important;
  right:auto!important;
  top:auto!important;
  bottom:calc(max(16px,env(safe-area-inset-bottom)) + 52px)!important;
  width:max-content!important;
  max-width:min(620px,calc(100vw - 32px))!important;
  min-width:0!important;
  margin:0!important;
  padding:6px 10px!important;
  box-sizing:border-box!important;
  transform:translateX(-50%)!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  border-radius:var(--pc-radius-md,9px)!important;
  font-family:var(--pc-font,"Ubuntu",sans-serif)!important;
  font-size:11px!important;
  font-weight:400!important;
  line-height:1.25!important;
  letter-spacing:.01em!important;
  text-align:center!important;
  pointer-events:none!important;
  -webkit-backdrop-filter:blur(16px) saturate(120%)!important;
  backdrop-filter:blur(16px) saturate(120%)!important;
}

/* Dark theme */
body > .pc-lightbox.pc-lightbox-dark .pc-lb-filename{
  background:rgba(18,21,25,.82)!important;
  border:1px solid rgba(255,255,255,.12)!important;
  color:rgba(255,255,255,.78)!important;
  box-shadow:0 10px 28px rgba(0,0,0,.18)!important;
  text-shadow:none!important;
}

/* Light theme */
body > .pc-lightbox.pc-lightbox-light .pc-lb-filename{
  background:rgba(248,249,250,.86)!important;
  border:1px solid rgba(255,255,255,.90)!important;
  color:rgba(32,37,44,.78)!important;
  box-shadow:0 10px 28px rgba(38,44,50,.12)!important;
  text-shadow:none!important;
}

/* Mobile uses the same stacked presentation and a small fixed visual gap. */
@media(max-width:700px){
  body > .pc-lightbox .pc-lb-filename{
    bottom:calc(max(16px,env(safe-area-inset-bottom)) + 52px)!important;
    width:max-content!important;
    max-width:calc(100vw - 32px)!important;
    padding:6px 9px!important;
    font-size:10px!important;
  }
}

/* Straight-corner client setting also applies to the filename pill. */
body:has(.pc-portal.pc-corners-square) > .pc-lightbox .pc-lb-filename,
body:has(.pc-portal.pc-corners-straight) > .pc-lightbox .pc-lb-filename{
  border-radius:0!important;
}

/* 1.0.48 — exact 10px vertical gap between filename pill and lightbox toolbar */
body > .pc-lightbox .pc-lb-filename{
  bottom:calc(max(16px,env(safe-area-inset-bottom)) + 62px)!important;
}
@media(max-width:700px){
  body > .pc-lightbox .pc-lb-filename{
    bottom:calc(max(16px,env(safe-area-inset-bottom)) + 62px)!important;
  }
}

/* =========================================================
   1.0.49 — mobile lightbox photo + navigation 100px higher
   ========================================================= */
@media(max-width:700px){
  /* Photo stage: 100px above the viewport's vertical centre. */
  body > .pc-lightbox .pc-lb-stage{
    top:calc(50% - 100px)!important;
  }

  /* Navigation tabs move with the photo and stay vertically aligned to it. */
  body > .pc-lightbox .pc-lb-prev,
  body > .pc-lightbox .pc-lb-next{
    top:calc(50% - 100px)!important;
  }
}

/* =========================================================
   1.0.50 — mobile lightbox photo + arrows 60px lower
   ========================================================= */
@media(max-width:700px){
  body > .pc-lightbox .pc-lb-stage{
    top:calc(50% - 40px)!important;
  }

  body > .pc-lightbox .pc-lb-prev,
  body > .pc-lightbox .pc-lb-next{
    top:calc(50% - 40px)!important;
  }
}

/* =========================================================
   1.0.51 — calmer, more refined shoot-card interaction
   ========================================================= */

/* One deliberately slow easing curve for the complete card interaction. */
.pc-shoot-card{
  transition:
    transform .72s cubic-bezier(.16,1,.3,1),
    box-shadow .78s cubic-bezier(.16,1,.3,1),
    border-color .62s cubic-bezier(.16,1,.3,1),
    background-color .62s cubic-bezier(.16,1,.3,1),
    opacity .62s cubic-bezier(.16,1,.3,1)!important;
  will-change:transform;
}

/* Keep the movement subtle: enough feedback without the card jumping. */
@media(hover:hover) and (pointer:fine){
  .pc-shoot-card:hover{
    transform:translateY(-3px)!important;
  }
}

/* Image movement is slower and much less aggressive. */
.pc-shoot-card img,
.pc-shoot-card .pc-shoot-cover,
.pc-shoot-card .pc-shoot-card-image{
  transition:
    transform 1.05s cubic-bezier(.16,1,.3,1),
    filter .85s cubic-bezier(.16,1,.3,1),
    opacity .72s cubic-bezier(.16,1,.3,1)!important;
}

@media(hover:hover) and (pointer:fine){
  .pc-shoot-card:hover img,
  .pc-shoot-card:hover .pc-shoot-cover,
  .pc-shoot-card:hover .pc-shoot-card-image{
    transform:scale(1.018)!important;
  }
}

/* Text, metadata, icons and arrows all ease with the same calm character. */
.pc-shoot-card :where(
  .pc-shoot-title,
  .pc-shoot-meta,
  .pc-shoot-date,
  .pc-shoot-count,
  .pc-shoot-arrow,
  .pc-card-arrow,
  svg
){
  transition:
    transform .68s cubic-bezier(.16,1,.3,1),
    opacity .58s cubic-bezier(.16,1,.3,1),
    color .58s cubic-bezier(.16,1,.3,1),
    background-color .58s cubic-bezier(.16,1,.3,1),
    border-color .58s cubic-bezier(.16,1,.3,1)!important;
}

/* If an arrow already moves on hover, reduce that travel. */
@media(hover:hover) and (pointer:fine){
  .pc-shoot-card:hover :where(.pc-shoot-arrow,.pc-card-arrow){
    transform:translateX(2px)!important;
  }
}

/* No sticky hover animation on touch devices. */
@media(hover:none),(pointer:coarse){
  .pc-shoot-card:hover{
    transform:none!important;
  }
  .pc-shoot-card:hover img,
  .pc-shoot-card:hover .pc-shoot-cover,
  .pc-shoot-card:hover .pc-shoot-card-image{
    transform:none!important;
  }
}

/* Respect reduced-motion accessibility preference. */
@media(prefers-reduced-motion:reduce){
  .pc-shoot-card,
  .pc-shoot-card *{
    transition:none!important;
    transform:none!important;
  }
}

/* 1.0.56 Login branding: centered logo above login card */
.pc-login-stack{width:min(100%,560px);display:flex;flex-direction:column;align-items:center}
.pc-login-logo{width:100%;display:flex;justify-content:center;align-items:center;margin:0 0 80px!important;text-align:center}
.pc-login-logo img{display:block!important;width:250px!important;min-width:250px!important;max-width:100%!important;height:auto!important;max-height:none!important;object-fit:contain!important}
.pc-login-logo-text strong{font-size:28px;font-weight:700;color:var(--pc-text)}
.pc-login-stack .pc-login-card{width:100%}


/* ShootDocks 1.0.59 logo sizing */
.pc-brand{
  padding-top: 24px;width:min(var(--pc-portal-logo-width,250px),48vw)!important;height:72px!important}
.pc-brand img{width:var(--pc-portal-logo-width,250px)!important;height:auto!important;max-width:100%!important;max-height:68px!important;object-fit:contain!important;object-position:left center!important}
.pc-login-stack{position:relative!important}
.pc-login-logo{position:absolute!important;left:50%!important;bottom:calc(100% + 80px)!important;transform:translateX(-50%)!important;width:360px!important;max-width:calc(100vw - 40px)!important;margin:0!important;display:flex!important;justify-content:center!important;align-items:flex-end!important;z-index:2}
.pc-login-logo img{display:block!important;width:360px!important;min-width:360px!important;max-width:100%!important;height:auto!important;max-height:none!important;object-fit:contain!important}
@media(max-width:700px){.pc-brand{
  padding-top: 24px;width:min(var(--pc-portal-logo-width,250px),46vw)!important;height:58px!important;max-width:none!important}.pc-brand img{width:var(--pc-portal-logo-width,250px)!important;max-height:52px!important}.pc-login-logo{width:min(360px,calc(100vw - 40px))!important}.pc-login-logo img{width:100%!important;min-width:0!important}}

/* ShootDocks 1.1.48: extra breathing room above login logo */
.pc-login-wrap{padding-top:84px!important}
@media(max-width:700px){.pc-login-wrap{padding-top:56px!important}}

/* ShootDocks: no light/dark theme switcher on login screen */
.pc-wrap:has(.pc-login-logo) .pc-theme-toggle,
.pc-wrap:has(.pc-login-logo) .pc-theme-switch,
.pc-wrap:has(.pc-login-logo) .pc-theme-switcher,
.pc-wrap:has(.pc-login-logo) [data-pc-theme-toggle] {
    display: none !important;
}


/* ShootDocks 1.1.48 — fast, stable navigation without UI flash */
/* Content is never held back for images/fonts; only a very short paint-level fade. */
.pc-page-preparing .pc-client-home,
.pc-page-preparing .pc-gallery-page,
.pc-page-preparing .pc-footer{
    opacity:.01!important;
    transform:none!important;
}
.pc-page-ready:not(.pc-page-preparing) .pc-client-home,
.pc-page-ready:not(.pc-page-preparing) .pc-gallery-page,
.pc-page-ready:not(.pc-page-preparing) .pc-footer{
    opacity:1!important;
    transform:none!important;
    transition:opacity .16s ease-out!important;
}

/* Header controls stay invisible until the saved/default theme is applied. */
.pc-header-actions{
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
}
.pc-portal.pc-ui-ready .pc-header-actions{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transition:opacity .12s ease-out!important;
}

/* Login screen never shows header actions. */
.pc-portal:has(.pc-login-wrap) .pc-header-actions{
    display:none!important;
}

@media(prefers-reduced-motion:reduce){
  .pc-page-preparing .pc-client-home,
  .pc-page-preparing .pc-gallery-page,
  .pc-page-preparing .pc-footer,
  .pc-page-ready .pc-client-home,
  .pc-page-ready .pc-gallery-page,
  .pc-page-ready .pc-footer,
  .pc-portal.pc-ui-ready .pc-header-actions{
      opacity:1!important;
      transition:none!important;
  }
}

/* ShootDocks 1.1.48 — mobile logo alignment */
@media (max-width: 767px) {
    /* Logged-in portal: visually align brand logo with the logout action */
    .pc-portal:not(:has(.pc-login-wrap)) .pc-brand {
        padding-top: 12px !important;
        transform: translateY(-6px);
    }

    /* Login: smaller logo, closer to the login card */
    .pc-portal:has(.pc-login-wrap) .pc-login-logo img {
        width: 280px !important;
        max-width: calc(100vw - 48px) !important;
        height: auto !important;
    }
    .pc-portal:has(.pc-login-wrap) .pc-login-logo {
        bottom: calc(100% + 38px) !important;
    }
}

/* ShootDocks 1.1.48 — mobile login/header refinements */
@media (max-width:767px){
  /* Logged in: raise brand 15px so its bottom aligns with logout button */
  .pc-portal:not(:has(.pc-login-wrap)) .pc-brand{
    transform:translateY(-21px) !important;
  }

  /* Login: compact centered logo in the available space above the card */
  .pc-portal:has(.pc-login-wrap) .pc-login-logo{
    width:100% !important;
    left:0 !important;
    right:0 !important;
    bottom:calc(100% + 24px) !important;
    display:flex !important;
    justify-content:center !important;
    align-items:center !important;
  }
  .pc-portal:has(.pc-login-wrap) .pc-login-logo img{
    width:200px !important;
    max-width:200px !important;
    height:auto !important;
  }

  /* Login has no theme switcher or logout action at all */
  .pc-portal:has(.pc-login-wrap) .pc-header-actions,
  .pc-portal:has(.pc-login-wrap) .pc-theme-toggle,
  .pc-portal:has(.pc-login-wrap) .pc-theme-switch,
  .pc-portal:has(.pc-login-wrap) .pc-theme-switcher,
  .pc-portal:has(.pc-login-wrap) [data-pc-theme-toggle]{
    display:none !important;
    visibility:hidden !important;
  }
}


/* ShootDocks 1.1.48 — logo controls from Branding */
.pc-portal:not(:has(.pc-login-wrap)) .pc-brand{
  width:min(var(--pc-portal-logo-width,250px),48vw)!important;
  transform:translateY(var(--pc-portal-logo-y,0px))!important;
}
.pc-portal:not(:has(.pc-login-wrap)) .pc-brand img{
  width:var(--pc-portal-logo-width,250px)!important;
  max-width:100%!important;
  height:auto!important;
}
.pc-portal:has(.pc-login-wrap) .pc-login-logo{
  left:50%!important;
  right:auto!important;
  width:var(--pc-login-logo-width,360px)!important;
  max-width:calc(100vw - 40px)!important;
  bottom:calc(100% + var(--pc-login-logo-gap,80px))!important;
  transform:translateX(-50%)!important;
}
.pc-portal:has(.pc-login-wrap) .pc-login-logo img{
  width:var(--pc-login-logo-width,360px)!important;
  min-width:0!important;
  max-width:100%!important;
  height:auto!important;
}
@media(max-width:700px){
  .pc-portal:not(:has(.pc-login-wrap)) .pc-brand{
    width:min(var(--pc-portal-logo-width-mobile,250px),56vw)!important;
    transform:translateY(var(--pc-portal-logo-y-mobile,-11px))!important;
  }
  .pc-portal:not(:has(.pc-login-wrap)) .pc-brand img{
    width:var(--pc-portal-logo-width-mobile,250px)!important;
    max-width:100%!important;
    height:auto!important;
  }
  .pc-portal:has(.pc-login-wrap) .pc-login-logo{
    left:50%!important;
    right:auto!important;
    width:var(--pc-login-logo-width-mobile,200px)!important;
    max-width:calc(100vw - 48px)!important;
    bottom:calc(100% + var(--pc-login-logo-gap-mobile,24px))!important;
    transform:translateX(-50%)!important;
  }
  .pc-portal:has(.pc-login-wrap) .pc-login-logo img{
    width:var(--pc-login-logo-width-mobile,200px)!important;
    max-width:100%!important;
    height:auto!important;
  }
}


/* ShootDocks 1.1.48 — stable desktop header controls, no reveal flicker */
.pc-portal:not(:has(.pc-login-wrap)) .pc-header-actions{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transition:none!important;
}
.pc-portal:not(:has(.pc-login-wrap)) .pc-theme-toggle,
.pc-portal:not(:has(.pc-login-wrap)) .pc-logout{
    opacity:1!important;
    visibility:visible!important;
}

/* Login remains clean: actions are not shown. */
.pc-portal:has(.pc-login-wrap) .pc-header-actions{
    display:none!important;
}


/* ShootDocks 1.1.48 — prevent iOS Safari zoom on login form focus */
@media (max-width: 767px){
  .pc-login-wrap input,
  .pc-login-wrap select,
  .pc-login-wrap textarea{
    font-size:16px!important;
  }
}


/* ShootDocks 1.1.48 — smooth header actions + higher login composition */

/* Logged-in header actions: reserve their space immediately, reveal a little later. */
.pc-portal:not(:has(.pc-login-wrap)) .pc-header-actions{
    opacity:0!important;
    visibility:visible!important;
    pointer-events:none!important;
    transform:translateY(-2px);
    transition:opacity .22s ease, transform .22s ease!important;
    transition-delay:.10s!important;
}
.pc-portal:not(:has(.pc-login-wrap)).pc-controls-ready .pc-header-actions{
    opacity:1!important;
    pointer-events:auto!important;
    transform:translateY(0);
}

/* Keep login actions absent. */
.pc-portal:has(.pc-login-wrap) .pc-header-actions{
    display:none!important;
}

/* Move complete login composition upward without changing internal logo/card spacing. */
.pc-portal:has(.pc-login-wrap) .pc-login-wrap{
    transform:translateY(-28px);
}
@media (max-width:767px){
    .pc-portal:has(.pc-login-wrap) .pc-login-wrap{
        transform:translateY(-22px);
    }
}


/* ShootDocks 1.1.48 — reliable smooth header controls */
@keyframes pcHeaderControlsIn {
  from { opacity:0; transform:translateY(-2px); }
  to   { opacity:1; transform:translateY(0); }
}

.pc-portal:not(:has(.pc-login-wrap)) .pc-header-actions{
  display:flex!important;
  visibility:visible!important;
  pointer-events:auto!important;
  opacity:1!important;
  transform:none!important;
  transition:none!important;
  animation:pcHeaderControlsIn .18s ease .08s both!important;
}

.pc-portal:not(:has(.pc-login-wrap)) .pc-theme-toggle,
.pc-portal:not(:has(.pc-login-wrap)) .pc-logout{
  opacity:1!important;
  visibility:visible!important;
}

/* Login screen never contains visible header controls. */
.pc-portal:has(.pc-login-wrap) .pc-header-actions{
  display:none!important;
}


/* ShootDocks 1.1.48 — stable theme-first navigation */
@keyframes pcHeaderControlsStableIn {
  from { opacity:0; }
  to   { opacity:1; }
}
.pc-portal:not(:has(.pc-login-wrap)) .pc-header-actions{
  transform:none!important;
  animation:pcHeaderControlsStableIn .14s ease .04s both!important;
}


/* ShootDocks 1.1.48 — easier back navigation + clickable logo */
.pc-brand-home{
  display:inline-flex;
  align-items:center;
  text-decoration:none!important;
}
.pc-brand-home img{
  display:block;
}

/* "All photoshoots" back link: slightly higher and much easier to tap/click. */
.pc-shoot-back,
.pc-back-link,
a:has(.pc-back-icon),
.pc-shoot-view .pc-back{
  position:relative;
  top:-6px;
  min-height:44px;
  display:inline-flex!important;
  align-items:center;
  padding:8px 12px!important;
  margin-left:-12px;
  border-radius:8px;
  line-height:1.2;
  text-decoration:none;
  -webkit-tap-highlight-color:transparent;
}

@media(max-width:700px){
  .pc-shoot-back,
  .pc-back-link,
  a:has(.pc-back-icon),
  .pc-shoot-view .pc-back{
    top:-8px;
    min-height:52px;
    padding:12px 14px!important;
    margin-left:-14px;
  }
}


/* ShootDocks 1.1.48 — mobile pinch zoom in lightbox */
body > .pc-lightbox .pc-lb-slide-current img{
  transform-origin:center center!important;
  will-change:transform;
  backface-visibility:hidden;
  -webkit-user-drag:none;
  user-select:none;
}

@media(max-width:700px){
  /* We handle pan/pinch ourselves so the browser does not move/zoom the page.
     All overlay controls stay outside the transformed image and remain fixed. */
  body > .pc-lightbox .pc-lb-stage{
    touch-action:none!important;
    overscroll-behavior:none!important;
  }
  body > .pc-lightbox .pc-lb-slide-current{
    overflow:visible!important;
  }
  body > .pc-lightbox.pc-lb-zoomed .pc-lb-track{
    /* Keep the filmstrip anchored while the current photo is zoomed/panned. */
    transition:none!important;
  }
}


/* ShootDocks 1.1.48 — working mobile image zoom.
   IMPORTANT: this deliberately overrides the legacy
   transform:translateZ(0)!important rule from the filmstrip CSS. */
body > .pc-lightbox .pc-lb-slide-current img{
  --pc-zoom-x:0px;
  --pc-zoom-y:0px;
  --pc-zoom-scale:1;
  --pc-zoom-transition:none;
  transform:
    translate3d(var(--pc-zoom-x),var(--pc-zoom-y),0)
    scale(var(--pc-zoom-scale))!important;
  transition:var(--pc-zoom-transition)!important;
  transform-origin:center center!important;
  will-change:transform!important;
}

@media(max-width:700px){
  body > .pc-lightbox .pc-lb-stage{
    touch-action:none!important;
    -ms-touch-action:none!important;
    overscroll-behavior:none!important;
  }
  body > .pc-lightbox .pc-lb-slide-current{
    overflow:visible!important;
  }
}


/* ShootDocks 1.1.48 — smoother double-tap zoom */
body > .pc-lightbox .pc-lb-slide-current img{
  transition-timing-function:cubic-bezier(.22,1,.36,1)!important;
}


/* ShootDocks 1.1.48 — mobile swipe-down close */
@media(max-width:700px){
  body > .pc-lightbox,
  body > .pc-lightbox .pc-lb-stage{
    touch-action:none!important;
    overscroll-behavior:none!important;
    -webkit-overflow-scrolling:auto;
  }
}


/* ShootDocks 1.1.48 — authoritative visual swipe-down transform.
   Legacy lightbox CSS contains transform/opacity !important rules, so the
   dismiss animation is controlled by custom properties in a later rule. */
@media(max-width:700px){
  body > .pc-lightbox{
    --pc-dismiss-y:0px;
    --pc-dismiss-opacity:1;
    --pc-dismiss-transition:none;
    transform:translate3d(0,var(--pc-dismiss-y),0)!important;
    opacity:var(--pc-dismiss-opacity)!important;
    transition:var(--pc-dismiss-transition)!important;
    will-change:transform,opacity;
  }
}


/* ShootDocks 1.1.48 — Apple Photos inspired mobile dismissal */
@media(max-width:700px){
  body > .pc-lightbox{
    --pc-dismiss-y:0px;
    --pc-dismiss-opacity:1;
    --pc-dismiss-scale:1;
    --pc-dismiss-bg-alpha:.96;
    --pc-dismiss-blur:18px;
    --pc-dismiss-transition:none;

    background-color:rgba(8,8,8,var(--pc-dismiss-bg-alpha))!important;
    -webkit-backdrop-filter:blur(var(--pc-dismiss-blur)) saturate(118%)!important;
    backdrop-filter:blur(var(--pc-dismiss-blur)) saturate(118%)!important;

    transform:
      translate3d(0,var(--pc-dismiss-y),0)
      scale(var(--pc-dismiss-scale))!important;
    transform-origin:50% 12%!important;
    opacity:var(--pc-dismiss-opacity)!important;
    transition:var(--pc-dismiss-transition)!important;
    will-change:transform,opacity,background-color,-webkit-backdrop-filter,backdrop-filter;
  }
}


/* ShootDocks 1.1.48 — liquid glass swipe-down interaction */
@media(max-width:700px){
  body > .pc-lightbox{
    --pc-dismiss-y:0px;
    --pc-dismiss-opacity:1;
    --pc-dismiss-scale:1;
    --pc-dismiss-bg-alpha:.96;
    --pc-dismiss-blur:6px;
    --pc-dismiss-saturation:118%;
    --pc-dismiss-content-blur:0px;
    --pc-dismiss-transition:none;

    background-color:rgba(8,8,8,var(--pc-dismiss-bg-alpha))!important;
    -webkit-backdrop-filter:
      blur(var(--pc-dismiss-blur))
      saturate(var(--pc-dismiss-saturation))!important;
    backdrop-filter:
      blur(var(--pc-dismiss-blur))
      saturate(var(--pc-dismiss-saturation))!important;

    transform:
      translate3d(0,var(--pc-dismiss-y),0)
      scale(var(--pc-dismiss-scale))!important;
    transform-origin:50% 12%!important;
    opacity:var(--pc-dismiss-opacity)!important;
    transition:var(--pc-dismiss-transition)!important;
    will-change:transform,opacity,background-color,-webkit-backdrop-filter,backdrop-filter;
  }

  /* A tiny progressive blur on the lightbox content itself makes the glass
     transition visible even on iOS versions where backdrop-filter is subtle. */
  body > .pc-lightbox .pc-lb-stage,
  body > .pc-lightbox .pc-lb-bar,
  body > .pc-lightbox .pc-lb-close,
  body > .pc-lightbox .pc-lb-prev,
  body > .pc-lightbox .pc-lb-next,
  body > .pc-lightbox .pc-lb-filename{
    filter:blur(var(--pc-dismiss-content-blur))!important;
    transition:filter .12s linear!important;
  }
}


/* ShootDocks 1.1.48 — full-panel liquid glass dismissal */
@media(max-width:700px){
  body > .pc-lightbox{
    --pc-dismiss-y:0px;
    --pc-dismiss-opacity:1;
    --pc-dismiss-scale:1;
    --pc-dismiss-bg-alpha:.94;
    --pc-dismiss-glass-alpha:.10;
    --pc-dismiss-blur:8px;
    --pc-dismiss-saturation:120%;
    --pc-dismiss-brightness:100%;
    --pc-dismiss-chrome-opacity:1;

    /* Entire overlay becomes a glass sheet, not only the photo/content. */
    background:
      linear-gradient(
        to bottom,
        rgba(255,255,255,var(--pc-dismiss-glass-alpha)),
        rgba(255,255,255,calc(var(--pc-dismiss-glass-alpha) * .35))
      ),
      rgba(8,8,8,var(--pc-dismiss-bg-alpha)) !important;

    -webkit-backdrop-filter:
      blur(var(--pc-dismiss-blur))
      saturate(var(--pc-dismiss-saturation))
      brightness(var(--pc-dismiss-brightness)) !important;
    backdrop-filter:
      blur(var(--pc-dismiss-blur))
      saturate(var(--pc-dismiss-saturation))
      brightness(var(--pc-dismiss-brightness)) !important;

    transform:
      translate3d(0,var(--pc-dismiss-y),0)
      scale(var(--pc-dismiss-scale)) !important;
    opacity:var(--pc-dismiss-opacity) !important;
  }

  /* All UI chrome belongs to the same glass panel and fades with it. */
  body > .pc-lightbox .pc-lb-stage,
  body > .pc-lightbox .pc-lb-bar,
  body > .pc-lightbox .pc-lb-close,
  body > .pc-lightbox .pc-lb-prev,
  body > .pc-lightbox .pc-lb-next,
  body > .pc-lightbox .pc-lb-filename,
  body > .pc-lightbox .pc-lb-track{
    opacity:var(--pc-dismiss-chrome-opacity) !important;
    filter:none !important;
    transition:opacity .10s linear !important;
  }

  /* Prevent older rules from painting an opaque inner layer over the glass. */
  body > .pc-lightbox .pc-lb-stage,
  body > .pc-lightbox .pc-lb-track,
  body > .pc-lightbox .pc-lb-slide{
    background:transparent !important;
  }
}


/* ShootDocks 1.1.48 — definitive mobile full-panel liquid glass */
@media(max-width:700px){
  body > .pc-lightbox.pc-lightbox-dark,
  body > .pc-lightbox.pc-lightbox-light,
  body > .pc-lightbox.pc-lightbox-dark.pc-open,
  body > .pc-lightbox.pc-lightbox-light.pc-open{
    --pc-dismiss-y:0px;
    --pc-dismiss-opacity:1;
    --pc-dismiss-scale:1;
    --pc-dismiss-bg-alpha:.96;
    --pc-dismiss-glass-top-alpha:.035;
    --pc-dismiss-glass-bottom-alpha:.012;
    --pc-dismiss-blur:4px;
    --pc-dismiss-saturation:112%;
    --pc-dismiss-brightness:100%;
    --pc-dismiss-chrome-opacity:1;

    background-color:rgba(7,10,14,var(--pc-dismiss-bg-alpha))!important;
    background-image:linear-gradient(
      180deg,
      rgba(255,255,255,var(--pc-dismiss-glass-top-alpha)) 0%,
      rgba(255,255,255,var(--pc-dismiss-glass-bottom-alpha)) 58%,
      rgba(255,255,255,0) 100%
    )!important;
    background-repeat:no-repeat!important;
    background-size:100% 100%!important;

    -webkit-backdrop-filter:
      blur(var(--pc-dismiss-blur))
      saturate(var(--pc-dismiss-saturation))
      brightness(var(--pc-dismiss-brightness))!important;
    backdrop-filter:
      blur(var(--pc-dismiss-blur))
      saturate(var(--pc-dismiss-saturation))
      brightness(var(--pc-dismiss-brightness))!important;

    transform:
      translate3d(0,var(--pc-dismiss-y),0)
      scale(var(--pc-dismiss-scale))!important;
    opacity:var(--pc-dismiss-opacity)!important;
    transition:var(--pc-dismiss-transition)!important;
    will-change:transform,opacity,background-color,-webkit-backdrop-filter,backdrop-filter!important;
  }

  body > .pc-lightbox.pc-lightbox-dark::before,
  body > .pc-lightbox.pc-lightbox-light::before{
    display:none!important;
    background:transparent!important;
  }

  body > .pc-lightbox.pc-lightbox-dark .pc-lb-stage,
  body > .pc-lightbox.pc-lightbox-light .pc-lb-stage,
  body > .pc-lightbox.pc-lightbox-dark .pc-lb-track,
  body > .pc-lightbox.pc-lightbox-light .pc-lb-track,
  body > .pc-lightbox.pc-lightbox-dark .pc-lb-slide,
  body > .pc-lightbox.pc-lightbox-light .pc-lb-slide{
    background:transparent!important;
  }

  body > .pc-lightbox.pc-lightbox-dark .pc-lb-bar,
  body > .pc-lightbox.pc-lightbox-light .pc-lb-bar,
  body > .pc-lightbox.pc-lightbox-dark .pc-lb-close,
  body > .pc-lightbox.pc-lightbox-light .pc-lb-close,
  body > .pc-lightbox.pc-lightbox-dark .pc-lb-prev,
  body > .pc-lightbox.pc-lightbox-light .pc-lb-prev,
  body > .pc-lightbox.pc-lightbox-dark .pc-lb-next,
  body > .pc-lightbox.pc-lightbox-light .pc-lb-next,
  body > .pc-lightbox.pc-lightbox-dark .pc-lb-filename,
  body > .pc-lightbox.pc-lightbox-light .pc-lb-filename{
    opacity:var(--pc-dismiss-chrome-opacity)!important;
  }
}


/* ShootDocks 1.1.48 — richer liquid glass, blurred edges, opaque photo */
@media(max-width:700px){
  body > .pc-lightbox.pc-lightbox-dark,
  body > .pc-lightbox.pc-lightbox-light,
  body > .pc-lightbox.pc-lightbox-dark.pc-open,
  body > .pc-lightbox.pc-lightbox-light.pc-open{
    --pc-dismiss-bg-alpha:.96;
    --pc-dismiss-glass-top-alpha:.028;
    --pc-dismiss-glass-bottom-alpha:.010;
    --pc-dismiss-blur:4px;
    --pc-dismiss-edge-blur:10px;
    --pc-dismiss-photo-blur:0px;
    --pc-dismiss-saturation:112%;
    --pc-dismiss-brightness:100%;

    /* Slightly less transparent than before. */
    background-color:rgba(7,10,14,var(--pc-dismiss-bg-alpha))!important;
  }

  /* Dedicated edge-glass layer.
     The mask keeps the center clear and increasingly blurs the outer edges. */
  body > .pc-lightbox.pc-lightbox-dark::after,
  body > .pc-lightbox.pc-lightbox-light::after{
    content:""!important;
    display:block!important;
    position:absolute!important;
    inset:0!important;
    z-index:18!important;
    pointer-events:none!important;
    background:rgba(255,255,255,.018)!important;
    -webkit-backdrop-filter:
      blur(var(--pc-dismiss-edge-blur))
      saturate(var(--pc-dismiss-saturation))!important;
    backdrop-filter:
      blur(var(--pc-dismiss-edge-blur))
      saturate(var(--pc-dismiss-saturation))!important;

    -webkit-mask-image:radial-gradient(
      ellipse at center,
      transparent 0%,
      transparent 48%,
      rgba(0,0,0,.18) 63%,
      rgba(0,0,0,.62) 80%,
      #000 100%
    )!important;
    mask-image:radial-gradient(
      ellipse at center,
      transparent 0%,
      transparent 48%,
      rgba(0,0,0,.18) 63%,
      rgba(0,0,0,.62) 80%,
      #000 100%
    )!important;
  }

  /* The photo itself remains fully opaque.
     Only the blur grows gradually with the swipe distance. */
  body > .pc-lightbox .pc-lb-slide-current img,
  body > .pc-lightbox .pc-lb-slide-prev img,
  body > .pc-lightbox .pc-lb-slide-next img{
    opacity:1!important;
    filter:blur(var(--pc-dismiss-photo-blur))!important;
    transition:filter .08s linear!important;
  }

  /* Do not fade the stage/track/photo with the chrome.
     Only controls and labels fade subtly. */
  body > .pc-lightbox .pc-lb-stage,
  body > .pc-lightbox .pc-lb-track,
  body > .pc-lightbox .pc-lb-slide{
    opacity:1!important;
  }

  body > .pc-lightbox .pc-lb-bar,
  body > .pc-lightbox .pc-lb-close,
  body > .pc-lightbox .pc-lb-prev,
  body > .pc-lightbox .pc-lb-next,
  body > .pc-lightbox .pc-lb-filename{
    opacity:var(--pc-dismiss-chrome-opacity)!important;
  }
}


/* ShootDocks 1.1.48 — preserve lightbox colour during liquid-glass swipe */
@media(max-width:700px){
  body > .pc-lightbox.pc-lightbox-dark,
  body > .pc-lightbox.pc-lightbox-dark.pc-open{
    --pc-dismiss-tint-alpha:.18;
    background-color:rgba(10,15,22,var(--pc-dismiss-bg-alpha))!important;
    background-image:
      linear-gradient(180deg,
        rgba(29,42,58,var(--pc-dismiss-tint-alpha)) 0%,
        rgba(17,26,38,var(--pc-dismiss-tint-alpha)) 48%,
        rgba(8,12,18,var(--pc-dismiss-tint-alpha)) 100%
      ),
      linear-gradient(180deg,
        rgba(255,255,255,var(--pc-dismiss-glass-top-alpha)) 0%,
        rgba(255,255,255,var(--pc-dismiss-glass-bottom-alpha)) 58%,
        rgba(255,255,255,0) 100%
      )!important;
  }

  body > .pc-lightbox.pc-lightbox-light,
  body > .pc-lightbox.pc-lightbox-light.pc-open{
    --pc-dismiss-tint-alpha:.14;
    background-color:rgba(232,235,239,var(--pc-dismiss-bg-alpha))!important;
    background-image:
      linear-gradient(180deg,
        rgba(224,230,238,var(--pc-dismiss-tint-alpha)) 0%,
        rgba(205,214,225,var(--pc-dismiss-tint-alpha)) 52%,
        rgba(188,198,211,var(--pc-dismiss-tint-alpha)) 100%
      ),
      linear-gradient(180deg,
        rgba(255,255,255,var(--pc-dismiss-glass-top-alpha)) 0%,
        rgba(255,255,255,var(--pc-dismiss-glass-bottom-alpha)) 58%,
        rgba(255,255,255,0) 100%
      )!important;
  }
}


/* ShootDocks 1.1.48 — iOS-style horizontal lightbox paging */
@media(max-width:700px){
  body > .pc-lightbox .pc-lb-track{
    will-change:transform!important;
    backface-visibility:hidden!important;
    -webkit-backface-visibility:hidden!important;
  }
  body > .pc-lightbox .pc-lb-slide{
    backface-visibility:hidden!important;
    -webkit-backface-visibility:hidden!important;
  }
}


/* ShootDocks 1.1.48 — selection panel: thumbs slide, then panel fades in */
.pc-selection-panel{
  overflow:hidden!important;
  transform-origin:top center!important;
}

.pc-selection-panel.pc-selection-empty{
  display:none!important;
}

/* The panel is already in the document flow here. This makes the gallery/thumbs
   smoothly move down before the panel itself becomes visible. */
.pc-selection-panel.pc-selection-entering{
  opacity:0!important;
  transform:translateY(-7px) scale(.995)!important;
  filter:blur(2px)!important;
  pointer-events:none!important;
}

/* Slight delay is deliberate: first the thumbs/layout slide down, then the card fades. */
.pc-selection-panel.pc-selection-visible{
  opacity:1!important;
  transform:translateY(0) scale(1)!important;
  filter:blur(0)!important;
  transition:
    opacity .34s cubic-bezier(.22,1,.36,1) .16s,
    transform .46s cubic-bezier(.22,1,.36,1) .10s,
    filter .34s ease .14s!important;
}

/* Removing the last heart reverses the motion tastefully. */
.pc-selection-panel.pc-selection-leaving{
  opacity:0!important;
  transform:translateY(-5px) scale(.997)!important;
  filter:blur(1.5px)!important;
  pointer-events:none!important;
  transition:
    opacity .22s ease,
    transform .30s cubic-bezier(.4,0,.2,1),
    filter .22s ease!important;
}

@media (prefers-reduced-motion:reduce){
  .pc-selection-panel.pc-selection-visible,
  .pc-selection-panel.pc-selection-leaving{
    transition:none!important;
    filter:none!important;
  }
}


/* ShootDocks 1.1.48 — true FLIP slide for gallery thumbs */
.pc-gallery{
  transform-origin:top center!important;
}

.pc-selection-panel.pc-selection-entering{
  opacity:0!important;
  visibility:hidden!important;
}

.pc-selection-panel.pc-selection-visible{
  visibility:visible!important;
}


/* ShootDocks 1.1.48 — WAAPI-driven per-thumb selection reveal motion */
.pc-thumb{
  backface-visibility:hidden!important;
  -webkit-backface-visibility:hidden!important;
}

.pc-selection-panel.pc-selection-entering{
  opacity:0!important;
  visibility:hidden!important;
}

.pc-selection-panel.pc-selection-visible{
  visibility:visible!important;
}


/* ShootDocks 1.1.48 — genuine layout slide up/down for selection reveal
   The grid-row itself opens/closes, so everything below is physically pushed
   with one continuous ease-in-out motion. No thumbnail transform simulation. */
.pc-selection-slot{
  display:grid!important;
  grid-template-rows:1fr!important;
  margin:0 0 14px!important;
  overflow:hidden!important;
  transition:
    grid-template-rows .72s cubic-bezier(.42,0,.58,1),
    margin-bottom .72s cubic-bezier(.42,0,.58,1)!important;
}

.pc-selection-slot.pc-selection-slot-empty{
  grid-template-rows:0fr!important;
  margin-bottom:0!important;
}

.pc-selection-slot.pc-selection-slot-open{
  grid-template-rows:1fr!important;
  margin-bottom:14px!important;
}

.pc-selection-slot > .pc-selection-panel{
  min-height:0!important;
  margin:0!important;
  overflow:hidden!important;
}

/* Override historical display:none: the slot controls the physical height. */
.pc-selection-slot > .pc-selection-panel.pc-selection-empty{
  display:flex!important;
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  transform:none!important;
  filter:none!important;
}

.pc-selection-slot > .pc-selection-panel.pc-selection-visible{
  display:flex!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
  transform:none!important;
  filter:none!important;
  transition:
    opacity .34s ease-in-out .20s,
    visibility 0s linear 0s!important;
}

.pc-selection-slot > .pc-selection-panel.pc-selection-leaving{
  display:flex!important;
  opacity:0!important;
  visibility:visible!important;
  pointer-events:none!important;
  transform:none!important;
  filter:none!important;
  transition:opacity .22s ease-in-out!important;
}

/* Neutralize the previous FLIP/WAAPI-support transform hooks on the gallery. */
.pc-gallery{
  transform:none!important;
}

@media (prefers-reduced-motion:reduce){
  .pc-selection-slot,
  .pc-selection-slot > .pc-selection-panel{
    transition:none!important;
  }
}


/* ShootDocks 1.1.48 — exact full collapse/open position */
.pc-selection-slot{
  display:block!important;
  height:auto;
  min-height:0!important;
  margin-bottom:14px!important;
  overflow:hidden!important;
  transition:
    height .72s cubic-bezier(.42,0,.58,1),
    margin-bottom .72s cubic-bezier(.42,0,.58,1)!important;
}

/* Closed really means zero pixels, including the panel's own padding/border footprint. */
.pc-selection-slot.pc-selection-slot-empty{
  height:0!important;
  min-height:0!important;
  margin-bottom:0!important;
  padding:0!important;
  border:0!important;
}

.pc-selection-slot.pc-selection-slot-open{
  min-height:0!important;
}

/* The panel itself keeps its natural dimensions; only the outer slot animates. */
.pc-selection-slot > .pc-selection-panel{
  min-height:0!important;
  margin:0!important;
}

.pc-selection-slot > .pc-selection-panel.pc-selection-entering{
  display:flex!important;
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  transform:none!important;
  filter:none!important;
}

.pc-selection-slot > .pc-selection-panel.pc-selection-visible{
  display:flex!important;
  opacity:1!important;
  visibility:visible!important;
}

.pc-selection-slot > .pc-selection-panel.pc-selection-leaving{
  display:flex!important;
}


/* ShootDocks 1.1.48 — selection card never slides/builds.
   Only its reserved space animates. The card fades in after the space is fully open,
   and fades out before the space collapses. */
.pc-selection-slot{
  position:relative!important;
}

.pc-selection-slot > .pc-selection-panel.pc-selection-waiting,
.pc-selection-slot > .pc-selection-panel.pc-selection-empty{
  display:flex!important;
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  transform:none!important;
  filter:none!important;
  transition:none!important;
}

.pc-selection-slot > .pc-selection-panel.pc-selection-visible{
  display:flex!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
  transform:none!important;
  filter:none!important;
  transition:opacity .34s ease-in-out!important;
}

.pc-selection-slot > .pc-selection-panel.pc-selection-leaving{
  display:flex!important;
  opacity:0!important;
  visibility:visible!important;
  pointer-events:none!important;
  transform:none!important;
  filter:none!important;
  transition:opacity .24s ease-in-out!important;
}


/* ShootDocks 1.1.48 — slightly faster selection choreography */
.pc-selection-slot{
  transition:
    height .50s cubic-bezier(.42,0,.58,1),
    margin-bottom .50s cubic-bezier(.42,0,.58,1)!important;
}
.pc-selection-slot > .pc-selection-panel.pc-selection-visible{
  transition:opacity .26s ease-in-out!important;
}
.pc-selection-slot > .pc-selection-panel.pc-selection-leaving{
  transition:opacity .18s ease-in-out!important;
}


/* ShootDocks 1.1.48 — immediate click response + smooth physical slide */
.pc-selection-slot{
  will-change:height,margin-bottom!important;
  contain:layout paint!important;
}


/* ShootDocks 1.1.48 — large rounded SVG back arrow inside shoot hero */
.pc-gallery-back{
  display:none!important;
}

.pc-gallery-hero-back{
  position:absolute!important;
  left:28px!important;
  top:50%!important;
  z-index:75!important;
  width:96px!important;
  height:96px!important;
  transform:translateY(-50%)!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  border-radius:24px!important;
  color:#fff!important;
  text-decoration:none!important;
  background:transparent!important;
  -webkit-tap-highlight-color:transparent!important;
  touch-action:manipulation!important;
  cursor:pointer!important;
  transition:
    background-color .22s ease,
    transform .22s ease,
    opacity .22s ease!important;
}

.pc-gallery-hero-back svg{
  width:68px!important;
  height:68px!important;
  display:block!important;
  overflow:visible!important;
  filter:drop-shadow(0 2px 10px rgba(0,0,0,.28))!important;
  pointer-events:none!important;
}

.pc-gallery-hero-back path{
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:8!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}

.pc-gallery-hero-back:hover{
  background:rgba(255,255,255,.10)!important;
  transform:translateY(-50%) translateX(-2px)!important;
}

.pc-gallery-hero-back:active{
  background:rgba(255,255,255,.16)!important;
  transform:translateY(-50%) translateX(-4px) scale(.98)!important;
}

.pc-gallery-hero-back:focus-visible{
  outline:2px solid rgba(255,255,255,.95)!important;
  outline-offset:3px!important;
}

@media(max-width:700px){
  .pc-gallery-hero-back{
    left:16px!important;
    width:78px!important;
    height:78px!important;
    border-radius:20px!important;
  }
  .pc-gallery-hero-back svg{
    width:56px!important;
    height:56px!important;
  }
}


/* ShootDocks 1.1.48 — larger, thinner and rounder hero back arrow */
.pc-gallery-hero-back{
  left:18px!important;
  width:122px!important;
  height:122px!important;
  border-radius:30px!important;
}

.pc-gallery-hero-back svg{
  width:92px!important;
  height:92px!important;
}

.pc-gallery-hero-back path{
  stroke-width:5!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}

@media(max-width:700px){
  .pc-gallery-hero-back{
    left:8px!important;
    width:96px!important;
    height:96px!important;
    border-radius:26px!important;
  }
  .pc-gallery-hero-back svg{
    width:72px!important;
    height:72px!important;
  }
  .pc-gallery-hero-back path{
    stroke-width:4.5!important;
  }
}


/* ShootDocks 1.1.48 — extra large, strongly rounded hero back arrow */
.pc-gallery-hero-back{
  left:-2px!important; /* exactly 20px further left than 1.1.48 */
  width:154px!important;
  height:154px!important;
  border-radius:38px!important;
}

.pc-gallery-hero-back svg{
  width:122px!important;
  height:122px!important;
}

.pc-gallery-hero-back path{
  stroke-width:4.5!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}

@media(max-width:700px){
  .pc-gallery-hero-back{
    left:-12px!important; /* exactly 20px further left than 1.1.48 mobile */
    width:122px!important;
    height:122px!important;
    border-radius:32px!important;
  }
  .pc-gallery-hero-back svg{
    width:94px!important;
    height:94px!important;
  }
  .pc-gallery-hero-back path{
    stroke-width:4!important;
  }
}


/* ShootDocks 1.1.48 — straight 45° arrow with compact rounded corner */
.pc-gallery-hero-back{
  left:0!important;
  width:168px!important;
  height:168px!important;
  border-radius:0 38px 38px 0!important;
  justify-content:flex-start!important;
  padding-left:0!important;
}

.pc-gallery-hero-back svg{
  width:138px!important;
  height:138px!important;
  margin-left:-8px!important;
}

.pc-gallery-hero-back path{
  stroke-width:4.5!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}

.pc-gallery-hero-back:hover{
  background:rgba(255,255,255,.10)!important;
  transform:translateY(-50%)!important;
}

.pc-gallery-hero-back:active{
  background:rgba(255,255,255,.16)!important;
  transform:translateY(-50%) scale(.985)!important;
}

@media(max-width:700px){
  .pc-gallery-hero-back{
    left:0!important;
    width:136px!important;
    height:136px!important;
    border-radius:0 30px 30px 0!important;
  }
  .pc-gallery-hero-back svg{
    width:108px!important;
    height:108px!important;
    margin-left:-6px!important;
  }
  .pc-gallery-hero-back path{
    stroke-width:4!important;
  }
}


/* ShootDocks 1.1.48 — back arrow at top-left of hero on desktop and mobile */
.pc-gallery-hero-back{
  left:0!important;
  top:0!important;
  transform:none!important;
  width:168px!important;
  height:148px!important;
  align-items:flex-start!important;
  justify-content:flex-start!important;
  padding-top:12px!important;
  border-radius:0 0 38px 0!important;
}

.pc-gallery-hero-back svg{
  width:128px!important;
  height:128px!important;
  margin-left:-8px!important;
  margin-top:0!important;
}

.pc-gallery-hero-back:hover{
  transform:none!important;
}

.pc-gallery-hero-back:active{
  transform:scale(.985)!important;
  transform-origin:left top!important;
}

@media(max-width:700px){
  .pc-gallery-hero-back{
    left:0!important;
    top:0!important;
    transform:none!important;
    width:136px!important;
    height:124px!important;
    padding-top:8px!important;
    border-radius:0 0 30px 0!important;
  }
  .pc-gallery-hero-back svg{
    width:106px!important;
    height:106px!important;
    margin-left:-6px!important;
    margin-top:0!important;
  }
  .pc-gallery-hero-back:hover{
    transform:none!important;
  }
  .pc-gallery-hero-back:active{
    transform:scale(.985)!important;
    transform-origin:left top!important;
  }
}


/* ShootDocks 1.1.48 — top-left back control refined
   - straight 45° arrow
   - approx. 15 mm diameter corner rounding at the arrow apex
   - hover area flush to top/left hero edges
   - left side square except top-left follows hero corner
   - opaque hover using portal background colour
*/
.pc-gallery-hero-back{
  left:0!important;
  top:0!important;
  transform:none!important;
  width:168px!important;
  height:148px!important;
  align-items:flex-start!important;
  justify-content:flex-start!important;
  padding:10px 0 0 0!important;

  /* Top-left follows the hero's own corner.
     Bottom-left remains square because it sits against the hero edge. */
  border-radius:22px 0 34px 0!important;

  background:transparent!important;
  overflow:hidden!important;
}

.pc-gallery-hero-back svg{
  width:132px!important;
  height:132px!important;
  margin-left:-8px!important;
  margin-top:0!important;
}

/* Keep both legs straight at 45°. The quadratic segment only rounds the apex.
   15 mm ≈ 56.7 CSS px at 96 dpi, so the curve spans about 57 px visually. */
.pc-gallery-hero-back svg path{
  d:path("M116 20 L68.5 67.5 Q48.5 80 68.5 92.5 L116 140")!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:4.5!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}

/* Opaque hover, matching the page/portal background instead of translucent glass. */
.pc-gallery-hero-back:hover,
.pc-gallery-hero-back:focus-visible{
  background:var(--pc-bg, #0f1115)!important;
  opacity:1!important;
  transform:none!important;
}

.pc-gallery-hero-back:active{
  background:var(--pc-bg, #0f1115)!important;
  opacity:1!important;
  transform:scale(.985)!important;
  transform-origin:left top!important;
}

@media(max-width:700px){
  .pc-gallery-hero-back{
    left:0!important;
    top:0!important;
    width:138px!important;
    height:124px!important;
    padding-top:8px!important;
    border-radius:18px 0 28px 0!important;
  }

  .pc-gallery-hero-back svg{
    width:108px!important;
    height:108px!important;
    margin-left:-6px!important;
    margin-top:0!important;
  }

  .pc-gallery-hero-back svg path{
    d:path("M116 20 L68.5 67.5 Q48.5 80 68.5 92.5 L116 140")!important;
    stroke-width:4!important;
  }
}


/* ShootDocks 1.1.48 — compact centered back control with opaque liquid glass hover */
.pc-gallery-hero-back{
  left:0!important;
  top:0!important;
  width:132px!important;
  height:116px!important;
  padding:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  transform:none!important;
  border-radius:22px 0 30px 0!important;
  background:transparent!important;
  overflow:hidden!important;
}

.pc-gallery-hero-back svg{
  width:92px!important;
  height:92px!important;
  margin:0!important;
  flex:0 0 auto!important;
}

/* Opaque base colour with a restrained liquid-glass surface treatment. */
.pc-gallery-hero-back:hover,
.pc-gallery-hero-back:focus-visible{
  background:
    radial-gradient(circle at 30% 18%, rgba(255,255,255,.18) 0, rgba(255,255,255,.07) 28%, transparent 52%),
    linear-gradient(145deg, rgba(255,255,255,.08), rgba(255,255,255,.015) 48%, rgba(0,0,0,.07)),
    var(--pc-bg, #0f1115)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.20),
    inset -1px 0 0 rgba(255,255,255,.06),
    inset 0 -1px 0 rgba(0,0,0,.18),
    0 8px 24px rgba(0,0,0,.16)!important;
  -webkit-backdrop-filter:saturate(125%)!important;
  backdrop-filter:saturate(125%)!important;
  opacity:1!important;
  transform:none!important;
}

.pc-gallery-hero-back:active{
  background:
    radial-gradient(circle at 30% 18%, rgba(255,255,255,.13) 0, rgba(255,255,255,.05) 30%, transparent 54%),
    linear-gradient(145deg, rgba(255,255,255,.055), rgba(0,0,0,.075)),
    var(--pc-bg, #0f1115)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.14),
    inset 0 -1px 0 rgba(0,0,0,.22)!important;
  transform:scale(.985)!important;
  transform-origin:center!important;
}

@media(max-width:700px){
  .pc-gallery-hero-back{
    left:0!important;
    top:0!important;
    width:112px!important;
    height:100px!important;
    padding:0!important;
    align-items:center!important;
    justify-content:center!important;
    border-radius:18px 0 26px 0!important;
  }
  .pc-gallery-hero-back svg{
    width:78px!important;
    height:78px!important;
    margin:0!important;
  }
}


/* ShootDocks 1.1.48 — translucent liquid glass + arrow 10px left */
.pc-gallery-hero-back svg{
  position:relative!important;
  left:-10px!important;
}

/* Restore real transparency so the hero image remains visible through the glass. */
.pc-gallery-hero-back:hover,
.pc-gallery-hero-back:focus-visible{
  background:
    radial-gradient(circle at 28% 16%, rgba(255,255,255,.22) 0, rgba(255,255,255,.08) 30%, transparent 56%),
    linear-gradient(145deg, rgba(255,255,255,.10), rgba(255,255,255,.025) 48%, rgba(0,0,0,.08)),
    rgba(15,17,21,.46)!important;
  -webkit-backdrop-filter:blur(18px) saturate(145%)!important;
  backdrop-filter:blur(18px) saturate(145%)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.25),
    inset -1px 0 0 rgba(255,255,255,.08),
    inset 0 -1px 0 rgba(0,0,0,.16),
    0 8px 24px rgba(0,0,0,.14)!important;
}

.pc-gallery-hero-back:active{
  background:
    radial-gradient(circle at 28% 16%, rgba(255,255,255,.17) 0, rgba(255,255,255,.06) 31%, transparent 56%),
    linear-gradient(145deg, rgba(255,255,255,.075), rgba(0,0,0,.07)),
    rgba(15,17,21,.52)!important;
  -webkit-backdrop-filter:blur(20px) saturate(150%)!important;
  backdrop-filter:blur(20px) saturate(150%)!important;
}


/* ShootDocks 1.1.48 — slightly lighter blur and 1px button alignment */
.pc-gallery-hero-back{
  left:-1px!important;
  top:-1px!important;
}

.pc-gallery-hero-back:hover,
.pc-gallery-hero-back:focus-visible{
  -webkit-backdrop-filter:blur(12px) saturate(140%)!important;
  backdrop-filter:blur(12px) saturate(140%)!important;
}

.pc-gallery-hero-back:active{
  -webkit-backdrop-filter:blur(14px) saturate(145%)!important;
  backdrop-filter:blur(14px) saturate(145%)!important;
}

@media(max-width:700px){
  .pc-gallery-hero-back{
    left:-1px!important;
    top:-1px!important;
  }
}


/* ShootDocks 1.1.48 — square back control + top-left press animation */
.pc-gallery-hero-back{
  width:116px!important;
  height:116px!important;
  aspect-ratio:1 / 1!important;
  transform-origin:left top!important;
  transition:
    background .22s ease,
    box-shadow .22s ease,
    transform .22s cubic-bezier(.22,1,.36,1),
    opacity .22s ease!important;
}

/* Keep the arrow visually balanced inside the square control. */
.pc-gallery-hero-back svg{
  width:84px!important;
  height:84px!important;
}

/* On press, shrink toward the upper-left corner instead of toward the center. */
.pc-gallery-hero-back:active{
  transform:scale(.965)!important;
  transform-origin:left top!important;
}

@media(max-width:700px){
  .pc-gallery-hero-back{
    width:100px!important;
    height:100px!important;
    aspect-ratio:1 / 1!important;
    transform-origin:left top!important;
  }
  .pc-gallery-hero-back svg{
    width:74px!important;
    height:74px!important;
  }
  .pc-gallery-hero-back:active{
    transform:scale(.965)!important;
    transform-origin:left top!important;
  }
}


/* ShootDocks 1.1.48 — geometrically clean arrow: straight → round → straight */
.pc-gallery-hero-back svg path{
  d:path("M116 20 L66 70 Q56 80 66 90 L116 140")!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}


/* ShootDocks 1.1.48 — clearer glass + 20% smaller mobile back control */
.pc-gallery-hero-back:hover,
.pc-gallery-hero-back:focus-visible{
  -webkit-backdrop-filter:blur(7px) saturate(135%)!important;
  backdrop-filter:blur(7px) saturate(135%)!important;
}

.pc-gallery-hero-back:active{
  -webkit-backdrop-filter:blur(8px) saturate(140%)!important;
  backdrop-filter:blur(8px) saturate(140%)!important;
}

@media(max-width:700px){
  .pc-gallery-hero-back{
    width:80px!important;
    height:80px!important;
    aspect-ratio:1 / 1!important;
    border-radius:15px 0 21px 0!important;
  }

  .pc-gallery-hero-back svg{
    width:59px!important;
    height:59px!important;
    left:-8px!important;
  }

  .pc-gallery-hero-back:hover,
  .pc-gallery-hero-back:focus-visible{
    -webkit-backdrop-filter:blur(6px) saturate(135%)!important;
    backdrop-filter:blur(6px) saturate(135%)!important;
  }

  .pc-gallery-hero-back:active{
    -webkit-backdrop-filter:blur(7px) saturate(140%)!important;
    backdrop-filter:blur(7px) saturate(140%)!important;
  }
}


/* ShootDocks 1.1.48 — arrow 10% of button width further left */
.pc-gallery-hero-back svg{
  /* desktop button = 116px, 10% = 11.6px */
  left:-11.6px!important;
}

@media(max-width:700px){
  .pc-gallery-hero-back svg{
    /* mobile button = 80px, 10% = 8px */
    left:-8px!important;
  }
}


/* ShootDocks 1.1.48 — arrow glides 20px left on hover */
.pc-gallery-hero-back svg{
  transition:left .42s cubic-bezier(.42,0,.58,1)!important;
}

.pc-gallery-hero-back:hover svg,
.pc-gallery-hero-back:focus-visible svg{
  left:-31.6px!important;
}

@media(max-width:700px){
  .pc-gallery-hero-back svg{
    transition:left .42s cubic-bezier(.42,0,.58,1)!important;
  }

  .pc-gallery-hero-back:hover svg,
  .pc-gallery-hero-back:focus-visible svg{
    left:-28px!important;
  }
}


/* ShootDocks 1.1.48 — refined 6px hover glide */
.pc-gallery-hero-back:hover svg,
.pc-gallery-hero-back:focus-visible svg{
  left:-17.6px!important;
}

@media(max-width:700px){
  .pc-gallery-hero-back:hover svg,
  .pc-gallery-hero-back:focus-visible svg{
    left:-14px!important;
  }
}


/* ShootDocks 1.1.48 — back button follows the square-corner theme */
.pc-corners-square .pc-gallery-hero-back{
  border-radius:0!important;
}


/* ShootDocks 1.1.48 — configurable dark-theme background + gradient */
.pc-portal.pc-theme-dark{
  --pc-bg:var(--pc-theme-bg-start,#0d1116)!important;
  --pc-surface:color-mix(in srgb,var(--pc-theme-bg-start,#0d1116) 86%,white 14%)!important;
  --pc-surface-soft:color-mix(in srgb,var(--pc-theme-bg-start,#0d1116) 78%,white 22%)!important;
  background-color:var(--pc-theme-bg-start,#0d1116)!important;
  background-image:linear-gradient(var(--pc-theme-bg-angle,180deg),var(--pc-theme-bg-start,#0d1116),var(--pc-theme-bg-end,#171b22))!important;
  background-attachment:fixed!important;
  background-size:100% 100%!important;
}

@media(prefers-color-scheme:dark){
  .pc-portal.pc-theme-auto{
    --pc-bg:var(--pc-theme-bg-start,#0d1116)!important;
    --pc-surface:color-mix(in srgb,var(--pc-theme-bg-start,#0d1116) 86%,white 14%)!important;
    --pc-surface-soft:color-mix(in srgb,var(--pc-theme-bg-start,#0d1116) 78%,white 22%)!important;
    background-color:var(--pc-theme-bg-start,#0d1116)!important;
    background-image:linear-gradient(var(--pc-theme-bg-angle,180deg),var(--pc-theme-bg-start,#0d1116),var(--pc-theme-bg-end,#171b22))!important;
    background-attachment:fixed!important;
    background-size:100% 100%!important;
  }
}

/* The detached full-screen lightbox inherits the same dark-theme background. */
body > .pc-lightbox.pc-lightbox-dark,
body > .pc-lightbox.pc-lightbox-dark.pc-open{
  background-color:var(--pc-theme-bg-start,#0d1116)!important;
  background-image:linear-gradient(var(--pc-theme-bg-angle,180deg),var(--pc-theme-bg-start,#0d1116),var(--pc-theme-bg-end,#171b22))!important;
  background-repeat:no-repeat!important;
  background-size:100% 100%!important;
}

/* Dark lightbox materials derive from the selected theme background instead of fixed greys. */
body > .pc-lightbox.pc-lightbox-dark .pc-lb-bar,
body > .pc-lightbox.pc-lightbox-dark .pc-lb-filename{
  background:color-mix(in srgb,var(--pc-theme-bg-start,#0d1116) 82%,transparent)!important;
}
body > .pc-lightbox.pc-lightbox-dark .pc-lb-close,
body > .pc-lightbox.pc-lightbox-dark .pc-lb-prev,
body > .pc-lightbox.pc-lightbox-dark .pc-lb-next{
  background:color-mix(in srgb,var(--pc-theme-bg-start,#0d1116) 62%,transparent)!important;
}
body > .pc-lightbox.pc-lightbox-dark .pc-comment-panel{
  background:color-mix(in srgb,var(--pc-theme-bg-start,#0d1116) 50%,transparent)!important;
}
body > .pc-lightbox.pc-lightbox-dark .pc-comment-card{
  background:color-mix(in srgb,var(--pc-theme-bg-start,#0d1116) 88%,white 12%)!important;
}
body > .pc-lightbox.pc-lightbox-dark .pc-comment-card textarea,
body > .pc-lightbox.pc-lightbox-dark .pc-comment-cancel{
  background:color-mix(in srgb,var(--pc-theme-bg-start,#0d1116) 78%,white 22%)!important;
}

/* Swipe-down liquid glass keeps the selected background hue and gradient. */
@media(max-width:700px){
  body > .pc-lightbox.pc-lightbox-dark,
  body > .pc-lightbox.pc-lightbox-dark.pc-open{
    background-color:color-mix(in srgb,var(--pc-theme-bg-start,#0d1116) calc(var(--pc-dismiss-bg-alpha,1) * 100%),transparent)!important;
    background-image:linear-gradient(
      var(--pc-theme-bg-angle,180deg),
      color-mix(in srgb,var(--pc-theme-bg-start,#0d1116) calc(var(--pc-dismiss-bg-alpha,1) * 100%),transparent),
      color-mix(in srgb,var(--pc-theme-bg-end,#171b22) calc(var(--pc-dismiss-bg-alpha,1) * 100%),transparent)
    )!important;
  }
}


/* ShootDocks 1.1.48 — original dark-theme gradient character restored.
   Geometry is intentionally fixed: only the two colors are configurable.
   The top-left receives a subtle lighter fraction, as before. */
.pc-portal.pc-theme-dark{
  background-color:var(--pc-theme-bg-start,#0d1116)!important;
  background-image:
    radial-gradient(120% 90% at 0% 0%,
      var(--pc-theme-bg-end,#171b22) 0%,
      var(--pc-theme-bg-start,#0d1116) 58%,
      var(--pc-theme-bg-start,#0d1116) 100%)!important;
  background-attachment:fixed!important;
  background-size:100% 100%!important;
}

@media(prefers-color-scheme:dark){
  .pc-portal.pc-theme-auto{
    background-color:var(--pc-theme-bg-start,#0d1116)!important;
    background-image:
      radial-gradient(120% 90% at 0% 0%,
        var(--pc-theme-bg-end,#171b22) 0%,
        var(--pc-theme-bg-start,#0d1116) 58%,
        var(--pc-theme-bg-start,#0d1116) 100%)!important;
    background-attachment:fixed!important;
    background-size:100% 100%!important;
  }
}

body > .pc-lightbox.pc-lightbox-dark,
body > .pc-lightbox.pc-lightbox-dark.pc-open{
  background-color:var(--pc-theme-bg-start,#0d1116)!important;
  background-image:
    radial-gradient(120% 90% at 0% 0%,
      var(--pc-theme-bg-end,#171b22) 0%,
      var(--pc-theme-bg-start,#0d1116) 58%,
      var(--pc-theme-bg-start,#0d1116) 100%)!important;
  background-repeat:no-repeat!important;
  background-size:100% 100%!important;
}

@media(max-width:700px){
  body > .pc-lightbox.pc-lightbox-dark,
  body > .pc-lightbox.pc-lightbox-dark.pc-open{
    background-color:color-mix(in srgb,var(--pc-theme-bg-start,#0d1116) calc(var(--pc-dismiss-bg-alpha,1) * 100%),transparent)!important;
    background-image:
      radial-gradient(120% 90% at 0% 0%,
        color-mix(in srgb,var(--pc-theme-bg-end,#171b22) calc(var(--pc-dismiss-bg-alpha,1) * 100%),transparent) 0%,
        color-mix(in srgb,var(--pc-theme-bg-start,#0d1116) calc(var(--pc-dismiss-bg-alpha,1) * 100%),transparent) 58%,
        color-mix(in srgb,var(--pc-theme-bg-start,#0d1116) calc(var(--pc-dismiss-bg-alpha,1) * 100%),transparent) 100%)!important;
  }
}

/* ShootDocks 1.1.48 — dark/light logo switching */
.pc-brand-home .pc-brand-logo{display:none!important}
.pc-portal.pc-theme-dark .pc-brand-home .pc-brand-logo-dark{display:block!important}
.pc-portal.pc-theme-dark .pc-brand-home .pc-brand-logo-light{display:none!important}
.pc-portal.pc-theme-light .pc-brand-home .pc-brand-logo-light{display:block!important}
.pc-portal.pc-theme-light .pc-brand-home .pc-brand-logo-dark{display:none!important}
.pc-portal.pc-theme-auto .pc-brand-home .pc-brand-logo-dark{display:block!important}
.pc-portal.pc-theme-auto .pc-brand-home .pc-brand-logo-light{display:none!important}
@media(prefers-color-scheme:light){
.pc-portal.pc-theme-auto .pc-brand-home .pc-brand-logo-dark{display:none!important}
.pc-portal.pc-theme-auto .pc-brand-home .pc-brand-logo-light{display:block!important}
}


/* ShootDocks 1.1.48 — glass edge on swipe-down lightbox panel */
@media(max-width:700px){
  body > .pc-lightbox{
    --pc-glass-edge-progress:0;
  }

  body > .pc-lightbox::before{
    content:"";
    position:fixed;
    z-index:2147483646;
    left:0;
    right:0;
    top:0;
    height:1px;
    pointer-events:none;
    opacity:calc(var(--pc-glass-edge-progress,0) * .95);
    background:
      linear-gradient(
        90deg,
        rgba(255,255,255,calc(.12 + var(--pc-glass-edge-progress,0) * .10)) 0%,
        rgba(255,255,255,calc(.34 + var(--pc-glass-edge-progress,0) * .26)) 18%,
        rgba(220,235,255,calc(.52 + var(--pc-glass-edge-progress,0) * .30)) 42%,
        rgba(255,255,255,calc(.26 + var(--pc-glass-edge-progress,0) * .24)) 67%,
        rgba(255,255,255,calc(.08 + var(--pc-glass-edge-progress,0) * .10)) 100%
      );
    box-shadow:
      0 1px 0 rgba(255,255,255,calc(var(--pc-glass-edge-progress,0) * .10)),
      0 2px 6px rgba(185,215,255,calc(var(--pc-glass-edge-progress,0) * .16));
    transform:translateY(calc(var(--pc-dismiss-y,0px) - 1px));
    will-change:opacity,transform,background;
  }

  /* A second hairline gives the edge a refracted glass feel without becoming a thick border. */
  body > .pc-lightbox::after{
    content:"";
    position:fixed;
    z-index:2147483645;
    left:0;
    right:0;
    top:1px;
    height:1px;
    pointer-events:none;
    opacity:calc(var(--pc-glass-edge-progress,0) * .42);
    background:
      linear-gradient(
        90deg,
        rgba(105,160,255,0) 0%,
        rgba(120,180,255,.18) 24%,
        rgba(255,255,255,.24) 48%,
        rgba(110,160,255,.13) 76%,
        rgba(105,160,255,0) 100%
      );
    transform:translateY(calc(var(--pc-dismiss-y,0px) - 1px));
    filter:blur(.25px);
    will-change:opacity,transform;
  }
}


/* ShootDocks 1.1.48 — authoritative visible glass rim on swipe-down.
   This deliberately overrides historical ::before overlay rules. */
@media(max-width:700px){
  body > .pc-lightbox::before{
    content:""!important;
    position:absolute!important;
    inset:auto 0 auto 0!important;
    left:0!important;
    right:0!important;
    top:0!important;
    bottom:auto!important;
    width:100%!important;
    height:2px!important;
    min-height:2px!important;
    z-index:2147483647!important;
    pointer-events:none!important;
    opacity:calc(var(--pc-glass-edge-progress,0) * 1)!important;
    transform:none!important;
    border:0!important;
    background:
      linear-gradient(
        90deg,
        rgba(185,215,255,.16) 0%,
        rgba(255,255,255,.48) 17%,
        rgba(205,228,255,.88) 38%,
        rgba(255,255,255,.68) 55%,
        rgba(145,195,255,.42) 77%,
        rgba(255,255,255,.16) 100%
      )!important;
    box-shadow:
      0 1px 0 rgba(255,255,255,calc(var(--pc-glass-edge-progress,0) * .34)),
      0 2px 7px rgba(155,205,255,calc(var(--pc-glass-edge-progress,0) * .28))!important;
    filter:none!important;
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
    will-change:opacity!important;
  }

  /* Very fine lower refraction, following the same physical top edge. */
  body > .pc-lightbox::after{
    content:""!important;
    position:absolute!important;
    inset:auto 0 auto 0!important;
    top:2px!important;
    width:100%!important;
    height:1px!important;
    z-index:2147483647!important;
    pointer-events:none!important;
    opacity:calc(var(--pc-glass-edge-progress,0) * .62)!important;
    transform:none!important;
    background:
      linear-gradient(
        90deg,
        rgba(90,150,255,0) 0%,
        rgba(130,185,255,.18) 20%,
        rgba(255,255,255,.30) 43%,
        rgba(150,195,255,.18) 68%,
        rgba(90,150,255,0) 100%
      )!important;
    filter:blur(.3px)!important;
    box-shadow:none!important;
  }
}


/* ShootDocks 1.1.48 — real DOM glass edge for reliable iOS/Safari rendering */
@media(max-width:700px){
  body > .pc-lightbox::before,
  body > .pc-lightbox::after{
    display:none!important;
    content:none!important;
  }

  body > .pc-lightbox > .pc-lb-glass-edge{
    position:absolute!important;
    left:0!important;
    right:0!important;
    top:0!important;
    width:100%!important;
    height:2px!important;
    z-index:2147483647!important;
    display:block!important;
    pointer-events:none!important;
    opacity:calc(var(--pc-glass-edge-progress,0) * 1)!important;

    /* Slightly oversized gradient lets the highlight travel horizontally
       as the sheet is dragged down, like a changing reflection on glass. */
    background-image:
      linear-gradient(
        90deg,
        rgba(100,160,255,.08) 0%,
        rgba(205,230,255,.42) 14%,
        rgba(255,255,255,.98) 34%,
        rgba(190,220,255,.68) 51%,
        rgba(255,255,255,.82) 68%,
        rgba(110,175,255,.22) 86%,
        rgba(255,255,255,.08) 100%
      )!important;
    background-size:180% 100%!important;
    background-position:var(--pc-glass-edge-shift,0%) 50%!important;
    background-repeat:no-repeat!important;

    box-shadow:
      0 1px 0 rgba(255,255,255,calc(var(--pc-glass-edge-progress,0) * .42)),
      0 2px 4px rgba(185,220,255,calc(var(--pc-glass-edge-progress,0) * .30)),
      0 4px 10px rgba(120,175,255,calc(var(--pc-glass-edge-progress,0) * .14))!important;

    transform:translateZ(0)!important;
    will-change:opacity,background-position!important;
  }
}


/* ShootDocks 1.1.48 — requested final spacing refinements */

/* Glass rim: exactly 1px. */
@media(max-width:700px){
  body > .pc-lightbox > .pc-lb-glass-edge{
    height:1px!important;
    min-height:1px!important;
    max-height:1px!important;
    box-shadow:
      0 1px 3px rgba(185,220,255,calc(var(--pc-glass-edge-progress,0) * .24)),
      0 3px 8px rgba(120,175,255,calc(var(--pc-glass-edge-progress,0) * .10))!important;
  }
}

/* Mobile only: move the complete hero 8px upward.
   The space below it is exactly the same 18px used between
   the All photos filter row and the thumbnail grid.
   Desktop keeps its existing spacing unchanged. */
@media(max-width:700px){
  .pc-gallery-page > .pc-gallery-hero{
    margin-top:-12px!important;
    margin-bottom:18px!important;
  }
}


/* ShootDocks 1.1.48 — softer, more transparent 1px lightbox glass rim */
@media(max-width:700px){
  body > .pc-lightbox > .pc-lb-glass-edge{
    height:1px!important;
    min-height:1px!important;
    max-height:1px!important;

    /* Lower overall visibility and replace the hard white peak
       with a cooler translucent reflection. */
    opacity:calc(var(--pc-glass-edge-progress,0) * .48)!important;
    background-image:
      linear-gradient(
        90deg,
        rgba(120,170,220,.03) 0%,
        rgba(185,215,240,.16) 16%,
        rgba(225,238,248,.34) 34%,
        rgba(180,215,240,.22) 52%,
        rgba(225,238,248,.28) 69%,
        rgba(135,185,225,.11) 86%,
        rgba(120,170,220,.03) 100%
      )!important;
    background-size:180% 100%!important;
    background-position:var(--pc-glass-edge-shift,0%) 50%!important;

    /* Much softer halo: the edge should read as glass, not a white border. */
    box-shadow:
      0 1px 2px rgba(185,220,255,calc(var(--pc-glass-edge-progress,0) * .10)),
      0 2px 6px rgba(120,175,255,calc(var(--pc-glass-edge-progress,0) * .045))!important;
  }
}


/* ShootDocks 1.1.48 — polished double-tap zoom animation */
@media(max-width:700px){
  body > .pc-lightbox .pc-lb-slide-current img{
    backface-visibility:hidden!important;
    -webkit-backface-visibility:hidden!important;
    transform-style:preserve-3d!important;
  }
}


/* ShootDocks 1.1.48 — premium lightbox touch effects on iPad/tablets.
   Portal/grid responsive breakpoints remain unchanged. */
@media (hover:none) and (pointer:coarse), (any-pointer:coarse) {
  body > .pc-lightbox > .pc-lb-glass-edge{
    position:absolute!important;
    left:0!important;
    right:0!important;
    top:0!important;
    width:100%!important;
    height:1px!important;
    min-height:1px!important;
    max-height:1px!important;
    z-index:2147483647!important;
    display:block!important;
    pointer-events:none!important;
    opacity:calc(var(--pc-glass-edge-progress,0) * .48)!important;
    background-image:linear-gradient(
      90deg,
      rgba(120,170,220,.03) 0%,
      rgba(185,215,240,.16) 16%,
      rgba(225,238,248,.34) 34%,
      rgba(180,215,240,.22) 52%,
      rgba(225,238,248,.28) 69%,
      rgba(135,185,225,.11) 86%,
      rgba(120,170,220,.03) 100%
    )!important;
    background-size:180% 100%!important;
    background-position:var(--pc-glass-edge-shift,0%) 50%!important;
    background-repeat:no-repeat!important;
    box-shadow:
      0 1px 2px rgba(185,220,255,calc(var(--pc-glass-edge-progress,0) * .10)),
      0 2px 6px rgba(120,175,255,calc(var(--pc-glass-edge-progress,0) * .045))!important;
    transform:translateZ(0)!important;
    will-change:opacity,background-position!important;
  }

  body > .pc-lightbox .pc-lb-slide-current img{
    backface-visibility:hidden!important;
    -webkit-backface-visibility:hidden!important;
    transform-style:preserve-3d!important;
  }
}


/* ShootDocks 1.1.48 — iPad swipe-down dismiss fix */
@media (any-pointer:coarse), (hover:none) and (pointer:coarse) {
  body > .pc-lightbox,
  body > .pc-lightbox .pc-lb-stage,
  body > .pc-lightbox .pc-lb-slide,
  body > .pc-lightbox .pc-lb-slide-current,
  body > .pc-lightbox .pc-lb-slide-current img{
    touch-action:none!important;
    -ms-touch-action:none!important;
  }
}
