/* Tokyo Sushi Bar Leuven — responsive site
   Retro Japanese poster style. Brand tokens below. */
:root{
  --indigo:#232F58;
  --red:#D8494A;
  --cream:#F4ECDC;
  --washi:#EAE0CA;
  --yellow:#F7B95C;
  --muted:#6b6350;
  --pink:#e88a8a;
  --edge:3px solid var(--indigo);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--cream);
  font-family:'Zen Kaku Gothic New',sans-serif;
  color:var(--indigo);
  -webkit-font-smoothing:antialiased;
}
a{color:var(--red);text-decoration:none;}
a:hover{color:var(--indigo);}
img{max-width:100%;}
h1,h2,h3{margin:0;}
.display{font-family:'Archivo Black',sans-serif;}

/* ---------- animations ---------- */
@keyframes sway{from{transform:rotate(-4deg);}to{transform:rotate(4deg);}}
@keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}
@keyframes panelIn{from{opacity:0;transform:translateY(-8px);}to{opacity:1;transform:translateY(0);}}
@keyframes rowIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}

/* ---------- ticker / marquee ---------- */
.ticker{overflow:hidden;padding:8px 0;border-bottom:var(--edge);background:var(--red);color:var(--cream);}
.ticker .track{display:inline-flex;gap:48px;white-space:nowrap;animation:marquee 22s linear infinite;font-weight:700;font-size:13px;letter-spacing:3px;}
.marquee-strip{overflow:hidden;padding:14px 0;border-top:var(--edge);border-bottom:var(--edge);background:var(--indigo);color:var(--cream);}
.marquee-strip .track{display:inline-flex;gap:42px;white-space:nowrap;animation:marquee 26s linear infinite;font-family:'Archivo Black',sans-serif;font-size:20px;letter-spacing:2px;}
.marquee-strip .track .alt{color:var(--red);}

/* ---------- nav ---------- */
.nav{display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:18px 48px;border-bottom:var(--edge);background:var(--cream);
  position:sticky;top:0;z-index:50;}
.brand{display:flex;align-items:center;gap:14px;}
.brand .mark{width:46px;height:46px;background:var(--red);border:var(--edge);border-radius:50%;
  display:grid;place-items:center;color:var(--cream);font-weight:900;font-size:22px;flex:none;
  font-family:'Archivo Black',sans-serif;}
.brand .name{font-family:'Archivo Black',sans-serif;font-size:18px;letter-spacing:1px;line-height:1;}
.brand .sub{font-size:11px;font-weight:700;letter-spacing:4px;color:var(--red);margin-top:3px;}
.nav-right{display:flex;align-items:center;gap:24px;font-weight:700;font-size:14px;letter-spacing:1px;}
.nav-links{display:flex;align-items:center;gap:24px;}
.nav-links a{color:var(--indigo);}
.nav-links a:hover{color:var(--red);}
.langtoggle{display:flex;border:var(--edge);box-shadow:3px 3px 0 var(--red);cursor:pointer;}
.langtoggle button{border:0;font-family:inherit;font-weight:900;font-size:13px;letter-spacing:2px;
  padding:9px 13px;cursor:pointer;background:var(--cream);color:var(--indigo);}
.langtoggle button.on{background:var(--indigo);color:var(--cream);}
.btn-call{background:var(--indigo);color:var(--cream);padding:10px 18px;box-shadow:3px 3px 0 var(--red);white-space:nowrap;}
.btn-call:hover{color:var(--cream);}

/* ---------- generic buttons ---------- */
.btn{display:inline-block;font-weight:900;letter-spacing:2px;font-size:15px;padding:16px 28px;
  border:var(--edge);cursor:pointer;transition:box-shadow .15s ease,transform .15s ease,background .15s ease;}
.btn-red{background:var(--red);color:var(--cream);box-shadow:5px 5px 0 var(--indigo);}
.btn-red:hover{background:var(--indigo);color:var(--cream);box-shadow:2px 2px 0 var(--indigo);transform:translate(3px,3px);}
.btn-cream{background:var(--cream);color:var(--indigo);box-shadow:5px 5px 0 var(--red);}
.btn-cream:hover{box-shadow:2px 2px 0 var(--red);transform:translate(3px,3px);}
.btn-indigo{background:var(--indigo);color:var(--cream);box-shadow:5px 5px 0 var(--red);}
.btn-indigo:hover{color:var(--cream);box-shadow:2px 2px 0 var(--red);transform:translate(3px,3px);}

