[hidden] { display: none !important; }
/* KKP Sanman Portal: slide stage styles (shared) */
@font-face {
  font-family: 'Anek Gujarati';
  font-style: normal;
  font-weight: 100 800;
  font-stretch: 75% 125%;
  font-display: block;
  src: url(/fonts/anek-gujarati.woff2) format('woff2');
  unicode-range: U+0951-0952, U+0964-0965, U+0A80-0AFF, U+200C-200D, U+20B9, U+25CC, U+A830-A839;
}
@font-face {
  font-family: 'Anek Gujarati';
  font-style: normal;
  font-weight: 100 800;
  font-stretch: 75% 125%;
  font-display: block;
  src: url(/fonts/anek-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Anek Gujarati';
  font-style: normal;
  font-weight: 100 800;
  font-stretch: 75% 125%;
  font-display: block;
  src: url(/fonts/anek-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

.k-stage {
  --k-ink: #1A1918; --k-accent: #E84C18; --k-accent2: #751409; --k-soft: #FCE0CE; --k-paper: #fff; --k-on: #fff; --k-on2: #fff;
  position: absolute; left: 0; top: 0;
  width: 1920px; height: 1080px;
  transform-origin: 0 0;
  overflow: hidden;
  font-family: 'Anek Gujarati', 'Noto Sans Gujarati', 'Shruti', sans-serif;
  color: var(--k-ink);
  background: var(--k-paper);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  user-select: none;
  contain: layout paint;
}
.k-bg, .k-layer { position: absolute; inset: 0; }
.k-layer { pointer-events: none; }
.k-mode-present .k-layer, .k-mode-edit .k-layer-slide, .k-mode-edit .k-editable { pointer-events: auto; }
.k-bg img { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.k-bg .k-bg-photo { object-fit: cover; }
.k-bg-dim { position: absolute; inset: 0; }

.k-el { position: absolute; box-sizing: border-box; }
.k-el img { display: block; width: 100%; height: 100%; }

/* text */
.k-text { display: flex; flex-direction: column; overflow: visible; }
.k-text .k-txt { white-space: pre-wrap; overflow-wrap: break-word; word-break: normal; width: 100%; box-sizing: border-box; }
.k-text.k-hug .k-txt { width: auto; max-width: 100%; }
.k-txt b { font-weight: 800; }
.k-a1 { color: var(--k-accent); }
.k-a2 { color: var(--k-accent2); }
.k-link { color: inherit; text-decoration: none; }
.k-link.k-cover { position: absolute; inset: 0; }
.k-hint { opacity: .4; }

/* images */
.k-image { overflow: hidden; background: transparent; }
.k-image img { transition: none; }
.k-ph { width: 100%; height: 100%; display: grid; place-items: center; background: var(--k-soft); color: var(--k-accent); font-weight: 800; font-size: 160px; line-height: 1; }
.k-ph-empty { width: 100%; height: 100%; display: grid; place-items: center; text-align: center; padding: 12px; box-sizing: border-box; background: repeating-linear-gradient(45deg, rgba(232,76,24,.08) 0 14px, rgba(232,76,24,.16) 14px 28px); color: #9a3412; font: 600 26px/1.2 'Anek Gujarati', sans-serif; border: 3px dashed rgba(232,76,24,.55); border-radius: inherit; }
.k-broken { background: repeating-linear-gradient(45deg, #fde2e2 0 12px, #fbcaca 12px 24px); }
.k-broken::after { content: 'Image missing'; position: absolute; inset: 0; display: grid; place-items: center; color: #b42318; font: 700 26px 'Anek Gujarati', sans-serif; }
.k-asset img { width: 100%; height: 100%; }
.k-shape-in { width: 100%; height: 100%; box-sizing: border-box; }
.k-qr svg, .k-medal svg { width: 100%; height: 100%; display: block; }
.k-medal svg { overflow: visible; filter: drop-shadow(0 10px 14px rgba(0,0,0,.25)); }

/* group cards */
.k-grid { position: absolute; display: grid; gap: 24px; }
.k-card { display: flex; align-items: center; gap: 22px; padding: 16px 26px 16px 16px; border-radius: 22px; background: color-mix(in srgb, var(--k-paper) 86%, transparent); border: 3px solid color-mix(in srgb, var(--k-accent) 55%, transparent); box-shadow: 0 10px 26px rgba(80, 20, 0, .12); min-width: 0; min-height: 0; overflow: hidden; }
.k-card-photo { flex: none; border-radius: 50%; overflow: hidden; border: 6px solid var(--k-accent); background: var(--k-soft); }
.k-card-photo img { width: 100%; height: 100%; object-fit: cover; }
.k-card-photo .k-ph { font-size: inherit; }
.k-card-v { flex-direction: column; justify-content: center; text-align: center; padding: 22px 20px; gap: 14px; }
.k-card-v .k-card-info { height: auto; flex: none; width: 100%; align-items: center; }
.k-card-v .k-card-name { max-height: none; width: 100%; }
.k-card-v .k-card-pct { font-size: 46px; }
.k-card-info { flex: 1; min-width: 0; height: 100%; display: flex; flex-direction: column; justify-content: center; gap: 4px; }
.k-card-name { font-weight: 800; line-height: 1.12; color: var(--k-ink); max-height: 64%; overflow: hidden; display: flex; flex-direction: column; justify-content: center; }
.k-card-name .k-txt { white-space: normal; }
.k-card-meta { font-size: 28px; font-weight: 600; color: var(--k-accent2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.k-card-pct { font-size: 40px; font-weight: 800; color: var(--k-accent); line-height: 1.1; }
.k-card-donor { flex-direction: column; justify-content: center; text-align: center; padding: 18px 26px; gap: 6px; }
.k-card-donor .k-card-firm { font-weight: 800; color: var(--k-accent); line-height: 1.15; max-height: 45%; width: 100%; overflow: hidden; display: flex; flex-direction: column; justify-content: center; }
.k-card-donor .k-card-name { font-weight: 600; width: 100%; max-height: 50%; }
.k-card-donor .k-card-name .k-txt, .k-card-donor .k-card-firm .k-txt { white-space: pre-line; }
.k-card-amt { font-size: 34px; font-weight: 800; color: var(--k-accent2); }
.k-grid-empty { grid-column: 1 / -1; grid-row: 1 / -1; font-size: 36px; }

.k-missing { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); background: #b42318; color: #fff; font: 700 40px 'Anek Gujarati', sans-serif; padding: 24px 40px; border-radius: 16px; max-width: 1400px; text-align: center; }

/* entrance animations (presenter only) */
.k-anim { animation-duration: .7s; animation-fill-mode: both; animation-timing-function: cubic-bezier(.2, .8, .2, 1); }
.k-anim-fade { animation-name: k-fade; }
.k-anim-rise { animation-name: k-rise; }
.k-anim-zoom { animation-name: k-zoom; }
.k-anim-left { animation-name: k-left; }
.k-anim-right { animation-name: k-right; }
.k-anim-pop { animation-name: k-pop; animation-timing-function: cubic-bezier(.3, 1.6, .5, 1); }
@keyframes k-fade { from { opacity: 0; } }
@keyframes k-rise { from { opacity: 0; translate: 0 50px; } }
@keyframes k-zoom { from { opacity: 0; scale: .82; } }
@keyframes k-left { from { opacity: 0; translate: -90px 0; } }
@keyframes k-right { from { opacity: 0; translate: 90px 0; } }
@keyframes k-pop { from { opacity: 0; scale: .4; } }
@media (prefers-reduced-motion: reduce) { .k-anim { animation: none !important; } }

/* thumbnails */
.k-thumb { position: relative; overflow: hidden; border-radius: 6px; background: #fff; flex: none; }
.k-thumb .k-stage { pointer-events: none; }
