:root{--bg:#0d1010;--panel:#1a1e1c;--ink:#f0f1e7;--muted:#8a928b;--lime:#d2f258;--line:#333a35;--cond:"Barlow Condensed","Arial Narrow",sans-serif;--sans:"DM Sans",Arial,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.5}
button,a{font:inherit}a{color:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,.player-card:focus-visible{outline:3px solid var(--lime);outline-offset:4px}
.grain{position:fixed;inset:0;pointer-events:none;opacity:.09;z-index:20;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.45'/%3E%3C/svg%3E")}
.topbar{height:86px;display:flex;align-items:center;gap:60px;border-bottom:1px solid var(--line);padding:0 max(5.5vw,30px)}
.brand{text-decoration:none;display:flex;align-items:center;gap:12px;font:800 16px/.89 var(--cond);letter-spacing:.025em}
.brand-mark{height:35px;width:35px;background:var(--lime);color:#11170d;display:grid;place-items:center;font:900 24px/1 var(--cond);position:relative}.brand-mark span{font:700 10px var(--sans);position:absolute;right:3px;top:0}
.brand-period{color:var(--lime)}
.navigation{display:flex;align-items:center;gap:35px;height:100%;font-size:11px;text-transform:uppercase;letter-spacing:.13em;font-weight:700}
.navigation a,.navigation button{height:100%;border:0;background:none;text-decoration:none;color:#939b91;position:relative;display:flex;align-items:center;padding:0}
.navigation .active{color:#f5f7ed}.navigation .active:after{content:"";height:2px;position:absolute;bottom:-1px;left:0;right:0;background:var(--lime)}
.header-season{margin-left:auto;font-size:10px;font-weight:700;letter-spacing:.12em;color:#b9c1b5;white-space:nowrap}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--lime);margin-right:9px;vertical-align:2px}
.container{max-width:1350px;margin:auto;padding:0 28px}.context-line{display:flex;justify-content:space-between;padding:24px 0;color:#818a81;font-size:9px;letter-spacing:.16em;font-weight:700}.context-icon{color:var(--lime);font-size:14px;vertical-align:-1px}.line-number{color:#737b73}
.main-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(365px,520px);gap:10%;align-items:center;padding:10px 4% 66px 3%}
.intro{padding:24px 0 20px}.eyebrow{color:var(--lime);letter-spacing:.17em;font-size:10px;font-weight:700}.tiny-square{height:6px;width:6px;background:var(--lime);display:inline-block;margin:0 7px 2px 0}
h1{font:900 clamp(80px,9.5vw,145px)/.79 var(--cond);letter-spacing:-.035em;margin:32px 0 28px;color:#f3f4e9}h1 span{color:#d5dbc9}h1 i{font-style:normal;color:var(--lime)}
.intro-text{font:500 clamp(16px,1.4vw,20px)/1.4 var(--sans);color:#c3cbc0;margin:0 0 44px}
.formula{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:17px 0;display:flex;flex-wrap:wrap;align-items:center;gap:8px 26px;max-width:490px;font:700 14px var(--cond);letter-spacing:.08em}
.formula-index,.league-label,.strip-label{color:#818a80;font:700 9px var(--sans);letter-spacing:.16em}.formula b{color:var(--lime);font-size:17px}.formula p{width:100%;margin:0;color:#929b90;font:400 11px var(--sans);letter-spacing:0}
.league-block{max-width:490px;padding:22px 0}.league-label{display:flex;justify-content:space-between}.league-label span{color:var(--lime)}
.league-list{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.league-list span{border:1px solid #384038;color:#aeb9aa;padding:7px 9px;text-transform:uppercase;letter-spacing:.07em;font-weight:700;font-size:9px}
.text-button{border:0;padding:4px 0;background:none;color:var(--lime);font-size:10px;font-weight:700;letter-spacing:.1em}.text-button span{font-size:16px;margin-left:10px}
.card-section{max-width:520px;width:100%;margin:auto}.card-caption{display:flex;justify-content:space-between;margin:0 2px 12px;color:#b7c1b0;font-size:10px;font-weight:700;letter-spacing:.14em}.card-caption>span:last-child{color:var(--lime)}.live-cross{font-size:14px;color:var(--lime)}
.player-card{height:565px;position:relative;overflow:hidden;border:1px solid #4a5848;background:linear-gradient(155deg,#344238 0%,#1d2922 40%,#141c18 100%);box-shadow:0 25px 75px #0009;touch-action:pan-y;user-select:none}
.card-grid{position:absolute;inset:0;opacity:.35;background:linear-gradient(90deg,transparent 49.8%,#8b9d8530 50%,transparent 50.2%),linear-gradient(#a4b4a111 1px,transparent 1px),linear-gradient(90deg,#a4b4a111 1px,transparent 1px);background-size:auto,44px 44px,44px 44px}
.player-card:after{content:"";position:absolute;bottom:0;left:0;right:0;height:36%;background:linear-gradient(transparent,#101813 58%);pointer-events:none}
.card-top{position:absolute;top:21px;left:26px;right:25px;display:flex;justify-content:space-between;align-items:start;z-index:4}.card-kicker{font:700 9px var(--sans);letter-spacing:.2em;color:#c9d8ba}.rank-number{font:800 35px/.98 var(--cond);letter-spacing:-.025em;color:#f7f8e9}
.rating-box{border:1px solid #e0f3b096;padding:6px 9px 7px;min-width:70px;flex-shrink:0;text-align:center;background:#111b1299}.rating{font:900 37px/.94 var(--cond);color:var(--lime)}.rating-box span{font-size:7px;letter-spacing:.11em;font-weight:700;color:#dee8c8}
.image-stage{position:absolute;inset:0;overflow:hidden}.image-ring{position:absolute;border:1px solid #c4d69d32;border-radius:50%;width:360px;height:360px;left:50%;top:15%;transform:translateX(-50%)}.image-ring-two{width:450px;height:450px;top:7%;border-color:#b5cba41a}
.club-watermark{position:absolute;left:50%;top:22%;width:200px;height:200px;object-fit:contain;transform:translateX(-50%);opacity:.12;filter:grayscale(1)}
.player-monogram{position:absolute;left:50%;top:24%;transform:translateX(-50%);font:900 175px/.9 var(--cond);letter-spacing:-.08em;color:#dfe8c2;opacity:.15;text-transform:uppercase}
.player-photo{position:absolute;left:50%;bottom:107px;transform:translateX(-50%);height:365px;width:95%;object-fit:contain;object-position:bottom;filter:drop-shadow(0 4px 12px #0b180c);z-index:1}
.player-photo[hidden],.club-watermark[hidden]{display:none}
.league-tag{position:absolute;left:26px;bottom:216px;z-index:3;background:var(--lime);color:#172013;padding:5px 8px;font-size:9px;font-weight:700;letter-spacing:.11em;text-transform:uppercase}
.vertical-code{position:absolute;right:14px;top:140px;writing-mode:vertical-rl;font-size:8px;font-weight:700;letter-spacing:.2em;color:#c4d8ba8c}
.player-identity{position:absolute;bottom:100px;left:25px;right:25px;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:12px}.identity-copy{min-width:0}.player-name{font:800 clamp(30px,3.5vw,44px)/.9 var(--cond);letter-spacing:-.015em;text-transform:uppercase;max-width:100%;overflow-wrap:anywhere}.club-name{margin-top:10px;color:#c6d4bf;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.12em}.club-indicator{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--lime);margin-right:7px}
.card-stats{position:absolute;bottom:0;left:0;right:0;height:80px;display:grid;grid-template-columns:1fr 1fr 1fr 1.3fr;border-top:1px solid #9caa9261;background:#111914e8;z-index:4}
.card-stats div{padding:13px 7px 12px 15px;border-right:1px solid #9caa9237}.card-stats div:last-child{border:0}.card-stats span{display:block;color:#97a692;font-size:8px;font-weight:700;letter-spacing:.13em}.card-stats strong{display:block;color:#f3f6e9;font:800 26px/1.1 var(--cond);margin-top:4px}.card-stats .rate-stat strong{color:var(--lime)}
.controls{display:flex;align-items:center;gap:17px;margin-top:18px}.round-button{border:1px solid #526051;color:var(--ink);background:none;border-radius:50%;height:43px;width:43px;flex:0 0 43px;font-size:20px;line-height:1}.round-button:disabled{opacity:.3;cursor:not-allowed}.next-button{color:#151a12;background:var(--lime);border-color:var(--lime)}
.progress-wrap{flex:1}.progress-copy{display:flex;justify-content:space-between;font-size:8px;font-weight:700;letter-spacing:.13em;color:#9ba598}.progress-rail{height:2px;background:#414b41;margin-top:10px}.progress-rail div{height:100%;width:4%;background:var(--lime);transition:width .25s}
.card-actions{display:flex;justify-content:space-between;padding:16px 2px 0;color:#8e9a8b;font-size:9px;letter-spacing:.1em;font-weight:700}.card-actions a{color:#c6d3bf;text-decoration:none}
.notice{border:1px solid #5b653c;background:#222920;display:flex;gap:14px;padding:17px 20px;margin:0 0 68px}.notice-sign{display:grid;place-items:center;flex:0 0 24px;width:24px;height:24px;border-radius:50%;border:1px solid var(--lime);color:var(--lime);font-weight:700}.notice strong{color:var(--lime);font-size:10px;letter-spacing:.13em}.notice p{margin:4px 0 0;color:#c3ccbc;font-size:12px}.notice button{background:none;border:0;padding:0;color:var(--lime);text-decoration:underline}
.bottom-strip{border-top:1px solid var(--line);display:grid;grid-template-columns:1.05fr 1fr 1fr;gap:45px;padding:35px 0 70px}.bottom-strip h2{font:800 38px/.9 var(--cond);letter-spacing:-.01em;margin:13px 0}.bottom-strip h2 span,.dialog-head h2 span{color:var(--lime)}.strip-copy p,.data-tools p{margin:0 0 16px;color:#a8b0a5;font-size:12px;line-height:1.7}.outline-button{border:1px solid #5a6956;background:none;color:#e2ead9;font-size:9px;font-weight:700;letter-spacing:.1em;padding:11px 14px}.outline-button span{color:var(--lime);margin-left:16px}.data-tools .strip-label{display:block;margin-bottom:11px}.data-buttons{display:flex;align-items:center;gap:14px}.data-buttons a,.subtle-button{font-size:10px;color:#adb9aa;text-decoration:underline}.subtle-button{display:block;padding:10px 0 0;border:0;background:none}.data-tools #importMessage{display:block;color:var(--lime);font-size:11px;margin-top:10px}
footer{border-top:1px solid var(--line)}.footer-inner{max-width:1350px;padding:24px 28px;margin:auto;display:flex;justify-content:space-between;gap:15px;color:#828d80;font-size:9px;font-weight:700;letter-spacing:.12em}.footer-inner a{color:var(--lime);text-decoration:none}
dialog{border:1px solid #4a5647;background:#111713;color:#ecf1e5;width:min(680px,calc(100vw - 30px));max-height:min(83vh,900px);padding:0;box-shadow:0 25px 90px #000c}dialog::backdrop{background:#000c;backdrop-filter:blur(3px)}
.dialog-head{position:sticky;top:0;background:#111713;z-index:2;padding:26px 30px 20px;display:flex;justify-content:space-between;border-bottom:1px solid #344033}.dialog-head h2{font:800 42px/.9 var(--cond);margin:10px 0 0}.close-dialog{height:34px;width:34px;border:1px solid #4a5647;background:none;color:#f0f4eb;font-size:24px;line-height:1}
.dialog-body{padding:22px 30px 35px;color:#bcc7b9;font-size:13px;line-height:1.75}.dialog-body p{margin:0 0 16px}.dialog-body h3{font:700 19px var(--cond);color:#f0f3e8;text-transform:uppercase;margin:23px 0 7px}.method-formula{background:#253421;color:var(--lime);padding:20px;font:700 22px var(--cond);text-transform:uppercase}.log-entry{border-bottom:1px solid #364236;padding:5px 0 19px;margin-bottom:24px}.log-entry:last-child{border:0}.log-entry>span{color:var(--lime);font-size:9px;font-weight:700;letter-spacing:.15em}.log-entry h3{margin-top:8px}.source-links{display:flex;gap:15px;flex-wrap:wrap}.source-links a{color:var(--lime);font-size:11px}
.table-label,.ranking-row{display:grid;grid-template-columns:50px 1fr 90px;gap:8px;align-items:center}.table-label{padding:17px 30px 8px;color:#8f9b8d;font-size:9px;letter-spacing:.12em;font-weight:700}.table-label span:last-child{text-align:right}
.ranking-table{padding:0 30px 30px}.ranking-row{width:100%;text-align:left;border:0;border-bottom:1px solid #303c30;background:none;color:#edf1e5;padding:12px 0}.ranking-row:hover{color:var(--lime)}.ranking-row>span:first-child{font:800 20px var(--cond);color:var(--lime)}.ranking-row strong{display:block;font-weight:700;font-size:12px}.ranking-row small{display:block;color:#8e9b8e;font-size:10px}.ranking-row .row-rate{text-align:right;font:700 20px var(--cond)}
@media(max-width:900px){.main-grid{gap:5%;padding-left:0;padding-right:0;grid-template-columns:minmax(0,1fr) minmax(330px,440px)}h1{font-size:clamp(76px,10vw,108px)}.player-card{height:530px}.bottom-strip{gap:25px}.topbar{gap:35px}}
@media(max-width:680px){.topbar{height:72px;padding:0 20px;gap:20px}.brand{font-size:14px}.brand-mark{width:32px;height:32px}.navigation{gap:16px;margin-left:auto}.navigation a,.navigation button{font-size:9px}.navigation button[data-open=notesDialog]{display:none}.header-season{display:none}.container{padding:0 20px}.context-line{padding:20px 0}.line-number{display:none}.main-grid{display:flex;flex-direction:column;gap:25px;padding-bottom:40px}.intro{padding:12px 0 0;width:100%}h1{font-size:clamp(86px,21vw,125px);margin:23px 0 20px}.intro-text{margin-bottom:22px}.formula{padding:14px 0}.league-block{padding:16px 0}.table-open{margin-bottom:4px}.card-section{max-width:480px}.player-card{height:540px}.notice{margin-bottom:40px}.bottom-strip{grid-template-columns:1fr;gap:23px;padding:27px 0 50px}.bottom-strip h2{font-size:36px}.footer-inner{flex-wrap:wrap;padding:20px}.footer-inner span:nth-child(2){display:none}}
@media(max-width:390px){.navigation{gap:10px}.brand{gap:7px}.navigation a,.navigation button{font-size:8px}.player-card{height:495px}.player-photo{height:325px}.league-tag{bottom:210px}.player-name{font-size:30px}.card-stats div{padding-left:10px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}
.card-actions{gap:12px;flex-wrap:wrap}.card-actions button{border:0;padding:0;background:none;color:#d9eac9;font-size:9px;font-weight:700;letter-spacing:.08em}.card-credits{display:flex;gap:14px;flex-wrap:wrap;padding:9px 2px 0;color:#9eae9a;font-size:9px;letter-spacing:.06em;text-transform:uppercase}.card-credits a{text-decoration:none}.card-credits a:hover{text-decoration:underline}.breakdown-row{display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid #364236;padding:12px 0}.breakdown-row strong,.breakdown-row small{display:block}.breakdown-row strong{color:#f0f3e8}.breakdown-row small{color:#9caa99}.breakdown-row>span{white-space:nowrap;color:var(--lime);font-weight:700;font-size:11px}.player-photo{background-color:transparent}
