/* ============================================================
   FOODHOUSE SINN — Digital Signage · Premium-Design
   Feste 1920×1080-Bühne, per JS passgenau auf jeden TV skaliert
   -> sieht auf jedem Bildschirm exakt gleich aus, nichts wird abgeschnitten
   ============================================================ */
:root{
  --red:#9e1717; --red2:#bb1e1e; --red-dk:#7a0f0f;
  --cream:#f4efe3; --paper:#fbf8f0;
  --ink:#2a2320; --muted:#7a716a; --gold:#c9a14a; --line:#e3d9c5;
}
*{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%;overflow:hidden;background:#000;
  font-family:"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink)}

/* feste Bühne — wird von show.js zentriert & skaliert */
.stage{position:fixed;top:50%;left:50%;width:1920px;height:1080px;
  transform:translate(-50%,-50%);transform-origin:center center;
  background:#0c0404;overflow:hidden}

/* ===================== FLAMMEN-INTRO ===================== */
#flame{position:absolute;inset:0;z-index:1;overflow:hidden}
#flame .bgfood{position:absolute;inset:0;background-size:cover;background-position:center 42%;
  filter:brightness(.30) saturate(1.05);transform:scale(1.02);
  animation:slowzoom 16s ease-in-out infinite alternate}
#flame .pink{position:absolute;inset:0;
  background:radial-gradient(70% 60% at 50% 62%, rgba(255,45,90,.40), rgba(150,15,40,.22) 45%, transparent 75%);
  mix-blend-mode:screen;animation:pulse 4s ease-in-out infinite}
#flame .vign{position:absolute;inset:0;background:radial-gradient(120% 100% at 50% 50%, transparent 55%, rgba(0,0,0,.55) 100%)}
#fcanvas{position:absolute;inset:0;z-index:2}
@keyframes slowzoom{from{transform:scale(1.0)}to{transform:scale(1.07)}}
@keyframes pulse{0%,100%{opacity:.7}50%{opacity:1}}

#flame .ftitle{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);z-index:3;text-align:center;
  opacity:0;transition:opacity .7s ease}
#flame.lit .ftitle{opacity:1}
#flame .ftitle img{height:172px;filter:drop-shadow(0 10px 30px rgba(0,0,0,.8));margin-bottom:22px;
  animation:floaty 4s ease-in-out infinite}
#flame .ftitle h1{color:#fff;font-size:104px;font-weight:900;line-height:1;
  text-shadow:0 6px 36px rgba(0,0,0,.9), 0 0 50px rgba(255,120,40,.5)}
#flame .ftitle h1 .r{color:#ff8a4a}
#flame .ftitle .sub{color:#ffd9b8;letter-spacing:.32em;font-size:26px;margin-top:20px;
  text-transform:uppercase;font-weight:700}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}

/* ===================== MENÜ-BOARD ===================== */
#board{position:absolute;inset:0;z-index:10;display:flex;flex-direction:column;padding:24px 46px 0;
  background:radial-gradient(120% 100% at 50% 0%, #fdfaf3 0%, #efe7d6 70%, #e7dcc6 100%);
  transform:translateX(105%);transition:transform 1s cubic-bezier(.7,0,.18,1);
  box-shadow:-30px 0 80px rgba(0,0,0,.5)}
#board.in{transform:translateX(0)}

/* Kopfzeile */
.head{display:flex;align-items:center;gap:30px;padding-bottom:14px;border-bottom:3px solid var(--red);position:relative}
.head img.logo{height:118px}
.head .ttl{flex:1;text-align:center}
.head .ttl h1{color:var(--red);font-size:70px;font-weight:900;line-height:1}
.head .ttl .sub{color:var(--ink);letter-spacing:.18em;font-size:20px;font-weight:700;margin-top:8px;text-transform:uppercase}
.head .deco{width:118px}
.head::after{content:"";position:absolute;left:50%;bottom:-3px;width:340px;height:3px;transform:translateX(-50%);
  background:linear-gradient(90deg,transparent,var(--gold),transparent)}

/* ---------- 3-Spalten-Layout (tv2 / tv3) ---------- */
.cols{flex:1;display:grid;grid-template-columns:repeat(3,1fr);gap:34px;padding:26px 0 14px}
.col{display:flex;flex-direction:column}
.dishwrap{flex:1;display:flex;flex-direction:column;justify-content:flex-start;padding:4px 0 0}

.food{height:228px;border-radius:16px;overflow:hidden;background:#fff;border:1px solid var(--line);
  box-shadow:0 12px 30px rgba(60,30,10,.14);opacity:0;position:relative;
  transform:translateY(-150px) scale(.78) rotate(-3deg);
  transition:opacity .55s ease, transform .9s cubic-bezier(.34,1.56,.64,1)}
.food img{width:100%;height:100%;object-fit:cover;object-position:center 45%;
  animation:livezoom 9s ease-in-out infinite alternate}