/* ---------- hero ---------- */
.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:44px;padding:56px 48px 48px;align-items:center;
  background-color:var(--cream);
  background-image:linear-gradient(rgba(244,236,220,.90),rgba(244,236,220,.90)),url('assets/wave-indigo.png');
  background-size:auto,190px 190px;position:relative;overflow:hidden;}
.hero .rays{position:absolute;right:-120px;top:-120px;width:520px;height:520px;border-radius:50%;
  background:repeating-conic-gradient(var(--red) 0deg 11deg,transparent 11deg 26deg);opacity:.10;pointer-events:none;}
.hero-col{position:relative;z-index:2;}
.hero .dots{position:absolute;left:-26px;top:-20px;width:110px;height:110px;
  background-image:radial-gradient(rgba(216,73,74,.45) 1.6px,transparent 1.6px);background-size:9px 9px;pointer-events:none;}
.hero .t1{font-family:'Archivo Black',sans-serif;font-size:104px;line-height:.92;color:var(--indigo);
  text-shadow:7px 7px 0 var(--red);position:relative;}
.hero .t2{font-family:'Archivo Black',sans-serif;font-size:58px;line-height:1.05;color:var(--red);
  text-shadow:5px 5px 0 var(--indigo);margin-top:10px;}
.takeout-badge{display:inline-block;background:var(--indigo);color:var(--cream);font-family:'Archivo Black',sans-serif;
  font-size:22px;letter-spacing:8px;padding:10px 18px;margin-top:16px;box-shadow:5px 5px 0 var(--red);}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px;align-items:center;}
.chip{border:2px solid var(--indigo);padding:6px 14px;font-weight:900;letter-spacing:5px;font-size:14px;}
.chip.red{border-color:var(--red);color:var(--red);}
.chip.fill{background:var(--red);color:var(--cream);letter-spacing:2px;}
.hero-lead{max-width:520px;font-size:16px;line-height:1.7;margin:26px 0 30px;font-weight:500;}
.hero-cta{display:flex;flex-wrap:wrap;gap:16px;}

/* poster ticket card */
.poster{position:relative;}
.poster .card{background:var(--cream);border:var(--edge);box-shadow:10px 10px 0 var(--indigo);position:relative;}
.poster .awning{height:38px;background:var(--indigo);
  background-image:repeating-linear-gradient(90deg,transparent 0 26px,var(--cream) 26px 29px);}
.poster .inner{padding:38px 34px 34px;display:flex;flex-direction:column;align-items:center;gap:18px;}
.poster .disc{width:140px;height:140px;background:var(--red);border:4px solid var(--indigo);border-radius:50%;
  display:grid;place-items:center;color:var(--cream);font-weight:900;font-size:68px;box-shadow:6px 6px 0 var(--indigo);
  font-family:'Archivo Black',sans-serif;}
.poster .ptitle{font-family:'Archivo Black',sans-serif;font-size:26px;letter-spacing:1px;line-height:1.1;text-align:center;}
.poster .ptag{font-weight:900;letter-spacing:5px;font-size:12px;color:var(--red);margin-top:8px;text-align:center;}
.poster .hours{width:100%;border-top:var(--edge);padding-top:18px;display:grid;grid-template-columns:1fr auto;
  row-gap:9px;font-weight:700;font-size:14px;}
.poster .hours .closed{color:var(--red);}
.poster .pcall{width:100%;background:var(--indigo);color:var(--cream);font-family:'Archivo Black',sans-serif;
  font-size:19px;padding:15px;text-align:center;box-shadow:5px 5px 0 var(--red);}
.poster .pcall:hover{color:var(--cream);}
.poster .proute{width:100%;background:var(--cream);color:var(--indigo);border:var(--edge);font-weight:900;
  font-size:13px;letter-spacing:2px;padding:13px;text-align:center;box-shadow:5px 5px 0 var(--red);transition:box-shadow .15s ease;}
