/* Card-level responsiveness keeps every control usable even when three columns are squeezed. */
html,
body,
button,
a {
  touch-action: manipulation;
}

html,
body {
  scrollbar-width: none;
  -ms-overflow-style: none;
}

html::-webkit-scrollbar,
body::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}

body {
  background:
    linear-gradient(rgba(2, 4, 24, .30), rgba(2, 4, 24, .38)),
    url("edca9c56-1ef6-4803-a327-c7e64db73679.png") center top / cover fixed no-repeat;
}

body::before {
  opacity: .02;
}

.scoreboard {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 28px;
}

.team-card {
  container-type: inline-size;
  min-width: 0;
  cursor: pointer;
}
.team-card.leading::after { content: ""; position: absolute; inset: 0; z-index: 6; padding: 2px; border-radius: inherit; background: conic-gradient(from var(--team-border-angle), transparent 0 68%, rgba(255,255,255,.18) 76%, #ffffff 83%, var(--team) 89%, transparent 96% 100%); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; pointer-events: none; animation: teamBorderLight 2.8s linear infinite; filter: drop-shadow(0 0 7px var(--team)); }
.team-card.leading { transform: none; }
@property --team-border-angle { syntax: "<angle>"; initial-value: 0deg; inherits: false; }
@keyframes teamBorderLight { to { --team-border-angle: 360deg; } }
.team-card:focus-visible { outline: 2px solid var(--team); outline-offset: 3px; }

.team-subtitle {
  margin: 3px 0 0;
  color: #91a6b4;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .04em;
}

.team-heading {
  margin-bottom: 20px;
}

.quick-actions {
  position: fixed;
  left: 50%;
  bottom: 12px;
  z-index: 40;
  display: grid;
  grid-template-columns: repeat(4, minmax(64px, 1fr));
  gap: 4px;
  width: min(480px, calc(100% - 24px));
  padding: 7px;
  border: 1px solid rgba(139, 112, 255, .45);
  border-radius: 22px;
  background: rgba(7, 10, 35, .9);
  box-shadow: 0 18px 55px rgba(0, 0, 0, .55);
  backdrop-filter: blur(18px);
  transform: translateX(-50%);
}

.quick-actions button {
  display: grid;
  align-items: center;
  justify-items: center;
  gap: 3px;
  min-height: 62px;
  border: 0;
  border-radius: 16px;
  background: transparent;
  color: #fff;
  padding: 7px 8px;
  cursor: pointer;
}

.quick-actions button:hover,
.quick-actions button:focus-visible {
  background: rgba(129, 97, 255, .18);
  outline: none;
}

.quick-actions .action-icon { color: #a98fff; font-size: 27px; font-weight: 500; line-height: 1; filter: drop-shadow(0 0 0 rgba(169,143,255,0)); animation: actionIconFloat 2.8s ease-in-out infinite; }
.quick-actions .staff-icon { position: relative; display: block; width: 27px; height: 27px; }
.quick-actions .staff-icon::before { content: ""; position: absolute; left: 50%; top: 1px; width: 9px; height: 9px; border: 2px solid currentColor; border-radius: 50%; transform: translateX(-50%); }
.quick-actions .staff-icon::after { content: ""; position: absolute; left: 50%; bottom: 1px; width: 22px; height: 11px; border: 2px solid currentColor; border-bottom: 0; border-radius: 14px 14px 3px 3px; transform: translateX(-50%); }
.quick-actions button:nth-child(2) .action-icon { animation-delay: .35s; }
.quick-actions button:nth-child(3) .action-icon { animation-delay: .7s; }
.quick-actions button:nth-child(4) .action-icon { animation-delay: 1.05s; }
@keyframes actionIconFloat {
  0%, 100% { transform: translateY(0) scale(1); filter: drop-shadow(0 0 0 rgba(169,143,255,0)); }
  50% { transform: translateY(-3px) scale(1.04); filter: drop-shadow(0 4px 7px rgba(169,143,255,.42)); }
}
.quick-actions .action-label { display: grid; gap: 1px; font-size: 12px; font-weight: 800; line-height: 1.15; }
.quick-actions .action-label small { color: #9fa8c0; font-size: 8px; font-weight: 700; white-space: nowrap; }

body { padding-bottom: 96px; }

.info-modal {
  position: fixed;
  inset: 0;
  z-index: 50;
  display: grid;
  place-items: center;
  padding: 18px;
  background: rgba(1, 3, 18, .78);
  opacity: 0;
  backdrop-filter: blur(0);
  transition: opacity .3s ease, backdrop-filter .35s ease;
}

.info-modal.is-open { opacity: 1; backdrop-filter: blur(10px); }

.info-modal[hidden] { display: none; }
.info-modal[data-panel="sponsors"] { background: rgba(24, 14, 1, .86); }
.info-modal[data-panel="sponsors"]::before { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; opacity: .18; background-image: radial-gradient(circle, #ffd84d 0 4px, #d98c08 4.5px 6px, transparent 6.5px), radial-gradient(circle, #fff0a0 0 3px, #e3a119 3.5px 5px, transparent 5.5px); background-size: 220px 280px, 310px 390px; background-position: 15px -280px, 120px -390px; animation: sponsorCoinFall 8s linear infinite; }
@keyframes sponsorCoinFall { to { background-position: 15px 460px, 70px 610px, 135px 780px; } }
.coin-rain { display: none; position: absolute; inset: 0; z-index: 3; overflow: hidden; pointer-events: none; perspective: 700px; }
.info-modal[data-panel="sponsors"] .coin-rain { display: block; }
.coin-rain i { position: absolute; top: -50px; left: var(--coin-left); width: var(--coin-size); height: var(--coin-size); border: 2px solid #fff0a0; border-radius: 50%; background: radial-gradient(circle at 35% 28%,#fff8b7 0 10%,#ffd447 24%,#e39a08 62%,#9a5600 100%); box-shadow: inset -3px -3px 5px rgba(108,53,0,.38),2px 1px 0 #a66305,4px 2px 0 #7b4300,6px 3px 0 #512800,8px 5px 12px rgba(0,0,0,.5),0 0 9px rgba(255,199,39,.55); animation: foregroundCoinDrop var(--coin-speed) linear infinite; animation-delay: var(--coin-delay); transform-style: preserve-3d; }
.coin-rain i::after { content: "$"; position: absolute; inset: 0; display: grid; place-items: center; color: rgba(119,64,0,.7); font: 900 calc(var(--coin-size) * .48)/1 Arial,sans-serif; }
@keyframes foregroundCoinDrop {
  0% { transform: translate3d(0,-80px,120px) rotateX(0deg) rotateY(0deg) rotateZ(0deg); opacity: 0; }
  8% { opacity: 1; }
  55% { transform: translate3d(25px,52vh,-40px) rotateX(540deg) rotateY(420deg) rotateZ(180deg); }
  100% { transform: translate3d(-18px,110vh,90px) rotateX(1080deg) rotateY(900deg) rotateZ(420deg); opacity: .9; }
}
.coin-rain i:nth-child(1){--coin-left:4%;--coin-size:19px;--coin-speed:4.8s;--coin-delay:-1.1s}.coin-rain i:nth-child(2){--coin-left:11%;--coin-size:26px;--coin-speed:5.8s;--coin-delay:-3.7s}.coin-rain i:nth-child(3){--coin-left:19%;--coin-size:16px;--coin-speed:4.4s;--coin-delay:-2.2s}.coin-rain i:nth-child(4){--coin-left:27%;--coin-size:22px;--coin-speed:6.2s;--coin-delay:-5.1s}.coin-rain i:nth-child(5){--coin-left:35%;--coin-size:28px;--coin-speed:5.1s;--coin-delay:-.8s}.coin-rain i:nth-child(6){--coin-left:43%;--coin-size:18px;--coin-speed:4.6s;--coin-delay:-3.1s}.coin-rain i:nth-child(7){--coin-left:51%;--coin-size:24px;--coin-speed:6s;--coin-delay:-4.3s}.coin-rain i:nth-child(8){--coin-left:59%;--coin-size:15px;--coin-speed:4.2s;--coin-delay:-1.7s}.coin-rain i:nth-child(9){--coin-left:67%;--coin-size:27px;--coin-speed:5.6s;--coin-delay:-4.9s}.coin-rain i:nth-child(10){--coin-left:75%;--coin-size:20px;--coin-speed:4.9s;--coin-delay:-2.8s}.coin-rain i:nth-child(11){--coin-left:83%;--coin-size:25px;--coin-speed:6.3s;--coin-delay:-5.7s}.coin-rain i:nth-child(12){--coin-left:91%;--coin-size:17px;--coin-speed:4.5s;--coin-delay:-.4s}.coin-rain i:nth-child(13){--coin-left:8%;--coin-size:14px;--coin-speed:6.8s;--coin-delay:-6s}.coin-rain i:nth-child(14){--coin-left:31%;--coin-size:20px;--coin-speed:5.3s;--coin-delay:-4s}.coin-rain i:nth-child(15){--coin-left:47%;--coin-size:13px;--coin-speed:4.1s;--coin-delay:-2.5s}.coin-rain i:nth-child(16){--coin-left:63%;--coin-size:23px;--coin-speed:6.5s;--coin-delay:-3.4s}.coin-rain i:nth-child(17){--coin-left:79%;--coin-size:16px;--coin-speed:4.7s;--coin-delay:-1.3s}.coin-rain i:nth-child(18){--coin-left:96%;--coin-size:21px;--coin-speed:5.9s;--coin-delay:-5.3s}
.coin-rain i:nth-child(n+11) { display: none; }
.info-dialog { width: min(720px, 100%); max-height: 84vh; overflow: hidden; border: 1px solid rgba(139, 112, 255, .48); border-radius: 24px; background: #090d2b; opacity: 0; box-shadow: 0 30px 90px rgba(0,0,0,.65); transform: translateY(38px) scale(.965); transition: transform .38s cubic-bezier(.18,.89,.32,1.18), opacity .24s ease; will-change: transform,opacity; }
.info-modal.is-open .info-dialog { opacity: 1; transform: translateY(0) scale(1); }
.info-modal.is-closing .info-dialog { opacity: 0; transform: translateY(54px) scale(.97); transition: transform .32s cubic-bezier(.4,0,1,1), opacity .24s ease; }
.info-modal[data-panel="sponsors"] .info-dialog { position: relative; z-index: 1; border-color: rgba(255,202,54,.68); background: linear-gradient(155deg,#241703,#0d0a04 62%,#2d1a02); box-shadow: 0 30px 90px rgba(0,0,0,.72), 0 0 40px rgba(255,191,32,.18); }
.info-modal[data-panel="sponsors"] .info-content { overflow: hidden; padding: clamp(10px,2.5vw,18px); }
.info-modal[data-panel="sponsors"] .info-dialog header { border-bottom-color: rgba(255,207,76,.22); }
.info-modal[data-panel="sponsors"] .info-dialog header p { color: #ffc83d; }
.info-modal[data-panel="sponsors"] .info-dialog header h2 { white-space: nowrap; font-size: clamp(18px, 5vw, 27px); }
.info-modal[data-panel="sponsors"] .info-dialog header button { border-color: rgba(255,208,80,.34); color: #ffe18a; }
.info-dialog header { display: flex; justify-content: space-between; align-items: center; padding: 22px 24px; border-bottom: 1px solid rgba(255,255,255,.12); }
.info-dialog header p { margin: 0 0 4px; color: #8f79ff; font-size: 11px; font-weight: 900; letter-spacing: .18em; }
.info-modal[data-panel="program"] .info-dialog header p,
.info-modal[data-panel="staff"] .info-dialog header p { font-size: 19px; letter-spacing: .04em; }
.info-modal[data-panel="program"] .info-dialog header p { font-size: 26px; }
.info-modal[data-panel="program"] .info-dialog header h2 { font-size: clamp(13px, 3.5vw, 17px); letter-spacing: .08em; white-space: nowrap; }
.info-modal[data-panel="events"] .info-dialog header p { font-size: 26px; letter-spacing: .04em; }
.info-modal[data-panel="events"] .info-dialog header h2 { font-size: clamp(13px, 3.5vw, 17px); letter-spacing: .08em; white-space: nowrap; }
.info-modal[data-panel="staff"] .info-dialog header p { font-size: 26px; }
.info-modal[data-panel="staff"] .info-dialog header h2 { font-size: clamp(13px, 3.5vw, 17px); letter-spacing: .08em; white-space: nowrap; }
.info-dialog header h2 { margin: 0; font-size: 27px; }
.modal-subtitle { display: block; margin-top: 4px; color: #aeb7cf; font-size: 12px; font-weight: 700; }
.info-dialog header button { width: 40px; height: 40px; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; background: rgba(255,255,255,.06); color: #fff; font-size: 26px; cursor: pointer; }
.info-dialog header button { display: none; }
.info-content { max-height: calc(84vh - 90px); overflow-y: auto; padding: 18px 24px 24px; scrollbar-width: none; -ms-overflow-style: none; }
.info-content::-webkit-scrollbar { display: none; width: 0; height: 0; }
.info-list { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; }
.info-list li { display: grid; grid-template-columns: 40px 1fr; gap: 12px; align-items: center; padding: 13px 15px; border-radius: 13px; background: rgba(255,255,255,.06); }
.info-list strong { color: #9b86ff; text-align: center; }
.event-schedule-list li > span { display: grid; gap: 6px; }
.event-schedule-list li b { color: #f4f2ff; font-size: 14px; line-height: 1.35; }
.event-schedule-list li small { color: #a995ff; font-size: 11px; font-weight: 800; line-height: 1.35; }
.event-schedule-list .category-lines { display: grid; gap: 2px; }
.programme-list { display: grid; gap: 18px; }
.programme-group { display: grid; grid-template-columns: 58px 1fr; gap: 12px; align-items: start; }
.programme-group time { padding-top: 15px; color: #b8a9ff; font-size: 15px; font-weight: 900; }
.programme-group > div { display: grid; gap: 8px; }
.programme-group article { display: grid; gap: 3px; padding: 13px 15px; border: 1px solid rgba(154,124,255,.24); border-radius: 14px; background: rgba(255,255,255,.055); }
.programme-group article strong { font-size: 15px; }
.programme-group article span { color: #aeb7cf; font-size: 13px; line-height: 1.35; }
.panel-placeholder { display: grid; place-items: center; min-height: 220px; color: #aeb7cf; text-align: center; }
.panel-placeholder span { color: #9b86ff; font-size: 48px; }
.panel-placeholder p { margin: -40px 0 0; font-weight: 800; }
.staff-list { display: grid; gap: 9px; }
.staff-list article { display: grid; grid-template-columns: minmax(130px, .8fr) 1.4fr; gap: 16px; padding: 14px 16px; border: 1px solid rgba(154,124,255,.2); border-radius: 14px; background: rgba(255,255,255,.05); }
.staff-list strong { display: grid; gap: 3px; color: #a995ff; font-size: 12px; letter-spacing: .04em; }
.staff-list strong > span { color: #f1edff; font-size: 14px; }
.staff-list strong > small { color: #a995ff; font-size: 9px; line-height: 1.25; }
.staff-list article div { display: grid; gap: 5px; }
.staff-list span { color: #eef0fa; font-size: 13px; line-height: 1.35; }
.sponsor-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; width: min(100%, calc(55vh - 70px)); width: min(100%, calc(55dvh - 70px)); margin: 0 auto; }
.sponsor-list article { position: relative; isolation: isolate; overflow: hidden; display: grid; place-items: center; width: 100%; min-width: 0; aspect-ratio: 1; padding: 9px; border: 1px solid rgba(255,202,54,.4); border-radius: 13px; background: linear-gradient(145deg, rgba(255,185,35,.19), rgba(255,242,178,.05)); color: #fff3c1; text-align: center; }
.sponsor-list article:not(.empty)::after { content: ""; position: absolute; inset: -30%; z-index: -1; width: 34%; height: 160%; background: linear-gradient(90deg,transparent,rgba(255,244,177,.58),transparent); transform: translateX(-260%) rotate(18deg); animation: sponsorNameSweep 4.2s ease-in-out infinite; pointer-events: none; }
.sponsor-list article:nth-child(2)::after { animation-delay: .45s; }.sponsor-list article:nth-child(3)::after { animation-delay: .9s; }.sponsor-list article:nth-child(4)::after { animation-delay: 1.35s; }
@keyframes sponsorNameSweep { 0%,22%{transform:translateX(-260%) rotate(18deg);opacity:0}28%{opacity:.75}58%{transform:translateX(430%) rotate(18deg);opacity:.45}64%,100%{transform:translateX(430%) rotate(18deg);opacity:0} }
.sponsor-list article.empty { border-style: dashed; background: rgba(255,199,61,.035); opacity: .48; }
.sponsor-list span { color: #ffd34f; font-size: 18px; }
.sponsor-list article.empty small { color: #bfa76b; font-size: 7px; font-weight: 800; letter-spacing: .08em; }
.sponsor-list strong { max-width: 100%; overflow-wrap: anywhere; font-size: clamp(9px, 2.5vw, 13px); line-height: 1.25; letter-spacing: .02em; }
.team-award-list { display: grid; gap: 9px; }
.team-award-list article { display: grid; grid-template-columns: 68px 1fr; gap: 14px; align-items: center; padding: 13px 15px; border-radius: 14px; background: rgba(255,255,255,.055); }
.team-award-list article > span { padding: 6px 8px; border-radius: 99px; color: #111827; font-size: 12px; font-weight: 900; text-align: center; }
.team-award-list .award-gold > span { background: var(--gold); }
.team-award-list .award-silver > span { background: var(--silver); }
.team-award-list .award-bronze > span { background: var(--bronze); }
.team-award-list article div { display: grid; gap: 4px; }
.team-award-list small { color: #99a7bd; }
.poster-section { margin-top: 38px; padding: 8px 0 10px; overflow: hidden; }
.poster-heading { text-align: center; }
.poster-heading p { margin: 0 0 7px; color: #a58dff; font-size: 11px; font-weight: 900; letter-spacing: .2em; }
.poster-heading h2 { margin: 0; font-size: 27px; }
.poster-carousel { position: relative; width: min(820px, 100%); height: clamp(520px, 70vw, 590px); min-height: 0; margin: 18px auto 0; perspective: 1200px; outline: none; touch-action: pan-y; }
.poster-stage { position: relative; width: 100%; height: 100%; transform-style: preserve-3d; }
.poster-card { position: absolute; left: 50%; top: 50%; width: min(240px, 48vw); aspect-ratio: 1 / 2.11; overflow: hidden; border: 1px solid rgba(171,144,255,.55); border-radius: 18px; background: linear-gradient(160deg,#331a79,#090d2b 62%,#251264); box-shadow: 0 28px 70px rgba(0,0,0,.58); transform: translate(-50%,-50%); transition: transform .65s cubic-bezier(.2,.8,.2,1), opacity .55s, filter .55s; backface-visibility: hidden; }
.poster-card img { width: 100%; height: 100%; background: #05071b; object-fit: contain; }
.poster-card::after { content: ""; position: absolute; inset: -20%; z-index: 2; width: 34%; height: 140%; background: linear-gradient(90deg, transparent, rgba(255,255,255,.42), transparent); transform: translateX(-240%) rotate(16deg); pointer-events: none; opacity: 0; }
.poster-card.is-active::after { animation: posterLightSweep 4.6s ease-in-out infinite; }
@keyframes posterLightSweep {
  0%, 18% { transform: translateX(-240%) rotate(16deg); opacity: 0; }
  24% { opacity: .7; }
  58% { transform: translateX(420%) rotate(16deg); opacity: .42; }
  64%, 100% { transform: translateX(420%) rotate(16deg); opacity: 0; }
}
.poster-card .poster-placeholder { display: grid; place-items: center; align-content: center; gap: 12px; width: 100%; height: 100%; padding: 22px; color: #c9bdff; text-align: center; }
.poster-placeholder span { font-size: 42px; }
.poster-placeholder strong { font-size: 17px; }
.poster-placeholder small { color: #9389b8; }
.poster-card.is-active { z-index: 3; opacity: 1; transform: translate(-50%,-50%) translateZ(100px) scale(1); filter: brightness(1); }
.poster-card.is-active { cursor: zoom-in; }
.poster-card.is-left { z-index: 2; opacity: .7; transform: translate(-50%,-50%) translateX(-72%) rotateY(46deg) scale(.82); filter: brightness(.63); }
.poster-card.is-right { z-index: 2; opacity: .7; transform: translate(-50%,-50%) translateX(72%) rotateY(-46deg) scale(.82); filter: brightness(.63); }
.poster-card.is-left,.poster-card.is-right { cursor: pointer; }
.poster-card.is-hidden { z-index: 1; opacity: 0; transform: translate(-50%,-50%) scale(.65); pointer-events: none; }
.poster-arrow { position: absolute; z-index: 8; top: 50%; width: 44px; height: 44px; border: 1px solid rgba(255,255,255,.24); border-radius: 50%; background: rgba(7,10,35,.86); color: #fff; font-size: 32px; line-height: 1; cursor: pointer; transform: translateY(-50%); backdrop-filter: blur(10px); }
.poster-arrow { display: none; }
.poster-arrow.previous { left: 8px; }
.poster-arrow.next { right: 8px; }
.poster-arrow:hover,.poster-arrow:focus-visible { border-color: #a98fff; background: #3d287c; outline: none; }
.poster-dots { display: flex; justify-content: center; gap: 7px; margin-top: 6px; }
.poster-dots button { width: 7px; height: 7px; border: 0; border-radius: 50%; background: #625b7c; padding: 0; cursor: pointer; transition: width .25s, background .25s; }
.poster-dots button.active { width: 22px; border-radius: 99px; background: #a98fff; }
.poster-lightbox { position: fixed; inset: 0; z-index: 80; display: grid; place-items: center; padding: 18px; background: rgba(1,2,16,.94); opacity: 0; backdrop-filter: blur(0); transition: opacity .3s ease, backdrop-filter .35s ease; }
.poster-lightbox.is-open { opacity: 1; backdrop-filter: blur(12px); }
.poster-lightbox[hidden] { display: none; }
.poster-lightbox img { display: block; width: auto; max-width: min(94vw, 520px); height: auto; max-height: 92vh; border-radius: 14px; opacity: 0; box-shadow: 0 30px 100px rgba(0,0,0,.75); object-fit: contain; transform: translateY(34px) scale(.94); transition: transform .38s cubic-bezier(.18,.89,.32,1.18), opacity .24s ease; }
.poster-lightbox.is-open img { opacity: 1; transform: translateY(0) scale(1); }
.poster-lightbox.is-closing img { opacity: 0; transform: translateY(44px) scale(.96); transition: transform .32s cubic-bezier(.4,0,1,1), opacity .22s ease; }
.poster-lightbox button { position: fixed; right: max(16px, env(safe-area-inset-right)); top: max(16px, env(safe-area-inset-top)); z-index: 2; width: 44px; height: 44px; border: 1px solid rgba(255,255,255,.3); border-radius: 50%; background: rgba(7,10,35,.78); color: #fff; font-size: 28px; cursor: pointer; }
.poster-lightbox button { display: none; }

@media (max-width: 520px) {
  .quick-actions {
    bottom: max(8px, env(safe-area-inset-bottom));
    grid-template-columns: repeat(4, minmax(0, 1fr));
    width: calc(100% - 24px);
  }
  .programme-group { grid-template-columns: 46px 1fr; gap: 7px; }
  .info-content { padding-left: 14px; padding-right: 14px; }
  .staff-list article { grid-template-columns: 1fr; gap: 7px; }
  .sponsor-list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
  .poster-carousel { height: 510px; min-height: 0; }
  .poster-card { width: min(218px, 58vw); }
  .poster-card.is-left { transform: translate(-50%,-50%) translateX(-52%) rotateY(52deg) scale(.76); }
  .poster-card.is-right { transform: translate(-50%,-50%) translateX(52%) rotateY(-52deg) scale(.76); }
  .poster-arrow { width: 40px; height: 40px; }
}

@media (min-width: 721px) {
  .sponsor-list {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    width: min(100%, calc(70vh - 30px));
    width: min(100%, calc(70dvh - 30px));
  }
}

@media (prefers-reduced-motion: reduce) {
  .quick-actions .action-icon { animation: none; }
  .poster-card.is-active::after { animation: none; }
  .info-modal[data-panel="sponsors"]::before { animation: none; }
  .coin-rain i { animation: none; display: none; }
  .sponsor-list article:not(.empty)::after { animation: none; }
  .team-card.leading::after { animation: none; }
  .info-modal,.info-dialog { transition-duration: .01ms; }
  .poster-lightbox,.poster-lightbox img { transition-duration: .01ms; }
}

@container (max-width: 300px) {
  .team-card {
    padding: 20px 16px;
  }

  .rank-mark {
    right: 14px;
    top: 18px;
    font-size: 42px;
    opacity: .48;
  }

  .team-heading {
    gap: 9px;
  }

  .team-heading h2 {
    max-width: 3.2em;
    font-size: 25px;
    line-height: 1.08;
  }

  .flag {
    width: 9px;
    height: 38px;
  }

  .team-total {
    margin: 22px 0 16px;
  }

  .team-total strong {
    font-size: 46px;
  }

  .medal-row {
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 11px;
  }

  .controls {
    display: grid;
    grid-template-columns: 34px 1fr 34px;
    width: 100%;
    gap: 7px;
  }

  .control {
    width: 34px;
    height: 34px;
  }
}

@media (max-width: 950px) {
  .scoreboard {
    grid-template-columns: 1fr;
  }

  .team-card.leading {
    transform: none;
  }

  .team-card {
    container-type: normal;
  }

  .medal-row {
    grid-template-columns: 1fr auto;
  }
}

@media (max-width: 420px) {
  .medal-row {
    grid-template-columns: 1fr;
  }

  .controls {
    display: grid;
    grid-template-columns: 42px 1fr 42px;
    width: 100%;
  }

  .control {
    width: 42px;
    height: 42px;
  }
}
