.gallery-page{background:var(--p-bg);min-height:100vh;color:var(--gs-body-fg,var(--p-text));font-family:var(--gs-body-font,var(--font-geist-sans), -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);-webkit-font-smoothing:antialiased}.gallery-page.gallery-page[data-theme=light],.portfolio-page.ca-album[data-theme=light]{--p-bg:#f8f7f5;--p-bg-raised:#fff;--p-bg-card:#fff;--p-border:#e5e3df;--p-border-subtle:#eeece8;--p-text:#1a1a1a;--p-text-secondary:#6b6b6b;--p-text-muted:#a0a0a0;--p-overlay:#ffffffe6;--p-surface-1:#0a0a0a06;--p-surface-2:#0a0a0a0d;--p-surface-3:#0a0a0a14;--p-surface-4:#0a0a0a1f;--p-border-faint:#0a0a0a1a;--p-border-soft:#0a0a0a26;--p-border-strong:#0a0a0a40}.gallery-page.gallery-page[data-theme=dark],.portfolio-page.ca-album[data-theme=dark]{--p-bg:#060606;--p-bg-raised:#0e0e0e;--p-bg-card:#111;--p-border:#1a1a1a;--p-border-subtle:#141414;--p-text:#e8e8e8;--p-text-secondary:#888;--p-text-muted:#555;--p-overlay:#000000d9;--p-surface-1:#ffffff05;--p-surface-2:#ffffff0a;--p-surface-3:#ffffff12;--p-surface-4:#ffffff1a;--p-border-faint:#ffffff0f;--p-border-soft:#ffffff1a;--p-border-strong:#ffffff2e}.gallery-access-wrap{justify-content:center;align-items:center;min-height:100vh;padding:2rem 1.5rem;display:flex}.gallery-access-card{background:var(--p-surface-2);border:1px solid var(--p-border-strong);text-align:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:12px;width:100%;max-width:400px;padding:2.5rem 2rem;animation:.4s both fadeInUp}.gallery-access-title{letter-spacing:-.02em;color:var(--p-text);margin:0 0 .375rem;font-size:1.5rem;font-weight:700}.gallery-access-subtitle{color:var(--p-text-secondary);margin:0 0 2rem;font-size:.875rem;line-height:1.5}.gallery-access-form{flex-direction:column;gap:.875rem;display:flex}.gallery-field-label{color:var(--p-text-secondary);text-align:left;margin-bottom:.375rem;font-size:.8125rem;font-weight:500;display:block}.gallery-input{background:var(--p-surface-3);border:1px solid var(--p-border-strong);width:100%;color:var(--p-text);box-sizing:border-box;border-radius:8px;outline:none;padding:.75rem 1rem;font-family:inherit;font-size:.9375rem;transition:border-color .15s,background .15s}.gallery-input::placeholder{color:#ffffff4d}.gallery-input:focus{background:var(--p-border-strong);border-color:#ffffff59}.gallery-access-error{background:color-mix(in srgb, var(--accent) 10%, transparent);border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);color:#e88;text-align:left;border-radius:8px;align-items:center;gap:.5rem;padding:.75rem 1rem;font-size:.8125rem;display:flex}.gallery-access-error svg{flex-shrink:0;width:16px;height:16px}.gallery-btn-primary{background:var(--p-text);width:100%;color:var(--p-bg);cursor:pointer;border:none;border-radius:8px;margin-top:.25rem;padding:.75rem 1.5rem;font-family:inherit;font-size:.9375rem;font-weight:600;transition:opacity .15s,transform .15s}.gallery-btn-primary:hover:not(:disabled){opacity:.88;transform:translateY(-1px)}.gallery-btn-primary:active{transform:translateY(0)}.gallery-btn-primary:disabled{opacity:.4;cursor:not-allowed}.gallery-state-wrap{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1rem;min-height:100vh;padding:2rem 1.5rem;display:flex}.gallery-state-code{letter-spacing:-.04em;color:var(--p-text-muted);margin:0;font-size:5rem;font-weight:800;line-height:1}.gallery-state-title{color:var(--p-text);margin:0;font-size:1.125rem;font-weight:600}.gallery-state-body{color:var(--p-text-secondary);max-width:320px;margin:0;font-size:.875rem;line-height:1.6}.gallery-header{z-index:100;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--p-border-subtle);background:#060606e0;justify-content:space-between;align-items:center;gap:1rem;height:56px;padding:0 1.5rem;display:flex;position:sticky;top:0}.gallery-header-left{align-items:center;gap:.75rem;min-width:0;display:flex}.gallery-header-name{color:var(--p-text);white-space:nowrap;text-overflow:ellipsis;font-size:.9375rem;font-weight:600;overflow:hidden}.gallery-header-right{flex-shrink:0;align-items:center;gap:.75rem;display:flex}.gallery-instructions{background:var(--p-bg-raised);border-bottom:1px solid var(--p-border-subtle);padding:1.75rem 1.5rem;animation:.4s both fadeInUp}.gallery-instructions-steps{flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;display:flex}.gallery-inst-step{flex-shrink:0;align-items:center;gap:.75rem;display:flex}.gallery-inst-icon{background:var(--p-surface-3);border:1px solid var(--p-border-strong);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.gallery-inst-icon--heart{color:#e07070;background:#c8323224;border-color:#c83c3c4d}.gallery-inst-icon--chat{color:#6a9cd0;background:#3264c824;border-color:#3264c84d}.gallery-inst-icon--dl{color:#4caf82;background:#4caf821a;border-color:#4caf8240}.gallery-inst-icon svg{width:16px;height:16px}.gallery-inst-body{flex-direction:column;gap:.125rem;display:flex}.gallery-inst-title{color:var(--p-text);font-size:.9375rem;font-weight:600;line-height:1.3}.gallery-inst-sub{color:var(--p-text-muted);font-size:.8125rem;line-height:1.3}.gallery-inst-arrow{color:var(--p-text-muted);opacity:.35;flex-shrink:0;width:16px;height:16px}.gallery-inst-footer{flex-wrap:wrap;justify-content:center;align-items:center;gap:.875rem;margin-top:1rem;display:flex}.gallery-progress-label{color:var(--p-text);white-space:nowrap;font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.8125rem;font-weight:600}.gallery-progress-bar-track{background:var(--p-border);border-radius:2px;flex:1;max-width:140px;height:4px;overflow:hidden}.gallery-progress-bar-fill{background:var(--p-text);border-radius:2px;height:100%;transition:width .3s}.gallery-progress-bar-fill.is-full{background:#4caf82}.gallery-inst-complete{color:#4caf82;font-size:.75rem;font-weight:600}.gallery-progress-remaining{color:var(--p-text-secondary);font-variant-numeric:tabular-nums;font-size:.8125rem;font-weight:600}.gallery-grid-section{padding:1.5rem 0 8rem}.gallery-photo-item{border-radius:var(--p-radius);background:var(--p-bg-raised);cursor:pointer;position:absolute;overflow:hidden}.gallery-photo-item img{width:100%;height:auto;transition:transform .3s,filter .3s;display:block}.gallery-photo-item:hover img{filter:brightness(1.06);transform:scale(1.03)}.gallery-photo-actions{opacity:0;background:linear-gradient(#0000,#0009);flex-wrap:wrap;place-content:flex-end;gap:.375rem;padding:2rem .625rem .625rem;transition:opacity .2s;display:flex;position:absolute;bottom:0;left:0;right:0}.gallery-photo-item:hover .gallery-photo-actions{opacity:1}.gallery-photo-actions-free{pointer-events:none;opacity:0;transition:opacity .2s;position:absolute;inset:0}.gallery-photo-actions-free>button{pointer-events:auto}.gallery-photo-item:hover .gallery-photo-actions-free{opacity:1}.gallery-action-btn{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#e8e8e8;cursor:pointer;background:#0a0a0ab8;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;transition:background .15s,transform .15s,color .15s;display:flex}.gallery-action-btn:hover{background:#1e1e1eeb;transform:scale(1.1)}.gallery-action-btn--pick.is-picked{color:#fff;background:#c83232e6}.gallery-action-btn--buy{letter-spacing:-.005em;white-space:nowrap;border-radius:999px;gap:.375rem;width:auto;min-width:34px;padding:0 .75rem;font-family:inherit;font-size:.75rem;font-weight:600;line-height:1}.gallery-action-btn--buy.is-in-cart{color:#111;background:#f2f2f2}.gallery-action-btn--buy.is-owned{background:color-mix(in srgb, var(--status-success) 92%, transparent);color:#0a0a0a}.gallery-photo-actions__group{align-items:center;gap:.5rem;display:flex}.gallery-action-btn.has-comment{color:#fff;background:#1e5aa0d9}.gallery-action-btn svg{pointer-events:none;width:16px;height:16px}.gallery-photo-item{opacity:0;animation:.45s forwards masonryReveal}.gallery-comment-overlay{z-index:500;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;justify-content:center;align-items:center;padding:1rem;animation:.2s both lightboxFadeIn;display:flex;position:fixed;inset:0}.gallery-comment-panel{background:var(--p-bg-raised);border:1px solid var(--p-border);border-radius:12px;width:100%;max-width:480px;animation:.22s cubic-bezier(.2,1.3,.4,1) both commentPopIn;overflow:hidden}@keyframes commentPopIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.gallery-comment-overlay,.gallery-comment-panel{animation-duration:1ms}}.gallery-comment-header{border-bottom:1px solid var(--p-border-subtle);justify-content:space-between;align-items:center;padding:1rem 1.25rem .875rem;display:flex}.gallery-comment-title{color:var(--p-text);margin:0;font-size:.9375rem;font-weight:600}.gallery-comment-close{color:var(--p-text-secondary);cursor:pointer;background:0 0;border:none;padding:.25rem;line-height:0}.gallery-comment-close:hover{color:var(--p-text)}.gallery-comment-close svg{width:20px;height:20px}.gallery-comment-hint{color:var(--p-text-muted);padding:.75rem 1.25rem 0;font-size:.8125rem;line-height:1.5}.gallery-comment-thumb{object-fit:cover;border:1px solid var(--p-border);border-radius:6px;width:64px;height:64px;margin:.75rem 1.25rem 0;display:block}.gallery-existing-comments{flex-direction:column;gap:.5rem;max-height:160px;padding:.5rem 1.25rem 0;display:flex;overflow-y:auto}.gallery-existing-comment{background:var(--p-bg);border:1px solid var(--p-border-subtle);color:var(--p-text);border-radius:8px;justify-content:space-between;align-items:flex-start;gap:.5rem;padding:.625rem .875rem;font-size:.8125rem;line-height:1.5;display:flex}.gallery-delete-comment-btn{color:var(--p-text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0;line-height:0;transition:color .15s}.gallery-delete-comment-btn:hover{color:#e88}.gallery-delete-comment-btn svg{width:14px;height:14px}.gallery-comment-input-row{align-items:flex-end;gap:.5rem;padding:.875rem 1.25rem 1.25rem;display:flex}.gallery-comment-textarea{background:var(--p-surface-3);border:1.5px solid var(--p-border-strong);color:var(--p-text);resize:none;border-radius:8px;outline:none;flex:1;min-height:72px;padding:.75rem .875rem;font-family:inherit;font-size:.875rem;line-height:1.5;transition:border-color .15s,background .15s,box-shadow .15s}.gallery-comment-textarea::placeholder{color:var(--p-text-muted)}.gallery-comment-textarea:focus{border-color:var(--p-text-secondary);background:var(--p-border-strong);box-shadow:0 0 0 2px var(--p-surface-3)}.gallery-comment-submit{background:var(--p-text);color:var(--p-bg);cursor:pointer;white-space:nowrap;border:none;border-radius:8px;align-self:flex-end;padding:.625rem 1rem;font-family:inherit;font-size:.8125rem;font-weight:600;transition:opacity .15s}.gallery-comment-submit:hover:not(:disabled){opacity:.85}.gallery-comment-submit:disabled{opacity:.4;cursor:not-allowed}.gallery-download-fab{z-index:200;animation:.5s .3s both fadeInUp;position:fixed;bottom:1.5rem;right:1.5rem}.gallery-download-trigger{background:var(--p-text);color:var(--p-bg);cursor:pointer;border:none;border-radius:999px;align-items:center;gap:.5rem;padding:.75rem 1.25rem;font-family:inherit;font-size:.875rem;font-weight:600;transition:opacity .15s,transform .15s;display:flex;box-shadow:0 4px 20px #00000080,0 1px 4px #0000004d}.gallery-download-trigger:hover:not(:disabled){opacity:.88;transform:translateY(-2px)}.gallery-download-trigger:disabled{opacity:.45;cursor:not-allowed}.gallery-download-trigger svg{width:17px;height:17px}.gallery-download-panel{z-index:400;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#000000d1;justify-content:center;align-items:flex-end;padding:1rem;animation:.2s both lightboxFadeIn;display:flex;position:fixed;inset:0}.gallery-download-sheet{background:var(--p-bg-raised);border:1px solid var(--p-border-strong);border-bottom:none;border-radius:12px 12px 0 0;width:100%;max-width:440px;padding:1.5rem 1.5rem 2rem;animation:.25s both commentSlideUp}.gallery-download-sheet-title{color:var(--p-text);margin:0 0 1.25rem;font-size:1rem;font-weight:700}.gallery-format-options{grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:1.25rem;display:grid}.gallery-format-option{position:relative}.gallery-format-option input[type=radio]{opacity:0;width:0;height:0;position:absolute}.gallery-format-label{background:var(--p-surface-2);border:1.5px solid var(--p-border-strong);cursor:pointer;border-radius:8px;flex-direction:column;gap:.25rem;padding:.875rem 1rem;transition:border-color .15s,background .15s;display:flex;position:relative}.gallery-format-label:hover{background:var(--p-surface-3);border-color:#fff3}.gallery-format-option input:checked+.gallery-format-label{background:var(--p-border-strong);border-color:#ffffffbf;box-shadow:inset 0 0 0 1px #ffffffbf}.gallery-format-name{color:var(--p-text);font-size:.875rem;font-weight:600}.gallery-format-desc{color:var(--p-text-secondary);font-size:.75rem}.gallery-download-info{color:var(--p-text-muted);margin-bottom:1rem;font-size:.8125rem;line-height:1.5}.gallery-download-info strong{color:var(--p-text-secondary)}.gallery-download-actions{gap:.625rem;margin-top:.5rem;display:flex}.gallery-btn-secondary{color:var(--p-text-secondary);border:1px solid var(--p-border);cursor:pointer;white-space:nowrap;background:0 0;border-radius:8px;flex:0;padding:.75rem 1.25rem;font-family:inherit;font-size:.875rem;font-weight:500;transition:color .15s,border-color .15s}.gallery-btn-secondary:hover{color:var(--p-text);border-color:var(--p-text-secondary)}.gallery-download-submit{background:var(--p-text);color:var(--p-bg);cursor:pointer;border:none;border-radius:8px;flex:1;justify-content:center;align-items:center;padding:.75rem;font-family:inherit;font-size:.875rem;font-weight:600;transition:opacity .15s;display:flex}.gallery-download-submit:hover:not(:disabled){opacity:.85}.gallery-download-submit:disabled{opacity:.4;cursor:not-allowed}.gallery-download-success{color:#4caf82;background:#4caf821a;border:1px solid #4caf8240;border-radius:8px;align-items:center;gap:.5rem;margin-top:.75rem;padding:.875rem 1rem;font-size:.8125rem;display:flex}.gallery-download-success svg{flex-shrink:0;width:16px;height:16px}.gallery-lightbox-actions{z-index:2;align-items:center;gap:.5rem;display:flex;position:absolute;bottom:1.5rem;right:1.5rem}.gallery-lightbox-like-btn{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--p-border-strong);color:#e8e8e8;cursor:pointer;background:#0a0a0ab8;border-radius:999px;align-items:center;gap:.5rem;padding:.625rem 1rem;font-family:inherit;font-size:.8125rem;font-weight:600;transition:background .15s,border-color .15s;display:flex}.gallery-lightbox-like-btn.is-picked{color:#fff;background:#c83232d9;border-color:#0000}.gallery-lightbox-like-btn.is-in-cart{color:#111;background:#f2f2f2;border-color:#0000}.gallery-lightbox-like-btn.is-owned{background:color-mix(in srgb, var(--status-success) 90%, transparent);color:#0a0a0a;border-color:#0000}.gallery-lightbox-like-btn svg{flex-shrink:0}.gallery-identify-skip{appearance:none;color:var(--p-text-muted);cursor:pointer;background:0 0;border:0;padding:.25rem 0;font-family:inherit;font-size:.75rem;font-weight:500;line-height:1.3;transition:color .15s}.gallery-identify-skip:hover:not(:disabled){color:var(--p-text-secondary)}.gallery-identify-skip:disabled{opacity:.5;cursor:not-allowed}.gallery-lightbox-like-btn.has-comment{color:#fff;background:#1e5aa0cc;border-color:#0000}.gallery-lightbox-like-btn svg{width:16px;height:16px}.gallery-type-badge{background:var(--p-bg-raised);border:1px solid var(--p-border);letter-spacing:.04em;text-transform:uppercase;color:var(--p-text-secondary);border-radius:999px;align-items:center;gap:.375rem;padding:.25rem .625rem;font-size:.6875rem;font-weight:600;display:inline-flex}.gallery-type-badge svg{width:12px;height:12px}.gallery-filter-bar{justify-content:flex-end;gap:.5rem;max-width:1400px;margin:0 auto;padding:0 1.5rem;display:flex}.gallery-filter-chip{border:1px solid var(--p-border);color:var(--p-text-muted);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:.375rem;padding:.5rem .875rem;font-family:inherit;font-size:.8125rem;transition:color .15s,border-color .15s,background .15s;display:inline-flex}.gallery-filter-chip:hover{color:var(--p-text);border-color:var(--p-border-strong)}.gallery-filter-chip.is-active{color:var(--p-text);border-color:var(--p-text)}.gallery-filter-chip__count{font-variant-numeric:tabular-nums;opacity:.6}.gallery-selection-bar{z-index:200;background:var(--p-bg-raised);border:1px solid var(--p-border-strong);border-radius:999px;align-items:center;gap:.75rem;padding:.625rem .75rem .625rem 1rem;animation:.35s both fadeInUp;display:flex;position:fixed;bottom:1.5rem;left:1.5rem;box-shadow:0 4px 20px #00000059}.gallery-selection-bar__count{color:var(--p-text-muted);align-items:center;gap:.375rem;font-size:.8125rem;display:inline-flex}.gallery-selection-bar__count strong{color:var(--p-text);font-variant-numeric:tabular-nums}.gallery-selection-bar__link{background:var(--p-text);color:var(--p-bg);cursor:pointer;border:none;border-radius:999px;padding:.375rem .75rem;font-family:inherit;font-size:.8125rem;font-weight:600;transition:opacity .15s}.gallery-selection-bar__link:hover{opacity:.85}.gallery-selection-bar__ghost{color:var(--p-text-muted);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:.375rem .625rem;font-family:inherit;font-size:.8125rem;font-weight:500;transition:color .15s}.gallery-selection-bar__ghost:hover{color:var(--p-text)}@media (max-width:640px){.gallery-selection-bar{border-radius:14px;flex-wrap:wrap;gap:.5rem;padding:.625rem .75rem;bottom:1rem;left:1rem;right:1rem}.gallery-selection-bar__count{flex:1 0 100%}.gallery-selection-bar__ghost{margin-left:auto}.gallery-selection-bar__ghost,.gallery-selection-bar__link{flex:none}}.gallery-empty{text-align:center;color:var(--p-text-muted);padding:6rem 1rem}.gallery-empty p{margin:0;font-size:.9375rem}@media (max-width:640px){.gallery-header{padding:0 1rem}.gallery-banner{gap:.75rem;padding:.875rem 1rem}.gallery-progress-bar-track{width:80px}.gallery-download-fab{bottom:1rem;right:1rem}.gallery-download-trigger{padding:.75rem 1rem}.gallery-access-card{padding:2rem 1.5rem}}.gallery-lock{position:relative;overflow:hidden}.gallery-lock__backdrop{filter:blur(56px)saturate(1.15)brightness(.55);opacity:.85;pointer-events:none;background-position:50%;background-size:cover;animation:.9s both lockBackdropIn;position:fixed;inset:-10%;transform:scale(1.15)}@keyframes lockBackdropIn{0%{opacity:0;transform:scale(1.25)}to{opacity:.85;transform:scale(1.15)}}.gallery-lock__card{z-index:1;-webkit-backdrop-filter:blur(18px)saturate(1.2);backdrop-filter:blur(18px)saturate(1.2);background:#0c0c0cb8;position:relative;box-shadow:0 24px 60px -24px #000000bf}.gallery-lock__badge{width:76px;height:76px;margin:0 auto 1.25rem;position:relative}.gallery-lock__cover{object-fit:cover;border:1px solid var(--p-border-strong);border-radius:14px;width:100%;height:100%;display:block}.gallery-lock__cover--empty{background:var(--p-surface-2)}.gallery-lock__seal{background:var(--p-text);width:26px;height:26px;color:var(--p-bg);border-radius:50%;place-items:center;display:grid;position:absolute;bottom:-6px;right:-6px;box-shadow:0 2px 8px #00000073}.gallery-lock__by{color:var(--p-text-muted);margin:0 0 1.5rem;font-size:.75rem}.gallery-lock__card .gallery-access-subtitle{margin-bottom:1.75rem}.gallery-access-card.is-wrong{animation:.38s cubic-bezier(.36,.07,.19,.97) both lockShake}@keyframes lockShake{10%,90%{transform:translate(-2px)}20%,80%{transform:translate(4px)}30%,50%,70%{transform:translate(-7px)}40%,60%{transform:translate(7px)}}.gallery-pin-group{justify-content:center;gap:.5rem;display:flex}.gallery-pin-cell{text-align:center;background:var(--p-surface-2);color:#fff;border:1px solid var(--p-border-strong);caret-color:#fff;border-radius:10px;outline:none;width:3.1rem;height:3.8rem;font:600 1.6rem/1 ui-monospace,SFMono-Regular,Menlo,monospace;transition:border-color .12s,background .12s,transform .12s}.gallery-pin-cell:focus{background:var(--p-border-strong);border-color:#ffffff8c}.gallery-pin-cell--filled{background:var(--p-border-strong);border-color:#ffffff4d;transform:translateY(-2px)}.gallery-pin-cell--invalid,.gallery-pin-cell--invalid:focus{border-color:#e0533abf}@media (max-width:420px){.gallery-pin-cell{width:2.7rem;height:3.3rem;font-size:1.5rem}}@media (prefers-reduced-motion:reduce){.gallery-lock__backdrop,.gallery-access-card.is-wrong{animation:none}.gallery-pin-cell--filled{transform:none}}:root[data-theme=light] .gallery-input{background:#00000008;border-color:#0000001f}:root[data-theme=light] .gallery-input::placeholder{color:#00000059}:root[data-theme=light] .gallery-input:focus{background:#0000000d;border-color:#0000004d}.gallery-sections{--gs-gap:2px;--gs-radius:0px;--gs-section-gap:24px;--gs-vw:1vw;gap:var(--gs-section-gap);width:100%;max-width:1480px;padding:0 clamp(8px, calc(2 * var(--gs-vw,1vw)), 32px);box-sizing:border-box;flex-direction:column;margin:3rem auto 3.5rem;display:flex;container:gallery-canvas/inline-size}.gallery-sections[data-density=tight]{--gs-gap:0px;--gs-section-gap:4px}.gallery-sections[data-density=editorial]{--gs-gap:10px;--gs-section-gap:56px}.gallery-sections[data-density=magazine]{--gs-gap:18px;--gs-section-gap:96px}.gallery-sections{--gs-photo-max:55vh}.gallery-sections[data-scale=compact]{--gs-photo-max:40vh}.gallery-sections[data-scale=full]{--gs-photo-max:72vh}.ca-gallery .gallery-sections{max-width:none;margin:2rem 0 3rem;padding:0}.gallery-section{width:100%;margin-bottom:0;animation:.8s cubic-bezier(.16,1,.3,1) both galleryFadeInUp}.gallery-section:last-child{margin-bottom:0}@keyframes galleryFadeInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.gallery-section-content{gap:var(--gs-gap);width:100%;display:grid}.gallery-section-content.cols-1{grid-template-columns:1fr}.gallery-section-content.cols-2{grid-template-columns:1fr 1fr;grid-template-rows:minmax(300px, var(--gs-photo-max,55vh))}.gallery-section-content.cols-3{grid-template-columns:1fr 1fr 1fr;grid-template-rows:minmax(300px, var(--gs-photo-max,55vh))}.gallery-section-content.has-flow{grid-template-rows:auto}@container gallery-canvas (max-width:900px){.gallery-section-content.cols-3{grid-template-columns:1fr 1fr}.gallery-section-content.cols-2,.gallery-section-content.cols-3{grid-template-rows:minmax(220px, var(--gs-photo-max,55vh))}.gallery-section-content.has-flow{grid-template-rows:auto}}.gallery-sections[data-theme=light]{--p-bg:#f8f7f5;--p-bg-raised:#fff;--p-bg-card:#fff;--p-border:#e5e3df;--p-border-subtle:#eeece8;--p-text:#1a1a1a;--p-text-secondary:#6b6b6b;--p-text-muted:#a0a0a0;--p-overlay:#ffffffe6;--p-surface-1:#0a0a0a06;--p-surface-2:#0a0a0a0d;--p-surface-3:#0a0a0a14;--p-surface-4:#0a0a0a1f;--p-border-faint:#0a0a0a1a;--p-border-soft:#0a0a0a26;--p-border-strong:#0a0a0a40}.gallery-sections[data-theme=dark]{--p-bg:#060606;--p-bg-raised:#0e0e0e;--p-bg-card:#111;--p-border:#1a1a1a;--p-border-subtle:#141414;--p-text:#e8e8e8;--p-text-secondary:#888;--p-text-muted:#555;--p-overlay:#000000d9;--p-surface-1:#ffffff05;--p-surface-2:#ffffff0a;--p-surface-3:#ffffff12;--p-surface-4:#ffffff1a;--p-border-faint:#ffffff0f;--p-border-soft:#ffffff1a;--p-border-strong:#ffffff2e}.gallery-section{box-sizing:border-box;padding-block:max(var(--gs-pad-density,0px), var(--gs-pad-bg,0px));padding-inline:var(--gs-pad-bg,0px)}.gallery-section[data-density=tight]{--gs-gap:0px;--gs-pad-density:0px}.gallery-section[data-density=normal]{--gs-gap:2px;--gs-pad-density:0px}.gallery-section[data-density=editorial]{--gs-gap:10px;--gs-pad-density:clamp(16px, calc(2 * var(--gs-vw,1vw)), 32px)}.gallery-section[data-density=magazine]{--gs-gap:18px;--gs-pad-density:clamp(32px, calc(4 * var(--gs-vw,1vw)), 72px)}.gallery-section[data-scale=compact]{--gs-photo-max:40vh}.gallery-section[data-scale=standard]{--gs-photo-max:55vh}.gallery-section[data-scale=full]{--gs-photo-max:72vh}.gallery-section[data-bg]{--gs-pad-bg:clamp(20px, calc(3 * var(--gs-vw,1vw)), 56px);border-radius:var(--gs-radius,0px)}.gallery-section[data-bg=raised]{background:var(--p-bg-raised)}.gallery-section[data-bg=accent]{background:var(--p-bg-raised);background:color-mix(in oklab, var(--gs-accent,var(--p-text)) 14%, var(--p-bg))}.gallery-sections[data-theme=dark] .gallery-section[data-bg=inverted]{--p-bg:#f8f7f5;--p-bg-raised:#fff;--p-bg-card:#fff;--p-border:#e5e3df;--p-border-subtle:#eeece8;--p-text:#1a1a1a;--p-text-secondary:#6b6b6b;--p-text-muted:#a0a0a0;--p-overlay:#ffffffe6;--p-surface-1:#0a0a0a06;--p-surface-2:#0a0a0a0d;--p-surface-3:#0a0a0a14;--p-surface-4:#0a0a0a1f;--p-border-faint:#0a0a0a1a;--p-border-soft:#0a0a0a26;--p-border-strong:#0a0a0a40}.gallery-sections[data-theme=light] .gallery-section[data-bg=inverted]{--p-bg:#060606;--p-bg-raised:#0e0e0e;--p-bg-card:#111;--p-border:#1a1a1a;--p-border-subtle:#141414;--p-text:#e8e8e8;--p-text-secondary:#888;--p-text-muted:#555;--p-overlay:#000000d9;--p-surface-1:#ffffff05;--p-surface-2:#ffffff0a;--p-surface-3:#ffffff12;--p-surface-4:#ffffff1a;--p-border-faint:#ffffff0f;--p-border-soft:#ffffff1a;--p-border-strong:#ffffff2e}.gallery-section[data-bg=inverted]{background:var(--p-bg);color:var(--p-text);--gs-muted:initial;--ca-fg:var(--p-text);--ca-fg-dim:var(--p-text-secondary);--ca-fg-faint:var(--p-text-muted);--ca-line:var(--p-border);--ca-line-strong:var(--p-border-strong);--ca-line-faint:var(--p-border-subtle)}.gallery-section[data-bg=inverted] .gallery-quote-cite .who,.gallery-section[data-bg=inverted] .gallery-chapter .num{color:color-mix(in srgb, var(--ca-accent,var(--p-text)) 50%, var(--p-text))}.gallery-slot{border-radius:var(--gs-radius,var(--p-radius));flex-direction:column;justify-content:stretch;align-items:stretch;display:flex;position:relative;overflow:hidden}.gallery-slot>:not(:where([data-gb-chrome])){flex:auto;width:100%;height:100%}.gallery-photo-card{border-radius:var(--gs-radius,var(--p-radius));background:var(--p-bg-raised);width:100%;height:100%;position:relative;overflow:hidden}.gallery-photo-card img{width:100%;height:100%;transform:scale(var(--crop-zoom,1));transition:transform .6s cubic-bezier(.2,.6,.2,1),filter .4s;display:block}.gallery-photo-card:hover img{transform:scale(calc(var(--crop-zoom,1) * 1.02));filter:brightness(1.04)}.gallery-photo-card .gallery-photo-actions,.gallery-photo-card .gallery-photo-actions-free{pointer-events:none;opacity:0;transition:opacity .2s;position:absolute;inset:0}.gallery-photo-card:hover .gallery-photo-actions,.gallery-photo-card:hover .gallery-photo-actions-free{opacity:1}.gallery-photo-card .gallery-photo-actions>button,.gallery-photo-card .gallery-photo-actions-free>button{pointer-events:auto}.gallery-photo-card .gallery-photo-actions{background:linear-gradient(#0000,#00000080);justify-content:flex-end;align-items:flex-end;gap:.375rem;padding:.625rem;display:flex}.gallery-photo-block{justify-content:center;align-items:center;width:100%;display:flex;position:relative}.gallery-section-content.cols-1 .gallery-photo-block{width:100%}.gallery-section-content.cols-1 .gallery-photo-block .gallery-photo-card{width:100%;max-width:calc(var(--gs-photo-max,55vh) * var(--aspect-ratio));aspect-ratio:var(--aspect-ratio);height:auto;margin:0 auto}.gallery-sections[data-scale=full] .gallery-section-content.cols-1 .gallery-photo-block .gallery-photo-card{max-width:100%;max-height:var(--gs-photo-max,72vh);margin:0}.gallery-section-content.cols-2 .gallery-slot,.gallery-section-content.cols-3 .gallery-slot{min-width:0;overflow:hidden}.gallery-section-content.cols-2 .gallery-photo-block,.gallery-section-content.cols-3 .gallery-photo-block{height:100%}.gallery-section-content.cols-2 .gallery-photo-block .gallery-photo-card,.gallery-section-content.cols-3 .gallery-photo-block .gallery-photo-card{width:100%;height:100%;aspect-ratio:unset}.gallery-section-content.cols-2:not(.has-flow) .gallery-collage,.gallery-section-content.cols-3:not(.has-flow) .gallery-collage{aspect-ratio:auto;height:100%}.gallery-section-content.cols-2:not(.has-flow) .gallery-text-block,.gallery-section-content.cols-3:not(.has-flow) .gallery-text-block{height:100%;min-height:0}.gallery-section-content.has-flow.cols-2,.gallery-section-content.has-flow.cols-3{align-items:center}.gallery-section-content.has-flow.cols-2 .gallery-slot,.gallery-section-content.has-flow.cols-3 .gallery-slot{overflow:visible}.gallery-section-content.has-flow .gallery-photo-block,.gallery-section-content.has-flow .gallery-photo-block .gallery-photo-card,.gallery-section-content.has-flow .gallery-text-block{height:auto;min-height:0}.gallery-section-content.has-flow .gallery-photo-block .gallery-photo-card{aspect-ratio:var(--aspect-ratio,1);max-height:var(--gs-photo-max,55vh)}.gallery-section-content.has-flow .gallery-photo-block .gallery-photo-card img{object-fit:cover;height:100%}.gallery-collage{gap:var(--gs-gap,12px);width:100%;aspect-ratio:var(--collage-aspect,3/2);display:grid}.gallery-section-content.cols-1 .gallery-collage{max-width:calc(var(--gs-photo-max,55vh) * 1.5);margin:0 auto}.gallery-collage.count-2{grid-template-rows:1fr;grid-template-columns:1fr 1fr}.gallery-collage.count-3{grid-template-rows:1fr 1fr;grid-template-columns:3fr 2fr}.gallery-collage.count-3:not([data-preset])>:first-child{grid-row:span 2}.gallery-collage.count-4{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr}.gallery-collage.count-5{grid-template-rows:1fr 1fr;grid-template-columns:3fr 2fr 2fr}.gallery-collage.count-5:not([data-preset])>:first-child{grid-row:span 2}.gallery-collage.count-6{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr 1fr}.gallery-collage>div{border-radius:var(--gs-radius,var(--p-radius));background:var(--p-bg-raised);overflow:hidden}@container gallery-canvas (max-width:640px){.gallery-collage:not([data-preset]){aspect-ratio:4/3}}.gallery-carousel{background:var(--p-bg-raised);border-radius:var(--gs-radius,var(--p-radius));width:100%;position:relative;overflow:hidden}.gallery-section-content.cols-1 .gallery-carousel{max-width:calc(var(--gs-photo-max,55vh) * 1.6);margin:0 auto}.gallery-carousel-track{gap:var(--gs-gap,16px);scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none;scroll-behavior:smooth;display:flex;overflow-x:auto}.gallery-carousel-track::-webkit-scrollbar{display:none}.gallery-carousel-slide{scroll-snap-align:start;aspect-ratio:16/10;flex-shrink:0;width:100%;overflow:hidden}.gallery-carousel-nav{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;z-index:4;cursor:pointer;opacity:0;background:#0808088c;border:1px solid #ffffff24;border-radius:50%;place-items:center;width:40px;height:40px;transition:opacity .25s,background-color .2s,transform .2s;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.gallery-carousel:hover .gallery-carousel-nav,.gallery-carousel-nav:focus-visible{opacity:1}.gallery-carousel-nav:hover{background:#080808cc;transform:translateY(-50%)scale(1.06)}.gallery-carousel-nav.prev{left:14px}.gallery-carousel-nav.next{right:14px}.gallery-carousel-dots{justify-content:center;gap:6px;padding:14px 0 4px;display:flex}.gallery-carousel-counter{font-family:var(--ca-accent-font,var(--font-geist-mono), ui-monospace, monospace);letter-spacing:.12em;color:var(--p-text-muted);font-variant-numeric:tabular-nums;justify-content:center;padding:14px 0 4px;font-size:11px;display:flex}.gallery-carousel-dot{background:var(--p-text-muted);cursor:pointer;border:none;border-radius:50%;width:6px;height:6px;padding:0;transition:background-color .15s,transform .15s}.gallery-carousel-dot.active{background:var(--p-text);transform:scale(1.3)}.gallery-masonry-block-grid{column-gap:var(--gs-gap,16px);width:100%;margin-bottom:calc(-1 * var(--gs-gap,16px));grid-template-columns:repeat(3,1fr);grid-auto-rows:1px;row-gap:0;display:grid}.gallery-masonry-block-item{min-height:0;margin-bottom:var(--gs-gap,16px);overflow:hidden}@container gallery-canvas (max-width:1024px){.gallery-masonry-block-grid{grid-template-columns:repeat(2,1fr)}}@container gallery-canvas (max-width:640px){.gallery-masonry-block-grid{grid-template-columns:1fr}}.gallery-masonry-block-item .gallery-photo-card{height:auto}.gallery-text-block{padding:clamp(64px, calc(10 * var(--gs-vw,1vw)), 140px) clamp(32px, calc(5 * var(--gs-vw,1vw)), 96px);background:var(--p-bg);box-sizing:border-box;flex-direction:column;justify-content:center;align-items:center;height:100%;display:flex;position:relative}.gallery-text-title{font-family:var(--gs-serif,"Playfair Display", Georgia, "Times New Roman", serif);font-size:clamp(2.25rem, calc(5.5 * var(--gs-vw,1vw)), 4rem);letter-spacing:-.025em;color:var(--gs-heading,var(--p-text));text-align:center;text-wrap:balance;max-width:820px;margin:0 0 20px;font-style:italic;font-weight:400;line-height:1.1}.gallery-text-subtitle{font-family:var(--gs-accent-font,var(--font-geist-mono), ui-monospace, SFMono-Regular, monospace);letter-spacing:.22em;text-transform:uppercase;color:var(--gs-muted,var(--p-text-muted));margin:0;font-size:11px;font-weight:500}.gallery-text-block.align-left{align-items:flex-start}.gallery-text-block.align-left .gallery-text-title{text-align:left}.gallery-text-block.align-right{align-items:flex-end}.gallery-text-block.align-right .gallery-text-title{text-align:right}.cols-2 .gallery-text-block,.cols-3 .gallery-text-block{background:var(--p-bg-raised);padding:clamp(32px, calc(4 * var(--gs-vw,1vw)), 64px) clamp(24px, calc(3 * var(--gs-vw,1vw)), 48px)}.cols-2 .gallery-text-title{font-size:clamp(1.6rem, calc(3 * var(--gs-vw,1vw)), 2.25rem)}.cols-3 .gallery-text-title{font-size:clamp(1.35rem, calc(2.5 * var(--gs-vw,1vw)), 1.9rem)}.gallery-text-block.valign-top{justify-content:flex-start}.gallery-text-block.valign-center{justify-content:center}.gallery-text-block.valign-bottom{justify-content:flex-end}.ca-album{--ca-fg:var(--gs-heading,var(--p-text));--ca-fg-mute:#b6b6b6;--ca-fg-dim:var(--p-text-secondary);--ca-fg-faint:var(--gs-muted,var(--p-text-muted));--ca-line:var(--p-border);--ca-line-strong:var(--p-border-strong);--ca-line-faint:var(--p-border-subtle);--ca-accent:var(--gs-accent,#cba14a);--ca-accent-soft:color-mix(in srgb, var(--ca-accent) 16%, transparent);--ca-mint:#4ea27a;--ca-mint-soft:#4ea27a2e;--ca-serif:var(--gs-serif,var(--font-playfair), Georgia, serif);--ca-accent-font:var(--gs-accent-font,var(--font-geist-mono), ui-monospace, monospace);--ca-gap:2px;--ca-section-pad:24px;--ca-max-w:min(92vw, 1840px);background:var(--p-bg);color:var(--ca-fg);overflow-x:hidden}.ca-album[data-theme=light]{--ca-fg-mute:#585858}.ca-album[data-theme=light] .ca-topbar.scrolled{background:#f8f7f5d1}.ca-album[data-theme=light] .ca-btn{background:#ffffffa6}.ca-album[data-theme=light] .ca-btn.ghost{background:0 0}.ca-album[data-theme=light] .ca-btn.ghost:hover{background:#0000000f}.ca-album[data-theme=light] .ca-btn.primary{background:var(--ca-fg);color:var(--p-bg)}.ca-album[data-theme=light] .ca-chapters-nav{background:#ffffffb3}.ca-album[data-theme=light] .ca-hero-bg:after{background:linear-gradient(#f8f7f559 0%,#f8f7f50d 30%,#00000040 65%,#f8f7f5f2 100%)}.ca-album[data-theme=light] .ca-hero-title,.ca-album[data-theme=light] .ca-hero-meta .item strong{color:#161616;text-shadow:0 1px 18px #ffffff80}:root{--ca-topbar-h:60px}.ca-topbar{height:var(--ca-topbar-h);z-index:60;background:0 0;border-bottom:1px solid #0000;align-items:center;gap:20px;padding:0 24px;transition:background .25s,-webkit-backdrop-filter .25s,backdrop-filter .25s,border-color .25s;display:flex;position:fixed;top:0;left:0;right:0}.ca-topbar.scrolled{-webkit-backdrop-filter:blur(16px)saturate(1.4);backdrop-filter:blur(16px)saturate(1.4);border-bottom-color:var(--ca-line-faint);background:#060606c7}.ca-topbar .spacer{flex:1}.ca-hero-back{z-index:70;border:1px solid var(--ca-line-faint);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--ca-fg-mute);background:#14141480;border-radius:999px;align-items:center;gap:4px;padding:8px 14px 8px 10px;font-size:13px;text-decoration:none;transition:color .12s,background .12s,border-color .12s;display:inline-flex;position:fixed;top:18px;left:18px}.ca-hero-back:hover{color:var(--ca-fg);border-color:var(--ca-line);background:#141414b8}.ca-hero-back svg{width:15px;height:15px}.ca-album[data-theme=light] .ca-hero-back{background:#fff9}.ca-topbar .album-tag{font-family:var(--ca-accent-font);letter-spacing:.12em;text-transform:uppercase;color:var(--ca-fg-faint);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:8px;min-width:0;font-size:11px;display:flex;overflow:hidden}.ca-topbar .album-tag>span:last-child{text-overflow:ellipsis;min-width:0;overflow:hidden}.ca-topbar .album-tag .dot{background:var(--ca-mint);width:5px;height:5px;box-shadow:0 0 0 3px var(--ca-mint-soft);border-radius:50%;flex-shrink:0}.ca-topbar .actions{align-items:center;gap:6px;display:flex}.ca-btn{border:1px solid var(--ca-line);height:32px;color:var(--ca-fg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;background:#14141499;border-radius:6px;align-items:center;gap:6px;padding:0 12px;font-family:inherit;font-size:13px;font-weight:500;text-decoration:none;transition:all .12s;display:inline-flex}.ca-btn:hover{background:var(--p-bg-card);border-color:var(--ca-line-strong)}.ca-btn:disabled{opacity:.5;cursor:not-allowed}.ca-btn.ghost{color:var(--ca-fg-mute);background:0 0;border-color:#0000}.ca-btn.ghost:hover{color:var(--ca-fg);background:#14141480}.ca-btn.primary{background:var(--ca-fg);color:var(--p-bg);border-color:var(--ca-fg)}.ca-btn.primary:hover{background:#fff}.ca-topbar .theme-toggle__button{color:var(--ca-fg-mute)}.ca-topbar .theme-toggle__button:hover,.ca-topbar .theme-toggle__button[aria-expanded=true]{color:var(--ca-fg)}.ca-bundle-banner{max-width:var(--ca-max-w);border:1px solid var(--ca-line);background:color-mix(in srgb, var(--ca-accent) 8%, var(--p-bg-raised));border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin:0 auto 28px;padding:14px clamp(14px,2vw,22px);display:flex}.ca-bundle-banner__text{flex-direction:column;gap:2px;min-width:0;display:flex}.ca-bundle-banner__text strong{color:var(--ca-fg);font-size:14px;font-weight:600}.ca-bundle-banner__text span{color:var(--ca-fg-mute);font-size:13px}.ca-bundle-banner__btn{flex-shrink:0;height:40px;padding:0 20px;font-size:13px}.ca-hero{align-items:flex-end;min-height:100vh;margin-bottom:40px;display:flex;position:relative;overflow:hidden}.ca-hero-bg{z-index:0;background-position:50%;background-size:cover;position:absolute;inset:0}.ca-hero-bg:after{content:"";background:linear-gradient(#06060680 0%,#0606061a 30%,#06060666 65%,#060606eb 100%);position:absolute;inset:0}.ca-hero-grain{z-index:1;pointer-events:none;background-image:radial-gradient(circle at 30% 20%,#cba14a0f 0%,#0000 50%),radial-gradient(circle at 70% 80%,#786ec80d 0%,#0000 50%);position:absolute;inset:0}.ca-hero-inner{z-index:2;width:100%;max-width:var(--ca-max-w);grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:24px;margin:0 auto;padding:0 clamp(24px,4vw,72px) clamp(48px,7vh,96px);display:grid;position:relative}.ca-hero-eyebrow{font-family:var(--ca-accent-font,var(--font-geist-mono), ui-monospace, monospace);letter-spacing:.22em;text-transform:uppercase;color:var(--ca-fg-mute);align-items:center;gap:12px;margin-bottom:20px;font-size:11px;display:inline-flex}.ca-hero-eyebrow .line{background:var(--ca-accent);opacity:.85;width:36px;height:1px;display:inline-block}.ca-hero-title{font-family:var(--ca-serif);letter-spacing:-.045em;color:var(--ca-fg);text-wrap:balance;margin:0 0 20px;font-size:clamp(56px,9vw,132px);font-weight:400;line-height:.95}.ca-hero-title .amp{font-family:var(--ca-serif);color:var(--ca-accent);padding:0 .04em;font-style:italic;font-weight:300}.ca-hero-meta{font-family:var(--ca-accent-font,var(--font-geist-mono), ui-monospace, monospace);letter-spacing:.04em;color:var(--ca-fg-dim);flex-wrap:wrap;gap:20px;font-size:12px;display:flex}.ca-hero-meta .item{align-items:center;gap:8px;display:inline-flex}.ca-hero-meta .item strong{color:var(--ca-fg);font-variant-numeric:tabular-nums;font-weight:500}.ca-hero-meta .item .ico{color:var(--ca-fg-faint);display:inline-flex}.ca-hero-meta .sep{color:var(--ca-fg-faint);opacity:.5}.ca-scroll-hint{z-index:2;font-family:var(--ca-accent-font,var(--font-geist-mono), ui-monospace, monospace);letter-spacing:.18em;text-transform:uppercase;color:var(--ca-fg-faint);flex-direction:column;align-items:center;gap:8px;font-size:10px;animation:2.4s ease-in-out infinite ca-bob;display:flex;position:absolute;bottom:24px;left:50%;transform:translate(-50%)}.ca-scroll-hint .line{background:linear-gradient(to bottom, transparent, var(--ca-accent));width:1px;height:28px}.ca-scroll-hint.hidden{opacity:0;pointer-events:none;transition:opacity .4s;animation:none}@keyframes ca-bob{0%,to{opacity:.7;transform:translate(-50%)}50%{opacity:1;transform:translate(-50%,6px)}}.ca-note{text-align:center;max-width:760px;margin:0 auto 40px;padding:0 clamp(24px,4vw,48px)}.ca-note .label{font-family:var(--ca-accent-font);letter-spacing:.22em;text-transform:uppercase;color:var(--ca-fg-faint);justify-content:center;align-items:center;gap:12px;margin-bottom:16px;font-size:11px;display:flex}.ca-note .label .line{background:var(--ca-accent);opacity:.7;width:24px;height:1px}.ca-note p{font-family:var(--ca-serif);color:var(--ca-fg-mute);text-wrap:pretty;white-space:pre-line;margin:0 0 20px;font-size:clamp(18px,2.2vw,22px);font-style:italic;font-weight:400;line-height:1.5}.ca-note .sign{font-family:var(--ca-serif);color:var(--ca-accent);font-size:16px;font-style:italic}.ca-gallery{max-width:var(--ca-max-w);margin:0 auto;padding:0 clamp(8px,2vw,32px)}.ca-album .gallery-sections.is-cinematic .gallery-section{opacity:0;will-change:opacity, transform;animation:none;transform:translateY(24px)}.ca-album .gallery-sections.is-cinematic .gallery-section[data-revealed="1"]{opacity:1;transition:opacity .7s,transform .7s cubic-bezier(.2,.6,.2,1);transform:none}@media (prefers-reduced-motion:reduce){.gallery-section,.ca-album .gallery-sections.is-cinematic .gallery-section{opacity:1;transition:none;animation:none;transform:none}.gallery-photo-card img,.gallery-photo-item img{transition:none}.ca-scroll-hint{animation:none}}.gallery-chapter{box-sizing:border-box;width:100%;max-width:760px;font-family:var(--ca-accent-font,var(--font-geist-mono), ui-monospace, monospace);letter-spacing:.22em;text-transform:uppercase;color:var(--gs-muted,var(--ca-fg-dim,var(--p-text-secondary)));align-items:center;gap:14px;margin:16px auto;padding:0 clamp(16px,3vw,32px);font-size:11px;display:flex}.gallery-chapter .num{font-variant-numeric:tabular-nums;color:var(--ca-accent,var(--p-text-muted))}.gallery-chapter .line{background:linear-gradient(to right, var(--ca-line,var(--p-border)) 0%, transparent 100%);flex:1;height:1px}.ca-chapters-nav{z-index:40;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--ca-line-faint);opacity:0;pointer-events:none;background:#0e0e0e99;border-radius:999px;flex-direction:column;gap:4px;padding:12px 8px;transition:opacity .45s,transform .45s;display:flex;position:fixed;top:50%;right:28px;transform:translateY(-50%)translate(18px)}.ca-chapters-nav.visible{opacity:1;pointer-events:auto;transform:translateY(-50%)translate(0)}.ca-chapters-nav button{cursor:pointer;width:24px;height:24px;color:var(--ca-fg-faint);background:0 0;border:none;border-radius:50%;place-items:center;display:grid;position:relative}.ca-chapters-nav button:before{content:"";background:var(--ca-fg-faint);border-radius:50%;width:6px;height:6px;transition:all .15s}.ca-chapters-nav button:hover:before{background:var(--ca-fg-mute);transform:scale(1.4)}.ca-chapters-nav button.active:before{background:var(--ca-accent);box-shadow:0 0 0 3px var(--ca-accent-soft);transform:scale(1.2)}.ca-chapters-nav button .tooltip{background:var(--p-bg-raised);border:1px solid var(--ca-line);color:var(--ca-fg);font-family:var(--ca-accent-font,var(--font-geist-mono), ui-monospace, monospace);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;opacity:0;pointer-events:none;border-radius:6px;padding:6px 10px;font-size:11px;transition:opacity .15s;position:absolute;top:50%;right:calc(100% + 14px);transform:translateY(-50%)}.ca-chapters-nav button:hover .tooltip{opacity:1}.ca-signoff{text-align:center;border-top:1px solid var(--ca-line-faint);border-bottom:1px solid var(--ca-line-faint);max-width:900px;margin:40px auto;padding:40px clamp(24px,4vw,48px)}.ca-signoff .label{font-family:var(--ca-accent-font);letter-spacing:.22em;text-transform:uppercase;color:var(--ca-accent);margin-bottom:16px;font-size:11px}.ca-signoff h2 .amp{color:var(--ca-accent);font-style:italic}.ca-signoff h2{font-family:var(--ca-serif);letter-spacing:-.02em;color:var(--ca-fg);margin:0 0 12px;font-size:clamp(36px,5vw,64px);font-style:italic;font-weight:400;line-height:1.1}.ca-signoff-note{font-family:var(--ca-serif);letter-spacing:-.01em;color:var(--ca-fg);white-space:pre-wrap;margin:0 0 14px;font-size:clamp(22px,3vw,38px);font-style:italic;font-weight:400;line-height:1.25}.ca-signoff .from{font-family:var(--ca-accent-font);letter-spacing:.16em;text-transform:uppercase;color:var(--ca-fg-dim);margin-bottom:24px;font-size:12px}.ca-signoff .actions{flex-wrap:wrap;justify-content:center;gap:10px;display:inline-flex}.ca-signoff .actions .ca-btn{height:38px;padding:0 20px;font-size:13px}.ca-modal-scrim{z-index:250;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;pointer-events:none;background:#000000b3;place-items:center;padding:24px;transition:opacity .2s;display:grid;position:fixed;inset:0}.ca-modal-scrim.open{opacity:1;pointer-events:auto}.ca-modal{background:var(--p-bg);border:1px solid var(--ca-line);border-radius:10px;width:440px;max-width:calc(100vw - 48px);overflow:hidden;box-shadow:0 40px 80px #0009}.ca-modal .head{border-bottom:1px solid var(--ca-line-faint);justify-content:space-between;align-items:center;padding:20px;display:flex}.ca-modal .head h3{margin:0;font-size:15px;font-weight:500}.ca-modal .head .close{border:1px solid var(--ca-line);width:28px;height:28px;color:var(--ca-fg-mute);cursor:pointer;background:0 0;border-radius:50%;place-items:center;display:grid}.ca-modal .head .close:hover{color:var(--ca-fg)}.ca-modal .body{padding:20px}.ca-modal .body p{color:var(--ca-fg-mute);margin:0 0 16px;font-size:13px;line-height:1.55}.ca-modal .row{border:1px solid var(--ca-line);background:var(--p-bg-raised);border-radius:6px;align-items:center;gap:8px;margin-bottom:12px;padding:12px 14px;display:flex}.ca-modal .row input{font-family:var(--font-geist-mono), ui-monospace, monospace;color:var(--ca-fg);background:0 0;border:none;outline:none;flex:1;font-size:12px}.ca-modal .row button{background:var(--ca-fg);color:var(--p-bg);cursor:pointer;border:none;border-radius:4px;padding:6px 12px;font-size:12px;font-weight:500}@media (max-width:900px){.ca-hero-inner{grid-template-columns:1fr}.ca-chapters-nav{display:none}}@media (max-width:600px){.ca-hero-inner{padding-bottom:88px}}.gallery-spacer{width:100%}.gallery-spacer.size-small{height:clamp(24px, calc(4 * var(--gs-vw,1vw)), 48px)}.gallery-spacer.size-medium{height:clamp(48px, calc(8 * var(--gs-vw,1vw)), 104px)}.gallery-spacer.size-large{height:clamp(96px, calc(14 * var(--gs-vw,1vw)), 200px)}.gallery-hero-block{width:100%;height:clamp(280px, var(--gs-photo-max,55vh), 640px);border-radius:var(--gs-radius,var(--p-radius));position:relative;overflow:hidden}.gallery-section-content.cols-2 .gallery-hero-block,.gallery-section-content.cols-3 .gallery-hero-block,.gallery-hero-block .gallery-photo-card{height:100%}.gallery-hero-overlay{text-align:center;pointer-events:none;background:linear-gradient(#0000001f,#0000006b);flex-direction:column;justify-content:center;align-items:center;gap:.625rem;padding:1.5rem;display:flex;position:absolute;inset:0}.gallery-hero-overlay h2{font-family:var(--gs-serif,"Playfair Display", Georgia, serif);font-style:italic;font-weight:500;font-size:clamp(1.75rem, calc(4.5 * var(--gs-vw,1vw)), 3.25rem);letter-spacing:.01em;color:#fff;text-shadow:0 2px 24px #00000073;margin:0}.gallery-hero-overlay p{font-family:var(--ca-accent-font,var(--font-geist-mono), ui-monospace, monospace);font-size:clamp(.65rem, calc(1.2 * var(--gs-vw,1vw)), .8rem);letter-spacing:.22em;text-transform:uppercase;color:#ffffffd1;text-shadow:0 1px 12px #00000073;margin:0}.gallery-strip{gap:var(--gs-gap,12px);width:100%;display:flex}.gallery-strip-item{border-radius:var(--gs-radius,var(--p-radius));background:var(--p-bg-raised);flex-basis:0;min-width:0;overflow:hidden}.gallery-strip-item .gallery-photo-card{height:100%}.gallery-more-photos{margin-top:24px}.gallery-more-photos .gallery-chapter{max-width:1400px}.gallery-before-after{width:100%;position:relative}.gallery-ba-frame{width:100%;aspect-ratio:var(--aspect-ratio,1.5);border-radius:var(--gs-radius,0px);cursor:ew-resize;position:relative;overflow:hidden}.gallery-before-after[data-orientation=vertical] .gallery-ba-frame{cursor:ns-resize}.gallery-ba-img,.gallery-ba-img img{object-fit:cover;width:100%;height:100%;display:block}.gallery-ba-clip{will-change:clip-path;position:absolute;inset:0}.gallery-ba-handle{background:var(--p-bg,#fff);box-shadow:0 0 0 1px var(--p-border-soft,#00000026);pointer-events:none;position:absolute}.gallery-before-after[data-orientation=horizontal] .gallery-ba-handle{top:0;bottom:0;left:var(--ba-split,50%);width:2px;transform:translate(-1px)}.gallery-before-after[data-orientation=vertical] .gallery-ba-handle{left:0;right:0;top:var(--ba-split,50%);height:2px;transform:translateY(-1px)}.gallery-ba-handle:after{content:"";background:inherit;width:34px;height:34px;box-shadow:0 0 0 1px var(--p-border-soft,#00000026);border-radius:50%;position:absolute}.gallery-before-after[data-orientation=horizontal] .gallery-ba-handle:after,.gallery-before-after[data-orientation=vertical] .gallery-ba-handle:after{top:50%;left:50%;transform:translate(-50%,-50%)}.gallery-ba-label{border-radius:var(--gs-radius,0px);background:var(--p-overlay,#000000d9);color:var(--p-text,#fff);font-family:var(--font-mono,monospace);letter-spacing:.08em;text-transform:uppercase;pointer-events:none;padding:4px 8px;font-size:10px;position:absolute;bottom:12px}.gallery-ba-label.is-before{left:12px}.gallery-ba-label.is-after{right:12px}.gallery-before-after[data-orientation=vertical] .gallery-ba-label.is-before{top:12px;bottom:auto}.gallery-ba-range{opacity:0;width:100%;height:100%;cursor:inherit;appearance:none;background:0 0;margin:0;padding:0;position:absolute;inset:0}.gallery-ba-range[data-orientation=vertical]{writing-mode:vertical-lr}.gallery-ba-range::-webkit-slider-thumb{-webkit-appearance:none;width:2px;height:100%}.gallery-ba-range::-moz-range-thumb{border:none;width:2px;height:100%}.gallery-ba-range[data-orientation=vertical]::-webkit-slider-thumb{width:100%;height:2px}.gallery-ba-range[data-orientation=vertical]::-moz-range-thumb{width:100%;height:2px}.gallery-ba-range:focus-visible~.gallery-ba-handle,.gallery-ba-range:focus-visible+.gallery-ba-handle{box-shadow:0 0 0 2px var(--gs-accent,var(--p-text,#fff))}.gallery-ba-frame:has(.gallery-ba-range:focus-visible){outline:2px solid var(--gs-accent,var(--p-text,#fff));outline-offset:2px}.gallery-sections{--gs-bleed:100vw}.gallery-band{width:100%;height:var(--gs-band-h,clamp(280px, 46vh, 560px));position:relative;overflow:hidden}.gallery-band .gallery-photo-card{height:100%}.gallery-section-content.cols-1 .gallery-band{width:var(--gs-bleed);margin-left:calc(50% - var(--gs-bleed) / 2);border-radius:0}.gallery-section-content.cols-1 .gallery-slot:has(>.gallery-band){border-radius:0;overflow:visible}.gallery-section[data-bg] .gallery-section-content.cols-1 .gallery-band{width:calc(100% + 2 * var(--gs-pad-bg,0px));margin-left:calc(-1 * var(--gs-pad-bg,0px))}.gallery-band[data-height=short]{--gs-band-h:clamp(180px, 28vh, 320px)}.gallery-band[data-height=medium]{--gs-band-h:clamp(280px, 46vh, 560px)}.gallery-band[data-height=tall]{--gs-band-h:clamp(380px, 68vh, 820px)}.gallery-band[data-height=full]{--gs-band-h:100dvh}.gallery-divider{margin-block:24px}.gallery-divider[data-rule=dotted] .line{border-top:1px dashed var(--ca-line,var(--p-border));opacity:.7;background:0 0;height:0}.gallery-divider[data-rule=none]{justify-content:center;max-width:520px}.gallery-cta{box-sizing:border-box;width:100%;padding:clamp(32px, calc(5 * var(--gs-vw,1vw)), 72px) clamp(20px, calc(3 * var(--gs-vw,1vw)), 48px);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex}.gallery-cta-headline{font-family:var(--gs-serif,"Playfair Display", Georgia, serif);font-size:clamp(1.5rem, calc(3.2 * var(--gs-vw,1vw)), 2.5rem);letter-spacing:.01em;color:var(--p-text);margin:0;font-weight:500}.gallery-cta-body{max-width:52ch;font-size:clamp(.875rem, calc(1.4 * var(--gs-vw,1vw)), 1rem);color:var(--p-text-muted);margin:0;line-height:1.6}.gallery-cta-btn{border:1px solid var(--gs-accent,var(--p-text));background:var(--gs-accent,var(--p-text));color:var(--p-bg);font-family:var(--ca-accent-font,var(--font-geist-mono), ui-monospace, monospace);letter-spacing:.18em;text-transform:uppercase;cursor:pointer;border-radius:999px;justify-content:center;align-items:center;margin-top:4px;padding:14px 28px;font-size:12px;text-decoration:none;transition:opacity .2s,transform .2s;display:inline-flex}.gallery-cta-btn:hover{opacity:.86;transform:translateY(-1px)}.gallery-cta-btn:disabled{cursor:default;opacity:.5;transform:none}.gallery-cta[data-off]{opacity:.62}.gallery-cta-note{letter-spacing:.04em;color:var(--p-text-muted);margin:0;font-size:11px}.gallery-quote{width:100%;max-width:720px;padding:clamp(32px, calc(4 * var(--gs-vw,1vw)), 64px) clamp(20px, calc(3 * var(--gs-vw,1vw)), 48px);box-sizing:border-box;text-align:center;flex-direction:column;gap:20px;margin:0 auto;display:flex}.gallery-quote.align-left{text-align:left;align-items:flex-start;margin-left:0}.gallery-quote.align-right{text-align:right;align-items:flex-end;margin-right:0}.gallery-quote-body{font-family:var(--gs-serif,"Playfair Display", Georgia, serif);font-size:clamp(1.25rem, calc(2.4 * var(--gs-vw,1vw)), 1.75rem);letter-spacing:.01em;color:var(--p-text);quotes:"“" "”" "‘" "’";margin:0;font-style:italic;font-weight:400;line-height:1.5}.gallery-quote-body:before{content:open-quote}.gallery-quote-body:after{content:close-quote}.gallery-quote-cite{font-family:var(--ca-accent-font,var(--font-geist-mono), ui-monospace, monospace);letter-spacing:.22em;text-transform:uppercase;color:var(--p-text-secondary);flex-direction:column;gap:2px;font-size:11px;display:flex}.gallery-quote-cite .who{color:var(--ca-accent,var(--p-text))}.gallery-video{box-sizing:border-box;width:100%}.gallery-video[data-aspect=landscape]{--gv-ratio:16 / 9}.gallery-video[data-aspect=portrait]{--gv-ratio:9 / 16}.gallery-video[data-aspect=classic]{--gv-ratio:4 / 3}.gallery-video[data-aspect=cinema]{--gv-ratio:2.39 / 1}.gallery-video-facade,.gallery-video-player{width:100%;aspect-ratio:var(--gv-ratio,16 / 9);border:0;border-radius:2px;display:block}.gallery-video-facade{background:var(--p-bg-raised);color:var(--p-text);cursor:pointer;padding:0;position:relative;overflow:hidden}.gallery-video-poster{display:block;position:absolute;inset:0}.gallery-video-poster:after{content:"";pointer-events:none;background:linear-gradient(#0000 45%,#0000008c);position:absolute;inset:0}.gallery-video-facade[data-poster] .gallery-video-label .title,.gallery-video-facade[data-poster] .gallery-video-label .host{color:#fff}.gallery-video-mark{border:1px solid var(--p-border-soft,var(--p-border));background:var(--gs-accent,var(--p-text));width:64px;height:64px;color:var(--p-bg);border-radius:999px;justify-content:center;align-items:center;transition:transform .2s,opacity .2s;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.gallery-video-facade:hover .gallery-video-mark{transform:translate(-50%,-50%)scale(1.06)}.gallery-video-label{text-align:left;flex-direction:column;gap:4px;padding:16px 20px;display:flex;position:absolute;bottom:0;left:0;right:0}.gallery-video-label .title{font-family:var(--gs-serif,"Playfair Display", Georgia, serif);font-size:clamp(1rem, calc(1.6 * var(--gs-vw,1vw)), 1.25rem);color:var(--p-text)}.gallery-video-label .host{font-family:var(--ca-accent-font,var(--font-geist-mono), ui-monospace, monospace);letter-spacing:.18em;text-transform:uppercase;color:var(--p-text-muted);font-size:10px}.gallery-video-caption{font-size:clamp(.8125rem, calc(1.2 * var(--gs-vw,1vw)), .9375rem);color:var(--p-text-muted);margin:8px 0 0}.gallery-video.is-empty{aspect-ratio:var(--gv-ratio,16 / 9);border:1px dashed var(--p-border);background:var(--p-bg-raised);border-radius:2px;justify-content:center;align-items:center;display:flex}.gallery-video-note{letter-spacing:.04em;text-align:center;color:var(--p-text-muted);margin:0;padding:0 20px;font-size:12px}.gallery-contact-sheet{grid-template-columns:repeat(5,1fr);gap:4px;width:100%;display:grid}.gallery-contact-sheet[data-cols="3"]{grid-template-columns:repeat(3,1fr)}.gallery-contact-sheet[data-cols="4"]{grid-template-columns:repeat(4,1fr)}.gallery-contact-sheet[data-cols="5"]{grid-template-columns:repeat(5,1fr)}.gallery-contact-sheet[data-cols="6"]{grid-template-columns:repeat(6,1fr)}.gallery-contact-sheet[data-cols="8"]{grid-template-columns:repeat(8,1fr)}.gallery-cs-cell{aspect-ratio:1;background:var(--p-bg-raised,#7f7f7f14);cursor:zoom-in;border:none;border-radius:2px;width:100%;padding:0;display:block;position:relative;overflow:hidden}.gallery-cs-cell img{object-fit:cover;width:100%;height:100%;transition:opacity .2s;display:block}.gallery-cs-cell:hover img{opacity:.82}.gallery-cs-cell:focus-visible{outline:2px solid var(--ca-accent,var(--p-text));outline-offset:2px}.gallery-cs-cell .n{font-family:var(--ca-accent-font,var(--font-geist-mono), ui-monospace, monospace);letter-spacing:.12em;color:#fff;text-align:left;font-variant-numeric:tabular-nums;pointer-events:none;background:linear-gradient(#0000,#0000008c);padding:10px 6px 4px;font-size:10px;position:absolute;bottom:0;left:0;right:0}.gallery-compare{align-items:flex-start;gap:var(--gs-compare-gap,16px);width:100%;display:flex}.gallery-compare[data-gutter=none]{--gs-compare-gap:0px}.gallery-compare[data-gutter=small]{--gs-compare-gap:8px}.gallery-compare[data-gutter=medium]{--gs-compare-gap:16px}.gallery-compare[data-gutter=large]{--gs-compare-gap:40px}.gallery-compare-half{flex-direction:column;flex-basis:0;gap:8px;min-width:0;margin:0;display:flex}.gallery-compare-frame{border-radius:var(--gs-radius,var(--p-radius));background:var(--p-bg-raised);width:100%;overflow:hidden}.gallery-compare-frame .gallery-photo-card{height:100%}.gallery-compare[data-gutter=none] .gallery-compare-frame{border-radius:0}.gallery-compare-caption{font-family:var(--ca-accent-font,var(--font-geist-mono), ui-monospace, monospace);letter-spacing:.14em;text-transform:uppercase;color:var(--p-text-muted);font-size:11px}@container gallery-canvas (max-width:640px){.gallery-contact-sheet[data-cols="5"],.gallery-contact-sheet[data-cols="6"]{grid-template-columns:repeat(4,1fr)}.gallery-contact-sheet[data-cols="8"]{grid-template-columns:repeat(5,1fr)}.gallery-compare{flex-direction:column}.gallery-compare-half{flex:none;width:100%}.gallery-quote{padding-inline:20px}}
