:root{--bg: #fff7f3;--bg-soft: #ffeae3;--cream: #fffdf8;--ink: #4a2c3b;--ink-soft: #8a6a78;--accent: #ff6f91;--accent-2: #ffb5a7;--accent-3: #c08fb6;--gold: #e0a96d;--green: #7fc29b;--line: #f3d6cc;--shadow: 0 8px 24px rgba(255, 111, 145, .12);--shadow-soft: 0 2px 8px rgba(74, 44, 59, .06);--radius: 18px;--radius-sm: 10px;--serif: "Fraunces", Georgia, serif;--sans: "Nunito", system-ui, -apple-system, "Segoe UI", sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--sans);background:radial-gradient(circle at 10% 0%,#ffe5dd 0,transparent 40%),radial-gradient(circle at 90% 10%,#ffd6e7 0,transparent 35%),var(--bg);color:var(--ink);min-height:100vh;font-size:15px;line-height:1.45}.hero{position:relative;padding:56px 24px 40px;text-align:center;overflow:hidden}.hero-inner{position:relative;z-index:2;max-width:800px;margin:0 auto}.kicker{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);font-weight:800;margin-bottom:8px}h1{font-family:var(--serif);font-weight:500;font-size:clamp(40px,7vw,72px);margin:4px 0 6px;letter-spacing:-.02em;font-style:italic}h1 .year{background:linear-gradient(120deg,var(--accent) 0%,var(--accent-3) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:700;font-style:normal}.subtitle{font-size:17px;color:var(--ink-soft);margin:0 auto 18px;max-width:460px}.heart{color:var(--accent)}.hero-controls{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap}.ghost-btn{background:#fff;border:1.5px solid var(--line);color:var(--ink);padding:8px 16px;border-radius:999px;font-family:var(--sans);font-weight:700;font-size:13px;cursor:pointer;transition:all .15s;box-shadow:var(--shadow-soft)}.ghost-btn:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}.saved-hint{font-size:12px;color:var(--ink-soft);font-style:italic}.hero-petals{position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(circle at 12% 30%,#ffd1c1 6px,transparent 7px),radial-gradient(circle at 88% 25%,#ffc6dc 5px,transparent 6px),radial-gradient(circle at 20% 80%,#ffe2b9 4px,transparent 5px),radial-gradient(circle at 78% 75%,#ffd1c1 5px,transparent 6px),radial-gradient(circle at 50% 12%,#ffc6dc 3px,transparent 4px);opacity:.55}.tabs{display:flex;justify-content:center;gap:8px;padding:8px;margin:0 auto 24px;width:max-content;background:#fff;border-radius:999px;box-shadow:var(--shadow-soft);border:1px solid var(--line)}.tab{border:0;background:transparent;padding:9px 18px;border-radius:999px;font-family:var(--sans);font-weight:700;color:var(--ink-soft);cursor:pointer;font-size:14px;transition:all .15s}.tab:hover{color:var(--ink)}.tab.active{background:linear-gradient(120deg,var(--accent) 0%,var(--accent-3) 100%);color:#fff;box-shadow:0 4px 10px #ff6f9159}main{max-width:1280px;margin:0 auto;padding:0 24px 64px}.tab-panel{display:none}.tab-panel.active{display:block}.section-intro{text-align:center;margin:8px auto 32px;max-width:620px}.section-intro h2{font-family:var(--serif);font-weight:500;font-style:italic;font-size:32px;margin:0 0 6px}.section-intro p{color:var(--ink-soft);margin:0;font-size:14px}.groups-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:22px}.group-card{background:#fff;border-radius:var(--radius);padding:20px 20px 18px;box-shadow:var(--shadow);border:1px solid var(--line);position:relative}.group-card:before{content:"";position:absolute;top:-8px;left:16px;width:42px;height:16px;background:linear-gradient(120deg,var(--accent) 0%,var(--accent-3) 100%);border-radius:4px 4px 0 0;transform:rotate(-3deg);box-shadow:0 4px 8px #ff6f9140}.group-title{font-family:var(--serif);font-style:italic;font-size:22px;margin:4px 0 14px;font-weight:500;color:var(--ink)}table.standings{width:100%;border-collapse:collapse;margin-bottom:14px;font-size:13px}.standings th{text-align:right;font-weight:700;color:var(--ink-soft);font-size:11px;text-transform:uppercase;letter-spacing:.08em;padding:4px 6px;border-bottom:1px solid var(--line)}.standings th.team-col{text-align:left}.standings td{padding:6px;text-align:right;border-bottom:1px dashed #f7e1d8}.standings td.team-col{text-align:left;font-weight:700;display:flex;align-items:center;gap:8px}.standings tr:last-child td{border-bottom:0}.standings tr.qualified td.team-col:after{content:"✓";color:var(--green);font-weight:800;margin-left:4px}.standings tr.third-tied td.team-col:after{content:"?";color:var(--gold);font-weight:800;margin-left:4px}.standings .pts{color:var(--accent);font-weight:800}.fi{width:1.25em;height:1em;border-radius:2px;box-shadow:0 0 0 1px #0000000d}.match-list{display:flex;flex-direction:column;gap:6px}.match-row{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-sm);background:var(--cream);border:1px solid #faece4}.match-row .team{display:flex;align-items:center;gap:8px;font-weight:700;font-size:13px;min-width:0}.match-row .team.right{justify-content:flex-end}.match-row .team .name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.score-input{display:flex;align-items:center;gap:4px}.score-input input{width:32px;height:32px;text-align:center;border:1.5px solid var(--line);border-radius:8px;font-family:var(--sans);font-size:15px;font-weight:800;color:var(--ink);background:#fff;transition:all .15s;-moz-appearance:textfield}.score-input input::-webkit-outer-spin-button,.score-input input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.score-input input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #ff6f912e}.score-input .dash{color:var(--ink-soft);font-weight:800}.match-meta{font-size:11px;color:var(--ink-soft);margin-top:4px;display:flex;justify-content:space-between;gap:8px}.bracket-wrap{overflow-x:auto;padding:12px 4px 24px}.bracket{display:flex;gap:28px;min-width:max-content;align-items:stretch}.bracket-col{display:flex;flex-direction:column;gap:12px;min-width:220px}.bracket-col .col-title{font-family:var(--serif);font-style:italic;font-size:16px;text-align:center;color:var(--ink-soft);margin-bottom:4px;font-weight:500}.bracket-col.r32{width:220px}.bracket-col.r16,.bracket-col.qf{width:230px;justify-content:space-around}.bracket-col.sf{width:240px;justify-content:space-around}.bracket-col.final{width:260px;justify-content:center}.ko-match{background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px 10px;box-shadow:var(--shadow-soft);position:relative}.ko-match.final-match{border:2px solid var(--accent);background:linear-gradient(180deg,#fff,#fff5f1);box-shadow:0 12px 30px #ff6f9138}.ko-match .ko-row{display:grid;grid-template-columns:1fr 36px;align-items:center;gap:6px;padding:4px 0;font-size:13px;font-weight:700}.ko-match .ko-row+.ko-row{border-top:1px dashed var(--line)}.ko-match .ko-row .team-name{display:flex;align-items:center;gap:7px;min-width:0}.ko-match .ko-row .team-name .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ko-match .ko-row .team-name .placeholder{color:var(--ink-soft);font-weight:600;font-style:italic;font-size:12px}.ko-match .ko-row.winner .team-name .name{color:var(--accent)}.ko-match .ko-row.winner:before{content:"♡";color:var(--accent);margin-right:-4px}.ko-match .ko-row input{width:32px;height:28px;border:1.5px solid var(--line);border-radius:6px;text-align:center;font-weight:800;font-family:var(--sans);font-size:14px;color:var(--ink);-moz-appearance:textfield}.ko-match .ko-row input::-webkit-outer-spin-button,.ko-match .ko-row input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.ko-match .ko-row input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #ff6f912e}.ko-meta{font-size:10px;color:var(--ink-soft);text-align:center;margin-top:6px;border-top:1px dashed var(--line);padding-top:4px}.champion-card{position:relative;margin:24px auto;max-width:720px;background:#fff;padding:48px 32px 32px;border-radius:28px;text-align:center;box-shadow:var(--shadow);border:1px solid var(--line);overflow:hidden}.champion-card .confetti{position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(circle at 8% 14%,var(--accent) 3px,transparent 4px),radial-gradient(circle at 92% 8%,var(--accent-3) 4px,transparent 5px),radial-gradient(circle at 18% 88%,var(--gold) 3px,transparent 4px),radial-gradient(circle at 80% 92%,var(--accent-2) 3px,transparent 4px),radial-gradient(circle at 50% 6%,var(--green) 2px,transparent 3px);opacity:.55}.trophy{font-size:64px;margin-bottom:8px}.champion-label{text-transform:uppercase;letter-spacing:.2em;font-size:12px;color:var(--ink-soft);font-weight:800}.champion-name{font-family:var(--serif);font-style:italic;font-size:56px;margin:6px 0 4px;font-weight:500;background:linear-gradient(120deg,var(--accent) 0%,var(--accent-3) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.champion-sub{color:var(--ink-soft);font-size:14px}.podium{margin-top:36px;display:grid;grid-template-columns:1fr 1.2fr 1fr;align-items:end;gap:12px}.podium-step{background:linear-gradient(180deg,#fff,#ffeae3);border-radius:14px 14px 6px 6px;padding:12px 8px;border:1px solid var(--line);text-align:center}.podium-step.first{padding-top:28px;padding-bottom:36px;background:linear-gradient(180deg,#fff,#ffd9c0)}.podium-step.second{padding-bottom:24px}.podium-step.third{padding-bottom:16px}.podium-label{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft);font-weight:800;margin-bottom:4px}.podium-name{font-family:var(--serif);font-style:italic;font-size:20px;font-weight:500}footer{text-align:center;padding:24px;color:var(--ink-soft);font-size:13px}@media(max-width:600px){.hero{padding:36px 16px 28px}.tabs{width:calc(100% - 32px)}.tab{flex:1;padding:9px 8px;font-size:13px}.groups-grid{grid-template-columns:1fr;gap:16px}main{padding:0 16px 48px}.champion-name{font-size:40px}}.admin-pill{display:inline-block;margin-left:8px;padding:1px 8px;background:var(--gold);color:#fff;border-radius:999px;font-size:10px;letter-spacing:.1em;text-transform:uppercase}.hello{font-family:var(--serif);font-style:italic;font-size:16px;color:var(--ink)}.primary-btn{background:linear-gradient(120deg,var(--accent) 0%,var(--accent-3) 100%);color:#fff;border:0;padding:9px 18px;border-radius:999px;font-family:var(--sans);font-weight:800;font-size:13px;cursor:pointer;box-shadow:0 4px 10px #ff6f9159;transition:transform .15s}.primary-btn:hover{transform:translateY(-1px)}.primary-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.auth-overlay{position:fixed;inset:0;background:#4a2c3b73;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.auth-card{background:#fff;border-radius:22px;padding:32px 28px 24px;width:min(420px,100%);box-shadow:0 24px 64px #4a2c3b40;border:1px solid var(--line)}.auth-card h2{font-family:var(--serif);font-style:italic;font-weight:500;font-size:28px;margin:0 0 4px;text-align:center}.auth-subtitle{text-align:center;color:var(--ink-soft);margin:0 0 20px;font-size:14px}.auth-error{background:#fee2e2;color:#b91c1c;padding:10px 12px;border-radius:10px;font-size:13px;margin-bottom:14px}.auth-field{display:block;margin-bottom:14px}.auth-field span{display:block;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);margin-bottom:4px}.auth-field input{width:100%;padding:10px 12px;border:1.5px solid var(--line);border-radius:10px;font-family:var(--sans);font-size:15px;outline:none;transition:border-color .15s,box-shadow .15s}.auth-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #ff6f912e}.auth-actions{display:flex;gap:10px;margin-top:4px}.auth-actions .primary-btn,.auth-actions .ghost-btn{flex:1;padding:11px 16px}.auth-switch{display:block;margin:14px auto 0;background:transparent;border:0;color:var(--accent);font-family:var(--sans);font-weight:700;font-size:13px;cursor:pointer}.auth-switch:hover{text-decoration:underline}.mr{background:var(--cream);border:1px solid #faece4;border-radius:var(--radius-sm);padding:10px 12px;display:flex;flex-direction:column;gap:8px}.mr-locked{background:#fff3ec;border-color:#f5d6c8}.mr-fixture{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px}.mr-team{display:flex;align-items:center;gap:6px;font-weight:700;font-size:13px;min-width:0}.mr-team.mr-right{justify-content:flex-end}.mr-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mr-placeholder{color:var(--ink-soft);font-style:italic;font-size:12px;font-weight:600}.mr-vs{color:var(--ink-soft);font-size:11px;text-transform:uppercase;letter-spacing:.1em;font-weight:800}.mr-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mr-cell{background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px 10px;position:relative}.mr-cell.mr-disabled{opacity:.85}.mr-pred{background:linear-gradient(180deg,#fff,#fff5f1)}.mr-cell-label{font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:800;color:var(--ink-soft);margin-bottom:4px}.mr-score-input{display:flex;align-items:center;gap:4px}.mr-score-input input{width:36px;height:30px;border:1.5px solid var(--line);border-radius:8px;text-align:center;font-family:var(--sans);font-weight:800;font-size:14px;color:var(--ink);background:#fff;-moz-appearance:textfield}.mr-score-input input::-webkit-outer-spin-button,.mr-score-input input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.mr-score-input input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #ff6f912e}.mr-score-input input:disabled{background:#f8eee8;color:var(--ink-soft);cursor:not-allowed}.mr-dash{color:var(--ink-soft);font-weight:800}.mr-score-readonly{display:flex;align-items:center;min-height:30px}.mr-score-text{font-weight:800;font-size:16px}.mr-pending{color:var(--ink-soft);font-style:italic;font-size:13px}.mr-points{position:absolute;top:6px;right:8px;font-weight:800;font-size:12px;padding:2px 7px;border-radius:999px;background:var(--accent);color:#fff;letter-spacing:.04em}.pts-0{background:#d4c4cc;color:#5b4350}.pts-1{background:var(--accent-2);color:var(--ink)}.pts-3{background:var(--accent);color:#fff}.pts-4{background:var(--gold);color:#fff}.mr-signin-prompt{background:#fff;border:1.5px dashed var(--line);border-radius:8px;padding:6px 10px;font-family:var(--sans);font-weight:700;font-size:12px;color:var(--accent);cursor:pointer;width:100%}.mr-signin-prompt:hover{border-color:var(--accent)}.mr-locked-note{font-size:11px;color:var(--ink-soft);font-style:italic}.mr-meta{font-size:11px;color:var(--ink-soft);display:flex;justify-content:space-between;gap:8px}.mr-lock{color:var(--accent);font-weight:800}.mr-advancer{display:flex;gap:8px;flex-wrap:wrap;align-items:center;font-size:12px}.mr-advancer-label{font-weight:800;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em;font-size:10px}.mr-advancer-opt{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1.5px solid var(--line);border-radius:999px;font-weight:700;font-size:12px;cursor:pointer;background:#fff}.mr-advancer-opt input{display:none}.mr-advancer-opt.on{border-color:var(--accent);background:linear-gradient(120deg,var(--accent) 0%,var(--accent-3) 100%);color:#fff}.ko-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-soft);position:relative;padding:6px}.ko-card-final{border:2px solid var(--accent);background:linear-gradient(180deg,#fff,#fff5f1);box-shadow:0 12px 30px #ff6f9138}.ko-card .mr{background:transparent;border:0;padding:0}.ko-card .mr-grid{grid-template-columns:1fr 1fr}.ko-num{position:absolute;top:6px;left:8px;font-size:9px;font-weight:800;color:var(--ink-soft);letter-spacing:.05em}.bracket-col.r32,.bracket-col.r16,.bracket-col.qf,.bracket-col.sf{width:280px}.bracket-col.final{width:300px}.leaderboard{background:#fff;border-radius:var(--radius);border:1px solid var(--line);padding:18px 20px;box-shadow:var(--shadow);max-width:920px;margin:0 auto}.leaderboard-empty{text-align:center;color:var(--ink-soft);font-style:italic;padding:32px}.leaderboard-head,.leaderboard-row{display:grid;grid-template-columns:40px 1fr 80px 80px 90px 90px 70px;align-items:center;gap:8px;padding:10px 8px}.leaderboard-head{border-bottom:1px solid var(--line);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);font-weight:800}.leaderboard-row{border-bottom:1px dashed #f7e1d8;font-size:14px;font-weight:700}.leaderboard-row:last-child{border-bottom:0}.leaderboard-row.is-me{background:linear-gradient(90deg,#fff5f1 0%,transparent 100%);border-radius:8px}.lb-rank{font-size:18px}.lb-name{font-family:var(--serif);font-style:italic;font-size:17px;font-weight:500}.lb-total{text-align:right;font-family:var(--serif);font-size:22px;font-weight:700;background:linear-gradient(120deg,var(--accent) 0%,var(--accent-3) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.leaderboard-key{font-size:12px;color:var(--ink-soft);text-align:center;margin:12px 0 0;font-style:italic}@media(max-width:720px){.leaderboard-head{display:none}.leaderboard-row{grid-template-columns:32px 1fr 60px;grid-template-areas:"rank name total" "rank stats stats"}.leaderboard-row>:nth-child(1){grid-area:rank}.leaderboard-row>:nth-child(2){grid-area:name}.leaderboard-row>:nth-child(7){grid-area:total;text-align:right}.leaderboard-row>:nth-child(3),.leaderboard-row>:nth-child(4),.leaderboard-row>:nth-child(5),.leaderboard-row>:nth-child(6){grid-area:stats;font-size:11px;color:var(--ink-soft);display:inline}.leaderboard-row>:nth-child(3):before{content:"🎯 "}.leaderboard-row>:nth-child(4):before{content:" · ✓ "}.leaderboard-row>:nth-child(5):before{content:" · → "}.leaderboard-row>:nth-child(6):before{content:" · "}}.group-card .match-list{gap:10px}
