/* Gumdrop: lantern-shaped controls, pastel surfaces, clear ink. */
:root{
 --bg:#fffaf5;--surface:#ffffff;--text:#293b35;--muted:#56665e;--line:#d8e5dc;
 --accent:#28624f;--soft:#edf7ef;--peach:#ffd3bd;--mint:#ccefdc;--lilac:#e6dcfa;--butter:#fff0b9;
 --gummy-ink:#293b35;--gummy-shadow:0 8px 0 #e2ebe3,0 13px 24px #294b3810,inset 0 2px 0 #ffffffd9;
 --clay-shadow:0 5px 0 #e6ece5,0 10px 20px #294b380b,inset 0 2px 0 #ffffffd9;
 --panel:28px;--radius:20px;
}
:root[data-theme=dark]{--bg:#202e29;--surface:#2a3b33;--text:#f4fff6;--muted:#c4d6c8;--line:#4d6858;--accent:#b5e8ca;--soft:#344b3d;--clay-shadow:0 5px 0 #16251e,0 10px 20px #0002,inset 0 2px 0 #ffffff12;--gummy-shadow:var(--clay-shadow)}
body{font-size:16px;line-height:1.55}button,input,select{font-weight:450}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--accent);outline-offset:5px}
.wrap{width:calc(100% - 64px);max-width:1280px;margin-inline:auto}
.header{min-height:88px;gap:22px;padding-block:15px}.header:before{background:var(--bg);box-shadow:0 4px 18px #294b3806}.header nav{gap:25px;font-size:14px}.header .brand{gap:12px}.header .brand>span{background:var(--peach);color:var(--gummy-ink);border:0;border-radius:19px 19px 22px 22px;box-shadow:0 4px 0 #edbba6;font-size:24px;line-height:1;padding:13px 10px}.header .brand strong{font-size:13px;line-height:1.15;font-weight:650;color:var(--text)}
.language-control select,.theme-button{border:1px solid var(--line);background:var(--surface);box-shadow:0 4px 0 var(--line);border-radius:22px;min-height:44px;font-size:13px}.language-control select{padding:10px 16px;max-width:190px}.theme-button{padding:8px 14px;color:var(--text)}
.cover{grid-template-columns:minmax(0,.85fr) minmax(0,1.3fr);gap:8px;min-height:0;padding-block:28px 32px;align-items:center;background:none}
.cover-copy{background:none;box-shadow:none;border-radius:0;padding:28px 0 36px 12px;position:relative}.cover h1{font-size:clamp(52px,5.6vw,80px);font-weight:620;letter-spacing:-.045em;line-height:1.03;margin:0 0 24px;max-width:8ch}.cover-copy>p{font-size:20px;line-height:1.5;max-width:25ch;margin:0 0 30px;color:var(--muted)}
.cover figure{box-shadow:none;border-radius:42% 42% 38% 38%;height:auto;aspect-ratio:1.3;margin:0;overflow:hidden;background:var(--bg)}.cover figure img{width:100%;height:100%;object-fit:contain;object-position:center;mix-blend-mode:multiply;max-height:none}.cover .button{background:var(--peach);color:var(--gummy-ink);box-shadow:0 5px 0 #edbba6,inset 0 2px 0 #ffe9dc;border-radius:24px;min-height:52px;padding:14px 24px;font-size:16px;font-weight:600}
:root[data-theme=dark] .cover figure{background:#fffaf5}:root[data-theme=dark] .cover figure img{mix-blend-mode:normal}
.explore{padding-top:32px}.explore-title{margin-bottom:24px}.explore-title h2,.section-heading h2,.first-time>h2{font-size:34px;font-weight:580;letter-spacing:-.025em}.craving-menu .section-heading{margin-bottom:14px}.craving-menu h3{font-family:var(--font);font-size:16px;font-weight:500;color:var(--muted)}
.craving-grid{gap:14px}.craving-grid button{background:var(--surface);border:1px solid var(--line);border-radius:25px;padding:14px 8px 16px;box-shadow:0 4px 0 var(--line);color:var(--text);transition:transform .18s ease,box-shadow .18s ease}.craving-grid img{width:78px;height:68px;object-fit:contain}.craving-grid span{font-size:14px;line-height:1.4;margin:6px 0 4px}.craving-grid strong{font-size:14px;line-height:1.35;font-weight:550}.craving-grid button[aria-pressed=true]{background:var(--mint);border-color:#9bc9ad;color:var(--gummy-ink);box-shadow:0 2px 0 #9bc9ad;transform:translateY(2px)}.craving-grid button[aria-pressed=true]:after{background:var(--gummy-ink);color:white;top:9px;right:9px}
.craving-menu{margin-bottom:30px}.area-tabs{gap:8px}.area-tabs button{background:transparent;border:1px solid transparent;box-shadow:none;border-radius:22px;padding:10px 13px;min-height:44px;font-size:14px;color:var(--text)}.area-tabs button.active{background:var(--mint);color:var(--gummy-ink);box-shadow:0 3px 0 #abd4b9}.area-tabs button:hover:not(.active){background:var(--soft)}.area-tabs small{font-size:12px}.search-row label{font-size:13px}.search-row input,.search-row select{background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:none;min-height:48px;font-size:14px}.search-row input{width:245px}.text-button{min-height:44px;font-size:14px}.results-bar{margin-top:14px;padding-bottom:12px;font-size:14px}
.save-stall,.saved-filter,.view-switch button,.actions button,.actions a,.collection-actions button{border:1px solid var(--line);background:var(--surface);box-shadow:0 3px 0 var(--line);border-radius:18px;min-height:44px;color:var(--text)}.saved-filter[aria-pressed=true],.save-stall[aria-pressed=true],.view-switch button.active{background:var(--mint);color:var(--gummy-ink);border-color:#abd4b9;box-shadow:0 3px 0 #abd4b9}.actions .primary,.actions button.primary{background:var(--mint);color:var(--gummy-ink);border-color:#abd4b9}.guide-helpers{margin:2px 0 18px}.guide-helpers,.saved-note{font-size:13px}
.explorer{grid-template-columns:380px minmax(0,1fr);gap:28px}.list-panel{height:920px;padding-right:5px}.area-context{padding:0 5px 18px}.area-context strong{font-size:16px}.area-context p{font-size:14px;color:var(--muted);line-height:1.5}#stall-list{gap:22px;padding:4px 6px 18px}.stall-row{padding:20px;background:var(--surface);border-radius:28px;box-shadow:var(--clay-shadow)}.stall-row.selected{background:var(--soft)}.stall-toggle{grid-template-columns:96px minmax(0,1fr) 14px;gap:14px}.stall-name{font-size:20px;line-height:1.2;font-weight:600;letter-spacing:-.02em}.stall-dish{font-size:14px;line-height:1.45;color:var(--muted)}.miniature .chibi-art{width:98px;height:91px;filter:drop-shadow(0 4px 2px #293b3515)}.jp-sign{box-shadow:none;border:0;background:var(--butter);color:var(--gummy-ink);border-radius:10px;font-size:11px;padding:5px 6px}.food-tag{background:none;padding:3px 4px;font-size:12px;color:var(--muted);border-radius:0}.food-tags{gap:3px}.row-food-save{gap:8px}.stall-meta{font-size:12px;gap:7px}.fact-button{background:var(--soft);border:0;border-radius:10px;color:var(--text);min-height:28px;padding:4px 7px}.mini-menu{background:var(--bg);padding:14px;border-radius:16px}.mini-menu small{font-size:14px}.station-info{background:var(--bg);font-size:14px;padding:12px;border-radius:16px}
.map-panel{min-height:920px;border-radius:30px;box-shadow:var(--gummy-shadow);background:var(--surface)}.map-toolbar{height:auto;min-height:56px;padding:8px 18px;gap:12px}.map-toolbar button,.map-toolbar label{min-height:40px;font-size:13px}.map-context{background:var(--soft);font-size:12px;padding:8px 18px}#map{height:440px}.street-shelf{background:var(--surface)}.street-heading{padding:18px 20px 8px}.street-heading strong{font-size:19px;font-weight:550}.street-heading button{background:var(--soft);box-shadow:none;border:1px solid var(--line);width:44px;height:44px}.street-shelf>p{font-size:12px;color:var(--muted)}.street-stall{border-radius:22px}.street-stall[aria-pressed=true]{background:var(--soft)}.iso-plinth{background:var(--mint);border-color:#abd4b9;box-shadow:0 5px 0 #abd4b9}.street-stall .jp-sign{background:var(--butter)}.street-stall>strong{font-size:13px}.map-key,.region-key{font-size:12px}.map-footer{font-size:11px}.map-loading{background:var(--soft)}
.discover{padding-top:72px}.discover-tabs{gap:10px;margin-top:22px}.discover-tabs button{background:var(--surface);box-shadow:none;border:1px solid var(--line);border-radius:23px;min-height:46px;padding:10px 18px;font-size:15px;color:var(--text)}.discover-tabs button[aria-pressed=true]{background:var(--lilac);color:var(--gummy-ink);border-color:#c5b4df;box-shadow:0 3px 0 #c5b4df}#collection-note{font-size:14px;color:var(--muted);margin:18px 0 28px;max-width:70ch}.collection-grid{gap:24px}.collection-card{border-radius:30px;background:var(--surface);box-shadow:var(--clay-shadow);padding:24px;gap:16px}.collection-art{background:var(--soft);border-radius:24px;padding:10px 8px}.collection-card:nth-child(2) .collection-art{background:var(--lilac)}.collection-card:nth-child(3) .collection-art{background:var(--peach)}.collection-model{width:180px;height:155px}.collection-area{color:var(--gummy-ink);font-size:13px}.collection-copy h3{font-size:23px;line-height:1.25}.collection-reason{font-size:13px;color:var(--muted)}.collection-copy>p:not([lang]){font-size:15px;line-height:1.55}.collection-copy>p[lang]{font-size:13px;color:var(--muted)}.collection-actions button{font-size:13px;padding:8px 10px}.collection-source{font-size:13px}
.first-time{padding-top:76px}.tips{gap:28px 36px;grid-template-columns:repeat(3,1fr);margin-top:30px}.tips p{padding:0 0 0 80px;border:0;font-size:15px;min-height:96px;line-height:1.6}.tips strong{font-size:18px;font-weight:550;line-height:1.25}.rule-ink{width:64px;height:74px;top:0}.rules-source{font-size:13px;margin-top:24px}
.phrase-guide{padding-block:76px 64px}.phrase-guide .section-heading{margin-bottom:12px}.phrase-guide .section-heading>img{display:none}.phrase-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.phrase-arrows{display:flex;gap:10px}.phrase-arrows button,.phrase-dialog-nav button{width:48px;height:48px;border:1px solid var(--line);border-radius:50%;background:var(--surface);box-shadow:0 4px 0 var(--line);font-size:22px;color:var(--text)}.phrase-arrows button:disabled,.phrase-dialog-nav button:disabled{box-shadow:none;opacity:.4;cursor:default}.phrase-guide .section-intro{font-size:15px;margin:0;color:var(--muted)}.phrase-position{font-size:13px;color:var(--muted);margin:14px 0 0;font-variant-numeric:tabular-nums}
.phrase-grid{display:flex;gap:22px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--line) transparent;padding:12px 2px 22px;margin:14px 0 0;scroll-padding-inline:2px;align-items:stretch}
.phrase-line{flex:0 0 calc((100% - 44px)/3);min-width:0;scroll-snap-align:start;position:relative;padding:28px 26px 32px;background:var(--mint);color:var(--gummy-ink);border:0;border-radius:30px;box-shadow:0 7px 0 #acd3b9,inset 0 2px 0 #ffffffc9;gap:12px;min-height:330px;align-self:stretch;justify-content:flex-start;text-decoration:none;transition:transform .18s ease}
.phrase-line:nth-child(3n+2){background:var(--peach);box-shadow:0 7px 0 #eab8a0,inset 0 2px 0 #ffffffc9}.phrase-line:nth-child(3n){background:var(--lilac);box-shadow:0 7px 0 #c6b5df,inset 0 2px 0 #ffffffc9}.phrase-line small{display:block;font-size:13px;font-weight:500;margin-bottom:14px;color:#40574a}.phrase-line [lang=ja],.phrase-line em{font-size:17px;line-height:1.55;color:var(--gummy-ink);font-weight:400}.phrase-line em{font-family:var(--font);margin-bottom:12px}.phrase-line strong{font-size:25px;font-weight:550;line-height:1.3;margin-top:auto;max-width:none;color:var(--gummy-ink)}.phrase-line:hover strong{text-decoration:none}.phrase-line:focus-visible{outline-color:var(--gummy-ink);outline-offset:-5px}
#phrase-dialog{max-width:740px;width:calc(100% - 32px);border:0;border-radius:34px;background:var(--surface);box-shadow:0 20px 80px #142b2440;max-height:90dvh}.dialog-language{margin-top:22px}.dialog-language select{border-radius:22px;border:1px solid var(--line);box-shadow:none;background:var(--soft);color:var(--text)}#phrase-content{padding:26px 36px 24px}.phrase-category{font-size:14px;color:var(--muted);margin:0 0 24px}#phrase-content h2,#phrase-content .phrase-romaji{font-size:26px;line-height:1.5;margin-bottom:16px}#phrase-content strong{font-size:36px;line-height:1.3;font-weight:550;margin-top:28px}.phrase-dialog-nav{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 36px 30px}.phrase-dialog-nav p{font-size:14px;color:var(--muted);margin:0;text-align:center}.close-button{border:1px solid var(--line);background:var(--surface);color:var(--text);width:44px;height:44px}
.sources details{background:var(--soft);border-radius:24px;padding:20px 24px}.sources summary{font-size:15px}.source-copy p,.sources details>p{font-size:15px;line-height:1.65;color:var(--muted);max-width:75ch}.footer{padding-block:25px 38px;font-size:14px}.source-line{font-size:12px;color:var(--muted);line-height:1.6}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.cover .button:hover{transform:translateY(-2px)}.craving-grid button:hover{transform:translateY(-2px)}.stall-row:hover,.collection-card:hover{transform:perspective(1000px) rotateX(.6deg) rotateY(-.6deg) translateY(-3px);box-shadow:var(--gummy-shadow)}.phrase-line:hover{transform:translateY(-3px)}button:active,.cover .button:active{transform:translateY(2px)}.stall-row:has(.fact:hover),.stall-row:has(.fact:focus-within),.stall-row:has(.fact.open){transform:none}}
@media(max-width:1150px){.header nav{gap:16px}.header{gap:16px}.explorer{grid-template-columns:340px minmax(0,1fr);gap:22px}.cover h1{font-size:62px}.cover-copy{padding-left:0}.cover-copy>p{font-size:18px}.search-row input{width:100%}.phrase-line{padding:24px 20px 28px}.phrase-line strong{font-size:23px}.collection-card{padding:20px}.tips{grid-template-columns:1fr 1fr}}
@media(min-width:768px) and (max-width:1000px){.explorer{display:block}.header nav a[href="#first-time"]{display:none}.map-panel{min-height:920px}.phrase-line{flex-basis:calc((100% - 22px)/2)}}
@media(max-width:767px){.wrap{width:calc(100% - 32px)}.header{min-height:78px;padding-block:14px;gap:10px}.header nav{display:none}.header .brand>span{font-size:21px;padding:11px 8px;border-radius:16px}.header .brand{gap:9px}.header .brand strong{font-size:12px}.language-control{margin-left:auto}.language-control select{max-width:169px;font-size:12px;padding-inline:13px}.cover{display:flex;flex-direction:column;gap:0;padding:12px 0 28px;align-items:stretch}.cover figure{order:0;width:100%;aspect-ratio:1.5;height:auto;border-radius:38%;margin:0}.cover-copy{order:1;margin:0;padding:12px 8px 0;z-index:auto}.cover h1{font-size:52px;line-height:1.06;letter-spacing:-.04em;max-width:none;margin-bottom:18px}.cover h1 br{display:none}.cover-copy>p{font-size:18px;max-width:29ch;margin-bottom:22px}.cover .button{font-size:15px;min-height:50px;padding:13px 22px}.explore{padding-top:30px}.explore-title h2,.section-heading h2,.first-time>h2{font-size:29px}.craving-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.craving-grid img{width:62px;height:58px}.craving-grid button{padding:10px 6px 14px;border-radius:22px}.craving-grid span{font-size:13px}.craving-grid strong{font-size:12px}.area-tabs{gap:4px}.area-tabs button{padding:10px 11px;font-size:13px}.area-tabs small{font-size:11px}.search-row{gap:10px}.search-row input,.search-row select{font-size:13px}.search-row label{font-size:12px}.results-bar{font-size:13px}.map-panel{min-height:890px;border-radius:26px}#map{height:420px}.map-toolbar{padding:8px 13px;gap:8px}.map-toolbar button,.map-toolbar label{font-size:12px}.list-panel{height:700px}.stall-toggle{grid-template-columns:92px minmax(0,1fr) 14px}.stall-row{padding:18px}.stall-name{font-size:19px}.miniature .chibi-art{width:92px;height:87px}.food-tag{font-size:12px}.discover,.first-time,.phrase-guide{padding-top:56px}.collection-grid{grid-template-columns:1fr;gap:22px}.collection-card{grid-template-columns:110px minmax(0,1fr);gap:16px;padding:18px}.collection-art{padding:12px 0;align-self:start}.collection-model{width:110px;height:125px}.collection-area{font-size:11px;padding:0 5px}.collection-copy h3{font-size:21px}.collection-copy>p:not([lang]){font-size:14px}.collection-actions{gap:7px}.collection-actions button{font-size:12px;padding:8px 10px}.collection-source{font-size:12px}.tips{grid-template-columns:1fr;gap:28px}.tips p{padding-left:80px;font-size:15px}.tips strong{font-size:17px}.phrase-heading{gap:10px;align-items:flex-end}.phrase-arrows{gap:8px}.phrase-arrows button{width:44px;height:44px;flex-shrink:0}.phrase-guide .section-heading{margin:0}.phrase-guide .section-intro{margin-top:14px;font-size:14px}.phrase-grid{gap:18px;overflow: auto;padding:12px 2px 20px}.phrase-line{flex-basis:calc(100% - 28px);padding:24px 24px 30px;min-height:335px;border-radius:28px}.phrase-line [lang=ja],.phrase-line em{font-size:17px}.phrase-line strong{font-size:25px}.phrase-line small{font-size:13px}.phrase-guide{padding-bottom:44px}#phrase-content{padding:24px 24px 20px}#phrase-content h2,#phrase-content .phrase-romaji{font-size:21px}#phrase-content strong{font-size:28px}.phrase-dialog-nav{padding:0 24px 25px;gap:14px}.phrase-dialog-nav button{flex-shrink:0}.sources details{padding:18px 20px}.source-copy p,.sources details>p{font-size:14px}.footer{font-size:13px}.source-line{font-size:12px}.street-heading{padding-inline:16px}.map-footer{font-size:11px}}
@media(max-width:360px){.header .brand strong{font-size:11px}.header .brand{gap:6px}.language-control select{max-width:145px;padding-inline:10px;font-size:11px}.cover h1{font-size:45px}.cover-copy>p{font-size:17px}.collection-card{grid-template-columns:90px minmax(0,1fr);gap:12px;padding:16px}.collection-model{width:90px;height:112px}.phrase-line{padding-inline:20px}.phrase-line strong{font-size:23px}.phrase-heading h2{font-size:27px}.phrase-arrows{gap:6px}.phrase-arrows button{width:42px;height:44px}.phrase-heading{align-items:center}.map-toolbar{flex-wrap:wrap}.map-toolbar label{margin-right:auto}.craving-grid strong{font-size:11px}.craving-grid span{font-size:12px}.stall-toggle{grid-template-columns:80px minmax(0,1fr) 12px}.miniature .chibi-art{width:80px}}
@media(prefers-reduced-motion:reduce){.cover-copy,.cover figure{animation:none}.phrase-grid{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.phrase-line:hover,.stall-row:hover,.collection-card:hover{transform:none!important}}
@media print{.phrase-grid{display:grid!important;grid-template-columns:1fr 1fr;overflow:visible!important;gap:20px;padding:0}.phrase-line{break-inside:avoid;min-height:0;box-shadow:none;border:1px solid #888;background:white!important;color:black!important;padding:18px}.phrase-line strong,.phrase-line em,.phrase-line [lang=ja]{color:black!important}.phrase-arrows,.phrase-position{display:none}.phrase-guide{padding-block:20px}.header{position:static}.sources details{background:none}.stall-row,.collection-card{box-shadow:none}}
.cover-copy:before,.cover-copy:after{display:none}
:root[data-theme=dark] .region-shape{filter:none}
@media(max-width:360px){.header .brand strong{max-width:68px}.header .brand>span{font-size:19px;padding:10px 7px}.language-control select{max-width:136px}.header{flex-wrap:nowrap}}

.collection-art{background:var(--mint)}
.phrase-arrows[hidden]{display:none}