.poster .proute:hover{box-shadow:2px 2px 0 var(--red);color:var(--indigo);}
.poster .stamp{position:absolute;right:-22px;top:-24px;width:88px;height:88px;transform:rotate(-8deg);pointer-events:none;}
.poster .stamp i{position:absolute;inset:8px;background:var(--red);border:2px solid var(--indigo);}
.poster .stamp i:nth-child(1){transform:rotate(45deg);}
.poster .stamp i:nth-child(2){transform:rotate(20deg);}
.poster .stamp i:nth-child(3){transform:rotate(70deg);}
.poster .stamp span{position:absolute;inset:0;display:grid;place-items:center;color:var(--cream);
  font-weight:900;font-size:15px;text-align:center;line-height:1.1;}
.poster .lantern{position:absolute;left:-26px;bottom:44px;transform-origin:top center;
  animation:sway 3s ease-in-out infinite alternate;pointer-events:none;}
.poster .lantern .cord{width:2px;height:14px;background:var(--indigo);margin:0 auto;}
.poster .lantern .bulb{width:48px;height:58px;border-radius:45%;
  background:radial-gradient(circle at 40% 35%,#e86a6a,#c73c3d);border:var(--edge);
  background-image:repeating-linear-gradient(0deg,rgba(35,47,88,.25) 0 1px,transparent 1px 9px);}
.poster .tickets{display:flex;justify-content:space-between;align-items:center;margin-top:22px;gap:12px;}
.poster .ticket-a{border:2px dashed var(--indigo);background:var(--cream);font-weight:900;font-size:11px;
  letter-spacing:2px;padding:7px 12px;transform:rotate(-3deg);}
.poster .ticket-b{background:var(--indigo);color:var(--cream);font-weight:900;font-size:12px;letter-spacing:3px;
  padding:8px 12px;transform:rotate(4deg);box-shadow:4px 4px 0 var(--red);}

/* ---------- section shells ---------- */
.section{position:relative;overflow:hidden;}
.about{display:grid;grid-template-columns:auto 1fr;gap:48px;padding:72px 48px;align-items:start;background:var(--cream);}
.about .vlabel{writing-mode:vertical-rl;font-family:'Archivo Black',sans-serif;font-size:44px;color:var(--red);
  text-shadow:3px 3px 0 var(--indigo);letter-spacing:6px;}
.about .kicker{display:inline-block;background:var(--red);color:var(--cream);font-weight:900;letter-spacing:3px;
  font-size:12px;padding:6px 12px;margin-bottom:16px;}
.about h2{font-family:'Archivo Black',sans-serif;font-size:34px;margin:0 0 18px;line-height:1.15;max-width:820px;}
.about p{line-height:1.8;font-size:16px;font-weight:500;margin:0 0 26px;max-width:820px;}
.pills{display:flex;flex-wrap:wrap;gap:14px;}
.pill{border:2px solid var(--red);color:var(--red);padding:10px 16px;text-align:center;font-weight:900;font-size:11px;}
.pill .lbl{font-size:10px;color:var(--indigo);letter-spacing:2px;}

/* menu preview */
.menuprev{padding:72px 48px;background:var(--washi);
  background-image:radial-gradient(rgba(35,47,88,.09) 1.2px,transparent 1.2px);background-size:12px 12px;
  border-top:var(--edge);}
.menuprev .head{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:36px;}
.menuprev h2{font-family:'Archivo Black',sans-serif;font-size:44px;color:var(--indigo);text-shadow:4px 4px 0 var(--red);}
.menuprev .sub{font-weight:700;font-size:13px;letter-spacing:2px;}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.mcard{background:var(--cream);border:var(--edge);box-shadow:6px 6px 0 var(--indigo);padding:24px;
  display:flex;flex-direction:column;gap:10px;position:relative;transition:box-shadow .15s ease,transform .15s ease;}
.mcard:hover{box-shadow:2px 2px 0 var(--indigo);transform:translate(4px,4px);}
.mcard .dotpatch{position:absolute;right:12px;top:12px;width:52px;height:26px;
  background-image:radial-gradient(rgba(216,73,74,.5) 1.4px,transparent 1.4px);background-size:8px 8px;}
.mcard .badge{position:absolute;right:-10px;top:-14px;background:var(--red);color:var(--cream);border:2px solid var(--indigo);
  font-weight:900;font-size:11px;letter-spacing:1px;padding:5px 10px;transform:rotate(6deg);box-shadow:3px 3px 0 var(--indigo);}
.mcard .bar{width:44px;height:6px;background:var(--red);}
.mcard .cname{font-family:'Archivo Black',sans-serif;font-size:18px;line-height:1.2;}
.mcard .cdesc{font-size:13.5px;line-height:1.6;font-weight:500;}
.mcard .cfoot{margin-top:auto;display:flex;justify-content:space-between;align-items:center;
  border-top:2px solid var(--indigo);padding-top:12px;}
.mcard .ctag{font-weight:900;letter-spacing:2px;font-size:11px;color:var(--red);}
.mcard .cprice{font-family:'Archivo Black',sans-serif;font-size:20px;}
.menuprev .more{text-align:center;margin-top:36px;}

/* order */
.order{background:var(--red);border-top:var(--edge);padding:72px 48px;color:var(--cream);}
.order .rays{position:absolute;right:-140px;top:-140px;width:480px;height:480px;border-radius:50%;
  background:repeating-conic-gradient(rgba(35,47,88,.28) 0deg 12deg,transparent 12deg 28deg);pointer-events:none;}
.order .grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;position:relative;}
.order .kicker{display:inline-block;background:var(--cream);color:var(--red);font-weight:900;letter-spacing:3px;
  font-size:12px;padding:6px 12px;margin-bottom:16px;}
