:root{--signal:#A22041!important;--signal-dark:#A22041!important;--gallery-paper:#f3eee3;--gallery-ink:#171714;--gallery-muted:#69645b;--gallery-red:#A22041;--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,#A22041);border-color:var(--signal,#A22041);color:#fff}.gallery-detail-actions .share-primary:active{background:var(--signal-dark,#76152E);border-color:var(--signal-dark,#76152E)}.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;
}




.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;
  }
}

/* V95 — use the same three-icon sharing rail after capture and in gallery details. */
.gallery-icon-bar,
.capture-icon-actions{
  display:flex!important;
  align-items:center!important;
  justify-content:space-around!important;
  width:196px!important;
  height:64px!important;
  box-sizing:border-box!important;
  padding:4px 8px!important;
  border:1px solid rgba(255,255,255,.18)!important;
  border-radius:999px!important;
  background:#171717!important;
  box-shadow:0 8px 22px rgba(0,0,0,.24)!important;
}
.gallery-icon-bar button,
.capture-icon-actions button{
  position:static!important;
  width:52px!important;
  height:52px!important;
  min-width:52px!important;
  min-height:52px!important;
  padding:0!important;
  border:0!important;
  border-radius:50%!important;
  background:transparent!important;
  color:#fff!important;
  display:grid!important;
  place-items:center!important;
}
.gallery-icon-bar button svg,
.capture-icon-actions button svg{
  width:30px!important;
  height:30px!important;
}
.gallery-icon-bar button.is-active,
.capture-icon-actions button.is-active{
  background:rgba(255,255,255,.1)!important;
}
.gallery-detail-actions{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:10px!important;
}
.gallery-detail-actions .info-toggle,
.gallery-detail-actions .danger,
.gallery-detail-actions .share-primary{
  position:static!important;
  right:auto!important;
  top:auto!important;
  width:52px!important;
  height:52px!important;
  min-width:52px!important;
  min-height:52px!important;
  padding:0!important;
  border:0!important;
  border-radius:50%!important;
  background:transparent!important;
  color:#fff!important;
  display:grid!important;
  place-items:center!important;
}
.gallery-detail-actions .gallery-icon-bar .share-primary{
  background:transparent!important;
  border:0!important;
}
.gallery-detail-actions .danger svg,
.gallery-detail-actions .info-toggle svg,
.gallery-detail-actions .share-primary svg{
  width:30px!important;
  height:30px!important;
}
.gallery-detail-actions .danger{color:#fff!important;}
.capture-preview-actions{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:68px!important;
}
.capture-preview-actions .pair-share-actions{display:none!important;}
.capture-artwork-info{
  position:absolute!important;
  right:12px!important;
  bottom:calc(100% + 8px)!important;
  padding:8px 10px!important;
  border:1px solid rgba(255,255,255,.2)!important;
  border-radius:8px!important;
  background:#171717!important;
  color:#fff!important;
  font:700 9px/1 "Avenir Next","Helvetica Neue",sans-serif!important;
  letter-spacing:.08em!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:#A22041;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}



.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}
}


.camera-gallery-shortcut{pointer-events:auto!important;touch-action:manipulation!important;position:relative!important;z-index:50!important;}


.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:56px!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;}

/* V100 — gallery locations use the same card rhythm as the capture location list. */
.gallery-location-card-grid{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:14px!important;
  margin-left:-2px!important;
  margin-right:-2px!important;
}
@media(min-width:760px){
  .gallery-location-card-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:20px!important;
  }
}
@media(max-width:430px){
  .gallery-location-card-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
    margin-left:-2px!important;
    margin-right:-2px!important;
  }
  .gallery-location-card .location-card-copy{padding:12px!important;}
  .gallery-location-card .location-card-copy h3{font-size:19px!important;}
  .gallery-location-card .location-card-copy h3 small{font-size:10px!important;}
}

