@charset "UTF-8";
/* 最初の描画から小人が待ち時間を案内し、描画済みの町へつなぐ。 */
#town-loader{background:radial-gradient(ellipse at 50% 46%,#fff9ea 0,#f4efdf 68%);opacity:1;transition:opacity .22s ease-out;touch-action:none}
#town-loader.is-leaving{opacity:0}
.loading-scene{position:relative;display:flex;flex-direction:column;align-items:center;width:min(340px,calc(100vw - 48px));padding-top:30px;transform:translateY(-12px);user-select:none}
.loading-bubble{position:relative;width:100%;padding:25px 16px 23px;border:2px solid #43535c;border-radius:2px 1px 3px 1px;background:#f7f8f5;box-shadow:4px 5px 0 #7a919a,5px 6px 0 1px #43535c;text-align:center;z-index:1}
.loading-bubble:after{content:"";position:absolute;left:50%;bottom:-9px;width:14px;height:14px;transform:translateX(-50%) rotate(45deg);background:#f7f8f5;border-right:2px solid #43535c;border-bottom:2px solid #43535c}
.loading-speaker{position:absolute;left:12px;top:-25px;min-width:74px;padding:4px 14px;border:2px solid #43535c;background:#64b8db;color:#fffef4;box-shadow:2px 3px 0 #79919a;font-size:16px;font-weight:700;line-height:1.5;transform:rotate(-2deg)}
.loading-bubble p{font-size:clamp(17px,4.8vw,21px);font-weight:700;line-height:1.6;white-space:nowrap;letter-spacing:.015em}
.loading-bubble p span{opacity:0;animation:loading-letter .01s steps(1,end) forwards;animation-delay:calc(.12s + var(--letter)*.055s)}
.loading-gnome{display:block;position:relative;z-index:1;width:144px;height:180px;object-fit:contain;margin-top:27px;transform-origin:50% 100%;animation:loading-breathe 2.4s ease-in-out infinite}
.loading-shadow{display:block;width:91px;height:11px;margin-top:-5px;border-radius:50%;background:#465e5324;filter:blur(2px)}
@keyframes loading-letter{to{opacity:1}}
@keyframes loading-breathe{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-3px) rotate(1deg)}}
@media(max-height:460px){.loading-scene{transform:none}.loading-gnome{width:96px;height:120px;margin-top:20px}.loading-bubble{padding:18px 14px}.loading-shadow{width:65px}}
@media(prefers-reduced-motion:reduce){#town-loader{transition:none}.loading-gnome,.loading-bubble p span{animation:none;opacity:1}}
/* ENTERで町に入ると、導入と同じ立体ロゴがそっと上がる。 */
.town-logo{position:fixed;z-index:12;top:max(22px,env(safe-area-inset-top));left:max(28px,env(safe-area-inset-left));width:clamp(148px,13vw,194px);pointer-events:none;user-select:none;opacity:0;visibility:hidden;transform:translateY(18px);transition:opacity .85s ease-out,transform .85s cubic-bezier(.2,.7,.2,1)}
.playing .town-logo{opacity:1;visibility:visible;transform:translateY(0)}
@media(prefers-reduced-motion:reduce){.town-logo{transition:none}}
.town-logo img{display:block;width:100%;height:auto;pointer-events:none}
@media(max-width:820px){.town-logo{top:max(18px,env(safe-area-inset-top));left:max(18px,env(safe-area-inset-left));width:120px;max-width:calc(100vw - 212px)}}
@media(max-width:350px){.town-logo{top:max(15px,env(safe-area-inset-top));left:max(15px,env(safe-area-inset-left))}}
:root{--paper:#f4efdf;--ink:#24433f;--muted:#616c60;--red:#b54330;--line:#c9cebc;--serif:"Yu Mincho","Hiragino Mincho ProN",Georgia,serif;--sans:"Yu Gothic","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;color-scheme:light;font-family:var(--sans);color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button,a{touch-action:manipulation}button{border:0;background:none}button:disabled{cursor:wait;opacity:.6}button:focus-visible,a:focus-visible{outline:3px solid var(--red);outline-offset:5px}button:hover:not(:disabled),a:hover{filter:brightness(.9)}[hidden]{display:none!important}h1,h2,h3,p{margin:0}h1,h2,h3,.primary-button{word-break:keep-all;overflow-wrap:anywhere;text-wrap:pretty}p{line-height:1.9}svg{fill:currentColor}button i,a i{font-style:normal}h2{font-family:var(--serif);font-weight:600}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:8px;left:8px;z-index:100;background:var(--paper);padding:15px;transform:translateY(-150%)}.skip-link:focus{transform:none}
.masthead{position:absolute;z-index:12;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:28px 3.8vw;pointer-events:none}.masthead>*{pointer-events:auto}.wordmark{display:flex;align-items:center;gap:7px;min-height:44px}.wordmark svg{width:33px;height:39px}.wordmark span{font-family:Georgia,serif;font-size:14px;line-height:.94;letter-spacing:1.8px}.wordmark b{font-size:23px;letter-spacing:2.7px;font-weight:500}.masthead nav{display:flex;align-items:center;gap:18px}.text-button{display:flex;align-items:center;gap:24px;font-size:13px;min-height:44px;padding:0 8px;border-bottom:1px solid var(--ink)}.text-button span{font-size:22px}.round-button{width:46px;height:46px;border:1px solid var(--ink);border-radius:50%;background:var(--paper);font:24px Georgia,serif;display:grid;place-items:center}.kicker{font-size:11px;letter-spacing:.19em;font-weight:600}.fine{font-size:11px;color:var(--muted);line-height:1.7}.primary-button{display:flex;justify-content:space-between;align-items:center;gap:28px;border-radius:2px 24px 24px 2px;min-height:56px;padding:12px 22px;background:var(--ink);color:var(--paper);font-size:14px;letter-spacing:.04em;text-align:left}.primary-button i{font-size:24px;font-weight:400}.small-button{border-bottom:1px solid var(--ink);min-height:44px;font-size:12px;padding:6px 12px}
#world{position:absolute;inset:0 0 auto;height:100svh;min-height:680px;background:#f4efdf;pointer-events:none}#world:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--paper),#f4efdfbb 28%,#f4efdf00 70%)}#world canvas{display:block;width:100%;height:100%;position:relative;z-index:1;touch-action:none;outline:none}.enhanced #world{position:fixed;height:100dvh;min-height:0;background:#c4d9c5;pointer-events:auto}.enhanced #world:after{display:none}#hero{position:relative;min-height:680px;height:100svh;overflow:hidden}.hero-copy{position:absolute;top:50%;left:7%;transform:translateY(-48%);z-index:2}.hero-copy h1{font-family:var(--serif);font-size:clamp(58px,6.15vw,100px);font-weight:600;line-height:1.34;letter-spacing:-.075em;margin:24px 0 22px}.hero-copy h1 span{padding-left:1.1em}.hero-description{font-size:13px;letter-spacing:.1em;margin-bottom:33px}.hero-copy .primary-button{width:245px}.hero-copy .fine{min-height:20px;margin-top:12px}.intro-caption{position:absolute;right:6%;bottom:12%;display:flex;align-items:center;gap:14px;font-family:var(--serif);font-size:15px;line-height:1.6}.sun{font-size:35px}.edition{position:absolute;bottom:26px;left:3.8vw;font:9px Georgia,serif;letter-spacing:.2em}.enhanced:not(.reading){height:100dvh;overflow:hidden}.enhanced #hero{height:100dvh;min-height:0;pointer-events:none}.enhanced .hero-copy{pointer-events:auto}.enhanced #guide{display:none}.playing #hero{display:none}.enhanced.reading{overflow:auto;height:auto}.reading #world,.reading #hero,.reading #walk-ui{display:none!important}.reading .masthead{position:relative;background:var(--paper)}.reading #guide{display:block}.reading #guide-open{display:none}
#walk-ui{position:fixed;inset:0;pointer-events:none;z-index:4}#walk-ui button,#walk-ui a,#joystick{pointer-events:auto}.place-label{position:absolute;top:110px;left:3.8vw;display:flex;align-items:center;gap:9px;font-size:12px;text-shadow:0 1px 4px var(--paper)}.place-dot{width:6px;height:6px;border-radius:50%;background:var(--red)}.passport-button{position:absolute;top:112px;right:3.8vw;display:flex;align-items:center;gap:13px;font-size:11px;padding:6px 12px 6px 14px;border-radius:30px;background:var(--paper);box-shadow:0 2px 1px #24433f25}.passport-label{font-size:12px}.stamp-dots{display:flex;gap:4px}.stamp-dots i{width:28px;height:28px;border:1px dashed #9caa98;border-radius:50%;display:grid;place-items:center;font:10px Georgia,serif}.stamp-dots i.stamped{border:1px solid var(--red);background:var(--red);color:var(--paper);font-style:normal}.hotspot{position:absolute;top:0;left:0;display:flex;align-items:center;gap:10px;min-height:46px;background:var(--paper);border:1px solid #43594c;border-radius:25px;padding:6px 15px 6px 7px;box-shadow:0 3px 0 #24433f40;font-size:12px;white-space:nowrap;will-change:transform}.hotspot:after{content:"";position:absolute;left:50%;bottom:-8px;width:1px;height:7px;background:var(--ink)}.shop-number{width:29px;height:29px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;font:11px Georgia,serif}.hotspot.visited .shop-number{color:var(--red);border-color:var(--red)}.hotspot i{font-style:normal;font-size:18px}.walk-message{position:absolute;left:50%;bottom:31px;transform:translateX(-50%);display:flex;align-items:center;gap:9px;min-height:48px;padding:0 18px 0 2px;border-radius:30px;background:var(--paper);font-size:12px;white-space:nowrap;box-shadow:0 2px 1px #24433f20}#camera-reset{position:absolute;right:3.8vw;bottom:31px}#cancel-route{position:absolute;bottom:91px;left:50%;transform:translateX(-50%);background:var(--paper);border-radius:22px;border:0}#near-action{position:absolute;bottom:95px;left:50%;transform:translateX(-50%);min-width:200px}#joystick{display:none;position:absolute;left:26px;bottom:39px;width:100px;height:100px;background:#f4efdf88;border:1px solid #24433f66;border-radius:50%;touch-action:none}#joystick-thumb{position:absolute;top:50%;left:50%;width:42px;height:42px;border-radius:50%;background:var(--paper);box-shadow:0 2px 0 #24433f40;transform:translate(-50%,-50%)}.idle-hint{position:absolute;bottom:110px;left:3.8vw;max-width:300px;padding:20px 30px 18px 20px;background:var(--paper);border:1px solid var(--line);pointer-events:auto;font-size:12px}.idle-hint a{display:inline-block;border-bottom:1px solid var(--ink);min-height:44px;padding-top:12px}.idle-hint button{position:absolute;top:0;right:0;width:36px;height:36px;font-size:20px}
#guide{position:relative;background:var(--paper);padding:100px 8% 0}.guide-intro{display:grid;grid-template-columns:1fr 1fr;gap:20px 12%;align-items:end}.guide-intro .kicker{grid-column:1/-1}.guide-intro h2{font-size:clamp(32px,4vw,58px);line-height:1.55}.guide-intro>div{font-size:13px;padding-bottom:7px}.guide-intro>div p+p{margin-top:14px}.table-spread{margin:58px -3% 85px}.table-spread img{width:100%;height:auto;display:block}.table-spread figcaption{font-size:11px;margin:12px 3% 0;letter-spacing:.08em}.restaurant{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:12%;padding:64px 0 70px}.restaurant-heading{position:relative;padding:15px 0 15px 78px}.large-number{position:absolute;top:10px;left:0;font:54px/1 Georgia,serif;color:#8caa9b}.restaurant-heading>p{font-size:12px}.restaurant-heading h2{font-size:30px;margin:14px 0 12px}.shop-roman{font:10px Georgia,serif;letter-spacing:.17em}.restaurant-content h3{font-size:17px;font-weight:600;line-height:1.8;margin-bottom:15px}.restaurant-content p{font-size:13px;line-height:2.1;max-width:36em}.restaurant dl{font-size:12px;margin:22px 0 14px}.restaurant dl>div{border-top:1px solid var(--line);padding:10px 0;display:flex;gap:24px}.restaurant dt{flex-shrink:0;width:82px;font-size:11px;color:var(--muted)}dd{margin:0;line-height:1.8}.visit-button{min-height:48px;border-bottom:1px solid var(--ink);display:flex;gap:40px;align-items:center;font-size:13px;padding:8px 4px}.visit-button span{font-size:22px}.guide-footer{border-top:1px solid var(--ink);display:flex;align-items:center;gap:30px;padding:60px 0 70px}.guide-footer h2{font-size:25px;margin-bottom:15px}.guide-footer p{font-size:11px}.guide-footer>span:last-child{margin-left:auto;align-self:flex-end;text-align:right;font:9px/1.8 Georgia,serif;letter-spacing:.15em}
dialog{border:0;background:var(--paper);color:var(--ink);padding:0;max-width:min(760px,calc(100vw - 40px));max-height:calc(100dvh - 48px);overflow:auto;box-shadow:0 20px 100px #193e3345}dialog::backdrop{background:#183c3555;backdrop-filter:blur(4px)}.dialog-close{position:absolute;top:12px;right:12px;border:1px solid #68766a55;border-radius:50%;width:44px;height:44px;font:30px Georgia,serif;background:var(--paper);z-index:2}.dialog-close:hover{background:#fff}.dish-art{display:block;width:100%;height:auto;object-fit:contain}.shop-card-content{padding:32px 46px 34px}.shop-card-content h2{font-size:32px;margin:10px 0 14px}.shop-card-content>p:not(.kicker,.fine){font-size:13px;line-height:2;max-width:38em}.dish-caption{padding:16px 0 20px;margin-top:10px;display:flex;justify-content:space-between;align-items:center;gap:15px;border-top:1px solid var(--line)}.dish-caption span{font-size:11px;color:var(--muted)}.dish-caption strong{font-weight:500;font-size:13px}.shop-card-content .primary-button{width:100%}.shop-card-content .fine{margin-top:12px}.shop-card-content .primary-button.tasted{background:var(--red)}#passport-dialog,:is(#help-dialog,#guide-dialog){padding:44px 46px;width:660px;text-align:center}#passport-dialog h2,:is(#help-dialog,#guide-dialog) h2{font-size:34px;margin:16px 0 12px}#passport-dialog>p:not(.kicker,.fine){font-size:13px}.passport-stamps{display:flex;justify-content:center;gap:35px;margin:35px 0}.passport-stamps button{display:flex;flex-direction:column;align-items:center;gap:10px;min-width:116px;padding:0}.passport-stamps button>span{display:grid;place-items:center;width:95px;height:95px;border:1px dashed #9ca794;border-radius:50%;font:36px Georgia,serif;color:#96a08e;position:relative}.passport-stamps button>span.stamped{border:3px double var(--red);color:var(--red);transform:rotate(-9deg)}.passport-stamps button>span.stamped:after{content:"VISITED";position:absolute;bottom:15px;font:8px Georgia,serif;letter-spacing:.16em}.passport-stamps b{font-size:12px;font-weight:500}.passport-stamps small{font-size:10px;color:var(--muted)}#completion-note{margin:0 0 25px}#passport-dialog .primary-button{width:100%;margin-top:20px}#passport-dialog .fine{margin-top:18px}:is(#help-dialog,#guide-dialog){text-align:left}.help-list{margin-top:35px}.help-list>div{display:grid;grid-template-columns:85px 1fr;gap:15px;border-top:1px solid var(--line);padding:16px 0;font-size:12px}.help-list dt{font-weight:600}:is(#help-dialog,#guide-dialog) .primary-button{width:100%;margin-top:25px}
@media(hover:none),(pointer:coarse){#joystick{display:block}.hotspot{min-height:48px}}@media(min-width:821px){#shop-dialog{width:640px}}
@media(max-width:820px){.masthead{padding:18px 22px}.wordmark span{font-size:11px}.wordmark b{font-size:19px}.wordmark svg{width:27px;height:35px}.masthead nav{gap:12px}.text-button{font-size:11px;gap:15px}.round-button{width:44px;height:44px}.hero-copy{top:130px;left:8%;transform:none}.hero-copy h1{font-size:66px;line-height:1.28;margin:17px 0}.hero-description{font-size:12px;margin-bottom:24px}.hero-copy .primary-button{min-height:52px;width:226px}.hero-copy .kicker{font-size:10px;letter-spacing:.08em}.intro-caption{right:6%;bottom:9%;font-size:12px}.edition{font-size:8px;left:22px;bottom:18px}.place-label{top:90px;left:22px;font-size:11px}.passport-button{top:90px;right:22px;padding:5px 8px;gap:7px}.passport-label{display:none}.stamp-dots i{width:24px;height:24px;font-size:9px}.hotspot{font-size:11px;gap:7px;padding:5px 12px 5px 5px;min-height:44px}.shop-number{width:25px;height:25px}.walk-message{bottom:22px;font-size:11px;max-width:calc(100% - 170px);white-space:normal;line-height:1.5;padding-right:12px;left:50%;min-width:170px}.walk-message span:last-child{max-width:175px}#camera-reset{right:20px;bottom:27px}#joystick{width:90px;height:90px;left:19px;bottom:92px}#cancel-route{bottom:85px;left:auto;right:18px;transform:none;font-size:11px}#near-action{bottom:105px;min-width:180px;left:auto;right:18px;transform:none}.idle-hint{left:20px;bottom:205px;max-width:265px}.guide-intro{grid-template-columns:1fr;gap:20px}.guide-intro h2{font-size:40px}.guide-intro .kicker{grid-column:auto}.guide-intro>div{font-size:12px}#guide{padding:55px 7% 0}.table-spread{margin:35px -8.1% 45px;overflow:hidden}.table-spread img{min-width:650px;width:130%;max-width:none;transform:translateX(-12%)}.table-spread figcaption{margin-left:7%;font-size:10px}.restaurant{grid-template-columns:1fr;gap:28px;padding:35px 0 42px}.restaurant-heading{padding:8px 0 8px 64px}.large-number{font-size:44px}.restaurant-heading h2{font-size:27px;margin:10px 0}.restaurant-heading>p{font-size:10px}.restaurant-content h3{font-size:16px}.restaurant-content p{font-size:12px}.restaurant dl>div{gap:12px}.restaurant dl{font-size:11px}.guide-footer{flex-wrap:wrap;gap:14px;padding:40px 0}.guide-footer h2{font-size:19px}.guide-footer>span:last-child{width:100%;margin-top:8px}.guide-footer p{font-size:10px}.guide-footer>div{flex:1}.dish-art{height:auto}.shop-card-content{padding:24px 25px}.shop-card-content h2{font-size:28px}.shop-card-content>p:not(.kicker,.fine){font-size:12px}.dish-caption{display:block;padding:15px 0}.dish-caption span{display:block;margin-bottom:6px}.dish-caption strong{font-size:12px}dialog{max-width:calc(100vw - 28px);max-height:calc(100dvh - 28px)}#passport-dialog,:is(#help-dialog,#guide-dialog){padding:40px 24px 24px}#passport-dialog h2,:is(#help-dialog,#guide-dialog) h2{font-size:28px}#passport-dialog .kicker,:is(#help-dialog,#guide-dialog) .kicker{font-size:9px}.passport-stamps{gap:14px;margin:25px 0}.passport-stamps button{min-width:0;flex:1}.passport-stamps button>span{width:72px;height:72px;font-size:28px}.passport-stamps button>span.stamped:after{bottom:9px;font-size:6px}.passport-stamps b{font-size:10px}.passport-stamps small{font-size:9px}.help-list>div{grid-template-columns:63px 1fr;gap:12px;font-size:11px}.dialog-close{top:8px;right:8px}}
@media(max-width:520px){.hero-copy{top:115px}.hero-copy h1{font-size:54px}.hero-description{font-size:11px}.intro-caption{bottom:15%;right:7%}.sun{font-size:28px}.hero-copy .primary-button{width:213px}.enhanced #hero .hero-copy{z-index:2}.hero-copy .fine{font-size:9px}.hero-copy .kicker{font-size:9px}}
@media(max-height:680px){.hero-copy{top:105px;transform:none}.hero-copy h1{font-size:clamp(42px,5.6vw,70px);margin:12px 0}.hero-description{margin-bottom:16px}.hero-copy .primary-button{min-height:48px}.intro-caption{bottom:10%}.dish-art{height:auto}.shop-card-content{padding-top:18px;padding-bottom:18px}.shop-card-content h2{margin:8px 0}.shop-card-content .fine{margin-top:8px}.shop-card-content .primary-button{min-height:48px}.dish-caption{padding:10px 0}.passport-stamps{margin:20px 0}#passport-dialog,:is(#help-dialog,#guide-dialog){padding-top:33px}.idle-hint{bottom:195px}.place-label,.passport-button{top:82px}}
@media(max-width:350px){.hero-copy{left:7%;top:105px}.hero-copy h1{font-size:44px}.hero-copy .kicker{font-size:8px}.hero-description{font-size:10px}.hero-copy .primary-button{min-height:46px;width:192px;font-size:12px}.masthead{padding:14px 17px}.masthead nav{gap:7px}.text-button{font-size:10px;gap:8px}.place-label{left:17px}.passport-button{right:17px}.guide-footer h2{font-size:17px}.hotspot{font-size:10px}.hotspot .shop-number{display:none}.walk-message{min-width:155px;font-size:10px;bottom:18px}.passport-stamps{gap:9px}.passport-stamps button>span{width:66px;height:66px}.shop-card-content{padding:20px}.shop-card-content h2{font-size:24px}#passport-dialog,:is(#help-dialog,#guide-dialog){padding-left:19px;padding-right:19px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.playing:not(.reading) .masthead .wordmark{padding:7px 10px;border-radius:8px;background:#f4efdfed}
.playing:not(.reading) .masthead .text-button{padding:0 16px;border:1px solid #24433f35;border-radius:24px;background:#f4efdfed}
.playing .place-label{padding:5px 10px;border-radius:18px;background:#f4efdfed;text-shadow:none}
.enhanced #load-note{display:table;padding:4px 8px;border-radius:4px;background:#f4efdfdf;font-size:12px;color:var(--ink);letter-spacing:0;max-width:290px}
@media(max-width:820px){.playing:not(.reading) .masthead .wordmark{padding:6px 8px}.playing:not(.reading) .masthead .text-button{padding:0 11px}.enhanced #load-note{font-size:11px;max-width:225px}}
@media(min-width:821px){.walk-message{left:3.8vw;transform:none;width:300px;max-width:calc(100vw - 140px);padding:6px 14px 6px 8px;gap:8px;border-radius:24px;white-space:normal;line-height:1.6}}
/* 町とキャラクターを主役にする、最小の案内。 */
@font-face{font-family:"Town Rounded";src:url("../fonts/town-rounded-500.ttf") format("truetype");font-style:normal;font-weight:400 600;font-display:swap}
@font-face{font-family:"Town Rounded";src:url("../fonts/town-rounded-700.ttf") format("truetype");font-style:normal;font-weight:700 900;font-display:swap}
:root{--sans:"Town Rounded","Hiragino Maru Gothic ProN","BIZ UDPGothic",Meiryo,sans-serif;--serif:var(--sans);font-family:var(--sans)}
body,button,h1,h2,h3,p,dl{font-family:var(--sans)}
h2,h3{font-weight:700}
.masthead,.reading .masthead{position:fixed;inset:24px 28px auto auto;display:block;padding:0;background:none;z-index:12}
.masthead nav{display:block}
:is(#help-open,#guide-open,#bgm-toggle){width:54px;height:54px;border:3px solid #5d503d;border-radius:48% 52% 45% 55%;background:#fff1d2;color:#4b4836;box-shadow:0 4px 0 #594f3b50;font:700 29px/1 var(--sans);transform:rotate(4deg)}
:is(#help-open,#guide-open,#bgm-toggle):hover{transform:rotate(-4deg)}
#hero,.enhanced #hero{min-height:0;height:100svh}
body:not(.enhanced):not(.preparing) #hero-title{position:absolute;top:24%;left:50%;width:auto;height:auto;clip:auto;overflow:visible;white-space:nowrap;transform:translateX(-50%);font-size:clamp(30px,6vw,62px);font-weight:700;letter-spacing:.04em;text-shadow:0 2px 12px #fff1d2}
.enter-panel{position:absolute;z-index:2;left:50%;bottom:12%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:15px;min-width:230px;pointer-events:auto}
.enter-button{position:relative;width:260px;min-height:80px;padding:14px 35px;border:3px solid #5d503d;border-radius:13px 17px 12px 15px;background:#ffd44f;color:#3e3524;box-shadow:inset 0 2px 0 #fff4b8,0 7px 0 #af7d25,0 12px 18px #31443735;font-size:31px;font-weight:700;line-height:1.3;letter-spacing:.06em;white-space:nowrap;transform:rotate(-1.5deg);transition:transform .15s,box-shadow .15s,background-color .15s}
.enter-button:before,.enter-button:after{content:"";position:absolute;top:50%;width:7px;height:7px;margin-top:-3px;border-radius:50%;background:#967041;box-shadow:inset 0 1px 1px #49392455}
.enter-button:before{left:15px}.enter-button:after{right:15px}
.enter-button:hover:not(:disabled){background:#ffe27a;transform:translateY(-2px) rotate(-1deg);filter:none}
.enter-button:focus-visible{outline:3px solid #fff9e8;outline-offset:5px}
.enter-button:active:not(:disabled){transform:translateY(4px) rotate(-1deg);box-shadow:inset 0 2px 0 #fff4b8,0 3px 0 #af7d25}
.enter-button:disabled{opacity:.65}
#load-note,.enhanced #load-note{display:block;max-width:290px;margin:0;padding:4px 10px;background:#fff1d2e8;border-radius:8px;color:#4b4836;font-size:12px}
#load-note:empty{display:none}
#walk-ui,#passport-dialog{display:none!important}
#speech-layer{position:fixed;inset:0;z-index:8;pointer-events:none}
#speech-bubble{position:absolute;left:50%;top:auto;bottom:max(48px,9vh);transform:translateX(-50%);width:min(700px,calc(100vw - 84px));max-width:none;min-height:128px;padding:31px 58px 30px;border:2px solid #43535c;border-radius:2px 1px 3px 1px;background:#f7f8f5;color:#252d30;box-shadow:5px 6px 0 #7a919a,6px 7px 0 1px #43535c;pointer-events:none}
#speech-bubble:after{content:none}
#speech-speaker{position:absolute;left:-25px;top:-63px;display:grid;place-items:center;min-width:155px;min-height:68px;padding:11px 23px;border:2px solid #43535c;border-radius:1px;background:#64b8db;color:#fffef4;box-shadow:4px 5px 0 #79919a,5px 6px 0 1px #43535c;font-size:25px;font-weight:700;line-height:1.4;letter-spacing:.04em;text-shadow:2px 2px 0 #385767;transform:rotate(-.8deg)}
#speech-text{position:relative;z-index:1;font-size:22px;font-weight:700;line-height:1.55;letter-spacing:.02em;white-space:pre-line;overflow-wrap:anywhere}
#speech-text>.speech-phrase{display:inline-block;white-space:nowrap}
#speech-text .speech-letter{display:inline;white-space:pre;transition:none}
#speech-next{position:absolute;right:-23px;bottom:-35px;width:64px;height:68px;padding:0;border:2px solid #43535c;border-radius:2px;background:#f7f8f5;box-shadow:4px 5px 0 #7a919a,5px 6px 0 1px #43535c;transform:rotate(-1.5deg);pointer-events:auto;touch-action:manipulation}
#speech-next:before,#speech-next:after{content:"";position:absolute;top:50%;left:50%;clip-path:polygon(0 0,100% 50%,0 100%);transform:translate(-43%,-50%);border-radius:3px}
#speech-next:before{width:29px;height:41px;background:#43535c}
#speech-next:after{width:24px;height:34px;background:#64b8db}
#speech-next:hover:not(:disabled){filter:none;background:#fff;transform:rotate(-1.5deg) translateY(-2px)}
#speech-next:active:not(:disabled){transform:rotate(-1.5deg) translate(2px,3px);box-shadow:2px 2px 0 #7a919a,3px 3px 0 1px #43535c}
.dialog-open #speech-layer{visibility:hidden}
dialog{border:3px solid #6e6248;border-radius:22px;box-shadow:0 14px 65px #1d34264d;background:#fff5df}
dialog::backdrop{background:#19362d44;backdrop-filter:blur(3px)}
.dialog-close{border:2px solid #7a6c50;background:#fff1d2;font-family:var(--sans)}
.primary-button{border-radius:14px;background:#567563;font-weight:700}
.dish-art{border-radius:0}
:is(#help-dialog,#guide-dialog){width:790px;padding:36px 34px 30px}
:is(#help-dialog,#guide-dialog) h2{font-size:30px;margin:0 55px 18px 0}
.help-list{margin:0 0 26px}.help-list>div{grid-template-columns:60px 1fr;gap:14px;font-size:13px;line-height:1.8;padding:12px 0}
.enhanced :is(#help-dialog,#guide-dialog) #guide{display:block}
:is(#help-dialog,#guide-dialog) #guide{padding:0;background:none;outline:0}
:is(#help-dialog,#guide-dialog) .guide-intro,:is(#help-dialog,#guide-dialog) .table-spread{display:none}
:is(#help-dialog,#guide-dialog) .restaurant{grid-template-columns:200px 1fr;gap:8px 24px;padding:24px 0 28px}
.guide-shop-art{display:block;width:100%;height:auto;grid-column:1;grid-row:1/3;align-self:start;border-radius:15px}
:is(#help-dialog,#guide-dialog) .guide-shop-art{display:block;grid-column:1;grid-row:1/3;width:100%;height:auto;align-self:start;border:1px solid #c9be9d;border-radius:15px}
:is(#help-dialog,#guide-dialog) .restaurant-heading{grid-column:2;padding:0}
:is(#help-dialog,#guide-dialog) .large-number,:is(#help-dialog,#guide-dialog) .shop-roman{display:none}
:is(#help-dialog,#guide-dialog) .restaurant-heading>p{font-size:11px}
:is(#help-dialog,#guide-dialog) .restaurant-heading h2{font-size:24px;margin:7px 0 3px}
:is(#help-dialog,#guide-dialog) .restaurant-content{grid-column:2}
:is(#help-dialog,#guide-dialog) .restaurant-content h3,:is(#help-dialog,#guide-dialog) .restaurant dl{display:none}
:is(#help-dialog,#guide-dialog) .restaurant-content p{font-size:12px;line-height:1.9}
:is(#help-dialog,#guide-dialog) .visit-button{width:100%;justify-content:space-between;gap:16px;min-height:44px;margin-top:10px;font-size:12px;font-weight:700}
:is(#help-dialog,#guide-dialog) .guide-footer{padding:23px 0 0;border-color:var(--line)}
:is(#help-dialog,#guide-dialog) .guide-footer>span:last-child,:is(#help-dialog,#guide-dialog) .guide-footer h2{display:none}
:is(#help-dialog,#guide-dialog) .guide-footer p{font-size:11px}
:is(#help-dialog,#guide-dialog)>.primary-button{margin-top:24px}
#shop-dialog .shop-card-content h2{font-size:30px}
#shop-dialog .shop-card-content{padding:28px 34px 30px}
#shop-dialog .dish-caption{font-size:13px}
@media(max-width:820px){
 .masthead,.reading .masthead{top:18px;right:18px}:is(#help-open,#guide-open,#bgm-toggle){width:48px;height:48px;font-size:26px}
 .enter-panel{bottom:11%;min-width:230px}.enter-button{width:230px;min-height:74px;font-size:28px}
 #speech-bubble{width:calc(100vw - 50px);max-width:600px;min-height:122px;padding:27px 24px 29px;bottom:max(43px,8vh);border-radius:2px}
 #speech-speaker{left:-10px;top:-49px;min-width:128px;min-height:54px;padding:9px 18px;font-size:20px}
 #speech-text{font-size:18px;line-height:1.6}
 #speech-next{right:-11px;bottom:-29px;width:53px;height:56px}
 #speech-next:before{width:24px;height:34px}#speech-next:after{width:19px;height:27px}
 :is(#help-dialog,#guide-dialog){padding:28px 22px 24px}:is(#help-dialog,#guide-dialog) h2{font-size:27px}
 .help-list>div{grid-template-columns:48px 1fr;gap:10px;font-size:12px}
 :is(#help-dialog,#guide-dialog) .restaurant{grid-template-columns:1fr;gap:14px;padding:22px 0}
 :is(#help-dialog,#guide-dialog) .guide-shop-art{grid-column:1;grid-row:auto;width:100%;height:auto}
 :is(#help-dialog,#guide-dialog) .restaurant-heading,:is(#help-dialog,#guide-dialog) .restaurant-content{grid-column:1}
 :is(#help-dialog,#guide-dialog) .restaurant-heading h2{font-size:24px}
 #shop-dialog .shop-card-content{padding:22px}#shop-dialog .shop-card-content h2{font-size:26px}
}
@media(max-width:350px){#speech-text{font-size:16px}#speech-bubble{padding:25px 19px 28px;min-height:118px}.enter-panel{min-width:216px}.enter-button{width:216px;min-height:70px;font-size:26px}.help-list>div{font-size:11px}}
@media(prefers-reduced-motion:reduce){.enter-button,:is(#help-open,#guide-open,#bgm-toggle){transition:none}}
/* 写真の自然な縦横比を、ガイドと入店画面の両方で保つ。 */
#shop-art{display:block;width:100%;height:auto;max-width:100%;background:none;object-fit:contain}
#guide>.restaurant{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px 48px;align-items:start}
#guide>.restaurant>.restaurant-heading,#guide>.restaurant>.restaurant-content{grid-column:2}
:is(#help-dialog,#guide-dialog) #guide>.restaurant{grid-template-columns:200px minmax(0,1fr);gap:8px 24px}
@media(max-width:820px){#guide>.restaurant,:is(#help-dialog,#guide-dialog) #guide>.restaurant{grid-template-columns:minmax(0,1fr);gap:18px}#guide>.restaurant>.guide-shop-art,#guide>.restaurant>.restaurant-heading,#guide>.restaurant>.restaurant-content{grid-column:1;grid-row:auto}}

/* ガイドの行き先は、町の店看板と同じ色の押せる札に。 */
[data-station="fish"]{--guide-accent:#235a6c;--guide-shadow:#163d49}
[data-station="fire"]{--guide-accent:#a94e35;--guide-shadow:#733925}
[data-station="cafe"]{--guide-accent:#4b6c50;--guide-shadow:#324b36}
.visit-button,:is(#help-dialog,#guide-dialog) .visit-button{display:flex;align-items:center;justify-content:flex-start;width:100%;min-height:60px;margin:17px 0 5px;padding:10px 13px;gap:12px;border:2px solid #34453d;border-radius:7px 3px 8px 3px;background:var(--guide-accent,#235a6c);color:#fff9ec;box-shadow:3px 4px 0 var(--guide-shadow,#163d49),inset 0 1px 0 #ffffff30;font-size:14px;font-weight:700;line-height:1.5;letter-spacing:.025em;white-space:nowrap;text-align:left;transition:transform .15s,box-shadow .15s,background-color .15s}
.visit-button:before{content:"";flex:none;width:25px;height:30px;background:currentColor;opacity:.95;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 34'%3E%3Cellipse cx='8' cy='9' rx='4.5' ry='7' transform='rotate(-18 8 9)'/%3E%3Cellipse cx='11' cy='20' rx='3.5' ry='2.7' transform='rotate(-18 11 20)'/%3E%3Cellipse cx='23' cy='18' rx='4.5' ry='7' transform='rotate(18 23 18)'/%3E%3Cellipse cx='20' cy='29' rx='3.5' ry='2.7' transform='rotate(18 20 29)'/%3E%3C/svg%3E") center/contain no-repeat}
.visit-button span{display:grid;place-items:center;flex:none;width:35px;height:35px;margin-left:auto;border:1.5px solid #34453d;border-radius:3px;background:#fff4d9;color:var(--guide-accent,#235a6c);box-shadow:1px 2px 0 #172b3440;font-size:0}
.visit-button span:after{content:"";width:18px;height:16px;background:currentColor;clip-path:polygon(0 34%,55% 34%,55% 0,100% 50%,55% 100%,55% 66%,0 66%);transition:transform .15s}
.visit-button:hover:not(:disabled){filter:none;transform:translateY(-2px);box-shadow:3px 6px 0 var(--guide-shadow,#163d49),inset 0 1px 0 #ffffff30}
.visit-button:hover:not(:disabled) span:after{transform:translateX(2px)}
.visit-button:active:not(:disabled){transform:translate(2px,3px);box-shadow:1px 1px 0 var(--guide-shadow,#163d49)}
:is(#help-dialog,#guide-dialog)>.primary-button,#taste,#static-guide{min-height:56px;padding:10px 16px;gap:14px;border:2px solid #43535c;border-radius:6px 3px 7px 3px;background:#f7f8f5;color:#34484d;box-shadow:3px 4px 0 #9daaa5;font-size:14px;font-weight:700;line-height:1.5;transition:transform .15s,box-shadow .15s,background-color .15s}
:is(#help-dialog,#guide-dialog)>.primary-button:after,#taste:after{content:"←";display:grid;place-items:center;flex:none;width:32px;height:32px;margin-left:auto;border:1.5px solid #43535c;border-radius:3px;background:#e4eddf;color:#43535c;font-size:22px;line-height:1}
#taste>i,:is(#help-dialog,#guide-dialog)>.primary-button>i{display:none}
#static-guide{width:max-content;max-width:calc(100vw - 48px)}
#static-guide>i{display:grid;place-items:center;flex:none;width:32px;height:32px;border:1.5px solid #43535c;border-radius:3px;background:#e4eddf;font-size:21px}
:is(#help-dialog,#guide-dialog)>.primary-button:hover:not(:disabled),#taste:hover:not(:disabled),#static-guide:hover{filter:none;background:#fff;transform:translateY(-2px);box-shadow:3px 6px 0 #9daaa5}
:is(#help-dialog,#guide-dialog)>.primary-button:active:not(:disabled),#taste:active:not(:disabled),#static-guide:active{transform:translate(2px,3px);box-shadow:1px 1px 0 #9daaa5}
.visit-button:focus-visible,:is(#help-dialog,#guide-dialog)>.primary-button:focus-visible,#taste:focus-visible,#static-guide:focus-visible{outline:3px solid #277c9b;outline-offset:6px}
:is(#help-dialog,#guide-dialog)>.dialog-close,#shop-close{display:grid;place-items:center;width:44px;height:44px;padding:0;border:2px solid #43535c;background:#f7f8f5;color:#43535c;box-shadow:2px 3px 0 #9daaa5;font-size:28px;line-height:1;transition:transform .15s,box-shadow .15s}
:is(#help-dialog,#guide-dialog)>.dialog-close:hover,#shop-close:hover{filter:none;background:#fff;transform:translateY(-1px)}
:is(#help-dialog,#guide-dialog)>.dialog-close:active,#shop-close:active{transform:translate(1px,2px);box-shadow:1px 1px 0 #9daaa5}
@media(max-width:350px){.visit-button,:is(#help-dialog,#guide-dialog) .visit-button{gap:9px;min-height:58px;padding:10px;font-size:13px}.visit-button:before{width:22px}.visit-button span{width:32px;height:32px}}

/* 指定参照の小人が操作ガイドを出迎える。元の8列×9行素材をそのまま使う。 */
.guide-welcome{display:grid;grid-template-columns:120px minmax(0,1fr);gap:22px;align-items:center;margin:3px 0 25px;padding-right:20px}
:is(#help-dialog,#guide-dialog) .guide-welcome h2{margin:0 0 9px;font-size:30px;line-height:1.45;white-space:nowrap}
.guide-welcome p{font-size:13px;line-height:1.8;color:#54675f}
.guide-host{position:relative;display:block;width:120px;aspect-ratio:12/13;isolation:isolate}
.guide-host:before{content:"";position:absolute;inset:23% 3% 7%;border-radius:50%;background:#dce8d9;z-index:-1}
.guide-host:after{content:"";position:absolute;left:20%;right:20%;bottom:0;height:7%;border-radius:50%;background:#647d6030;z-index:-1}
.guide-host-sprite{display:block;width:100%;height:100%;background-image:url('../img/pet-zoroya.webp');background-repeat:no-repeat;background-size:800% 900%;background-position:0% 37.5%}
:is(#help-dialog,#guide-dialog)[open] .guide-host-sprite{animation:guide-host-wave 3.8s steps(1,end) infinite}
@keyframes guide-host-wave{0%,55%,100%{background-position:0% 37.5%}62%,80%{background-position:14.285714% 37.5%}69%{background-position:28.571429% 37.5%}90%{background-position:42.857143% 37.5%}}
@media(max-width:820px){.guide-welcome{grid-template-columns:90px minmax(0,1fr);gap:12px;margin:6px 0 22px;padding-right:0}.guide-host{width:90px}:is(#help-dialog,#guide-dialog) .guide-welcome h2{font-size:clamp(19px,5.3vw,24px);margin-bottom:7px}.guide-welcome p{font-size:11px}}
@media(max-width:350px){.guide-welcome{grid-template-columns:72px minmax(0,1fr);gap:9px;margin-top:20px}.guide-host{width:72px}.guide-welcome p{font-size:10px}}
@media(prefers-reduced-motion:reduce){:is(#help-dialog,#guide-dialog)[open] .guide-host-sprite{animation:none}}

/* 操作・お店・音楽は、それぞれ一つの紙のアイコンから開く。 */
.masthead nav{display:flex;gap:12px;align-items:center}
.world-button{flex:none;padding:0}
.world-button svg{display:block;width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
#bgm-toggle .bgm-slash{stroke-width:2.8;paint-order:stroke;filter:drop-shadow(1px -1px 0 #fff1d2)}
#bgm-toggle[aria-pressed="true"]{background:#dce8d9;box-shadow:0 3px 0 #594f3b50}
#bgm-toggle[aria-pressed="true"] .bgm-slash{display:none}
#help-dialog{width:660px}
#guide-title{padding-right:30px}
.guide-link{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;min-height:48px;padding:8px 2px;border-bottom:1px solid #9daa92;font-size:13px;font-weight:700;text-align:left}
.guide-link span{font-size:20px}
@media(max-width:820px){.masthead nav{gap:10px}.world-button svg{width:25px;height:25px}}
@media(max-width:350px){.masthead,.reading .masthead{top:15px;right:15px}.masthead nav{gap:8px}#guide-dialog{padding-top:56px}#guide-dialog>#guide-title{font-size:23px;margin:0 0 18px;padding-right:0;white-space:nowrap}}

/* 一覧は大きな文字で読み、縦に送る。閉じる操作はスクロール中も残す。 */
#guide-dialog{--guide-inset:38px;width:min(1240px,calc(100vw - 64px));max-width:calc(100vw - 64px);max-height:calc(100dvh - 48px);padding:0;overscroll-behavior:contain;scroll-padding-top:110px}
#guide-dialog .guide-dialog-header{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px var(--guide-inset);background:#fff5df;border-bottom:1px solid #c9be9d}
#guide-dialog #guide-title{min-width:0;padding:0;margin:0;font-size:36px;line-height:1.4;white-space:normal}
#guide-dialog #guide-close{position:static;display:grid;place-items:center;flex:none;width:52px;height:52px;padding:0;border:2px solid #43535c;background:#f7f8f5;color:#43535c;box-shadow:2px 3px 0 #9daaa5;font-size:32px;line-height:1;transition:transform .15s,box-shadow .15s}
#guide-dialog #guide-close:hover{filter:none;background:#fff;transform:translateY(-1px)}
#guide-dialog #guide-close:active{transform:translate(1px,2px);box-shadow:1px 1px 0 #9daaa5}
#guide-dialog #restaurant-guide-slot{padding:0 var(--guide-inset)}
#guide-dialog #guide>.restaurant{grid-template-columns:minmax(0,30%) minmax(0,1fr);gap:10px 36px;padding:30px 0 34px}
#guide-dialog #guide>.restaurant .guide-shop-art{width:100%;height:auto;object-fit:contain}
#guide-dialog #guide>.restaurant .restaurant-heading{min-width:0}
#guide-dialog #guide>.restaurant .restaurant-heading>p{font-size:16px;line-height:1.7}
#guide-dialog #guide>.restaurant .restaurant-heading h2{font-size:34px;line-height:1.5;margin:9px 0 5px}
#guide-dialog #guide>.restaurant .restaurant-content{min-width:0}
#guide-dialog #guide>.restaurant .restaurant-content>p{font-size:20px;line-height:1.85;max-width:none}
#guide-dialog .visit-button{min-height:72px;margin:20px 0 6px;padding:14px 18px;font-size:20px;gap:14px}
#guide-dialog .visit-button:before{width:28px;height:34px}
#guide-dialog .visit-button span{width:40px;height:40px}
#guide-dialog #guide .guide-footer{padding:28px 0 0}
#guide-dialog #guide .guide-footer p{font-size:15px;line-height:1.8}
#guide-dialog>.primary-button{width:calc(100% - 2*var(--guide-inset));min-height:66px;margin:26px var(--guide-inset) 34px;padding:13px 20px;font-size:19px}
@media(min-width:1600px){
 #guide-dialog{--guide-inset:44px;width:1320px}
 #guide-dialog #guide-title{font-size:40px}
 #guide-dialog #guide>.restaurant .restaurant-heading h2{font-size:38px}
 #guide-dialog #guide>.restaurant .restaurant-content>p{font-size:22px}
}
@media(max-width:820px){
 #guide-dialog{--guide-inset:20px;width:calc(100vw - 24px);max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);scroll-padding-top:92px}
 #guide-dialog .guide-dialog-header{gap:12px;padding:18px var(--guide-inset)}
 #guide-dialog #guide-title{font-size:clamp(24px,7vw,30px)}
 #guide-dialog #guide-close{width:44px;height:44px;font-size:28px}
 #guide-dialog #guide>.restaurant{grid-template-columns:minmax(0,1fr);gap:16px;padding:26px 0 30px}
 #guide-dialog #guide>.restaurant .guide-shop-art,#guide-dialog #guide>.restaurant .restaurant-heading,#guide-dialog #guide>.restaurant .restaurant-content{grid-column:1;grid-row:auto}
 #guide-dialog #guide>.restaurant .restaurant-heading>p{font-size:15px}
 #guide-dialog #guide>.restaurant .restaurant-heading h2{font-size:28px;margin:8px 0 0}
 #guide-dialog #guide>.restaurant .restaurant-content>p{font-size:18px;line-height:1.85}
 #guide-dialog .visit-button{min-height:66px;margin-top:19px;padding:12px 14px;font-size:17px;gap:12px}
 #guide-dialog .visit-button:before{width:25px;height:30px}
 #guide-dialog .visit-button span{width:35px;height:35px}
 #guide-dialog #guide .guide-footer p{font-size:14px}
 #guide-dialog>.primary-button{min-height:62px;margin-top:24px;margin-bottom:26px;padding:12px 16px;font-size:17px}
}
@media(max-width:350px){#guide-dialog{--guide-inset:16px;width:calc(100vw - 20px);max-width:calc(100vw - 20px)}#guide-dialog .visit-button{gap:9px;padding:12px}}

/* 大きな画面では、料理とお店の紹介を近くで読める大きさにする。 */
@media(min-width:821px){
 #shop-dialog{width:clamp(740px,58vw,840px);max-width:calc(100vw - 64px);max-height:calc(100dvh - 64px)}
 #shop-dialog .shop-card-content{padding:32px 42px 38px}
 #shop-dialog .shop-card-content h2{font-size:36px;line-height:1.45;margin:12px 0 20px}
 #shop-dialog .shop-card-content>.kicker{font-size:13px;letter-spacing:.1em}
 #shop-dialog #shop-description{font-size:17px;line-height:1.95;max-width:none}
 #shop-dialog .dish-caption{gap:18px;padding:22px 0 24px;margin-top:22px;align-items:baseline}
 #shop-dialog .dish-caption span{font-size:13px;white-space:nowrap}
 #shop-dialog .dish-caption strong{font-size:16px;line-height:1.7}
 #shop-dialog #taste{min-height:64px;padding:13px 20px;font-size:17px}
 #shop-dialog #taste:after{width:36px;height:36px;font-size:25px}
 #shop-dialog #shop-close{top:16px;right:16px;width:48px;height:48px;font-size:30px}
}
@media(min-width:1400px){
 #shop-dialog{width:min(1480px,calc(100vw - 112px));max-width:calc(100vw - 112px)}
 #shop-dialog[open]{display:grid;grid-template-columns:minmax(0,1.22fr) minmax(0,1fr);align-items:center}
 #shop-dialog #shop-art{grid-column:1;grid-row:1;width:100%;height:auto;object-fit:contain}
 #shop-dialog .shop-card-content{grid-column:2;grid-row:1;min-width:0;padding:64px clamp(34px,2.5vw,56px) 44px}
 #shop-dialog .shop-card-content h2{font-size:clamp(36px,2.1vw,44px);margin:15px 0 24px}
 #shop-dialog .shop-card-content>.kicker{font-size:clamp(13px,.78vw,16px)}
 #shop-dialog #shop-description{font-size:clamp(17px,1.1vw,20px);line-height:1.95}
 #shop-dialog .dish-caption{display:block;padding:24px 0 28px;margin-top:26px}
 #shop-dialog .dish-caption span{display:block;margin-bottom:7px;font-size:14px}
 #shop-dialog .dish-caption strong{font-size:clamp(17px,1vw,19px)}
 #shop-dialog #taste{min-height:68px;font-size:18px}
}
