:root{--gallery-paper:#f3eee3;--gallery-ink:#171714;--gallery-muted:#69645b;--gallery-red:#b93a20;--gallery-line:rgba(23,23,20,.14)}
html.gallery-open,body.gallery-open{overflow:hidden!important}
.ukiyoe-bottom-nav{position:fixed;z-index:85;left:50%;bottom:max(12px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(360px,calc(100vw - 28px));height:64px;padding:6px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:4px;border:1px solid rgba(255,255,255,.15);border-radius:22px;background:rgba(10,11,10,.93);box-shadow:0 16px 40px rgba(0,0,0,.34);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);transition:opacity .2s ease,transform .2s ease}
.ukiyoe-bottom-nav.is-hidden{opacity:0;pointer-events:none;transform:translate(-50%,20px)}
.ukiyoe-bottom-nav button{position:relative;border:0;background:transparent;color:rgba(255,255,255,.72);border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font:600 10px/1.1 "Avenir Next","Helvetica Neue",sans-serif;letter-spacing:.04em}
.ukiyoe-bottom-nav button:active{background:rgba(255,255,255,.08)}
.ukiyoe-bottom-nav .nav-capture{background:#f3eee3;color:#171714;box-shadow:0 4px 16px rgba(0,0,0,.22)}
.ukiyoe-bottom-nav b{position:absolute;top:3px;right:20%;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--gallery-red);color:#fff;font:700 9px/17px sans-serif}
.gallery-saved-note{margin:3px 0 0!important;display:flex;align-items:center;justify-content:center;gap:6px;color:#d8d1c5!important;font:600 11px/1.2 "Avenir Next",sans-serif!important;letter-spacing:.03em}
.ukiyoe-gallery-overlay{position:fixed;z-index:200;inset:0;background:var(--gallery-paper);color:var(--gallery-ink);overflow:hidden}
.gallery-shell{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr)}
.gallery-topbar{height:88px;padding:calc(14px + env(safe-area-inset-top)) 20px 12px;box-sizing:content-box;display:flex;align-items:flex-end;justify-content:space-between;border-bottom:1px solid var(--gallery-line);background:rgba(243,238,227,.94);backdrop-filter:blur(14px)}
.gallery-eyebrow,.gallery-section-heading span,.gallery-empty>span{display:block;margin-bottom:6px;color:var(--gallery-red);font:700 9px/1 "Avenir Next",sans-serif;letter-spacing:.22em}
.gallery-topbar h1{margin:0;font-family:"Bodoni Moda",Georgia,serif;font-size:29px;line-height:1;font-weight:600;letter-spacing:-.02em}
.gallery-close,.gallery-detail header button{width:44px;height:44px;border:1px solid var(--gallery-line);border-radius:50%;background:transparent;color:var(--gallery-ink);display:grid;place-items:center}
.gallery-scroll{overflow:auto;-webkit-overflow-scrolling:touch;padding:24px 18px calc(52px + env(safe-area-inset-bottom))}
.gallery-collection-intro{position:relative;max-width:720px;margin:0 auto 42px;padding:28px 24px 22px;border:1px solid var(--gallery-line);background:rgba(255,255,255,.22);overflow:hidden}
.gallery-collection-intro:after{content:"";position:absolute;right:-42px;top:-52px;width:150px;height:150px;border:1px solid rgba(185,58,32,.13);border-radius:50%;box-shadow:0 0 0 24px rgba(185,58,32,.025),0 0 0 48px rgba(185,58,32,.018);pointer-events:none}
.gallery-collection-count{display:flex;align-items:baseline;gap:7px;margin-bottom:24px}.gallery-collection-count strong{font:600 48px/.9 "Bodoni Moda",Georgia,serif;letter-spacing:-.04em}.gallery-collection-count span{color:var(--gallery-muted);font:500 15px/1 "Avenir Next",sans-serif}
.gallery-collection-copy{position:relative;z-index:1}.gallery-collection-copy>span{display:block;margin-bottom:8px;color:var(--gallery-red);font:700 8px/1 "Avenir Next",sans-serif;letter-spacing:.22em}.gallery-collection-copy h2{margin:0;color:var(--gallery-ink);font:500 22px/1.25 "Bodoni Moda",Georgia,serif;letter-spacing:-.015em}
.gallery-progress-track{height:2px!important;margin:24px 0 0;background:rgba(23,23,20,.12);overflow:hidden}.gallery-progress-track i{display:block;height:100%;background:var(--gallery-red);transition:width .5s ease}
.gallery-section{max-width:720px;margin:0 auto 42px}.gallery-section-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:18px;padding-bottom:12px;border-bottom:1px solid var(--gallery-line)}.gallery-section-heading span{margin-bottom:5px}.gallery-section-heading h2{margin:0;font:600 24px/1 "Bodoni Moda",serif}.gallery-section-heading small{color:var(--gallery-muted);font:500 10px "Avenir Next",sans-serif;letter-spacing:.05em;text-transform:uppercase}
.gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 14px;align-items:start}.gallery-art-card{min-width:0;padding:0;border:0;background:transparent;text-align:left;color:inherit;cursor:pointer}.gallery-art-frame{position:relative;display:block;aspect-ratio:1080/1536;padding:7px;box-sizing:border-box;background:#d7cdbb;border:1px solid rgba(23,23,20,.16);box-shadow:0 8px 20px rgba(37,29,19,.1),0 1px 2px rgba(37,29,19,.12);transition:transform .28s ease,box-shadow .28s ease}.gallery-art-mat{width:100%;height:100%;padding:6px;box-sizing:border-box;display:grid;place-items:center;background:#f8f5ed;border:1px solid rgba(23,23,20,.08)}.gallery-art-mat img{width:100%;height:100%;display:block;object-fit:contain;background:#e3dac9}.gallery-art-card:active .gallery-art-frame{transform:scale(.985);box-shadow:0 4px 10px rgba(37,29,19,.09)}
.gallery-art-copy{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:8px;align-items:baseline;padding:11px 1px 0}.gallery-catalog-number{grid-column:1/-1;display:block;margin-bottom:5px;color:var(--gallery-red);font:700 7px/1 "Avenir Next",sans-serif;letter-spacing:.2em}.gallery-art-copy strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:600 15px/1.2 "Bodoni Moda",serif}.gallery-art-copy small{color:var(--gallery-muted);white-space:nowrap;font:500 8px/1 "Avenir Next",sans-serif;text-transform:uppercase;letter-spacing:.03em}
.gallery-empty{max-width:720px;margin:8px auto 44px;padding:48px 24px;text-align:center;border:1px solid var(--gallery-line);background:rgba(255,255,255,.16)}.gallery-empty-frame{width:72px;height:72px;margin:0 auto 22px;border:1px solid var(--gallery-line);border-radius:50%;display:grid;place-items:center}.gallery-empty h2{margin:0 0 10px;font:600 28px/1.1 "Bodoni Moda",serif}.gallery-empty p{max-width:340px;margin:0 auto 22px;color:var(--gallery-muted);font:400 13px/1.6 "Avenir Next",sans-serif}.gallery-empty button{border:0;border-bottom:1px solid var(--gallery-ink);padding:8px 0;background:transparent;display:inline-flex;align-items:center;gap:8px;font:700 11px "Avenir Next",sans-serif;letter-spacing:.04em}
.gallery-footer-note{display:flex;align-items:center;justify-content:center;gap:8px;color:var(--gallery-muted)}.gallery-footer-note .hero-brand-mark{position:static!important;width:13px!important;height:13px!important;display:block!important}.gallery-footer-note p{margin:0;font:500 10px "Avenir Next",sans-serif}
.gallery-loading{height:100%;display:grid;place-content:center;text-align:center;gap:12px}.gallery-loading span{width:28px;height:28px;margin:auto;border:2px solid rgba(23,23,20,.18);border-top-color:var(--gallery-red);border-radius:50%;animation:gallery-spin .8s linear infinite}.gallery-loading p{font:500 11px "Avenir Next",sans-serif;color:var(--gallery-muted)}@keyframes gallery-spin{to{transform:rotate(360deg)}}
.gallery-detail{position:absolute;z-index:10;inset:0;display:grid;place-items:end center;pointer-events:none}.gallery-detail.is-open{pointer-events:auto}.gallery-detail-backdrop{position:absolute;inset:0;background:rgba(8,8,7,.67);opacity:0;transition:opacity .24s}.gallery-detail.is-open .gallery-detail-backdrop{opacity:1}.gallery-detail article{position:relative;width:min(100%,620px);max-height:94%;padding:16px 18px calc(18px + env(safe-area-inset-bottom));box-sizing:border-box;background:var(--gallery-paper);transform:translateY(105%);transition:transform .28s cubic-bezier(.2,.7,.2,1);overflow:auto}.gallery-detail.is-open article{transform:translateY(0)}.gallery-detail header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.gallery-detail header span{color:var(--gallery-red);font:700 8px "Avenir Next",sans-serif;letter-spacing:.2em}.gallery-detail header h2{margin:3px 0 0;font:600 24px "Bodoni Moda",serif}.gallery-detail-frame{padding:9px;background:#d7cdbb;border:1px solid rgba(23,23,20,.15);box-shadow:0 12px 28px rgba(37,29,19,.14)}.gallery-detail-image{padding:8px;background:#f8f5ed;border:1px solid rgba(23,23,20,.08)}.gallery-detail-image img{width:100%;max-height:58vh;display:block;object-fit:contain;background:#e3dac9}.gallery-detail-meta{display:flex;justify-content:space-between;padding:14px 1px;color:var(--gallery-muted);font:500 9px "Avenir Next",sans-serif;text-transform:uppercase;letter-spacing:.03em}.gallery-detail-meta p{margin:0}.gallery-detail-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.gallery-detail-actions button{min-height:54px;border:1px solid var(--gallery-line);background:transparent;color:var(--gallery-ink);display:flex;align-items:center;justify-content:center;gap:8px;padding:0 17px;font:700 9px "Avenir Next",sans-serif;letter-spacing:.03em}.gallery-detail-actions .share-primary{background:var(--signal,#e94727);border-color:var(--signal,#e94727);color:#fff}.gallery-detail-actions .share-primary:active{background:var(--signal-dark,#b92f18);border-color:var(--signal-dark,#b92f18)}.gallery-detail-actions .danger{color:#8e2f20;padding-left:14px;padding-right:14px}.gallery-detail-actions .danger span{display:none}
@media(hover:hover){.gallery-art-card:hover .gallery-art-frame{transform:translateY(-3px);box-shadow:0 13px 28px rgba(37,29,19,.14),0 1px 2px rgba(37,29,19,.12)}}
@media(min-width:760px){.gallery-scroll{padding-left:28px;padding-right:28px}.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:34px 22px}.gallery-topbar{padding-left:max(28px,calc((100vw - 760px)/2));padding-right:max(28px,calc((100vw - 760px)/2))}.gallery-collection-intro{padding:34px 30px 26px}.gallery-collection-copy h2{font-size:26px}}
@media(max-width:430px){body:not(.camera-mode):not(.detail-mode):not(.gallery-open){padding-bottom:92px}.gallery-topbar{height:68px;padding-left:17px;padding-right:15px}.gallery-topbar h1{font-size:25px}.gallery-scroll{padding:18px 14px calc(44px + env(safe-area-inset-bottom))}.gallery-collection-intro{margin-bottom:34px;padding:23px 18px 19px}.gallery-collection-count{margin-bottom:20px}.gallery-collection-count strong{font-size:42px}.gallery-collection-copy h2{font-size:20px}.gallery-grid{gap:24px 10px}.gallery-art-frame{padding:5px}.gallery-art-mat{padding:4px}.gallery-art-copy{grid-template-columns:1fr;padding-top:9px}.gallery-art-copy small{margin-top:4px}.gallery-detail article{border-radius:18px 18px 0 0}.gallery-detail-actions{grid-template-columns:minmax(0,1fr) 50px}.gallery-detail-actions .danger{padding:0}}

