/* weekly stickers on the master board: BYU celebration and the top-10 graveyard */
.wk-sticker { position: absolute; z-index: 4; top: 12px; padding: 10px 12px 8px; background: #fffbe9; border-radius: 16px; pointer-events: none;
  box-shadow: 0 2px 2px rgba(0,0,0,.35), 0 12px 18px -8px rgba(30,14,0,.85); outline: 3px dashed rgba(58,35,16,.35); outline-offset: -7px; color: #14141a; }
.wk-sticker svg { display: block; width: 100%; height: auto; overflow: visible; }
.wk-sticker span { display: block; text-align: center; font-family: "Caveat", cursive; font-weight: 700; font-size: 22px; line-height: 1.05; margin-top: 2px; }
.byu-sticker { right: 150px; width: 340px; transform: rotate(2deg); }
.rip-sticker { left: 22px; width: 330px; transform: rotate(-3deg); }
.board#board-master { padding-top: 230px; }
@media (max-width: 1100px) { .byu-sticker { right: 130px; width: 290px; } .rip-sticker { width: 280px; } }
@media (max-width: 760px) { .byu-sticker, .rip-sticker { position: relative; right: auto; left: auto; top: auto; margin: 10px auto 14px; width: min(340px, 92%); }
  .board#board-master { padding-top: 12px; } }

/* BYU */
.byu-coach { animation: byu-hop .9s ease-in-out infinite; transform-box: fill-box; transform-origin: 50% 100%; }
.byu-head { animation: byu-nod 1.8s ease-in-out infinite; transform-box: fill-box; transform-origin: 50% 90%; }
.byu-gal { animation: byu-hop .72s ease-in-out infinite alternate; transform-box: fill-box; transform-origin: 50% 100%; }
.pom { animation: byu-pom .34s ease-in-out infinite alternate; transform-box: fill-box; transform-origin: 50% 80%; }
.byu-flag { animation: byu-wave 1.3s ease-in-out infinite; transform-box: fill-box; transform-origin: 0 50%; }
.byu-flagwrap { animation: byu-sway 1.8s ease-in-out infinite; transform-box: fill-box; transform-origin: 50% 100%; }
.conf { animation: byu-conf 3.4s linear infinite; transform-box: fill-box; transform-origin: center; }
@keyframes byu-hop { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-9px); } }
@keyframes byu-nod { 0%, 100% { transform: rotate(-2deg); } 50% { transform: rotate(3deg); } }
@keyframes byu-pom { from { transform: rotate(-18deg); } to { transform: rotate(18deg); } }
@keyframes byu-wave { 0%, 100% { transform: skewY(-5deg) scaleX(.96); } 50% { transform: skewY(5deg) scaleX(1.02); } }
@keyframes byu-sway { 0%, 100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } }
@keyframes byu-conf { 0% { transform: translateY(-10px) rotate(0); opacity: 0; } 12% { opacity: 1; } 100% { transform: translateY(240px) rotate(540deg); opacity: .9; } }

/* graveyard */
.gv-ghost { animation: gv-rise 7s ease-in-out infinite; opacity: 0; }
.gv-mourner { animation: gv-sway 3.2s ease-in-out infinite; transform-box: fill-box; transform-origin: 50% 100%; }
.gv-tear { animation: gv-tear 2.4s ease-in infinite; }
.gv-lily { animation: gv-lily 3.2s ease-in-out infinite; transform-box: fill-box; transform-origin: 50% 100%; }
.gv-bat { animation: gv-bat 9s linear infinite; }
.gv-fog { animation: gv-fog 8s ease-in-out infinite alternate; }
.gv-logo { filter: grayscale(1) contrast(.9); opacity: .75; }
@keyframes gv-rise { 0%, 10% { transform: translateY(8px); opacity: 0; } 35% { opacity: .95; } 80% { transform: translateY(-34px); opacity: 0; } 100% { transform: translateY(-34px); opacity: 0; } }
@keyframes gv-sway { 0%, 100% { transform: rotate(-1.6deg); } 50% { transform: rotate(1.6deg); } }
@keyframes gv-tear { 0% { transform: translateY(0); opacity: 0; } 15% { opacity: 1; } 100% { transform: translateY(34px); opacity: 0; } }
@keyframes gv-lily { 0%, 100% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } }
@keyframes gv-bat { 0% { transform: translate(-40px, 6px); } 25% { transform: translate(80px, -10px); } 50% { transform: translate(190px, 8px); } 75% { transform: translate(290px, -8px); } 100% { transform: translate(400px, 4px); } }
@keyframes gv-fog { from { transform: translateX(-12px); } to { transform: translateX(14px); } }
@media (prefers-reduced-motion: reduce) { .byu-coach, .byu-head, .byu-gal, .pom, .byu-flag, .byu-flagwrap, .conf, .gv-ghost, .gv-mourner, .gv-tear, .gv-lily, .gv-bat, .gv-fog { animation: none; } .gv-ghost, .conf { opacity: 0; } }