.order h2{font-family:'Archivo Black',sans-serif;font-size:42px;margin:0 0 16px;line-height:1.1;text-shadow:4px 4px 0 var(--indigo);}
.order p{font-size:15px;line-height:1.7;margin:0 0 28px;max-width:460px;}
.order .actions{display:flex;flex-wrap:wrap;gap:16px;}
.bigcall{display:inline-block;background:var(--indigo);color:var(--cream);font-family:'Archivo Black',sans-serif;
  font-size:22px;padding:18px 30px;box-shadow:6px 6px 0 var(--cream);}
.bigcall:hover{color:var(--cream);}
.bigroute{display:inline-flex;align-items:center;background:var(--cream);color:var(--indigo);font-family:'Archivo Black',sans-serif;
  font-size:16px;letter-spacing:1px;padding:18px 26px;box-shadow:6px 6px 0 var(--indigo);transition:box-shadow .15s ease;}
.bigroute:hover{box-shadow:2px 2px 0 var(--indigo);color:var(--indigo);}
.hourscard{background:var(--cream);color:var(--indigo);border:var(--edge);box-shadow:8px 8px 0 var(--indigo);padding:32px;}
.hourscard .ht{font-family:'Archivo Black',sans-serif;font-size:18px;letter-spacing:1px;margin-bottom:18px;color:var(--red);}
.hourscard .rows{display:grid;grid-template-columns:1fr auto;row-gap:10px;font-weight:700;font-size:15px;}
.hourscard .rows .closed{color:var(--red);}
.hourscard .addr{border-top:2px solid var(--indigo);margin-top:20px;padding-top:16px;font-size:14px;font-weight:700;line-height:1.7;}

/* footer */
.foot{background:var(--indigo);color:var(--cream);padding:64px 48px 40px;border-top:var(--edge);}
.foot .grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:48px;align-items:start;position:relative;}
.foot .fbrand{display:flex;align-items:center;gap:14px;margin-bottom:16px;}
.foot .fbrand .mark{width:52px;height:52px;background:var(--red);border:3px solid var(--cream);border-radius:50%;
  display:grid;place-items:center;font-weight:900;font-size:24px;font-family:'Archivo Black',sans-serif;flex:none;}
