/* The signage layout has one owner. Grid tracks never grow with photo content. */
.board{--paper:#f6eedb;--ink:#29160e;--accent:#cf1826;--gold:#ffce49;position:relative;isolation:isolate;container-type:inline-size;width:100%;aspect-ratio:16/9;display:grid;grid-template-rows:15% minmax(0,1fr) 5% 5%;padding:1.4% 1.6% 0;gap:0;overflow:hidden;background:var(--paper);color:var(--ink);border-radius:4px;font-family:Arial,sans-serif}
.board *{box-sizing:border-box}
.board-head{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:2%;min-width:0;min-height:0;padding-bottom:1.3%;border-bottom:2px solid var(--ink);margin-bottom:1.4%}
.brand-lockup{display:flex;align-items:center;gap:.6cqw;flex:0 0 22%;line-height:.9;color:var(--accent)}
.brand-lockup>span{display:flex;flex-direction:column;min-width:0}
.fez-logo{width:5.2cqw;height:5.7cqw;object-fit:contain;flex:none;filter:drop-shadow(0 .1cqw .1cqw #0002)}
.brand-lockup strong{font-family:Impact,'Arial Narrow',sans-serif;font-size:3.1cqw;text-transform:uppercase;letter-spacing:-.08cqw;white-space:nowrap}
.brand-lockup small{font-size:.65cqw;font-weight:900;letter-spacing:.2cqw;margin-top:.6cqw;text-transform:uppercase}
.board-title{font-family:Impact,'Arial Narrow',sans-serif;text-transform:uppercase;font-size:3.25cqw;line-height:1;flex:1;min-width:0}
.board-title small{display:block;font-family:Arial,sans-serif;font-size:.6cqw;letter-spacing:.15cqw;margin-bottom:.5cqw}
.live-mark{max-width:14%;font-size:.82cqw;font-weight:900;text-align:right;text-transform:uppercase;line-height:1.25;border-right:.2cqw solid var(--accent);padding-right:.7cqw}
.live-mark{white-space:pre-line}
.item-badges{display:flex;flex-wrap:wrap;gap:.3cqw;max-width:100%;margin-bottom:.15cqw}
.item-badge{display:inline-flex;align-items:center;gap:.2cqw;max-width:100%;padding:.25cqw .4cqw;background:var(--gold);color:#32190c;font-size:.65cqw;font-weight:900;line-height:1.15;text-transform:uppercase;border-radius:2px}
.item-badge.badge-spicy{background:#a81726;color:#fff;border:1px solid #ffffff70}
.item-badge.badge-vegetarian{background:#d8edbd;color:#245127}
.board .item.in-spotlight{outline:.28cqw solid var(--gold);outline-offset:-.45cqw;box-shadow:inset 0 0 2cqw #ffce4925}
.board .item.in-spotlight::before{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(110deg,transparent 30%,#fff0 35%,#ffde7b38 45%,#fff2 50%,transparent 60%);opacity:.7;animation:menu-light-sweep 8s ease-in-out infinite}
.wall-ember{position:absolute;left:-4%;top:14.3%;width:18cqw;height:.22cqw;background:linear-gradient(90deg,transparent,#ff9d24 65%,#ffe899);border-radius:999px;box-shadow:0 0 .7cqw #ffbf4599;animation:wall-ember-crossing 18s linear infinite;animation-delay:var(--ember-delay);will-change:transform}
.wall-ember::after{content:'';position:absolute;right:0;top:50%;width:.7cqw;height:.7cqw;translate:0 -50%;background:#fff5cd;border-radius:50%;box-shadow:0 0 1.3cqw .25cqw #ffae39}
.ember-off .wall-ember,.quiet-features .wall-ember{display:none}
.quiet-features .item.in-spotlight::before{animation:none;background:none}
@keyframes menu-light-sweep{0%,35%{transform:translateX(-100%)}75%,100%{transform:translateX(100%)}}
@keyframes wall-ember-crossing{from{transform:translateX(0)}to{transform:translateX(430cqw)}}
.board-items{position:relative;z-index:1;display:grid;grid-template-columns:repeat(var(--grid-columns),minmax(0,1fr));grid-template-rows:repeat(var(--grid-rows),minmax(0,1fr));gap:.8cqw;min-width:0;min-height:0;overflow:hidden;padding:.5cqw 0}
.board .item{position:relative;isolation:isolate;display:grid;grid-template-rows:minmax(0,1fr);min-width:0;min-height:0;overflow:hidden;margin:0;padding:0;background:color-mix(in srgb,var(--paper) 88%,white);border:1px solid color-mix(in srgb,var(--ink) 20%,transparent);border-top:.35cqw solid var(--accent);border-radius:0;box-shadow:none;color:var(--ink)}
.board .item.featured{background:var(--accent);color:#fff;border-color:var(--accent)}
.board .item:nth-child(3n){background:var(--ink);color:var(--paper);border-color:var(--ink)}
.item::after{content:'';position:absolute;z-index:-1;width:13cqw;height:13cqw;right:-7cqw;bottom:-6cqw;border:1.7cqw solid currentColor;border-radius:50%;opacity:.055;animation:fez-ring 14s ease-in-out infinite;animation-delay:var(--scene-delay)}
.item-copy{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:.65cqw;min-width:0;min-height:0;padding:1.2cqw}
.item h2{font-family:Impact,'Arial Narrow',sans-serif;font-size:2.2cqw;line-height:1.03;letter-spacing:.01cqw;text-transform:uppercase;margin:0;overflow-wrap:anywhere;font-weight:400}
.price{display:inline-block;align-self:flex-start;font-family:Impact,'Arial Narrow',sans-serif;font-size:3.1cqw;line-height:1.1;background:var(--gold);color:#32190c;padding:.15cqw .55cqw;transform:rotate(-2deg);margin:.2cqw 0 .25cqw}
.variant{width:100%;display:flex;align-items:baseline;justify-content:space-between;gap:.6cqw;font-size:.85cqw;font-weight:800;line-height:1.2;border-bottom:1px solid color-mix(in srgb,currentColor 22%,transparent);padding-bottom:.3cqw}
.variant strong{font-family:Impact,'Arial Narrow',sans-serif;font-size:1.55cqw;white-space:nowrap;color:var(--gold);font-weight:400}
.no-image:not(.featured):not(:nth-child(3n)) .variant strong,.has-image:not(.featured):not(:nth-child(3n)) .variant strong{color:var(--accent)}
.combo{font-size:.82cqw;font-weight:900;background:var(--ink);color:var(--gold);padding:.35cqw .5cqw;line-height:1.2}
.description{margin:0;font-size:.83cqw;font-weight:600;line-height:1.45;max-width:45ch}
.poster-mark{position:absolute;z-index:-1;left:.6cqw;top:1.8cqw;font-family:Impact,'Arial Narrow',sans-serif;font-size:7cqw;line-height:.85;color:inherit;-webkit-text-fill-color:transparent;-webkit-text-stroke:1px currentColor;opacity:.22;transform:rotate(-5deg);pointer-events:none;animation:fez-stamp 14s ease-in-out infinite;animation-delay:calc(var(--scene-delay) - var(--i)*2s)}
.board[data-composition=poster] .featured.no-image h2{font-size:3.4cqw}
.board[data-composition=poster] .featured.no-image .price{font-size:5cqw}
.board[data-composition=poster] .featured.no-image .description{font-size:1.05cqw}
.no-image::before{content:'';position:absolute;z-index:-1;inset:0;background:repeating-linear-gradient(-35deg,transparent 0 3cqw,currentColor 3cqw 3.07cqw);opacity:.055;animation:fez-grill 14s linear infinite;animation-delay:var(--scene-delay)}
.item.has-image{grid-template-rows:44% minmax(0,1fr)}
.item.has-image .item-media{grid-row:1;grid-column:1;position:relative;min-width:0;min-height:0;overflow:hidden;background:color-mix(in srgb,var(--gold) 20%,transparent);padding:.65cqw}
.item-media::before{content:none}
.item.has-image .item-copy{grid-row:2;grid-column:1;justify-content:flex-start;padding:1cqw;gap:.5cqw}
.food{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:center;animation:fez-food 10s ease-in-out infinite;animation-delay:calc(var(--scene-delay) - var(--i)*1s)}
.has-image .poster-mark{top:auto;bottom:.7cqw;opacity:.05}
.item.is-unavailable>.item-copy,.item.is-unavailable>.item-media{filter:grayscale(1);opacity:.38}
.item.is-unavailable{background:#b6b4af!important;color:#3d3b38!important;border-color:#999!important}
.unavailable{position:absolute;z-index:4;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;background:linear-gradient(135deg,transparent 40%,#6662 40%,#6662 60%,transparent 60%)}
.unavailable span{font-size:1.15cqw;letter-spacing:.08cqw;font-weight:900;text-transform:uppercase;background:#363636;color:#fff;max-width:95%;padding:.65cqw .9cqw;transform:rotate(-6deg);border:2px solid #eee}
.board[data-composition=spotlight] .board-items{width:88%;height:94%;justify-self:center;align-self:center}
.board[data-composition=spotlight] .item{grid-template-columns:1fr;grid-template-rows:1fr}
.board[data-composition=spotlight] .item-copy{padding:3cqw;gap:1.2cqw;align-items:center;text-align:center}
.board[data-composition=spotlight] h2{font-size:5.2cqw;max-width:16ch}
.board[data-composition=spotlight] .price{font-size:6cqw;align-self:center;padding:.2cqw 1cqw}
.board[data-composition=spotlight] .description{font-size:1.3cqw;max-width:38ch}
.board[data-composition=spotlight] .combo{font-size:1.2cqw}
.board[data-composition=spotlight] .variant{font-size:1.3cqw;max-width:28cqw}
.board[data-composition=spotlight] .variant strong{font-size:2.5cqw}
.board[data-composition=spotlight] .poster-mark{font-size:22cqw;top:2cqw;left:2cqw}
.board[data-composition=spotlight] .item.has-image{grid-template-columns:1fr 1fr;grid-template-rows:1fr}
.board[data-composition=spotlight] .has-image .item-copy{grid-column:1;grid-row:1;align-items:flex-start;text-align:left;padding:2.3cqw;gap:1cqw}
.board[data-composition=spotlight] .has-image h2{font-size:4.2cqw}
.board[data-composition=spotlight] .has-image .price{font-size:5.2cqw;align-self:flex-start}
.board[data-composition=spotlight] .has-image .item-media{grid-column:2;grid-row:1;padding:1.8cqw}
.board[data-count='2'] .item h2,.board[data-count='3'] .item h2{font-size:3.2cqw}
.board[data-count='2'] .price,.board[data-count='3'] .price{font-size:4.2cqw}
.board[data-count='2'] .description,.board[data-count='3'] .description{font-size:1.05cqw}
.board[data-count='2'] .item-copy,.board[data-count='3'] .item-copy{padding:1.8cqw;gap:1cqw}
.board[data-composition=compact] .item h2{font-size:1.9cqw}
.board[data-composition=compact] .item-copy{gap:.4cqw;padding:.8cqw}
.board[data-composition=compact] .price{font-size:2.5cqw}
.board[data-composition=compact] .description{font-size:.72cqw;line-height:1.3}
.board[data-composition=compact] .item.has-image{grid-template-columns:58% 42%;grid-template-rows:1fr}
.board[data-composition=compact] .has-image .item-copy{grid-row:1;grid-column:1;justify-content:center}
.board[data-composition=compact] .has-image .item-media{grid-row:1;grid-column:2;padding:.4cqw}
.board.two-row[data-composition=compact] .item h2{font-size:1.7cqw}
.board.two-row[data-composition=compact] .variant{font-size:.72cqw}
.board.two-row[data-composition=compact] .variant strong{font-size:1.4cqw}
.board.two-row[data-composition=compact] .has-image{grid-template-columns:1fr;grid-template-rows:31% minmax(0,1fr)}
.board.two-row[data-composition=compact] .has-image .item-media{grid-column:1;grid-row:1}
.board.two-row[data-composition=compact] .has-image .item-copy{grid-column:1;grid-row:2;justify-content:center}
.board-footer{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:1cqw;font-size:.75cqw;font-weight:800;letter-spacing:.08cqw;text-transform:uppercase;min-height:0;overflow:hidden}
.motion-ticker{position:relative;z-index:3;background:var(--accent);color:#fff;margin:0 -1.652893%;overflow:hidden;display:flex;align-items:center;min-height:0}
/* Container queries measure the 96.8% content box; the wall step is the full TV width. */
.ticker-track{flex:none;display:flex;width:max-content;font-size:1cqw;font-weight:900;letter-spacing:.12cqw;white-space:nowrap;animation:fez-ticker var(--ticker-duration,32s) linear infinite;animation-delay:var(--ticker-delay,0s);transform:translateX(calc(var(--screen-index)*-103.305785cqw))}
.board.ticker-off{grid-template-rows:15% minmax(0,1fr) 5%}
.motion-ticker[hidden]{display:none}
.ticker-track span{flex:none}
.ticker-measure{position:fixed;left:-100000px;top:0;display:inline-block;visibility:hidden;white-space:nowrap;font-family:Arial,sans-serif;font-size:18.5856px;font-weight:900;letter-spacing:2.230272px}
.empty{grid-column:1/-1;grid-row:1/-1;align-self:center;justify-self:center;font-size:3cqw;font-family:Impact,'Arial Narrow',sans-serif;text-transform:uppercase}
.motion-scene{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.wall-world{position:absolute;inset:0 auto 0 calc(var(--screen-index)*-100%);width:400%;height:100%;overflow:hidden}
.wall-word{position:absolute;top:22%;left:2%;font-family:Impact,'Arial Narrow',sans-serif;font-size:17cqw;white-space:nowrap;letter-spacing:-.5cqw;opacity:.035;animation:fez-wall-word 28s linear infinite;animation-delay:var(--scene-delay)}
.wall-ribbon{position:absolute;left:-10%;top:42%;width:120%;height:12%;background:var(--gold);opacity:.36;transform:rotate(-9deg);animation:fez-ribbon 28s ease-in-out infinite;animation-delay:var(--scene-delay)}
.wall-orbit{position:absolute;width:85cqw;height:85cqw;left:30%;top:-25%;border:8cqw solid var(--accent);border-radius:50%;opacity:.1;animation:fez-orbit 28s ease-in-out infinite;animation-delay:var(--scene-delay)}
.wall-skewer{position:absolute;inset:0;background:repeating-linear-gradient(110deg,transparent 0 14cqw,color-mix(in srgb,var(--ink) 5%,transparent) 14cqw 14.1cqw)}
.wall-spark{position:absolute;width:1.2cqw;height:1.2cqw;background:var(--accent);transform:rotate(45deg);top:65%;left:12%;animation:fez-spark 7s ease-in-out infinite;animation-delay:var(--scene-delay)}
.wall-spark.two{left:48%;top:10%;animation-duration:9s;background:var(--gold)}
.wall-spark.three{left:80%;top:85%;animation-duration:11s}
.board.template-charcoal{--paper:#171c1b;--ink:#f2e6cf;--accent:#df542b;--gold:#ffce49}
.template-charcoal .item{background:#242a27;border-color:#526050}
.template-charcoal .item:nth-child(3n){background:#353d32;color:#fff}
.template-charcoal .brand-lockup{color:var(--gold)}
.template-charcoal .poster-mark{opacity:.14}
.board.template-tile{--paper:#e5eee5;--ink:#103f40;--accent:#146769;--gold:#f3c25c}
.template-tile .item{border-top-color:var(--gold);border-bottom:.35cqw solid var(--accent)}
.template-tile .wall-skewer{background:repeating-conic-gradient(from 45deg,#1467690d 0 25%,transparent 0 50%) 0 0/8cqw 8cqw;animation-name:fez-tile}
.template-tile .wall-ribbon{height:6%;opacity:.5}
.board.template-street{--paper:#ffd14a;--ink:#25180d;--accent:#d81929;--gold:#ffd14a}
.template-street .item{background:#fff5dc;border:0;border-bottom:.5cqw solid var(--ink);transform:skewY(-1deg)}
.template-street .item:nth-child(even){transform:skewY(1deg)}
.template-street .item-copy,.template-street .item-media{transform:skewY(0deg)}
.template-street .board-head{border-bottom:.4cqw solid var(--ink)}
.template-street .wall-ribbon{background:var(--accent);opacity:.2;height:25%}
.template-street .wall-word{opacity:.07}
.board:fullscreen{width:100vw;height:100vh;aspect-ratio:auto;border-radius:0}
body.display{margin:0;padding:0;overflow:hidden;background:#111}
body.display .toolbar,body.display #status{display:none}
body.display #app{max-width:none;width:100vw;height:100vh;margin:0;padding:0}
body.display .tv-viewport,body.display .board{width:100%;height:100%;aspect-ratio:auto;border-radius:0}
.tv-viewport>.board{width:100%;height:100%;aspect-ratio:auto}
@keyframes fez-food{0%,100%{transform:translateY(0) rotate(-1deg) scale(.97)}50%{transform:translateY(-2%) rotate(1deg) scale(1)}}
@keyframes fez-stamp{0%,100%{translate:-1cqw 0;rotate:-3deg}50%{translate:1cqw 1cqw;rotate:3deg}}
@keyframes fez-platter{to{rotate:360deg}}
@keyframes fez-ring{0%,100%{transform:scale(.9)}50%{transform:scale(1.2)}}
@keyframes fez-ticker{from{translate:0}to{translate:-50%}}
@keyframes fez-wall-word{from{translate:0}to{translate:-22cqw}}
@keyframes fez-ribbon{0%,100%{transform:translateY(-4cqw) rotate(-9deg)}50%{transform:translateY(6cqw) rotate(-5deg)}}
@keyframes fez-orbit{0%,100%{transform:translateX(-20cqw) scale(.9)}50%{transform:translateX(60cqw) scale(1.1)}}
@keyframes fez-grill{from{background-position:0 0}to{background-position:15cqw 0}}
@keyframes fez-tile{from{background-position:0 0}to{background-position:8cqw 8cqw}}
@keyframes fez-spark{0%,100%{translate:0 0;opacity:.2}50%{translate:4cqw -8cqw;opacity:.8}}
@media(prefers-reduced-motion:reduce){.board *{animation:none!important}}