/* the highlights band along the top of the master board, one sticker per big moment of the season */
.hl-row { position: absolute; z-index: 4; top: 12px; left: 22px; right: 150px; display: flex; align-items: flex-start; gap: 14px; pointer-events: none; }
.hl-row > * { position: relative; top: 0; left: 0; right: auto; flex: 0 1 auto; min-width: 0; }
.hl-row .ou-sticker { width: 196px; transform: rotate(-3deg); pointer-events: auto; }
.hl-row .rip-sticker { width: 330px; transform: rotate(-2deg); }
.hl-row .byu-sticker { width: 196px; transform: rotate(2deg); }
@media (max-width: 1180px) { .hl-row .ou-sticker, .hl-row .byu-sticker { width: 150px; } .hl-row .rip-sticker { width: 270px; } .hl-row { gap: 10px; } }
@media (max-width: 860px) { .hl-row .ou-sticker, .hl-row .byu-sticker { width: 120px; } .hl-row .rip-sticker { width: 210px; } .hl-row { left: 12px; right: 110px; } }
@media (max-width: 760px) { .hl-row { position: relative; top: auto; left: auto; right: auto; flex-direction: column; align-items: center; margin: 10px 0 14px; }
  .hl-row .ou-sticker, .hl-row .byu-sticker { width: min(220px, 70%); } .hl-row .rip-sticker { width: min(340px, 92%); } }

/* the Miami frog at the graves: click him */
.rip-sticker { position: relative; }
.gv-hit { pointer-events: all; cursor: pointer; }
.gv-tear.t2 { animation-delay: -1.2s; }
.gv-say { position: absolute; left: 72%; bottom: 22%; width: 74px; text-align: center; z-index: 6; padding: 3px 8px; background: #fff; border: 2px solid #14141a; border-radius: 12px; font-family: "Caveat", cursive; font-weight: 700; font-size: 16px; line-height: 1; color: #14141a; white-space: normal;
  opacity: 0; transform-origin: 0 100%; pointer-events: none; }
