:root{font-family:Tahoma,Arial,sans-serif;color:#e3dbc5;background:#080c0e;font-synthesis:none;color-scheme:dark}*{box-sizing:border-box}html,body,#game{width:100%;height:100%;margin:0;overflow:hidden}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:wait}#game{position:relative;isolation:isolate}#login-video,#shade{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none}#shade{background:linear-gradient(0deg,#0008,transparent 22%)}#stage{position:absolute;width:800px;height:600px;transform-origin:0 0}#game-canvas,#controls{position:absolute;inset:0;width:800px;height:600px}#game-canvas{pointer-events:none}#controls{font:11px Tahoma,Arial,sans-serif;line-height:1.2}.control{position:absolute;margin:0;padding:0;border:0;background:transparent;color:#b4a794;white-space:nowrap;text-shadow:0 1px 2px #000}.control.label{pointer-events:none}.control.button{color:#c8beaa;outline-offset:2px}.control.button:hover{color:#fff0bd;text-shadow:0 0 5px #f9d99a}.control.button:active{filter:brightness(.8)}.control:focus-visible{outline:1px solid #d9c17e}.control.input{color:#fff;border:0;padding:3px 9px;outline:0;text-align:center;text-shadow:0 1px 2px #000;caret-color:#e2bd65;border-radius:2px}.control.input:focus{box-shadow:inset 0 0 0 1px #d5b96d88}.control.input:disabled{opacity:.6}.control.input::placeholder{color:#aaa08b;opacity:.8}.control.checkbox{border:0}.control.server-row{height:19px;text-align:left;padding:2px 4px;width:108px;color:#bbb0a0}.control.server-row[aria-selected=true]{background:#a48c4d35;color:#fff0ba;box-shadow:inset 2px 0 #d5b270}.server-list{position:absolute;width:110px;height:70px}.server-list .server-row{left:0;top:0}.server-title{color:#ccc3aa}.modal-scrim{position:absolute;inset:0;background:#0008;pointer-events:auto}.modal-surface{position:absolute;left:216px;top:223px;width:368px;height:154px;z-index:2}.modal-copy{position:absolute;left:12px;right:12px;top:35px;text-align:center;font-size:10px;line-height:1.55;color:#b7b0a0;margin:0;white-space:normal}.modal-link{display:block;color:#d9c8a5;overflow-wrap:anywhere;margin-top:5px}.modal-accept{position:absolute;left:112px;top:113px;width:144px;height:41px;border:0;color:#e5d4ae;background:transparent;text-shadow:0 1px 2px #000}.modal-close{position:absolute;right:170px;top:0;width:28px;height:28px;border:0;background:transparent;color:transparent}.modal-close:focus-visible{color:#fff}.auth-result{position:absolute;left:245px;top:292px;width:310px;max-height:240px;overflow:auto;background:#0b1016ed;border:1px solid #756240;padding:18px;text-align:center;color:#d6cba9}.auth-result h1{font-size:16px;margin:0 0 12px}.auth-result ul{list-style:none;padding:0;margin:12px 0}.auth-result li{padding:4px;color:#fff0c9}.auth-result p{white-space:normal;line-height:1.5}.auth-result button{border:1px solid #78623e;background:#232627;color:#e3d7b9;padding:6px 20px}#loading{position:absolute;inset:0;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#0a1014;transition:opacity .2s}#loading[hidden]{display:none}#loading p{font-size:14px;margin:18px 0 8px}#loading small{font-size:11px;color:#8f948f}.spinner{width:30px;height:30px;border:1px solid #383325;border-top-color:#d1b677;border-radius:50%;animation:spin 1.1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#message{position:absolute;left:50%;top:80%;transform:translateX(-50%);max-width:min(520px,90%);background:#11191bef;border:1px solid #817048;padding:12px 22px;text-align:center;font-size:12px;line-height:1.5;z-index:9;box-shadow:0 4px 20px #0008}footer{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:8px 14px;color:#b7b5a7;font-size:10px;gap:10px;background:linear-gradient(transparent,#070c11dd);z-index:11}footer button{border:0;background:none;color:#aaa89b;font-size:10px;padding:5px 7px}footer button:hover,footer button:focus-visible{color:#f5dfaa}.footer-actions{display:flex;gap:4px}#details{position:absolute;right:15px;bottom:43px;width:min(340px,90vw);background:#0b1219f5;border:1px solid #4d4836;padding:18px;font-size:11px;line-height:1.6;z-index:12;box-shadow:0 10px 40px #0008}#details h2{font:14px Georgia,serif;color:#d4bc85;margin:0 0 12px}#details p{margin:8px 0}#network-note{color:#bca57a}[hidden]{display:none!important}@media(prefers-reduced-motion:reduce){.spinner{animation:none}#loading{transition:none}}@media(max-width:580px){footer{font-size:9px;padding:5px 6px}footer button{font-size:9px;padding:4px}.footer-actions{gap:0}#connection{max-width:45%}}
#game{user-select:none;-webkit-user-select:none}
#game input,#game textarea{user-select:text;-webkit-user-select:text}
.native-dialog-control{position:absolute;display:flex;align-items:center;justify-content:center;white-space:nowrap;padding:0;margin:0;border:0;background:transparent;color:#fff;font:inherit;line-height:1.15;pointer-events:none}
.native-dialog-message{justify-content:flex-start;align-items:flex-start;overflow:visible}
.native-dialog-action{pointer-events:auto;cursor:pointer}
.native-dialog-action:focus-visible{outline:1px solid #d1ba79;outline-offset:1px}
.native-dialog-action:disabled{cursor:wait;opacity:.6}
.native-confirmation{position:absolute;inset:0;pointer-events:auto}
#dialog-layer{position:absolute;inset:0;pointer-events:auto}
.native-link-label{text-align:center;line-height:16px;color:#fff;pointer-events:none}
/* Shared browser transition surface, separate from native RC game windows. */
#loading{z-index:30;padding:28px;background:radial-gradient(ellipse at 50% 20%,#1b3445 0,transparent 64%),linear-gradient(150deg,#090e13,#10191d 55%,#080b0e);outline:0;transition:none;overflow:auto}
.load-panel{width:min(580px,100%);padding:38px 34px 28px;border:1px solid #857348;background:linear-gradient(135deg,#1b2527f5,#0c1418f5);box-shadow:0 0 0 5px #090f13,0 0 0 6px #403c2c,0 20px 90px #000a;text-align:center;color:#d3c9b2}
.load-brand{font-family:OriginalConstantia,Constantia,Georgia,serif;font-size:clamp(21px,4vw,34px);letter-spacing:.07em;color:#dece9c;text-shadow:0 2px 1px #000;margin:0 0 38px}.load-brand span{font-size:.5em;letter-spacing:0;color:#a79467}
#loading .load-eyebrow{font-size:10px;letter-spacing:.18em;color:#8ca3a7}
#loading h1{font-size:20px;font-weight:400;margin:12px 0 0;line-height:1.4}
#loading #load-status{font-size:13px;line-height:1.5;min-height:40px;margin:14px 0;color:#aea998;overflow-wrap:anywhere}
.load-meter{display:flex;align-items:center;gap:12px}.load-track{height:15px;flex:1;padding:2px;border:1px solid #766642;background:#050a0d;box-shadow:inset 0 1px 4px #000}
.load-fill{height:100%;width:0;background:linear-gradient(#7dd5e2,#287b9a 50%,#1c5268 51%,#409caf);box-shadow:0 0 8px #58b5cc55;transition:width .15s linear}
#load-percent{width:38px;font-size:13px;font-variant-numeric:tabular-nums;text-align:right;color:#e0cc94}
#loading #load-count{display:block;min-height:32px;font-size:11px;margin:10px 0 20px;color:#999d96}
.load-hint{border-top:1px solid #665a3a;padding-top:18px;min-height:90px}.load-hint>span{font-size:10px;letter-spacing:.18em;color:#c4a86a}
#loading #load-tip{font-size:14px;line-height:1.55;margin:10px 0 0;color:#b9c1bb}
#load-retry{padding:8px 24px;border:1px solid #8d8055;color:#f0e6cc;background:linear-gradient(#36798e,#173b50);font-size:14px}#load-retry:focus-visible{outline:2px solid #e3cf83;outline-offset:4px}
#loading[data-state=waiting] .load-fill{width:22%!important;animation:load-wait 1.8s ease-in-out infinite}#loading[data-state=error] #load-status{color:#e0b49a}
@keyframes load-wait{from{transform:translateX(0)}50%{transform:translateX(350%)}to{transform:translateX(0)}}
@media(prefers-reduced-motion:reduce){.load-fill{transition:none}#loading[data-state=waiting] .load-fill{animation:none}}
@media(max-width:480px),(max-height:540px){#loading{padding:12px}.load-panel{padding:20px}.load-brand{margin-bottom:16px}.load-hint{min-height:65px}#loading h1{font-size:18px}}
#game.native-cursors,#game.native-cursors *{cursor:var(--native-cursor,default)!important}

/* Portal links are outside the native fixed-size login layout. */
#game>footer{flex-direction:column;align-items:stretch;gap:7px;background:linear-gradient(transparent,#060a0ae8 26%);padding:12px 14px 9px;color:#c0b69d}
.footer-status,.footer-links{display:flex;align-items:center;justify-content:space-between;gap:8px 18px;flex-wrap:wrap}
.footer-legal,.footer-social{display:flex;align-items:center;gap:5px 13px;flex-wrap:wrap}
#game>footer a,#game>footer button{color:#d1c5aa;font:inherit;line-height:1.5;text-decoration:none;white-space:nowrap}
#game>footer a:hover,#game>footer button:hover{color:#fff0c7;text-decoration:underline}
#game>footer a:focus-visible,#game>footer button:focus-visible{outline:1px solid #dac98b;outline-offset:3px}
body.selecting #game>footer,body.in-field #game>footer{display:none}
#cookie-dialog{box-sizing:border-box;width:min(510px,calc(100% - 28px));max-height:calc(100dvh - 28px);overflow:auto;margin:auto;padding:24px;color:#ded4bd;background:#111a1e;border:1px solid #8b7952;box-shadow:0 14px 70px #000a;font:13px/1.55 OriginalLeelawadee,Arial,sans-serif}
#cookie-dialog::backdrop{background:#000a}
#cookie-dialog h2{margin:0 0 15px;font-size:19px;font-weight:400;color:#edddb3}
#cookie-dialog p{margin:12px 0}
#cookie-dialog a{color:#9cd0e1}
#cookie-dialog .cookie-option{display:flex;align-items:center;gap:9px;margin:14px 0}
#cookie-dialog .cookie-option span{margin-left:auto;color:#b4ba9e;font-size:11px}
#cookie-dialog input{accent-color:#56a1b7;flex:none}
#cookie-dialog input:disabled{opacity:.7}
.cookie-dialog-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:18px}
.cookie-dialog-actions button{padding:6px 16px;color:#f3e9cf;background:linear-gradient(#347e95,#143b50);border:1px solid #8f8057;font:inherit;cursor:pointer}
#cookie-dialog :focus-visible{outline:2px solid #dac98b;outline-offset:3px}
#cookie-result{color:#efd17f;min-height:1.55em}
@media(max-width:580px){#game>footer{font-size:10px;padding:9px 9px 7px;gap:5px}.footer-status,.footer-links{gap:5px}.footer-legal,.footer-social{gap:3px 10px}#cookie-dialog{padding:18px}#cookie-dialog .cookie-option{flex-wrap:wrap}}
@media(max-height:500px){#game>footer{font-size:9px;padding:5px 8px}.footer-status,.footer-links{gap:3px 10px}.footer-legal,.footer-social{gap:1px 9px}}

/* Official portal identity and brand glyphs; scoped to login/footer only. */
@font-face{font-family:PortalBrands;src:url('/portal/social-brands-subset.woff2?v=2a0a2fda0067') format('woff2');font-style:normal;font-weight:400;font-display:block}
#loading .load-brand{display:block;width:180px;height:180px;max-width:60%;object-fit:contain;margin:0 auto 20px}
.footer-identity{display:flex;align-items:center;gap:8px;color:#cfcfcf;text-transform:uppercase;letter-spacing:.04em}
.footer-identity img{width:50px;height:50px;object-fit:contain}
#game>footer .footer-legal a,#game>footer .footer-legal button{color:#b1b1b1}
#game>footer .footer-legal a:hover,#game>footer .footer-legal button:hover{color:#ff9d00}
#game>footer .portal-social{display:flex;flex:none;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;border:1px solid #3c3c3b;box-shadow:0 0 1px 0 #3c3c3b inset,0 0 1px 0 #3c3c3b;position:relative;text-decoration:none}
#game>footer .portal-social::after{content:'';width:calc(100% - 8px);height:calc(100% - 8px);border-radius:50%;background:#3c3c3b;position:absolute;top:4px;left:4px;z-index:1;transition:background .3s ease-in-out}
#game>footer .portal-social-orange{border-color:#ff9c00;box-shadow:0 0 1px 0 #ff9c00 inset,0 0 1px 0 #ff9c00}
#game>footer .portal-social-orange::after{background:#ff9c00}
#game>footer .portal-social:hover::after{background:#61615f}
#game>footer .portal-social-orange:hover::after{background:#ffc63c}
#game>footer .portal-brand{font:normal 16px/1 PortalBrands;position:relative;z-index:2;color:#cfcfcf}
#game>footer .portal-social:hover .portal-brand{color:#fff}
#game>footer .portal-social-orange .portal-brand,#game>footer .portal-social-orange:hover .portal-brand{color:#1f1f1f}
.portal-brand-discord::before{content:'\f392'}.portal-brand-youtube::before{content:'\f167'}.portal-brand-facebook::before{content:'\f09a'}.portal-brand-instagram::before{content:'\f16d'}.portal-brand-twitter::before{content:'\f099'}
@media(max-width:650px){.footer-identity{display:none}.footer-links{justify-content:center}.footer-social{gap:8px}.footer-legal{justify-content:center}#game>footer .portal-social{width:32px;height:32px}}
@media(max-height:650px){#loading .load-brand{width:110px;height:110px;margin-bottom:12px}.footer-identity img{width:36px;height:36px}#game>footer .portal-social{width:30px;height:30px}#game>footer .portal-brand{font-size:13px}}
@media(prefers-reduced-motion:reduce){#game>footer .portal-social::after{transition:none}}

/* Optional equivalent controls; native server rows keep their original art
   and geometry. The inverse-scale variable preserves 24px screen targets. */
.server-accessible{z-index:4;min-width:calc(var(--login-target-size,24px)*7);color:#ddd6bd;font:calc(var(--login-target-size,24px)*.5)/1.3 Tahoma,sans-serif}
.server-accessible[hidden]{display:none}
.server-accessible summary,.server-accessible select{min-height:var(--login-target-size,24px)!important;min-width:var(--login-target-size,24px)!important;box-sizing:border-box;border:1px solid #756a42;background:#171b1d;color:#eee1ba;cursor:pointer}
.server-accessible summary{padding:4px 7px;list-style-position:inside}
.server-accessible[open]{padding:6px;background:#171b1df5;border:1px solid #756a42;max-height:45vh;overflow:auto}
.server-accessible label{display:block;margin-top:6px}
.server-accessible label span{display:block;margin-bottom:3px}
.server-accessible select{display:block;width:100%;font:inherit;padding:3px}
.server-accessible summary:focus-visible,.server-accessible select:focus-visible{outline:2px solid #e0b958;outline-offset:2px}
.server-accessible[data-unscaled=true]{--login-target-size:24px;max-height:calc(100vh - var(--login-footer-height,80px) - 16px);overflow:auto}

/* Canvas and input surface share the entire resized logical client area. */
#stage>#game-canvas,#stage>#controls{width:100%;height:100%}