.foot .fname{font-family:'Archivo Black',sans-serif;font-size:20px;}
.foot .fsub{font-size:11px;font-weight:700;letter-spacing:4px;color:var(--pink);margin-top:3px;}
.foot .blurb{font-size:13px;line-height:1.7;color:#aeb6d6;max-width:320px;margin:0;}
.foot .flabel{font-weight:900;letter-spacing:3px;font-size:12px;color:var(--red);margin-bottom:14px;}
.foot .faddr{font-size:15px;font-weight:700;line-height:1.7;}
.foot .fmail{font-size:13px;color:#aeb6d6;margin-top:8px;}
.foot .froute{display:inline-block;margin-top:14px;border:2px solid var(--cream);color:var(--cream);
  font-weight:900;font-size:11px;letter-spacing:2px;padding:9px 14px;transition:background .15s ease,border-color .15s ease;}
.foot .froute:hover{background:var(--red);border-color:var(--red);color:var(--cream);}
.foot .flinks{display:flex;flex-direction:column;gap:8px;font-weight:700;font-size:14px;}
.foot .flinks a{color:var(--cream);}
.foot .flinks a:hover{color:var(--pink);}
.foot .legal{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;
  border-top:2px solid rgba(244,236,220,.25);margin-top:44px;padding-top:20px;font-size:12px;color:#aeb6d6;letter-spacing:1px;}

/* ---------- MENU PAGE ---------- */
.menupage{min-height:100vh;padding:48px 0 72px;background-color:var(--washi);
  background-image:linear-gradient(rgba(234,224,202,.86),rgba(234,224,202,.86)),url('assets/wave-indigo.png');
  background-size:auto,170px 170px;}
.sheet{max-width:1180px;margin:0 auto;background:var(--cream);border:var(--edge);box-shadow:10px 10px 0 var(--indigo);
  position:relative;}
.sheet-head{border-bottom:var(--edge);padding:36px 48px;display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:20px;background:repeating-linear-gradient(0deg,var(--cream) 0 30px,#EFE5D0 30px 31px);
  position:relative;overflow:hidden;}
.sheet-head .rays{position:absolute;left:-90px;top:-90px;width:280px;height:280px;border-radius:50%;
  background:repeating-conic-gradient(rgba(216,73,74,.16) 0deg 12deg,transparent 12deg 28deg);pointer-events:none;}
.sheet-head .left{display:flex;align-items:center;gap:18px;position:relative;}
.back{display:inline-block;border:var(--edge);color:var(--indigo);font-weight:900;font-size:12px;letter-spacing:2px;
  padding:10px 16px;box-shadow:4px 4px 0 var(--red);background:var(--cream);white-space:nowrap;}
.back:hover{color:var(--indigo);}
.sheet-head .disc{width:64px;height:64px;background:var(--red);border:var(--edge);border-radius:50%;
  display:grid;place-items:center;color:var(--cream);font-weight:900;font-size:30px;font-family:'Archivo Black',sans-serif;flex:none;}
.sheet-head .title{font-family:'Archivo Black',sans-serif;font-size:34px;letter-spacing:1px;line-height:1;text-shadow:3px 3px 0 var(--red);}
.sheet-head .titlesub{font-size:13px;font-weight:700;letter-spacing:5px;color:var(--red);margin-top:6px;}
.sheet-head .right{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end;position:relative;}
.sheet-head .hcall{display:inline-flex;align-items:center;background:var(--indigo);color:var(--cream);
  font-family:'Archivo Black',sans-serif;font-size:14px;letter-spacing:1px;padding:12px 16px;box-shadow:4px 4px 0 var(--red);white-space:nowrap;transition:box-shadow .15s ease;}
.sheet-head .hcall:hover{color:var(--cream);box-shadow:2px 2px 0 var(--red);}
.sheet-head .hroute{display:inline-flex;align-items:center;background:var(--cream);color:var(--indigo);border:var(--edge);
  font-weight:900;font-size:12px;letter-spacing:1.5px;padding:10px 14px;box-shadow:4px 4px 0 var(--red);line-height:1.3;transition:box-shadow .15s ease;}
.sheet-head .hroute:hover{color:var(--indigo);box-shadow:2px 2px 0 var(--red);}
.intro-strip{background:var(--indigo);color:var(--cream);padding:10px 48px;display:flex;flex-wrap:wrap;
  justify-content:space-between;row-gap:4px;column-gap:20px;font-weight:700;font-size:12px;letter-spacing:2px;}
.cats-wrap{position:relative;overflow:hidden;padding:28px 48px 12px;}
.cats-head{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:18px;}
.cats-head .lead{font-weight:900;font-size:12px;letter-spacing:3px;color:var(--indigo);}
.cats-head .total{font-weight:700;font-size:11px;letter-spacing:2px;color:var(--muted);}
.cats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:18px;}
.cat{position:relative;aspect-ratio:1/1;background:var(--cream);border:var(--edge);box-shadow:5px 5px 0 var(--indigo);
  cursor:pointer;display:flex;flex-direction:column;overflow:hidden;
  transition:transform .26s cubic-bezier(.22,.8,.3,1),box-shadow .26s ease,background .26s ease;}
.cat:hover{transform:translate(-2px,-2px);box-shadow:7px 7px 0 var(--indigo);}
.cat:active{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--indigo);}
.cat .art{position:relative;flex:1;min-height:0;background:#EFE5D0;border-bottom:var(--edge);}
.cat .art .name{position:absolute;inset:0;display:grid;place-items:center;padding:14px;text-align:center;
  font-family:'Archivo Black',sans-serif;font-size:26px;line-height:1.05;letter-spacing:.5px;color:var(--indigo);text-shadow:3px 3px 0 var(--red);}
.cat .art .kanji{position:absolute;left:10px;top:8px;font-family:'Archivo Black',sans-serif;font-size:34px;color:rgba(216,73,74,.5);}
.cat .foot{display:flex;align-items:center;gap:10px;padding:10px 12px;}
.cat .foot .num{background:var(--red);color:var(--cream);font-family:'Archivo Black',sans-serif;font-size:12px;padding:4px 7px;flex:none;}
.cat .foot .fname{font-family:'Archivo Black',sans-serif;font-size:13.5px;letter-spacing:.3px;line-height:1.15;}
.cat .foot .count{font-size:9.5px;font-weight:700;letter-spacing:1.5px;color:var(--red);margin-top:3px;}
.cat.selected{background:var(--indigo);box-shadow:5px 5px 0 var(--red);}
.cat.selected:hover{box-shadow:7px 7px 0 var(--red);}
.cat.selected:active{box-shadow:2px 2px 0 var(--red);}
.cat.selected .art{background:#1b2547;}
.cat.selected .art .name{color:var(--cream);}
.cat.selected .foot{color:var(--cream);}
.cat.selected .foot .count{color:var(--pink);}
/* expandable panel */
.panel{margin:-2px 0 26px;background:var(--cream);border:var(--edge);box-shadow:6px 6px 0 var(--indigo);
  overflow:hidden;animation:panelIn .32s cubic-bezier(.22,.8,.3,1) both;}
.panel .phead{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:16px 20px;background:var(--indigo);color:var(--cream);}
.panel .phead .num{background:var(--red);color:var(--cream);font-family:'Archivo Black',sans-serif;font-size:15px;padding:6px 10px;flex:none;}
.panel .phead .ptitle{font-family:'Archivo Black',sans-serif;font-size:22px;letter-spacing:.5px;}
.panel .phead .psub{font-size:10.5px;font-weight:700;letter-spacing:2px;color:var(--pink);margin-top:4px;}
.panel .phead .grow{flex:1;min-width:0;}
.panel .phead .nav-btns{display:flex;align-items:center;gap:8px;font-weight:900;font-size:10.5px;letter-spacing:1.5px;}
.panel .phead .nav-btns .b{border:2px solid var(--cream);padding:8px 11px;cursor:pointer;transition:background .24s ease,color .24s ease;}
.panel .phead .nav-btns .b:hover{background:var(--cream);color:var(--indigo);}
.panel .phead .nav-btns .close{background:var(--red);border:0;}
.panel .phead .nav-btns .close:hover{background:var(--red);color:var(--cream);}
.panel .plist{padding:18px 20px 22px;columns:2;column-gap:40px;}
.dish{display:flex;align-items:baseline;gap:12px;padding:8px 0;min-width:0;border-top:2px dotted rgba(35,47,88,.22);
  break-inside:avoid;animation:rowIn .3s cubic-bezier(.22,.8,.3,1) both;}
.dish .num{background:var(--indigo);color:var(--cream);font-family:'Archivo Black',sans-serif;font-size:11px;
  padding:2px 6px;white-space:nowrap;align-self:center;flex:none;}
.dish .info{min-width:0;}
.dish .dname{font-weight:700;font-size:15px;}
.dish .ddesc{font-size:12px;color:var(--muted);line-height:1.5;margin-top:3px;}
.dish .dots{flex:1 1 auto;min-width:8px;border-bottom:2px dotted rgba(35,47,88,.4);transform:translateY(-3px);}
.dish .price{font-family:'Archivo Black',sans-serif;font-size:15px;white-space:nowrap;flex:none;}
.sheet-foot{border-top:var(--edge);padding:22px 48px;display:flex;justify-content:space-between;align-items:center;
  flex-wrap:wrap;gap:16px;background:#EFE5D0;background-image:repeating-linear-gradient(90deg,transparent 0 26px,rgba(216,73,74,.10) 26px 52px);}
.sheet-foot .fleft{display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
.sheet-foot .forder{display:inline-flex;align-items:center;background:var(--red);color:var(--cream);
  font-family:'Archivo Black',sans-serif;font-size:14px;letter-spacing:1px;padding:13px 18px;border:var(--edge);box-shadow:4px 4px 0 var(--indigo);transition:box-shadow .15s ease;}
.sheet-foot .forder:hover{color:var(--cream);box-shadow:2px 2px 0 var(--indigo);}
.sheet-foot .froute{display:inline-flex;align-items:center;background:var(--cream);color:var(--indigo);border:var(--edge);
  font-weight:900;font-size:12px;letter-spacing:1.5px;padding:12px 16px;box-shadow:4px 4px 0 var(--red);transition:box-shadow .15s ease;}
.sheet-foot .froute:hover{color:var(--indigo);box-shadow:2px 2px 0 var(--red);}
.sheet-foot .note{font-size:12px;font-weight:700;letter-spacing:1px;color:var(--muted);line-height:1.6;}
.sheet-foot .closedtag{background:var(--red);color:var(--cream);font-weight:900;font-size:11px;letter-spacing:2px;padding:6px 12px;border:2px solid var(--indigo);}
.sheet .stamp{position:absolute;right:-40px;top:-52px;width:84px;height:84px;transform:rotate(10deg);z-index:5;pointer-events:none;}
.sheet .stamp i{position:absolute;inset:8px;background:var(--red);border:2px solid var(--indigo);}
.sheet .stamp i:nth-child(1){transform:rotate(45deg);}
.sheet .stamp i:nth-child(2){transform:rotate(20deg);}
.sheet .stamp i:nth-child(3){transform:rotate(70deg);}
.sheet .stamp span{position:absolute;inset:0;display:grid;place-items:center;color:var(--cream);font-weight:900;font-size:14px;text-align:center;line-height:1.1;}

/* ---------- responsive ---------- */
@media (max-width:1000px){
  .hero{grid-template-columns:1fr;gap:36px;padding:40px 24px;}
  .hero .t1{font-size:74px;}
  .hero .t2{font-size:42px;}
  .poster{max-width:460px;}
  .about{grid-template-columns:1fr;gap:20px;padding:56px 24px;}
  .about .vlabel{writing-mode:horizontal-tb;font-size:32px;}
  .menuprev,.order{padding:56px 24px;}
  .cards{grid-template-columns:repeat(2,1fr);}
  .order .grid{grid-template-columns:1fr;gap:32px;}
  .foot{padding:48px 24px 32px;}
  .foot .grid{grid-template-columns:1fr;gap:32px;}
  .nav{padding:14px 20px;}
  .cats-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .sheet-head,.intro-strip,.cats-wrap,.sheet-foot{padding-left:24px;padding-right:24px;}
}
@media (max-width:640px){
  .nav-links{display:none;}
  .hero .t1{font-size:56px;text-shadow:5px 5px 0 var(--red);}
  .hero .t2{font-size:32px;text-shadow:3px 3px 0 var(--indigo);}
  .takeout-badge{font-size:18px;letter-spacing:5px;}
  .btn{padding:14px 20px;font-size:14px;}
  .hero-cta{flex-direction:column;}
  .hero-cta .btn{text-align:center;}
  .menuprev h2,.order h2{font-size:32px;}
  .cards{grid-template-columns:1fr;}
  .panel .plist{columns:1;}
  .cats-grid{grid-template-columns:1fr 1fr;}
  .marquee-strip .track{font-size:16px;}
  .sheet{margin:0 12px;}
  .sheet-head .title{font-size:26px;}
  .poster .card{box-shadow:6px 6px 0 var(--indigo);}
}
@media (max-width:400px){
  .cats-grid{grid-template-columns:1fr;}
  .hero{padding:32px 16px;}
}

/* ---------- performance: smooth scroll & animation on mobile ---------- */
/* Isolate the only continuously-animating elements onto their own GPU layers
   so their motion never forces a repaint of the rest of the page. */
.ticker,.marquee-strip{contain:content;}
.ticker .track,.marquee-strip .track{will-change:transform;transform:translateZ(0);backface-visibility:hidden;}
.poster .lantern .bulb{will-change:transform;}
/* Big decorative conic/radial gradients are expensive to paint. Keep the
   layout painting cheap by isolating each heavy section. */
.hero,.order,.menupage{contain:paint;}

@media (max-width:900px){
  /* Drop the costly decorative gradient overlays on phones — they add heavy
     paint work for almost no visual benefit at small sizes. */
  .hero .rays,.order .rays,.sheet-head .rays,.hero .dots,.mcard .dotpatch{display:none;}
  /* Flatten the tiled background image to a solid colour (no per-scroll paint). */
  .hero{background-image:none;}
  .menupage{background-image:none;}
  /* Stop the lantern sway on phones; it repaints inside the poster card. */
  .poster .lantern{animation:none;}
}

/* Honour users who prefer reduced motion: freeze all looping animations. */
@media (prefers-reduced-motion:reduce){
  .ticker .track,.marquee-strip .track,.poster .lantern,.panel,.dish{animation:none !important;}
}

/* ---------- mobile layout hardening (no horizontal overflow) ---------- */
html,body{max-width:100%;overflow-x:clip;}

@media (max-width:720px){
  /* Brand on row 1; language + phone wrap to their own full-width row 2,
     so the header can never be pushed wider than the screen. */
  .nav{flex-wrap:wrap;gap:10px 12px;}
  .nav-right{width:100%;justify-content:space-between;flex-wrap:wrap;gap:10px;}
  .btn-call{font-size:13px;padding:11px 14px;letter-spacing:0;}
}

@media (max-width:640px){
  .takeout-badge{font-size:16px;letter-spacing:4px;padding:9px 14px;max-width:100%;}
  .chip{letter-spacing:3px;}
  .poster{max-width:100%;}
  .poster .stamp{right:-6px;}
  /* Category tiles: grow to fit the title instead of a forced square, so long
     names ("TEMPURA & INSIDE-OUT ROLLS") never spill over the card. */
  .cat{aspect-ratio:auto;min-height:132px;}
  .cat .art{min-height:84px;overflow:hidden;display:grid;place-items:center;}
  .cat .art .name{position:static;text-align:center;line-height:1.06;
    font-size:clamp(13px,3.8vw,19px);text-shadow:2px 2px 0 var(--red);
    padding:10px 8px;overflow-wrap:anywhere;}
  .cat .art .kanji{font-size:22px;top:6px;left:8px;}
  .cat .foot .fname{font-size:12px;}
  .cat .foot .count{font-size:9px;}
}

@media (max-width:400px){
  .btn-call{font-size:12px;padding:10px 11px;}
  .brand .name{font-size:16px;}
  .brand .sub{font-size:9.5px;letter-spacing:2.5px;}
  .cats-grid{grid-template-columns:1fr;}
}
