@font-face{font-family:Ranked;src:url('/web/assets/font.ttf') format('truetype');font-display:swap}
:root{color-scheme:dark;--panel:rgba(13,18,23,.91);--muted:#c6c8ca;--yellow:#ffe247;--green:#84c24c;font-family:Ranked,monospace;font-size:19px}
*{box-sizing:border-box}body{margin:0;min-height:100dvh;background:#12232d url('/web/assets/background.png') center/cover fixed no-repeat;color:#fff;text-shadow:2px 2px #111}body:before{content:'';position:fixed;inset:0;background:rgba(0,0,0,.16);z-index:-1}button,input,textarea,select{font:inherit}a{color:inherit;text-decoration:none}a:not(.button):hover{text-decoration:underline}button,a,input,select,textarea{touch-action:manipulation}:focus-visible{outline:3px solid var(--yellow);outline-offset:4px}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}header{min-height:235px;padding:34px 28px 12px;position:relative}.logo{display:block;width:min(560px,70vw);margin:auto}.logo img{display:block;width:100%;height:auto}#identity{position:absolute;right:24px;top:22px;display:flex;gap:12px;align-items:center;font-size:17px}main{max-width:1240px;margin:0 auto;padding:28px 28px 110px;min-height:calc(100dvh - 285px)}footer{display:flex;gap:30px;justify-content:space-between;align-items:center;position:fixed;bottom:0;width:100%;padding:18px 28px;background:linear-gradient(transparent,rgba(0,0,0,.75));font-size:17px}footer span{font-size:15px;color:#ddd}.menu{width:min(100%,590px);margin:40px auto 0;display:flex;flex-direction:column;gap:14px}.button{display:flex;align-items:center;justify-content:center;min-height:76px;padding:15px 22px;text-align:center;color:#3e3e3e;background:#c6c6c6;border:4px solid #000;box-shadow:inset 3px 3px #fff,inset -3px -3px #555;text-shadow:none;font-size:27px;line-height:1.2}.button:hover:not(:disabled){background:#559f35;color:#fff;box-shadow:inset 3px 3px #91cd6c,inset -3px -3px #255b14;text-decoration:none}.button:active:not(:disabled){transform:translateY(2px)}.menu>.button{min-height:96px;font-size:34px}.button.small{min-height:48px;font-size:19px;padding:10px 17px;border-width:3px}.button.danger:hover{background:#a23f38;box-shadow:inset 3px 3px #d67b73,inset -3px -3px #5a1915}.button.selected{background:#84b761}.row{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.row>*{flex:1}.row>.fit{flex:0 0 auto}.page-top{display:flex;justify-content:space-between;gap:16px;align-items:center;margin:0 0 22px}.page-top h1{margin:0;font-size:29px;font-weight:normal}.card{background:var(--panel);border:3px solid #000;box-shadow:inset 1px 1px #6b6e70;padding:26px;margin-bottom:18px}.card h2,.card h3{font-weight:normal;margin-top:0}.card h2{font-size:26px}.card p{line-height:1.55}.narrow{max-width:650px;margin:10px auto}.muted{color:var(--muted)}.yellow{color:var(--yellow)}.good{color:#b3ec82}.error{color:#ffafa7}input,textarea,select{display:block;width:100%;border:3px solid #000;background:#242424;box-shadow:inset 2px 2px #777;color:#fff;padding:15px;min-height:55px;text-shadow:none}textarea{resize:vertical;min-height:130px}label{display:block;margin:18px 0 8px;font-size:18px}form:not(.search)>.button{width:100%;margin-top:20px}form .row{margin-top:16px}.tabs{display:flex;gap:8px;margin-bottom:22px}.tabs .button{flex:1;font-size:18px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.stat{padding:20px;text-align:center;background:#23282b;border:2px solid #000}.stat strong{display:block;font-size:35px;margin:8px 0}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}td,th{padding:17px 14px;text-align:left;font-weight:normal;border-bottom:2px solid #45494c;white-space:nowrap}thead{color:#d1d4d6}tbody tr:hover{background:#ffffff0b}td .button{min-height:40px;font-size:17px;padding:7px 12px}td:first-child{max-width:300px;overflow:hidden;text-overflow:ellipsis}.squares{display:flex;justify-content:center;gap:25px;margin:35px auto}.squares>.button{width:230px;min-height:230px;font-size:39px}.progress{height:21px;border:3px solid #000;background:#282828;overflow:hidden}.progress span{display:block;width:32%;height:100%;background:#83c554;animation:queue-progress 1.4s ease-in-out infinite alternate}@keyframes queue-progress{from{transform:translateX(-100%)}to{transform:translateX(310%)}}.countdown{font-size:50px;text-align:center;margin:20px 0}.chat{max-height:340px;min-height:100px;overflow:auto;padding-right:10px;line-height:1.5}.chat p{margin:9px 0;overflow-wrap:anywhere}.chat time{font-size:14px;color:#b2b6b8;margin-right:8px}.chat strong{color:var(--yellow);font-weight:normal}.badge{display:inline-block;background:#313b41;border:2px solid #111;padding:4px 9px;font-size:14px}.split{color:var(--yellow)}.code{background:#191d20;border:2px solid #000;padding:17px;overflow-wrap:anywhere;user-select:all;text-shadow:none}.empty{text-align:center;padding:35px;color:#d3d5d6}.search{display:flex;gap:12px;margin-bottom:18px}.search input{flex:1}.search .button{flex:0 0 auto}dialog{color:#fff;background:#24282c;border:5px solid #000;width:min(92vw,670px);max-height:90dvh;padding:26px;text-shadow:2px 2px #111}dialog::backdrop{background:#0009}dialog .button{width:100%;margin-top:18px}#notice{position:fixed;right:24px;bottom:70px;max-width:min(90vw,600px);background:#20272b;border:3px solid #000;padding:18px 24px;z-index:10;box-shadow:inset 1px 1px #888;white-space:pre-wrap}details{background:#171c20;border:2px solid #000;padding:18px;margin:12px 0}summary{cursor:pointer;color:var(--yellow)}pre{white-space:pre-wrap;overflow-wrap:anywhere;text-shadow:none;font-size:15px}.admin-nav{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px}.admin-nav .button{flex:1}.review-note{margin-bottom:10px}.player-name{color:var(--yellow)}.loading{text-align:center;padding:65px}small{font-size:15px}hr{border:0;border-top:2px solid #45494c;margin:24px 0}.result-banner{text-align:center;font-size:32px;margin-bottom:20px}.mobile-label{display:none}
@media(max-width:720px){:root{font-size:17px}header{min-height:205px;padding-top:70px}.logo{width:min(500px,100%)}#identity{top:12px;right:15px;left:15px;justify-content:flex-end;font-size:14px}main{padding:16px 14px 100px}.menu{margin-top:20px}.menu>.button{min-height:82px;font-size:29px}.grid{grid-template-columns:1fr}.card{padding:19px}.page-top h1{font-size:24px}.row>.button{font-size:19px}.squares{gap:15px}.squares>.button{min-height:160px;width:160px;font-size:30px}.stats{grid-template-columns:repeat(3,1fr)}.stat{padding:14px 6px;font-size:15px}.stat strong{font-size:28px}.tabs{flex-wrap:wrap}footer{padding:17px 16px;gap:15px;font-size:15px}footer span{font-size:12px}.search{flex-wrap:wrap}.search input{min-width:180px}td,th{padding:13px 10px}.button{font-size:23px}.countdown{font-size:37px}}

/* Shared navigation and form geometry. Footers stay in document flow. */
[hidden]{display:none!important}
body{display:flex;flex-direction:column}
header{flex-shrink:0}
main{width:100%;flex:1;min-height:0;padding-bottom:28px}
footer{position:static;flex-shrink:0;justify-content:flex-end;padding:18px 28px;background:none}
.support-link{font-size:16px;padding:8px 14px;border:2px solid #000;background:#20272bd9}
#identity{display:none}
.page-top{display:grid;grid-template-columns:minmax(75px,1fr) auto minmax(75px,1fr);align-items:center}
.page-top h1{text-align:center;overflow-wrap:anywhere}
.back-link,.help-link{font-size:20px;color:#fff;padding:10px 0}
.back-link{justify-self:start}.help-link{justify-self:end;padding:8px 12px}
.home-menu{margin:12px auto 0;gap:12px}
.home-menu>.button{min-height:clamp(58px,8vh,82px);font-size:29px}
.search{display:flex;align-items:stretch;flex-wrap:nowrap;gap:12px}
.search input{flex:1 1 0;min-width:0;width:auto}
.search>.button{flex:0 0 auto;width:auto;margin:0;min-width:115px}
.auth-discord{width:100%;margin-top:16px}
.solo-modes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.solo-modes .menu{width:100%;margin:0;gap:12px}.solo-modes .button{min-height:70px;font-size:25px}
@media(max-width:720px){header{padding-top:25px;min-height:165px}.logo{width:min(420px,100%)}.home-menu{margin-top:0}.home-menu>.button{min-height:64px;font-size:27px}.solo-modes{grid-template-columns:1fr}.page-top{grid-template-columns:65px minmax(0,1fr) 35px}.page-top h1{font-size:23px}.back-link{font-size:17px}.search{gap:8px}.search>.button{min-width:85px;padding:10px;font-size:17px}footer{padding:16px}}

/* Home links retain their original corners; other pages use standard buttons. */
.footer-home{display:flex;justify-content:space-between}
.footer-page{display:grid;grid-template-columns:minmax(100px,1fr) auto minmax(100px,1fr);gap:14px;align-items:center}
.footer-page>.button:first-child{justify-self:start;min-width:100px}
.footer-page .support-link{justify-self:center;min-width:160px;background:#c6c6c6;color:#3e3e3e}
.footer-page .support-link:hover{background:#559f35;color:#fff}
.page-top{grid-template-columns:minmax(50px,1fr) auto minmax(50px,1fr)}
.page-top .help-link{justify-self:end;min-width:48px;padding:10px 14px;color:#3e3e3e}
.page-top .help-link:hover{color:#fff}
.home-menu{margin:24px auto 0;gap:14px}.home-menu>.button{min-height:96px;font-size:34px}
@media(max-width:720px){.home-menu{margin-top:10px}.home-menu>.button{min-height:82px;font-size:29px}.footer-page{grid-template-columns:minmax(76px,1fr) auto minmax(76px,1fr);gap:6px}.footer-page>.button:first-child{min-width:76px;padding:10px;font-size:17px}.footer-page .support-link{min-width:110px;padding:10px;font-size:17px}.page-top{grid-template-columns:48px minmax(0,1fr) 48px}}

/* Keep page controls close to the content rather than the viewport edges. */
body:not(.home-page) main{flex:0 0 auto;padding-bottom:0}
body:not(.home-page) main>:last-child{margin-bottom:0}
.footer-page{display:flex;justify-content:center;gap:14px;width:calc(100% - 56px);max-width:1184px;margin:14px auto 28px;padding:0}
.footer-page>.button:first-child,.footer-page .support-link{flex:0 1 180px;width:180px;min-width:0;min-height:60px;padding:14px 20px;font-size:23px}
.footer-page .help-link{flex:0 0 60px;min-width:60px;min-height:60px;padding:14px;font-size:23px}
.profile-name{text-align:center;font-size:30px;margin:0 0 22px}
@media(max-width:720px){.footer-page{width:calc(100% - 28px);gap:12px;margin-top:14px}.footer-page>.button:first-child,.footer-page .support-link{flex:1 1 0;width:auto;font-size:21px;padding:12px}.profile-name{font-size:27px}}
.footer-page .help-link{color:#3e3e3e}.footer-page .help-link:hover{color:#fff}

.footer-home{justify-content:center;gap:14px}.footer-home>.button{width:180px;min-height:60px;padding:14px 20px;font-size:23px}
@media(max-width:720px){.footer-home{gap:12px}.footer-home>.button{width:160px;font-size:21px;padding:12px}}

.home-page main{flex:0 0 auto;padding-bottom:0}.home-page .footer-home{margin:14px auto 28px;padding:0;width:calc(100% - 56px)}@media(max-width:720px){.home-page .footer-home{width:calc(100% - 28px)}}

.home-menu{width:min(100%,550px)}

/* Keep download first in the centered menu on every screen size. */
.home-layout{display:flex;flex-direction:column;gap:14px;width:min(100%,550px);margin:4px auto 0}
.home-layout .home-menu{width:100%;margin:0;gap:14px}
.home-layout .home-menu>.button{min-height:96px;font-size:32px}
.client-download{width:100%;text-align:center;min-width:0}
.download-primary{min-height:96px;font-size:32px;padding:15px 20px;background:#5db3e9;color:#102e45;box-shadow:inset 3px 3px #afe0ff,inset -3px -3px #30799f}
.download-primary:hover:not(:disabled){background:#7bc5f2;color:#102e45;box-shadow:inset 3px 3px #c9ecff,inset -3px -3px #438bad}
.download-primary[aria-disabled=true]{opacity:.6;pointer-events:none}
.home-page .footer-home{flex-wrap:wrap;max-width:980px;margin-top:24px}
.home-page .footer-home>.button{width:170px}
@media(min-width:900px) and (max-height:850px){.home-page header{min-height:0;padding:22px 28px 8px}.home-page .logo{width:420px}.home-page main{padding-top:18px}.home-layout .home-menu>.button,.download-primary{min-height:82px;font-size:29px}}
@media(max-width:899px){.home-page{padding-bottom:0}.home-layout{display:flex;flex-direction:column;gap:14px;margin:0 auto}.client-download{position:static;width:100%}.home-layout .home-menu>.button,.download-primary{min-height:82px;font-size:29px}.home-page .footer-home{max-width:550px;margin-top:14px;gap:12px}.home-page .footer-home>.button{flex:1 1 140px;max-width:180px;width:auto}.home-page header{min-height:0;padding:24px 20px 8px}.home-page .logo{width:min(420px,100%)}}

/* Shared leaderboard columns and signed recent Elo. */
.leaderboard-table th,.leaderboard-table td{font-variant-numeric:tabular-nums}
.leaderboard-table td:not(:nth-child(2)),.leaderboard-table th:not(:nth-child(2)){text-align:right}
.leaderboard-table td:first-child,.leaderboard-table th:first-child{text-align:center;width:60px}
.leaderboard-table th:last-child{min-width:105px}
.elo-change.positive{color:#84d674}.elo-change.negative{color:#ff7979}.elo-change.neutral{color:#b4b4b4}

:focus-visible{outline:2px solid #bbb;outline-offset:2px}
.profile-charts{display:grid;grid-template-columns:minmax(0,2fr) minmax(220px,1fr);gap:28px;align-items:center}
.elo-graph{width:100%;height:auto;display:block}.elo-graph text{fill:#ccc;font-size:14px;text-shadow:none}.graph-dates{display:flex;justify-content:space-between;color:#bbb;font-size:14px;padding:0 30px}
.ranked-results{text-align:center}.result-pie{width:160px;height:160px;border-radius:50%;margin:15px auto;display:grid;place-items:center}.result-pie:has(span){background:transparent!important;border:10px solid #828c82}.result-pie span{font-size:17px}.ranked-results p{margin:10px 0}
.profile-actions{margin:20px 0;flex-wrap:nowrap}.profile-report{margin:20px auto}.pagination{display:flex;align-items:center;justify-content:center;gap:25px;margin:22px 0}.mode-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.mode-values div{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #45494c}.mode-values dd{margin:0}
@media(max-width:720px){.profile-charts,.mode-stats{grid-template-columns:1fr}.profile-actions>.button{font-size:20px;padding:12px}.pagination{gap:12px}}

.result-pie svg{display:block;width:100%;height:100%;overflow:visible}.win-rate{margin-top:18px;padding-top:14px;border-top:1px solid #45494c;font-size:18px}.win-rate strong{font-size:26px}.leaderboard-position{display:flex;justify-content:flex-end;margin:0 0 16px}.own-position{background:#ffffff0b}

/* Title images have different aspect ratios; content follows their actual height. */
body.page-title header{min-height:0;padding-bottom:0}body.page-title main{padding-top:24px}body.page-title main>.menu{margin-top:0}
@media(max-width:720px){body.page-title main{padding-top:20px}}

.download-options{max-width:1000px;margin:0 auto 24px;display:grid;grid-template-columns:1fr 1fr;gap:28px}.download-options .button{min-height:110px;font-size:32px}.download-option p{margin:12px 0 0;padding:12px 16px;background:var(--panel);font-size:17px;line-height:1.45}.download-trust{max-width:1000px;margin:0 auto}.download-trust p{font-size:17px}.download-check{margin-top:24px}.download-check h3{margin-bottom:12px}.download-check .row{max-width:650px}.download-check .button{font-size:17px}@media(max-width:720px){.download-options{grid-template-columns:1fr;gap:20px}.download-options .button{min-height:90px;font-size:28px}.download-check .row{flex-direction:column;align-items:stretch}}

.download-technical code{display:block;overflow-wrap:anywhere;font-size:14px}.download-compact p{margin:10px 0;line-height:1.45}.download-compact h2{margin:20px 0 12px}.download-compact .download-requirements{margin-top:0;color:var(--muted)}.download-compact .download-links{margin-bottom:0;font-size:15px}.download-compact details{margin:16px 0}.download-compact summary{cursor:pointer;font-size:16px;color:var(--muted)}.download-compact details section+section{border-top:1px solid #45494c;margin-top:18px;padding-top:6px}.download-options>.button{min-width:0}
.download-technical pre{margin:12px 0;padding:14px;background:#101010b3;border:1px solid #555;white-space:pre-wrap;overflow-wrap:anywhere}.download-alternative{display:flex;flex-direction:column;align-items:center;gap:16px;margin-top:28px}.download-alternative .button{width:min(100%,620px);min-height:76px;text-align:center;font-size:28px}.download-website{font-size:19px;text-align:center}

.info-copy{white-space:pre-line;line-height:1.55}
.download-trust .download-text-link{color:#8dccff}.download-trust .download-text-link:hover{color:#319bff}

.admin-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}.review-card{padding:18px;margin:16px 0;border-left:4px solid #e4bf4a;background:var(--panel,rgba(10,22,25,.9))}.review-green{border-color:#65db83}.review-red{border-color:#f08080}.review-yellow{border-color:#e4bf4a}.review-score{font-size:2rem}.review-values>div{display:grid;grid-template-columns:minmax(130px,1fr) 2fr;gap:14px;padding:8px 0;border-bottom:1px solid #ffffff19}.review-values dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.review-values dt{color:#b7c9ce}.admin-search{margin:18px 0}.admin-level{align-items:end}.admin-level label{flex:1}.level-green{color:#65db83}.level-orange{color:#ffb05c}.level-red{color:#f08080}.level-normal{color:#b7c9ce}.admin-nav{flex-wrap:wrap}.green{color:#65db83}.red{color:#f08080}
