:root{--paper:#f4f2ed;--ink:#24231f;--muted:#706e67;--line:#cbc8bf;--accent:#d8ff4f;--serif:"Libre Caslon Display",Georgia,serif;--sans:"DM Sans",Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans)}button,input{font:inherit}.nav{height:78px;padding:0 clamp(24px,5vw,76px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.wordmark{color:inherit;text-decoration:none;font-weight:600;letter-spacing:.08em;font-size:13px}.wordmark span{font-weight:400}.nav-note,.eyebrow{font-size:11px;letter-spacing:.13em;text-transform:uppercase}.nav-note{color:var(--muted)}main{padding:0 clamp(24px,5vw,76px)}.intro{min-height:calc(100vh - 78px);display:flex;flex-direction:column;justify-content:center;max-width:970px;padding:70px 0 95px}.eyebrow{margin:0 0 24px}.intro h1,.gallery-heading h2{font:400 clamp(50px,7.5vw,108px)/.96 var(--serif);letter-spacing:-.035em;margin:0}.lede{font-size:17px;line-height:1.65;color:var(--muted);max-width:560px;margin:32px 0 42px}.load-form{display:grid;grid-template-columns:minmax(190px,.72fr) minmax(280px,1.5fr) auto;gap:12px;align-items:end;max-width:1000px}.load-form label{font-size:11px;text-transform:uppercase;letter-spacing:.08em}.load-form input{display:block;width:100%;margin-top:9px;border:1px solid var(--line);background:rgba(255,255,255,.45);padding:16px 15px;outline:none;border-radius:0}.load-form input:focus{border-color:var(--ink);background:#fff}.button{border:0;padding:17px 20px;display:flex;gap:38px;align-items:center;justify-content:space-between;cursor:pointer;min-width:170px}.button.dark{background:var(--ink);color:white}.button.light{background:var(--accent);color:var(--ink)}.button:disabled{opacity:.5;cursor:wait}.hint,.message{font-size:12px;color:var(--muted)}.hint{margin-top:15px}.message{min-height:18px;margin-top:12px}.message.error{color:#9e352d}.message.success{color:#3b6115}.gallery-section{padding:110px 0 150px;border-top:1px solid var(--line)}.gallery-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:55px}.gallery-heading h2{font-size:clamp(45px,6vw,82px)}.gallery-count{color:var(--muted);font-size:13px}.gallery{columns:3 280px;column-gap:18px}.photo{position:relative;display:block;width:100%;margin:0 0 18px;break-inside:avoid;border:0;padding:0;background:#ddd;cursor:zoom-in;overflow:hidden}.photo img{display:block;width:100%;height:auto;min-height:180px;transition:transform .45s ease;object-fit:cover}.photo:hover img{transform:scale(1.015)}.select-button{position:absolute;top:12px;right:12px;width:38px;height:38px;border:1px solid rgba(255,255,255,.8);border-radius:50%;background:rgba(30,30,27,.44);color:white;backdrop-filter:blur(5px);cursor:pointer;font-size:19px}.photo.selected::after{content:"";position:absolute;inset:0;border:5px solid var(--accent);pointer-events:none}.photo.selected .select-button{background:var(--accent);border-color:var(--accent);color:var(--ink)}.photo-name{position:absolute;bottom:0;left:0;right:0;padding:28px 13px 12px;color:#fff;font-size:11px;background:linear-gradient(transparent,rgba(0,0,0,.55));opacity:0;transition:opacity .2s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.photo:hover .photo-name{opacity:1}.tray{position:fixed;right:24px;bottom:24px;width:min(390px,calc(100vw - 48px));background:var(--ink);color:white;z-index:10;box-shadow:0 16px 45px rgba(0,0,0,.2)}.tray-summary{width:100%;border:0;background:transparent;color:white;padding:18px 20px;display:flex;justify-content:space-between;cursor:pointer}.tray-summary strong{display:inline-grid;place-items:center;background:var(--accent);color:var(--ink);width:25px;height:25px;border-radius:50%;margin-right:8px}.tray-summary #selected-preview{font-size:12px;color:#bbb;align-self:center}.tray-detail{display:none;border-top:1px solid #4b4a46;padding:14px 20px 20px}.tray.open .tray-detail{display:block}.tray-detail ol{max-height:170px;overflow:auto;margin:0 0 16px;padding-left:22px;color:#ccc;font-size:12px;line-height:1.8}.tray-detail .button{width:100%}dialog{width:100vw;height:100vh;max-width:none;max-height:none;border:0;padding:0;background:rgba(20,20,18,.96);color:white}dialog::backdrop{background:#111}dialog figure{height:100%;margin:0;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:60px}dialog img{max-height:calc(100vh - 120px);max-width:calc(100vw - 150px);object-fit:contain}dialog figcaption{font-size:12px;color:#aaa;margin-top:12px}.lightbox-close,.lightbox-nav{position:fixed;border:0;background:transparent;color:white;cursor:pointer}.lightbox-close{right:24px;top:18px;font-size:32px}.lightbox-nav{top:50%;font-size:25px}.lightbox-nav.prev{left:26px}.lightbox-nav.next{right:26px}
@media(max-width:760px){.nav-note{display:none}.intro{padding-top:50px;justify-content:flex-start}.intro h1{font-size:51px}.load-form{grid-template-columns:1fr}.button.dark{width:100%;margin-top:6px}.gallery-heading{display:block}.gallery-count{margin-top:16px}.gallery{columns:2 150px;column-gap:10px}.photo{margin-bottom:10px}.tray{right:12px;bottom:12px;width:calc(100vw - 24px)}dialog figure{padding:55px 14px}dialog img{max-width:100%;max-height:calc(100vh - 110px)}}

/* Centered white welcome screen */
body{background:#fff}
body.gallery-loading{overflow:hidden}
.nav{background:#fff;border-bottom-color:#e4e2dc}
main{padding:0}
.intro{max-width:none;align-items:center;text-align:center;padding-left:clamp(24px,5vw,76px);padding-right:clamp(24px,5vw,76px);background:#fff}
.intro .lede{margin-left:auto;margin-right:auto}
.load-form{width:min(100%,1000px);text-align:left}
.load-form input{background:#fff}
.gallery-section{padding-left:clamp(24px,5vw,76px);padding-right:clamp(24px,5vw,76px);background:var(--paper)}

/* Gallery preload screen */
.loader{position:fixed;inset:0;background:#fff;z-index:30;display:grid;place-items:center}
.loader[hidden]{display:none}
.loader-inner{width:min(520px,calc(100vw - 48px));text-align:center}
.loader-count{font:400 clamp(34px,5vw,58px)/1.05 var(--serif);margin:0 0 30px}
.progress-track{height:2px;background:#dedcd6;width:100%;overflow:hidden}
.progress-bar{width:0;height:100%;background:var(--ink);transition:width .18s ease}

/* Lightbox selection controls */
dialog figure{padding:50px 75px 34px}
dialog img{max-height:calc(100vh - 125px);min-height:0}
.lightbox-meta{width:min(100%,900px);display:flex;align-items:center;justify-content:space-between;gap:25px;margin-top:12px}
dialog figcaption{margin-top:0}
.lightbox-select{border:1px solid #777;background:transparent;color:#fff;padding:10px 14px;cursor:pointer;white-space:nowrap}
.lightbox-select.selected{background:var(--accent);border-color:var(--accent);color:var(--ink)}
.lightbox-select span{margin-left:15px}
.photo:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.load-form{grid-template-columns:minmax(280px,1fr) auto;max-width:620px}
.intro.compact{min-height:auto;padding-top:54px;padding-bottom:40px}.intro.compact h1,.intro.compact .lede,.intro.compact .eyebrow,.intro.compact .hint{display:none}.client-space{padding:24px clamp(24px,5vw,76px) 54px;border-top:0;background:#fff}.flow{display:grid;grid-template-columns:auto minmax(28px,1fr) auto minmax(28px,1fr) auto;align-items:center;max-width:760px;margin:auto}.flow-step{position:relative;z-index:1;width:clamp(132px,14vw,154px);aspect-ratio:1;border:1px solid #d8d5ce;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:16px;text-align:center;color:var(--ink);background:#fff;box-shadow:0 7px 18px rgba(36,35,31,.07);transition:background .25s ease,color .25s ease,border-color .25s ease}.flow-step span{font-size:8px;font-weight:600;letter-spacing:.17em;color:var(--muted)}.flow-step strong{font:400 clamp(18px,1.8vw,23px)/1 var(--serif)}.flow-step p{max-width:118px;margin:1px 0 0;font-size:9px;line-height:1.3;color:var(--muted)}.flow-line{height:8px;margin:0 -2px;background:#fff;border-top:1px solid #d8d5ce;border-bottom:1px solid #d8d5ce;transition:background .25s ease,border-color .25s ease}.flow-line.complete{background:var(--ink);border-color:var(--ink)}.flow-step.complete,.flow-step.current{color:#fff;background:var(--ink);border-color:var(--ink)}.flow-step.complete span,.flow-step.complete p,.flow-step.current span,.flow-step.current p{color:#c9c7c0}.flow-step.current{box-shadow:0 9px 22px rgba(36,35,31,.16),inset 0 0 0 4px var(--accent)}.flow-step.current span{color:var(--accent)}.stage-message{text-align:center;padding:100px 20px 55px}.stage-message h2{font:400 clamp(44px,6vw,76px)/1 var(--serif);margin:0}.stage-message>p:last-child{color:var(--muted);margin:25px auto;max-width:510px}.gallery-tools{text-align:right}.view-toggle{display:flex;border:1px solid var(--line);margin-top:14px}.view-toggle button{border:0;background:transparent;padding:8px 12px;color:var(--muted);cursor:pointer}.view-toggle button.active{background:var(--ink);color:#fff}.gallery.list-view{columns:auto}.gallery.list-view .photo{height:84px;margin-bottom:8px;background:#fff;border-top:1px solid var(--line);display:flex;align-items:center}.gallery.list-view .photo img{width:112px;height:83px;min-height:0}.gallery.list-view .photo-name{position:static;opacity:1;background:none;color:var(--ink);padding:0 58px 0 18px}.gallery.list-view .select-button{top:22px}.gallery.list-view .photo.selected::after{border-width:2px}

.flow-step.touring{color:#fff;background:var(--ink);border-color:var(--ink);animation:workflow-spiral .43s cubic-bezier(.2,.8,.25,1) both}.flow-step.touring span{color:var(--accent)}.flow-step.touring p{color:#c9c7c0}.flow-line.touring{background:var(--ink);border-color:var(--ink);transform-origin:left center;animation:workflow-trace .26s ease-out both}@keyframes workflow-spiral{0%{opacity:0;transform:rotate(-150deg) scale(.25) translateY(35px)}70%{opacity:1;transform:rotate(8deg) scale(1.08)}100%{opacity:1;transform:rotate(0) scale(1)}}@keyframes workflow-trace{from{transform:scaleX(0)}to{transform:scaleX(1)}}

@media(max-width:760px){.intro{justify-content:center}.client-space{padding:18px 10px 46px}.flow{grid-template-columns:auto minmax(9px,1fr) auto minmax(9px,1fr) auto}.flow-step{width:clamp(88px,27vw,108px);padding:9px;gap:3px}.flow-step strong{font-size:clamp(14px,4.2vw,18px)}.flow-step span{font-size:6px}.flow-step p{font-size:7px;line-height:1.2}.flow-line{height:6px}.lightbox-meta{gap:12px}.lightbox-select{padding:9px;font-size:11px}.lightbox-nav{display:none}dialog figure{padding:55px 14px 24px}dialog img{max-height:calc(100vh - 125px)}}
@media(prefers-reduced-motion:reduce){.flow-step.touring,.flow-line.touring{animation:none}.flow-step,.flow-line{transition:none}}
.photo-retry{display:none;position:absolute;left:12px;bottom:12px;right:12px;padding:12px;border:0;background:#fff;color:#222;cursor:pointer}.photo.load-error .photo-retry{display:block}
@media(max-width:760px){.load-form{grid-template-columns:minmax(0,1fr)}.load-form .button{width:100%}.gallery-heading{flex-wrap:wrap;gap:20px}}
/* Named gallery chooser and personal welcome */
.gallery-picker{padding:25px clamp(24px,5vw,76px) 90px;text-align:center}
.gallery-picker h2,.gallery-welcome h2{font:400 clamp(40px,6vw,70px)/1.1 var(--serif);margin:0;overflow-wrap:anywhere}
.gallery-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:20px;max-width:960px;margin:38px auto 0}
.gallery-choice{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;min-height:180px;padding:30px 24px;border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer;transition:background .2s,border-color .2s}
.gallery-choice:hover{background:#eae7df;border-color:var(--ink)}
.gallery-choice:focus-visible,.change-gallery:focus-visible{outline:2px solid var(--ink);outline-offset:5px}
.choice-title{font:400 34px/1.15 var(--serif);overflow-wrap:anywhere;max-width:100%}
.choice-date{font-size:13px;color:var(--muted)}
.gallery-welcome{text-align:center;margin:0 auto 45px;max-width:900px;padding:0 14px}
.gallery-welcome .eyebrow{margin-bottom:14px}
.gallery-date{font:400 clamp(30px,4vw,42px)/1.3 "Allura","Segoe Script",cursive;margin:12px 0 0}
.change-gallery{display:inline-block;border:0;border-bottom:1px solid var(--line);background:none;color:var(--muted);font-size:12px;padding:5px 0;margin-top:20px;cursor:pointer}
.change-gallery[hidden]{display:none}
/* A clear proofing mark, while keeping the photo and controls visible. */
.photo.selected::after{content:"SELECTED";display:flex;align-items:center;justify-content:center;background:rgba(20,20,18,.43);border:0;color:#fff;font:600 12px/1 var(--sans);letter-spacing:.22em;text-shadow:0 1px 5px rgba(0,0,0,.3);pointer-events:none}
.select-button,.photo-name,.photo-retry{z-index:1}
.photo.selected .photo-name{opacity:1}
.gallery.list-view .photo.selected::after{justify-content:flex-end;padding-right:65px;background:rgba(20,20,18,.55);font-size:10px}
.gallery.list-view .photo.selected .photo-name{color:#fff;padding-right:175px}
/* Compact display switch, available in every photo gallery. */
.view-toggle{display:inline-flex;border:1px solid #85857f;border-radius:999px;overflow:hidden;margin-top:8px;vertical-align:middle}
.view-toggle button{display:flex;align-items:center;justify-content:center;gap:6px;min-width:54px;min-height:36px;padding:8px 11px;color:var(--ink);background:#fff}
.view-toggle button+button{border-left:1px solid #85857f}
.view-toggle button.active{background:#c8e8fa;color:#182c37}
.view-toggle button:hover{background:#e4f2fa}
.view-toggle button:focus-visible{outline:2px solid var(--ink);outline-offset:-4px}
.view-toggle svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.6;flex-shrink:0}
.view-check{display:none;font-size:13px;line-height:1}
.view-toggle .active .view-check{display:inline}
.gallery.list-view .photo img{flex-shrink:0}
.gallery.list-view .photo-name{min-width:0}
@media(max-width:480px){.gallery.list-view .photo img{width:76px}.gallery.list-view .photo.selected::after{justify-content:flex-start;padding-left:7px;font-size:8px;letter-spacing:.08em}.gallery.list-view .photo.selected .photo-name{padding-right:58px}}
.choose-more{margin:28px auto 0;justify-content:center}.selection-message{text-align:center;margin:0 auto 24px;padding:0 15px}.selection-message:empty{display:none}
.cart-heading{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#ddd;margin:8px 0 12px}
.tray-detail{max-height:min(65vh,540px);overflow:auto}.tray-detail ol{list-style:none;padding-left:0;max-height:180px}
.tray-detail li{display:flex;gap:12px;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid #45443e}.tray-detail li>span{min-width:0;overflow-wrap:anywhere}
.tray-detail li button{flex-shrink:0;border:1px solid #77776e;background:transparent;color:#fff;padding:5px 9px;font-size:11px;cursor:pointer}.tray-detail li button:hover{background:#45443e}.tray-detail li button:disabled{opacity:.5;cursor:wait}
.unsend-hint{font-size:11px;line-height:1.5;color:#bbb;margin:10px 0 18px}.photo.sent::after{content:"SENT"}.select-button:disabled{cursor:wait;opacity:.7}
.tray-detail .button[hidden]{display:none}
.cart-choose-more{display:block;width:100%;margin:12px 0 0;padding:10px;border:1px solid #77776e;background:transparent;color:#fff;cursor:pointer}.cart-choose-more[hidden]{display:none}.cart-choose-more:disabled{opacity:.5;cursor:wait}
@media(max-width:760px){body[data-stage] main{padding-bottom:100px}}
.tray .message.success{color:#d8ff4f}.tray .message.error{color:#ffb8ae}
/* Monochrome progress, with a white ring marking the current step. */
.flow{--accent:#fff;--ink:#242424;--muted:#707070}
.flow-step{border-color:#d5d5d5;box-shadow:0 7px 18px rgba(0,0,0,.07)}
.flow-step.current{box-shadow:0 9px 22px rgba(0,0,0,.12),inset 0 0 0 4px #fff}
.flow-step.complete span,.flow-step.complete p,.flow-step.current p,.flow-step.touring p{color:#ccc}
.flow-line{border-color:#d5d5d5}
/* Gallery choices: generous typography, numbered rows and a clear open action. */
.gallery-choices{grid-template-columns:minmax(0,1fr);gap:0;max-width:820px;margin-top:42px;border-top:1px solid #d4d4d4}
.gallery-choice{display:grid;grid-template-columns:40px minmax(0,1fr) 48px;grid-template-rows:auto auto;gap:8px 24px;min-height:138px;padding:28px 20px;text-align:left;border:0;border-bottom:1px solid #d4d4d4;background:#fff}
.gallery-choice:hover{background:#f4f4f4;border-color:#d4d4d4}
.choice-number{grid-column:1;grid-row:1 / 3;align-self:center;color:#888;font-size:11px;letter-spacing:.12em}
.choice-title{grid-column:2;grid-row:1;font-size:clamp(28px,4vw,40px);align-self:end}
.choice-date{grid-column:2;grid-row:2;align-self:start;color:#737373}
.choice-arrow{grid-column:3;grid-row:1 / 3;display:grid;place-items:center;width:46px;height:46px;border:1px solid #c7c7c7;border-radius:50%;font-size:23px;transition:background .2s,color .2s}
.gallery-choice:hover .choice-arrow,.gallery-choice:focus-visible .choice-arrow{background:#242424;color:#fff;border-color:#242424}
/* The zoom view always states whether this photograph is selected. */
.lightbox-status{position:absolute;z-index:2;top:22px;left:50%;transform:translateX(-50%);padding:10px 17px;border:1px solid #777;border-radius:999px;font-size:10px;font-weight:600;letter-spacing:.14em;white-space:nowrap;background:#262626;color:#ddd;pointer-events:none}
.lightbox-status[data-status="selected"],.lightbox-status[data-status="sent"]{background:#fff;color:#242424;border-color:#fff}
.lightbox-status[data-status="selected"]::before,.lightbox-status[data-status="sent"]::before{content:"\2713";margin-right:8px}
.lightbox-select.selected{background:#fff;border-color:#fff;color:#242424}
@media(max-width:760px){.gallery-choice{grid-template-columns:24px minmax(0,1fr) 38px;gap:8px 12px;padding:24px 8px;min-height:124px}.choice-arrow{width:36px;height:36px;font-size:20px}.lightbox-status{top:20px;font-size:9px;padding:9px 12px}.lightbox-meta{flex-wrap:wrap;justify-content:center;text-align:center}.lightbox-meta figcaption{width:100%;overflow-wrap:anywhere}dialog img{max-height:calc(100dvh - 185px)}dialog figure{padding-top:68px}}
@media(prefers-reduced-motion:reduce){.choice-arrow{transition:none}}
#lightbox{position:fixed;inset:0;margin:0;width:100vw;height:100dvh;overflow:hidden}
html:has(#lightbox[open]){overflow:hidden;scroll-behavior:auto}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* A full-screen welcome before the photographs. */
.intro[hidden],.client-space[hidden]{display:none}
.form-message:empty{display:none}.form-message{margin:0;padding:16px 24px;text-align:center}
.client-space{min-height:calc(100svh - 78px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(28px,5vh,52px);padding:48px clamp(24px,5vw,76px);position:relative}
.client-space .gallery-welcome{margin:0;width:100%}
.client-space .gallery-welcome h2{font-size:clamp(52px,8vw,100px)}
.client-space .flow{width:100%;max-width:760px;margin:0 auto}
.client-space .selection-message{margin:0}
.view-gallery{display:flex;flex-direction:column;align-items:center;gap:14px;color:var(--ink);text-decoration:none;font-size:10px;letter-spacing:.18em;text-transform:uppercase;padding:6px 18px}
.view-gallery[hidden]{display:none}
.gallery-scroll-icon{display:grid;place-items:center;width:46px;height:46px;border:1px solid #aaa;border-radius:50%;transition:background .2s,color .2s,transform .2s}
.gallery-scroll-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.3}
.view-gallery:hover .gallery-scroll-icon{background:var(--ink);color:#fff;transform:translateY(3px)}
.view-gallery:focus-visible{outline:2px solid var(--ink);outline-offset:5px;border-radius:3px}
.client-space .stage-message{padding:0;text-align:center;max-width:620px}
.client-space .stage-message h2{font-size:clamp(28px,4vw,40px)}
.client-space .stage-message .eyebrow{margin-bottom:12px}
.client-space .stage-message>p{font-size:13px;line-height:1.6;color:var(--muted)}
.client-space .stage-message .choose-more{margin-top:18px}
.gallery-picker{min-height:calc(100svh - 78px);padding-top:clamp(48px,9vh,96px)}
#welcome-title:focus,#gallery-title:focus{outline:none}
@media(max-width:760px){.client-space{padding:38px 14px 96px;gap:30px}.client-space .gallery-welcome h2{font-size:clamp(44px,11vw,68px)}.client-space .gallery-date{font-size:32px}.client-space .flow{max-width:440px}.view-gallery{gap:12px}.gallery-scroll-icon{width:42px;height:42px}}
@media(prefers-reduced-motion:reduce){.gallery-scroll-icon{transition:none}.view-gallery:hover .gallery-scroll-icon{transform:none}}
/* Compact mobile proofs keep the same three-column rhythm as desktop. */
@media(max-width:760px){
  .gallery:not(.list-view){column-count:3;column-width:auto;column-gap:7px}
  .gallery:not(.list-view) .photo{margin-bottom:7px}
  .gallery:not(.list-view) .photo img{min-height:0}
  .gallery:not(.list-view) .photo img:not([src]){aspect-ratio:3/4}
  .gallery:not(.list-view) .select-button{width:28px;height:28px;top:5px;right:5px;font-size:15px}
  .gallery:not(.list-view) .photo.selected::after{font-size:8px;letter-spacing:.08em}
  .gallery:not(.list-view) .photo-name{font-size:8px;padding:20px 6px 6px}
  .gallery-section{padding:56px 14px 120px}
  .gallery-heading{margin-bottom:26px}
  .gallery-heading h2{font-size:clamp(34px,9vw,52px)}
}
/* Lightroom-style viewer: large preview above a scrollable thumbnail filmstrip. */
#lightbox{--filmstrip-height:112px;background:#161616}
#lightbox figure{height:calc(100% - var(--filmstrip-height));padding:74px 50px 18px;gap:0}
#lightbox-image{max-height:calc(100dvh - var(--filmstrip-height) - 155px);max-width:100%;min-height:0;object-fit:contain;touch-action:pinch-zoom}
#lightbox .lightbox-meta{flex-shrink:0;max-width:900px;margin-top:14px}
#lightbox-caption{min-width:0;overflow-wrap:anywhere}
.filmstrip-toggle{position:absolute;left:20px;top:20px;z-index:3;display:grid;place-items:center;width:36px;height:36px;border:1px solid #666;border-radius:4px;background:transparent;color:#fff;cursor:pointer}
.filmstrip-toggle svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.4}
.filmstrip-toggle:hover{background:#333}
.filmstrip-panel{position:absolute;inset:auto 0 0;height:var(--filmstrip-height);border-top:1px solid #414141;background:#232323;padding-bottom:env(safe-area-inset-bottom)}
.filmstrip-panel[hidden]{display:none}
.filmstrip{position:relative;display:flex;align-items:center;gap:8px;height:100%;margin:0 56px;padding:12px 5px 16px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#777 #232323}
.filmstrip-thumb{position:relative;display:block;flex:0 0 72px;width:72px;height:78px;padding:3px;border:2px solid transparent;background:#141414;color:#fff;cursor:pointer;overflow:hidden}
.filmstrip-thumb img{display:block;width:100%;height:100%;max-width:none;max-height:none;min-height:0;object-fit:contain;opacity:.6}
.filmstrip-thumb:hover img,.filmstrip-thumb.current img{opacity:1}
.filmstrip-thumb.current{border-color:#fff;background:#555;box-shadow:0 0 0 1px #aaa}
.filmstrip-number{position:absolute;top:5px;left:5px;z-index:2;background:rgba(0,0,0,.75);color:#fff;font-size:8px;padding:2px 4px;line-height:1}
.filmstrip-thumb.selected::after{content:"SELECTED";position:absolute;inset:3px;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.45);font:600 8px/1 var(--sans);letter-spacing:.04em;pointer-events:none}
.filmstrip-thumb.sent::after{content:"SENT"}
.filmstrip-thumb.load-error::before{content:"Preview unavailable";position:absolute;inset:0;display:grid;place-items:center;padding:5px;font-size:9px}
#lightbox .lightbox-nav{display:grid;place-items:center;z-index:3;top:auto;bottom:calc(var(--filmstrip-height) / 2 - 20px);width:40px;height:40px;border:1px solid #666;border-radius:50%;font-size:20px}
#lightbox .lightbox-nav.prev{left:9px}#lightbox .lightbox-nav.next{right:9px}
#lightbox.filmstrip-hidden{--filmstrip-height:0px}
#lightbox.filmstrip-hidden .lightbox-nav{top:50%;bottom:auto;background:rgba(0,0,0,.5)}
.filmstrip-thumb:focus-visible,.filmstrip-toggle:focus-visible,#lightbox .lightbox-nav:focus-visible{outline:2px solid #fff;outline-offset:-2px}
@media(max-width:760px){
  #lightbox{--filmstrip-height:104px}
  #lightbox figure{padding:68px 12px 12px}
  #lightbox-image{max-height:calc(100dvh - var(--filmstrip-height) - 185px)}
  #lightbox .lightbox-meta{gap:10px;margin-top:12px}
  .filmstrip-toggle{left:12px;top:18px;width:34px;height:34px}
  .filmstrip{margin:0 44px;gap:6px;padding-top:10px;padding-bottom:14px}
  .filmstrip-thumb{flex-basis:62px;width:62px;height:72px;padding:2px}
  .filmstrip-thumb.selected::after{font-size:7px}
  #lightbox .lightbox-nav{width:34px;height:40px;bottom:calc(var(--filmstrip-height) / 2 - 20px);border:0}
  #lightbox .lightbox-nav.prev{left:4px}#lightbox .lightbox-nav.next{right:4px}
  #lightbox .lightbox-select{min-height:40px;padding:10px 16px}
}
@media(max-height:500px) and (orientation:landscape){
  #lightbox{--filmstrip-height:82px}
  #lightbox figure{padding-top:52px;padding-bottom:6px}
  #lightbox-image{max-height:calc(100dvh - var(--filmstrip-height) - 112px)}
  #lightbox .lightbox-meta{flex-wrap:nowrap;margin-top:6px;gap:12px}
  #lightbox .lightbox-meta figcaption{width:auto}
  #lightbox .lightbox-select{min-height:32px;padding:6px 10px}
  .filmstrip-thumb{height:56px;flex-basis:52px;width:52px}
  .filmstrip{padding:6px 4px 10px}
  .lightbox-status{top:12px}.filmstrip-toggle{top:10px}.lightbox-close{top:7px}
}
.gallery-pages{display:flex;gap:24px;border-bottom:1px solid #ccc;margin-bottom:18px}
.gallery-pages button{background:none;border:0;border-bottom:2px solid transparent;padding:14px 0;color:#777;font:inherit;cursor:pointer}
.gallery-pages button[aria-pressed="true"]{color:#222;border-color:#222}
.bookmark-tools{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:24px;font-size:12px}
.bookmark-tools button{background:transparent;border:1px solid #bcbab6;border-radius:4px;padding:10px 12px;font:inherit;cursor:pointer;min-height:44px}
.bookmark-tools button:disabled{opacity:.55;cursor:default}
#bookmark-message{color:#666}
.gallery-section{padding-right:70px}
#gallery-ruler{position:fixed;right:12px;top:38%;z-index:8;display:flex;flex-direction:column;align-items:center;gap:10px;width:42px;padding:12px 2px;background:rgba(245,244,240,.94);border:1px solid #ddd;border-radius:22px;color:#222}
#ruler-count{font-size:9px;font-variant-numeric:tabular-nums}
.ruler-track{position:relative;width:14px;height:160px;background:repeating-linear-gradient(to bottom,#aaa 0 1px,transparent 1px 10px)}
#ruler-progress{position:absolute;left:6px;top:0;width:2px;background:#222}
#ruler-bookmark{position:absolute;left:-11px;transform:translateY(-50%);width:36px;height:36px;border:0;background:#222;color:#fff;border-radius:50%;cursor:pointer;font-size:16px}
#ruler-save{border:0;background:transparent;width:36px;height:36px;cursor:pointer;font-size:23px;color:#222}
.photo.bookmarked{outline:2px solid #555;outline-offset:2px}
.photo[hidden],#gallery-ruler[hidden],.bookmark-tools[hidden]{display:none!important}
@media(max-width:760px){.gallery-section{padding-right:50px}#gallery-ruler{right:4px;width:34px}.ruler-track{height:110px}.gallery-pages{gap:18px;font-size:13px}.bookmark-tools{gap:6px;font-size:11px}.bookmark-tools button{padding:8px}#ruler-count{font-size:8px}}
