.rank-banner{--rank-color:#d6eaa3;display:grid;grid-template-columns:auto 1fr minmax(200px,.85fr);align-items:center;gap:26px;padding:25px 30px;margin:24px 0;background:#153c40;color:#ecf1e6;border:1px solid #365b59;border-radius:18px;position:relative;overflow:hidden}
.rank-medallion{display:grid;place-items:center;flex-shrink:0;width:76px;height:76px;position:relative;border:1px solid var(--rank-color,#bad490);border-radius:50%;color:var(--rank-color,#bad490);font:24px Georgia,serif;box-shadow:inset 0 0 0 6px #153c40,inset 0 0 0 7px currentColor;background:#153c40}
.rank-medallion:after{content:'✦';position:absolute;background:#153c40;bottom:-6px;left:calc(50% - 12px);width:24px;text-align:center;font:17px Georgia,serif}
.rank-banner .eyebrow{font-size:9px;letter-spacing:.17em;color:#b5c8ac}.rank-banner h2{margin:7px 0;font-size:28px;font-weight:500;letter-spacing:-.03em;color:#f0f4df}.rank-banner p{margin:0;font-size:12px;line-height:1.6;color:#c2d3c6}.rank-banner .rank-progress p{display:flex;justify-content:space-between;gap:12px;font-size:11px}.rank-track{height:5px;background:#ffffff20;border-radius:20px;margin:12px 0 10px;overflow:hidden}.rank-track span{display:block;height:100%;background:var(--rank-color,#d6eaa3);border-radius:20px}.rank-banner a{font-size:12px;color:#d7ebad;display:inline-flex;align-items:center;gap:8px;margin-top:13px;text-decoration:none}.rank-banner a:hover{text-decoration:underline}.rank-banner .icon{width:15px;height:15px}.rank-banner .rank-total{font-variant-numeric:tabular-nums;color:#eff4e1}
.sidebar-rank{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--text);padding-top:18px;border-top:1px solid var(--border)}.sidebar-rank .rank-medallion{width:38px;height:38px;font-size:12px;box-shadow:none;border-color:#567b68}.sidebar-rank .rank-medallion:after{font-size:10px;bottom:-5px;width:18px;left:calc(50% - 9px)}.sidebar-rank strong{font-size:12px;display:block;font-weight:600}.sidebar-rank small{font-size:10px;color:var(--muted);display:block;margin-top:3px}
.ranks-intro{display:flex;gap:16px;align-items:center;justify-content:space-between;margin:28px 0 20px}.ranks-intro p{max-width:670px;color:var(--muted);font-size:13px;line-height:1.8}.rank-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.rank-card{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:28px 22px;border:1px solid var(--border);border-radius:18px;background:var(--surface);overflow:hidden}.rank-card.current{border-color:var(--rank-color);box-shadow:0 0 0 2px color-mix(in srgb,var(--rank-color) 22%,transparent)}.rank-card.locked .rank-medallion{opacity:.6}.rank-card .rank-status{font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:23px;display:flex;align-items:center;gap:5px;min-height:17px}.rank-card.current .rank-status{color:var(--accent)}.rank-card .rank-status .icon{width:14px;height:14px}.rank-card .rank-medallion{width:85px;height:85px;font-size:27px}.rank-card h2{font-size:25px;letter-spacing:-.03em;margin:22px 0 6px}.rank-card .rank-hours{font-size:14px;font-variant-numeric:tabular-nums;font-weight:600;color:var(--accent)}.rank-card p{font-size:12px;color:var(--muted);line-height:1.6;margin:13px 0 20px}.rank-card a{font-size:11px;margin-top:auto;text-decoration:none;display:inline-flex;align-items:center;gap:7px;color:var(--accent)}.rank-card a .icon{width:13px;height:13px}.rank-card a:hover{text-decoration:underline}.rank-rules{padding:24px 28px;margin-top:24px}.rank-rules h2{font-size:18px}.rank-rules p{color:var(--muted);font-size:13px;line-height:1.8}.rank-rules p:last-child{margin-bottom:0}
@media(max-width:1100px){.rank-banner{grid-template-columns:auto 1fr;gap:20px}.rank-progress{grid-column:1/-1}.rank-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:550px){.rank-banner{padding:23px 22px;gap:17px}.rank-medallion{width:62px;height:62px;font-size:21px}.rank-banner h2{font-size:23px}.rank-grid{grid-template-columns:1fr}.rank-card{padding:27px 22px}.ranks-intro{align-items:flex-start;flex-direction:column}.rank-rules{padding:22px}}
