/* 真鍮の看板、活版の切符、紙の押し跡をボタンの共通語彙にする。 */
:root{--control-ink:#302b24;--control-paper:#eee6d4;--control-red:#963c30}
:is(.entry .enter-button,.site-header .ride-button,.world-footer .footer-cta,.world .hotspot,.panel .dark-button,.panel .outline-button,.plain-content .dark-button,.plain-menu article>button,.delivery-game .delivery-game__button){
 position:relative;isolation:isolate;border:1px solid var(--control-ink);border-radius:2px;
 background-color:var(--control-paper);background-image:repeating-linear-gradient(125deg,#302b2407 0 1px,transparent 1px 4px);
 color:var(--control-ink);box-shadow:2px 3px 0 #302b243d;letter-spacing:.075em;
 transition:background-color .2s,color .2s,box-shadow .2s,translate .2s;
}
:is(.entry .enter-button,.site-header .ride-button,.world-footer .footer-cta,.world .hotspot,.panel .dark-button,.panel .outline-button,.plain-content .dark-button,.plain-menu article>button,.delivery-game .delivery-game__button)::before{
 content:"";position:absolute;inset:4px;border:1px solid currentColor;border-radius:1px;opacity:.42;pointer-events:none;z-index:-1;
}
:is(.entry .enter-button,.site-header .ride-button,.world-footer .footer-cta,.world .hotspot,.panel .dark-button,.panel .outline-button,.plain-content .dark-button,.plain-menu article>button,.delivery-game .delivery-game__button):hover:not(:disabled){
 background-color:#faf2df;color:#5d3228;box-shadow:2px 4px 0 #302b2466;translate:0 -1px;
}
:is(.entry .enter-button,.site-header .ride-button,.world-footer .footer-cta,.world .hotspot,.panel .dark-button,.panel .outline-button,.plain-content .dark-button,.plain-menu article>button,.delivery-game .delivery-game__button):active:not(:disabled){translate:1px 2px;box-shadow:none}
:is(.entry .enter-button,.site-header .ride-button,.world-footer .footer-cta,.world .hotspot,.panel .dark-button,.panel .outline-button,.plain-content .dark-button,.plain-menu article>button,.delivery-game .delivery-game__button):focus-visible{
 outline:2px solid #ad4a35;outline-offset:5px;
}
/* 入口は左右を切り欠いた乗車券。 */
.entry .enter-button{
 border:0;border-radius:0;padding-inline:25px;gap:24px;
 clip-path:polygon(6px 0,calc(100% - 6px) 0,100% 6px,100% calc(50% - 3px),calc(100% - 3px) 50%,100% calc(50% + 3px),100% calc(100% - 6px),calc(100% - 6px) 100%,6px 100%,0 calc(100% - 6px),0 calc(50% + 3px),3px 50%,0 calc(50% - 3px),0 6px);
 box-shadow:none;
}
.entry .enter-button::before{inset:4px 7px;border-color:#584732;border-radius:0}
.entry .enter-button svg{width:27px;height:20px;padding-left:9px;border-left:1px dashed #6d584876}
.entry .enter-button:hover:not(:disabled){background-color:#b84534;color:#fff3dc;box-shadow:none}
.entry .enter-button:hover::before{border-color:#fff3dc}
.entry .enter-button:hover svg{border-left-color:#fff3dc88}
.entry .enter-button:focus-visible{outline:0;background-color:#f6dca5;box-shadow:inset 0 0 0 3px #b84534}
.entry .entry-skip{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px;text-decoration-color:#eee6d460;letter-spacing:.07em}
/* 旅の操作は小さな真鍮プレートと、刻印のような下線。 */
.site-header .ride-button{padding:10px 18px;min-height:42px;border-color:#78654b;color:#4b392b;background-color:#e5d4b4;gap:9px;transform:rotate(-1.5deg)}
.site-header .ride-button svg{width:27px;height:20px}
.site-header .text-nav,.site-header .sound-button,.site-header .bag-button,.world-footer .footer-right button{position:relative}
.site-header .text-nav::after,.site-header .sound-button::after,.site-header .bag-button::after,.world-footer .footer-right button::after{
 content:"";position:absolute;left:0;right:0;bottom:4px;height:3px;border-top:1px solid currentColor;border-bottom:1px dotted currentColor;opacity:.25;transition:opacity .2s;
}
.site-header .text-nav:hover::after,.site-header .sound-button:hover::after,.site-header .bag-button:hover::after,.world-footer .footer-right button:hover::after{opacity:.85}
.world-footer .footer-cta{padding:12px 25px;min-height:44px;border-color:#7f6a51;font-size:10px;letter-spacing:.12em!important}
.world-footer .footer-cta:hover{text-decoration:none}
.world-footer .footer-cta span{display:inline-block;border-left:1px dashed #74634c7a;margin-left:17px;padding-left:15px}
.world-footer .location-opener{padding:5px 11px;border-block:1px solid #fff1dc88;letter-spacing:.12em}
.world .hotspot{padding:12px 13px 12px 22px;gap:20px;min-height:48px;background-color:#eae0c9;border-color:#6c5b48;letter-spacing:.1em}
.world .hotspot::after{width:27px;height:23px;border-left:1px dashed #74634c7a;padding-left:12px;font-size:19px}
.world .hotspot:hover{transform:translate(-50%,-50%)}
/* 紙のメニューでは注文札とスタンプに置き換える。 */
.panel .dark-button,.plain-content .dark-button{background-color:var(--control-ink);color:var(--control-paper);border-color:var(--control-ink);min-height:52px;padding:15px 24px;line-height:1.6}
.panel .dark-button:hover,.plain-content .dark-button:hover{background-color:var(--control-red);color:#fff1da}
.panel .outline-button{background-color:transparent;border-color:#8b765b;min-height:50px;line-height:1.6}
.panel .category-tabs{gap:8px;border-bottom:1px solid #927c5d55;padding-bottom:17px}
.panel .category-tabs button{border:1px solid #8e795d70;border-radius:1px;padding:9px 17px;min-height:42px;letter-spacing:.12em;font-size:10px;background:transparent;box-shadow:inset 0 0 0 3px var(--paper),inset 0 0 0 4px #8e795d36}
.panel .category-tabs button.active{background:#302b24;color:#eee6d4;box-shadow:inset 0 0 0 3px #302b24,inset 0 0 0 4px #eee6d470}
.panel .add-button,.panel .quantity button,.panel .close-button{position:relative;border-radius:2px;border-color:#79674f;color:#473c2c;background:repeating-linear-gradient(130deg,#302b2408 0 1px,transparent 1px 4px);box-shadow:inset 0 0 0 3px var(--paper),inset 0 0 0 4px #8e795d60;transition:background-color .2s,transform .2s}
.panel .add-button{width:44px;min-height:44px;transform:rotate(-3deg)}
.panel .add-button:hover{background-color:#a74633;color:#fff0d6;box-shadow:inset 0 0 0 3px #a74633,inset 0 0 0 4px #fff0d6aa;transform:rotate(0)}
.panel .quantity button:hover,.panel .close-button:hover{background-color:#e0d3b9}
.plain-menu article>button{padding:14px 20px;min-height:48px;font-size:12px}
.panel .destination-list button:hover{background:#cdbc9722}
/* ゲームも同じ切符の縁。動的に追加される既存スタイルより優先する。 */
.delivery-game .delivery-game__button{font-size:12px;min-height:46px;padding:13px 20px;border-radius:2px}
.delivery-game .delivery-game__top>.delivery-game__button{white-space:nowrap;flex-shrink:0}
.delivery-game .delivery-game__button--red{background-color:#963c30;color:#fff0d7;border-color:#632b24}
.delivery-game .delivery-game__button--red:hover{background-color:#7c2e26;color:#fff0d7}
.delivery-game .delivery-game__arrow{font-size:29px;padding:6px;min-height:60px;background-color:#eee4cceF}
.delivery-game .delivery-game__arrow:active{background-color:#963c30;color:#fff0d7}
.delivery-game .delivery-game__stats{border-radius:0;border-color:#665339;box-shadow:inset 0 0 0 3px #f1ead9,inset 0 0 0 4px #86725555}
.delivery-game .delivery-game__paper{box-shadow:6px 7px 0 #302b2466;outline:1px solid #8c775855;outline-offset:-7px}
@media(max-width:700px){
 .site-header .ride-button{padding:8px 12px;min-height:42px;min-width:48px}
 .site-header .ride-button svg{width:25px}
 .world-footer .footer-cta{min-height:42px;padding:11px 20px;font-size:10px!important}
 .world .hotspot{min-height:44px;padding:10px 11px 10px 18px;font-size:10px;gap:13px}
 .entry .enter-button{padding-inline:20px;gap:17px}
 .entry .enter-button svg{width:25px;height:18px;padding-left:8px}
 .panel .category-tabs{gap:6px}.panel .category-tabs button{padding:9px 13px}
 .delivery-game .delivery-game__button{padding:12px 16px}
 .delivery-game .delivery-game__arrow{padding:6px;min-height:60px}
}
@media(max-width:640px){
 .delivery-game .delivery-game__stats{display:grid;grid-template-columns:1.05fr .85fr 1fr 1.15fr;width:100%;gap:8px}
 .delivery-game .delivery-game__stat{min-width:0}
}
@media(max-width:360px){
 .entry .enter-button{padding-inline:18px;gap:13px}.panel .category-tabs button{padding:9px 10px}
 .delivery-game .delivery-game__stat{font-size:8px;letter-spacing:.075em}
 .delivery-game .delivery-game__stat strong{font-size:17px}
}
@media(max-height:500px) and (orientation:landscape){.world-footer .footer-cta{padding:7px 19px;min-height:35px}.site-header .ride-button{padding-block:7px;min-height:36px}}
@media(prefers-reduced-motion:reduce){.entry .enter-button,.site-header .ride-button,.world .hotspot,.panel button,.delivery-game .delivery-game__button{transition:none;translate:none}}
