:root{--pb-red:#d81e2c;--pb-red-dark:#a3141f;--pb-red-light:#fdeceb;--pb-black:#16181d;--pb-yellow:#e8f228;--pb-yellow-dark:#8a8f00;--pb-yellow-bg:#fdfbd8;--pb-ink:#1f2933;--pb-muted:#6b7280;--pb-bg:#fffdf9;--pb-card:#fff;--pb-border:#f0dede;--pb-success:#2f7a3d;--pb-success-bg:#dcf3e0;--pb-danger:#a3141f;--pb-gold:#f4c430;--pb-gold-soft:#ffe9a8;--pb-gold-dark:#a9781a;font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}h1,h2,h3,h4,.hero-text h2{font-family:Poppins,Segoe UI,sans-serif;font-weight:700}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes bounceBall{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-10px)rotate(15deg)}}@keyframes pulseBall{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}body{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cg opacity='0.07'%3E%3Ccircle cx='24' cy='24' r='10' fill='none' stroke='%23d81e2c' stroke-width='2'/%3E%3Ccircle cx='20' cy='20' r='1.1' fill='%23d81e2c'/%3E%3Ccircle cx='28' cy='20' r='1.1' fill='%23d81e2c'/%3E%3Ccircle cx='24' cy='24' r='1.1' fill='%23d81e2c'/%3E%3Ccircle cx='20' cy='28' r='1.1' fill='%23d81e2c'/%3E%3Ccircle cx='28' cy='28' r='1.1' fill='%23d81e2c'/%3E%3Cg transform='rotate(25 88 78)'%3E%3Cellipse cx='88' cy='72' rx='10' ry='12' fill='none' stroke='%2316181d' stroke-width='2'/%3E%3Crect x='85' y='84' width='6' height='13' rx='3' fill='none' stroke='%2316181d' stroke-width='2'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E") 0 0 / 120px 120px, var(--pb-bg);color:var(--pb-ink);min-height:100vh;margin:0}header{background:linear-gradient(135deg, var(--pb-red), var(--pb-red-dark));color:#fff;border-bottom:4px solid var(--pb-black);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:1.25rem 1.5rem;display:flex;position:relative;box-shadow:0 2px 8px #a81f3040}header .brand{align-items:center;gap:.6rem;display:flex}header .brand svg{flex-shrink:0;width:34px;height:34px}header .brand svg .ball-dot{transform-origin:50%;animation:2.2s ease-in-out infinite pulseBall}header h1{margin:0;font-size:1.3rem;line-height:1.25}header .tournament-name{opacity:.9;font-size:.85rem;font-weight:400;display:block}header nav a{color:#fff;opacity:.9;margin-left:1rem;font-size:.95rem;text-decoration:none;transition:opacity .15s}header nav a:hover{opacity:1;text-decoration:underline}main{max-width:780px;margin:2rem auto;padding:0 1rem}main.wide{max-width:1080px}.hero{background:var(--pb-black);color:#fff;text-align:center;border-radius:14px;margin-bottom:1.5rem;padding:4rem 1.5rem;animation:.5s ease-out fadeInUp;position:relative;overflow:hidden}.hero.photo{background-position:50% 30%;background-size:cover;box-shadow:inset 0 0 0 4px #ffffff14}.hero-text{z-index:1;position:relative}.hero-eyebrow{background:var(--pb-yellow);color:var(--pb-black);text-transform:uppercase;letter-spacing:.08em;border-radius:999px;margin-bottom:.9rem;padding:.25rem .7rem;font-size:.75rem;font-weight:700;display:inline-block}.hero-text h2{letter-spacing:.01em;text-shadow:0 2px 12px #00000080;margin:0 0 .4rem;font-family:Poppins,Segoe UI,sans-serif;font-size:2.2rem}.hero-text p{opacity:.92;text-shadow:0 1px 6px #00000080;margin:0;font-size:1.05rem}.hero.compact{padding:2rem 1.5rem}.hero.compact .hero-text h2{font-size:1.5rem}.card{background:var(--pb-card);border:1px solid var(--pb-border);border-radius:10px;margin-bottom:1.5rem;padding:1.5rem;animation:.4s ease-out fadeInUp}h2{margin-top:0}label{margin-top:1rem;margin-bottom:.3rem;font-size:.9rem;font-weight:600;display:block}input,select,textarea{border:1px solid var(--pb-border);border-radius:6px;width:100%;padding:.55rem .6rem;font-family:inherit;font-size:1rem;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--pb-red);box-shadow:0 0 0 3px var(--pb-red-light);outline:none}button{background:var(--pb-red);color:#fff;cursor:pointer;border:none;border-radius:6px;margin-top:1.5rem;padding:.65rem 1.4rem;font-size:1rem;transition:background .15s,transform .1s,box-shadow .15s}button:hover:not(:disabled){background:var(--pb-red-dark);transform:translateY(-1px);box-shadow:0 4px 10px #00000026}button:active:not(:disabled){transform:translateY(0)}button:disabled{opacity:.6;cursor:not-allowed}button.secondary{color:var(--pb-red);border:1px solid var(--pb-red);background:0 0}button.secondary:hover:not(:disabled){background:var(--pb-red-light)}button.success{background:var(--pb-success)}button.warning{background:var(--pb-black)}button.danger{background:var(--pb-danger)}button.small{margin-top:0;padding:.3rem .6rem;font-size:.85rem}.status-msg{margin-top:1rem;font-size:.95rem}.status-msg.success{color:var(--pb-success)}.status-msg.error{color:var(--pb-danger)}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{text-align:left;border-bottom:1px solid var(--pb-border);vertical-align:top;padding:.5rem}th{color:var(--pb-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.75rem;font-weight:600}tbody tr{transition:background .15s}tbody tr:hover{background:var(--pb-red-light)}.badge{border-radius:999px;padding:.15rem .5rem;font-size:.75rem;font-weight:600;display:inline-block}.badge.pending,.badge.registration_open{background:var(--pb-yellow-bg);color:var(--pb-yellow-dark)}.badge.accepted,.badge.planned{background:var(--pb-red-light);color:var(--pb-red)}.badge.rejected{color:var(--pb-muted);background:#ececec}.badge.waitlisted{color:#2b5c9b;background:#e6effa}.badge.completed{background:var(--pb-success-bg);color:var(--pb-success)}.badge.scheduled{color:var(--pb-muted);background:#ececec}.badge.in_progress{background:var(--pb-yellow-bg);color:var(--pb-yellow-dark)}.actions{flex-wrap:wrap;gap:.4rem;display:flex}.hidden{display:none!important}.muted{color:var(--pb-muted);font-size:.85rem}.tournament-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;display:grid}.tournament-card{background:var(--pb-card);border:1px solid var(--pb-border);border-top:3px solid var(--pb-red);height:100%;color:inherit;border-radius:10px;flex-direction:column;align-items:flex-start;gap:.6rem;padding:1.25rem;text-decoration:none;transition:transform .2s,box-shadow .2s,border-color .2s;animation:.4s ease-out fadeInUp;display:flex}.tournament-card:hover{color:inherit;text-decoration:none;transform:translateY(-4px);box-shadow:0 10px 22px #16181d1a}.tournament-card h3{margin:0}.tournament-icon{background:color-mix(in srgb, var(--icon-color,var(--pb-red)) 12%, transparent);border:1px solid color-mix(in srgb, var(--icon-color,var(--pb-red)) 30%, transparent);border-radius:12px;justify-content:center;align-items:center;width:54px;height:54px;display:inline-flex}.tournament-icon svg{width:34px;height:34px}.tournament-icon.large{flex-shrink:0;width:72px;height:72px}.tournament-icon.large svg{width:46px;height:46px}.tournament-meta{flex-direction:column;gap:.3rem;margin:.15rem 0 0;display:flex}.tournament-meta-row{gap:.5rem;font-size:.9rem;display:flex}.tournament-meta-row dt{color:var(--pb-black);min-width:3.4rem;font-weight:700}.tournament-meta-row dd{color:var(--pb-black);margin:0}.tournament-card-cta{color:var(--pb-red);margin-top:auto;padding-top:.6rem;font-size:.9rem;font-weight:700}.tournament-detail-head{align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.tournament-detail-head h2{margin:0 0 .4rem}.tournament-facts{flex-direction:column;gap:.35rem;margin:.9rem 0 0;display:flex}.tournament-fact{gap:.4rem;font-size:.85rem;display:flex}.tournament-fact dt{color:var(--pb-black);white-space:nowrap;font-weight:600}.tournament-fact dt:after{content:" -"}.tournament-fact dd{color:var(--pb-black);margin:0;font-weight:700}.tournament-sections{flex-direction:column;gap:.75rem;margin-top:.6rem;display:flex;overflow:hidden}.tournament-section{background:var(--pb-red-light);border-left:3px solid var(--pb-red);border-radius:6px;padding:.7rem .85rem}.tournament-section h4{text-transform:uppercase;letter-spacing:.04em;color:var(--pb-black);margin:0 0 .4rem;font-size:.8rem;font-weight:700}.tournament-section p{color:var(--pb-black);margin:0 0 .35rem;font-size:.85rem;font-weight:600}.tournament-section p:last-child{margin-bottom:0}.card .links{gap:.75rem;margin-top:.5rem;display:flex}.card .links a{color:var(--pb-red);font-size:.9rem;font-weight:600;text-decoration:none}.card .links a:hover{text-decoration:underline}.players-cta{flex-wrap:nowrap;justify-content:center;gap:.75rem;margin:1.5rem 0;display:flex}.players-cta-box{text-align:center;min-width:0;max-width:520px;color:var(--pb-black);letter-spacing:.01em;background:linear-gradient(135deg,#d81e2c38,#d81e2c14);border:2px solid #d81e2c59;border-radius:12px;flex:1 1 0;padding:1.1rem 1.75rem;font-size:1.4rem;font-weight:800;text-decoration:none;transition:transform .2s,box-shadow .2s,background .2s;display:block;box-shadow:0 4px 12px #d81e2c1f}.players-cta-box:hover{color:var(--pb-black);background:linear-gradient(135deg,#d81e2c57,#d81e2c29);text-decoration:none;transform:translateY(-3px);box-shadow:0 10px 22px #d81e2c33}@media (width<=640px){.players-cta{gap:.5rem}.players-cta-box{padding:.8rem .6rem;font-size:1rem}}.pool-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.25rem;display:grid}.pool-card{transition:transform .2s,box-shadow .2s}.pool-card:hover{transform:translateY(-2px);box-shadow:0 10px 22px #16181d14}.pool-card h3{justify-content:space-between;align-items:center;display:flex}.section-title{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.inline-form{flex-wrap:wrap;align-items:flex-end;gap:.75rem;display:flex}.inline-form>div{flex:1;min-width:160px}.inline-form button{margin-top:0}.score-input{width:3.5rem;display:inline-block}.playoff-note{text-align:center;color:var(--pb-muted);border:1px dashed var(--pb-border);border-radius:10px;padding:2rem 1rem}hr.divider{border:none;border-top:1px solid var(--pb-border);margin:1.5rem 0}.registration-result h2{color:var(--pb-success)}.payment-note{border:1px solid var(--pb-success);background:var(--pb-success-bg);color:var(--pb-ink);border-radius:8px;margin:.9rem 0;padding:.9rem 1rem;font-weight:600}.member-slots{flex-direction:column;gap:.3rem;min-width:180px;display:flex}.member-slots select{width:100%;font-size:.85rem}td.mix-off{color:var(--pb-red);font-weight:700}@media (width<=640px){header{padding:1rem}header h1{font-size:1.05rem}header .brand svg{width:28px;height:28px}header .tournament-name{font-size:.8rem}header nav{flex-wrap:wrap;gap:.5rem 0;display:flex}header nav a{margin-left:0;margin-right:.75rem}main,main.wide{margin:1.25rem auto;padding:0 .75rem}.card{padding:1.1rem}.hero{padding:1.75rem 1rem}.hero-text h2{font-size:1.4rem}.hero.compact{padding:1rem}.hero-ball,.hero-paddle{width:30px;height:30px}.hero.compact .hero-ball,.hero.compact .hero-paddle{width:24px;height:24px}table{white-space:nowrap;-webkit-overflow-scrolling:touch;display:block;overflow-x:auto}.inline-form{flex-direction:column;align-items:stretch}.inline-form>div{min-width:0}.inline-form button{width:100%}.section-title{flex-direction:column;align-items:flex-start}.tournament-grid,.pool-grid{grid-template-columns:1fr}.actions{flex-direction:column;align-items:stretch}.actions button,form button[type=submit]{width:100%}}@media (width<=400px){header .brand h1{font-size:.95rem}.hero-text h2{font-size:1.2rem}}.details-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.details-head h2{margin:0}.detail-group{border:1px solid var(--pb-border);border-radius:8px;margin:1rem 0 0;padding:.9rem 1rem 1.1rem}.detail-group legend{text-transform:uppercase;letter-spacing:.05em;color:var(--pb-red);padding:0 .4rem;font-size:.78rem;font-weight:700}.detail-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.25rem 1rem;display:grid}.detail-field label{margin-bottom:.2rem}.detail-help{margin:-.4rem 0 .6rem;font-size:.75rem}.detail-row,.detail-section-row{flex-wrap:wrap;align-items:flex-start;gap:.5rem;margin-bottom:.6rem;display:flex}.detail-row input,.detail-section-row input,.detail-section-row textarea{flex:8rem;margin:0}.detail-row .detail-code{flex:0 0 5rem}.detail-section-row{flex-direction:column}.detail-section-row input,.detail-section-row textarea{width:100%}.detail-block{margin-top:1.1rem}.detail-block h4{text-transform:uppercase;letter-spacing:.05em;color:var(--pb-red);margin:0 0 .4rem;font-size:.78rem;font-weight:700}.detail-block .tournament-facts{margin:0}@media (width<=640px){.detail-row{flex-direction:column}.detail-row .detail-code{flex:auto}}.collapsible>summary{cursor:pointer;align-items:center;gap:.5rem;list-style:none;display:flex}.collapsible>summary::-webkit-details-marker{display:none}.collapsible>summary:before{content:"▸";color:var(--pb-red);font-size:.85rem;line-height:1;transition:transform .15s}.collapsible[open]>summary:before{transform:rotate(90deg)}.collapsible>summary h3{margin:0}.collapsible>summary:hover h3{color:var(--pb-red)}.collapsible[open]>summary{margin-bottom:1rem}.standings-tables{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.25rem;display:grid}.standings-table h4{text-transform:uppercase;letter-spacing:.04em;color:var(--pb-red);margin:0 0 .2rem;font-size:.8rem;font-weight:700}.standings-table .muted{margin:0 0 .5rem}.table-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.standings-grid{table-layout:fixed;white-space:normal;width:100%;min-width:21rem;display:table}.standings-grid th,.standings-grid td{white-space:normal;text-align:center;overflow-wrap:anywhere;padding:.5rem .35rem}.standings-grid th:first-child,.standings-grid td:first-child{width:1.9rem;padding-left:.5rem}.standings-grid th:nth-child(2),.standings-grid td:nth-child(2){text-align:left;width:auto}.standings-grid th:nth-child(n+3),.standings-grid td:nth-child(n+3){width:2.3rem}.team-name{font-weight:600;display:block}.team-members{color:var(--pb-muted);font-size:.75rem;line-height:1.35;display:block}.match-scoring{border:1px solid var(--pb-border);border-left:3px solid var(--pb-red);margin-bottom:1rem;padding:1rem 1.1rem}.match-scoring h3{margin:0}.back-link{margin:0 0 1rem;font-size:.9rem}.back-link a{color:var(--pb-red);font-weight:600;text-decoration:none}.back-link a:hover{text-decoration:underline}.game-edit{border-top:1px solid var(--pb-border);grid-template-columns:3.5rem minmax(0,1fr) auto;align-items:center;gap:.5rem .9rem;padding:.7rem 0;display:grid}.game-edit-no{text-transform:uppercase;letter-spacing:.03em;color:var(--pb-muted);grid-area:1/1/span 2;align-self:center;font-size:.8rem;font-weight:700}.game-edit-side{flex-wrap:wrap;grid-column:2;align-items:center;gap:.4rem;display:flex}.game-edit-side:nth-child(2){grid-row:1}.game-edit-side:nth-child(4){grid-row:2}.game-edit-side select{flex:8rem;width:auto;min-width:8rem}.game-edit-team{color:var(--pb-black);overflow-wrap:anywhere;flex:0 0 3.5rem;font-size:.75rem;font-weight:700}.game-edit-score{white-space:nowrap;grid-area:1/3/span 2;align-self:center;align-items:center;gap:.35rem;display:flex}.game-edit-actions{flex-wrap:wrap;grid-area:3/1/auto/-1;align-items:center;gap:.6rem;display:flex}.game-edit-actions .status-msg{margin-top:0}.sets-row{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.9rem;display:flex}.sets-label{font-size:.85rem;font-weight:700}.match-block{margin-bottom:1.1rem}.match-block-head{flex-wrap:wrap;align-items:baseline;gap:.35rem .6rem;margin-bottom:.4rem;display:flex}.match-teams{flex:auto}.match-sets{color:var(--pb-red);white-space:nowrap;margin-left:auto;font-size:.8rem;font-weight:700}.game-lines{flex-direction:column;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.game-line{border-bottom:1px solid var(--pb-border);grid-template-columns:2rem 1fr auto 1fr;align-items:baseline;gap:.3rem .6rem;padding:.3rem 0;font-size:.85rem;display:grid}.game-line-no{color:var(--pb-muted);font-size:.75rem;font-weight:700}.game-line-pair{word-break:break-word;min-width:0}.game-line-score{white-space:nowrap;font-weight:700}@media (width<=560px){.game-line{grid-template-columns:2rem 1fr}.game-line-score{color:var(--pb-red);grid-column:2}.game-edit{grid-template-columns:3.5rem minmax(0,1fr)}.game-edit-score{grid-area:3/2;align-self:start}.game-edit-actions{grid-row:4}}a.playoff-link{text-align:center;color:var(--pb-ink);font-weight:600;text-decoration:none;transition:transform .15s,box-shadow .15s,border-color .15s,color .15s;display:block}a.playoff-link:hover{border-color:var(--pb-gold);color:var(--pb-red);transform:translateY(-2px);box-shadow:0 10px 22px #f4c4302e}.bracket-card{overflow-x:auto}.bracket{flex-wrap:wrap;align-items:center;gap:1.25rem;display:flex}.bracket-col{flex-direction:column;flex:260px;justify-content:center;gap:1.1rem;display:flex}.bracket-joiner{flex:0 0 30px;align-self:stretch;position:relative}.bracket-joiner span{background:var(--pb-border);position:absolute}.bracket-joiner span:first-child{width:2px;top:22%;bottom:22%;left:50%;transform:translate(-50%)}.bracket-joiner span:last-child{width:16px;height:2px;top:50%;left:calc(50% - 8px)}.tie-card{background:var(--pb-card);border:1px solid var(--pb-border);border-radius:12px;padding:.9rem 1rem;box-shadow:0 6px 16px #16181d0d}.tie-card.final{background:linear-gradient(#fffdf3,#fff);border-color:#e0a92b8c;box-shadow:0 8px 22px #e0a92b33}.tie-round{text-transform:uppercase;letter-spacing:.08em;color:var(--pb-muted);margin-bottom:.55rem;font-size:.68rem;font-weight:800}.tie-card.final .tie-round{color:var(--pb-gold-dark)}.tie-team{border-radius:8px;align-items:center;gap:.5rem;padding:.4rem .5rem;font-size:.9rem;display:flex}.tie-team+.tie-team{margin-top:.1rem}.tie-team-name{overflow-wrap:anywhere;flex:auto;font-weight:600}.tie-team.tbd .tie-team-name{color:var(--pb-muted);font-style:italic;font-weight:500}.tie-team-score{font-variant-numeric:tabular-nums;text-align:right;min-width:1ch;font-weight:800}.tie-team.win{background:var(--pb-success-bg)}.tie-team.win .tie-team-name,.tie-team.win .tie-team-score{color:var(--pb-success)}.tie-team.out{opacity:.5}.tie-team-flag{color:var(--pb-success);font-weight:900}.tie-vs{text-align:center;color:var(--pb-muted);margin:.15rem 0;font-size:.68rem}.tie-status{color:var(--pb-muted);margin-top:.5rem;font-size:.74rem}.admin-tie.decided{border-left:3px solid var(--pb-success)}.tie-picker{flex-wrap:wrap;align-items:center;gap:.6rem;margin:.7rem 0;display:flex}.tie-picker select{flex:220px}.tie-picker-vs{color:var(--pb-muted);font-size:.75rem;font-weight:700}.finals-stage{text-align:center;color:#efeaf7;background:radial-gradient(1100px 420px at 50% -12%,#f4c43038,#0000 62%),linear-gradient(160deg,#241c33 0%,#17131f 55%,#0f0c16 100%);border:1px solid #f4c43047;border-radius:16px;margin-bottom:1.5rem;padding:2.5rem 1.5rem;animation:.5s ease-out fadeInUp;position:relative;overflow:hidden;box-shadow:0 18px 46px #0f0c1666}.finals-trophy-bg{color:#f4c43017;pointer-events:none;justify-content:center;align-items:center;animation:6s ease-in-out infinite trophyFloat;display:flex;position:absolute;inset:0}@keyframes trophyFloat{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-14px)rotate(2deg)}}.finals-inner{z-index:1;max-width:620px;margin:0 auto;position:relative}.finals-eyebrow{color:var(--pb-gold-soft);text-transform:uppercase;letter-spacing:.1em;background:#f4c43029;border:1px solid #f4c43066;border-radius:999px;align-items:center;gap:.4rem;margin-bottom:1rem;padding:.3rem .85rem;font-size:.7rem;font-weight:700;display:inline-flex}.finals-matchup{flex-wrap:wrap;justify-content:center;align-items:center;gap:.9rem;margin-bottom:1.25rem;display:flex}.fin-team{color:#efeaf7;font-family:Poppins,Segoe UI,sans-serif;font-size:1.05rem;font-weight:700}.fin-team.win{color:var(--pb-gold);text-shadow:0 0 18px #f4c43080}.finals-score{color:var(--pb-gold-soft);background:#ffffff0f;border-radius:8px;padding:.2rem .7rem;font-size:1.05rem;font-weight:800}.finals-waiting{color:#ffffffb3}.champion-card{background:radial-gradient(circle at 50% 0,#f4c43038,#ffffff08 70%);border:1px solid #f4c43059;border-radius:14px;flex-direction:column;align-items:center;gap:.2rem;margin:.5rem auto 1.5rem;padding:1.5rem 1rem 1.25rem;display:flex}.champion-trophy{color:var(--pb-gold);filter:drop-shadow(0 0 16px #f4c4308c)}.champion-label{text-transform:uppercase;letter-spacing:.14em;color:var(--pb-gold-soft);margin-top:.4rem;font-size:.7rem;font-weight:700}.champion-name{color:#fff;font-family:Poppins,Segoe UI,sans-serif;font-size:1.8rem;font-weight:800;animation:2.4s ease-in-out infinite champGlow}@keyframes champGlow{0%,to{text-shadow:0 0 14px #f4c43059}50%{text-shadow:0 0 26px #f4c430b3}}.champion-roster{color:#ffffffa8;font-size:.85rem}.finals-podium{grid-template-columns:repeat(3,1fr);align-items:end;gap:.6rem;max-width:420px;margin:0 auto;padding:0;list-style:none;display:grid}.podium-step{background:#ffffff0d;border:1px solid #ffffff1f;border-bottom:none;border-radius:10px 10px 0 0;flex-direction:column;align-items:center;gap:.35rem;padding:.6rem .4rem;display:flex}.podium-step.gold{background:#f4c4302e;border-color:#f4c43080;order:2;min-height:98px}.podium-step.silver{order:1;min-height:76px}.podium-step.bronze{order:3;min-height:60px}.podium-place{color:#fff;background:#ffffff1f;border-radius:50%;place-items:center;width:1.6rem;height:1.6rem;font-size:.85rem;font-weight:800;display:grid}.podium-step.gold .podium-place{background:var(--pb-gold);color:#3a2a05}.podium-team{color:#ffffffd9;text-align:center;overflow-wrap:anywhere;font-size:.78rem;font-weight:600}.confetti{pointer-events:none;z-index:2;position:absolute;inset:0;overflow:hidden}.confetti span{background:var(--pb-gold);opacity:.9;border-radius:2px;width:8px;height:14px;animation-name:confettiFall;animation-timing-function:linear;animation-iteration-count:infinite;position:absolute;top:-12%}.confetti span:nth-child(3n){background:var(--pb-red);border-radius:50%;width:7px;height:7px}.confetti span:nth-child(3n+1){background:var(--pb-gold-soft)}.confetti span:nth-child(4n){background:#7ec8e3}@keyframes confettiFall{0%{opacity:1;transform:translateY(0)rotate(0)}to{opacity:0;transform:translateY(560px)rotate(560deg)}}@media (width<=760px){.bracket-joiner{display:none}.bracket-col{flex-basis:100%}}@media (prefers-reduced-motion:reduce){.finals-trophy-bg,.champion-name{animation:none}.confetti{display:none}}
