@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap');
:root{font-family:'DM Sans',system-ui,sans-serif;color:#152b49;background:#f3f5f8;font-synthesis:none;--navy:#122c53;--muted:#5c6a7e;--border:#dce2e9;--red:#a42538}
*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit}button:disabled{cursor:wait;opacity:.6}button:focus-visible,a:focus-visible{outline:3px solid #3584de;outline-offset:4px}.wrap{width:min(1120px,calc(100% - 64px));margin-inline:auto}.masthead{min-height:118px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{text-decoration:none;display:flex;align-items:center;gap:14px}.brand img{object-fit:contain;mix-blend-mode:multiply}.brand strong{display:block;font-size:1.5rem;letter-spacing:-.04em}.brand-caption{display:block;font-size:.75rem;letter-spacing:.15em;font-weight:700;margin-top:5px;color:var(--muted)}.refresh-controls{display:flex;align-items:center;gap:20px}.muted{font-size:.875rem;color:var(--muted)}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:11px 18px;font-weight:600;font-size:.875rem;text-decoration:none;border-radius:5px;white-space:nowrap}.button-outline{border:1px solid var(--border);background:#fff}.button-outline:hover{border-color:var(--navy)}.button-primary{background:var(--navy);color:#fff;border:1px solid var(--navy)}.button-primary:hover{background:#214879}
.overview{display:grid;grid-template-columns:1fr 260px;background:var(--navy);color:#fff;border-radius:8px;overflow:hidden;border-top:4px solid var(--red)}.overview-main{padding:34px 38px 30px;position:relative}.eyebrow{display:block;font-size:.75rem;letter-spacing:.12em;font-weight:700;line-height:1.6;color:var(--muted)}.overview .eyebrow{color:#c1cde0}.badge{display:inline-flex;align-items:center;gap:7px;min-height:29px;padding:4px 9px;border-radius:4px;background:#eef1f5;color:#536176;font-size:.875rem;font-weight:600;white-space:nowrap}.badge::before{content:'';width:6px;height:6px;background:currentColor;border-radius:50%}.badge[data-state=online]{color:#166344;background:#e6f5ed}.badge[data-state=offline]{color:#98283a;background:#fdebef}.badge[data-state=partial],.badge[data-state=error]{color:#8a590c;background:#fff1d9}.overview-badge{margin-top:23px}.overview h1{font-size:clamp(2rem,4vw,2.75rem);font-weight:600;letter-spacing:-.04em;line-height:1.15;margin:16px 0 13px}.overview-main p{font-size:1rem;color:#d5dfed;margin:0;line-height:1.6;max-width:530px}.players-block{border-left:1px solid #345074;margin:36px 0 30px;padding:0 30px;display:flex;flex-direction:column;justify-content:center}.player-total{display:flex;align-items:baseline;gap:12px;line-height:1;margin:22px 0 20px}.player-total>span:first-child{font-family:'IBM Plex Mono',monospace;font-size:4.25rem;font-weight:400;letter-spacing:-.06em}.player-total>span:nth-child(2){font-family:'IBM Plex Mono',monospace;font-size:1.125rem;color:#c1cde0}.capacity-track{height:4px;background:#345074;border-radius:2px;overflow:hidden}.capacity-track span{display:block;width:0;background:#9dbadc;height:100%;transition:width .3s}.players-note{font-size:.875rem;color:#c1cde0;margin-top:15px;line-height:1.5}.overview-footer{grid-column:1/-1;display:flex;justify-content:space-between;gap:16px;background:#0f2648;padding:15px 38px;color:#bfcde0;font-size:.8125rem;line-height:1.5}
.connection-section{margin-top:34px}.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:16px}.section-heading h2{font-size:1.25rem;margin:0;letter-spacing:-.02em}.section-heading p{font-size:.875rem;color:var(--muted);margin:0}.connections{display:grid;grid-template-columns:1fr 1fr;gap:20px}.connection-card{padding:26px 28px;background:#fff;border:1px solid var(--border);border-radius:6px}.card-heading{display:flex;justify-content:space-between;align-items:center;gap:15px}.card-heading h3{font-size:1.375rem;letter-spacing:-.025em;margin:4px 0 0}.connection-guide{font-size:.875rem;color:var(--muted);line-height:1.65;margin:20px 0 10px}.address-row{background:#f3f5f9;border:1px solid #e4e8ee;min-height:61px;padding:10px 12px 10px 16px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-radius:4px}.address-row code{font-family:'IBM Plex Mono',monospace;font-size:1.125rem;font-weight:500;overflow-wrap:anywhere;min-width:0}.copy-button{background:#fff;border:1px solid var(--border);border-radius:4px;min-height:36px;padding:7px 11px;font-size:.875rem;font-weight:600;flex-shrink:0}.copy-button:hover{border-color:#486182;background:#f8fafc}.port-row{display:flex;align-items:center;gap:12px;margin-top:12px;font-size:.875rem;color:var(--muted)}.port-row code{font-family:'IBM Plex Mono',monospace;font-size:1rem;color:var(--navy)}.port-row button{margin-left:auto}.input-note{font-size:.875rem;color:var(--muted);line-height:1.5;margin:12px 0 0}.connection-facts{padding-top:16px;margin:18px 0 0;border-top:1px solid #e9edf2;display:grid;gap:12px}.connection-facts div{display:flex;justify-content:space-between;gap:20px;align-items:baseline}.connection-facts dt,.connection-facts dd{font-size:.875rem;line-height:1.5}.connection-facts dt{color:var(--muted);flex-shrink:0}.connection-facts dd{margin:0;text-align:right;overflow-wrap:anywhere}.entry-message{font-size:.875rem;color:var(--muted);line-height:1.6;margin:16px 0 0;min-height:1.4em}
.map-strip{display:flex;align-items:center;gap:20px;margin-top:24px;border:1px solid var(--border);border-radius:6px;padding:23px 28px;background:#e9eef5}.map-icon{width:48px;height:48px;display:grid;place-items:center;flex-shrink:0;color:#456188;background:#dce5f0;border-radius:5px}.map-strip h2{font-size:1.125rem;margin:0 0 7px;letter-spacing:-.025em}.map-strip p{font-size:.875rem;color:var(--muted);margin:0;line-height:1.5}.map-strip .button{margin-left:auto}.footer{display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:24px;padding:30px 0 32px;font-size:.8125rem;line-height:1.7;color:var(--muted)}.footer>span{font-weight:700;color:var(--navy)}.footer p{max-width:590px;margin:0}.footer a{text-underline-offset:4px}.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);border-radius:5px;background:var(--navy);color:#fff;padding:13px 22px;box-shadow:0 6px 30px #122c5329;max-width:calc(100% - 32px);font-size:.875rem;margin:0;opacity:0;pointer-events:none;transition:opacity .15s}.toast.visible{opacity:1}.noscript{padding:24px;text-align:center;border-top:1px solid var(--border)}
@media(max-width:760px){.wrap{width:calc(100% - 36px)}.masthead{min-height:100px}.refresh-controls{gap:10px}.refresh-controls .muted{display:none}.brand{gap:9px}.brand img{width:40px;height:48px}.brand strong{font-size:1.25rem}.overview{grid-template-columns:1fr 175px}.overview-main{padding:27px 25px}.overview h1{font-size:2rem}.players-block{padding:0 21px;margin:30px 0}.player-total>span:first-child{font-size:3.25rem}.player-total{gap:8px}.overview-footer{padding:14px 25px;flex-direction:column;gap:4px}.connections{grid-template-columns:1fr}.connection-card{padding:24px}.map-strip{flex-wrap:wrap;padding:22px 24px;gap:16px}.map-strip>div:nth-child(2){flex:1;min-width:170px}.map-strip .button{width:100%;margin:0}.footer{grid-template-columns:1fr;gap:10px;padding-top:24px}.section-heading p{font-size:.875rem}}
@media(max-width:470px){.overview{grid-template-columns:1fr}.overview-main{padding-bottom:20px}.players-block{margin:0 25px 24px;border-left:0;border-top:1px solid #345074;padding:19px 0 0;display:grid;grid-template-columns:1fr auto;gap:0 15px;align-items:center}.players-block .eyebrow{grid-column:1}.player-total{grid-column:2;grid-row:1/4;margin:0}.player-total>span:first-child{font-size:3.125rem}.capacity-track{margin-top:12px}.players-note{margin-top:9px}.section-heading{align-items:center}.section-heading h2{font-size:1.125rem}.address-row code{font-size:1rem}.card-heading{align-items:flex-start}.card-heading h3{font-size:1.25rem}.card-heading .badge{margin-top:6px}.overview h1{font-size:2rem}.button{padding-inline:13px}.brand-caption{font-size:.75rem}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
