:root{--black:#070707;--panel:#101010;--line:#292929;--red:#b51e24;--red2:#d32b31;--cream:#f4f0e8;--muted:#aaa49c;--radius:4px;--max:1380px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:128px}body{margin:0;background:var(--black);color:var(--cream);font-family:Arial,"Helvetica Neue",sans-serif;font-size:16px;line-height:1.6;overflow-x:hidden}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}.site-header{height:76px;position:fixed;inset:0 0 auto;z-index:50;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:28px;padding:0 max(24px,calc((100vw - var(--max))/2));background:rgba(7,7,7,.9);border-bottom:1px solid rgba(255,255,255,.12);backdrop-filter:blur(18px)}.brand{font-weight:900;letter-spacing:.16em;font-size:18px;white-space:nowrap}.brand span{color:var(--red2)}.brand small{font-weight:400;color:var(--muted);margin-left:5px}.site-header nav{display:flex;justify-content:center;gap:20px;font-size:13px}.site-header nav a{color:#d6d2cb}.site-header nav a:hover{color:#fff}.header-actions{display:flex;gap:8px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 20px;border:1px solid transparent;border-radius:var(--radius);text-transform:uppercase;letter-spacing:.08em;font-weight:800;font-size:12px;cursor:pointer;transition:.25s;white-space:nowrap}.btn:active{transform:translateY(1px)}.btn-red{background:var(--red);color:#fff}.btn-red:hover{background:var(--red2)}.btn-outline,.btn-ghost{border-color:#5a5752;color:#fff;background:transparent}.btn-outline:hover,.btn-ghost:hover{border-color:#fff}.menu-toggle{display:none}.hero{min-height:90dvh;position:relative;display:flex;align-items:center;padding:120px max(24px,calc((100vw - var(--max))/2));background:linear-gradient(90deg,rgba(0,0,0,.96) 0,rgba(0,0,0,.7) 40%,rgba(0,0,0,.12) 74%),url('assets/jenny-sam-hero.png') center/cover no-repeat}.hero-copy{width:min(630px,55%)}.kicker{color:#d8a59f;text-transform:uppercase;letter-spacing:.18em;font-size:11px;font-weight:800;margin:0 0 18px}.hero h1,.section h2,.menu-title h2{font-size:clamp(54px,8vw,118px);line-height:.82;letter-spacing:-.065em;margin:0;text-transform:uppercase}.hero h1 span{color:var(--red2)}.hero-lead{font-size:clamp(18px,2vw,25px);max-width:520px;color:#dfdbd3;margin:30px 0}.hero-actions{display:flex;gap:10px}.hero-meta{position:absolute;left:max(24px,calc((100vw - var(--max))/2));right:max(24px,calc((100vw - var(--max))/2));bottom:28px;display:flex;gap:36px;color:#c7c2ba;font-size:13px}.section{max-width:var(--max);margin:auto;padding:120px 24px}.intro{display:grid;grid-template-columns:70px 1.2fr 1fr;gap:48px;align-items:start}.section-no{color:var(--red2);font-weight:bold}.section h2,.menu-title h2{font-size:clamp(42px,6vw,82px)}.intro-text{padding-top:34px;color:#c4bfb7;font-size:18px}.intro-text ul{padding:0;list-style:none;margin-top:28px}.intro-text li{border-top:1px solid var(--line);padding:10px 0;color:#f1ede6}.section-head{margin-bottom:46px}.special-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;grid-template-rows:auto auto;gap:12px}.special{background:var(--panel);border:1px solid var(--line);overflow:hidden;transition:transform .3s}.special:hover{transform:translateY(-4px)}.special.large{grid-row:span 2}.food-img{height:230px;background-image:url('assets/jenny-sam-hero.png');background-size:1500px;background-repeat:no-repeat;transition:transform .5s}.large .food-img{height:520px;background-size:cover;background-position:55% center}.crop-rolls{background-position:80% 65%}.crop-sashimi{background-position:67% 20%}.crop-wok{background-position:92% 50%}.special>div:last-child{padding:20px}.special h3{font-size:24px;margin:2px 0}.special p{margin:0;color:var(--muted)}.special span{color:var(--red2);font-size:12px}.menu-section{border-top:1px solid var(--line);background:#0a0a0a}.menu-title{display:grid;grid-template-columns:1.5fr .6fr;align-items:end;gap:60px;padding-bottom:60px}.menu-title>p{color:var(--muted)}.category-nav{position:sticky;top:76px;z-index:20;display:flex;overflow-x:auto;padding:0 max(24px,calc((100vw - var(--max))/2));background:#0a0a0a;border-block:1px solid var(--line);scrollbar-width:none}.category-nav button{flex:none;border:0;border-right:1px solid var(--line);background:transparent;color:var(--muted);padding:18px;cursor:pointer}.category-nav button.active,.category-nav button:hover{color:#fff;background:var(--red)}.menu-wrap{max-width:var(--max);margin:auto;padding:50px 24px 110px;display:grid;grid-template-columns:1fr 360px;gap:40px}.menu-category{margin-bottom:64px}.menu-category h3{font-size:34px;margin:0 0 20px;text-transform:uppercase}.dish-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line)}.dish{background:#0d0d0d;padding:22px;min-height:180px;display:grid;grid-template-columns:1fr auto;gap:8px}.dish .nr{color:var(--red2);font-size:12px;font-weight:bold}.dish h4{margin:0;font-size:17px;letter-spacing:.04em}.dish p{grid-column:1/-1;color:var(--muted);margin:3px 0;font-size:14px}.dish .allergy{font-size:11px;color:#868078}.dish .price{font-size:18px;font-weight:900}.dish button{align-self:end;background:transparent;color:#fff;border:1px solid #474747;padding:8px 12px;cursor:pointer;border-radius:var(--radius)}.dish button:hover{background:var(--red);border-color:var(--red)}.cart{position:sticky;top:145px;height:max-content;background:#121212;border:1px solid var(--line);padding:24px}.cart-head{display:flex;justify-content:space-between}.cart-head h3{font-size:28px;margin:0}.cart-close{display:none;background:none;border:0;color:#fff;font-size:30px}.cart-items{margin:22px 0;max-height:42vh;overflow:auto}.empty{color:var(--muted)}.cart-line{display:grid;grid-template-columns:1fr auto;gap:5px;padding:12px 0;border-bottom:1px solid var(--line);font-size:13px}.qty{display:flex;align-items:center;gap:8px}.qty button{width:27px;height:27px;background:#242424;border:0;color:#fff}.cart label{font-size:12px;color:var(--muted)}textarea,input{width:100%;background:#090909;border:1px solid #3b3936;border-radius:var(--radius);padding:12px;color:#fff;margin-top:6px}.cart-total{display:flex;justify-content:space-between;font-size:20px;padding:20px 0}.full{width:100%}.allergens{padding-top:60px}.allergens details{border-block:1px solid var(--line)}summary{cursor:pointer;display:flex;justify-content:space-between;padding:28px 0;font-size:24px;font-weight:bold}.allergen-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.allergen-grid p{margin:0;color:var(--muted)}.allergen-grid b{color:#fff;margin-right:6px}.fineprint{color:#8e8982;font-size:13px}.gallery-grid{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:240px 240px;gap:10px}.gallery-item{border:0;background-image:url('assets/jenny-sam-hero.png');background-size:1500px;cursor:zoom-in}.g1{grid-row:span 2;background-size:cover;background-position:65%}.g2{grid-column:span 2;background-position:70% 20%}.g3{background-position:82% 65%}.g4{background-position:60% 70%}.reservation{display:grid;grid-template-columns:1fr 1fr;gap:100px;border-top:1px solid var(--line)}.reservation>div>p:last-child{color:var(--muted);max-width:440px}.reservation form{display:grid;gap:16px}.reservation label{font-size:12px;color:#bbb}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.contact{display:grid;grid-template-columns:1fr 1.4fr;gap:70px}.contact address{font-style:normal;margin:28px 0}.contact a:not(.btn){text-decoration:underline;text-decoration-color:#5d5a55}.contact iframe{width:100%;height:580px;border:0;filter:grayscale(1) contrast(1.15)}footer{border-top:2px solid var(--red);padding:70px max(24px,calc((100vw - var(--max))/2)) 22px;background:#030303}.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr .7fr;gap:50px}.footer-grid h3{font-size:14px;text-transform:uppercase}.footer-grid p,.footer-grid a,.footer-grid button{color:var(--muted)}.footer-grid>div:last-child{display:flex;flex-direction:column;align-items:flex-start}.footer-grid button{border:0;background:none;padding:0;cursor:pointer}.footer-bottom{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:22px;margin-top:55px;color:#777;font-size:12px}.footer-bottom b{color:var(--red2)}.wa-float,.cart-fab{position:fixed;z-index:45;bottom:20px;border-radius:var(--radius);font-weight:bold}.wa-float{right:20px;background:#1a9a52;color:#fff;padding:12px 18px}.cart-fab{display:none;left:20px;background:var(--red);color:#fff;border:0;padding:13px 16px}.cart-fab b{background:#fff;color:#111;padding:3px 7px;margin-left:5px}dialog{background:#090909;border:1px solid #333;color:#fff;max-width:850px;padding:20px}dialog::backdrop{background:rgba(0,0,0,.9)}#lightbox img{width:100%;display:block}dialog>button{float:right;background:#111;color:#fff;border:1px solid #555;font-size:25px}#legal-content{padding:30px;max-width:70ch}.reveal{animation:fadeup .7s ease-out both}@keyframes fadeup{from{opacity:0;transform:translateY(18px)}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
@media(max-width:1100px){.site-header{grid-template-columns:auto 1fr auto}.site-header nav{position:fixed;inset:76px 0 auto;background:#080808;display:none;flex-direction:column;padding:25px}.site-header nav.open{display:flex}.menu-toggle{display:block;justify-self:end;background:none;border:0;width:42px}.menu-toggle span{display:block;height:2px;background:#fff;margin:8px}.header-actions .btn-outline{display:none}.menu-wrap{grid-template-columns:1fr}.cart{display:none;position:fixed;inset:76px 0 0;z-index:60;overflow:auto}.cart.open{display:block}.cart-close,.cart-fab{display:block}.special-grid{grid-template-columns:1fr 1fr}.special.large{grid-row:auto;grid-column:span 2}.large .food-img{height:400px}.allergen-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.site-header{height:68px;padding:0 16px;gap:8px}.header-actions{display:none}.site-header nav{top:68px}.hero{min-height:88dvh;padding:95px 20px;background-position:62% center}.hero-copy{width:100%}.hero h1{font-size:63px}.hero-lead{font-size:17px;max-width:310px}.hero-actions{flex-direction:column;align-items:flex-start}.hero-meta{left:20px;bottom:18px;display:block}.hero-meta span{display:block}.section{padding:80px 18px}.intro{grid-template-columns:1fr;gap:10px}.section-no{display:none}.section h2,.menu-title h2{font-size:44px}.intro-text{padding-top:10px}.special-grid{display:block}.special{margin-bottom:10px}.special.large{grid-column:auto}.special .food-img,.large .food-img{height:260px}.menu-title{display:block;padding-bottom:45px}.menu-title>p{margin-top:25px}.category-nav{top:68px;padding-left:18px}.category-nav button{padding:14px}.menu-wrap{padding:35px 16px 90px}.dish-grid{grid-template-columns:1fr}.dish{min-height:165px}.allergen-grid{grid-template-columns:1fr}.gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:250px 170px 170px}.g1{grid-column:span 2;grid-row:auto}.g2{grid-column:auto}.reservation,.contact{grid-template-columns:1fr;gap:45px}.form-row{grid-template-columns:1fr}.contact iframe{height:400px}.footer-grid{grid-template-columns:1fr 1fr}.footer-bottom{display:block}.wa-float span{display:none}.wa-float{padding:13px}.cart{top:68px}.cart-fab{bottom:18px}.cart-items{max-height:36vh}}

/* 2026 visual refinement: one quiet system, stronger food-led hierarchy */
:root{--black:#080808;--panel:#11100f;--line:#2d2a28;--red:#a9131a;--red2:#db3037;--cream:#f7f5f1;--muted:#bdb7ae;--space-section:clamp(5.5rem,9vw,9rem);--space-gutter:clamp(1.1rem,3.2vw,2.5rem);--max:1320px}
body{background:var(--black);font-family:"Segoe UI Variable Text","Aptos",sans-serif;letter-spacing:.005em}
p{max-width:68ch;text-wrap:pretty}h1,h2,h3{font-family:"Bahnschrift SemiCondensed","Segoe UI Variable Display",sans-serif;text-wrap:balance;letter-spacing:-.035em}
.site-header{height:72px;padding-inline:max(var(--space-gutter),calc((100vw - var(--max))/2));grid-template-columns:170px 1fr auto;gap:20px;background:rgba(8,8,8,.96);border-color:#252321}.brand{font-size:17px}.site-header nav{gap:clamp(12px,1.4vw,22px)}.site-header nav a{font-size:12px}.header-actions .btn{min-height:42px;padding-inline:16px}
.btn{border-radius:2px;min-height:48px;letter-spacing:.06em}.btn-red{box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.hero{min-height:92dvh;padding-inline:max(var(--space-gutter),calc((100vw - var(--max))/2));background:linear-gradient(90deg,#050505 0,rgba(5,5,5,.86) 34%,rgba(5,5,5,.28) 68%,rgba(5,5,5,.08)),url('assets/jenny-sam-hero.png') 58% center/cover no-repeat}
.hero-copy{width:min(600px,52%)}.hero h1{font-size:clamp(4.6rem,8vw,6rem);line-height:.84;letter-spacing:-.04em}.hero-lead{font-size:clamp(1.05rem,1.8vw,1.35rem);line-height:1.55;margin:28px 0 32px}.hero-meta{bottom:24px;padding-top:16px;border-top:1px solid rgba(255,255,255,.2);justify-content:space-between}
.kicker{letter-spacing:.11em;color:#e1a7a3;margin-bottom:14px}.section{padding:var(--space-section) var(--space-gutter)}.section h2,.menu-title h2{font-size:clamp(2.8rem,5.2vw,4.9rem);line-height:.94;letter-spacing:-.04em}
.intro{grid-template-columns:minmax(0,1.2fr) minmax(280px,.72fr);gap:clamp(48px,8vw,120px);align-items:end}.intro .section-no{display:none}.intro-text{padding:0;font-size:17px}.intro-text ul{margin:28px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:0 22px}.intro-text li{padding:12px 0}
.specials{padding-top:0}.specials .section-head{max-width:780px;margin-bottom:36px}.special-grid{grid-template-columns:1.45fr .8fr .8fr;gap:2px;background:var(--line)}.special{border:0;background:#0d0d0d}.special.large{grid-row:span 2}.special>div:last-child{padding:18px 20px 22px}.special h3{font-size:22px;letter-spacing:-.02em}.special p{font-size:14px}.special .food-img{filter:saturate(.9) contrast(1.05)}
.menu-section{background:#0b0b0b}.menu-title{grid-template-columns:minmax(0,1.3fr) minmax(260px,.55fr);padding-top:var(--space-section);padding-bottom:clamp(3rem,6vw,5rem)}.menu-title>p{font-size:16px;line-height:1.75}.category-nav{top:72px;background:rgba(11,11,11,.97);backdrop-filter:blur(12px);padding-inline:max(var(--space-gutter),calc((100vw - var(--max))/2))}.category-nav button{padding:15px 18px;font-size:13px;white-space:nowrap}.menu-wrap{grid-template-columns:minmax(0,1fr) 330px;gap:clamp(28px,4vw,56px);padding:clamp(2.5rem,5vw,4.5rem) var(--space-gutter) var(--space-section)}.menu-category{margin-bottom:clamp(52px,7vw,80px)}.menu-category h3{font-size:clamp(1.65rem,3vw,2.3rem);letter-spacing:-.025em;margin-bottom:16px}.dish-grid{gap:0;background:transparent;border-top:1px solid var(--line)}.dish{background:transparent;padding:18px 8px 18px 0;min-height:150px;border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto}.dish:nth-child(odd){padding-right:24px}.dish:nth-child(even){padding-left:24px}.dish h4{font-size:16px}.dish p{font-size:13px;line-height:1.55}.dish .price{font-size:16px}.dish button{min-width:96px;min-height:40px;border-color:#56504b}.cart{top:132px;padding:22px;background:#141311;border-color:#3a3531}.cart-head h3{font-size:25px}.cart textarea{background:#0c0c0b}.allergens{padding-top:0}.allergens details{border-color:#3a3531}.allergens summary{font-size:clamp(1.35rem,2vw,1.8rem)}
.gallery{padding-top:clamp(4rem,7vw,7rem)}.gallery .section-head{margin-bottom:30px}.gallery-grid{gap:3px}.gallery-item{filter:saturate(.8);transition:filter .3s ease,transform .4s cubic-bezier(.16,1,.3,1)}.gallery-item:hover{filter:saturate(1.05);transform:scale(.995)}
.reservation{gap:clamp(48px,9vw,120px);align-items:start;background:#0c0c0c;max-width:none;padding-inline:max(var(--space-gutter),calc((100vw - var(--max))/2))}.reservation form{padding-top:6px}.reservation input,.reservation textarea{min-height:48px;background:#111;border-color:#48433f}.reservation textarea{min-height:100px}.reservation label{color:#d2cdc5}
.contact{gap:clamp(48px,8vw,100px);align-items:center}.contact-info p{line-height:1.75}.contact iframe{height:520px;filter:grayscale(1) contrast(1.05) brightness(.86)}
footer{padding-top:64px}.footer-grid{gap:clamp(30px,5vw,70px)}.wa-float,.cart-fab{bottom:18px}
*:focus-visible{outline:2px solid #ff656a;outline-offset:3px}
@media(max-width:1180px){.site-header{grid-template-columns:auto 42px auto}.menu-toggle{display:block}.site-header nav{position:fixed;inset:72px 0 auto;background:#080808;display:none;flex-direction:column;padding:28px var(--space-gutter);border-bottom:1px solid var(--line)}.site-header nav.open{display:flex}.header-actions .btn-outline{display:none}.menu-wrap{grid-template-columns:1fr}.cart{display:none;position:fixed;inset:72px 0 0;z-index:60;overflow:auto}.cart.open{display:block}.cart-close,.cart-fab{display:block}}
@media(max-width:760px){html{scroll-padding-top:116px}.site-header{height:64px;padding-inline:16px;grid-template-columns:1fr 44px}.header-actions{display:none}.site-header nav{top:64px}.hero{min-height:90dvh;padding:96px 18px 88px;background:linear-gradient(0deg,#070707 0,rgba(7,7,7,.62) 54%,rgba(7,7,7,.2)),url('assets/jenny-sam-hero.png') 66% center/cover no-repeat;align-items:flex-end}.hero-copy{width:100%}.hero h1{font-size:clamp(3.8rem,18vw,5rem)}.hero-lead{max-width:34ch;margin:20px 0 24px}.hero-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.hero-actions .btn{padding-inline:10px}.hero-meta{display:none}.section{padding-inline:18px}.section h2,.menu-title h2{font-size:clamp(2.55rem,12vw,3.4rem)}.intro{grid-template-columns:1fr;gap:34px}.intro-text{font-size:16px}.intro-text ul{grid-template-columns:1fr}.special-grid{display:grid;grid-template-columns:1fr 1fr}.special.large{grid-column:span 2}.special .food-img,.large .food-img{height:220px}.special.large .food-img{height:330px}.special>div:last-child{padding:16px}.special h3{font-size:19px}.special p{font-size:13px}.menu-title{display:block;padding-inline:18px}.menu-title>p{margin-top:24px}.category-nav{top:64px;padding-left:18px}.category-nav button{padding:13px 15px}.menu-wrap{padding-inline:18px}.dish-grid{grid-template-columns:1fr}.dish,.dish:nth-child(odd),.dish:nth-child(even){padding:18px 0;min-height:148px}.dish button{min-height:44px}.gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:240px 150px 150px}.reservation,.contact{grid-template-columns:1fr;padding-inline:18px}.contact iframe{height:360px}.footer-grid{grid-template-columns:1fr 1fr}.footer-bottom{gap:10px}.cart{top:64px}.wa-float{right:14px}.cart-fab{left:14px}}
@media(max-width:430px){.hero-actions{grid-template-columns:1fr}.special-grid{display:block;background:transparent}.special{margin-bottom:3px}.special.large .food-img,.special .food-img{height:240px}.footer-grid{grid-template-columns:1fr}.gallery-grid{grid-template-rows:210px 130px 130px}.dish h4{font-size:15px}}

/* Japanese motion language */
:root{--ease-out:cubic-bezier(.16,1,.3,1);--ease-soft:cubic-bezier(.25,1,.5,1)}
.noren{position:fixed;inset:0;z-index:100;display:grid;grid-template-columns:1fr 1.2fr 1fr;pointer-events:none;animation:noren-away .9s var(--ease-out) .7s forwards}.noren>div{position:relative;background:#8f1016;border-right:1px solid rgba(0,0,0,.38);transform-origin:top;box-shadow:inset 0 -10px 0 rgba(0,0,0,.1)}.noren>div:nth-child(2){display:grid;place-content:center;text-align:center}.noren span{font-weight:900;letter-spacing:.24em;font-size:clamp(16px,2vw,26px)}.noren i{font-style:normal;font-size:46px;margin-top:10px}.noren>div:after{content:"";position:absolute;left:0;right:0;bottom:-18px;height:19px;background:inherit;clip-path:polygon(0 0,100% 0,94% 100%,84% 45%,72% 100%,60% 45%,48% 100%,36% 45%,24% 100%,12% 45%,5% 100%)}
@keyframes noren-away{to{transform:translateY(-108%);visibility:hidden}}
.scroll-progress{position:fixed;inset:0 0 auto;z-index:80;height:2px;background:transparent;pointer-events:none}.scroll-progress span{display:block;width:100%;height:100%;background:var(--red2);transform:scaleX(var(--scroll,0));transform-origin:left;box-shadow:0 0 14px rgba(219,48,55,.7)}
.site-header{transition:background .3s,border-color .3s,box-shadow .3s}.site-header.scrolled{background:rgba(5,5,5,.98);border-color:#42312f;box-shadow:0 5px 8px rgba(0,0,0,.22)}.site-header nav a{position:relative}.site-header nav a:after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:1px;background:var(--red2);transform:scaleX(0);transform-origin:right;transition:transform .3s var(--ease-out)}.site-header nav a:hover:after{transform:scaleX(1);transform-origin:left}
.hero{overflow:hidden;background-position:calc(58% + var(--hero-x,0px)) calc(50% + var(--hero-y,0px));transition:background-position .35s var(--ease-soft)}.hero:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,transparent 28%,rgba(255,255,255,.07) 46%,transparent 62%);transform:translateX(-110%);animation:blade-light 1.3s var(--ease-out) 1.25s both}.hero-copy{position:relative;z-index:2}.hero-copy .kicker{animation:ink-enter .65s var(--ease-out) 1.05s both}.hero h1{animation:title-cut .75s var(--ease-out) 1.12s both}.hero-lead{animation:ink-enter .65s var(--ease-out) 1.25s both}.hero-actions{animation:ink-enter .65s var(--ease-out) 1.35s both}.hero-meta{animation:ink-enter .65s var(--ease-out) 1.45s both}.hero-kanji{position:absolute;z-index:1;right:max(24px,calc((100vw - var(--max))/2));top:18%;font-family:"Yu Mincho","MS Mincho",serif;font-size:clamp(24px,3vw,43px);line-height:1.45;color:rgba(255,255,255,.58);writing-mode:vertical-rl;letter-spacing:.2em;text-shadow:0 2px 18px #000;animation:kanji-enter .9s var(--ease-out) 1.5s both}
@keyframes title-cut{from{opacity:0;clip-path:inset(0 100% 0 0);transform:translateX(-22px)}to{opacity:1;clip-path:inset(0);transform:none}}@keyframes ink-enter{from{opacity:0;filter:blur(8px);transform:translateY(14px)}to{opacity:1;filter:blur(0);transform:none}}@keyframes kanji-enter{from{opacity:0;transform:translateY(-28px)}to{opacity:1;transform:none}}@keyframes blade-light{to{transform:translateX(110%)}}
.btn{position:relative;overflow:hidden;isolation:isolate;transition:transform .18s,background .25s,border-color .25s,color .25s}.btn:before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(255,255,255,.12);transform:translateX(-105%) skewX(-14deg);transition:transform .38s var(--ease-out)}.btn:hover:before{transform:translateX(0) skewX(0)}.btn:hover{transform:translateY(-2px)}.btn:active{transform:scale(.97)}
.special{position:relative}.special:after{content:"";position:absolute;inset:auto 0 0;height:2px;background:var(--red2);transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease-out)}.special:hover:after{transform:scaleX(1);transform-origin:left}.special:hover .food-img{transform:scale(1.045);filter:saturate(1.08) contrast(1.05)}
.menu-category h3{position:relative;display:flex;align-items:center;gap:16px}.menu-category h3:after{content:"";height:1px;flex:1;background:linear-gradient(90deg,var(--red),transparent);transform-origin:left;transform:scaleX(.25);transition:transform .75s var(--ease-out)}.menu-category.in-view h3:after{transform:scaleX(1)}
.dish{position:relative;transition:background .24s,transform .24s var(--ease-out)}.dish:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(169,19,26,.15),transparent 65%);opacity:0;transition:opacity .25s}.dish:hover{background:#12100f;transform:translateX(3px)}.dish:hover:before{opacity:1}.dish>*{position:relative}.dish button{transition:background .2s,border-color .2s,transform .12s}.dish button:active{transform:scale(.93)}
.cart-fab.bump b{animation:cart-bump .35s var(--ease-out)}@keyframes cart-bump{50%{transform:scale(1.35);background:var(--red2);color:#fff}}
.category-nav button{position:relative;transition:color .2s,background .25s}.category-nav button:after{content:"";position:absolute;inset:auto 12px 0;height:2px;background:#fff;transform:scaleX(0);transition:transform .3s var(--ease-out)}.category-nav button.active:after{transform:scaleX(1)}
.gallery-item{position:relative;overflow:hidden}.gallery-item:after{content:"ANSEHEN";position:absolute;display:grid;place-items:center;inset:0;background:rgba(120,8,13,.68);color:#fff;font-family:"Bahnschrift SemiCondensed","Segoe UI Variable Display",sans-serif;font-size:16px;letter-spacing:.12em;opacity:0;transition:opacity .28s}.gallery-item:hover:after{opacity:1}
dialog[open]{animation:dialog-in .36s var(--ease-out) both}dialog[open]::backdrop{animation:backdrop-in .25s both}@keyframes dialog-in{from{opacity:0;transform:translateY(16px) scale(.98)}}@keyframes backdrop-in{from{opacity:0}}
.allergens details[open] .plus{transform:rotate(45deg)}.allergens .plus{display:inline-block;transition:transform .3s var(--ease-out)}
.reservation input,.reservation textarea{transition:border-color .2s,background .2s,box-shadow .2s}.reservation input:focus,.reservation textarea:focus{border-color:var(--red2);background:#141010;box-shadow:0 0 0 3px rgba(219,48,55,.12)}
.wa-float{transition:transform .2s var(--ease-out),background .2s}.wa-float:hover{transform:translateY(-4px) rotate(-1deg);background:#20ad5d}
.motion-reveal{opacity:0;transform:translateY(28px);filter:blur(5px)}.motion-reveal.is-visible{animation:section-ink .72s var(--ease-out) forwards}@keyframes section-ink{to{opacity:1;transform:none;filter:none}}
@media(max-width:760px){.noren{grid-template-columns:1fr 1.5fr 1fr}.hero-kanji{right:16px;top:14%;font-size:25px}.hero{background-position:66% center}.dish:hover{transform:none}.motion-reveal{transform:translateY(18px)}}
@media(prefers-reduced-motion:reduce){.noren{display:none}.hero:after{display:none}.hero-copy .kicker,.hero h1,.hero-lead,.hero-actions,.hero-meta,.hero-kanji,.motion-reveal,.motion-reveal.is-visible{animation:none!important;opacity:1;filter:none;transform:none}.scroll-progress{display:none}}

/* Speisekarte: scan-friendly on desktop, thumb-friendly on mobile */
.menu-tools{max-width:var(--max);margin:0 auto 20px;padding:0 var(--space-gutter);display:grid;grid-template-columns:minmax(260px,460px) 1fr auto;gap:14px;align-items:end}.menu-tools label{display:grid;gap:7px}.menu-tools label>span{font-size:12px;font-weight:700;color:#d2cdc5}.menu-search input,.menu-select select{height:50px;margin:0;padding:0 46px 0 16px;border:1px solid #49433f;background:#111;color:#fff;border-radius:2px}.menu-search{position:relative}.menu-search:after{content:"SUCHEN";position:absolute;right:14px;bottom:15px;font-size:9px;letter-spacing:.1em;color:#bdb7ae;pointer-events:none}.menu-select{display:none}.menu-result{padding-bottom:13px;color:#d2cdc5;font-size:13px;white-space:nowrap}
.dish-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;border:0}.dish,.dish:nth-child(odd),.dish:nth-child(even){min-height:176px;padding:20px;background:#11100f;border:1px solid #2f2c29;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto 1fr auto;column-gap:18px}.dish .nr{display:inline-block;margin-bottom:6px;color:#ed6469;letter-spacing:.08em}.dish h4{font-size:17px;line-height:1.3;letter-spacing:.015em}.dish p{align-self:start;margin:6px 0 12px;color:#bbb5ad;font-size:14px}.dish .allergy{align-self:end;color:#aaa39b;font-size:12px}.dish .price{font-size:19px;color:#fff;white-space:nowrap}.dish button{align-self:end;min-height:42px;background:#1b1917}.dish:hover{transform:translateY(-2px);border-color:#5b3635;background:#151211}.menu-category[hidden]{display:none}.dish[hidden]{display:none}.menu-empty{padding:42px 20px;border:1px solid var(--line);color:var(--muted);text-align:center}
@media(max-width:900px){.menu-tools{grid-template-columns:1fr 1fr auto}.menu-select{display:grid}.category-nav{display:none}.menu-wrap{padding-top:24px}.dish-grid{grid-template-columns:1fr}.dish,.dish:nth-child(odd),.dish:nth-child(even){min-height:160px}.cart{top:64px}}
@media(max-width:620px){.menu-tools{position:sticky;top:64px;z-index:18;grid-template-columns:1fr 1fr;padding:12px 16px;margin:0;background:rgba(11,11,11,.98);border-block:1px solid var(--line);backdrop-filter:blur(12px)}.menu-tools label>span{font-size:11px}.menu-search input,.menu-select select{height:46px;font-size:14px;padding-inline:12px}.menu-search:after{display:none}.menu-result{grid-column:1/-1;padding:0;font-size:12px}.menu-wrap{padding-top:26px}.menu-category{margin-bottom:48px}.menu-category h3{font-size:24px}.dish,.dish:nth-child(odd),.dish:nth-child(even){min-height:0;padding:16px;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto auto;gap:7px 12px}.dish p{margin:3px 0 8px}.dish .allergy{grid-column:1}.dish button{grid-column:2;grid-row:3;min-width:104px}.dish .price{font-size:18px}.cart-fab{padding-bottom:max(13px,env(safe-area-inset-bottom))}.wa-float{bottom:max(18px,env(safe-area-inset-bottom))}}

/* Spezialitäten: balanced photographic bento */
.specials .section-head{margin-bottom:clamp(28px,4vw,44px)}
.special-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.62fr) minmax(0,.62fr);grid-template-rows:290px 265px;grid-template-areas:"sushi rolls sashimi" "sushi vietnam vietnam";gap:8px;background:transparent}
.special{min-width:0;min-height:0;margin:0!important;border:0;background:#0d0d0d;isolation:isolate;overflow:hidden}
.special:nth-child(1){grid-area:sushi}.special:nth-child(2){grid-area:rolls}.special:nth-child(3){grid-area:sashimi}.special:nth-child(4){grid-area:vietnam}
.special.large{grid-column:auto;grid-row:auto}.special-grid>.special.large{grid-area:sushi}
.special .food-img,.special.large .food-img,.large .food-img{position:absolute;inset:0;width:100%;height:100%;background-size:cover;filter:saturate(.86) contrast(1.08);transform:scale(1.01);transition:transform .7s var(--ease-out),filter .45s}
.special:nth-child(1) .food-img{background-image:url('assets/jenny-sam-hero.png');background-position:61% 50%}.special:nth-child(2) .food-img{background-image:url('assets/special-rolls.png');background-position:58% 50%}.special:nth-child(3) .food-img{background-image:url('assets/sashimi.png');background-position:58% 50%}.special:nth-child(4) .food-img{background-image:url('assets/vietnamesisch.png');background-position:46% 53%}
.special>div:last-child{position:absolute;z-index:2;inset:auto 0 0;padding:54px 24px 22px;background:linear-gradient(0deg,rgba(4,4,4,.97) 0,rgba(4,4,4,.72) 55%,transparent 100%)}
.special h3{margin:0 0 5px;color:#fff;font-size:clamp(20px,2vw,28px);line-height:1.1;text-shadow:0 2px 12px #000}.special p{max-width:42ch;margin:0;color:#ded9d2;font-size:14px;line-height:1.5;text-shadow:0 1px 8px #000}.special.large h3{font-size:clamp(26px,3vw,38px)}
.special:after{z-index:3;height:3px}.special:hover{transform:none}.special:hover .food-img{transform:scale(1.07);filter:saturate(1.04) contrast(1.08)}
@media(max-width:900px){.special-grid{grid-template-columns:1fr 1fr;grid-template-rows:360px 245px 245px;grid-template-areas:"sushi sushi" "rolls sashimi" "vietnam vietnam"}.special:nth-child(1) .food-img{background-position:60% 55%}}
@media(max-width:560px){.special-grid{display:grid;grid-template-columns:1fr;grid-template-rows:310px repeat(3,225px);grid-template-areas:"sushi" "rolls" "sashimi" "vietnam";gap:6px}.special>div:last-child{padding:48px 18px 17px}.special h3,.special.large h3{font-size:23px}.special p{font-size:13px}.special:nth-child(4) .food-img{background-position:66% 65%}}

.gallery-grid .g1{background-image:url('assets/jenny-sam-hero.png')}.gallery-grid .g2{background-image:url('assets/special-rolls.png');background-size:cover;background-position:50% 52%}.gallery-grid .g3{background-image:url('assets/sashimi.png');background-size:cover;background-position:55% 52%}.gallery-grid .g4{background-image:url('assets/vietnamesisch.png');background-size:cover;background-position:47% 50%}

.menu-category:not([hidden]){animation:menu-category-in .4s var(--ease-out) both}@keyframes menu-category-in{from{opacity:0;transform:translateY(10px)}}

.dish.has-photo{grid-template-columns:68px minmax(0,1fr) auto}.dish-photo{grid-column:1;grid-row:1/4;width:68px;height:68px;align-self:center;object-fit:cover;border-radius:2px;background:#f5f3ef;image-rendering:auto;filter:contrast(1.08) saturate(1.04)}.dish.has-photo>div{grid-column:2}.dish.has-photo .price{grid-column:3}.dish.has-photo p{grid-column:2/-1}.dish.has-photo .allergy{grid-column:2}.dish.has-photo button{grid-column:3}
@media(max-width:620px){.dish.has-photo{grid-template-columns:60px minmax(0,1fr) auto}.dish-photo{width:60px;height:60px;grid-row:1/3}.dish.has-photo>div{grid-column:2}.dish.has-photo .price{grid-column:3}.dish.has-photo p{grid-column:2/-1}.dish.has-photo .allergy{grid-column:1/3}.dish.has-photo button{grid-column:3;grid-row:3}}
.hero{min-height:0;margin-top:76px;padding:0;background:#070707;display:block}.hero-banner{display:block;width:100%;height:auto;margin:0;object-fit:contain;filter:saturate(.92) contrast(1.04)}.hero-copy{width:min(calc(100% - 2 * var(--space-gutter)),var(--max));margin:auto;padding:clamp(24px,3vw,40px) 0;display:flex;align-items:center;justify-content:space-between;gap:40px}.hero-copy>div:first-child{max-width:620px}.hero .kicker{margin-bottom:8px}.hero-lead{margin:0;max-width:600px;font-size:clamp(17px,1.7vw,22px);line-height:1.5}.hero-actions{flex:none}.hero-meta{position:static;width:min(calc(100% - 2 * var(--space-gutter)),var(--max));margin:auto;padding:0 0 24px;font-size:12px;border:0}.hero-kanji{display:none}
@media(max-width:760px){.hero{min-height:0;margin-top:64px;padding:10px 12px 0;background:#070707}.hero-banner{width:100%;height:auto;object-fit:contain}.hero-copy{width:100%;padding:22px 6px 18px;display:block}.hero-lead{max-width:34ch;margin:0}.hero-actions{display:grid;grid-template-columns:1fr 1fr;margin-top:20px}.hero-meta{display:flex;position:static;padding:0 6px 20px;gap:8px 20px;flex-wrap:wrap}.hero-meta span{display:block}}
@media(max-width:430px){.hero-actions{grid-template-columns:1fr}}
.brand{display:inline-flex;align-items:center;gap:10px}.brand img{width:52px;height:52px;object-fit:cover;border-radius:50%}.brand>span{display:inline-flex;align-items:baseline;gap:5px}.brand>span b{color:var(--red2)}.brand>span small{margin-left:2px}
@media(max-width:760px){.site-header .brand img{width:44px;height:44px}.site-header .brand>span{font-size:14px}.site-header .brand small{display:none}}
.site-footer{border-top:3px solid var(--red);padding:0 max(var(--space-gutter),calc((100vw - var(--max))/2));background:#050505}.footer-lead{display:flex;align-items:center;justify-content:space-between;gap:48px;padding:clamp(48px,7vw,84px) 0;border-bottom:1px solid var(--line)}.footer-identity{display:flex;align-items:center;gap:clamp(24px,4vw,52px)}.footer-identity img{display:block;width:132px;height:132px;object-fit:contain}.footer-identity p{margin:0 0 10px;color:#d7a29d;font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.footer-identity h2{margin:0;font-size:clamp(34px,4vw,58px);line-height:.95;letter-spacing:-.035em;text-transform:uppercase}.footer-cta{display:flex;gap:10px;flex:none}.site-footer .footer-grid{display:grid;grid-template-columns:1.15fr 1.1fr 1fr .8fr;gap:clamp(30px,5vw,72px);padding:clamp(42px,6vw,70px) 0}.site-footer .footer-grid h3{margin:0 0 18px;color:#fff;font-size:12px;letter-spacing:.12em;text-transform:uppercase}.site-footer .footer-grid p,.site-footer .footer-grid address{margin:0;color:#aaa49c;font-style:normal}.site-footer .footer-grid>div{display:flex;flex-direction:column;align-items:flex-start;gap:9px}.site-footer .footer-grid a{color:#d8d3cb;text-decoration:none}.site-footer .footer-grid a:hover{color:#fff;text-decoration:underline;text-decoration-color:var(--red2);text-underline-offset:4px}.site-footer .footer-grid p{width:100%;display:flex;justify-content:space-between;gap:16px}.site-footer .footer-grid p strong{color:#e8e3dc;font-weight:600}.site-footer .footer-bottom{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;margin:0;padding:22px 0;color:#777}.site-footer .footer-bottom>span:last-child{text-align:right}.site-footer .footer-bottom div{display:flex;gap:18px}.site-footer .footer-bottom button{padding:0;border:0;background:none;color:#aaa49c;cursor:pointer;font-size:12px}.site-footer .footer-bottom button:hover{color:#fff}.site-footer .footer-bottom b{color:var(--red2)}
@media(max-width:900px){.footer-lead{align-items:flex-end}.footer-identity img{width:104px;height:104px}.footer-cta{flex-direction:column}.site-footer .footer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.footer-lead{display:block;padding:44px 0}.footer-identity{align-items:flex-start;gap:18px}.footer-identity img{width:82px;height:82px}.footer-identity h2{font-size:34px}.footer-identity p{font-size:10px}.footer-cta{display:grid;grid-template-columns:1fr 1fr;margin-top:28px}.footer-cta .btn{padding-inline:10px}.site-footer .footer-grid{grid-template-columns:1fr 1fr;gap:36px 24px;padding:42px 0}.site-footer .footer-bottom{grid-template-columns:1fr;gap:10px}.site-footer .footer-bottom>span:last-child{text-align:left}.site-footer .footer-bottom div{grid-row:2}}
@media(max-width:390px){.footer-identity h2{font-size:30px}.footer-cta,.site-footer .footer-grid{grid-template-columns:1fr}}

.menu-title-aside{align-self:end}.menu-title-aside>p{margin:0 0 20px;color:var(--muted)}
.pdf-menu-link{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:54px;padding:0 16px;border:1px solid #514b47;border-radius:10px;background:#11100f;color:#fff;transition:background-color .22s ease,border-color .22s ease,transform .22s var(--ease-out)}
.pdf-menu-link span{color:#bdb7ae;font-size:12px}.pdf-menu-link strong{font-size:12px;letter-spacing:.04em;white-space:nowrap}.pdf-menu-link:hover{border-color:#8e3437;background:#181211;transform:translateY(-2px)}.pdf-menu-link:focus-visible{outline:2px solid #ff656a;outline-offset:3px}
@media(max-width:760px){.menu-title-aside{margin-top:26px}.menu-title-aside>p{margin:0 0 16px}.pdf-menu-link{min-height:56px;width:100%;padding-inline:15px}.pdf-menu-link span{font-size:11px}}
@media(prefers-reduced-motion:reduce){.pdf-menu-link{transition:none}.pdf-menu-link:hover{transform:none}}

/* Menu category rail: compact, tactile, and easy to scan */
.category-nav{
  position:sticky;
  top:72px;
  z-index:20;
  display:flex;
  align-items:center;
  gap:6px;
  overflow-x:auto;
  overscroll-behavior-inline:contain;
  scroll-snap-type:x proximity;
  scrollbar-width:thin;
  scrollbar-color:#514b47 transparent;
  padding:10px max(var(--space-gutter),calc((100vw - var(--max))/2));
  background:rgba(8,8,8,.96);
  border-block:1px solid #292624;
  box-shadow:0 6px 8px rgba(0,0,0,.22);
  backdrop-filter:blur(14px);
}
.category-nav::-webkit-scrollbar{height:4px}.category-nav::-webkit-scrollbar-track{background:transparent}.category-nav::-webkit-scrollbar-thumb{background:#514b47;border-radius:999px}
.category-nav button{
  position:relative;
  flex:none;
  min-height:40px;
  padding:0 15px;
  border:0;
  border-radius:10px;
  background:transparent;
  color:#bdb7ae;
  font-size:12px;
  font-weight:650;
  line-height:1.2;
  white-space:nowrap;
  scroll-snap-align:center;
  cursor:pointer;
  transition:color .2s ease,background-color .24s ease,transform .2s var(--ease-out);
}
.category-nav button:hover{background:#1b1817;color:#fff;transform:translateY(-1px)}
.category-nav button.active{
  padding-inline:18px;
  background:#a9131a;
  color:#fff;
  font-weight:750;
}
.category-nav button:after{
  content:"";
  position:absolute;
  right:calc(50% - 3px);
  bottom:5px;
  width:6px;
  height:2px;
  border-radius:2px;
  background:#fff;
  transform:scaleX(0);
  transition:transform .25s var(--ease-out);
}
.category-nav button.active:after{transform:scaleX(1)}
.category-nav button:focus-visible{outline:2px solid #ff656a;outline-offset:2px}
@media(max-width:900px){.category-nav{display:none}}
@media(prefers-reduced-motion:reduce){.category-nav{scroll-behavior:auto}.category-nav button{transition:none}.category-nav button:hover{transform:none}}

/* Mobile menu controls: one clear action per row */
@media(max-width:620px){
  .menu-tools{
    position:sticky;
    top:64px;
    z-index:18;
    grid-template-columns:minmax(0,1fr);
    gap:10px;
    margin:0;
    padding:12px 16px 10px;
    background:rgba(8,8,8,.98);
    border-block:1px solid #302c29;
    box-shadow:0 6px 8px rgba(0,0,0,.22);
    backdrop-filter:blur(14px);
  }
  .menu-tools label{gap:5px;min-width:0}
  .menu-tools label>span{font-size:11px;font-weight:700;color:#d8d3cb}
  .menu-search input,.menu-select select{
    width:100%;
    height:48px;
    margin:0;
    padding:0 42px 0 14px;
    border:1px solid #49433f;
    border-radius:8px;
    background-color:#141210;
    color:#fff;
    font-size:16px;
  }
  .menu-search input::placeholder{color:#aaa49c;opacity:1}
  .menu-search input:focus,.menu-select select:focus{border-color:#cf454a;outline:3px solid rgba(207,69,74,.16);outline-offset:0}
  .menu-select{position:relative;display:grid}
  .menu-select:after{content:"⌄";position:absolute;right:15px;bottom:10px;color:#ed6469;font-size:20px;line-height:1;pointer-events:none}
  .menu-select select{appearance:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .menu-search:after{content:"⌕";display:block;right:15px;bottom:7px;color:#ed6469;font-size:24px;line-height:1}
  .menu-result{justify-self:start;margin-top:1px;padding:3px 9px;border-radius:999px;background:#211d1b;color:#d8d3cb;font-size:11px;line-height:1.6;white-space:nowrap}
  .menu-wrap{padding-top:24px}
  .menu-category h3{font-size:clamp(22px,7vw,28px);line-height:1.1}
}
@media(max-width:380px){
  .menu-tools{padding-inline:12px}
  .menu-search input,.menu-select select{height:46px}
  .menu-wrap{padding-inline:12px}
}
.wa-float{right:20px;bottom:20px;display:inline-flex;align-items:center;gap:10px;min-height:54px;padding:8px 18px 8px 9px;border-radius:999px;background:#159b55;color:#fff;font-size:15px;font-weight:800;letter-spacing:.01em;box-shadow:0 6px 8px rgba(0,0,0,.28);transition:transform .22s var(--ease-out),background-color .22s ease}.wa-float:hover{background:#20ad64;transform:translateY(-2px)}.wa-float:active{transform:translateY(0)}.wa-icon{display:grid!important;place-items:center;width:38px;height:38px;border-radius:50%;background:#fff;color:#128c4e;font-size:23px;line-height:1}.wa-label{display:inline!important}
@media(max-width:430px){.wa-float{right:14px;bottom:max(14px,env(safe-area-inset-bottom));min-width:52px;min-height:52px;padding:7px;border-radius:50%}.wa-icon{width:38px;height:38px}.wa-label{display:none!important}}

/* Interaction choreography: depth, confirmation and spatial orientation */
.site-header nav a.is-current{color:#fff}.site-header nav a.is-current:after{transform:scaleX(1);transform-origin:left}
.special{transform:perspective(900px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .45s var(--ease-out)}
.special:before{content:"";position:absolute;z-index:2;inset:0;pointer-events:none;background:radial-gradient(circle at var(--light-x,50%) var(--light-y,50%),rgba(255,255,255,.13),transparent 34%);opacity:0;transition:opacity .3s}
.special:hover:before{opacity:1}.special:hover{transform:perspective(900px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) translateY(-3px)}
.dish.just-added{animation:dish-confirm .52s var(--ease-out)}.dish button.is-confirmed{background:#f4f0e8;color:#15110f;border-color:#f4f0e8}
@keyframes dish-confirm{0%{box-shadow:inset 0 0 0 0 rgba(211,43,49,0)}35%{box-shadow:inset 0 0 0 2px rgba(211,43,49,.8)}100%{box-shadow:inset 0 0 0 0 rgba(211,43,49,0)}}
.cart-line{animation:cart-line-in .32s var(--ease-out) both}@keyframes cart-line-in{from{opacity:0;transform:translateX(10px)}}
.gallery-item{transform:translateY(18px);opacity:.72;transition:transform .7s var(--ease-out),opacity .55s,filter .45s;filter:saturate(.7)}
.gallery-grid.is-visible .gallery-item{transform:none;opacity:1;filter:saturate(1)}.gallery-grid.is-visible .gallery-item:nth-child(2){transition-delay:70ms}.gallery-grid.is-visible .gallery-item:nth-child(3){transition-delay:120ms}.gallery-grid.is-visible .gallery-item:nth-child(4){transition-delay:170ms}
.gallery-item:hover{transform:scale(.985);filter:saturate(1.12) contrast(1.04)}
.qty button{transition:transform .12s var(--ease-out),background .2s}.qty button:hover{background:var(--red)}.qty button:active{transform:scale(.86)}
@media(prefers-reduced-motion:reduce){.special,.special:hover{transform:none}.special:before{display:none}.gallery-item,.gallery-grid.is-visible .gallery-item{opacity:1;transform:none;filter:none;transition:none}.dish.just-added,.cart-line{animation:none}}
