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

/* V65 — clearer map overview, quiet empty gallery and matched share actions. */
html.capture-page-open,
body.capture-page-open{overflow:hidden!important}

/* The home screen contains the title artwork and a clearly labelled Kyoto viewpoint map. */
#root .locations-section,
#root .site-footer{display:none!important}
.overview-map-section{
  width:min(100%,1280px)!important;
  min-height:0!important;
  margin:0 auto!important;
  padding:clamp(44px,6vw,82px) clamp(18px,5vw,64px) calc(112px + env(safe-area-inset-bottom))!important;
  display:grid!important;
  grid-template-columns:minmax(230px,.62fr) minmax(0,1.38fr)!important;
  align-items:center!important;
  gap:clamp(28px,5vw,72px)!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}
.overview-map-copy .eyebrow{margin:0 0 14px!important;color:var(--signal,#e94727)!important;font-family:"Avenir Next","Helvetica Neue",sans-serif!important;font-size:10px!important;line-height:1.2!important;letter-spacing:.2em!important;font-weight:800!important}
.overview-map-copy h2{margin:0!important;font:600 clamp(34px,4.7vw,62px)/.98 "Bodoni Moda",Georgia,serif!important;letter-spacing:-.045em!important}
.overview-map-copy h2 em{color:#164b82!important;font-style:normal!important;font-weight:400!important}
.overview-map-lede{max-width:390px;margin:22px 0 0;color:var(--gallery-muted);font:500 14px/1.65 "Avenir Next","Helvetica Neue",sans-serif}
.overview-map-key{margin-top:26px;padding-top:16px;border-top:1px solid var(--gallery-line);display:grid;gap:8px;color:var(--gallery-muted);font:600 10px/1.35 "Avenir Next","Helvetica Neue",sans-serif;letter-spacing:.025em}
.overview-map-key span{display:flex;align-items:center;gap:9px}
.overview-map-key b{min-width:38px;padding:4px 6px;border-radius:999px;background:var(--signal,#e94727);color:#fff;text-align:center;font:800 9px/1 "Avenir Next","Helvetica Neue",sans-serif;letter-spacing:.05em}
.overview-map-wrap{width:100%!important;min-width:0!important;padding:10px!important;background:#d7cdbb!important;border:1px solid rgba(23,23,20,.16)!important;box-shadow:0 18px 42px rgba(37,29,19,.14)!important}
#overview-map{width:100%!important;min-height:clamp(360px,50dvh,520px)!important;border:7px solid #f8f5ed!important;background:#ded5c5!important}
.overview-map-caption{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 4px 2px;color:var(--gallery-muted);font:700 9px/1.3 "Avenir Next","Helvetica Neue",sans-serif;letter-spacing:.09em}
.overview-map-caption strong{color:var(--gallery-ink);font-weight:800}

/* 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{grid-template-columns:1fr!important;gap:24px!important;padding:38px 16px calc(104px + env(safe-area-inset-bottom))!important}
  .overview-map-copy{text-align:left!important}
  .overview-map-copy h2{font-size:clamp(35px,10vw,47px)!important}
  .overview-map-lede{margin-top:16px;font-size:13px}
  .overview-map-key{margin-top:20px}
  .overview-map-wrap{padding:7px!important}
  #overview-map{min-height:350px!important;border-width:5px!important}
  .overview-map-caption{padding:10px 3px 1px;font-size:8px}
  .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:none!important}