/* V66 — simple map heading, quiet empty gallery and clear copy confirmation. */
html.capture-page-open,
body.capture-page-open{overflow:hidden!important}

/* Home: one short heading followed by the Kyoto viewpoint map. */
#root .locations-section,
#root .site-footer{display:none!important}
.overview-map-section{
  width:min(100%,980px)!important;
  min-height:0!important;
  margin:0 auto!important;
  padding:clamp(38px,5vw,62px) clamp(18px,4vw,42px) calc(112px + env(safe-area-inset-bottom))!important;
  display:block!important;
  color:var(--gallery-ink)!important;
  background:#f3eee3!important;
  border:0!important;
}
.overview-map-copy{display:block!important;min-width:0!important;padding:0!important;margin:0 0 18px!important}
.overview-map-copy h2{margin:0!important;font:600 clamp(29px,4vw,46px)/1 "Bodoni Moda",Georgia,serif!important;letter-spacing:-.035em!important}
.overview-map-wrap{width:100%!important;min-width:0!important;padding:9px!important;background:#d7cdbb!important;border:1px solid rgba(23,23,20,.16)!important;box-shadow:0 16px 36px rgba(37,29,19,.13)!important}
#overview-map{width:100%!important;min-height:clamp(340px,50dvh,500px)!important;border:6px solid #f8f5ed!important;background:#ded5c5!important}

/* Copying a recovery code confirms success directly on the button. */
.recovery-card .paywall-buy.is-copied{background:#236b49!important}
.recovery-card .paywall-buy.copy-failed{background:#9b3025!important}

/* Two-action navigation: Capture and Gallery. */
.ukiyoe-bottom-nav-two{
  width:min(330px,calc(100vw - 34px));
  grid-template-columns:1fr 1fr;
}
.ukiyoe-bottom-nav-two b{right:22%}

/* Dedicated capture selection page. */
.ukiyoe-capture-page{
  position:fixed;
  z-index:190;
  inset:0;
  overflow:hidden;
  color:var(--gallery-ink);
  background:var(--gallery-paper);
}
.capture-page-shell{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr)}
.capture-page-header{
  min-height:76px;
  padding:calc(10px + env(safe-area-inset-top)) 16px 10px;
  display:grid;
  grid-template-columns:48px minmax(0,1fr) 48px;
  align-items:end;
  gap:10px;
  border-bottom:1px solid var(--gallery-line);
  background:rgba(243,238,227,.96);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.capture-page-header>button{
  width:44px;
  height:44px;
  border:1px solid var(--gallery-line);
  border-radius:50%;
  background:transparent;
  display:grid;
  place-items:center;
}
.capture-page-header>div{text-align:center;min-width:0}
.capture-page-header span{
  display:block;
  margin-bottom:5px;
  color:var(--gallery-red);
  font:700 8px/1 "Avenir Next","Helvetica Neue",sans-serif;
  letter-spacing:.22em;
}
.capture-page-header h1{
  margin:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font:600 clamp(24px,6vw,32px)/1 "Bodoni Moda",Georgia,serif;
  letter-spacing:-.025em;
}
.capture-page-header>i{display:block;width:44px;height:44px}
.capture-page-scroll{
  overflow:auto;
  -webkit-overflow-scrolling:touch;
  padding:22px 16px calc(36px + env(safe-area-inset-bottom));
}
.capture-page-intro{
  max-width:920px;
  margin:0 auto 20px;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
  padding-bottom:14px;
  border-bottom:1px solid var(--gallery-line);
}
.capture-page-intro p{margin:0;color:var(--gallery-muted);font:500 13px/1.5 "Avenir Next","Helvetica Neue",sans-serif}
.capture-page-intro small{flex:none;color:var(--gallery-red);font:700 8px/1 "Avenir Next","Helvetica Neue",sans-serif;letter-spacing:.18em}
.capture-location-grid{
  max-width:920px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.capture-location-card{
  min-width:0;
  padding:0;
  overflow:hidden;
  border:1px solid rgba(23,23,20,.13);
  background:#fffaf0;
  text-align:left;
  cursor:pointer;
  box-shadow:0 7px 20px rgba(37,29,19,.08);
}
.capture-location-card .location-card-image{
  position:relative;
  aspect-ratio:1.38;
  overflow:hidden;
  background:#d5cbbc;
}
.capture-location-card .location-card-image>span,
.capture-location-card .location-card-image img{
  width:100%!important;
  height:100%!important;
}
.capture-location-card .location-card-image img{object-fit:cover!important;transition:transform .35s ease}
.capture-location-card:active .location-card-image img{transform:scale(1.025)}
.capture-location-card .location-card-copy{min-height:0!important;padding:15px!important}
.capture-location-card .location-card-copy>div{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:14px}
.capture-location-card .location-card-copy>div>span{color:var(--gallery-red);font:800 8px/1 "Avenir Next","Helvetica Neue",sans-serif;letter-spacing:.16em}
.capture-location-card .location-card-copy>div>small{color:#164b82;font:700 9px/1 "Avenir Next","Helvetica Neue",sans-serif}
.capture-location-card .location-card-copy h3{margin:9px 0 0!important;font:600 clamp(20px,4.8vw,28px)/1.05 "Bodoni Moda",Georgia,serif!important;letter-spacing:-.035em!important}
.capture-location-card .location-card-copy h3 small{display:block;margin-top:5px;color:#767067;font:400 11px/1.2 "Bodoni Moda",Georgia,serif;letter-spacing:.03em}
.capture-location-card.is-locked .location-card-image img{filter:saturate(.45) brightness(.67)}
.capture-location-card .location-lock{position:absolute!important;inset:0!important;z-index:2!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;color:#fff!important;text-shadow:0 1px 14px rgba(0,0,0,.55)!important;font:800 9px/1 "Avenir Next","Helvetica Neue",sans-serif!important;letter-spacing:.12em!important}

/* Each location becomes its own gallery chapter. */
.gallery-location-group{margin-bottom:52px}
.gallery-location-group .gallery-section-heading h2{max-width:70vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gallery-location-group+.gallery-location-group{padding-top:4px}

@media(hover:hover){
  .capture-location-card:hover .location-card-image img{transform:scale(1.035)}
}

@media(min-width:760px){
  .capture-page-header{padding-left:max(24px,calc((100vw - 980px)/2));padding-right:max(24px,calc((100vw - 980px)/2))}
  .capture-page-scroll{padding-left:28px;padding-right:28px}
  .capture-location-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
  .capture-location-card .location-card-copy{padding:18px!important}
}

@media(max-width:430px){
  body:not(.camera-mode):not(.detail-mode):not(.gallery-open):not(.capture-page-open){padding-bottom:92px}
  .overview-map-section{padding:34px 16px calc(104px + env(safe-area-inset-bottom))!important}
  .overview-map-copy{margin-bottom:14px!important;text-align:left!important}
  .overview-map-copy h2{font-size:clamp(28px,8.5vw,38px)!important}
  .overview-map-wrap{padding:7px!important}
  #overview-map{min-height:330px!important;border-width:5px!important}
  .capture-page-header{min-height:68px;padding-left:12px;padding-right:12px}
  .capture-page-scroll{padding:17px 12px calc(30px + env(safe-area-inset-bottom))}
  .capture-page-intro{align-items:flex-start;flex-direction:column;gap:7px;margin-bottom:14px;padding:0 2px 12px}
  .capture-location-grid{gap:10px}
  .capture-location-card .location-card-copy{padding:12px!important}
  .capture-location-card .location-card-copy h3{font-size:19px!important}
  .capture-location-card .location-card-copy h3 small{font-size:10px}
  .gallery-location-group{margin-bottom:42px}
}
#root~.site-legal-footer{
  display:flex!important;
  position:relative!important;
  z-index:2!important;
  width:100%!important;
  padding:22px 16px calc(92px + env(safe-area-inset-bottom))!important;
  flex-wrap:wrap!important;
  background:#090b0a!important;
  border-top:1px solid rgba(255,255,255,.14)!important;
}
body.camera-mode #root~.site-legal-footer,
body.detail-mode #root~.site-legal-footer,
body.gallery-open #root~.site-legal-footer,
body.capture-page-open #root~.site-legal-footer{display:none!important;}


/* V68 — balanced map frame and restored Camera / Map choice flow. */
.overview-map-wrap{
  min-height:0!important;
  height:auto!important;
  padding:8px!important;
}
#overview-map{
  display:block!important;
  height:clamp(330px,48vw,470px)!important;
  min-height:0!important;
}
@media(max-width:430px){
  .overview-map-section{
    padding-top:30px!important;
    padding-left:16px!important;
    padding-right:16px!important;
  }
  .overview-map-copy{margin-bottom:15px!important}
  .overview-map-wrap{padding:7px!important}
  #overview-map{
    height:clamp(320px,82vw,370px)!important;
    min-height:0!important;
  }
}


/* V69 — one free artwork, quiet saving, concise capture UI. */
.gallery-saved-note{display:none!important}
.capture-page-intro{justify-content:flex-start!important;border-bottom:0!important;padding-bottom:2px!important;margin-bottom:14px!important}
.capture-page-intro p,.capture-page-intro small{display:none!important}
.capture-page-intro strong{display:inline-flex;align-items:center;min-height:28px;padding:0 11px;border-radius:999px;background:#fffaf0;border:1px solid rgba(23,23,20,.14);color:#e94727;font:800 9px/1 "Avenir Next","Helvetica Neue",sans-serif;letter-spacing:.12em;text-transform:uppercase}
.camera-controls-minimal,.capture-preview-actions{position:relative!important}
.camera-gallery-shortcut{position:absolute!important;right:12px!important;bottom:calc(9px + env(safe-area-inset-bottom))!important;z-index:12!important;width:54px!important;height:50px!important;padding:4px 2px!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:3px!important;border:0!important;border-radius:13px!important;background:rgba(20,19,16,.88)!important;color:#fff!important;box-shadow:0 5px 16px rgba(0,0,0,.24)!important;backdrop-filter:blur(8px)!important;-webkit-backdrop-filter:blur(8px)!important;font:700 8px/1 "Avenir Next","Helvetica Neue",sans-serif!important;letter-spacing:.02em!important}
.camera-gallery-shortcut svg{display:block!important}
.paywall-card>p:not(.eyebrow){max-width:290px!important;margin-left:auto!important;margin-right:auto!important}


/* V70 — concise gallery and reliable camera-to-gallery transition. */
.ukiyoe-gallery-overlay{z-index:1200!important}
.gallery-collection-intro{padding:22px 22px 18px!important;margin-bottom:34px!important}
.gallery-collection-count{margin-bottom:16px!important}
.gallery-collection-copy{display:none!important}
@media(max-width:430px){
  .gallery-collection-intro{padding:19px 18px 16px!important;margin-bottom:28px!important}
  .gallery-collection-count{margin-bottom:14px!important}
}

/* V72 — reliable camera-to-gallery transition. */
.camera-gallery-shortcut{pointer-events:auto!important;touch-action:manipulation!important;position:relative!important;z-index:50!important;}

/* V73 — keep the camera toolbar in one row: back / shutter / gallery. */
.camera-gallery-shortcut{
  position:absolute!important;
  right:max(12px, env(safe-area-inset-right))!important;
  bottom:calc(9px + env(safe-area-inset-bottom))!important;
  z-index:60!important;
}
.camera-back-floating{
  z-index:60!important;
}
.ukiyoe-gallery-overlay{z-index:120000!important;pointer-events:auto!important;}

/* V74 — keep gallery cards image-led; remove the duplicate caption strip. */
.gallery-art-copy{display:none!important;}

/* V75 — use the title typeface consistently across the experience. */
html body, html body *:not(#font-exempt){
  font-family:"Avenir Next",Avenir,"Helvetica Neue","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif!important;
}

/* V76 — make detail metadata precise and keep sharing secondary to the artwork. */
.gallery-detail-actions{
  grid-template-columns:auto 52px!important;
  justify-content:end!important;
}
.gallery-detail-actions .share-primary{
  width:auto!important;
  min-height:48px!important;
  padding:0 20px!important;
}
.gallery-detail-actions .danger{
  min-width:52px!important;
  min-height:48px!important;
  padding:0!important;
}

/* V77 — focus the artwork and make file information optional. */
.gallery-detail-close{
  position:absolute!important;
  top:16px!important;
  right:18px!important;
  z-index:3!important;
  width:44px!important;
  height:44px!important;
  border:1px solid var(--gallery-line)!important;
  border-radius:50%!important;
  background:rgba(243,238,227,.9)!important;
  color:var(--gallery-ink)!important;
  display:grid!important;
  place-items:center!important;
}
.gallery-detail article{padding-top:16px!important;}
.gallery-detail-frame{
  padding:0!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
.gallery-detail-image{
  padding:0!important;
  background:transparent!important;
  border:0!important;
}
.gallery-detail-image img{
  width:100%!important;
  height:auto!important;
  max-height:70vh!important;
  object-fit:contain!important;
  background:transparent!important;
}
.gallery-detail-meta{display:none!important;}
.gallery-detail-actions{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:48px!important;
  grid-template-columns:none!important;
}
.gallery-detail-actions .share-primary{
  width:auto!important;
  min-height:48px!important;
  padding:0 20px!important;
}
.gallery-detail-actions .info-toggle,
.gallery-detail-actions .danger{
  position:absolute!important;
  top:0!important;
  width:52px!important;
  min-width:52px!important;
  min-height:48px!important;
  padding:0!important;
}
.gallery-detail-actions .info-toggle{right:62px!important;color:var(--gallery-ink)!important;}
.gallery-detail-actions .danger{right:0!important;}
.gallery-detail-info{
  margin-top:12px!important;
  padding:12px 2px 0!important;
  border-top:1px solid var(--gallery-line)!important;
  color:var(--gallery-muted)!important;
}
.gallery-detail-info[hidden]{display:none!important;}
.gallery-detail-info dl{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:12px 18px!important;
  margin:0!important;
}
.gallery-detail-info dl>div{display:grid!important;gap:4px!important;}
.gallery-detail-info dt{font:700 8px/1 "Avenir Next",sans-serif!important;letter-spacing:.16em!important;text-transform:uppercase!important;color:var(--gallery-red)!important;}
.gallery-detail-info dd{margin:0!important;color:var(--gallery-ink)!important;font:600 12px/1.2 "Avenir Next",sans-serif!important;}
@media(max-width:430px){
  .gallery-detail-close{top:12px!important;right:14px!important;}
  .gallery-detail-info dl{grid-template-columns:1fr 1fr!important;}
}

/* V78 — present the beige artwork on a black viewing surface. */
.gallery-detail article{
  background:#000!important;
  color:#fff!important;
}
.gallery-detail-frame,
.gallery-detail-image,
.gallery-detail-image img{
  background:#000!important;
}
.gallery-detail-close{
  background:#000!important;
  border-color:rgba(255,255,255,.55)!important;
  color:#fff!important;
}
.gallery-detail-actions button{
  background:#000!important;
  border-color:rgba(255,255,255,.35)!important;
  color:#fff!important;
}
.gallery-detail-actions .share-primary{
  background:var(--signal,#e94727)!important;
  border-color:var(--signal,#e94727)!important;
  color:#fff!important;
}
.gallery-detail-actions .info-toggle{color:#fff!important;}
.gallery-detail-actions .danger{color:#f07a62!important;}
.gallery-detail-info{
  background:#000!important;
  border-top-color:rgba(255,255,255,.35)!important;
  color:rgba(255,255,255,.75)!important;
}
.gallery-detail-info dd{color:#fff!important;}

/* V79 — give the action row breathing room and keep utility controls icon-only. */
.gallery-detail-actions{
  margin-top:20px!important;
}
.gallery-detail-actions .info-toggle,
.gallery-detail-actions .danger{
  border:0!important;
  background:transparent!important;
}

/* V80 — make the gallery a black viewing surface around the artwork cards. */
.ukiyoe-gallery-overlay,
.gallery-shell,
.gallery-scroll{
  background:#000!important;
  color:#fff!important;
}
.gallery-topbar{
  background:#000!important;
  border-bottom-color:rgba(255,255,255,.28)!important;
}
.gallery-topbar h1{color:#fff!important;}
.gallery-close{
  background:#000!important;
  border-color:rgba(255,255,255,.55)!important;
  color:#fff!important;
}
.gallery-collection-intro{
  background:#000!important;
  border-color:rgba(255,255,255,.28)!important;
}
.gallery-collection-count span{color:rgba(255,255,255,.75)!important;}
.gallery-progress-track{background:rgba(255,255,255,.24)!important;}
.gallery-section-heading{border-bottom-color:rgba(255,255,255,.28)!important;}
.gallery-section-heading h2,
.gallery-section-heading small{color:#fff!important;}
.gallery-art-frame{
  background:#000!important;
  border-color:rgba(255,255,255,.35)!important;
  box-shadow:none!important;
}
.gallery-art-mat{
  background:#000!important;
  border-color:transparent!important;
}
.gallery-art-mat img{background:#000!important;}
.gallery-empty{
  background:#000!important;
  border-color:rgba(255,255,255,.28)!important;
}

/* V82 — preserve card legibility while enlarging the locked-pass label. */
#ukiyoe-capture-page-v69 .capture-location-card{
  color:var(--gallery-ink)!important;
}
#ukiyoe-capture-page-v69 .capture-location-card .location-card-copy h3{
  color:var(--gallery-ink)!important;
}
#ukiyoe-capture-page-v69 .capture-location-card .location-lock{
  font:800 14px/1 "Avenir Next","Helvetica Neue",sans-serif!important;
  letter-spacing:.12em!important;
}

/* V83 — anchor every locked label to the exact center of its image. */
#ukiyoe-capture-page-v69 .capture-location-card .location-lock{
  top:50%!important;
  right:auto!important;
  bottom:auto!important;
  left:50%!important;
  width:max-content!important;
  max-width:calc(100% - 20px)!important;
  height:auto!important;
  transform:translate(-50%,-50%)!important;
}
#ukiyoe-capture-page-v69 .capture-page-intro strong{
  background:#000!important;
  border-color:rgba(255,255,255,.55)!important;
  color:#fff!important;
}

/* V84 — remove row-dependent button whitespace above every location image. */
#ukiyoe-capture-page-v69 .capture-location-card{
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  justify-content:flex-start!important;
}
#ukiyoe-capture-page-v69 .capture-location-card .location-card-image,
#ukiyoe-capture-page-v69 .capture-location-card .location-card-copy{
  flex:0 0 auto!important;
}

/* V85 — keep everything outside the portrait artwork black. */
.camera-stage,
.camera-stage-poster{
  background:#000!important;
}

/* V86 — reserve the same three columns even when camera permission is denied. */
.camera-actions-minimal{
  width:184px!important;
  max-width:none!important;
  grid-template-columns:46px 64px 46px!important;
  gap:14px!important;
  justify-content:center!important;
  justify-self:center!important;
  margin:0 auto!important;
}
.camera-actions-minimal .camera-tool-button{
  width:46px!important;
  height:46px!important;
}
.camera-actions-minimal .shutter-button{
  width:64px!important;
  height:64px!important;
}
.camera-actions-minimal .shutter-button>span{
  width:50px!important;
  height:50px!important;
}

/* V87 — icon-only gallery shortcut, sized to the back-arrow control. */
.camera-gallery-shortcut{
  width:48px!important;
  height:48px!important;
  padding:0!important;
  gap:0!important;
  border-radius:999px!important;
}
.camera-gallery-shortcut span{
  display:none!important;
}
.camera-gallery-shortcut svg{
  width:22px!important;
  height:22px!important;
}

/* V88 — keep the home map surface black and make its controls readable. */
.overview-map-section{
  background:#000!important;
  color:#fff!important;
}
.overview-map-copy h2{
  color:#fff!important;
}
.overview-map-wrap{
  background:#000!important;
  border-color:rgba(255,255,255,.28)!important;
  box-shadow:none!important;
}
#overview-map{
  background:#000!important;
  border-color:#000!important;
}
#overview-map .leaflet-control-zoom a,
#overview-map .leaflet-control-attribution{
  background:#000!important;
  color:#fff!important;
  border-color:rgba(255,255,255,.35)!important;
}
#overview-map .leaflet-control-attribution a{
  color:#fff!important;
}