/* V101 — selecting is an explicit mode; artwork checks are hidden while browsing. */
.gallery-heading-tools{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:10px!important;
  flex:none!important;
}
.gallery-selection-toggle{
  min-height:30px!important;
  padding:0 10px!important;
  border:1px solid rgba(255,255,255,.55)!important;
  border-radius:999px!important;
  background:transparent!important;
  color:#fff!important;
  font:700 8px/1 "Avenir Next","Helvetica Neue",sans-serif!important;
  letter-spacing:.12em!important;
}
.gallery-selection-toggle:active{background:rgba(255,255,255,.12)!important;}
.ukiyoe-gallery-overlay:not(.is-selection-mode) .gallery-art-select-hit{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
.ukiyoe-gallery-overlay.is-selection-mode .gallery-art-select-hit{
  opacity:.9!important;
  visibility:visible!important;
  pointer-events:none!important;
}
.ukiyoe-gallery-overlay.is-selection-mode .gallery-art-card{
  cursor:pointer!important;
}


.camera-top-home{
  position:absolute!important;
  z-index:100!important;
  top:max(12px,env(safe-area-inset-top))!important;
  right:max(12px,env(safe-area-inset-right))!important;
  left:auto!important;
  width:72px!important;
  height:42px!important;
  padding:0 10px!important;
  box-sizing:border-box!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:5px!important;
  border:1px solid rgba(255,255,255,.48)!important;
  border-radius:999px!important;
  background:rgba(8,10,9,.9)!important;
  color:#fff!important;
  box-shadow:0 6px 18px rgba(0,0,0,.28)!important;
  font:700 9px/1 "Avenir Next","Helvetica Neue",sans-serif!important;
  letter-spacing:.12em!important;
}
.camera-top-home:active{background:rgba(255,255,255,.16)!important;}
.camera-top-home svg{flex:none!important;}
@media(max-width:430px){
  .camera-top-home{
    top:max(10px,env(safe-area-inset-top))!important;
    right:max(10px,env(safe-area-inset-right))!important;
    left:auto!important;
    width:66px!important;
    height:40px!important;
  }
  .gallery-heading-tools{gap:7px!important;}
  .gallery-selection-toggle{padding:0 8px!important;}
}

/* V99 — browse the gallery by captured location, then select artworks for bulk actions. */
.gallery-topbar-spacer{
  display:block!important;
  width:44px!important;
  height:44px!important;
}
.gallery-topbar.is-image-view{
  display:grid!important;
  grid-template-columns:44px minmax(0,1fr) 44px!important;
  align-items:center!important;
  gap:12px!important;
}
.gallery-topbar.is-image-view h1{
  overflow:hidden!important;
  text-align:center!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.gallery-back-locations{
  width:44px!important;
  height:44px!important;
  border:1px solid var(--gallery-line)!important;
  border-radius:50%!important;
  background:#000!important;
  color:#fff!important;
  display:grid!important;
  place-items:center!important;
}
.gallery-location-card-grid{
  max-width:920px!important;
  margin:0 auto!important;
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:14px!important;
}
.gallery-location-card{
  position:relative!important;
  color:var(--gallery-ink)!important;
}
.gallery-location-card .gallery-location-count{
  position:absolute!important;
  top:12px!important;
  right:12px!important;
  z-index:4!important;
  padding:6px 8px!important;
  border:1px solid rgba(255,255,255,.35)!important;
  border-radius:999px!important;
  background:rgba(0,0,0,.72)!important;
  color:#fff!important;
  font:700 8px/1 "Avenir Next","Helvetica Neue",sans-serif!important;
  letter-spacing:.05em!important;
  text-transform:uppercase!important;
}
.gallery-image-list-section{
  max-width:920px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
.gallery-image-grid{
  max-width:none!important;
}
.gallery-art-select-hit{
  position:absolute!important;
  top:10px!important;
  right:10px!important;
  z-index:4!important;
  width:36px!important;
  height:36px!important;
  border:1px solid rgba(255,255,255,.7)!important;
  border-radius:50%!important;
  background:rgba(0,0,0,.62)!important;
  color:#fff!important;
  display:grid!important;
  place-items:center!important;
  cursor:pointer!important;
  opacity:.9!important;
}
.gallery-art-select-hit svg{
  width:20px!important;
  height:20px!important;
  opacity:0!important;
}
.gallery-art-select-hit.is-selected{
  border-color:#fff!important;
  background:#2488f4!important;
  opacity:1!important;
}
.gallery-art-select-hit.is-selected svg{opacity:1!important;}
.gallery-art-card.is-selected .gallery-art-frame{
  outline:3px solid #2488f4!important;
  outline-offset:2px!important;
}
.gallery-selection-bar{
  position:fixed!important;
  z-index:30!important;
  left:50%!important;
  bottom:max(12px,env(safe-area-inset-bottom))!important;
  transform:translateX(-50%)!important;
  width:min(360px,calc(100vw - 28px))!important;
  min-height:68px!important;
  padding:8px!important;
  box-sizing:border-box!important;
  display:grid!important;
  grid-template-columns:52px minmax(0,1fr) 52px!important;
  align-items:center!important;
  gap:8px!important;
  border:1px solid rgba(255,255,255,.18)!important;
  border-radius:999px!important;
  background:rgba(23,23,23,.96)!important;
  color:#fff!important;
  box-shadow:0 12px 30px rgba(0,0,0,.42)!important;
  backdrop-filter:blur(16px)!important;
  -webkit-backdrop-filter:blur(16px)!important;
}
.gallery-selection-bar[hidden]{display:none!important;}
.gallery-selection-bar button{
  width:52px!important;
  height:52px!important;
  padding:0!important;
  border:0!important;
  border-radius:50%!important;
  background:transparent!important;
  color:#fff!important;
  display:grid!important;
  place-items:center!important;
}
.gallery-selection-bar button:active{background:rgba(255,255,255,.12)!important;}
.gallery-selection-bar strong{
  text-align:center!important;
  color:#fff!important;
  font:700 12px/1 "Avenir Next","Helvetica Neue",sans-serif!important;
  letter-spacing:.03em!important;
}
.ukiyoe-gallery-overlay.has-selection .gallery-scroll{
  padding-bottom:calc(120px + env(safe-area-inset-bottom))!important;
}
@media(min-width:760px){
  .gallery-location-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:20px!important;}
}
@media(max-width:430px){
  .gallery-location-card-grid{grid-template-columns:1fr!important;gap:14px!important;}
  .gallery-topbar.is-image-view{gap:7px!important;}
  .gallery-topbar.is-image-view h1{font-size:22px!important;}
  .gallery-art-select-hit{top:8px!important;right:8px!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 article{padding-top:64px!important;}
  .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,#A22041)!important;
  border-color:var(--signal,#A22041)!important;
  color:#fff!important;
}
.gallery-detail-actions .info-toggle{color:#fff!important;}
.gallery-detail-actions .danger{color:#A22041!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-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:58px!important;
  height:58px!important;
}
.camera-actions-minimal .shutter-button>span{
  width:46px!important;
  height:46px!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;
}


.camera-back-floating{
  left:max(12px, env(safe-area-inset-left))!important;
}

/* V91 — keep the mobile detail sheet clear of browser chrome and use an English in-app delete dialog. */
@media(max-width:430px){
  .gallery-detail article{
    max-height:calc(100dvh - 8px)!important;
    padding-bottom:calc(40px + env(safe-area-inset-bottom))!important;
  }
}
.gallery-remove-dialog{
  position:fixed!important;
  z-index:200001!important;
  inset:0!important;
  display:grid!important;
  place-items:center!important;
  padding:24px!important;
  box-sizing:border-box!important;
  background:rgba(0,0,0,.74)!important;
  opacity:0!important;
  transition:opacity .18s ease!important;
}
.gallery-remove-dialog.is-open{opacity:1!important;}
.gallery-remove-backdrop{position:absolute!important;inset:0!important;}
.gallery-remove-card{
  position:relative!important;
  width:min(100%,320px)!important;
  padding:24px!important;
  box-sizing:border-box!important;
  border:1px solid rgba(255,255,255,.24)!important;
  border-radius:18px!important;
  background:#111!important;
  color:#fff!important;
  box-shadow:0 18px 50px rgba(0,0,0,.48)!important;
}
.gallery-remove-card h2{
  margin:0 0 10px!important;
  color:#fff!important;
  font:700 20px/1.1 "Avenir Next","Helvetica Neue",sans-serif!important;
}
.gallery-remove-card p{
  margin:0 0 22px!important;
  color:rgba(255,255,255,.78)!important;
  font:500 13px/1.45 "Avenir Next","Helvetica Neue",sans-serif!important;
}
.gallery-remove-actions{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:10px!important;
}
.gallery-remove-actions button{
  min-height:44px!important;
  border:1px solid rgba(255,255,255,.26)!important;
  border-radius:999px!important;
  background:transparent!important;
  color:#fff!important;
  font:700 11px/1 "Avenir Next","Helvetica Neue",sans-serif!important;
  letter-spacing:.06em!important;
}
.gallery-remove-actions button:last-child{
  border-color:var(--signal,#A22041)!important;
  background:var(--signal,#A22041)!important;
}

/* V92 — enlarge the utility icons and keep the mobile utility group closer to SHARE. */
.gallery-detail-actions .info-toggle svg,
.gallery-detail-actions .danger svg{
  width:22px!important;
  height:22px!important;
}
@media(max-width:430px){
  .gallery-detail-actions .danger{right:0!important;}
  .gallery-detail-actions .info-toggle{right:32px!important;}
}


body:not(.camera-mode):not(.detail-mode):not(.gallery-open):not(.capture-page-open){
  background:#000!important;
}


/* V95 — bring the info icon toward the trash, extend the mobile map, and remove footer dead space. */
@media(max-width:430px){
  .overview-map-section{
    padding-bottom:24px!important;
  }
  #overview-map{
    height:clamp(430px,100vw,520px)!important;
    min-height:430px!important;
  }
  body:not(.camera-mode):not(.detail-mode):not(.gallery-open):not(.capture-page-open){
    padding-bottom:0!important;
  }
  #root~.site-legal-footer{
    padding-bottom:72px!important;
  }
}

/* V96 — final cascade for the icon rail after the legacy detail rules. */
.gallery-detail-actions .info-toggle,
.gallery-detail-actions .danger,
.gallery-detail-actions .share-primary{
  position:static!important;
  top:auto!important;
  right:auto!important;
  width:52px!important;
  height:52px!important;
  min-width:52px!important;
  min-height:52px!important;
  padding:0!important;
  border:0!important;
  border-radius:50%!important;
  background:transparent!important;
  color:#fff!important;
  display:grid!important;
  place-items:center!important;
}
.gallery-detail-actions .danger{color:#fff!important;}
.gallery-detail-actions .info-toggle svg,
.gallery-detail-actions .danger svg,
.gallery-detail-actions .share-primary svg{
  width:30px!important;
  height:30px!important;
}
.gallery-icon-bar button,
.capture-icon-actions button{
  position:static!important;
  width:52px!important;
  height:52px!important;
  min-width:52px!important;
  min-height:52px!important;
  display:grid!important;
  place-items:center!important;
}
.gallery-detail-actions .gallery-icon-bar .share-primary{
  width:52px!important;
  min-width:52px!important;
  background:transparent!important;
}
.capture-preview-actions .pair-share-actions{display:none!important;}


/* V97 — center the three gallery actions, keep delete at the lower-right, and show favorites. */
.gallery-detail-actions{
  position:relative!important;
  display:block!important;
  min-height:64px!important;
}
.gallery-detail-actions .gallery-icon-bar{
  position:relative!important;
  margin:0 auto!important;
}
.gallery-detail-actions .danger{
  position:absolute!important;
  top:6px!important;
  right:0!important;
  margin:0!important;
}
.gallery-action-favorite.is-active svg,
.capture-action-favorite.is-active svg{
  fill:#fff!important;
  stroke:#fff!important;
}
.gallery-art-favorite{
  position:absolute!important;
  left:10px!important;
  bottom:10px!important;
  z-index:3!important;
  width:34px!important;
  height:34px!important;
  display:grid!important;
  place-items:center!important;
  border-radius:50%!important;
  background:rgba(0,0,0,.62)!important;
  color:#fff!important;
  pointer-events:auto!important;
}
.gallery-art-favorite-hit{
  width:100%!important;
  height:100%!important;
  display:grid!important;
  place-items:center!important;
  border:0!important;
  border-radius:50%!important;
  background:transparent!important;
  color:#fff!important;
  cursor:pointer!important;
}
.gallery-art-favorite svg{
  width:24px!important;
  height:24px!important;
  fill:none!important;
  stroke:#fff!important;
}
.gallery-art-favorite.is-active svg{
  fill:#fff!important;
  stroke:#fff!important;
}
.capture-artwork-info{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:10px 16px!important;
  min-width:240px!important;
  text-align:left!important;
}
.capture-artwork-info div{
  display:grid!important;
  gap:4px!important;
}
.capture-artwork-info span{
  color:#A22041!important;
  font:700 8px/1 "Avenir Next","Helvetica Neue",sans-serif!important;
  letter-spacing:.14em!important;
}
.capture-artwork-info strong{
  color:#fff!important;
  font:600 11px/1.2 "Avenir Next","Helvetica Neue",sans-serif!important;
}
.capture-artwork-info[hidden]{display:none!important;}

/* V98 — show gallery artwork information as the same floating info card used after capture. */
.gallery-detail-info{
  position:absolute!important;
  z-index:8!important;
  right:12px!important;
  bottom:calc(64px + 24px + env(safe-area-inset-bottom))!important;
  width:min(380px,calc(100% - 24px))!important;
  margin:0!important;
  padding:10px 14px!important;
  box-sizing:border-box!important;
  border:1px solid rgba(255,255,255,.2)!important;
  border-radius:8px!important;
  background:#171717!important;
  color:#fff!important;
  box-shadow:0 10px 24px rgba(0,0,0,.32)!important;
}
.gallery-detail-info dl{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:10px 16px!important;
  margin:0!important;
}
.gallery-detail-info dl>div{
  display:grid!important;
  gap:4px!important;
}
.gallery-detail-info dt{
  color:#A22041!important;
  font:700 8px/1 "Avenir Next","Helvetica Neue",sans-serif!important;
  letter-spacing:.14em!important;
}
.gallery-detail-info dd{
  margin:0!important;
  color:#fff!important;
  font:600 11px/1.2 "Avenir Next","Helvetica Neue",sans-serif!important;
}
.gallery-detail-info[hidden]{display:none!important;}

/* V103 — final overrides for explicit image selection and matching location cards. */
.gallery-location-card-grid{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:14px!important;
}
.gallery-heading-tools{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:10px!important;
  flex:none!important;
}
.gallery-selection-toggle{
  min-height:30px!important;
  padding:0 10px!important;
  border:1px solid rgba(255,255,255,.55)!important;
  border-radius:999px!important;
  background:transparent!important;
  color:#fff!important;
  font:700 8px/1 "Avenir Next","Helvetica Neue",sans-serif!important;
  letter-spacing:.12em!important;
}
.gallery-selection-toggle:active{background:rgba(255,255,255,.12)!important;}
.ukiyoe-gallery-overlay:not(.is-selection-mode) .gallery-art-select-hit{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
.ukiyoe-gallery-overlay.is-selection-mode .gallery-art-select-hit{
  opacity:.9!important;
  visibility:visible!important;
  pointer-events:none!important;
}
@media(min-width:760px){
  .gallery-location-card-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:20px!important;
  }
}
@media(max-width:430px){
  .gallery-location-card-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
  }
  .gallery-location-card .location-card-copy{padding:12px!important;}
  .gallery-location-card .location-card-copy h3{font-size:19px!important;}
  .gallery-location-card .location-card-copy h3 small{font-size:10px!important;}
  .gallery-heading-tools{gap:7px!important;}
  .gallery-selection-toggle{padding:0 8px!important;}
}


.camera-top-home{
  position:absolute!important;
  z-index:100!important;
  top:max(12px,env(safe-area-inset-top))!important;
  right:max(12px,env(safe-area-inset-right))!important;
  left:auto!important;
  width:72px!important;
  height:42px!important;
  padding:0 10px!important;
  box-sizing:border-box!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:5px!important;
  border:1px solid rgba(255,255,255,.48)!important;
  border-radius:999px!important;
  background:rgba(8,10,9,.9)!important;
  color:#fff!important;
  box-shadow:0 6px 18px rgba(0,0,0,.28)!important;
  font:700 9px/1 "Avenir Next","Helvetica Neue",sans-serif!important;
  letter-spacing:.12em!important;
}
.camera-top-home:active{background:rgba(255,255,255,.16)!important;}
.camera-top-home svg{flex:none!important;}
@media(max-width:430px){
  .camera-top-home{
    top:max(10px,env(safe-area-inset-top))!important;
    right:max(10px,env(safe-area-inset-right))!important;
    left:auto!important;
    width:66px!important;
    height:40px!important;
  }
}


@media(max-width:760px){
  
  
  .camera-top-home{
    top:max(6px,env(safe-area-inset-top))!important;
  }
}

























/* V107 — let the gallery artwork surface receive horizontal swipes. */
.gallery-detail-image{touch-action:pan-y!important;}























.gallery-art-frame,
.gallery-detail-image img{
  aspect-ratio:210 / 297!important;
}

.gallery-detail-image{
  will-change:transform;
  overscroll-behavior-x:contain;
}



















/* V126 — final title band geometry. Keep the canonical logo unchanged while
   moving the artwork block up slightly so the upper band does not dominate. */











































/* V78-final — reduce the title-to-art gap and enlarge both framed image
   areas by the same amount. The lower edge remains fixed at the footer, so
   the two frames stay equal before capture and after the saved photo swap. */
















.gallery-save-status{
  position:absolute!important;
  left:50%!important;
  bottom:calc(100% + 8px)!important;
  z-index:20!important;
  margin:0!important;
  padding:7px 10px!important;
  transform:translateX(-50%)!important;
  border:1px solid rgba(255,255,255,.22)!important;
  border-radius:999px!important;
  background:rgba(18,18,18,.94)!important;
  color:#fff!important;
  font:700 10px/1.2 "Avenir Next",Avenir,sans-serif!important;
  white-space:nowrap!important;
}
.gallery-save-status.is-error{
  width:min(330px,calc(100vw - 28px))!important;
  border-radius:12px!important;
  color:#fff!important;
  background:#8f2d23!important;
  white-space:normal!important;
  text-align:center!important;
}
.gallery-storage-error{gap:14px!important;}
.gallery-storage-error button{
  min-height:44px!important;
  padding:0 18px!important;
  border:1px solid rgba(255,255,255,.55)!important;
  border-radius:999px!important;
  background:transparent!important;
  color:#fff!important;
}









/* V78-final — reduce the title-to-art gap and enlarge both framed image
   areas by the same amount. The lower edge remains fixed at the footer, so
   the two frames stay equal before capture and after the saved photo swap. */

















/* V75 — mobile reliability fixes.  Gallery cards use a div wrapper so the
   favorite control is a real button instead of an invalid nested button. */
.gallery-art-card{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  text-align:left!important;
  color:inherit!important;
  cursor:pointer!important;
}
.gallery-art-favorite{
  z-index:5!important;
  pointer-events:auto!important;
}
.gallery-art-favorite-hit{
  appearance:none!important;
  -webkit-appearance:none!important;
  display:grid!important;
  place-items:center!important;
  width:100%!important;
  height:100%!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  color:inherit!important;
  pointer-events:auto!important;
  touch-action:manipulation!important;
  cursor:pointer!important;
  position:relative!important;
  z-index:6!important;
}

/* The location map is a child view; its detail-header back arrow must not
   remain visible behind the map header on narrow screens. */
.view-detail:has(.map-overlay-minimal) > .detail-header,
.view-detail:has(.map-overlay-minimal) > .detail-header .detail-back-minimal{
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
}

/* Keep the map action inside the mobile viewport.  Google Maps is a replaced
   element and otherwise its intrinsic height can make the final action link
   fall below the fold on iPhone-sized viewports. */
.map-overlay-minimal{
  position:fixed!important;
  inset:0!important;
  height:100dvh!important;
  max-height:100dvh!important;
  min-height:0!important;
  overflow:hidden!important;
  grid-template-rows:auto minmax(0,1fr) auto!important;
}
.map-overlay-minimal iframe{
  min-height:0!important;
  height:100%!important;
  overflow:hidden!important;
}
.map-overlay-minimal > a{
  display:flex!important;
  position:relative!important;
  z-index:2!important;
  flex:none!important;
  min-height:56px!important;
  margin:10px max(10px, env(safe-area-inset-right)) max(10px, env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left))!important;
}











/* V131-final — keep the copied static layers visible after the React preview
   is hidden. Their exact boxes are set once from the canonical preview DOM. */





















/* V125 — tighten only the upper title-to-artwork band. The lockup remains
   comfortably padded; the art frame moves up while its size and the lower
   photo/footer geometry stay unchanged. */







/* V114 — the location-detail back button sits above the full-screen map
   overlay and hides the beginning of the map title (for example, leaving
   only “Bridge” visible). The map overlay has its own close control, so the
   underlying detail header must not compete with it while the map is open. */
.view-detail:has(.map-overlay-minimal) > .detail-header{
  display:none!important;
}
.map-overlay-minimal header{
  grid-template-columns:minmax(0,1fr) 44px!important;
  gap:12px!important;
}
.map-overlay-minimal header strong{
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}

/* V115 — keep the ukiyo-e frame visibly separated from the wordmark. The
   bottom of the artwork region stays fixed, so the caption/photo/footer do
   not drift; only the top image region gains the requested breathing space. */





/* V118 — add a small, deliberate gap between the caption and photo frame.
   The photo bottom remains fixed so the footer does not move. */


/* V119 — narrow the title band slightly while preserving comfortable
   breathing room around the unchanged logo/title lockup. The artwork starts
   earlier and gains area; the caption, photo bottom, and footer stay fixed. */










/* V121 — keep the canonical ring and lockup colors unchanged, while giving
   the title a little more breathing room so the artwork remains dominant. */


/* V122 — close the title-to-ukiyo-e gap slightly while keeping a clear
   separation and holding the caption/photo/footer boundary in place. */


/* V124 — final cascade for the equal-size frames and the restored photo mat. */




/* V127 — final title band geometry. Keep the canonical logo unchanged while
   moving the artwork block up slightly so the upper band does not dominate. */








































/* V78-final — reduce the title-to-art gap and enlarge both framed image
   areas by the same amount. The lower edge remains fixed at the footer, so
   the two frames stay equal before capture and after the saved photo swap. */







/* V78-final — reduce the title-to-art gap and enlarge both framed image
   areas by the same amount. The lower edge remains fixed at the footer, so
   the two frames stay equal before capture and after the saved photo swap. */





















.gallery-save-status{
  position:absolute!important;
  left:50%!important;
  bottom:calc(100% + 8px)!important;
  z-index:20!important;
  margin:0!important;
  padding:7px 10px!important;
  transform:translateX(-50%)!important;
  border:1px solid rgba(255,255,255,.22)!important;
  border-radius:999px!important;
  background:rgba(18,18,18,.94)!important;
  color:#fff!important;
  font:700 10px/1.2 "Avenir Next",Avenir,sans-serif!important;
  white-space:nowrap!important;
}
.gallery-save-status.is-error{
  width:min(330px,calc(100vw - 28px))!important;
  border-radius:12px!important;
  color:#fff!important;
  background:#8f2d23!important;
  white-space:normal!important;
  text-align:center!important;
}
.gallery-storage-error{gap:14px!important;}
.gallery-storage-error button{
  min-height:44px!important;
  padding:0 18px!important;
  border:1px solid rgba(255,255,255,.55)!important;
  border-radius:999px!important;
  background:transparent!important;
  color:#fff!important;
}













/* V91 FINAL VISUAL OVERRIDES — loaded last on every page. */
.live-poster-preview,
.live-poster-brand,
.live-poster-caption,
.live-poster-footer,
.captured-poster-image {
  background-color:#f4efe4!important;
  background-image:url('/assets/japanese-paper_00445.jpg?v=95')!important;
  background-size:cover!important;
  background-position:center!important;
  background-repeat:no-repeat!important;
}
.live-poster-artwork,
.live-poster-artwork img,
.live-poster-camera,
.live-poster-camera .camera-feed,
.live-poster-camera img,
.live-poster-camera video,
.live-poster-camera canvas {
  background:#000!important;
}

#ukiyoe-capture-page-v69,
#ukiyoe-capture-page-v69 .capture-page-shell,
#ukiyoe-capture-page-v69 .capture-page-header,
#ukiyoe-capture-page-v69 .capture-page-scroll,
#ukiyoe-capture-page-v69 .capture-page-intro,
#ukiyoe-capture-page-v69 .capture-location-grid,
#ukiyoe-capture-page-v69 .capture-location-card,
#ukiyoe-capture-page-v69 .capture-location-card .location-card-copy,
#ukiyoe-capture-page-v69 .capture-location-card .location-card-image {
  background:#000!important;
  background-image:none!important;
  color:#fff!important;
}
#ukiyoe-capture-page-v69 .capture-page-header,
#ukiyoe-capture-page-v69 .capture-page-intro {
  border-color:rgba(255,255,255,.22)!important;
}
#ukiyoe-capture-page-v69 .capture-page-header h1,
#ukiyoe-capture-page-v69 .capture-page-intro p,
#ukiyoe-capture-page-v69 .capture-location-card .location-card-copy h3,
#ukiyoe-capture-page-v69 .capture-location-card .location-card-copy h3 small {
  color:#fff!important;
}
#ukiyoe-capture-page-v69 .capture-page-header>button,
#ukiyoe-capture-page-v69 .capture-page-intro strong {
  background:#000!important;
  border-color:rgba(255,255,255,.55)!important;
  color:#fff!important;
}
#ukiyoe-capture-page-v69 .capture-location-card {
  border-color:rgba(255,255,255,.20)!important;
  box-shadow:none!important;
}
#ukiyoe-capture-page-v69 .capture-location-card .location-card-copy>div>span {
  color:#A22041!important;
}
#ukiyoe-capture-page-v69 .capture-location-card .location-card-copy>div>small {
  color:#8fc4ff!important;
}