.gv-say::after { content: ""; position: absolute; left: -7px; bottom: 4px; width: 9px; height: 9px; background: #fff; border-left: 2px solid #14141a; border-bottom: 2px solid #14141a; transform: rotate(45deg) skew(10deg, 10deg); }
.rip-sticker.says .gv-say { animation: gv-pop 2.2s ease-out forwards; }
@keyframes gv-pop { 0% { opacity: 0; transform: scale(.4); } 14% { opacity: 1; transform: scale(1.12); } 24% { transform: scale(1); } 78% { opacity: 1; } 100% { opacity: 0; transform: scale(.96) translateY(-4px); } }

/* which week each highlight is from */
.wk-tag { position: absolute; z-index: 7; top: -9px; left: 14px; padding: 2px 9px; background: #2b2118; color: #f4ecd6; border-radius: 6px; font: normal 11px/1.3 "Special Elite", monospace; letter-spacing: .06em; text-transform: uppercase; transform: rotate(-3deg); box-shadow: 0 1px 2px rgba(0,0,0,.5); pointer-events: none; }

/* more highlights than fit: the band scrolls sideways, newest on the left */
.hl-row { overflow-x: auto; overflow-y: hidden; pointer-events: auto; padding: 14px 10px 14px 6px; margin: -14px -10px 0 -6px; scrollbar-width: thin; scrollbar-color: #5a3d22 transparent; }
.hl-row > * { flex-shrink: 0; }

/* the unbeaten list */
.ub-out text { animation: ub-gray 8s ease-in-out infinite; }
.ub-strike { stroke-dasharray: 170; animation: ub-draw 8s ease-in-out infinite; }
.ub-l { animation: ub-pop 8s ease-out infinite; transform-box: fill-box; transform-origin: center; }
.ub-bouncer { animation: byu-nod 2.4s ease-in-out infinite; transform-box: fill-box; transform-origin: 50% 100%; }
.ub-say { animation: ub-say 8s ease-in-out infinite; }
@keyframes ub-draw { 0%, 8% { stroke-dashoffset: 170; } 22%, 92% { stroke-dashoffset: 0; } 100% { stroke-dashoffset: 170; } }
@keyframes ub-gray { 0%, 10% { opacity: 1; } 24%, 92% { opacity: .55; } 100% { opacity: 1; } }
@keyframes ub-pop { 0%, 20% { transform: scale(0); } 28% { transform: scale(1.25); } 34%, 92% { transform: scale(1); } 100% { transform: scale(0); } }
@keyframes ub-say { 0%, 30% { opacity: 0; transform: translateY(4px); } 38%, 80% { opacity: 1; transform: none; } 90%, 100% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .ub-out text, .ub-strike, .ub-l, .ub-bouncer, .ub-say { animation: none; } .ub-strike { stroke-dashoffset: 0; } }
.hl-row .ub-sticker { width: 228px; transform: rotate(1.6deg); }
@media (max-width: 1180px) { .hl-row .ub-sticker { width: 190px; } }
@media (max-width: 860px) { .hl-row .ub-sticker { width: 150px; } }
@media (max-width: 760px) { .hl-row .ub-sticker { width: min(260px, 80%); } }

/* the free-win van */
.hl-row .cin-sticker { width: 250px; transform: rotate(-1.8deg); }
@media (max-width: 1180px) { .hl-row .cin-sticker { width: 200px; } }
@media (max-width: 860px) { .hl-row .cin-sticker { width: 160px; } }
@media (max-width: 760px) { .hl-row .cin-sticker { width: min(280px, 85%); } }
.cin-sticker svg { overflow: hidden; }
.cin-van { animation: cin-park 3.4s cubic-bezier(.16,.8,.28,1) 1 both; }
.cin-bob { animation: cin-bob .4s ease-in-out 8 alternate both; }
.cin-wheel { animation: cin-spin 3.4s cubic-bezier(.16,.8,.28,1) 1 both; transform-box: fill-box; transform-origin: center; }
.cin-road { animation: cin-road 3.4s cubic-bezier(.16,.8,.28,1) 1 both; }
.cin-puff { animation: cin-puff 1.1s ease-out 3 both; transform-box: fill-box; transform-origin: right center; }
.cin-flag { animation: cin-flag .5s ease-in-out infinite alternate; transform-box: fill-box; transform-origin: right center; }
.cin-head { animation: cin-nod 2.6s ease-in-out infinite; }
.cin-look { animation: cin-look 5s ease-in-out infinite; }
.cin-brake { opacity: 0; animation: cin-brake 3.4s steps(1, end) 1 both; }
@keyframes cin-park { 0% { transform: translateX(-340px); } 100% { transform: translateX(0); } }
@keyframes cin-bob { from { transform: translateY(0); } to { transform: translateY(-2.5px); } }
@keyframes cin-spin { from { transform: rotate(0); } to { transform: rotate(1100deg); } }
@keyframes cin-road { from { transform: translateX(0); } to { transform: translateX(-120px); } }
@keyframes cin-puff { 0% { opacity: .9; transform: scale(.4) translateX(0); } 100% { opacity: 0; transform: scale(1.4) translateX(-16px); } }
@keyframes cin-flag { from { transform: rotate(-4deg); } to { transform: rotate(5deg); } }
@keyframes cin-nod { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(2px); } }
@keyframes cin-look { 0%, 20% { transform: translateX(0); } 30%, 55% { transform: translateX(5px); } 65%, 85% { transform: translateX(-5px); } 100% { transform: translateX(0); } }
@keyframes cin-brake { 0%, 88% { opacity: 0; } 89%, 100% { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .cin-van, .cin-bob, .cin-wheel, .cin-road, .cin-puff, .cin-flag, .cin-head, .cin-look, .cin-brake { animation: none; } .cin-brake { opacity: 0; } }

/* the highlights sit in rows at the top of the master board, in the flow, so nothing scrolls and nothing covers the conference plaques */
.board#board-master { padding-top: 34px !important; }
.hl-row {
  position: relative !important; top: auto !important; left: auto !important; right: auto !important; z-index: 4;
  display: flex !important; flex-wrap: wrap !important; align-items: flex-start !important; gap: 26px 20px !important;
  margin: 0 176px 46px 0 !important; padding: 10px 0 0 6px !important; overflow: visible !important; pointer-events: none;
}
.hl-row > * { flex: 0 0 auto !important; }
@media (max-width: 1180px) { .hl-row { margin-right: 140px !important; } }
@media (max-width: 860px) { .hl-row { margin-right: 96px !important; gap: 18px 12px !important; } }
@media (max-width: 760px) { .hl-row { flex-direction: row !important; justify-content: center; margin: 4px 0 30px !important; padding: 108px 0 0 !important; } }

/* week 9: the Ohio State fall: a big sticker */
.hl-row .osf-sticker { width: 470px; transform: rotate(-1.4deg); }
@media (max-width: 1180px) { .hl-row .osf-sticker { width: 380px; } }
@media (max-width: 860px) { .hl-row .osf-sticker { width: 270px; } }
@media (max-width: 760px) { .hl-row .osf-sticker { width: min(340px, 92%); } }
.osf-sad { animation: osf-slump 3.2s ease-in-out infinite; transform-box: fill-box; transform-origin: 50% 100%; }
.osf-cheer { animation: osf-hop 1.1s ease-in-out infinite; transform-box: fill-box; transform-origin: 50% 100%; }
.osf-tear { animation: osf-drip 1.8s ease-in infinite; transform-box: fill-box; } .osf-tear.t2 { animation-delay: .7s; }
.osf-dead text:nth-of-type(2) { animation: osf-flicker 2.4s steps(1) infinite; }
@keyframes osf-slump { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(.95) translateY(1px); } }
@keyframes osf-hop { 0%, 100% { transform: translateY(0); } 45% { transform: translateY(-9px); } }
@keyframes osf-drip { 0% { transform: translateY(-3px); opacity: 0; } 30% { opacity: 1; } 100% { transform: translateY(26px); opacity: 0; } }
@keyframes osf-flicker { 0%, 70% { opacity: 1; } 78%, 84% { opacity: .35; } 90%, 100% { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .osf-sad, .osf-cheer, .osf-tear, .osf-dead text { animation: none; } }
