/* Bistro Pup: our diner, puppy chef and dishes on a transparent stage. */
html.tt-shell .gift-copy small { display:block; color:var(--muted); font-size:14px; margin-top:5px; }
.source-page #bp-stage { position:absolute; width:1080px; height:1920px; transform-origin:top left; color:#fff9e9; font-family:system-ui,sans-serif; font-weight:900; -webkit-text-stroke:6px #25263e; paint-order:stroke fill; text-shadow:none; }
.source-page #bp-stage * { box-sizing:border-box; paint-order:stroke fill; stroke-linejoin:round; }
html.source-page[data-transparent="0"] body { background:#16181b; }
#bp-stage [hidden] { display:none; }
#bp-stage p, #bp-stage h2 { margin:0; }
.bp-art-library { position:absolute; width:0; height:0; overflow:hidden; }
.bp-top { position:absolute; top:38px; left:48px; right:48px; display:flex; justify-content:space-between; }
.bp-brand { color:#ffd43b; font-size:23px; letter-spacing:3px; }
.bp-top h1 { font-size:88px; line-height:1.1; letter-spacing:-3px; margin:12px 0 0; }
.bp-top h1 span { color:#ffd43b; }
.bp-clock { text-align:right; font-variant-numeric:tabular-nums; }
.bp-clock strong { display:block; font-size:76px; line-height:1; color:#ffd43b; }
.bp-clock span { display:block; font-size:23px; letter-spacing:3px; margin-top:14px; }
.bp-score { position:absolute; left:52px; right:52px; top:188px; display:flex; justify-content:space-between; align-items:center; }
#served { font-size:43px; color:#ffd43b; }
.bp-score > div { display:flex; align-items:center; gap:16px; }
#walkouts { font-size:29px; }
#walkout-plates { display:flex; gap:7px; }
#walkout-plates i { width:30px; height:30px; background:#fff5dc; border:4px solid #25263e; border-radius:50%; outline:2px solid #b9dfe2; }
#walkout-plates i.lost { background:#f0787e; outline-color:#f0787e; position:relative; }
#walkout-plates i.lost::after { content:""; position:absolute; width:23px; border-top:4px solid #25263e; transform:rotate(-45deg); left:-1px; top:9px; }
.bp-legend { position:absolute; top:270px; left:60px; right:60px; background:transparent; }
.bp-legend h2 { font-size:30px; color:#ffd43b; text-align:center; margin-bottom:14px !important; letter-spacing:2px; }
#legend-rows { display:grid; gap:9px; }
.bp-row { display:grid; grid-template-columns:55px 1fr; gap:15px; align-items:center; border:3px solid #ffd43b; border-radius:18px; padding:7px 16px; min-height:64px; font-size:26px; }
.bp-row .icon { display:flex; justify-content:center; }
.bp-row img, .bp-row svg { width:48px; height:48px; object-fit:contain; }
.bp-board { position:absolute; left:115px; right:115px; top:285px; }
.bp-board h2 { font-size:26px; color:#ffd43b; text-align:center; letter-spacing:4px; }
#leaders { list-style:none; margin:18px 0 0; padding:0; display:grid; gap:10px; }
#leaders li { display:grid; grid-template-columns:42px 1fr auto; gap:12px; font-size:31px; border-bottom:2px solid #ffd43b; padding:8px 12px; }
#leaders .rank, #leaders b { color:#ffd43b; }
.leader-name { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.bp-result { position:absolute; top:265px; left:65px; right:65px; background:transparent; text-align:center; }
.bp-banner { background:transparent; font-size:42px; color:#ffd43b; text-align:center; }
#stars { font-size:49px; letter-spacing:9px; color:#ffd43b; line-height:1.2; margin:8px 0 !important; }
#result-label { font-size:32px; }
#winner-photos { display:flex; justify-content:center; gap:16px; height:105px; margin-top:12px; }
.winner-photo { width:105px; height:105px; border:5px solid #ffd43b; outline:3px solid #25263e; border-radius:50%; overflow:hidden; }
.winner-photo img { width:100%; height:100%; object-fit:cover; }
.bp-initial { display:flex; align-items:center; justify-content:center; width:100%; height:100%; color:#fff; font-size:40px; }
#winner { font-size:40px; margin:6px 0 !important; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
#result-detail { font-size:28px; color:#ffd43b; }
#result-next { font-size:23px; margin-top:8px !important; }
.bp-queue-label { position:absolute; top:680px; left:48px; right:48px; font-size:25px; text-align:center; color:#ffd43b; letter-spacing:4px; }
#queue { position:absolute; top:735px; left:60px; width:960px; height:555px; }
.bp-customer { position:absolute; width:300px; height:132px; text-align:center; }
.bp-customer > svg { width:126px; height:98px; position:absolute; left:0; top:0; }
.diner-name { position:absolute; top:33px; left:124px; right:2px; font-size:27px; text-align:left; }
.patience { position:absolute; left:22px; right:10px; top:99px; height:26px; border:4px solid #25263e; outline:2px solid #fff4d3; background:#fff0db; border-radius:11px; overflow:hidden; }
.patience-fill { position:absolute; left:0; top:0; bottom:0; background:#74e19e; }
.patience[data-level="amber"] .patience-fill { background:#ffc65b; }
.patience[data-level="red"] .patience-fill { background:#ff657b; }
.patience-bonus { position:absolute; left:0; bottom:0; height:7px; background:#ffd43b; border-top:2px solid #a56a37; }
.bonus-label { position:absolute; right:8px; top:66px; font-size:20px; color:#ffd43b; }
#more-waiting { position:absolute; top:1295px; left:75px; width:350px; text-align:center; font-size:27px; color:#ffd43b; }
.bp-shelf { position:absolute; top:1350px; left:65px; width:390px; height:155px; border-bottom:12px solid #dca06b; border-radius:6px; }
.bp-shelf::after { content:""; position:absolute; bottom:-18px; left:-6px; right:-6px; border-bottom:5px solid #25263e; }
.bp-shelf h2 { font-size:30px; color:#ffd43b; text-align:center; }
#shelf-plates { display:flex; align-items:end; justify-content:center; height:110px; }
#shelf-plates svg { width:95px; height:75px; margin-left:-8px; }
.bp-cupcake-tray { position:absolute; top:1538px; left:50px; width:365px; color:#ffd43b; font-size:26px; text-align:center; line-height:1.3; }
.bp-catering { position:absolute; top:525px; left:60px; right:60px; z-index:9; font-size:43px; border:4px dashed #ffd43b; border-radius:24px; padding:14px; }
#bp-stage[data-phase="ready"] .bp-catering, #bp-stage[data-phase="results"] .bp-catering { top:1040px; }
.bp-diner { position:absolute; left:52px; top:1375px; width:976px; height:365px; }
#pup { position:absolute; left:385px; top:-66px; width:305px; height:385px; overflow:visible; }
.bp-awning { position:absolute; top:232px; left:20px; right:20px; height:30px; border:5px solid #25263e; border-radius:12px; background:repeating-linear-gradient(90deg,#fff0d0 0 62px,#e38480 62px 124px); }
.bp-counter { position:absolute; top:258px; left:0; right:0; height:100px; background:#96d5d2; border:7px solid #25263e; border-radius:15px 15px 24px 24px; border-top:16px solid #fff1d2; box-shadow:0 8px 0 #e2a673,0 13px 0 #25263e; }
.bp-counter span { display:block; font-size:38px; letter-spacing:7px; text-align:center; padding-top:9px; color:#ffd43b; }
.bp-grill { position:absolute; left:705px; top:146px; width:235px; height:100px; border:7px solid #25263e; background:#bdc9ca; border-radius:18px; box-shadow:0 8px 0 #7da19f; }
.grill-bars { position:absolute; left:12px; right:12px; height:32px; top:10px; border:3px solid #25263e; border-radius:9px; background:repeating-linear-gradient(90deg,#697078 0 7px,#c7d5cf 7px 20px); }
.bp-grill::after { content:""; position:absolute; left:38px; right:38px; bottom:10px; height:13px; background:radial-gradient(circle,#ffd43b 0 6px,transparent 7px) 0 0/45px 13px; }
#flames { position:absolute; top:-110px; left:0; display:flex; }
#flames svg { width:72px; height:137px; animation:bp-flame .4s ease-in-out infinite alternate; }
#flames svg:nth-child(2) { animation-delay:-.2s; }
@keyframes bp-flame { to { transform:scaleY(.8) rotate(5deg); } }
.pup-tail { transform-origin:235px 310px; animation:var(--tail-animation,none); }
.wagging { --tail-animation:bp-wag .18s ease-in-out infinite alternate; }
@keyframes bp-wag { to { transform:rotate(28deg); } }
#pancake { position:absolute; left:590px; top:60px; width:105px; height:25px; background:#efbd6f; border:5px solid #25263e; border-radius:50%; animation:bp-pancake 1s ease-in-out infinite; }
@keyframes bp-pancake { 50% { translate:0 -100px; rotate:180deg; } }
#sample { position:absolute; left:55px; top:204px; font-size:23px; color:#ffd43b; }
#sample-dish { position:absolute; left:720px; top:80px; width:205px; height:140px; }
.bp-serving { position:absolute; top:1110px; width:235px; height:160px; text-align:center; animation:bp-serve .75s ease-out both; }
.bp-serving > svg { width:170px; height:115px; }
.plate-photo { position:absolute; left:4px; top:15px; width:62px; height:62px; border:4px solid #ffd43b; outline:3px solid #25263e; border-radius:50%; overflow:hidden; }
.plate-photo img { width:100%; height:100%; object-fit:cover; }
.plate-photo .bp-initial { font-size:27px; }
.bp-serving > span { display:block; font-size:26px; line-height:1.1; }
.bp-serving > b { display:block; color:#ffd43b; font-size:24px; }
@keyframes bp-serve { 0% { translate:70px 350px; opacity:0; } 35% { opacity:1; } 100% { translate:0 0; } }
#flying-plates { position:absolute; inset:0; pointer-events:none; z-index:6; }
.bp-cupcake-float { position:absolute; width:210px; height:90px; display:flex; align-items:center; gap:5px; animation:bp-cupcake 1s ease-in-out infinite alternate; z-index:7; }
.bp-cupcake-float svg { width:62px; height:62px; }
.bp-cupcake-float b { font-size:24px; color:#ffa9cb; white-space:nowrap; }
@keyframes bp-cupcake { to { translate:0 -12px; } }
.bp-banquet { position:absolute; left:85px; right:85px; top:845px; text-align:center; z-index:5; }
.bp-banquet p { font-size:46px; color:#ffd43b; letter-spacing:5px; }
#banquet-dishes { display:flex; justify-content:center; gap:5px; border-bottom:28px solid #ffc8a3; border-radius:20px; margin-top:30px; }
#banquet-dishes svg { width:160px; height:150px; }
.bp-banquet strong { display:block; font-size:36px; color:#ffd43b; margin-top:24px; }
.bp-storm { position:absolute; top:780px; width:180px; height:190px; text-align:center; z-index:8; }
.bp-storm b { display:block; font-size:72px; color:#a3b9d6; line-height:1; }
.bp-storm svg { width:100px; height:80px; }
.bp-storm span { display:block; font-size:20px; color:#ffa0ad; }
.bp-floaters { position:absolute; top:1756px; left:40px; right:40px; text-align:center; z-index:8; }
.bp-floaters span { display:block; font-size:28px; color:#ffd43b; line-height:1.3; }
.bp-callout { position:absolute; top:1841px; left:45px; right:45px; text-align:center; color:#fff9e9; font-size:23px; line-height:1.2; }
.bp-prompt { position:absolute; top:625px; left:55px; right:55px; font-size:29px; text-align:center; color:#ffd43b; }
.bp-footer { position:absolute; top:1885px; left:25px; right:25px; font-size:20px; text-align:center; -webkit-text-stroke:5px #25263e; }
.bp-mode { position:absolute; top:10px; left:48px; font-size:18px; color:#ffd43b; letter-spacing:4px; }
#bp-stage .tt-core-overlay-status { position:absolute; left:48px; top:1810px; width:984px; max-width:none; transform:none; margin:0; background:transparent; border:0; }
.source-page #bp-stage .tt-core-notice { font-size:21px; font-weight:900; padding:0; background:transparent; border:0; box-shadow:none; }
.source-page #bp-stage .tt-core-notice strong { font-size:23px; }
.source-page #bp-stage .tt-core-pill { font-size:20px; font-weight:900; background:transparent; border:0; }
#bp-stage:has(.tt-core-status[data-mode="live"][data-connected="false"]) .bp-callout { display:none; }
html[data-reduced-motion="1"] #bp-stage * { animation:none; }
