/* UTEC Spelling Bee 2026 — v1.0.52 public Grand Final celebration.
   Visual-only. Keeps original site font, scoring, timer, participants and CSS elsewhere.
   All competitor names/placements are rendered from the existing live API. */
.gf52-celebration{min-width:0;color:#102e62;isolation:isolate}
.gf52-scene{position:relative;isolation:isolate;overflow:hidden;border-radius:17px;min-height:505px;display:flex;flex-direction:column;
 background:
  radial-gradient(ellipse 43% 54% at 50% 73%,rgba(255,200,65,.33),transparent 74%),
  radial-gradient(ellipse 38% 70% at 14% 30%,rgba(18,110,250,.56),transparent 75%),
  radial-gradient(ellipse 37% 65% at 85% 27%,rgba(101,58,201,.51),transparent 75%),
  radial-gradient(ellipse 70% 46% at 50% 3%,#1c67be 0%,transparent 72%),
  linear-gradient(165deg,#041534,#082e73 52%,#020e2b);
 border:1px solid #184986;box-shadow:inset 0 1px 0 #ffffff30,0 12px 27px #092b5a18}
.gf52-scene::before{content:"";position:absolute;inset:-30% -8% 7%;z-index:-1;pointer-events:none;
 background:repeating-conic-gradient(from 0deg at 51% 80%,transparent 0deg 10deg,rgba(222,241,255,.075) 10deg 13deg,transparent 13deg 25deg);
 opacity:.65}
.gf52-scene::after{content:"";position:absolute;inset:auto 0 0;height:135px;pointer-events:none;z-index:0;
 background:radial-gradient(ellipse 80% 85% at 50% 65%,rgba(248,201,104,.36),transparent 72%),linear-gradient(180deg,transparent,rgba(4,10,30,.78))}
.gf52-curtain{position:absolute;z-index:0;top:-10px;height:83%;width:15%;pointer-events:none;opacity:.83;
 background:repeating-linear-gradient(90deg,#061a47 0%,#0b2b67 18%,#2360ad 35%,#0a245a 52%,#041234 71%,#061b47 90%);
 filter:drop-shadow(0 0 16px #02112c9c)}
.gf52-curtain-left{left:-9%;border-radius:10% 15% 80% 0;transform:rotate(-17deg);box-shadow:inset -6px -3px #e9bf70}
.gf52-curtain-right{right:-9%;border-radius:15% 10% 0 80%;transform:rotate(17deg);box-shadow:inset 6px -3px #e9bf70}
.gf52-spotlight{position:absolute;z-index:0;top:-14%;width:38%;height:96%;pointer-events:none;mix-blend-mode:screen;opacity:.70;
 background:linear-gradient(180deg,rgba(255,243,203,.92),rgba(250,217,134,.3) 34%,transparent 88%);
 filter:blur(1px);clip-path:polygon(47% 0,53% 0,100% 100%,0% 100%)}
.gf52-light-left{left:-9%;transform:rotate(-18deg)}.gf52-light-right{right:-9%;transform:rotate(18deg)}
/* Small, restrained celebration particles — never cover names or title. */
.gf52-confetti{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.92;
 background-image:
 radial-gradient(circle at 50% 50%,#ffe492 0 2px,transparent 3px),
 radial-gradient(circle at 50% 50%,#5ed7ff 0 2px,transparent 3px),
 radial-gradient(circle at 50% 50%,#ffa9b9 0 2px,transparent 3px),
 radial-gradient(circle at 50% 50%,#f0c6ff 0 1.8px,transparent 3px),
 radial-gradient(circle at 50% 50%,#fff4c3 0 2px,transparent 3px),
 radial-gradient(circle at 50% 50%,#ffbf64 0 1.7px,transparent 3px);
 background-size:125px 140px,173px 138px,213px 160px,165px 207px,239px 121px,185px 155px;
 background-position:14px 21px,70px 57px,116px 29px,30px 100px,88px 72px,131px 109px;
 mask-image:linear-gradient(180deg,#000 0%,#000 75%,transparent 95%)}
.gf52-scene-title{position:relative;z-index:2;flex:0 0 auto;text-align:center;padding:22px 110px 6px;text-shadow:0 3px 15px #06183d9c}
.gf52-eyebrow{display:block;color:#ffdd81;letter-spacing:.15em;font-weight:850;font-size:11px}
.gf52-crown{display:block;color:#ffdb76;margin:2px auto -9px;font-size:28px;line-height:1.2;filter:drop-shadow(0 2px 7px #f8bd5b)}
.gf52-scene-title h2{font-family:inherit;font-size:clamp(25px,3.2vw,42px);line-height:1.15;margin:6px 0 7px;font-weight:900;letter-spacing:-.035em;
 color:#ffdb76;background:linear-gradient(180deg,#fff6c8 2%,#ffd265 45%,#dd9624 82%,#fff0a4);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;
 filter:drop-shadow(0 3px 2px #020c23aa)}
.gf52-scene-title p{margin:0 auto;line-height:1.6;max-width:660px;color:#eef4ff;font-size:12px}
.gf52-stage{position:relative;z-index:2;flex:1;display:grid;grid-template-columns:1fr 1.22fr 1fr;align-items:end;gap:5px;padding:24px clamp(18px,4.4vw,54px) 0}
.gf52-winner{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-width:0;position:relative;opacity:0;animation:gf52-rise .75s cubic-bezier(.2,.7,.2,1) both}
.gf52-place-3{grid-column:3;grid-row:1;animation-delay:.18s}.gf52-place-2{grid-column:1;grid-row:1;animation-delay:.66s}.gf52-place-1{grid-column:2;grid-row:1;animation-delay:1.15s}
.gf52-medal{position:relative;z-index:1;width:60px;height:60px;border-radius:50%;border:4px solid #faf9f3ba;box-shadow:0 0 0 2px #fff6,0 0 27px #fff9,0 7px 15px #0007;
 display:grid;place-items:center;margin-bottom:7px;background:radial-gradient(circle at 30% 23%,#fff 0%,#d6e1f5 30%,#7b95ba 86%);color:#224a83}
.gf52-medal::before,.gf52-medal::after{position:absolute;content:'❧';font-size:24px;opacity:.84;color:#dfebfc;top:13px}
.gf52-medal::before{left:-23px;transform:rotate(-45deg)}.gf52-medal::after{right:-23px;transform:scaleX(-1) rotate(-45deg)}
.gf52-medal span{font-size:31px;font-weight:900;line-height:1;text-shadow:0 1px #fff8}
.gf52-place-1 .gf52-medal{width:78px;height:78px;background:radial-gradient(circle at 28% 18%,#fffee1,#ffde79 40%,#c98918 93%);border-color:#fff1b8;color:#84540c;box-shadow:0 0 0 2px #f9d468,0 0 37px #ffd978b8,0 7px 20px #0007}
.gf52-place-1 .gf52-medal span{font-size:37px}.gf52-place-1 .gf52-medal::before,.gf52-place-1 .gf52-medal::after{color:#ffe497;font-size:31px}
.gf52-place-3 .gf52-medal{background:radial-gradient(circle at 28% 23%,#ffe5c9,#dba477 47%,#9c5436 94%);border-color:#fff2d7;color:#6c3319}
.gf52-identity{z-index:1;display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:center;border-radius:10px 10px 5px 5px;width:min(95%,260px);padding:8px 7px;margin-bottom:6px;
 background:linear-gradient(110deg,#f2f8ff,#c9d8ef 53%,#fff);border:1px solid #edf7ff;box-shadow:0 5px 15px #010f3391;min-height:57px}
.gf52-identity strong{display:block;font-weight:850;font-size:clamp(12px,1.45vw,18px);line-height:1.25;color:#123c75;overflow-wrap:anywhere}
.gf52-identity small{font-size:11px;margin-top:3px;color:#547296}
.gf52-place-1 .gf52-identity{background:linear-gradient(110deg,#ffedb0,#e4ac3b,#fff2ba);border-color:#ffefa4}.gf52-place-1 .gf52-identity strong{color:#5d3a0e}
.gf52-place-3 .gf52-identity{background:linear-gradient(110deg,#f8d4bc,#cf8f61,#ffe1c6);border-color:#ffe4cc}.gf52-place-3 .gf52-identity strong{color:#5b301c}
.gf52-platform{width:100%;min-width:0;position:relative;isolation:isolate;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;height:117px;
 border-radius:18px 18px 0 0;border:2px solid #c5d6ed;border-bottom:0;background:linear-gradient(110deg,#728aa8,#dee8f8 35%,#8ca3c0 75%,#5a7092);
 box-shadow:inset 0 4px 4px #ffffff8a,inset -9px 0 20px #0a2c6c4d,0 -4px 24px #d7edffc7,0 5px 18px #0007}
.gf52-platform::before{content:"";position:absolute;top:9px;left:6%;right:6%;height:2px;background:linear-gradient(90deg,transparent,#fff,transparent);opacity:.9}
.gf52-platform::after{content:"";position:absolute;inset:auto 0 0;height:15px;border-top:1px solid #fff6;background:linear-gradient(180deg,#fff3,#07326f4a)}
.gf52-place-1 .gf52-platform{height:174px;background:linear-gradient(112deg,#af6d0d,#f8d56a 25%,#fff1a2 42%,#d49b25 70%,#b77d17);border-color:#ffd677;box-shadow:inset 0 4px 9px #fff4b3,inset -12px 0 23px #8d5313aa,0 -5px 31px #ffce73ba,0 6px 23px #0008}
.gf52-place-3 .gf52-platform{height:89px;background:linear-gradient(115deg,#8e4728,#e6ad7d 37%,#ba744d 74%,#99512f);border-color:#e8b99e;box-shadow:inset 0 4px 7px #ffdcbb7d,inset -9px 0 18px #783c2d7e,0 -4px 24px #f2b98ca8,0 5px 18px #0007}
.gf52-platform-shine{position:absolute;top:0;left:3%;right:3%;height:17px;background:linear-gradient(90deg,transparent,#fff9,transparent);filter:blur(6px)}
.gf52-platform-num{position:relative;z-index:1;font-size:clamp(38px,5vw,68px);line-height:1;font-weight:900;color:#fff;text-shadow:0 3px 7px #112d5e77}
.gf52-place-1 .gf52-platform-num{color:#fff5c8;text-shadow:0 2px 3px #825100a6}
.gf52-platform-label{position:relative;z-index:1;font-size:clamp(10px,1.2vw,14px);font-weight:900;color:#fff;line-height:1.2}
.gf52-place-1 .gf52-platform-label{color:#624017}
.gf52-floor{position:relative;z-index:3;width:100%;height:14px;background:linear-gradient(90deg,#05357f 0%,#4a8fff 18%,#ffe18e 48%,#3988fc 80%,#062e71);box-shadow:0 -2px 18px #fff5a4,0 1px 14px #04102b}
.gf52-published{margin:15px 0 17px;display:flex;align-items:center;justify-content:center;gap:12px;padding:16px;border:1px solid #bde6ce;border-radius:12px;
 background:linear-gradient(105deg,#e5f9ef,#f5fff9 52%,#e4f9ee);color:#08754f;text-align:left}
.gf52-check{flex:0 0 auto;width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:#0b9b6b;color:#fff;font-size:20px}
.gf52-published strong{font-size:15px;display:block}.gf52-published small{display:block;font-size:12px;line-height:1.5;margin-top:3px;color:#497e68}
.gf52-results{border:1px solid #d8e6f6;border-radius:14px;overflow:hidden;background:#fff}
.gf52-results-header{display:flex;align-items:center;gap:12px;padding:17px 20px;background:linear-gradient(110deg,#f3f9ff,#fff 68%,#fff3d7);border-bottom:1px solid #dce9f6}
.gf52-result-icon{display:grid;place-items:center;flex:0 0 auto;width:36px;height:36px;border-radius:10px;background:#fff0c3;color:#ca8a09;font-size:22px}
.gf52-results-header h3{font-size:17px;color:#103b80;margin:0;font-weight:850}.gf52-results-header p{font-size:12px;color:#6583a3;margin:4px 0 0}
.gf52-count{margin-left:auto;white-space:nowrap;border-radius:999px;color:#0e5eae;background:#e4f2ff;padding:8px 11px;font-size:11px;font-weight:800}
.gf52-table-scroll{overflow-x:auto;max-width:100%}
.gf52-table{border-collapse:collapse;width:100%;font-size:13px;min-width:520px;color:#113968}
.gf52-table th{text-align:left;font-weight:800;font-size:11px;color:#5a7696;padding:12px 16px;border-bottom:1px solid #dce8f6;background:#fafcff}
.gf52-table td{padding:12px 16px;border-bottom:1px solid #edf2f9;vertical-align:middle}
.gf52-table tbody tr:last-child td{border-bottom:0}
.gf52-ranking-row.gf52-top-three:nth-child(1){background:#fff9e9}
.gf52-ranking-row.gf52-top-three:nth-child(2){background:#f0f6ff}
.gf52-ranking-row.gf52-top-three:nth-child(3){background:#fff5ec}
.gf52-ranking-name{font-weight:800;color:#0e3d80}.gf52-ranking-code{color:#47749f;white-space:nowrap}.gf52-ranking-note{color:#5c7595;font-size:11px}
.gf52-rank-medal{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;border:1px solid #fff6;box-shadow:0 2px 7px #00182d1d;font-size:15px;font-weight:900}
.gf52-rank-1{background:linear-gradient(145deg,#ffe99e,#d39a24);color:#755009}.gf52-rank-2{background:linear-gradient(145deg,#edf4ff,#a8bcd5);color:#3c5671}.gf52-rank-3{background:linear-gradient(145deg,#f8d1ad,#ba7850);color:#744019}
.gf52-rank-plain{white-space:nowrap;color:#17467f;font-weight:800;padding-left:7px}
.gf52-tie-note{font-size:11px;line-height:1.6;color:#6a829e;border-top:1px solid #edf2fa;padding:12px 18px;margin:0;background:#f9fcff}
.gf52-celebration .gf51-history-help{margin:13px 0 0}
@keyframes gf52-rise{from{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:970px){.gf52-scene{min-height:450px}.gf52-scene-title{padding:22px 55px 3px}.gf52-stage{padding:20px 24px 0}.gf52-place-1 .gf52-platform{height:146px}.gf52-platform{height:100px}.gf52-place-3 .gf52-platform{height:79px}}
@media(max-width:620px){
 .gf52-scene{min-height:335px;border-radius:12px}.gf52-scene-title{padding:18px 14px 2px}.gf52-eyebrow{font-size:8px;letter-spacing:.1em}.gf52-crown{font-size:19px;margin:-2px auto -3px}.gf52-scene-title h2{font-size:clamp(23px,6.7vw,30px);margin:4px 0}.gf52-scene-title p{font-size:10px;line-height:1.5}
 .gf52-stage{padding:19px 8px 0;gap:3px;grid-template-columns:1fr 1.16fr 1fr}.gf52-medal{width:38px;height:38px;border-width:2px;margin-bottom:5px}.gf52-medal span{font-size:20px}.gf52-place-1 .gf52-medal{width:49px;height:49px}.gf52-place-1 .gf52-medal span{font-size:25px}.gf52-medal::before,.gf52-medal::after{display:none}
 .gf52-identity{width:99%;min-height:51px;padding:5px 2px;margin-bottom:4px;border-radius:6px}.gf52-identity strong{font-size:10px;line-height:1.15}.gf52-identity small{font-size:9px;margin-top:3px}
 .gf52-platform{height:75px;border-radius:10px 10px 0 0;border-width:1px}.gf52-place-1 .gf52-platform{height:112px}.gf52-place-3 .gf52-platform{height:59px}.gf52-platform-num{font-size:30px}.gf52-place-1 .gf52-platform-num{font-size:39px}.gf52-platform-label{font-size:9px}.gf52-floor{height:9px}
 .gf52-published{padding:12px 10px;margin:11px 0}.gf52-check{width:30px;height:30px}.gf52-published strong{font-size:12px}.gf52-published small{font-size:10px}
 .gf52-results-header{padding:12px;gap:7px}.gf52-result-icon{width:31px;height:31px}.gf52-results-header h3{font-size:14px}.gf52-results-header p{font-size:10px}.gf52-count{font-size:9px;padding:7px}
 .gf52-table{min-width:0;font-size:11px}.gf52-table th,.gf52-table td{padding:10px 7px}.gf52-table th{font-size:9px}.gf52-ranking-name{overflow-wrap:anywhere}.gf52-ranking-code{font-size:10px}.gf52-ranking-note{font-size:10px}.gf52-rank-plain{padding-left:0;white-space:normal}.gf52-rank-medal{width:25px;height:25px;font-size:12px}
}
@media(max-width:365px){.gf52-stage{padding:18px 4px 0}.gf52-identity strong{font-size:9px}.gf52-scene-title p{font-size:9px}.gf52-table th,.gf52-table td{padding:9px 4px}}
@media(prefers-reduced-motion:reduce){.gf52-winner{opacity:1;animation:none}}
