:root{--bg:#313338;--bg-secondary:#2b2d31;--bg-tertiary:#1e1f22;--bg-floating:#111214;--line:#3f4147;--text:#f2f3f5;--text-muted:#949ba4;--text-faint:#6d6f78;--blurple:#5865f2;--blurple-hover:#4752c4;--green:#23a55a;--red:#f23f42;--amber:#f0b232;--starter:#80848e;--bronze:#b0703f;--silver:#b8bfc7;--gold-t:#e0a63c;--platinum:#c9d6df;--diamond:#5aa9d6;--emerald:#2fa572;--ruby:#e0455f;--opal:#b98ee0}
*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,"Segoe UI","gg sans",Roboto,Helvetica,Arial,sans-serif;min-height:100vh;padding:24px 16px 64px;user-select:none}.wrap{max-width:960px;margin:0 auto}
.notice{display:flex;align-items:flex-start;gap:10px;background:rgba(240,178,50,.12);border:1px solid rgba(240,178,50,.35);color:#f4d488;border-radius:8px;padding:12px 14px;margin-bottom:16px;font-size:13.5px;line-height:1.5}.notice>svg{flex:none;width:18px;height:18px;margin-top:1px;color:var(--amber)}.notice-text strong{display:block;font-size:13.5px;color:var(--amber);margin-bottom:2px}.notice-link{margin-top:8px}.link-button{height:auto;padding:0;background:none;color:var(--amber);text-decoration:underline;font-size:12.5px}
.site-notices{display:grid;gap:10px;margin-bottom:16px}.site-notice{padding:12px 14px;border-radius:8px;border-left:3px solid var(--blurple);background:rgba(88,101,242,.12);font-size:13.5px;line-height:1.5}.site-notice strong{display:block;margin-bottom:3px}.site-notice p{margin:0;color:var(--text-muted)}.site-notice.warning{border-left-color:var(--amber);background:rgba(240,178,50,.12)}.site-notice.warning strong{color:#f4d488}.site-notice.success{border-left-color:var(--green);background:rgba(35,165,90,.12)}.site-notice.success strong{color:#8be0ad}
.site-footer{display:flex;justify-content:center;gap:18px;padding:34px 0 0;font-size:12px}.site-footer a,.back-link{color:var(--text-muted)}.site-footer a:hover,.back-link:hover{color:var(--text)}.info-page{max-width:700px;margin:0 auto;padding:20px 0}.info-page h1{font-size:30px;margin:28px 0 12px}.info-page h2{font-size:18px;margin:28px 0 8px}.info-page p{color:var(--text-muted);font-size:15px;line-height:1.7}.back-link{text-decoration:none;font-size:13px}
.panel,.card{background:var(--bg-secondary);border-radius:8px}.panel{padding:16px;margin-bottom:20px}.controls{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}@media(max-width:560px){.controls{grid-template-columns:1fr}}
label{display:block;font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.02em;margin-bottom:8px}input{width:100%;background:var(--bg-tertiary);border:1px solid transparent;color:var(--text);border-radius:4px;padding:10px 12px;font:14px inherit;outline:none;transition:border-color .15s;user-select:text}input:focus{border-color:var(--blurple)}input::placeholder{color:var(--text-faint)}
button{background:var(--blurple);color:#fff;border:0;border-radius:4px;padding:10px 20px;font:600 14px inherit;cursor:pointer;transition:background .15s;white-space:nowrap;height:38px}button:hover{background:var(--blurple-hover)}button:disabled{opacity:.5;cursor:not-allowed}.toggle-row{display:flex;align-items:center;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.switch{position:relative;width:36px;height:20px;padding:0;background:var(--bg-tertiary);border-radius:99px;flex:none}.switch:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--text-muted);transition:.15s}.switch.on{background:var(--green)}.switch.on:after{background:#fff;left:18px}.toggle-label{font-size:13px;color:var(--text-muted);cursor:pointer;user-select:none}.status{font-size:13px;color:var(--text-muted);padding:8px 2px 0;min-height:18px;display:flex;align-items:center;gap:8px}.status.err{color:var(--red)}.status.ok{color:var(--green)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.empty{text-align:center;color:var(--text-faint);padding:56px 20px;font-size:13px}.card{padding:16px 12px;text-align:center;cursor:pointer;transition:background .15s,transform .1s;position:relative}.card:hover{background:#35373c;transform:translateY(-2px)}.card:focus-visible{outline:2px solid var(--blurple);outline-offset:2px}.medallion,.drawer-medallion,.step-medallion{background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center;position:relative}.medallion{width:56px;height:56px;margin:0 auto 12px;border-radius:12px}.medallion img{width:32px;height:32px;object-fit:contain}.medallion.locked img,.drawer-medallion.locked img,.step-medallion.locked img{opacity:.42;filter:grayscale(1)}.animated-icon{transform:scale(1.55)}.lock-badge{position:absolute;bottom:-4px;right:-4px;width:20px;height:20px;border-radius:50%;background:var(--bg-floating);display:flex;align-items:center;justify-content:center}.lock-badge svg{width:11px;height:11px;color:var(--text-muted)}.card .name{font-size:13px;font-weight:600;margin-bottom:4px;line-height:1.3}.tier-label{font-size:11px;color:var(--text-faint)}.medallion.locked + .name{color:var(--text-muted)}
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;padding:20px;z-index:50}.overlay[hidden]{display:none}.drawer{background:var(--bg-secondary);border-radius:8px;max-width:480px;width:100%;max-height:86vh;overflow-y:auto;padding:24px;position:relative}.drawer-top{display:flex;gap:14px;align-items:center;margin-bottom:16px}.drawer-medallion{width:60px;height:60px;border-radius:12px;flex:none}.drawer-medallion img{width:36px;height:36px}.drawer-title{font-size:18px;font-weight:700;margin-bottom:4px}.drawer-desc{color:var(--text-muted);font-size:13.5px;line-height:1.5}.stat-line{background:var(--bg-tertiary);border-radius:4px;padding:10px 12px;margin:14px 0;font-size:13.5px;border-left:3px solid var(--blurple)}.drawer-meta{font-size:12px;color:var(--text-faint);margin-top:2px}.ladder{margin-top:16px}.ladder-title{font-size:11px;letter-spacing:.02em;text-transform:uppercase;color:var(--text-faint);margin-bottom:10px;font-weight:600}.step{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}.step:last-child{border-bottom:0}.step-medallion{width:28px;height:28px;flex:none;border-radius:8px}.step-medallion img{width:18px;height:18px}.step-indicator{position:absolute;bottom:-3px;right:-3px;width:14px;height:14px;border-radius:50%;background:var(--bg-secondary);display:flex;align-items:center;justify-content:center}.step-indicator svg{width:8px;height:8px}.step.owned .step-indicator{color:var(--green)}.step.locked .step-indicator{color:var(--text-faint)}.step-name{font-size:13px;flex:1}.step.locked .step-name{color:var(--text-faint)}.step-milestone{font-size:11.5px;color:var(--text-faint)}.close-x{position:absolute;top:16px;right:16px;background:none;color:var(--text-muted);width:28px;height:28px;padding:0;font-size:20px}.close-x:hover{color:var(--text)}
.lock-badge{border:0;min-height:20px;height:20px;padding:0;background:var(--bg-floating);color:var(--text-muted)}.lock-badge:hover{background:#000;color:var(--text)}.lock-badge:focus-visible{outline:2px solid var(--blurple);outline-offset:2px}
.medallion.locked img,.drawer-medallion.locked img,.step-medallion.locked img{opacity:.68;filter:none}
.status-list{display:grid;gap:10px;margin:20px 0}.status-row{display:flex;align-items:center;gap:12px;background:var(--bg-secondary);border-radius:8px;padding:14px 16px}.status-dot{width:10px;height:10px;border-radius:50%;flex:none;background:var(--text-faint)}.status-dot.ok{background:var(--green);box-shadow:0 0 0 3px rgba(35,165,90,.18)}.status-dot.err{background:var(--red);box-shadow:0 0 0 3px rgba(242,63,66,.18)}.status-dot.pending{background:var(--amber);box-shadow:0 0 0 3px rgba(240,178,50,.18)}.status-info{flex:1}.status-name{font-size:14px;font-weight:600}.status-detail{font-size:12.5px;color:var(--text-muted);margin-top:2px}.status-meta{font-size:12px;color:var(--text-faint);white-space:nowrap}.status-overall{font-size:15px;font-weight:600;margin:24px 0 4px}.status-updated{font-size:12.5px;color:var(--text-faint);margin-bottom:16px}.status-refresh{margin-top:4px}