:root{--white:#fff;--ink:#182c42;--blue:#244db4;--red:#dd5639;--muted:#65717c;--line:#d9dfe3;--soft:#f5f8fa}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:var(--ink);font:16px/1.6 'DM Sans',Arial,sans-serif}a{color:inherit}a:hover{color:var(--blue)}button,input,select{font:inherit}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.08}h1,h2,.pullquote,.report-hero h1{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.045em}h1 i{color:var(--blue);font-weight:400}.site-header{display:flex;align-items:center;justify-content:space-between;gap:30px;min-height:89px;padding:16px max(4vw,28px);border-bottom:1px solid var(--line);background:white}.identity{display:flex;gap:13px;align-items:center;text-decoration:none;color:var(--ink)}.identity-symbol{display:block;color:var(--blue);font:800 27px/1 'Libre Franklin',sans-serif;letter-spacing:-.1em;white-space:nowrap}.identity-symbol span{color:var(--red);margin:0 2px}.identity-name{font:700 13px/1.15 'Libre Franklin',sans-serif;letter-spacing:.025em}.site-header nav{display:flex;gap:30px;align-items:center;flex-wrap:wrap;font:600 13px 'Libre Franklin',sans-serif}.site-header nav a{text-decoration:none}.site-header nav a:last-child{color:var(--blue)}.masthead{padding:0 max(4vw,28px);border-bottom:1px solid var(--line)}.issue-line{display:flex;justify-content:space-between;gap:20px;padding:13px 0;border-bottom:1px solid var(--line);text-transform:uppercase;font:700 11px/1.3 'Libre Franklin',sans-serif;letter-spacing:.14em;color:var(--muted)}.issue-line.bottom{border-top:1px solid var(--line);border-bottom:0}.masthead-grid{min-height:465px;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(240px,.6fr);gap:5vw;align-items:center;padding:60px 0}.kicker,.section-index{display:block;font:700 12px 'Libre Franklin',sans-serif;letter-spacing:.16em;color:var(--red);text-transform:uppercase}.masthead h1{font-size:clamp(60px,7.6vw,132px);line-height:.99;margin:22px 0 18px}.tagline{font-size:clamp(18px,2vw,24px);margin:0}.masthead-side{padding:10px 0 10px 35px;border-left:1px solid var(--line);max-width:390px}.coverage-label{margin:0 0 15px;color:var(--blue)}.masthead-side p{font-size:16px;color:#475969}.underlink{display:inline-flex;justify-content:space-between;gap:18px;text-decoration:none;border-bottom:2px solid var(--blue);font-weight:700;color:var(--blue);padding:0 0 5px}.notice{display:flex;gap:21px;margin:32px max(4vw,28px);padding:25px 27px;background:#f0f5ff;border-left:4px solid var(--blue)}.notice-icon{color:var(--red);font-size:30px;line-height:1}.notice strong{font-size:18px}.notice p{margin:4px 0 0;color:#4d5c6b;max-width:850px}.featured{display:grid;grid-template-columns:1fr 1.15fr .75fr;gap:4vw;align-items:start;margin:70px max(4vw,28px) 90px;border-top:1px solid var(--ink);padding-top:18px}.featured-title h2{font-size:clamp(56px,6.5vw,105px);line-height:.93;margin:30px 0 22px;color:var(--blue)}.featured-title p{font-size:14px;color:var(--muted)}.featured-story{padding-top:48px}.pullquote{font-size:clamp(27px,3vw,44px);line-height:1.16;margin:0 0 20px}.featured-story>p:not(.pullquote){color:#4b5c68}.featured-stats{border-left:1px solid var(--line);padding:40px 0 0 23px}.featured-stats div{border-bottom:1px solid var(--line);padding:0 0 16px;margin-bottom:19px}.featured-stats b{display:block;font:400 57px/.95 Georgia,serif;color:var(--blue)}.featured-stats span,.featured-stats small{font-size:13px;color:var(--muted)}.players-section,.approach,.coverage{padding:90px max(4vw,28px)}.players-section{background:var(--soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.section-top{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:42px}.section-top h2,.approach h2{font-size:clamp(48px,5.5vw,83px);margin:15px 0 0}.section-top>p{max-width:440px;margin:0;color:#566574}.toolbar{display:flex;align-items:end;gap:15px;flex-wrap:wrap;margin-bottom:25px}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:12px;text-transform:uppercase;letter-spacing:.13em;font-weight:700}.field select,.field input{min-height:44px;background:#fff;border:1px solid #abb9c3;border-radius:0;padding:9px 12px;color:var(--ink);min-width:175px}.field input{min-width:245px}.result-count{margin-left:auto;color:var(--muted);font-size:13px;padding:10px 0}.player-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.player-card{padding:25px 23px;background:white;border:1px solid var(--line);min-height:246px;display:flex;flex-direction:column}.player-card:hover{border-color:var(--blue)}.card-top{display:flex;justify-content:space-between;gap:15px;color:var(--blue);font:700 12px 'Libre Franklin',sans-serif;letter-spacing:.1em}.player-card h3{font:400 31px/1.1 Georgia,serif;letter-spacing:-.025em;margin:25px 0 8px}.player-card .team{font-size:13px;color:#5f7080;margin-bottom:15px}.player-card .evidence-line{font-size:14px;line-height:1.45;margin:auto 0 17px}.player-card .source{font:700 12px 'Libre Franklin',sans-serif;color:var(--blue);text-decoration:none;align-self:start;border-bottom:1px solid var(--blue)}.empty{padding:30px;background:white;grid-column:1/-1}.research-note{font-size:13px;color:var(--muted);line-height:1.6;margin:26px 0 0;max-width:1020px}.approach{display:grid;grid-template-columns:1fr 1fr;gap:8vw;border-bottom:1px solid var(--line)}.approach-content>p:first-child{font:400 24px/1.5 Georgia,serif}.principles{border-top:2px solid var(--blue);margin:30px 0}.principles div{display:flex;gap:30px;padding:16px 0;border-bottom:1px solid var(--line)}.approach-small{color:#536575}.coverage{padding-bottom:115px}.state-grid{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.state-grid>div,.state-grid>a{min-height:140px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px;display:flex;flex-direction:column}.state-grid b{font:400 40px/1 Georgia,serif;color:var(--blue)}.state-grid span{font-weight:700;margin-top:auto}.state-grid small{color:var(--muted);font-size:12px}.state-grid .pending{background:#f6f7f7}.state-grid .pending b{color:#98a6b2}footer{padding:35px max(4vw,28px);border-top:2px solid var(--blue);display:flex;justify-content:space-between;gap:25px;font-size:13px;color:var(--muted)}footer span:first-child{color:var(--blue);font-weight:700}.report-hero{padding:80px max(4vw,28px) 65px;border-bottom:1px solid var(--line);background:white}.report-hero h1{font-size:clamp(72px,9vw,130px);color:var(--blue);margin:15px 0 20px}.report-hero p:last-child{font-size:20px}.report-grid{display:grid;grid-template-columns:220px minmax(0,800px);gap:8vw;padding:65px max(4vw,28px) 110px}.report-nav{align-self:start;position:sticky;top:25px;display:grid;gap:9px}.report-nav a{text-decoration:none;padding:7px 0;border-bottom:1px solid var(--line);font-size:14px;font-weight:700;color:var(--blue)}.report-body section{border-bottom:1px solid var(--line);margin-bottom:45px;padding-bottom:45px}.report-body h2{font-size:clamp(38px,4vw,64px);margin:15px 0 20px}.report-body p{font-size:17px;line-height:1.7}.report-body .fine{font-size:14px;color:var(--muted)}.report-stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:2px solid var(--blue);margin:30px 0}.report-stats div{padding:18px 12px;border-right:1px solid var(--line)}.report-stats strong{display:block;font:400 42px Georgia,serif;color:var(--blue)}.report-stats span{font-size:12px;color:var(--muted)}.evidence{padding:25px;background:var(--soft);border-left:3px solid var(--blue)}.evidence h3{font:400 28px Georgia,serif}.evidence li{margin:8px 0}.report-body ul{padding-left:22px}.report-body li{margin-bottom:9px}a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--red);outline-offset:3px}@media(max-width:1050px){.player-grid{grid-template-columns:repeat(2,1fr)}.featured{grid-template-columns:1fr 1fr}.featured-stats{grid-column:1/-1;display:flex;gap:30px;padding:20px 0;border-left:0;border-top:1px solid var(--line)}.featured-stats div{min-width:130px}.state-grid{grid-template-columns:repeat(4,1fr)}}@media(max-width:700px){.site-header{display:block}.site-header nav{gap:18px;margin-top:22px}.masthead-grid{grid-template-columns:1fr;gap:30px;min-height:auto;padding:62px 0}.masthead h1{font-size:clamp(54px,10vw,80px)}.masthead-side{border-left:0;border-top:1px solid var(--line);padding:25px 0 0}.issue-line span:last-child{display:none}.featured,.approach{grid-template-columns:1fr}.featured{margin:55px 28px}.featured-story{padding-top:0}.featured-stats{grid-column:auto}.section-top{display:block}.section-top>p{margin-top:22px}.players-section,.approach,.coverage{padding:60px 28px}.player-grid{grid-template-columns:1fr}.state-grid{grid-template-columns:repeat(2,1fr)}.report-grid{grid-template-columns:1fr}.report-nav{position:static;display:flex;flex-wrap:wrap;gap:18px}.report-stats{grid-template-columns:repeat(2,1fr)}footer{display:block}footer span{display:block;margin-bottom:9px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* The rank stays tied to the player when visitors use a filter. */
.card-top{align-items:flex-start;flex-wrap:wrap;column-gap:12px}
.card-top .rank-number{font:400 42px/.9 Georgia,serif;letter-spacing:-.06em;color:var(--ink);margin-right:auto}
.player-card.top-three{border-top:3px solid var(--blue)}
.player-card.top-three .rank-number{color:var(--blue)}

/* Restrained presentation for the ranking and coverage summary. */
.masthead h1 i{font-style:normal}

.notice-icon{min-width:36px;font:700 22px/1.2 'Libre Franklin',sans-serif;color:var(--blue)}

.position-key{font-size:13px;color:var(--muted);margin:-10px 0 18px}

.rank-context{font:700 12px/1.5 'Libre Franklin',sans-serif;letter-spacing:.025em;color:var(--blue);margin:-2px 0 10px}
.player-card h3{margin-bottom:8px}

.identity img{display:block;width:min(480px,84vw);height:auto}

.file-context{padding:18px 20px;background:var(--soft);border-left:3px solid var(--blue);color:#40546a}

.ranking-principle{max-width:900px;font-size:14px;color:#40546a;margin:0 0 25px}

.state-grid>a{text-decoration:none;color:inherit}.state-grid>a:hover{background:#edf3ff}.state-grid>a small{color:var(--blue);font-weight:700}.state-grid>a:focus-visible{outline:3px solid var(--red);outline-offset:-4px}

/* Keep the editorial layout centered on wide screens without narrowing its backgrounds. */
@media(min-width:1400px){.site-header,.masthead,.players-section,.approach,.coverage,footer,.report-hero,.report-grid{padding-left:max(4vw,calc((100vw - 1320px)/2));padding-right:max(4vw,calc((100vw - 1320px)/2))}.notice{margin-left:max(4vw,calc((100vw - 1320px)/2));margin-right:max(4vw,calc((100vw - 1320px)/2))}}

/* Center headings and controls on phones; keep reports and player cards easy to scan. */
@media(max-width:700px){.site-header{text-align:center}.site-header .identity{width:100%;justify-content:center}.site-header .identity img{width:min(100%,420px);max-width:100%}.site-header nav{justify-content:center;gap:12px 18px}.masthead-grid{text-align:center;padding:48px 0}.masthead h1{font-size:clamp(44px,10vw,64px);overflow-wrap:break-word}.masthead-side{max-width:none;text-align:center}.issue-line{justify-content:center;text-align:center}.section-top{text-align:center}.section-top>p{max-width:550px;margin:18px auto 0}.toolbar{justify-content:center;gap:12px}.field{flex:1 1 165px;min-width:0}.field select,.field input{width:100%;min-width:0}.result-count{margin:0;width:100%;text-align:center;padding:0 0 4px}.position-key,.ranking-principle{text-align:center}.ranking-principle{margin-left:auto;margin-right:auto}.approach>div:first-child{text-align:center}.coverage .section-top{text-align:center}.state-grid>a,.state-grid>div{align-items:center;text-align:center}.report-hero{text-align:center;padding-top:58px;padding-bottom:48px}.report-hero h1{font-size:clamp(46px,12vw,72px);overflow-wrap:anywhere}.report-nav{justify-content:center}.report-grid{padding-top:38px}.report-stats strong{font-size:clamp(29px,9vw,42px)}footer{text-align:center}}
@media(min-width:380px) and (max-width:700px){.toolbar .field{flex-basis:calc(50% - 6px)}}

.filter-button{min-height:44px;padding:9px 22px;background:var(--blue);color:#fff;border:1px solid var(--blue);font-weight:700;cursor:pointer}.filter-button:hover{background:var(--ink)}.filter-button:focus-visible{outline:3px solid var(--red);outline-offset:3px}.result-count{display:none}.js-enabled .result-count{display:block}
.players-section:has(#state option[value="TN"]:checked) .player-card:not([data-state="TN"]){display:none}
.players-section:has(#state option[value="FL"]:checked) .player-card:not([data-state="FL"]){display:none}
.players-section:has(#state option[value="GA"]:checked) .player-card:not([data-state="GA"]){display:none}
.players-section:has(#state option[value="NC"]:checked) .player-card:not([data-state="NC"]){display:none}
.players-section:has(#state option[value="SC"]:checked) .player-card:not([data-state="SC"]){display:none}
.players-section:has(#state option[value="AL"]:checked) .player-card:not([data-state="AL"]){display:none}
.players-section:has(#state option[value="AR"]:checked) .player-card:not([data-state="AR"]){display:none}
.players-section:has(#state option[value="KY"]:checked) .player-card:not([data-state="KY"]){display:none}
.players-section:has(#group option[value="16U"]:checked) .player-card:not([data-group="16U"]){display:none}
.players-section:has(#group option[value="18U"]:checked) .player-card:not([data-group="18U"]){display:none}
.players-section:has(#position option[value="F"]:checked) .player-card:not([data-position="F"]){display:none}
.players-section:has(#position option[value="D"]:checked) .player-card:not([data-position="D"]){display:none}
.players-section:has(#position option[value="G"]:checked) .player-card:not([data-position="G"]){display:none}
@media(max-width:700px){.filter-button{width:100%}}

/* In position views, promote the position rank and retain the overall rank below. */
.card-top .position-rank-number{display:none;font:400 42px/.9 Georgia,serif;letter-spacing:-.06em;color:var(--blue);margin-right:auto}
.position-filter-context{display:none;font:700 12px/1.5 'Libre Franklin',sans-serif;letter-spacing:.025em;color:var(--blue);margin:-2px 0 10px}
.players-section:has(#position option:not([value="all"]):checked) .player-card .rank-number,.players-section:has(#position option:not([value="all"]):checked) .player-card .rank-context{display:none}
.players-section:has(#position option:not([value="all"]):checked) .player-card .position-rank-number{display:block}
.players-section:has(#position option:not([value="all"]):checked) .player-card .position-filter-context{display:block}

/* Age-only and combined age-position views have their own fixed ranks. */
.card-top .age-rank-number,.card-top .age-position-rank-number{display:none;font:400 42px/.9 Georgia,serif;letter-spacing:-.06em;color:var(--blue);margin-right:auto}
.age-filter-context,.age-position-filter-context{display:none;font:700 12px/1.5 'Libre Franklin',sans-serif;letter-spacing:.025em;color:var(--blue);margin:-2px 0 10px}
.players-section:has(#group option:not([value="all"]):checked) .player-card .rank-number,.players-section:has(#group option:not([value="all"]):checked) .player-card .rank-context,.players-section:has(#group option:not([value="all"]):checked) .player-card .position-rank-number,.players-section:has(#group option:not([value="all"]):checked) .player-card .position-filter-context{display:none}
.players-section:has(#group option:not([value="all"]):checked) .player-card .age-rank-number,.players-section:has(#group option:not([value="all"]):checked) .player-card .age-filter-context{display:block}
.players-section:has(#group option:not([value="all"]):checked):has(#position option:not([value="all"]):checked) .player-card .age-rank-number,.players-section:has(#group option:not([value="all"]):checked):has(#position option:not([value="all"]):checked) .player-card .age-filter-context{display:none}
.players-section:has(#group option:not([value="all"]):checked):has(#position option:not([value="all"]):checked) .player-card .age-position-rank-number,.players-section:has(#group option:not([value="all"]):checked):has(#position option:not([value="all"]):checked) .player-card .age-position-filter-context{display:block}
footer{flex-wrap:wrap;align-items:center}
footer .footer-contact{color:var(--blue);text-decoration:none;overflow-wrap:anywhere}
footer .footer-contact:hover,footer .footer-contact:focus-visible{text-decoration:underline}
@media(max-width:700px){footer{justify-content:center;gap:10px 20px}}

/* Clearly mark the players who have a detailed scouting report. */
.player-card h3 .player-name-link{color:inherit;text-decoration:none}
.player-card h3 .player-name-link:hover,.player-card h3 .player-name-link:focus-visible{color:var(--blue);text-decoration:underline;text-underline-offset:4px}
.player-card .source{display:inline-flex;align-items:center;min-height:44px;padding:10px 14px;border:1px solid var(--blue);border-radius:3px;color:var(--blue);font-size:13px;line-height:1.2;text-decoration:none;margin-top:auto}
.player-card .source:hover,.player-card .source:focus-visible{background:var(--blue);color:#fff;text-decoration:none}

.hero-search{display:inline-flex;align-items:center;gap:10px;text-decoration:none;margin-top:6px}.hero-search:hover,.hero-search:focus-visible{color:#fff;text-decoration:none}

/* Keep the state action in typographic text on iOS, where the diagonal arrow is an emoji. */
.state-grid a small{font-size:0}
.state-grid a small::after{content:"View ranked players →";font:700 12px/1.4 Arial,sans-serif;color:var(--blue)}
@media(max-width:700px){
  .approach h2{font-size:clamp(40px,10vw,52px)}
  .approach-content>p:first-child{font-size:20px;line-height:1.45}
}

.state-grid a.unrepresented small{font-size:12px;color:var(--muted)}.state-grid a.unrepresented small::after{content:none}

.report-hero>.section-index{font-size:15px;line-height:1.35}.report-hero .report-rank{font:700 clamp(17px,2vw,22px)/1.4 'Libre Franklin',Arial,sans-serif;color:var(--ink);margin:0 0 12px;letter-spacing:.01em}.report-hero .report-rank + p{margin:0;color:var(--muted)}@media(max-width:700px){.report-hero .report-rank{font-size:18px}}



/* Reviewed mobile layout: prominent identity, stacked filters and readable reports. */
@media(max-width:700px){
 .site-header{padding:22px 20px 16px;min-height:0;text-align:center}
 .site-header .identity img{width:100%;max-width:420px;height:auto}
 .site-header nav{margin-top:16px;justify-content:space-between;gap:10px;font-size:14px}
 .site-header nav a{display:flex;align-items:center;min-height:44px}
 .masthead{padding:0 22px}
 .masthead-grid{padding:38px 0 34px;gap:24px}
 .masthead h1{font-size:52px;line-height:1.04;margin:4px 0 20px}
 .tagline{font-size:18px;line-height:1.5}
 .masthead-side{padding-top:22px}
 .notice{margin:24px 22px;padding:20px;display:block}
 .notice strong{font-size:16px}
 .notice p{font-size:15px;line-height:1.55}
 .players-section,.approach,.coverage{padding:42px 22px}
 .section-top{margin-bottom:28px}
 .section-top h2{font-size:42px;line-height:1.08}
 .section-top>p{font-size:15px;line-height:1.55}
 .toolbar{display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch;gap:16px;margin-bottom:20px}
 .toolbar .field{width:100%;min-width:0;gap:7px}
 .field select,.field input{min-height:50px;width:100%;font-size:16px;border-radius:4px;padding:12px}
 .filter-button{min-height:50px;width:100%;border-radius:4px;font-size:16px}
 .result-count{width:100%;margin:0;padding:0;text-align:left}
 .position-key,.ranking-principle{text-align:left;font-size:13px;line-height:1.55}
 .player-grid{gap:16px}
 .player-card{padding:22px;min-height:0}
 .card-top{align-items:start;letter-spacing:.04em;gap:10px}
 .card-top .rank-number,.card-top .position-rank-number,.card-top .age-rank-number,.card-top .age-position-rank-number{font-size:38px;line-height:1.05;letter-spacing:-.04em}
 .card-top .rank-number::after{content:'OVERALL';display:block;font:700 10px/1.3 Arial,sans-serif;letter-spacing:.1em;margin-top:5px;color:#65717c}
 .card-top .position-rank-number::after{content:'POSITION RANK';display:block;font:700 10px/1.3 Arial,sans-serif;letter-spacing:.05em;margin-top:5px;color:#65717c}
 .card-top .age-rank-number::after{content:'AGE RANK';display:block;font:700 10px/1.3 Arial,sans-serif;letter-spacing:.05em;margin-top:5px;color:#65717c}
 .card-top .age-position-rank-number::after{content:'AGE / POSITION';display:block;font:700 10px/1.3 Arial,sans-serif;letter-spacing:.05em;margin-top:5px;color:#65717c}
 .card-top span{font-size:11px;line-height:1.5;padding-top:5px}
 .player-card h3{font-size:31px;margin:20px 0 10px}
 .rank-context{margin-bottom:10px}
 .position-filter-context,.age-filter-context,.age-position-filter-context{margin:0 0 10px;font-size:13px;line-height:1.5}
 .player-card .evidence-line{font-size:15px;line-height:1.55;margin:0 0 20px}
 .player-card .source{width:100%;justify-content:center;min-height:48px;font-size:14px}
 .report-hero{padding:38px 22px 30px}
 .report-hero>.section-index{font-size:15px;letter-spacing:.075em;line-height:1.45}
 .report-hero h1{font-size:52px;line-height:1.08;margin:16px 0}
 .report-hero .report-rank{font-size:19px;margin:0 0 14px}
 .report-hero .report-rank+p{font-size:16px;line-height:1.55}
 .report-grid{padding:28px 22px 50px;gap:28px}
 .report-nav{display:grid;grid-template-columns:1fr 1fr;gap:8px 20px;position:static}
 .report-nav a{font-size:13px;min-height:40px;padding:8px 0}
 .report-body h2{font-size:31px;line-height:1.18;margin:14px 0 18px}
 .report-body p{font-size:16px;line-height:1.65}
 .report-body section{padding-top:24px;margin-bottom:32px}
}

.ranking-principle{border-top:1px solid var(--line);padding-top:22px;margin-top:30px;margin-bottom:0;max-width:100%;}

/* Rank labels are real card text on every screen size. */
.card-top .rank-number::after,.card-top .position-rank-number::after,.card-top .age-rank-number::after,.card-top .age-position-rank-number::after{content:none}
.card-top strong>.rank-label{display:block;font:700 11px/1.35 Arial,sans-serif;letter-spacing:.035em;text-transform:uppercase;margin:5px 0 0;padding:0;color:var(--muted);white-space:normal;max-width:110px}

/* Readable ranking context beneath player names on all screen sizes. */
.player-card .rank-context,.player-card .position-filter-context,.player-card .age-filter-context,.player-card .age-position-filter-context{font-size:15px;font-weight:700;line-height:1.5;letter-spacing:0}

/* Skater and position ranks stack on phones and stay inline on desktop. */
.player-card .rank-context .skater-rank-line,.player-card .rank-context .skater-position-line{display:inline}
@media(max-width:700px){.player-card .rank-context .skater-rank-line,.player-card .rank-context .skater-position-line{display:block}.player-card .rank-context .rank-separator{display:none}.player-card .rank-context .skater-position-line{margin-top:3px}}

/* Keep the homepage tagline balanced without an isolated final word. */
.masthead .tagline-first,.masthead .tagline-second{display:inline}
@media(max-width:700px){.masthead .tagline{font-size:clamp(17px,4.6vw,20px);line-height:1.5}.masthead .tagline-first,.masthead .tagline-second{display:block;white-space:nowrap}}

/* Two balanced report-heading lines on phones, one line on desktop. */
.report-hero>.section-index .report-heading-region,.report-hero>.section-index .report-heading-board{display:inline}
@media(max-width:700px){.report-hero>.section-index{font-size:15px;line-height:1.4;letter-spacing:.075em;text-align:center}.report-hero>.section-index .report-heading-region,.report-hero>.section-index .report-heading-board{display:block}.report-hero>.section-index .report-heading-separator{display:none}.report-hero>.section-index .report-heading-board{margin-top:6px}}

/* Keep each team's name above age/tier and state on phones, without changing type size. */
.report-team .report-team-name,.report-team .report-team-details{display:inline}
@media(max-width:700px){.report-team .report-team-name,.report-team .report-team-details{display:block}.report-team .report-team-separator{display:none}.report-team .report-team-details{margin-top:4px}}

/* Phone report refinements; preserve approved typography sizes. */
@media(max-width:700px){
 .report-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px;align-items:stretch}
 .report-nav a{display:flex;align-items:center;min-height:48px;padding:10px 0;line-height:1.45;text-align:left;min-width:0;overflow-wrap:break-word}
 .report-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0}
 .report-stats>div{min-width:0;padding:18px 14px;border-bottom:1px solid var(--line)}
 .report-stats>div:nth-child(even){border-right:0}
 .report-stats span{display:block;overflow-wrap:break-word;line-height:1.5;margin-top:5px}
 .report-body{min-width:0;text-align:left}
 .report-body h2{max-width:100%;text-wrap:balance;overflow-wrap:break-word;margin-top:14px;margin-bottom:20px}
 .report-body p{text-align:left}
}

/* Defined navigation bars, retaining existing type sizes and logo artwork. */
.site-header nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.site-header nav a{position:relative;display:flex;align-items:center;justify-content:center;min-height:50px;padding:10px 14px;text-align:center;color:var(--ink);text-decoration:none}
.site-header nav a:last-child{color:var(--ink)}
.site-header nav a+a::before{content:'';position:absolute;left:0;top:15px;bottom:15px;border-left:1px solid var(--line)}
.site-header nav a[aria-current="location"]{color:var(--blue)}
.site-header nav a[aria-current="location"]::after{content:'';position:absolute;left:18px;right:18px;bottom:-1px;height:2px;background:var(--blue)}
.report-nav{gap:0;border:1px solid var(--line)}
.report-nav a{position:relative;display:flex;align-items:center;justify-content:center;min-height:48px;padding:10px 12px;text-align:center;color:var(--ink);border-bottom:1px solid var(--line)}
.report-nav a:last-child{border-bottom:0}
.report-nav a[aria-current="location"]{color:var(--blue)}
.report-nav a[aria-current="location"]::after{content:'';position:absolute;left:12px;right:12px;bottom:0;height:2px;background:var(--blue)}
@media(max-width:700px){
 .site-header{padding-bottom:0;border-bottom:0}
 .site-header nav{width:100%;margin-top:22px;gap:0}
 .site-header nav a{padding:10px 3px}
 .report-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;align-items:stretch}
 .report-nav a:nth-child(odd){border-right:1px solid var(--line)}
 .report-nav a:nth-last-child(-n+2){border-bottom:0}
}

/* Each secondary rank has its own explicit label and number. */
.player-card .rank-detail{display:block}
.player-card .rank-detail+.rank-detail{margin-top:3px}

/* Combined forward and defense rankings, including age-specific skater views. */
.card-top .skater-rank-number,.card-top .age-skater-rank-number{display:none;font:400 42px/.9 Georgia,serif;letter-spacing:-.06em;color:var(--blue);margin-right:auto}
.player-card .skater-filter-context,.player-card .age-skater-filter-context{display:none;font-size:15px;font-weight:700;line-height:1.5;letter-spacing:0;color:var(--blue);margin:0 0 10px}
.players-section:has(#position option[value="S"]:checked) .player-card[data-position="G"]{display:none}
.players-section:has(#position option[value="S"]:checked) .player-card .position-rank-number,
.players-section:has(#position option[value="S"]:checked) .player-card .age-position-rank-number,
.players-section:has(#position option[value="S"]:checked) .player-card .position-filter-context,
.players-section:has(#position option[value="S"]:checked) .player-card .age-position-filter-context{display:none}
.players-section:has(#position option[value="S"]:checked) .player-card .skater-rank-number,
.players-section:has(#position option[value="S"]:checked) .player-card .skater-filter-context{display:block}
.players-section:has(#position option[value="S"]:checked):has(#group option:not([value="all"]):checked) .player-card .skater-rank-number,
.players-section:has(#position option[value="S"]:checked):has(#group option:not([value="all"]):checked) .player-card .skater-filter-context{display:none}
.players-section:has(#position option[value="S"]:checked):has(#group option:not([value="all"]):checked) .player-card .age-skater-rank-number,
.players-section:has(#position option[value="S"]:checked):has(#group option:not([value="all"]):checked) .player-card .age-skater-filter-context{display:block}
@media(max-width:700px){.card-top .skater-rank-number,.card-top .age-skater-rank-number{font-size:38px;line-height:1.05;letter-spacing:-.04em}}

/* Override combined age/position rules when the position choice is All skaters. */
.players-section:has(#position option[value="S"]:checked):has(#group option:not([value="all"]):checked) .player-card .age-position-rank-number,
.players-section:has(#position option[value="S"]:checked):has(#group option:not([value="all"]):checked) .player-card .age-position-filter-context{display:none}