/* V92 — artwork presentation polish. Camera stability logic is unchanged. */
:root{--v92-gold:#b89a52;}
.camera-overlay,.camera-stage-poster{background:#000!important;}
.live-poster-preview{
  background-color:#f4efe4!important;
  background-image:url('/assets/japanese-paper_00445.jpg?v=95')!important;
  background-size:cover!important;
  background-position:center!important;
  background-repeat:no-repeat!important;
}
.live-poster-brand,.live-poster-caption,.live-poster-footer{
  background-color:transparent!important;
  background-image:none!important;
}
.live-poster-artwork{
  box-sizing:border-box!important;
  padding:7px 2px!important;
  background:#000!important;
  border:1px solid var(--v92-gold)!important;
}
.live-poster-artwork img{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  background:#000!important;
}
.live-poster-camera{
  box-sizing:border-box!important;
  padding:7px!important;
  background:#000!important;
  border:1px solid var(--v92-gold)!important;
}
.live-poster-camera .camera-feed,
.live-poster-camera>img,
.live-poster-camera>video,
.live-poster-camera>canvas{
  inset:7px!important;
  width:calc(100% - 14px)!important;
  height:calc(100% - 14px)!important;
}
.camera-top-home{
  position:absolute!important;
  top:50%!important;
  left:max(12px,env(safe-area-inset-left))!important;
  right:auto!important;
  bottom:auto!important;
  transform:translateY(-50%)!important;
  width:66px!important;
  height:44px!important;
  z-index:70!important;
}
.capture-preview-actions .camera-top-home,
.camera-controls-minimal .camera-top-home{pointer-events:auto!important;}
.gallery-save-status{transition:opacity .2s ease,transform .2s ease!important;}
.gallery-save-status.is-leaving{opacity:0!important;transform:translate(-50%,5px)!important;}
@media(max-width:430px){
  .camera-top-home{
    position:absolute!important;
    top:50%!important;
    left:max(10px,env(safe-area-inset-left))!important;
    right:auto!important;
    transform:translateY(-50%)!important;
    width:62px!important;
    height:40px!important;
  }
}


/* V93 — clearer washi artwork + optically balanced camera controls. */
:root{--v93-control-size:48px;--v93-control-gap:16px;}
.live-poster-preview{
  background-color:#efe6d6!important;
  background-image:
    linear-gradient(rgba(255,252,244,.10),rgba(224,210,188,.08)),
    url('/assets/japanese-paper_00445.jpg?v=95')!important;
  background-size:auto,620px auto!important;
  background-position:center,center!important;
  background-repeat:no-repeat,repeat!important;
  background-blend-mode:normal,multiply!important;
}

/* Live capture: utilities are equal circles at both edges, native capture trio stays centered. */
.camera-controls-minimal{
  position:relative!important;
  min-height:calc(84px + env(safe-area-inset-bottom))!important;
  padding:8px max(70px,calc(env(safe-area-inset-right) + 58px)) max(8px,env(safe-area-inset-bottom)) max(70px,calc(env(safe-area-inset-left) + 58px))!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.camera-controls-minimal .camera-actions-minimal{
  width:196px!important;
  max-width:196px!important;
  grid-template-columns:48px 64px 48px!important;
  gap:18px!important;
  margin:0 auto!important;
  justify-self:center!important;
  align-self:center!important;
}
.camera-controls-minimal .camera-tool-button{
  width:48px!important;
  height:48px!important;
  border-color:rgba(255,255,255,.46)!important;
}
.camera-controls-minimal .shutter-button{
  width:64px!important;
  height:64px!important;
}
.camera-controls-minimal .shutter-button>span{
  width:50px!important;
  height:50px!important;
}
.camera-controls-minimal .camera-top-home,
.camera-controls-minimal .camera-gallery-shortcut{
  position:absolute!important;
  top:50%!important;
  bottom:auto!important;
  transform:translateY(-50%)!important;
  width:var(--v93-control-size)!important;
  height:var(--v93-control-size)!important;
  min-width:var(--v93-control-size)!important;
  min-height:var(--v93-control-size)!important;
  padding:0!important;
  border:1px solid rgba(255,255,255,.46)!important;
  border-radius:50%!important;
  background:rgba(18,18,18,.92)!important;
  color:#fff!important;
  display:grid!important;
  place-items:center!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  z-index:80!important;
}
.camera-controls-minimal .camera-top-home{
  left:max(14px,env(safe-area-inset-left))!important;
  right:auto!important;
}
.camera-controls-minimal .camera-gallery-shortcut{
  right:max(14px,env(safe-area-inset-right))!important;
  left:auto!important;
}
.camera-controls-minimal .camera-top-home span,
.camera-controls-minimal .camera-gallery-shortcut span{display:none!important;}
.camera-controls-minimal .camera-top-home svg,
.camera-controls-minimal .camera-gallery-shortcut svg{width:22px!important;height:22px!important;}

@media(max-width:360px){
  :root{--v93-control-size:44px;}
  .camera-controls-minimal{
    min-height:calc(78px + env(safe-area-inset-bottom))!important;
    padding-left:max(58px,calc(env(safe-area-inset-left) + 50px))!important;
    padding-right:max(58px,calc(env(safe-area-inset-right) + 50px))!important;
  }
  .camera-controls-minimal .camera-actions-minimal{
    width:168px!important;
    max-width:168px!important;
    grid-template-columns:44px 58px 44px!important;
    gap:11px!important;
  }
  .camera-controls-minimal .camera-tool-button{width:44px!important;height:44px!important;}
  .camera-controls-minimal .shutter-button{width:58px!important;height:58px!important;}
  .camera-controls-minimal .shutter-button>span{width:46px!important;height:46px!important;}
  .camera-controls-minimal .camera-top-home{left:max(9px,env(safe-area-inset-left))!important;}
  .camera-controls-minimal .camera-gallery-shortcut{right:max(9px,env(safe-area-inset-right))!important;}
}

/* V95 — definitive washi artwork surface + balanced live/post-capture controls. */
:root{--v94-side:48px;--v94-gap:12px;}
.live-poster-preview{
  background-color:#eadfc9!important;
  background-image:
    radial-gradient(circle at 18% 24%,rgba(255,255,249,.42) 0 1px,transparent 1.8px),
    radial-gradient(circle at 73% 63%,rgba(116,91,61,.10) 0 1px,transparent 2px),
    linear-gradient(94deg,rgba(128,100,68,.07),transparent 18%,rgba(255,255,255,.15) 52%,transparent 79%),
    url('/assets/japanese-paper_00445.jpg?v=95')!important;
  background-size:23px 19px,31px 27px,100% 100%,430px auto!important;
  background-repeat:repeat,repeat,no-repeat,repeat!important;
  background-blend-mode:multiply,multiply,normal,multiply!important;
}
.live-poster-brand,.live-poster-caption,.live-poster-footer{background:transparent!important;background-image:none!important;}
.live-poster-preview .brand-lockup-poster .brand-wordmark{font-size:10.5px!important;letter-spacing:.095em!important;}

/* Same five-column rhythm before capture: HOME | media / shutter / flip | GALLERY. */
.camera-controls-minimal{
  display:grid!important;
  grid-template-columns:var(--v94-side) minmax(0,1fr) var(--v94-side)!important;
  align-items:center!important;
  column-gap:var(--v94-gap)!important;
  padding:8px max(12px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))!important;
}
.camera-controls-minimal .camera-actions-minimal{
  grid-column:2!important;
  width:min(196px,100%)!important;
  justify-self:center!important;
}
.camera-controls-minimal .camera-top-home,
.camera-controls-minimal .camera-gallery-shortcut{
  position:static!important;
  transform:none!important;
  top:auto!important;left:auto!important;right:auto!important;bottom:auto!important;
  width:var(--v94-side)!important;height:var(--v94-side)!important;
  min-width:var(--v94-side)!important;min-height:var(--v94-side)!important;
  margin:0!important;
}
.camera-controls-minimal .camera-top-home{grid-column:1!important;grid-row:1!important;justify-self:start!important;}
.camera-controls-minimal .camera-gallery-shortcut{grid-column:3!important;grid-row:1!important;justify-self:end!important;}

/* Same rhythm after capture: HOME | favorite / info / share | GALLERY. */
.capture-preview-actions{
  display:grid!important;
  grid-template-columns:var(--v94-side) minmax(0,1fr) var(--v94-side)!important;
  align-items:center!important;
  column-gap:var(--v94-gap)!important;
  min-height:76px!important;
  padding:6px max(12px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))!important;
  background:#080a09!important;
}
.capture-preview-actions .capture-icon-actions{
  grid-column:2!important;
  grid-row:1!important;
  justify-self:center!important;
  width:196px!important;
  max-width:100%!important;
  height:60px!important;
  padding:3px 7px!important;
  justify-content:space-between!important;
}
.capture-preview-actions .camera-top-home,
.capture-preview-actions .camera-gallery-shortcut{
  position:static!important;
  transform:none!important;
  top:auto!important;left:auto!important;right:auto!important;bottom:auto!important;
  width:var(--v94-side)!important;height:var(--v94-side)!important;
  min-width:var(--v94-side)!important;min-height:var(--v94-side)!important;
  margin:0!important;border-radius:50%!important;
  background:rgba(18,18,18,.92)!important;border:1px solid rgba(255,255,255,.46)!important;
  display:grid!important;place-items:center!important;
}
.capture-preview-actions .camera-top-home{grid-column:1!important;grid-row:1!important;justify-self:start!important;}
.capture-preview-actions .camera-gallery-shortcut{grid-column:3!important;grid-row:1!important;justify-self:end!important;}
.capture-preview-actions .camera-top-home span,.capture-preview-actions .camera-gallery-shortcut span{display:none!important;}
.gallery-save-status{grid-column:1/-1!important;grid-row:2!important;position:static!important;transform:none!important;justify-self:center!important;margin:2px 0 0!important;}
@media(max-width:360px){
  :root{--v94-side:44px;--v94-gap:8px;}
  .camera-controls-minimal .camera-actions-minimal{width:168px!important;}
  .capture-preview-actions .capture-icon-actions{width:168px!important;height:56px!important;}
  .capture-icon-actions button{width:46px!important;height:46px!important;min-width:46px!important;min-height:46px!important;}
}


/* V95 — use the original real washi asset directly, without synthetic overlays. */
.live-poster-preview{
  background-color:#f4efe4!important;
  background-image:url('/assets/japanese-paper_00445.jpg?v=95')!important;
  background-size:auto!important;
  background-position:top left!important;
  background-repeat:repeat!important;
  background-blend-mode:normal!important;
}
.live-poster-preview::before,.live-poster-preview::after{background-image:none!important;}


/* V96 — equal artwork/photo geometry, shinku identity, raised controls, in-frame status. */
:root{
  --signal:#A22041!important;
  --signal-dark:#76152E!important;
  --gallery-red:#A22041!important;
  --v96-shinku:#A22041;
}

/* Same circular logo geometry on opening hero and finished artwork. */
.hero-brand-mark,
.brand-lockup-poster .brand-ring{
  box-sizing:border-box!important;
  border-style:solid!important;
  border-color:var(--v96-shinku)!important;
  border-radius:50%!important;
  background:transparent!important;
  aspect-ratio:1/1!important;
}
.hero-brand-mark{
  border-width:10px!important;
}
.brand-lockup-poster .brand-ring{
  width:calc(var(--poster-width) * 40 / 1080)!important;
  height:calc(var(--poster-width) * 40 / 1080)!important;
  border-width:calc(var(--poster-width) * 9.5238095 / 1080)!important;
}

/* Ukiyo-e and photo panels now share exactly the same 530/1536 height. */
.live-poster-artwork{
  height:34.5052083%!important; /* 530 / 1536 */
}
.live-poster-camera{
  top:51.171875%!important; /* 786 / 1536 */
  height:34.5052083%!important; /* 530 / 1536 */
}
.live-poster-footer{
  top:85.6770833%!important; /* 1316 / 1536 */
}

/* Raise both live and post-capture control rows as one system. */
.camera-overlay .camera-controls-minimal,
.camera-overlay .capture-preview-actions{
  transform:translateY(-16px)!important;
  margin-bottom:-16px!important;
}

/* Keep all post-capture status text inside the viewport, above the controls. */
.camera-overlay .share-message,
.camera-overlay .gallery-save-status{
  position:fixed!important;
  left:50%!important;
  right:auto!important;
  top:auto!important;
  bottom:calc(112px + env(safe-area-inset-bottom))!important;
  transform:translateX(-50%)!important;
  width:max-content!important;
  max-width:calc(100vw - 32px)!important;
  box-sizing:border-box!important;
  margin:0!important;
  padding:8px 12px!important;
  border-radius:999px!important;
  background:rgba(8,10,9,.92)!important;
  color:#fff!important;
  text-align:center!important;
  font:700 11px/1.25 "Avenir Next","Helvetica Neue",sans-serif!important;
  white-space:normal!important;
  z-index:120500!important;
  pointer-events:none!important;
}
.camera-overlay .gallery-save-status.is-error{background:#5b111f!important;}

/* Ensure direct legacy orange accents also resolve to shinku. */
.primary-button,
.paywall-buy,
.gallery-detail-actions .share-primary,
.gallery-remove-actions button:last-child{
  background:var(--v96-shinku)!important;
  border-color:var(--v96-shinku)!important;
}
.eyebrow,
.gallery-eyebrow,
.gallery-section-heading span,
.gallery-empty>span,
.gallery-catalog-number,
.capture-page-intro strong{
  color:var(--v96-shinku)!important;
}

@media(max-width:360px){
  .camera-overlay .camera-controls-minimal,
  .camera-overlay .capture-preview-actions{
    transform:translateY(-12px)!important;
    margin-bottom:-12px!important;
  }
  .camera-overlay .share-message,
  .camera-overlay .gallery-save-status{
    bottom:calc(104px + env(safe-area-inset-bottom))!important;
  }
}


/* V97 — single-ring TOP control + revised artwork information hierarchy. */
:root{--v97-gold:#b89a52;}

/* Artwork composition: logo + place at top, date + brand at bottom. */
.live-poster-preview{
  grid-template-rows:minmax(0,192fr) minmax(0,530fr) minmax(0,64fr) minmax(0,530fr) minmax(0,211.5fr)!important;
}
.live-poster-brand{
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  align-items:center!important;
  gap:7px!important;
  padding:8px 12px 4px!important;
  text-align:center!important;
}
.live-poster-brand .brand-lockup-poster{display:flex!important;justify-content:center!important;}
.live-poster-brand .brand-lockup-poster .brand-wordmark{display:none!important;}
.live-poster-brand .brand-lockup-poster .brand-ring{
  width:18px!important;height:18px!important;border-width:4px!important;
  border-color:#A22041!important;
}
.poster-location-copy{display:flex!important;flex-direction:column!important;align-items:center!important;gap:2px!important;max-width:92%!important;}
.poster-location-copy strong{
  color:#171714!important;
  font:700 clamp(18px,4.7vw,28px)/1.05 "Avenir Next","Helvetica Neue","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif!important;
  letter-spacing:.035em!important;
  white-space:nowrap!important;
}
.poster-location-copy small{
  color:#5f5a52!important;
  font:700 clamp(10px,2.3vw,14px)/1.1 "Avenir Next","Helvetica Neue",sans-serif!important;
  letter-spacing:.12em!important;
  white-space:nowrap!important;
}
.live-poster-footer canvas{width:100%!important;height:100%!important;}

/* The lower-left TOP/back control has exactly one visible ring. */
.camera-controls-minimal .camera-top-home,
.capture-preview-actions .camera-top-home{
  box-sizing:border-box!important;
  border:1px solid var(--v97-gold)!important;
  outline:0!important;
  box-shadow:none!important;
  background:#080a09!important;
  border-radius:50%!important;
  padding:0!important;
  overflow:hidden!important;
  isolation:isolate!important;
}
.camera-controls-minimal .camera-top-home::before,
.camera-controls-minimal .camera-top-home::after,
.capture-preview-actions .camera-top-home::before,
.capture-preview-actions .camera-top-home::after{content:none!important;display:none!important;}
.camera-controls-minimal .camera-top-home:focus,
.capture-preview-actions .camera-top-home:focus{outline:0!important;box-shadow:none!important;}
.camera-controls-minimal .camera-top-home:focus-visible,
.capture-preview-actions .camera-top-home:focus-visible{outline:1px solid rgba(255,255,255,.75)!important;outline-offset:3px!important;}
.camera-controls-minimal .camera-top-home svg,
.capture-preview-actions .camera-top-home svg{position:relative!important;z-index:1!important;}
