:root{--paper:#f6f5ef;--green:#638c21;--pink:#f719ac;--ink:#23321b;--line:#d9decd}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:16px}a{color:inherit}header,main,footer{max-width:1320px;margin:auto}header{height:106px;display:flex;align-items:center;justify-content:space-between;padding:0 48px;border-bottom:1px solid var(--line)}.wordmark{text-decoration:none;font-size:32px;font-weight:950;letter-spacing:-2px;line-height:.95}.wordmark span{color:var(--pink)}.wordmark small{display:block;font-size:10px;letter-spacing:1.6px;margin-top:7px}.edition{font-size:12px;font-weight:700;letter-spacing:1.8px}.edition span{padding:0 15px;color:var(--pink)}main{padding:0 48px}.hero{display:grid;grid-template-columns:1.65fr 1fr;gap:65px;padding:48px 0 42px;align-items:center}.eyebrow{font-size:12px;font-weight:800;letter-spacing:1.6px;margin-bottom:22px}.eyebrow span{color:var(--pink);padding:0 12px}h1{font-size:clamp(40px,5.3vw,70px);line-height:.94;letter-spacing:-3px;font-weight:950;margin:0;color:var(--green)}h1 span{color:var(--pink)}h1 .period{color:var(--green)}.hero-bottom{display:flex;align-items:flex-end;justify-content:space-between;margin-top:30px;gap:16px}.hero-bottom p{font-size:14px;line-height:1.6;margin:0}.prize{text-align:right}.prize small{font-size:11px;letter-spacing:1.5px;font-weight:bold}.prize strong{display:block;font-size:32px;letter-spacing:-1px;color:var(--pink);margin-top:6px}.poster{display:block;position:relative;max-width:310px;margin-left:auto;transform:rotate(3deg);box-shadow:8px 12px 0 #e0e4d5;border:1px solid #e3e5dc}.poster img{display:block;width:100%;height:auto}.poster>span{position:absolute;bottom:0;left:0;right:0;background:var(--green);color:white;padding:11px 15px;font-size:10px;font-weight:bold;letter-spacing:1.2px;display:flex;justify-content:space-between}.tabs{display:flex;border-bottom:1px solid var(--line);gap:32px;position:sticky;top:0;background:var(--paper);z-index:2}.tabs button{font:700 16px Arial;background:none;border:0;padding:23px 0 20px;color:#727965;cursor:pointer;border-bottom:4px solid transparent;white-space:nowrap}.tabs button[aria-selected=true]{border-bottom-color:var(--pink);color:var(--ink)}button:focus-visible,a:focus-visible{outline:3px solid var(--pink);outline-offset:5px}[role=tabpanel]{padding:36px 0 55px;min-height:410px}[hidden]{display:none!important}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:30px}h2{font-size:30px;letter-spacing:-1px;margin:0}.tag{background:#e8eddb;color:var(--green);padding:8px 12px;font-size:11px;font-weight:bold;letter-spacing:1px}.tag.neutral{color:#5e6657;background:#e9ece3}.overview-grid{display:grid;grid-template-columns:1fr 320px;gap:55px}.facts{display:grid;grid-template-columns:1fr 1fr;gap:32px 22px}.label{font-size:11px;letter-spacing:1.5px;font-weight:800;color:#66705a}.facts h3{font-size:21px;margin:12px 0 8px;letter-spacing:-.5px}.facts h3 small{font-weight:normal;font-size:16px}.facts p,.format p{font-size:14px;line-height:1.6;color:#68705f;margin:0}.format{border-top:1px solid var(--line);margin-top:30px;padding-top:18px}.format h3{font-size:16px;margin:0 0 8px}.register{background:var(--green);color:white;padding:28px 30px}.register .label{color:#e1efc6}.register h2{font-size:35px;line-height:1.04;margin-top:22px}.register em{font-style:normal;color:#ffb9e9}.register p{line-height:1.7;font-size:14px;margin-top:24px}.limited{font-size:10px;letter-spacing:1.3px;border-top:1px solid #8bab58;display:block;padding-top:16px;margin-top:22px}.empty{background:#e9eddf;padding:40px;min-height:260px}.big-number{font-size:15px;font-weight:800;color:var(--green);letter-spacing:2px}.empty h3{font-size:30px;letter-spacing:-1px;margin:20px 0 12px}.empty p{max-width:620px;line-height:1.7;color:#5e6853}.text-link{background:none;border:0;border-bottom:1px solid var(--green);color:var(--green);font-size:14px;font-weight:bold;padding:9px 0;cursor:pointer}.schedule{display:grid;grid-template-columns:200px 1fr;gap:35px;max-width:850px}.date-card{background:var(--green);color:white;padding:30px 20px;text-align:center;display:flex;flex-direction:column;justify-content:center;gap:12px}.date-card span{font-size:12px;letter-spacing:1px;font-weight:bold}.date-card strong{font-size:88px;line-height:1}.schedule h3{font-size:36px;margin:12px 0}.schedule h3 small{font-size:16px}.schedule p{line-height:1.7;color:#66705a}.schedule hr{border:0;border-top:1px solid var(--line);margin:24px 0}footer{border-top:1px solid var(--line);padding:30px 48px;display:flex;justify-content:space-between;align-items:center;gap:20px}footer .wordmark{font-size:25px}footer p,footer>span{font-size:10px;font-weight:800;letter-spacing:1.2px}footer p span{padding:0 12px;color:var(--pink)}footer>span{color:var(--green)}@media(min-width:1500px){h1{font-size:76px}}@media(max-width:850px){header{padding:0 24px;height:86px}main{padding:0 24px}.hero{gap:30px}.hero-bottom{display:block}.prize{text-align:left;margin-top:20px}.overview-grid{grid-template-columns:1fr 260px;gap:25px}.facts{grid-template-columns:1fr}.register{align-self:start}h1{letter-spacing:-2px}footer{padding:25px 24px}.edition{font-size:10px}}@media(max-width:560px){.edition{max-width:95px;line-height:1.7;text-align:right}.edition span{padding:0 4px}.hero{grid-template-columns:1fr;gap:30px;padding-top:30px}.eyebrow{font-size:10px;letter-spacing:1px}h1{font-size:clamp(36px,10vw,56px);letter-spacing:-1.7px}.hero-bottom{display:flex}.prize strong{font-size:26px}.poster{max-width:190px;margin:0 auto}.tabs{gap:0;justify-content:space-between}.tabs button{font-size:14px;padding:19px 0 16px}.overview-grid{grid-template-columns:1fr}.facts{grid-template-columns:1fr 1fr;gap:26px 16px}.facts h3{font-size:19px}.section-heading h2{font-size:25px}.tag{font-size:9px;padding:7px}.register{padding:26px}.register h2{font-size:36px}.empty{padding:26px}.empty h3{font-size:27px}.schedule{grid-template-columns:1fr;gap:24px}.date-card{flex-direction:row;align-items:center;gap:20px}.date-card strong{font-size:58px}footer{flex-wrap:wrap}footer p{width:100%;order:3;line-height:1.8;margin:0}.hero-bottom p{font-size:12px}}

.nopson-logo{display:block;flex-shrink:0;width:250px;height:73px}.logo-window{display:block;position:relative;overflow:hidden;width:250px;height:73px}.logo-window img{position:absolute;width:768px;max-width:none;height:512px;left:-38px;top:-63px;mix-blend-mode:multiply}.hero{grid-template-columns:1.3fr 1fr;gap:35px}.hero h1{font-size:clamp(30px,4.6vw,62px);letter-spacing:-2px}.hero-subtitle{font-size:12px;font-weight:800;letter-spacing:1.6px;margin-top:24px}.format-hero{background:#e8eddb;padding:34px 28px;border-top:5px solid var(--pink)}.format-hero strong{display:block;color:var(--green);font-size:64px;letter-spacing:-3px;margin:20px 0}.format-hero p{line-height:1.7}.format-hero-bottom{display:block;border-top:1px solid #cbd4ba;padding-top:20px;font-size:11px;letter-spacing:1px;font-weight:bold}.format p+p{margin-top:12px}.rules-note{font-style:italic}.section-intro{color:#66705a;font-size:14px;line-height:1.7;margin:0 0 24px}.group-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}.group-card{border:1px solid var(--line)}.group-title{display:flex;justify-content:space-between;align-items:center;background:var(--green);color:white;padding:20px 24px}.group-title h3{margin:0;font-size:24px}.group-title span{font-size:11px;letter-spacing:1px}.team-head,.team-row{display:grid;grid-template-columns:1fr 2fr;padding:17px 24px}.team-head{font-size:11px;font-weight:bold;color:#68705f;letter-spacing:1px;background:#e9eddf}.team-row{border-top:1px solid var(--line)}.team-row strong{color:var(--green)}.team-row span{color:#68705f}.stage-title{margin:36px 0 12px;font-size:24px;letter-spacing:-.5px}.knockout-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.match-card{padding:22px;background:#e9eddf;border-top:3px solid var(--green)}.match-card:nth-child(3){border-top-color:var(--pink)}.match-card h3{font-size:18px;margin:16px 0}.versus{font-size:11px;color:#68705f;font-weight:bold}.schedule-banner{background:var(--green);color:white;padding:22px;display:flex;justify-content:space-between;gap:15px;margin-bottom:20px}.schedule-banner span{font-size:14px}.table-scroll{overflow-x:auto;margin-bottom:22px}table{border-collapse:collapse;width:100%;min-width:760px;text-align:left;font-size:14px}th{padding:15px 12px;background:#e9eddf;font-size:12px}td{padding:18px 12px;border-bottom:1px solid var(--line)}td small{display:block;color:#68705f;margin-top:6px;font-size:12px}tbody tr:nth-child(n+13){background:#eef0e6}footer .nopson-logo{transform:scale(.65);transform-origin:left center;margin-right:-85px}@media(max-width:850px){.hero{grid-template-columns:1fr}.hero h1{font-size:clamp(32px,6.8vw,62px)}.knockout-grid{grid-template-columns:1fr 1fr}.schedule-banner{flex-direction:column}.format-hero strong{font-size:54px}}@media(max-width:560px){header .nopson-logo{transform:scale(.72);transform-origin:left center;margin-right:-70px}.group-grid{grid-template-columns:1fr}.group-title{padding:18px}.knockout-grid{grid-template-columns:1fr}.hero h1{font-size:clamp(27px,7.1vw,40px);letter-spacing:-1px}.hero-subtitle{font-size:10px}.format-hero{padding:24px}.group-title span{font-size:10px}}

/* Standalone full logo: no crop window or background rectangle. */
.nopson-logo{width:250px;height:auto;line-height:0}.nopson-logo>img{display:block;width:100%;height:auto;max-width:100%;object-fit:contain}.team-row b{display:block;color:var(--ink);font-size:15px}.team-row small{display:block;font-size:14px;line-height:1.6;margin-top:5px}.group-title{flex-wrap:wrap;gap:12px}.time-cell{white-space:nowrap}.timing-note{background:#e9eddf;padding:22px 26px;margin:0 0 24px}.timing-note h3{font-size:18px;margin:0 0 12px}.timing-note p{font-size:14px;line-height:1.7;color:#59634e;margin:10px 0}.table-scroll table{min-width:900px}.table-scroll td:nth-child(3){min-width:260px}

.group-schedules{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:35px}.group-agenda{border:1px solid var(--line);min-width:0}.agenda-format{font-size:13px;color:#66705a;margin:0;padding:15px 20px;border-bottom:1px solid var(--line)}.fixture-list{list-style:none;margin:0;padding:0}.agenda-fixture{display:grid;grid-template-columns:95px 1fr;gap:14px;padding:20px;border-bottom:1px solid var(--line)}.agenda-fixture:last-child{border-bottom:0}.agenda-time{font-size:14px;line-height:1.6}.agenda-time small{display:block;color:#68705f;font-size:12px}.agenda-match{min-width:0}.agenda-match h4{margin:7px 0;font-size:15px;line-height:1.5}.agenda-match p{margin:0;font-size:13px;line-height:1.6;color:#68705f}.bracket-scroll{overflow-x:auto;padding:3px 0 12px}.tournament-bracket{display:grid;grid-template-columns:minmax(250px,1fr) 100px minmax(250px,1fr);min-width:620px}.bracket-round{display:grid;gap:24px}.bracket-match{height:180px;border:1px solid var(--line);border-top:3px solid var(--green);padding:17px 20px;background:#eef0e6}.bracket-meta{display:flex;justify-content:space-between;align-items:center;gap:10px}.bracket-meta h4{margin:0;font-size:17px}.bracket-meta span{font-size:13px;white-space:nowrap;color:#68705f}.bracket-time{font-size:12px;color:#68705f;margin:9px 0 12px}.bracket-team{padding:9px 0;font-size:15px;font-weight:bold;border-top:1px solid var(--line)}.bracket-connectors{width:100%;height:384px}.title-match{border-top-color:var(--pink)}.third-match{border-top-color:#8b907f}.bracket-legend{display:flex;flex-wrap:wrap;gap:12px 25px;font-size:12px;color:#68705f;margin:4px 0 28px}@media(max-width:850px){.group-schedules{grid-template-columns:1fr}}@media(max-width:560px){.agenda-fixture{padding:16px;grid-template-columns:86px 1fr;gap:10px}.agenda-match h4{font-size:14px}.tournament-bracket{grid-template-columns:260px 70px 260px;min-width:590px}.bracket-match{padding:17px 15px}}

.playoff-view{margin:24px 0 32px}.upper-labels{display:grid;grid-template-columns:1fr 1fr;gap:100px}.upper-labels h4,.lower-playoff>h4{background:#e2e8d5;padding:12px 16px;font-size:15px;margin:0 0 16px}.upper-playoff{display:grid;grid-template-columns:minmax(0,1fr) 100px minmax(0,1fr);align-items:center}.semi-stack{display:grid;gap:30px}.playoff-card{border:1px solid #b9c5a5;background:#fafbf7;min-width:0}.playoff-card h4{font-size:15px;margin:0;padding:12px 15px;background:#eaf0de;display:flex;justify-content:space-between;gap:12px}.playoff-card h4 span{font-size:13px;font-weight:400;white-space:nowrap}.playoff-card p{font-size:12px;color:#66705a;margin:0;padding:10px 15px}.playoff-card>div{font-size:15px;font-weight:700;padding:12px 15px;border-top:1px solid #d6ddcc;line-height:1.4}.final-slot .playoff-card{border-top:3px solid var(--pink)}.winner-lines{height:calc(50% + 15px);border:2px solid var(--green);border-left:0;position:relative;width:50%}.winner-lines span{position:absolute;left:100%;top:50%;width:100%;border-top:2px solid var(--green)}.lower-playoff{border-top:1px solid var(--line);padding-top:24px;margin-top:30px}.lower-playoff>h4{background:#ecebe3}.lower-route{display:grid;grid-template-columns:minmax(0,1fr) 100px minmax(0,1fr);align-items:center}.lower-route>p{text-align:center;font-size:15px;line-height:1.8;color:#66705a}.lower-route>p span{color:#a0a691}.lower-arrow{border-top:2px dashed #8b907f}.result-court{font-size:14px;font-weight:400;margin-left:12px;color:#66705a}.standings-scroll{overflow-x:auto;margin-bottom:28px;border:1px solid var(--line)}.standings{min-width:850px;width:100%;font-size:15px}.standings th,.standings td{padding:17px 14px;text-align:center;vertical-align:middle}.standings thead th{font-size:14px;background:#e8edde}.standings th:nth-child(2){text-align:left;min-width:210px}.standings tbody th{background:#edf3e1;color:var(--green);font-size:15px;border-bottom:1px solid var(--line)}.standings small{display:block;font-size:12px;font-weight:400;line-height:1.5;margin-top:6px;color:#68705f}.standings td{min-width:95px}.standings td:first-child{min-width:55px;background:#edf3e1}.standings .slot-badge{background:var(--green);color:white;display:inline-block;padding:6px;font-size:13px;font-weight:700;border-radius:4px}.zero-score{background:#e9ece3;display:inline-block;padding:5px 9px;border-radius:4px;color:#58614d;font-size:14px}.standings tbody tr{background:transparent}@media(max-width:600px){.upper-labels{display:none}.upper-playoff{display:flex;flex-direction:column;gap:0;align-items:stretch}.semi-stack{grid-template-columns:1fr;gap:18px}.winner-lines{height:28px;width:0;border:0;border-left:2px solid var(--green);margin:auto}.winner-lines span{display:none}.final-slot:before{content:'Semifinal winners advance';display:block;text-align:center;font-size:12px;color:#66705a;margin-bottom:10px}.lower-route{grid-template-columns:1fr;gap:14px}.lower-route>p{margin:0}.lower-arrow{width:0;height:20px;border:0;border-left:2px dashed #8b907f;margin:auto}.playoff-card>div{font-size:16px}.playoff-card h4{font-size:16px}}

/* Scorekeeper */
.scorekeeper-body{background:#f3f2eb;color:#151515}.scorekeeper-body header{position:static}.back-link{color:inherit;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.scorekeeper{max-width:1100px;margin:0 auto;padding:48px 24px 96px}.scorekeeper-intro h1{font-size:clamp(3rem,9vw,7rem);line-height:.9;margin:12px 0 20px;text-transform:uppercase}.scorekeeper-intro p{font-size:1.1rem;max-width:560px}.admin-panel{background:#fff;border:2px solid #151515;padding:clamp(20px,4vw,40px);margin-top:36px;box-shadow:10px 10px 0 #d52b2b}.admin-panel>h2{font-size:2rem;margin-top:0}.admin-panel form label,.match-controls label{display:grid;gap:7px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.admin-panel input,.admin-panel select{font:inherit;border:1.5px solid #151515;background:#fff;padding:12px;border-radius:0}.admin-panel button{font:inherit;font-weight:800;text-transform:uppercase;border:1.5px solid #151515;background:#151515;color:#fff;padding:12px 18px;cursor:pointer}.admin-actions{display:flex;gap:12px;margin-top:20px;flex-wrap:wrap}.admin-panel .secondary-button{background:#fff;color:#151515}.admin-message{min-height:1.5em;margin-bottom:0}.admin-message.error,.save-state.error{color:#b51717}.admin-panel-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.admin-panel-heading strong{display:block;margin-top:5px}.admin-filter{display:flex;gap:8px;overflow:auto;margin:28px 0 12px;padding-bottom:4px}.admin-panel .filter-button{white-space:nowrap;background:#fff;color:#151515;padding:9px 12px}.admin-panel .filter-button.active{background:#d52b2b;color:#fff}.admin-match-list{display:grid;gap:20px;margin-top:24px}.admin-match{border:1.5px solid #151515;padding:20px;background:#faf9f4}.admin-match-heading{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.admin-match-heading h2{font-size:clamp(1.1rem,3vw,1.55rem);display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:7px 0 18px}.admin-match-heading h2 small{font-size:.7em;color:#6b6b66;text-transform:uppercase}.court-pill{background:#151515;color:#fff;padding:7px 10px;font-weight:800;white-space:nowrap}.score-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.score-grid input{text-align:center;font-size:1.3rem;font-weight:800}.match-controls{display:grid;grid-template-columns:1fr 1fr auto;align-items:end;gap:12px;margin-top:16px}.save-state{min-height:1.3em;margin:12px 0 0;font-weight:700}.admin-match:has(.save-state:not(:empty)){border-color:#d52b2b}@media(max-width:640px){.scorekeeper{padding:30px 14px 70px}.scorekeeper-body header{padding:14px}.scorekeeper-body .nopson-logo img{width:150px;height:auto}.admin-panel{padding:18px;box-shadow:6px 6px 0 #d52b2b}.admin-panel-heading{align-items:flex-start}.admin-panel-heading strong{max-width:190px;overflow-wrap:anywhere}.admin-match{padding:15px}.admin-match-heading{display:block}.court-pill{display:inline-block;margin-bottom:10px}.match-controls{grid-template-columns:1fr 1fr}.match-controls button{grid-column:1/-1}.score-grid{gap:8px}}


/* Poster-led event hero */
.poster-hero{display:flex;justify-content:center;align-items:center;padding:32px 24px 44px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,#e8eddb 0 50%,#f7d8ec 50% 100%)}
.poster-hero img{display:block;width:auto;max-width:min(100%,430px);max-height:610px;height:auto;border:1px solid #d9decd;box-shadow:10px 12px 0 rgba(35,50,27,.14)}
.overview-grid{grid-template-columns:minmax(0,1fr) 320px;gap:55px;align-items:start}
.overview-details{min-width:0}
@media(max-width:850px){
  .poster-hero{padding:28px 24px 38px}
  .poster-hero img{max-width:min(78vw,380px);max-height:560px;box-shadow:8px 10px 0 rgba(35,50,27,.14)}
  .overview-grid{grid-template-columns:1fr 260px;gap:25px}
}
@media(max-width:560px){
  .poster-hero{padding:18px 16px 28px;background:linear-gradient(135deg,#e8eddb 0 50%,#f7d8ec 50% 100%)}
  .poster-hero img{width:auto;max-width:min(82vw,310px);max-height:440px;border:1px solid #d9decd;box-shadow:6px 8px 0 rgba(35,50,27,.12)}
  .overview-grid{grid-template-columns:1fr;gap:34px}
}

.retry-load{margin-top:10px}

.flag-emoji{display:inline-block;width:1em;height:1em;margin:0 .12em 0 .24em;vertical-align:-.14em;object-fit:contain;line-height:1;flex:none}

/* Keep location and year intentionally aligned beside the logo. */
header .edition{display:flex;align-items:center;flex-shrink:0}
header .edition .edition-location,header .edition .edition-year{padding:0;color:inherit;white-space:nowrap}
@media(max-width:560px){
  body>header{gap:16px}
  body>header .nopson-logo{width:clamp(130px,42vw,180px);transform:none;margin-right:0;flex-shrink:1;min-width:0}
  header .edition{max-width:none;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:4px;font-size:10px;letter-spacing:1.2px;line-height:1.4;text-align:right}
  header .edition .edition-divider{display:none}
}
