@font-face{font-family:"DM Serif Display";src:url(fonts/DMSerif.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"DM Serif Display";src:url(fonts/DMSerifI.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"DM Sans";src:url(fonts/DMSans.woff2) format("woff2");font-weight:300 800;font-style:normal;font-display:swap}
:root{--lac:#8f1a1d;--lac2:#6e1014;--lac3:#4a090c;--jade:#14614f;--jade2:#0c3f34;--jade3:#082a23;--gold:#d9ad55;--gold2:#f3d48a;--paper:#f6ecd8;--paper2:#efe0c2;--ink:#2a1412;--neonG:#ffe3a1;--neonJ:#7dffd8;
--serif:"DM Serif Display","Songti SC","Noto Serif SC","Noto Serif CJK SC","Hiragino Mincho ProN","Yu Mincho",Georgia,serif;
--sans:"DM Sans","PingFang SC","Hiragino Sans","Noto Sans SC","Noto Sans JP","Microsoft YaHei",system-ui,-apple-system,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--sans);color:var(--ink);background:var(--paper);line-height:1.55;-webkit-font-smoothing:antialiased;padding-bottom:84px}
img{display:block;max-width:100%;height:auto}a{color:inherit}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.05;margin:0}
.seal{display:inline-grid;place-items:center;width:1.6em;height:1.6em;border-radius:6px;background:var(--lac);color:var(--gold2);font-family:var(--serif);font-size:.85em;margin-right:.5em;box-shadow:inset 0 0 0 1.5px var(--gold)}
/* top bar */
.bar{position:-webkit-sticky;position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:12px;padding:10px 16px;padding-top:max(10px,env(safe-area-inset-top));background:rgba(74,9,12,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--paper);border-bottom:1px solid rgba(217,173,85,.35)}
.mini{display:flex;flex:1 1 auto;min-width:0;overflow:hidden;align-items:center;text-decoration:none;font-family:var(--serif);font-size:17px;white-space:nowrap;opacity:0;-webkit-transform:translateY(-4px);transform:translateY(-4px);transition:opacity .3s,transform .3s}
.bar.solid .mini{opacity:1;-webkit-transform:none;transform:none}
.nav{display:none;gap:22px;margin-left:auto;font-size:14px;letter-spacing:.06em;text-transform:uppercase}
.nav a{text-decoration:none;opacity:.85}.nav a:hover{opacity:1;color:var(--gold2)}
.langs{margin-left:auto;display:flex;border:1px solid rgba(217,173,85,.55);border-radius:999px;overflow:hidden;flex:none}
.langs button{font:600 13px/1 var(--sans);color:var(--paper);background:transparent;border:0;padding:9px 11px;cursor:pointer;-webkit-appearance:none;appearance:none}
.langs button[aria-pressed=true]{background:var(--gold);color:var(--lac3)}
@media(min-width:900px){.nav{display:flex}.langs{margin-left:18px}}
/* shop sign */
.sign{background:radial-gradient(120% 90% at 50% 0%,#a31f22 0%,var(--lac2) 55%,var(--lac3) 100%);padding:26px 14px 34px;position:relative;overflow:hidden}
.sign:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(0,0,0,.06) 0 2px,transparent 2px 22px);pointer-events:none}
.board{position:relative;max-width:980px;margin:0 auto;text-align:center;padding:26px 16px 22px;border-radius:14px;background:linear-gradient(180deg,#1a0f10,#100809);border:3px solid var(--gold);box-shadow:0 0 0 6px var(--lac3),0 0 0 8px rgba(217,173,85,.6),0 24px 50px rgba(0,0,0,.45),inset 0 0 40px rgba(0,0,0,.7)}
.bolt{position:absolute;width:9px;height:9px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff3c8,var(--gold) 60%,#8a6a25);box-shadow:0 1px 1px rgba(0,0,0,.6)}
.b1{top:9px;left:9px}.b2{top:9px;right:9px}.b3{bottom:9px;left:9px}.b4{bottom:9px;right:9px}
.sign-top{margin:0 0 10px;color:var(--gold);font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;font-weight:600}
.neon{display:flex;flex-direction:column;align-items:center;gap:2px}
.neon span{display:block;font-family:"DM Serif Display",Georgia,serif;letter-spacing:.01em}
.n1{font-size:clamp(46px,14vw,120px);color:#fff6dc;text-shadow:0 0 4px #fff2c4,0 0 10px var(--neonG),0 0 22px #ffb43a,0 0 44px #ff7a1a,0 0 70px #ff5a00;-webkit-animation:hum 7s infinite;animation:hum 7s infinite}
.n2{font-style:italic;font-size:clamp(38px,11.5vw,98px);color:#eafff8;text-shadow:0 0 4px #dffff3,0 0 10px var(--neonJ),0 0 24px #22d6a2,0 0 48px #0fa57b,0 0 72px #0a8a66;-webkit-animation:flick 5.5s infinite .8s;animation:flick 5.5s infinite .8s}
.openbox{margin-top:16px;display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}
.open-neon{font:700 15px/1 var(--sans);letter-spacing:.24em;padding:8px 12px 7px 15px;border:2px solid #ff6b8a;border-radius:8px;color:#ffe6ec;text-shadow:0 0 6px #ff4d75,0 0 14px #ff2457;box-shadow:0 0 8px #ff2457,inset 0 0 8px rgba(255,36,87,.6);-webkit-animation:blink 2.4s infinite;animation:blink 2.4s infinite}
.open-neon.off{border-color:#5b4a4d;color:#8d7c7f;text-shadow:none;box-shadow:none;-webkit-animation:none;animation:none}
.status{color:var(--paper);font-size:14px;opacity:.9}
@-webkit-keyframes flick{0%,19%,21%,23%,55%,57%,100%{opacity:1}20%,22%,56%{opacity:.35}}
@keyframes flick{0%,19%,21%,23%,55%,57%,100%{opacity:1}20%,22%,56%{opacity:.35}}
@-webkit-keyframes hum{0%,100%{opacity:1}50%{opacity:.88}71%{opacity:1}72%{opacity:.6}73%{opacity:1}}
@keyframes hum{0%,100%{opacity:1}50%{opacity:.88}71%{opacity:1}72%{opacity:.6}73%{opacity:1}}
@-webkit-keyframes blink{0%,100%{opacity:1}50%{opacity:.75}}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.75}}
/* hero */
.hero{background:linear-gradient(180deg,var(--lac3) 0,var(--lac3) 90px,var(--paper) 90px);padding:0 0 56px}
.hero-in{display:grid;gap:28px}
.frame{margin:-6px 0 0;position:relative}
.frame-in{padding:10px;border-radius:18px;background:linear-gradient(135deg,#f3d48a,#b98a33 40%,#f6dd9c 60%,#a87a2a);box-shadow:0 20px 40px rgba(74,9,12,.35)}
.frame-in img{border-radius:10px;width:100%;aspect-ratio:4/3;object-fit:cover;border:3px solid var(--lac3)}
.plaque{position:absolute;left:50%;bottom:-16px;-webkit-transform:translateX(-50%);transform:translateX(-50%);background:var(--jade2);color:var(--gold2);border:2px solid var(--gold);border-radius:999px;padding:7px 18px;font-family:var(--serif);font-size:16px;white-space:nowrap;box-shadow:0 6px 16px rgba(0,0,0,.25)}
.hero-copy{padding-top:10px}
.headline{font-size:clamp(40px,10vw,74px);color:var(--lac)}
.headline em{color:var(--jade);font-style:italic}
.lede{font-size:17.5px;max-width:34em;margin:16px 0 18px;color:#4a2b27}
.rating{display:flex;align-items:center;gap:10px;margin:0 0 22px;flex-wrap:wrap}
.rating b{font-family:var(--serif);font-weight:400;font-size:34px;color:var(--lac);line-height:1}
.rating .st{color:var(--gold);font-size:20px;letter-spacing:2px}.rating .st i{font-style:normal;opacity:.35}
.rating small{font-size:14px;color:#6b4b45}
.cta{display:flex;gap:12px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:54px;padding:0 22px;border-radius:14px;font:700 16.5px/1.1 var(--sans);text-decoration:none;transition:transform .15s}
.btn:active{-webkit-transform:scale(.97);transform:scale(.97)}
.btn svg{width:20px;height:20px;fill:currentColor;flex:none}
.btn.call{background:var(--lac);color:#fff7e6;box-shadow:0 6px 0 var(--lac3)}
.btn.dir{background:var(--jade);color:#eafff8;box-shadow:0 6px 0 var(--jade3)}
.btn.gold{background:var(--gold);color:var(--lac3);box-shadow:0 6px 0 #8a6a25}
.hero .cta .btn{flex:1 1 200px}
@media(min-width:900px){.hero{padding-bottom:90px}.hero-in{grid-template-columns:7fr 5fr;align-items:end;gap:56px}.hero-copy{padding-top:110px}.frame{margin-top:-10px}.hero .cta .btn{flex:0 0 auto}}
/* menu board */
.menu{background:var(--jade3);background-image:radial-gradient(100% 70% at 50% 0%,#11493c 0,var(--jade3) 70%);padding:64px 0}
.menuboard{max-width:820px;margin:0 auto;background:#0b231d;border:2px solid var(--gold);border-radius:20px;padding:34px 22px 30px;box-shadow:0 0 0 7px #061813,0 0 0 9px rgba(217,173,85,.45),0 30px 60px rgba(0,0,0,.5);color:#f4ead2;position:relative}
.menuboard:before{content:"";position:absolute;inset:10px;border:1px dashed rgba(217,173,85,.35);border-radius:14px;pointer-events:none}
.mb-head{text-align:center;margin-bottom:22px}
.mb-kicker{margin:0 0 6px;color:var(--gold);letter-spacing:.24em;text-transform:uppercase;font-size:12px;font-weight:700}
.mb-head h2{font-size:clamp(40px,9vw,64px);color:var(--neonG);text-shadow:0 0 18px rgba(255,180,58,.35)}
.mb-rule{display:flex;align-items:center;gap:10px;justify-content:center;margin-top:12px;color:var(--gold)}
.mb-rule:before,.mb-rule:after{content:"";height:1px;width:70px;background:var(--gold);opacity:.6}.mb-rule i{font-style:normal;font-size:11px}
.mlist{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.mrow{display:flex;align-items:baseline;gap:8px;padding:9px 2px;font-size:17.5px}
.mn{font-weight:500}
.lead{flex:1;min-width:20px;border-bottom:2px dotted rgba(217,173,85,.6);-webkit-transform:translateY(-5px);transform:translateY(-5px)}
.mp{font-family:var(--serif);font-size:21px;color:var(--gold2)}
.mb-note{margin:20px 0 0;text-align:center;font-size:14.5px;color:#cfc3a6}
.mb-cta{text-align:center;margin-top:20px}
@media(min-width:900px){.menuboard{padding:46px 56px 40px}.mlist{grid-template-columns:1fr 1fr;column-gap:48px}.mrow{font-size:18.5px}}
/* section heads */
.sec-head{text-align:center;margin-bottom:34px}
.kick{margin:0 0 8px;color:var(--lac);letter-spacing:.24em;text-transform:uppercase;font-size:12px;font-weight:700}
.sec-head h2{font-size:clamp(36px,8vw,58px);color:var(--ink)}
.sub{margin:10px auto 0;max-width:30em;color:#6b4b45}
/* polaroids */
.photos{padding:70px 0 60px;background:var(--paper);background-image:radial-gradient(rgba(143,26,29,.08) 1.2px,transparent 1.3px);background-size:18px 18px}
.pols{display:grid;grid-template-columns:1fr 1fr;gap:22px 14px}
.pol{margin:0;background:#fffdf7;padding:9px 9px 12px;border-radius:14px;box-shadow:0 10px 24px rgba(74,9,12,.16),0 1px 2px rgba(0,0,0,.12);-webkit-transform:rotate(var(--r));transform:rotate(var(--r))}
.pol .ph{border-radius:9px;overflow:hidden}
.pol img{width:100%;aspect-ratio:1/1;object-fit:cover}
.pol figcaption{padding:10px 4px 0;line-height:1.3}
.pol strong{display:block;font-family:var(--serif);font-weight:400;font-size:18px;color:var(--lac)}
.pol figcaption span{display:block;font-size:13px;color:#6b4b45;margin-top:3px}
@media(min-width:700px){.pols{grid-template-columns:repeat(3,1fr);gap:34px 26px}}
@media(min-width:1100px){.pols{grid-template-columns:repeat(4,1fr)}.pol strong{font-size:20px}}
@media(max-width:380px){.pol figcaption span{display:none}}
/* reviews as guest checks */
.reviews{background:var(--lac);background-image:radial-gradient(90% 60% at 50% 0,#a6252a 0,var(--lac2) 75%);padding:70px 0}
.reviews .kick{color:var(--gold2)}.reviews .sec-head h2{color:#fff4dc}.reviews .sub{color:#f1cfc0}
.big{font-size:1.25em}.gold{color:var(--gold)}
.tickets{display:grid;gap:18px}
.ticket{margin:0;background:#fffaf0;border-radius:6px 6px 14px 14px;padding:16px 20px 18px;position:relative;box-shadow:0 14px 28px rgba(0,0,0,.25);background-image:repeating-linear-gradient(180deg,transparent 0 29px,rgba(20,97,79,.16) 29px 30px);background-position:0 54px}
.ticket:before{content:"";position:absolute;left:0;right:0;top:-6px;height:12px;background:radial-gradient(circle at 6px 0,transparent 6px,#fffaf0 6.5px) 0 0/12px 12px repeat-x}
.tk-head{display:flex;justify-content:space-between;font:700 11.5px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--jade);border-bottom:2px solid var(--lac);padding-bottom:9px;margin-bottom:10px}
.ticket .stars{color:var(--gold);letter-spacing:3px;font-size:17px}
.ticket .stars.hl{font-family:var(--serif);color:var(--lac);font-size:44px;line-height:.6;height:22px}
.ticket p{margin:8px 0 12px;font-family:var(--serif);font-size:20px;line-height:1.4;color:var(--ink)}
.ticket cite{font-style:normal;font-size:13.5px;color:#6b4b45;font-weight:600}
@media(min-width:800px){.tickets{grid-template-columns:1fr 1fr;gap:26px}.ticket:nth-child(odd){-webkit-transform:rotate(-.8deg);transform:rotate(-.8deg)}.ticket:nth-child(even){-webkit-transform:rotate(.8deg);transform:rotate(.8deg)}}
/* visit */
.visit{padding:70px 0}
.visit-in{display:grid;gap:40px;align-items:center}
.visit .store{max-width:460px;margin:0 auto}.visit .store img{aspect-ratio:4/3.4}
.info h2{font-size:clamp(40px,9vw,60px);color:var(--lac);margin-bottom:10px}
.addr{font-size:18px;margin:0 0 18px}.addr .small{font-size:14px;color:#6b4b45}
.hours{list-style:none;margin:0 0 24px;padding:16px 18px;background:#fffaf0;border:2px solid var(--jade);border-radius:14px}
.hours li{display:flex;align-items:baseline;gap:8px;padding:6px 0}
.hours .lead{border-bottom-color:rgba(20,97,79,.45)}
.hours .hrs{font-variant-numeric:tabular-nums}
.hours li.today{color:var(--lac);font-weight:700}
.hours li.today>span:first-child:after{content:" ●";color:var(--jade);font-size:.7em}
@media(min-width:900px){.visit-in{grid-template-columns:1fr 1fr;gap:70px}}
.foot{background:var(--lac3);color:#e9d6b8;text-align:center;padding:36px 0 30px;font-size:14px}
.foot .fb{font-family:var(--serif);font-size:24px;color:var(--gold2);margin:0 0 8px;display:flex;align-items:center;justify-content:center}
.foot p{margin:4px 0}
/* sticky phone bar */
.sticky{position:fixed;left:0;right:0;bottom:0;z-index:40;display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:10px 12px;padding-bottom:max(10px,env(safe-area-inset-bottom));background:rgba(74,9,12,.96);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:2px solid var(--gold)}
.sticky .btn{min-height:52px;box-shadow:none;border-radius:12px;font-size:17px}
.sticky .btn.call{background:var(--gold);color:var(--lac3)}
@media(min-width:900px){.sticky{display:none}body{padding-bottom:0}}
/* motion: reveal on scroll (transform/opacity, prefixed, no reduced-motion gate) */
.anim .reveal{opacity:0;-webkit-transform:translate3d(0,26px,0);transform:translate3d(0,26px,0);transition:opacity .7s ease,-webkit-transform .7s cubic-bezier(.2,.7,.2,1);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.anim .reveal.in{opacity:1;-webkit-transform:none;transform:none}
.anim .pol.reveal{-webkit-transform:translate3d(0,30px,0) rotate(0deg) scale(.94);transform:translate3d(0,30px,0) rotate(0deg) scale(.94)}
.anim .pol.reveal.in{-webkit-transform:rotate(var(--r));transform:rotate(var(--r))}
.anim .menuboard .mrow{opacity:0;-webkit-transform:translate3d(-14px,0,0);transform:translate3d(-14px,0,0);transition:opacity .5s,-webkit-transform .5s;transition:opacity .5s,transform .5s}
.anim .menuboard.in .mrow{opacity:1;-webkit-transform:none;transform:none}
.anim .menuboard .lead{-webkit-transform-origin:left;transform-origin:left;-webkit-transform:translateY(-5px) scaleX(0);transform:translateY(-5px) scaleX(0);transition:-webkit-transform .8s .2s;transition:transform .8s .2s}
.anim .menuboard.in .lead{-webkit-transform:translateY(-5px) scaleX(1);transform:translateY(-5px) scaleX(1)}
:lang(zh) .headline,:lang(ja) .headline{font-size:clamp(36px,9vw,64px);line-height:1.2}
:lang(zh) .ticket p,:lang(ja) .ticket p{font-size:18px}
@media(max-width:400px){.bar{gap:8px;padding-left:12px;padding-right:12px}.mini{font-size:15px}.langs button{padding:9px 9px;font-size:12.5px}}
