*,*::before,*::after{box-sizing:border-box}
:root{--brand:#5451e7;--brand-dark:#3d3ab0;--orange:#ff6b2b;--green:#268f56;--red:#c34c52;--ink:#1a1a2e;--muted:#626879;--bg:#f6f7ff;--line:rgba(84,81,231,.15);--white:#fff}
html{scroll-behavior:smooth}body{margin:0;font-family:Geologica,system-ui,sans-serif;color:var(--ink);background:var(--bg);line-height:1.55}a{color:inherit}.wrap{width:min(1160px,90vw);margin:auto}
nav{height:66px;background:rgba(255,255,255,.97);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}.nav-inner{height:100%;width:100%;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-weight:900;white-space:nowrap}.brand img{width:42px;height:42px}.brand small{display:block;color:var(--brand);font-size:.58rem;letter-spacing:.14em}.nav-links{display:flex;align-items:center;gap:17px;font-size:.8rem;font-weight:650}.nav-links a{text-decoration:none}.nav-links a:hover,.nav-links a.active{color:var(--brand)}.mobile-menu{display:none;position:relative}.mobile-menu>summary{list-style:none;font-size:1.5rem;cursor:pointer}.mobile-menu>summary::-webkit-details-marker{display:none}.mobile-panel{position:absolute;right:0;top:42px;width:min(330px,88vw);background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px;box-shadow:0 18px 50px rgba(28,29,68,.18)}.mobile-panel a{display:block;padding:11px;text-decoration:none;border-bottom:1px solid var(--line);font-size:.86rem}.mobile-panel a:last-child{border:0}.mobile-panel a.active{color:var(--brand);font-weight:750}
.ratings-hero{position:relative;overflow:hidden;padding:88px 0 92px;background:linear-gradient(135deg,#efefff 0%,#e9f4ff 52%,#fff2eb 100%)}.hero-pattern{position:absolute;inset:0;opacity:.75;background-image:linear-gradient(rgba(84,81,231,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(84,81,231,.04) 1px,transparent 1px);background-size:38px 38px;mask-image:linear-gradient(to right,#000,transparent 80%)}.hero-content{position:relative}.eyebrow{font-size:.72rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:var(--brand)}h1{max-width:820px;margin:12px 0 20px;font-size:clamp(2.55rem,6vw,4.7rem);line-height:1.01;letter-spacing:-.052em;font-weight:900}.hero-content>p{max-width:720px;margin:0;color:var(--muted);font-size:1.03rem;line-height:1.72}.snapshot-line{display:inline-flex;align-items:center;gap:9px;margin-top:28px;padding:9px 14px;border:1px solid rgba(84,81,231,.14);border-radius:999px;background:rgba(255,255,255,.72);font-size:.78rem;font-weight:650;color:#45485b}.live-dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 5px rgba(38,143,86,.1)}
.ratings-body{padding:0 0 88px}.toolbar{position:relative;z-index:3;display:grid;grid-template-columns:auto auto 1fr;align-items:end;gap:20px 22px;margin-top:-36px;padding:22px 24px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 18px 55px rgba(52,54,110,.12)}fieldset{margin:0;padding:0;border:0}legend,.select-control{display:block;font-size:.69rem;line-height:1.2;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.segmented{display:inline-flex;gap:4px;margin-top:9px;padding:5px;border-radius:14px;background:var(--bg);border:1px solid var(--line)}.segmented a{display:block;min-width:104px;padding:9px 18px;border-radius:10px;background:transparent;color:var(--muted);font:700 .82rem Geologica;text-align:center;text-decoration:none;cursor:pointer}.segmented a[aria-current=page]{background:var(--brand);color:#fff;box-shadow:0 6px 16px rgba(84,81,231,.26)}.segmented a:hover:not([aria-current=page]){background:rgba(84,81,231,.08);color:var(--brand)}select{display:block;width:100%;min-width:0;margin-top:9px;padding:11px 38px 11px 14px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--ink);font:650 .82rem Geologica;cursor:pointer;transition:border-color .15s}select:hover{border-color:rgba(84,81,231,.4)}.toolbar-selects{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:14px 18px}.select-control{min-width:0}.section-heading>div.juniors-controls{display:flex;align-items:end;gap:20px}.younger-toggle{display:flex;align-items:center;gap:7px;padding-bottom:12px;color:var(--ink);font:700 .82rem Geologica;cursor:pointer;white-space:nowrap}.younger-toggle input{width:17px;height:17px;accent-color:var(--brand);cursor:pointer}select:focus-visible,.segmented a:focus-visible,.error-card button:focus-visible{outline:3px solid rgba(84,81,231,.24);outline-offset:2px}
.sticky-context{position:sticky;top:66px;z-index:40;margin:0 calc(50% - 50vw);padding:0 calc(50vw - 50%);background:#fff;border-bottom:1px solid var(--line);box-shadow:0 8px 22px rgba(28,29,68,.07);opacity:0;transform:translateY(-6px);pointer-events:none;transition:opacity .18s,transform .18s}.sticky-context.is-pinned{opacity:1;transform:none;pointer-events:auto}.sticky-inner{display:flex;align-items:center;gap:10px;height:46px;overflow-x:auto;white-space:nowrap}.sticky-scope{font-size:.86rem;font-weight:800;letter-spacing:-.01em;color:var(--ink)}.sticky-tag{padding:4px 10px;border-radius:999px;background:var(--bg);border:1px solid var(--line);font-size:.66rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.sticky-jump{margin-left:auto;padding-left:14px;color:var(--brand);font-size:.74rem;font-weight:750;text-decoration:none}.sticky-jump:hover{text-decoration:underline}
.comparison-note{margin-top:18px;padding:12px 16px;border:1px solid #cfe9db;border-radius:11px;background:#f1faf5;color:#35644a;font-size:.78rem}.error-card{margin-top:22px;padding:20px;border:1px solid #ffd1ce;border-radius:14px;background:#fff4f2;color:#8b302c}.error-card strong,.error-card span{display:block}.error-card span{margin-top:4px;font-size:.84rem}.error-card button{margin-top:12px;padding:8px 13px;border:0;border-radius:8px;background:#8b302c;color:#fff;font:700 .78rem Geologica;cursor:pointer}
.adult-section,.juniors-section{padding-top:72px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:24px}.section-heading>div{display:flex;align-items:baseline;gap:15px}.section-number{color:var(--brand);font-size:.72rem;font-weight:850;letter-spacing:.12em}.section-heading h2{margin:0;font-size:clamp(1.85rem,3.4vw,2.75rem);line-height:1.08;letter-spacing:-.035em}.section-heading>p{margin:0;color:var(--muted);font-size:.82rem}.adult-grid,.junior-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.rating-card{overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 12px 38px rgba(52,54,110,.07)}.card-heading{display:flex;align-items:center;justify-content:space-between;padding:22px 24px 18px;border-bottom:1px solid var(--line)}.card-kicker{display:block;margin-bottom:2px;color:var(--brand);font-size:.65rem;font-weight:850;letter-spacing:.14em;text-transform:uppercase}.card-heading h3{margin:0;font-size:1.3rem;letter-spacing:-.02em}.piece-mark{color:rgba(84,81,231,.16);font-size:2.4rem;line-height:1}.table-wrap{overflow-x:auto}
.rating-table{width:100%;border-collapse:collapse}.rating-table th{padding:11px 12px;background:#fafaff;color:#838695;font-size:.61rem;font-weight:800;letter-spacing:.08em;text-align:left;text-transform:uppercase}.rating-table th:first-child,.rating-table td:first-child{width:48px;padding-left:20px;text-align:center}.rating-table th.rating-col,.rating-table td.rating-col{width:74px;text-align:right}.rating-table th.change-col,.rating-table td.change-col{width:96px;padding-right:20px;text-align:right}.rating-table td{padding:13px 12px;border-top:1px solid rgba(84,81,231,.09);vertical-align:middle}.rating-table tbody tr:first-child td{border-top:0}.rating-table tbody tr:nth-child(-n+3) .place{color:var(--brand);background:#efefff}.place{display:inline-grid;width:27px;height:27px;place-items:center;border-radius:8px;font-size:.76rem;font-weight:850}.player-link{display:block;color:var(--ink);font-size:.83rem;font-weight:750;line-height:1.25;text-decoration:none}.player-link:hover{color:var(--brand)}.player-meta{display:block;margin-top:3px;color:#8a8d9d;font-size:.66rem}.rating-value{font-size:.88rem;font-variant-numeric:tabular-nums;font-weight:850}.movement{display:inline-flex;align-items:center;justify-content:flex-end;gap:4px;font-size:.7rem;font-weight:800;white-space:nowrap}.movement.up{color:var(--green)}.movement.down{color:var(--red)}.movement.new{padding:4px 7px;border-radius:7px;background:#eef0ff;color:var(--brand)}.movement.same{color:#9a9dab}.rating-change{display:block;margin-top:2px;color:#8a8d9d;font-size:.6rem;font-weight:650}.rating-change.positive{color:var(--green)}.rating-change.negative{color:var(--red)}.empty-table{padding:48px 24px;text-align:center;color:var(--muted);font-size:.84rem}
.juniors-heading{align-items:end;margin-bottom:10px}.year-select{min-width:130px;margin-top:0}.section-intro{margin:0 0 22px;color:var(--muted);font-size:.87rem}.junior-card-heading{background:linear-gradient(100deg,#fff,#f5f4ff)}.junior-card .rating-table th:first-child,.junior-card .rating-table td:first-child{width:60px}.junior-card .player-link{font-size:.88rem}
.breadcrumbs{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin:-2px 0 4px;padding:0 0 15px;border-bottom:1px solid var(--line);font-size:.74rem;color:var(--muted)}.breadcrumbs a{color:var(--brand);font-weight:650;text-decoration:none}.breadcrumbs a:hover{text-decoration:underline}.breadcrumbs .crumb-sep{color:rgba(84,81,231,.4)}
.system-control .segmented a{min-width:84px}
.other-regions{margin:44px 0 0;color:var(--muted);font-size:.8rem}.other-regions a{color:var(--brand);font-weight:700;text-decoration:none}.other-regions a:hover{text-decoration:underline}
.method-note{display:grid;grid-template-columns:auto 1fr;gap:16px;margin-top:58px;padding:24px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.62)}.method-icon{display:grid;width:31px;height:31px;place-items:center;border-radius:50%;background:var(--brand);color:#fff;font:800 .82rem Georgia,serif}.method-note h2{margin:2px 0 6px;font-size:.92rem}.method-note p{margin:0 0 9px;color:var(--muted);font-size:.76rem;line-height:1.65}.method-note p:last-child{margin-bottom:0}.method-note strong{color:var(--ink);font-weight:750}.method-note a{display:inline-block;margin-top:9px;color:var(--brand);font-size:.74rem;font-weight:750;text-decoration:none}.method-note p a{display:inline;margin:0;font-size:inherit;font-weight:750;text-decoration:underline}
.regions-section{padding-top:72px}
.region-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding-top:48px}.region-card{display:block;padding:26px 24px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 12px 38px rgba(52,54,110,.07);text-decoration:none}.region-card:hover{border-color:var(--brand)}.region-card-name{display:block;font-size:1.05rem;font-weight:800;letter-spacing:-.01em}.region-card-note{display:block;margin-top:6px;color:var(--muted);font-size:.74rem}
.skeleton-list{height:536px;background:repeating-linear-gradient(to bottom,transparent 0,transparent 51px,rgba(84,81,231,.07) 51px,rgba(84,81,231,.07) 52px),linear-gradient(90deg,transparent 0,rgba(84,81,231,.025) 50%,transparent 100%);animation:shimmer 1.6s ease-in-out infinite}@keyframes shimmer{50%{opacity:.45}}
footer{background:#0f0f1e;color:rgba(255,255,255,.72);padding:48px 5% 0}.footer-grid,.footer-bottom{max-width:1160px;margin:auto}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;margin-bottom:34px}.footer-brand-name{font-weight:850;color:#fff}.footer-brand p{font-size:.84rem;color:rgba(255,255,255,.4)}.footer-col h4{font-size:.68rem;letter-spacing:.15em;text-transform:uppercase;color:#aaa8ff;margin:0 0 15px}.footer-links{list-style:none;padding:0;margin:0}.footer-links li{margin:9px 0}.footer-links a{font-size:.82rem;color:rgba(255,255,255,.46);text-decoration:none}.footer-links a:hover{color:#fff}.footer-bottom{border-top:1px solid rgba(255,255,255,.08);padding:19px 0;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:.73rem;color:rgba(255,255,255,.28)}
@media(max-width:1180px){.nav-links{display:none}.mobile-menu{display:block}.footer-grid{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}}
@media(max-width:760px){.ratings-hero{padding:66px 0 76px}h1{font-size:2.65rem}.toolbar{grid-template-columns:1fr;align-items:stretch;gap:18px}.discipline-control,.select-control{width:100%}.toolbar-selects{grid-template-columns:1fr;gap:14px}.segmented{overflow-x:auto}.section-heading>div.juniors-controls{flex-direction:column;align-items:flex-start;gap:8px}.younger-toggle{padding-bottom:0}.segmented a{flex:1;min-width:0}select{width:100%}.adult-grid,.junior-grid,.region-grid{grid-template-columns:1fr}.section-heading{align-items:flex-start;flex-direction:column;gap:8px}.juniors-heading{gap:18px}.footer-grid{grid-template-columns:1fr}.footer-brand{grid-column:auto}}
@media(max-width:760px){.regions-section{padding-top:56px}}
@media(max-width:520px){.sticky-jump{display:none}.sticky-inner{height:42px}.brand span{display:none}.nav-inner{padding:0 16px}.wrap{width:min(100% - 28px,1160px)}.ratings-hero{padding-top:54px}h1{font-size:2.25rem}.hero-content>p{font-size:.9rem}.toolbar{margin-top:-30px;padding:18px 16px;border-radius:15px}.adult-section,.juniors-section{padding-top:56px}.section-heading>div{gap:10px}.section-heading h2{font-size:1.8rem}.card-heading{padding:19px 17px 15px}.rating-table th{padding:10px 8px}.rating-table th:first-child,.rating-table td:first-child{width:40px;padding-left:10px}.rating-table td{padding:12px 8px}.rating-table th.change-col,.rating-table td.change-col{width:82px;padding-right:10px}.player-link{font-size:.78rem}.player-meta{font-size:.61rem}.movement{font-size:.65rem}.method-note{grid-template-columns:1fr;padding:19px}.method-icon{width:28px;height:28px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.skeleton-list{animation:none}}

.pfo-hero h1 span{color:var(--brand)}.pfo-toolbar{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:20px 22px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 18px 55px rgba(52,54,110,.12)}.pfo-toolbar-label{display:block;color:var(--muted);font-size:.69rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.pfo-toolbar .segmented{margin-top:9px}.pfo-back-link{color:var(--brand);font-size:.78rem;font-weight:750;text-decoration:none;white-space:nowrap}.pfo-back-link:hover{text-decoration:underline}.pfo-section{padding-top:72px}.pfo-intro{max-width:760px;margin:-4px 0 26px;color:var(--muted);font-size:.87rem}.pfo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.pfo-region-card{padding:22px 22px 20px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 12px 38px rgba(52,54,110,.07);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.pfo-region-card:hover{border-color:rgba(84,81,231,.42);box-shadow:0 18px 44px rgba(52,54,110,.12);transform:translateY(-2px)}.pfo-card-top{display:flex;align-items:center;justify-content:space-between}.pfo-card-index{color:var(--brand);font-size:.67rem;font-weight:850;letter-spacing:.12em}.pfo-card-arrow{color:rgba(84,81,231,.3);font-size:1.5rem;line-height:1}.pfo-region-card h3{margin:12px 0 5px;font-size:1.02rem;line-height:1.25;letter-spacing:-.018em}.pfo-region-card p{margin:0;color:var(--muted);font-size:.7rem;line-height:1.45}.pfo-card-links{display:flex;flex-wrap:wrap;gap:7px;margin-top:19px}.pfo-card-link{padding:7px 9px;border:1px solid var(--line);border-radius:8px;color:var(--muted);font-size:.67rem;font-weight:750;text-decoration:none}.pfo-card-link:hover,.pfo-card-link[aria-current=page]{border-color:var(--brand);background:#efefff;color:var(--brand)}.regions-hub-link{color:var(--brand);font-size:.76rem;font-weight:750;text-decoration:none;white-space:nowrap}.regions-hub-link:hover{text-decoration:underline}
@media(max-width:900px){.pfo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.pfo-toolbar{align-items:stretch;flex-direction:column;gap:16px}.pfo-back-link{align-self:flex-start}.pfo-section{padding-top:56px}}
@media(max-width:520px){.pfo-grid{grid-template-columns:1fr}.pfo-region-card{padding:19px}.pfo-card-links{gap:6px}}
