/* A compact map-first guide, with one consistent frosted-toy material. */
@font-face{font-family:Nunito;src:url('vendor/Nunito-variable.ttf') format('truetype');font-weight:200 1000;font-display:swap}
:root{--font:Nunito,'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif;--toy-blue:#a9d5ec;--toy-mint:#c8e8da;--toy-peach:#ffc6aa;--toy-ink:#29445a;--frost-noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100'%3E%3Cfilter id='s'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.26' filter='url(%23s)'/%3E%3C/svg%3E")}
body,input,button,select{font-family:var(--font);font-weight:550}body{background:#203440}.header{min-height:74px;padding-block:6px}.header:before{background:#1b3244dd;box-shadow:0 3px 15px #0d263414}.town-brand img{width:68px;height:68px}.header .town-brand>.brand-word{font-size:32px;font-weight:620;color:#ffd6b9;letter-spacing:-.8px;text-shadow:0 2px 0 #ba8b79,0 4px 0 #775f66,1px 5px 7px #0e263633}.brand-word>span{color:#c5e9e6;text-shadow:0 2px 0 #80aeb5,0 4px 0 #507786,1px 5px 7px #0e263633}.brand-word small{color:#c7dbe5;font-size:11px;font-weight:650;letter-spacing:.08em;text-shadow:none}
/* Flags are tactile discs; language names remain available to assistive technology. */
.flag-circle{width:48px;height:52px;background:none;box-shadow:none;overflow:visible}.flag-circle img{display:block;width:100%;height:100%;filter:drop-shadow(0 3px 3px #0c273724)}#flag-trigger{padding:0;min-height:52px;width:52px;border:0;background:none;box-shadow:none;border-radius:50%}#flag-trigger:hover{box-shadow:none;filter:brightness(1.08)}#flag-trigger:active{box-shadow:none;transform:translateY(2px)}.flag-options{grid-template-columns:repeat(3,54px);min-width:0;gap:8px;padding:14px;border-radius:28px;right:-8px;background:#d9e8eced;background-image:var(--frost-noise)}.flag-options button{width:54px;min-height:58px;padding:3px;border-radius:50%;background:none}.flag-options .flag-circle{width:48px;height:52px}.flag-options button[aria-pressed=true]{background:#fff8;box-shadow:0 0 0 2px #efb590}.flag-code{display:none}
/* The town shares the opening with the title; the map starts directly underneath. */
.cover{display:grid;grid-template-columns:minmax(240px,.85fr) minmax(0,1.15fr);align-items:center;gap:18px;min-height:250px;padding:0 24px 10px;max-width:1320px}.cover-copy{order:0;text-align:left;margin:0;max-width:460px;padding:0;background:none!important}.cover h1{font-size:clamp(34px,3.5vw,48px);margin:0 0 10px}.cover-copy>p{font-size:17px;line-height:1.55;max-width:35ch;margin:0 0 16px}.cover .button{min-height:43px;padding:9px 20px;font-size:14px}.cover figure,#yatai-world{order:1;height:255px;max-width:660px;margin:0;aspect-ratio:auto}.cover figure:before{inset:10% 0;background:radial-gradient(ellipse,#a3d1d62b,transparent 68%)}
.explore.wrap{max-width:1680px;width:calc(100% - 32px);padding-top:0}.explore-title{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.explorer{grid-template-columns:340px minmax(0,1fr)}.explorer-sidebar{height:1050px;background:#324e60bd}.explorer-shell{border-radius:30px;background:#314d5fbb;box-shadow:inset 0 2px 1px #e8f7ff40,0 16px 50px #0e26342e}.explorer .map-panel{min-height:1050px;position:relative;background:#284553}.explorer #map{height:800px;min-height:760px;flex:1}.map-toolbar{position:absolute;top:12px;left:16px;right:auto;padding:0;min-height:0;z-index:4}.map-context{position:absolute;left:16px;top:68px;right:70px;padding:0;background:none;z-index:3;pointer-events:none;min-height:0}.map-context #map-zoom-hint{background:#263f50cf;padding:6px 10px;border-radius:15px;font-size:11px;backdrop-filter:blur(8px)}.north-arrow{display:none}.map-panel #map{border-radius:28px 28px 0 0}.maplibregl-ctrl-top-right .maplibregl-ctrl{margin-top:17px}.map-key{padding-block:8px}.map-footer{padding-block:3px 12px}.street-shelf{background:#2f4b5d}.street-heading{padding-top:9px}#stall-street{min-height:195px;padding-block:0}.street-shelf>p{margin:0;padding-top:2px}.street-stall{flex-basis:128px}.iso-plinth{background:color-mix(in srgb,var(--region) 60%,#607b8e);box-shadow:0 7px 10px #0c253c22}.iso-plinth:before{background:color-mix(in srgb,var(--region) 75%,white)}.iso-plinth:after{background:var(--region)}
.search-row{padding:16px 18px 8px;margin:0}.search-row input{font-size:15px;min-height:47px}.craving-menu{padding:5px 10px 6px}.craving-grid img{height:58px;width:66px}.craving-grid strong{font-size:12px;line-height:1.25}.filters{padding-inline:17px}.results-bar{padding:10px 18px}.area-tabs button{font-size:12px}.stall-row,.stall-row:hover{background-color:color-mix(in srgb,var(--region,#b8d5e8) 18%,#eff6fa);border:1px solid #e9f9ff;box-shadow:inset 0 3px 2px #fff,0 5px 0 color-mix(in srgb,var(--region,#b8d5e8) 50%,#8faabc),0 12px 16px #102b3824}.stall-name{font-size:21px}.stall-dish{font-size:14px}.stall-row:nth-child(n){background-color:color-mix(in srgb,var(--region,#b8d5e8) 18%,#eff6fa)}.miniature{position:relative}.miniature:before{content:'';position:absolute;left:4%;right:4%;top:11%;height:68%;border-radius:32%;background:radial-gradient(ellipse at 35% 20%,#fff9,var(--region,#b8d5e8));box-shadow:inset 0 3px 3px #fff8,0 4px 0 color-mix(in srgb,var(--region,#b8d5e8) 55%,#8ba7b8);opacity:.65;z-index:0}.miniature img,.miniature .jp-sign{position:relative;z-index:1}
/* Coloured frosted housings, a tiny LED, and a slow sparkle across the sugar surface. */
#top :is(.motion-button,.cover .button,.actions button,.actions a,.popup-actions button,.collection-actions button,.save-stall,.saved-filter,.view-switch button,.phrase-arrows button,.phrase-dialog-nav button,.phrase-voice,.modal-voice,.close-button,.map-toolbar button,.maplibregl-ctrl-group button,.discover-tabs button){--toy-tint:#c9e8e0;border:1px solid #f0fcffae;background-color:var(--toy-tint);background-image:var(--frost-noise),linear-gradient(145deg,#fff9,#ffffff24 45%,#86b9bd25);color:var(--toy-ink);box-shadow:inset 0 2px 2px #fff,inset 0 -4px 6px #64949c3b,0 5px 0 #7ba8ad,0 8px 13px #09253428;isolation:isolate}
#top :is(.cover .button,.actions .primary,.discover-tabs button[aria-pressed=true],.view-switch button[aria-pressed=true]){--toy-tint:#ffd1b6;box-shadow:inset 0 2px 2px #fff,inset 0 -4px 6px #b9785a25,0 5px 0 #bc927f,0 8px 13px #09253428}
#top :is(.phrase-voice,.modal-voice,.map-toolbar button,.phrase-arrows button,.phrase-dialog-nav button){--toy-tint:#bddded}
#top :is(.cover .button,.actions button,.popup-actions button,.collection-actions button,.phrase-voice,.modal-voice,.discover-tabs button)::after{content:'';position:absolute;right:8px;top:6px;width:3px;height:3px;border-radius:50%;background:#f8fff2;box-shadow:0 0 3px 1px #fff,0 0 6px 2px #b9fff599;pointer-events:none;animation:toy-led 7s ease-in-out infinite}
#top :is(.cover .button,.phrase-voice,.modal-voice,.discover-tabs button)::before{content:'';position:absolute;width:10px;height:10px;left:12%;top:10%;background:#fff;clip-path:polygon(50% 0,61% 38%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 38%);opacity:0;pointer-events:none;animation:toy-sparkle 9s ease-in-out infinite}
@keyframes toy-led{0%,100%{opacity:.35}50%{opacity:.9}}@keyframes toy-sparkle{0%,65%,100%{opacity:0;transform:scale(.4) rotate(0)}76%{opacity:.8;transform:scale(1) rotate(30deg)}87%{opacity:0;transform:scale(.3) rotate(60deg)}}
@media(hover:hover){#top :is(.cover .button,.actions button,.actions a,.popup-actions button,.collection-actions button,.save-stall,.phrase-voice,.modal-voice,.discover-tabs button):hover{filter:brightness(1.07);box-shadow:inset 0 2px 3px #fff,inset 0 -4px 8px #fff8,0 5px 0 #90b5bc,0 0 20px #baeef365;transform:translateY(-2px)}}
#top :is(.cover .button,.actions button,.popup-actions button,.collection-actions button,.save-stall,.phrase-voice,.modal-voice,.discover-tabs button):active{transform:translateY(3px) scale(.97);box-shadow:inset 0 0 14px #fff,0 1px 0 #75999c,0 0 25px #c8fff288}
#top :is(#stall-list,#collection-cards,.maplibregl-popup-content) .save-stall{display:grid;place-items:center;padding:0;width:46px;height:46px;min-width:46px;border-radius:50%;background-color:#edf3f8;--toy-tint:#edf3f8}.save-stall .gummy-heart{width:28px;height:28px;margin:0;display:block;object-fit:contain;filter:saturate(.22);opacity:.8;transition:transform .25s,filter .25s}.save-stall[aria-pressed=true]{background-color:#ffdadc!important}.save-stall[aria-pressed=true] .gummy-heart{filter:none;opacity:1;transform:scale(1.08)}.save-stall:hover .gummy-heart{transform:scale(1.12)}
/* Each instruction keeps its own gently breathing miniature, only while visible. */
.tips p{background-image:var(--frost-noise),linear-gradient(140deg,#d9edfa0d,#a3c8d009);border-color:#c6e2ed30}.rule-ink{transform-origin:50% 80%;animation:manners-breathe 6s ease-in-out infinite;animation-play-state:paused}.tips p[data-in-view=true] .rule-ink{animation-play-state:running}.tips p:nth-child(2n) .rule-ink{animation-delay:-2s}.tips p:nth-child(3n) .rule-ink{animation-delay:-4s}@keyframes manners-breathe{0%,100%{transform:translateY(0) rotate(-1deg) scale(1)}50%{transform:translateY(-5px) rotate(1deg) scale(1.025)}}
.tips strong{font-family:var(--display)}.tips p{font-size:16px}.collection-card{padding:22px}.collection-copy>p:not([lang]){font-size:15px}.collection-copy h3{font-size:25px}.phrase-line em{font-family:var(--font);font-weight:650}.sources{padding-top:16px}.directory-sources{margin-top:4px}
@media(min-width:1500px){.explorer{grid-template-columns:375px minmax(0,1fr)}.cover{min-height:265px}.cover figure,#yatai-world{height:270px}}
@media(max-width:1000px){.cover{grid-template-columns:.9fr 1.1fr;min-height:225px;padding-inline:8px}.cover figure,#yatai-world{height:220px}.cover h1{font-size:36px}.explorer{display:grid;grid-template-columns:1fr}.explorer-sidebar{display:contents;height:auto}.search-row{grid-row:1}.craving-menu{grid-row:2}.filters{grid-row:3}.diet-note{grid-row:4}.results-bar{grid-row:5}.map-panel{grid-row:6}.list-panel{grid-row:6}.explorer[data-view=map] .list-panel{display:none}.explorer[data-view=list] .list-panel{display:block}.explorer[data-view=map] .map-panel{display:flex}.explorer[data-view=list] .map-panel{display:none}.explorer .map-panel{min-height:850px}.explorer #map{height:620px;min-height:620px}.craving-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.craving-grid img{height:46px}.craving-menu{padding:0 12px}.craving-grid button{padding-block:0 7px}.area-tabs{flex-wrap:nowrap;overflow:auto;padding-bottom:5px}.area-tabs button{white-space:nowrap;flex-shrink:0}.search-row{padding:13px 18px 8px}.search-row label{font-size:0}.search-row input{margin:0}.results-bar{min-height:48px;padding-block:7px}.list-panel{height:650px}.view-switch{display:flex}.cover-copy>p{font-size:15px}.cover .button{font-size:13px}.map-context{top:61px}.map-key{padding-block:10px}}
@media(max-width:767px){.header{min-height:66px}.town-brand img{width:52px;height:52px}.header .town-brand>.brand-word{font-size:25px}.brand-word small{font-size:11px;margin-top:5px}.header-tools{gap:10px}.flag-circle{width:42px;height:46px}#flag-trigger{width:44px;min-height:46px}.flag-options{right:-42px}.cover{width:calc(100% - 32px);grid-template-columns:.9fr 1.1fr;gap:0;min-height:175px;padding:0 0 6px}.cover figure,#yatai-world{height:175px;max-width:none}.cover-copy{padding:0}.cover h1{font-size:29px;line-height:1.02;margin-bottom:8px}.cover-copy>p{font-size:13px;line-height:1.4;margin:0;max-width:19ch}.cover .button{display:none}.explore.wrap{width:calc(100% - 24px)}.explorer-shell{border-radius:26px}.search-row{padding:12px 14px 7px}.search-row input{min-height:44px;font-size:14px}.craving-grid{display:flex;overflow-x:auto;gap:6px;scrollbar-width:none}.craving-grid button{flex:0 0 65px;min-width:65px;gap:0;padding:0 2px 7px}.craving-grid img{height:38px;width:49px;margin:0}.craving-grid strong{font-size:11px;line-height:1.15;min-height:25px}.filters{padding-inline:12px}.area-tabs{gap:5px}.area-tabs button{font-size:11px;padding:7px 8px}.results-bar{padding:5px 14px 9px;font-size:12px;min-height:43px}.view-switch button{font-size:12px;min-height:35px;padding:6px 13px}.saved-filter{height:36px;min-width:38px;font-size:12px}.explorer .map-panel{min-height:760px}.explorer #map{height:520px;min-height:520px}.map-toolbar{top:12px;left:12px}.map-context{left:12px;top:59px}.map-context #map-zoom-hint{font-size:11px}.map-panel #map{border-radius:22px 22px 0 0}.map-key>span{font-size:11px}.map-key{gap:7px;padding-inline:12px}.map-footer{padding-inline:12px}.collection-card{padding:18px}.collection-copy h3{font-size:22px}.collection-copy>p:not([lang]){font-size:14px}.first-time{padding-top:35px}.phrase-guide{padding-top:35px}.tips p{font-size:15px}.sources{padding-top:10px}}
@media(max-width:360px){.header .town-brand>.brand-word{font-size:22px}.town-brand img{width:47px;height:47px}.header-tools{gap:7px}.cover h1{font-size:26px}.cover-copy>p{font-size:12px}.cover figure,#yatai-world{height:165px}.cover{min-height:165px}.flag-options{right:-38px}.area-tabs button{font-size:11px}}
:root[data-motion=paused] #top :is(.rule-ink,button:before,button:after,a:before,a:after){animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.rule-ink{transform:none!important}}

.map-toolbar{background:none!important}#map{background:#294759}.motion-button{border-radius:18px}
@media(max-width:1000px){.explorer{grid-template-columns:minmax(0,1fr)}.explorer-sidebar>*{min-width:0}.search-row label:first-child{min-width:0}.search-row input{min-width:0}.craving-grid,.area-tabs{max-width:100%}}
.area-tabs{scrollbar-width:none}.area-tabs::-webkit-scrollbar{display:none}
:root[data-motion=paused] button::before,:root[data-motion=paused] button::after,:root[data-motion=paused] a::before,:root[data-motion=paused] a::after{animation-play-state:paused!important}

#map{background:#294759!important}.map-panel:not(.is-map-ready) .maplibregl-canvas{opacity:0}
