/* Print Parade: pegs, paper and a chunky yellow printer, on a transparent overlay. */
html.tt-shell .gift-copy small { display:block; color:var(--muted); font-size:14px; margin-top:5px; }
.source-page #pp-stage { position:absolute; width:1080px; height:1920px; transform-origin:top left; color:#fff; font-family:system-ui,sans-serif; font-weight:900; -webkit-text-stroke:7px #25263e; paint-order:stroke fill; text-shadow:none; }
.source-page #pp-stage * { box-sizing:border-box; paint-order:stroke fill; stroke-linejoin:round; }
html.source-page[data-transparent="0"] body { background:#16181b; }
#pp-stage [hidden] { display:none; }
.pp-top { position:absolute; top:44px; left:48px; right:48px; display:flex; justify-content:space-between; gap:20px; }
.pp-brand { color:#ffd43b; font-size:24px; letter-spacing:4px; margin:0 0 16px; }
.pp-top h1 { font-size:88px; letter-spacing:-4px; line-height:1; margin:0; }
.pp-top h1 span { color:#ffd43b; }
.pp-clock { text-align:right; font-variant-numeric:tabular-nums; }
.pp-clock strong { display:block; color:#ffd43b; font-size:76px; line-height:1; }
.pp-clock span { display:block; font-size:23px; letter-spacing:2px; margin-top:12px; }
.pp-legend { position:absolute; top:225px; left:60px; right:60px; background:transparent; }
.pp-legend h2 { font-size:36px; color:#ffd43b; margin:0; text-align:center; }
.pp-sub { font-size:27px; text-align:center; margin:8px 0 14px; }
#legend-rows { display:grid; gap:8px; }
.pp-row { display:grid; grid-template-columns:52px 1fr; gap:14px; align-items:center; border:3px solid #ffd43b; border-radius:20px; padding:6px 16px; }
.pp-row .icon { font-size:42px; color:#ffd43b; text-align:center; }
.pp-row img { width:48px; height:48px; object-fit:contain; }
.pp-row b { display:block; font-size:26px; line-height:1.1; }
.pp-row i { display:block; font-size:22px; font-style:normal; line-height:1.2; margin-top:2px; }
.pp-board { position:absolute; top:240px; left:95px; right:95px; }
.pp-board h2 { margin:0 0 14px; text-align:center; color:#ffd43b; font-size:28px; letter-spacing:4px; }
#leaders { list-style:none; padding:0; margin:0; display:grid; gap:8px; }
#leaders li { display:grid; grid-template-columns:44px 1fr auto; gap:14px; font-size:32px; align-items:center; padding:8px 18px; border:3px solid #ffd43b; border-radius:18px; }
#leaders .rank, #leaders .share { color:#ffd43b; }
#leaders .who { min-width:0; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
#leaders small { display:block; font-size:18px; }
.pp-wall-label { position:absolute; top:707px; left:50px; right:50px; text-align:center; color:#ffd43b; font-size:25px; letter-spacing:4px; margin:0; }
.pp-wall { position:absolute; top:765px; left:48px; width:984px; height:610px; }
#slips { position:absolute; inset:0; }
.pp-rope { position:absolute; left:8px; right:8px; border-top:5px solid #e9b876; border-radius:50%; height:26px; }
.pp-slip { position:absolute; display:flex; flex-direction:column; align-items:center; background:#fff6de; border:3px solid #25263e; border-radius:3px; padding:8px 7px 5px; -webkit-text-stroke:3px #25263e; box-shadow:4px 5px 0 #25263e40; }
.pp-slip::before { content:""; position:absolute; top:-14px; left:calc(50% - 5px); width:10px; height:22px; background:#dfa568; border:2px solid #25263e; border-radius:3px; z-index:2; }
.pp-slip .photo { display:flex; align-items:center; justify-content:center; flex:1; min-height:0; width:100%; overflow:hidden; background:#ecb898; border:2px solid #25263e; }
.pp-slip .photo img { display:block; width:100%; height:100%; object-fit:cover; }
.pp-initial { display:flex; align-items:center; justify-content:center; width:100%; height:100%; min-height:30px; font-size:38px; color:#fff; }
.pp-slip .slip-name { font-size:var(--name-size,22px); line-height:1.25; margin-top:5px; width:100%; white-space:nowrap; text-overflow:ellipsis; overflow:hidden; text-align:center; }
.pp-slip .slip-note { font-size:14px; line-height:1.2; text-align:center; }
.pp-slip.heart { border:7px solid #f078a0; background:#ffbfce; border-radius:25px 25px 10px 10px; }
.pp-slip.heart .photo { clip-path:polygon(50% 16%,65% 3%,80% 0,94% 7%,100% 22%,99% 40%,90% 57%,50% 100%,10% 57%,1% 40%,0 22%,6% 7%,20% 0,35% 3%); border:0; }
.pp-slip.strip { background:#ffe0a6; }
.pp-slip.strip .photo { display:grid; grid-template-columns:1fr; grid-template-rows:repeat(4,1fr); gap:3px; background:#ffe0a6; border:0; }
.pp-slip.strip .photo > * { min-height:0; }
.pp-slip.strip .photo img { object-fit:contain; }
.pp-slip.strip .pp-initial { font-size:18px; }
.pp-slip.poster { background:linear-gradient(135deg,#fff4aa,#ffd43b 50%,#efa644); border:7px solid #ffd43b; outline:3px solid #25263e; }
.pp-slip.gold { border-color:#ffd43b; outline:5px solid #ffd43b; box-shadow:0 0 0 9px #25263e; }
.pp-slip.fresh { animation:pp-pin .9s cubic-bezier(.2,.7,.2,1) both; }
@keyframes pp-pin { 0% { translate:var(--fly-x,0px) var(--fly-y,400px); rotate:0deg; opacity:.2; } 35% { opacity:1; } 100% { translate:0 0; rotate:var(--tilt,0deg); } }
.pp-stack { position:absolute; right:12px; bottom:-12px; min-width:155px; padding:8px 14px; background:#ffe7a1; border:4px solid #25263e; box-shadow:5px 5px 0 #fff6de,9px 9px 0 #25263e; text-align:center; font-size:25px; z-index:5; }
.pp-prompt { position:absolute; top:1387px; left:48px; right:48px; margin:0; text-align:center; font-size:32px; color:#ffd43b; }
.pp-printer { position:absolute; top:1480px; left:285px; width:580px; height:218px; background:#ffd43b; border:8px solid #25263e; border-radius:40px 40px 24px 24px; box-shadow:0 12px 0 #d2912e,0 21px 0 #25263e; }
.pp-printer::before { content:""; position:absolute; top:-29px; left:47px; right:47px; height:42px; border:6px solid #25263e; border-radius:18px 18px 0 0; background:#fff6de; }
.pp-slot { position:absolute; top:22px; left:48px; right:48px; height:25px; background:#25263e; border:5px solid #b98236; border-radius:10px; }
.pp-printer-face { position:absolute; left:35px; right:35px; top:71px; display:flex; align-items:center; justify-content:space-between; }
.pp-printer-label { font-size:43px; letter-spacing:5px; line-height:1.1; }
.pp-printer-label span { display:block; font-size:14px; letter-spacing:2px; margin-top:10px; -webkit-text-stroke:3px #25263e; }
.pp-light { display:block; width:26px; height:26px; border:5px solid #25263e; border-radius:50%; background:#73f3b1; animation:pp-blink 2s steps(2) infinite; }
@keyframes pp-blink { 50% { background:#49a582; } }
.pp-vents { position:absolute; bottom:12px; right:34px; width:74px; height:15px; background:repeating-linear-gradient(90deg,#25263e 0 5px,transparent 5px 12px); }
.pp-paper { position:absolute; width:120px; height:90px; left:212px; top:-50px; background:#fff6de; border:4px solid #25263e; border-top:24px solid #ed718e; transform-origin:bottom; opacity:0; }
.pp-printer.printing .pp-paper { animation:pp-feed .7s ease-out; }
@keyframes pp-feed { 0% { opacity:1; height:0; top:25px; } 70% { opacity:1; height:100px; top:-75px; } 100% { opacity:0; top:-160px; } }
.pp-printer.galaxy { animation:pp-shake .6s ease-in-out; }
@keyframes pp-shake { 20%,60% { translate:-10px 0; rotate:-2deg; } 40%,80% { translate:10px 0; rotate:2deg; } }
.pp-glitter { position:absolute; top:-100px; left:-40px; right:-40px; color:#ffd43b; font-size:75px; letter-spacing:20px; white-space:nowrap; opacity:0; pointer-events:none; }
.pp-printer.galaxy .pp-glitter { animation:pp-glitter 1.8s ease-out; }
@keyframes pp-glitter { 10% { opacity:1; } 100% { opacity:0; translate:0 -140px; } }
.pp-tray { position:absolute; top:1474px; left:48px; width:200px; height:210px; border-bottom:8px solid #e9b876; border-radius:8px; }
.pp-tray h2 { font-size:18px; color:#ffd43b; letter-spacing:2px; margin:0; text-align:center; }
#tray-slips { position:relative; height:150px; }
#tray-overflow { font-size:18px; text-align:center; margin:0; }
.pp-tray .pp-slip { top:25px; width:100px; height:116px; --name-size:14px; }
.pp-tray .pp-slip::before { display:none; }
.pp-tray .pp-initial { font-size:26px; }
.pp-tray-count { position:absolute; top:1730px; left:45px; right:45px; font-size:28px; margin:0; text-align:center; color:#ffd43b; }
.pp-queue { position:absolute; top:1768px; left:45px; right:45px; font-size:23px; text-align:center; margin:0; }
.pp-quick { position:absolute; top:630px; left:90px; right:90px; display:flex; flex-wrap:wrap; justify-content:center; gap:8px 24px; color:#ffd43b; font-size:23px; }
.pp-callout { position:absolute; top:1810px; left:48px; right:48px; margin:0; text-align:center; color:#ffd43b; font-size:27px; line-height:1.2; }
.pp-floaters { position:absolute; top:1425px; left:50px; right:50px; text-align:center; z-index:6; }
.pp-floaters span { display:block; font-size:28px; color:#ffd43b; line-height:1.25; }
.pp-result { position:absolute; top:225px; left:60px; right:60px; text-align:center; background:transparent; }
.pp-star { color:#ffd43b; font-size:54px; margin:0 0 8px; letter-spacing:14px; }
#result-label { font-size:38px; color:#ffd43b; margin:0 0 12px; }
#winner-photos { display:flex; justify-content:center; gap:20px; height:150px; }
#winner-photos .photo { width:150px; height:150px; border:8px solid #ffd43b; outline:4px solid #25263e; border-radius:16px; overflow:hidden; }
#winner-photos img { width:100%; height:100%; object-fit:cover; }
#winner { font-size:56px; margin:15px 0 8px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
#result-detail { font-size:26px; margin:0; color:#ffd43b; }
#result-next { font-size:24px; margin:10px 0 0; }
.pp-mode { position:absolute; top:195px; right:48px; font-size:18px; color:#ffd43b; letter-spacing:3px; }
.pp-footer { position:absolute; left:20px; right:20px; top:1880px; font-size:21px; text-align:center; margin:0; -webkit-text-stroke:5px #25263e; }
.pp-queue:empty, .pp-callout:empty, .pp-mode:empty, .pp-tray-count:empty { display:none; }
.source-page #pp-stage .tt-core-overlay-status { position:absolute; left:48px; top:1785px; width:984px; max-width:none; transform:none; margin:0; z-index:7; background:transparent; border:0; }
.source-page #pp-stage .tt-core-notice { font-size:26px; font-weight:900; padding:12px; background:transparent; border:0; box-shadow:none; }
.source-page #pp-stage .tt-core-notice strong { font-size:28px; }
.source-page #pp-stage .tt-core-pill { font-size:20px; font-weight:900; background:transparent; border:0; }
#pp-stage:has(.tt-core-status[data-mode="live"][data-connected="false"]) .pp-callout { display:none; }
html[data-reduced-motion="1"] #pp-stage * { animation:none; }
