
@font-face{font-family:'Big Shoulders Display';src:url('fonts/big-shoulders-display-latin.woff2') format('woff2');font-weight:100 900;font-display:block}
@font-face{font-family:'Big Shoulders Text';src:url('fonts/big-shoulders-text-latin.woff2') format('woff2');font-weight:100 900;font-display:block}
:root{--basalt:#1b1e23;--slate:#262a31;--rule:#2f343c;--ash:#a9adb4;--bone:#f2efe8;--bless:#5fa8ff;--error:#f08a82;--control-rule:#767c86;--text:'Big Shoulders Text','Arial Narrow',sans-serif;--display:'Big Shoulders Display','Arial Narrow',sans-serif;--rail:420px;--gutter:48px;--page-h:100vh}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--basalt)}body{font:400 20px/1.4 var(--text);color:var(--ash)}button,input,select{font:inherit}button,a,input,summary,select{-webkit-tap-highlight-color:transparent}button,a,summary{touch-action:manipulation}button,a{cursor:pointer}a{color:var(--bless);text-underline-offset:4px;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}button{border-radius:0}button:hover:not(:disabled){filter:brightness(1.08)}button:disabled{cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible,select:focus-visible{outline:2px solid var(--bless);outline-offset:4px}h1,h2,p{margin:0}h1,h2{font-family:var(--display);font-weight:900;color:var(--bone);letter-spacing:-.02em}h1{font-size:60px;line-height:1.02}h2{font-size:44px;line-height:1.06}h1:focus,h2:focus{outline:none}p{max-width:64ch}.small{font-size:18px;line-height:1.4}.muted{color:var(--ash)}.bone{color:var(--bone)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}[hidden]{display:none!important}
#stage{position:relative;min-height:var(--page-h);isolation:isolate}.scene{position:fixed;inset:0;z-index:-2;pointer-events:none}.scene img{width:100%;height:100%;object-fit:cover}.scene::after{content:'';position:absolute;inset:0;background:rgba(27,30,35,.08)}body[data-state="map-load"] .scene::after,body[data-state="disconnect"] .scene::after{background:transparent}
.brand{display:flex;align-items:center;gap:12px;color:var(--bone);font-family:var(--display);font-size:30px;line-height:1;font-weight:300;white-space:nowrap}.brand strong{font-weight:900}.stone{width:16px;height:44px;padding-top:5px;display:flex;justify-content:center;align-items:flex-start;background:var(--slate);clip-path:polygon(0 0,11px 0,16px 5px,16px 44px,0 44px);flex:none}.stone svg{width:74%;height:auto}.brand.page-brand{position:absolute;top:40px;left:48px}
.rail{width:var(--rail);height:var(--page-h);background:var(--basalt);padding:40px var(--gutter) 32px;display:grid;grid-template-rows:44px minmax(0,1fr) 28px;gap:24px}.rail-body{align-self:center;max-height:100%;overflow-y:auto;padding:20px 8px 24px;margin-inline:-8px;scrollbar-width:thin}.rail-body h1{margin-bottom:28px}.rail-footer{font-size:16px;align-self:end}.field{margin-bottom:20px}label{display:block;color:var(--bone);font-weight:500;margin-bottom:8px;line-height:1.25}.input-wrap{position:relative}input,select{display:block;width:100%;height:48px;background:var(--slate);border:1px solid var(--control-rule);border-radius:0;color:var(--bone);padding:9px 12px;line-height:1.3;caret-color:var(--bone)}input[aria-invalid=true]{border-color:var(--error)}input[type=password],input.showable{padding-right:68px}.show-password{position:absolute;top:1px;right:1px;height:46px;width:62px;background:transparent;color:var(--bless);border:0;font-size:16px}.help{font-size:18px;line-height:1.3;margin-top:8px}.field-error{font-size:16px;color:var(--error);line-height:1.3;margin-top:8px}.button{min-height:48px;padding:11px 24px;font-weight:600;line-height:1.3;border:1px solid var(--bone);background:var(--bone);color:var(--basalt);display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.button.secondary{border-color:var(--control-rule);background:transparent;color:var(--bone)}.button.disabled{background:transparent;color:var(--ash);border-color:var(--rule)}.full{width:100%}.form-actions{margin-top:28px}.alternatives{border-top:1px solid var(--rule);margin-top:28px;padding-top:20px;display:flex;justify-content:space-between;gap:20px}.availability{border-left:2px solid var(--ash);padding-left:12px;margin-bottom:24px;font-size:18px;line-height:1.4}.availability strong{display:block;color:var(--bone);font-weight:500}.after-form{margin-top:24px}.feedback{margin-top:16px;font-size:18px;line-height:1.4;color:var(--bone)}.form-error{color:var(--error)}.intro{font-size:20px;line-height:1.45;margin-bottom:28px}.register h1{margin-bottom:24px}.guest .availability{margin-top:0}.guest .rail-body{padding-bottom:48px}
.entry-choices{display:grid;gap:16px}.entry-choices .entry-action{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;width:100%;min-height:88px;padding:16px 24px;text-align:left;gap:4px}.entry-action .action-label{font-size:32px;line-height:1.1;font-weight:700}.entry-action .action-description{font-size:18px;line-height:1.3;font-weight:400}.entry .entry-note{margin-top:20px;font-size:18px;line-height:1.4}.guest .guest-recovery{margin-top:28px}.flat{min-height:var(--page-h);display:flex;align-items:center;justify-content:center;padding:128px 48px 72px}.flat-content{width:600px}.flat-content h1{margin-bottom:24px}.lead{font-size:20px;line-height:1.45}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}.fallback-note{font-size:16px;margin-top:12px}.support{margin-top:32px;padding-top:20px;border-top:1px solid var(--rule);font-size:16px}.support dl{margin:0;display:grid;grid-template-columns:68px 1fr;gap:8px 12px}.support dt{color:var(--ash)}.support dd{margin:0;color:var(--bone);overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.support .example{font-size:14px;color:var(--ash);margin-left:6px}.support .copy{border:0;background:none;color:var(--bless);padding:0;min-height:40px;margin-top:8px;font-size:16px;text-decoration:underline;text-underline-offset:4px}.supported{font-size:18px;margin-top:20px}.software .warning{background:var(--slate);padding:16px 20px;margin-top:24px;color:var(--bone);font-size:20px;line-height:1.4}
.loading-name{font-size:24px;font-weight:500;color:var(--bone);margin-bottom:18px}.loading-name small{font:400 18px var(--text);color:var(--ash);margin-left:12px}.bar{height:5px;width:100%;background:var(--rule);margin:18px 0 16px}.bar span{display:block;height:100%;background:var(--bone)}.bar.unknown span{width:28%;opacity:.55}.byte-line{display:flex;align-items:baseline;justify-content:space-between;gap:24px;font-variant-numeric:tabular-nums}.byte-line strong{font-size:30px;font-weight:600;color:var(--bone);line-height:1.2}.byte-line span{font-size:18px}.basis{margin-top:8px;font-size:16px}.phase-note{margin-top:28px;font-size:20px}.load-details{margin-top:24px;font-size:16px}.load-details summary{color:var(--bless);cursor:pointer;min-height:32px;width:fit-content}.load-details dl{margin:12px 0 0;display:grid;grid-template-columns:100px 1fr;gap:6px 16px}.load-details dd{margin:0;color:var(--bone);font-variant-numeric:tabular-nums}.sample-note{margin-top:18px;font-size:14px;color:var(--ash)}
.world{min-height:var(--page-h);display:grid;place-items:center;padding:80px 40px 128px}.world.disconnect::before{content:'';position:fixed;inset:0;z-index:-1;background:rgba(27,30,35,.28)}.panel{width:560px;max-width:100%;background:var(--basalt);padding:32px}.panel h2{margin-bottom:20px}.panel .actions{margin-top:24px}.panel .support{margin-top:24px}.map-load .panel{width:560px;padding:28px 32px}.map-load h2{font-size:38px;margin-bottom:12px}.map-load .loading-name{font-size:18px;margin-bottom:0;color:var(--ash)}.map-load .byte-line strong{font-size:26px}.map-load .load-details{margin-top:16px}.world .panel{border-top:3px solid var(--bone)}
.preview{position:fixed;right:18px;bottom:18px;z-index:20;max-width:630px;background:var(--basalt);border:1px solid var(--control-rule);padding:12px 16px;font-size:16px}.preview strong{color:var(--bone);font-weight:600}.preview nav{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:8px}.preview a[aria-current=page]{color:var(--bone)}.preview .small{margin-top:8px;font-size:14px}.preview button{font:inherit;background:none;border:0;color:var(--bless);padding:0;text-decoration:underline}.software-continued{margin-bottom:24px}
@media(min-width:1600px){:root{--rail:480px;--gutter:56px}.rail{padding-top:48px;padding-bottom:40px}.brand.page-brand{top:48px;left:56px}.rail-body h1{font-size:68px}.register .rail-body h1{font-size:60px}.flat-content{width:640px}.flat-content h1{font-size:68px}.panel{width:600px;padding:36px}.map-load .panel{width:600px}}
@media(max-height:760px){.rail{padding-top:32px;padding-bottom:24px;gap:16px}.rail-body{padding-top:8px;padding-bottom:8px}.register .field{margin-bottom:16px}.register .rail-body h1{font-size:52px;margin-bottom:20px}.register .availability{font-size:16px;margin-bottom:20px}.register .form-actions{margin-top:24px}.register .after-form{margin-top:20px}.flat{padding-top:116px;padding-bottom:48px}.flat-content h1{font-size:58px}.support{margin-top:24px}.flat .actions{margin-top:24px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

#mu-shell{position:fixed;inset:0;z-index:10000;pointer-events:none}#mu-shell>*{pointer-events:auto}#mu-shell:empty{display:none}canvas{position:fixed;inset:0;width:100%;height:100%;display:block}#mu-shell .world{pointer-events:none}#mu-shell .panel{pointer-events:auto}

#mu-shell>.flat{background:var(--basalt)}#mu-shell .flat h2{font-size:60px;line-height:1.02;margin-bottom:24px}

[data-mu-guest-banner] { background: var(--basalt); position: fixed; z-index: 20; top: 8px; left: 50%; transform: translateX(-50%); }
[data-mu-guest-banner][hidden] { display: none; }
[data-mu-captcha] { min-height: 65px; margin-block: 12px; }

[data-mu-background] { position: fixed; z-index: 20; right: 12px; bottom: calc(var(--page-h) * .11 + 8px); width: 168px; padding: 6px 10px 8px; background: rgba(27,30,35,.72); color: var(--bone); font-size: 15px; line-height: 1.25; pointer-events: none; user-select: none; }
[data-mu-background][hidden] { display: none; }
[data-mu-background] .bar { height: 4px; margin: 6px 0; }
[data-mu-background] p { font-variant-numeric: tabular-nums; }

.rotate { position: fixed; inset: 0; z-index: 10001; display: flex; align-items: center; justify-content: center; padding: 32px 24px; background: var(--basalt); text-align: center; }
.rotate[hidden] { display: none; }
.rotate-content { max-width: 420px; display: flex; flex-direction: column; align-items: center; gap: 20px; }
.rotate-content h2 { font-size: 44px; }
.rotate-content .actions { margin-top: 8px; justify-content: center; }
.install-hint { position: fixed; z-index: 20; top: 8px; right: 8px; max-width: 360px; padding: 12px 14px; background: var(--basalt); border: 1px solid var(--control-rule); color: var(--bone); font-size: 16px; line-height: 1.35; }
.install-hint strong { font-weight: 600; }
.install-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.install-actions .button { min-height: 40px; padding: 6px 14px; font-size: 16px; }
.game-text { position: fixed; z-index: 30; font-size: 18px; height: 40px; padding: 6px 10px; }
.game-text[hidden] { display: none; }

/* Sideways (shell/mobile.js): a portrait phone lays the page out in the swapped viewport and turns it a
   quarter clockwise. Fixed children (canvas, shell, overlays) are laid out in the turned body. The compact
   rules repeat the max-height:760px block, which the portrait viewport does not match. */
:root[data-mu-rotated]{--page-h:var(--rotated-h)}
:root[data-mu-rotated],:root[data-mu-rotated] body{overflow:hidden}
:root[data-mu-rotated] body{position:fixed;top:0;left:0;width:var(--rotated-w);height:var(--rotated-h);min-height:0;transform-origin:0 0;transform:translateX(var(--rotated-h)) rotate(90deg)}
:root[data-mu-rotated] .rail{padding-top:32px;padding-bottom:24px;gap:16px}:root[data-mu-rotated] .rail-body{padding-top:8px;padding-bottom:8px}:root[data-mu-rotated] .register .field{margin-bottom:16px}:root[data-mu-rotated] .register .rail-body h1{font-size:52px;margin-bottom:20px}:root[data-mu-rotated] .register .availability{font-size:16px;margin-bottom:20px}:root[data-mu-rotated] .register .form-actions{margin-top:24px}:root[data-mu-rotated] .register .after-form{margin-top:20px}:root[data-mu-rotated] .flat{padding-top:116px;padding-bottom:48px}:root[data-mu-rotated] .flat-content h1{font-size:58px}:root[data-mu-rotated] .support{margin-top:24px}:root[data-mu-rotated] .flat .actions{margin-top:24px}
.upright { position: fixed; z-index: 10002; right: 8px; top: 8px; min-height: 40px; padding: 6px 14px; font-size: 16px; }
.upright[hidden] { display: none; }
