:root{--bg-panel:#0b0b0b;--bg-panel-2:#141414;--cream:#fbf1e4;--desc-yellow:#ffd72e;--crust-gold:#f0bd4c;--tomato-red:#ee4632;--basil-green:#67b94e;--density:1}
*{box-sizing:border-box;margin:0;padding:0}
html,body{width:100%;height:100%;overflow:hidden;background:#172323}
#viewport{position:absolute;top:0;left:0;width:1920px;transform-origin:top left;color:var(--cream);font-family:'Poppins',Arial,sans-serif;background:#172323}
.stage{width:100%;height:100%;padding:8px;display:flex;flex-direction:column;gap:8px}
.masthead{flex:none;min-height:100px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:24px;padding:12px 18px;background:linear-gradient(110deg,#233b38,#132522);border:1px solid #608477;border-radius:10px}
.brand{display:flex;align-items:center;gap:12px}.brand-slice{font-size:44px}.brand h1{font-family:'Bungee',sans-serif;font-weight:400;font-size:36px;line-height:1.2;white-space:nowrap}.brand h1 span{color:var(--tomato-red)}
.brand-sub{font-size:18px;font-weight:700;letter-spacing:.03em;margin-top:4px}
.top-info{display:flex;flex-wrap:wrap;align-content:center;justify-content:center;gap:4px 12px;font-size:21px;line-height:1.45;font-weight:800;text-align:center;color:#ffe7a6}.top-info>span:not(.dot){white-space:nowrap}.dot{color:#ebad62}
.legend{display:flex;flex-direction:column;gap:7px}.legend-pill{display:flex;align-items:center;gap:8px;font-size:20px;font-weight:800}.badge{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:#10251a;font-weight:900}.badge.s{background:var(--basil-green)}.badge.l{background:var(--tomato-red);color:white}
.board{flex:1;min-height:0;display:grid;grid-template-columns:1.22fr 1.22fr 1fr;gap:8px}
.col{display:flex;flex-direction:column;gap:8px;min-width:0;min-height:0}
.panel{background:linear-gradient(160deg,var(--bg-panel-2),var(--bg-panel));border:1px solid #60766e;border-radius:9px;padding:10px 12px;min-width:0}
.panel-title{font-family:'Bungee',sans-serif;font-size:30px;line-height:1.3;display:flex;align-items:center;gap:10px;padding-bottom:6px;margin-bottom:7px;border-bottom:2px solid #9f6552}.panel-title.green{border-color:#61935d}.panel-title.gold{border-color:#af8e49}
.col-head{flex:none}.size-head{flex:none;gap:10px!important;font-size:18px;font-weight:800;margin-bottom:3px;padding-bottom:4px;border-color:#9f6552!important}.size-head>span{width:76px;text-align:right}.size-head b{color:var(--crust-gold);margin-right:4px}
.items{display:flex;flex-direction:column;justify-content:space-around;min-height:0}
.item,.special-item{display:flex;align-items:center;gap:8px;padding:4px 2px;border-radius:5px;flex-shrink:0}
.item:nth-child(even),.special-item:nth-child(even){background:#ffffff09}
.num{flex-shrink:0;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:900;background:var(--basil-green);color:#10220e}
.num.sp{background:var(--crust-gold);font-size:15px}
.item-text{flex:1;min-width:0}.item-name{font-size:25px;line-height:1.12;font-weight:800;letter-spacing:-.025em}.item-desc{font-size:21px;line-height:1.16;font-weight:700;color:var(--desc-yellow);margin-top:2px;letter-spacing:-.035em}
.prices{flex:none;display:flex;gap:10px}.price{width:76px;text-align:right;font-size:26px;line-height:1.15;font-weight:800;color:var(--crust-gold);letter-spacing:-.04em}
.col:nth-child(2)>.panel:first-child>.items{flex:1;justify-content:space-around}
.fantasia{margin-top:10px;border:2px solid var(--tomato-red);border-radius:7px;padding:10px;background:#ee463210;flex:none}
.fantasia-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}.fantasia-num{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--tomato-red);font-weight:900;font-size:20px;flex:none}
.fantasia h3{font-family:'Bungee',sans-serif;font-size:25px;font-weight:400}.fantasia small{font-family:'Poppins',sans-serif;font-size:18px;font-weight:800;color:var(--crust-gold);margin-left:6px}
.fantasia table{width:100%;border-collapse:collapse}.fantasia th{font-size:19px;font-weight:800;text-align:right;padding:4px 0}.fantasia td{font-size:23px;font-weight:800;padding:6px 0;border-top:1px solid #ffffff25}.fantasia td:not(:first-child){text-align:right;color:var(--crust-gold)}.fantasia td:first-child{font-size:21px}.fantasia td b{color:#ff8b78}
.special-item{padding:7px 2px}.special-item .item-desc{font-size:21px}
.hero-media{position:relative;flex:none;overflow:hidden;border-radius:9px;border:1px solid #60766e}.hero-media img{width:100%;height:100%;object-fit:cover;display:block}.hero-tag{position:absolute;bottom:8px;left:10px;padding:4px 10px;background:#0b1718e8;border:1px solid #9e864f;border-radius:6px;color:#ffe7a6;font-size:19px;font-weight:800}
.toppings-panel{flex:1;display:flex;flex-direction:column;min-height:0}.toppings-intro{font-size:21px;font-weight:700;margin-bottom:5px;color:#dae8da}.toppings-list{list-style:none;display:grid;grid-template-columns:1fr 1fr;grid-auto-flow:column;grid-template-rows:repeat(14,1fr);column-gap:12px;flex:1;min-height:0}.toppings-list li{font-size:23px;line-height:1.2;font-weight:800;color:#a8e491;display:flex;align-items:center;padding:1px 5px;border-bottom:1px solid #ffffff10;white-space:nowrap;letter-spacing:-.04em}
.salad-wrap{position:relative}.salad-img{width:66px;height:66px;position:absolute;right:0;top:-77px;border-radius:7px;overflow:hidden}.salad-img img{width:100%;height:100%;object-fit:cover}.salad-list{display:flex;flex-direction:column;gap:10px}.salad-list .item{align-items:flex-start}.salad-list .item-name{font-size:23px;letter-spacing:-.045em;white-space:nowrap}.salad-list .item-desc{font-size:21px;line-height:1.22}.salad-list .price{width:63px;font-size:25px}.salad-list .num{font-size:17px}
/* Browser banners reduce usable height; keep all items visible until fullscreen is entered. */
.compact .masthead{min-height:84px;padding-top:6px;padding-bottom:6px}
.compact .item-name{font-size:calc(25px * var(--density))}.compact .item-desc{font-size:calc(21px * var(--density))}.compact .item,.compact .special-item{padding-top:2px;padding-bottom:2px}.compact .panel-title{font-size:27px}.compact .toppings-list li{font-size:calc(23px * var(--density))}.compact .fantasia td{padding:3px 0}.compact .hero-media{height:13%!important}
/* Let ingredients use the full row width beneath the name and prices. */
.item,.special-item{display:grid;grid-template-columns:32px minmax(0,1fr) auto;column-gap:8px;row-gap:1px}
.item-text{display:contents}.item-name{grid-column:2;grid-row:1}.item-desc{grid-column:2 / 4;grid-row:2}.num{grid-column:1;grid-row:1 / 3;align-self:center}.prices{grid-column:3;grid-row:1;align-self:center}
.salad-list .num{align-self:start}.salad-list .item-name{white-space:normal}
.item,.special-item{padding-top:2px;padding-bottom:2px;row-gap:0}
.item-name{line-height:1.05}.item-desc{line-height:1.1;margin-top:1px}
.fantasia td{line-height:1.2;padding:5px 0}.fantasia th{line-height:1.2}
.toppings-list li{padding-top:0;padding-bottom:0}
.salad-img{top:-66px;height:54px}
.compact .price{font-size:23px}.compact .fantasia td{font-size:21px;line-height:1.1;padding:4px 0}.compact .fantasia th{font-size:18px;padding:2px 0}.compact .fantasia{margin-top:6px;padding:7px}.compact .special-item{padding-top:1px;padding-bottom:1px}.compact .panel-title{margin-bottom:4px;padding-bottom:4px}.compact .fantasia-head{margin-bottom:3px}
/* News-style service messages, constrained to the space beside the brand. */
.masthead{grid-template-columns:auto minmax(0,1fr) auto}
.top-info{display:block;min-width:0;overflow:hidden;text-align:left;position:relative;padding:12px 0;border-top:1px solid #77936766;border-bottom:1px solid #77936766}
.news-track{display:flex;width:max-content;animation:menu-news 27s linear infinite;will-change:transform}
.news-group{display:flex;flex-shrink:0;align-items:center;gap:26px;padding-right:26px;white-space:nowrap}
.news-group>span{flex-shrink:0}.news-group .dot{color:#edb85e}
@keyframes menu-news{from{transform:translateX(0)}to{transform:translateX(-50%)}}
/* A real photo area within the salad section, clear of its heading and text. */
.salad-wrap{display:grid;grid-template-columns:130px minmax(0,1fr);gap:12px;align-items:stretch}
.salad-img{position:relative;top:auto;right:auto;width:130px;height:auto;min-height:180px;align-self:stretch;border-radius:9px;border:1px solid #85b878;overflow:hidden;background:#243529}
.salad-img img{display:block;width:100%;height:100%;position:absolute;inset:0;object-fit:contain;object-position:center}
.salad-list{min-width:0;gap:10px}.salad-list .item{grid-template-columns:28px minmax(0,1fr) auto;column-gap:5px}
.salad-list .num{width:28px;height:28px;font-size:15px}
.salad-list .item-name{font-size:22px;letter-spacing:-.055em;grid-column:2 / 4}
.salad-list .prices{grid-column:3;grid-row:2;align-self:start}.salad-list .item-desc{grid-column:2;grid-row:2;font-size:21px;line-height:1.15}.salad-list .price{width:62px;font-size:24px}
/* Slow, local highlights keep food and offers lively while menu text stays still. */
.hero-media img{animation:food-closeup 16s ease-in-out infinite alternate;transform-origin:50% 55%}
@keyframes food-closeup{from{transform:scale(1)}to{transform:scale(1.045)}}
.fantasia{animation:offer-glow 7s ease-in-out infinite}
@keyframes offer-glow{0%,100%{border-color:#ce6b45;box-shadow:inset 0 0 0 transparent}50%{border-color:#f2c570;box-shadow:inset 0 0 18px #f2c57012}}
.hero-tag{animation:tag-glow 6s ease-in-out infinite}
@keyframes tag-glow{0%,100%{border-color:#9e864f}50%{border-color:#ffe7a6}}
@media(prefers-reduced-motion:reduce){.news-track,.hero-media img,.fantasia,.hero-tag{animation:none}.news-track{width:auto}.news-group{flex-wrap:wrap;white-space:normal;gap:5px 14px;padding:0}.news-group[aria-hidden]{display:none}.top-info{font-size:18px}}

.news-group{min-width:var(--news-width, 0px);justify-content:space-around}
/* Visible TV motion: a clear marquee, moving accents and food presentation. */
.top-info{background:linear-gradient(100deg,#234238,#183029);border:1px solid #beaa63;border-radius:8px;padding:14px 0;font-size:23px}
.news-track{animation-duration:18s}
.brand-slice{animation:pizza-sway 4s ease-in-out infinite;transform-origin:center}
@keyframes pizza-sway{0%,100%{transform:rotate(-9deg) scale(1)}50%{transform:rotate(9deg) scale(1.12)}}
.panel-title .emoji{display:inline-block;animation:food-bob 4s ease-in-out infinite}
@keyframes food-bob{0%,100%{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-3px) rotate(5deg)}}
.panel{position:relative}
.panel:after{content:"";position:absolute;top:0;left:12px;right:12px;height:3px;border-radius:6px;pointer-events:none;background:linear-gradient(90deg,transparent 0%,transparent 35%,#c0dfa0 48%,#ffe3a2 52%,transparent 65%,transparent);background-size:250% 100%;animation:accent-pass 6s linear infinite}
@keyframes accent-pass{from{background-position:200% 0}to{background-position:-100% 0}}
.col:nth-child(2) .panel:after{animation-delay:-2s}.col:nth-child(3) .panel:after{animation-delay:-4s}
.hero-media img{animation-duration:7s}
@keyframes food-closeup{from{transform:scale(1)}to{transform:scale(1.08)}}
.fantasia{animation:offer-glow 4s ease-in-out infinite}
@keyframes offer-glow{0%,100%{border-color:#c98743;box-shadow:inset 0 0 5px #edc47c10}50%{border-color:#ffe0a0;box-shadow:0 0 10px #edc47c55,inset 0 0 24px #edc47c22}}
.salad-img{animation:salad-frame 5s ease-in-out infinite}
@keyframes salad-frame{0%,100%{border-color:#85b878;box-shadow:0 0 0 transparent}50%{border-color:#d8f6af;box-shadow:0 0 9px #a9dc7155}}
@media(prefers-reduced-motion:reduce){.news-track,.brand-slice,.panel-title .emoji,.panel:after,.hero-media img,.fantasia,.hero-tag,.salad-img{animation:none}.top-info{font-size:18px}}