.food .steam{position:absolute;inset:0;background:radial-gradient(60% 50% at 50% 40%, rgba(255,255,255,.25), transparent 70%);
  mix-blend-mode:screen;animation:steam 5s ease-in-out infinite}
.food .gloss{position:absolute;inset:0;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.28) 50%,transparent 65%);
  transform:translateX(-120%);animation:gloss 6s ease-in-out infinite}
@keyframes livezoom{from{transform:scale(1.01)}to{transform:scale(1.06) translateY(-3px)}}
@keyframes steam{0%{opacity:0;transform:translateY(20px)}50%{opacity:.5}100%{opacity:0;transform:translateY(-20px)}}
@keyframes gloss{0%,70%{transform:translateX(-120%)}100%{transform:translateX(120%)}}

.cat{display:flex;align-items:center;gap:16px;margin:22px 0 14px;opacity:0;
  transform:translateX(28px);transition:opacity .55s ease, transform .55s ease}
.cat .num{width:58px;height:58px;min-width:58px;border-radius:50%;
  background:linear-gradient(160deg,var(--red2),var(--red-dk));color:#fff;
  font-weight:900;font-size:32px;display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 12px rgba(0,0,0,.28), inset 0 1px 2px rgba(255,255,255,.3)}
.cat .nm{color:var(--red);font-weight:900;font-size:42px;text-transform:uppercase;letter-spacing:.01em}

/* feste Zeilenhöhe -> Zeilen aller Spalten sind exakt auf gleicher Höhe */
.dish{display:flex;align-items:center;gap:10px;min-height:66px;opacity:0;transform:translateX(40px);
  transition:opacity .5s cubic-bezier(.2,.7,.2,1), transform .5s cubic-bezier(.2,.7,.2,1)}
.dish .n{font-weight:700;font-size:30px;color:var(--ink);white-space:nowrap}
.dish .lead{flex:1;border-bottom:2px dotted #c7bca6;margin:0 6px;transform:translateY(-6px)}
.dish .p{font-weight:900;font-size:31px;color:var(--red);white-space:nowrap}
.dish small{color:var(--muted);font-weight:600;font-size:19px}
.note{margin-top:8px;background:#fff;border:1.5px solid var(--red);border-radius:10px;
  padding:13px 18px;color:var(--red);font-weight:700;font-size:21px;text-align:center;opacity:0;
  transform:translateY(10px);transition:opacity .55s ease, transform .55s ease;
  box-shadow:0 6px 16px rgba(158,23,23,.12)}

/* ---------- 5-Kategorien-Layout (tv1 Pizza/Burger) ---------- */
.top3{flex:0 0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:26px;padding:8px 0 0}
.bot2{flex:1;display:grid;grid-template-columns:1fr 1.25fr;gap:26px;padding:10px 0 4px}
.box{display:flex;flex-direction:column;background:rgba(255,255,255,.55);border:1px solid var(--line);
  border-radius:18px;padding:11px 20px;box-shadow:0 10px 26px rgba(60,30,10,.10)}
.box .food{height:102px}
.box.tall .food{height:124px}
.box .cat{margin:7px 0 5px}
.box .cat .num{width:43px;height:43px;min-width:43px;font-size:24px}
.box .cat .nm{font-size:33px}
.box .dishwrap{flex:0 1 auto;padding-top:2px}
.top3 .dish{min-height:38px}
.top3 .dish .n,.top3 .dish .p{font-size:27px}
.bot2 .dish{min-height:46px;align-items:flex-start}
.bot2 .dish .n{white-space:normal;line-height:1.18}
.bot2 .dish .n,.bot2 .dish .p{font-size:26px}
.bot2 .dish small{font-size:17px;color:var(--muted);font-weight:600}
.dishgrid{display:grid;grid-template-columns:1fr 1fr;gap:3px 30px}
.badge{display:inline-block;background:linear-gradient(160deg,var(--red2),var(--red-dk));color:#fff;
  border-radius:30px;padding:8px 18px;font-weight:800;font-size:19px;margin-top:6px;align-self:flex-start;
  box-shadow:0 5px 14px rgba(158,23,23,.3);opacity:0;transform:translateY(10px);
  transition:opacity .55s ease, transform .55s ease}

/* Fußzeile */
.foot{height:76px;background:linear-gradient(180deg,var(--red2),var(--red));color:#fff;display:flex;
  align-items:center;justify-content:center;gap:58px;font-size:22px;font-weight:700;margin:14px -46px 0;
  box-shadow:0 -6px 20px rgba(0,0,0,.18)}
.foot .it{display:flex;align-items:center;gap:12px}
.foot svg{width:28px;height:28px;flex:0 0 auto}
.foot .sep{opacity:.5}

/* Reveal-Zustände */
#board.in .food,#board.in .cat,#board.in .dish,#board.in .note,#board.in .badge{opacity:1;transform:none}
