/*! Belfast Life (c) 2026 Belfast Life. All rights reserved. Copying or reuse is not permitted. Map data (c) OpenStreetMap contributors, ODbL. */
*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#0d1117;color:#f1f1f1;font-family:Trebuchet MS,Segoe UI,system-ui,sans-serif;user-select:none;-webkit-user-select:none}#game{position:fixed;inset:0;width:100%;height:100%;display:block}#night{position:fixed;inset:0;width:100%;height:100%;pointer-events:none}#night[hidden]{display:none}.hidden{display:none!important}.overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,#141e32d9,#000000f2);z-index:20;padding:16px}.card{width:100%;max-width:400px;background:#161b24;border:2px solid #f2b705;border-radius:10px;padding:24px;box-shadow:0 10px 40px #000}.card h1{margin:0;font-size:40px;letter-spacing:2px;font-style:italic;text-shadow:3px 3px 0 #000}.card h1 span{color:#f2b705}.tag{margin:4px 0 18px;color:#aaa}.tabs{display:flex;gap:6px;margin-bottom:12px}.tabs button{flex:1;padding:8px;background:#222a36;color:#ccc;border:0;border-radius:6px;cursor:pointer;font-size:15px}.tabs button.active{background:#f2b705;color:#111;font-weight:700}form input,#chatInput{width:100%;padding:11px;margin-bottom:10px;border-radius:6px;border:1px solid #333;background:#0d1117;color:#fff;font-size:16px}form button[type=submit]{width:100%;padding:12px;background:#f2b705;border:0;border-radius:6px;font-weight:700;font-size:17px;cursor:pointer}.err{color:#ff6b6b;min-height:20px;margin-top:8px}.credit{margin-top:10px;font-size:11px;color:#778}.credit a,#osm,#osm a{color:#9ab}#osm{position:absolute;left:50%;bottom:2px;transform:translate(-50%);font-size:10px;pointer-events:auto;background:#00000073;padding:1px 6px;border-radius:4px;text-decoration:none;white-space:nowrap}.help{margin-top:14px;font-size:13px;color:#9aa;line-height:1.6}@font-face{font-family:Bangers;src:url(fonts/bangers.woff2) format("woff2");font-display:swap}@font-face{font-family:Comic Neue;font-weight:400;src:url(fonts/comicneue-400.woff2) format("woff2");font-display:swap}@font-face{font-family:Comic Neue;font-weight:700;src:url(fonts/comicneue-700.woff2) format("woff2");font-display:swap}#auth{background:#1b1f3b;align-items:flex-start;overflow-y:auto;padding:18px 12px 28px;color:#111;font-family:Comic Neue,Trebuchet MS,sans-serif;user-select:text;-webkit-user-select:text}#auth .cover{margin:auto;width:min(560px,100%);background:#fff;border:6px solid #111;box-shadow:10px 10px #e62429;overflow:hidden}#auth .mast{background:#e62429;border-bottom:6px solid #111;display:flex;align-items:stretch}#auth .issue{background:#fff;border-right:6px solid #111;padding:6px 10px;font:18px/1 Bangers,Impact,sans-serif;text-align:center}#auth .issue b{display:block;font-size:34px;font-weight:400}#auth h1{flex:1;margin:0;padding:6px 10px 2px;font:clamp(40px,10vw,74px)/.95 Bangers,Impact,sans-serif;color:#ffd21f;letter-spacing:3px;-webkit-text-stroke:2px #111;text-shadow:4px 4px 0 #111}#auth .art{position:relative;min-height:330px;background:radial-gradient(circle,rgba(0,0,0,.22) 1.3px,transparent 1.6px) 0 0 / 9px 9px,linear-gradient(#5ec2ff,#b7e6ff 55%,#ffe39a)}#auth .sky{position:absolute;left:0;right:0;bottom:0;display:block;width:100%;height:auto}#auth .blurb{position:absolute;left:14px;top:14px;max-width:58%;font:26px/1.05 Bangers,Impact,sans-serif;background:#ffd21f;border:4px solid #111;padding:8px 12px;transform:rotate(-4deg);box-shadow:4px 4px #111}#auth .bubble{position:absolute;right:18px;top:108px;z-index:2;background:#fff;border:4px solid #111;border-radius:50%;padding:18px 20px;font-weight:700;font-size:15px;max-width:40%;text-align:center}#auth .bubble:after{content:"";position:absolute;bottom:-22px;left:30%;border:12px solid transparent;border-top:16px solid #111}#auth .price{position:absolute;right:14px;top:14px;z-index:2;background:#e62429;color:#fff;border:4px solid #111;border-radius:50%;width:74px;height:74px;display:flex;align-items:center;justify-content:center;font:20px/1 Bangers,Impact,sans-serif;text-align:center;transform:rotate(10deg)}#auth .panel{border-top:6px solid #111;background:#fff8e1;padding:14px 16px}#auth .cap{font:20px Bangers,Impact,sans-serif;background:#ffd21f;border:3px solid #111;display:inline-block;padding:2px 10px;margin-bottom:10px;letter-spacing:1px}#auth .tabs{gap:8px;margin-bottom:10px}#auth .tabs button{padding:8px;border:3px solid #111;border-radius:6px;font:22px Bangers,Impact,sans-serif;letter-spacing:1px;background:#fff;color:#111}#auth .tabs button.active{background:#ffd21f}#auth form input{padding:11px 12px;border:3px solid #111;font:700 17px Comic Neue,sans-serif;background:#fff;color:#111}#auth form button[type=submit]{padding:10px;border:4px solid #111;border-radius:8px;font:32px Bangers,Impact,sans-serif;letter-spacing:2px;color:#fff;background:#e62429;box-shadow:5px 5px #111;text-shadow:2px 2px 0 #111}#auth form button[type=submit]:active{transform:translate(3px,3px);box-shadow:2px 2px #111}#auth .err{color:#c00;font-weight:700}#auth .help{margin-top:6px;color:#222;font-size:13px;line-height:1.5}#auth .ideas{margin-top:12px;padding:8px 10px;background:#fff;border:3px solid #111;border-radius:6px;font-weight:700;font-size:14px;box-shadow:3px 3px #ffd21f}#auth .ideas a{color:#e62429;word-break:break-all}#auth .credit{color:#555}#auth .credit a{color:#1e6fd9}@media(max-width:480px){#auth .art{min-height:260px}#auth .blurb{font-size:20px;max-width:64%}#auth .bubble{top:100px;padding:12px;font-size:13px;max-width:44%}#auth .price{width:60px;height:60px;font-size:16px}#auth .issue b{font-size:28px}}#hud{position:fixed;inset:0;pointer-events:none;z-index:5}#stats{position:absolute;left:12px;top:12px;width:210px;text-shadow:2px 2px 0 #000}#money{font-size:30px;color:#7cfc7c;font-weight:700;font-style:italic}#clock{font-size:16px;margin-bottom:4px}#wanted{font-size:22px;color:#ffd400;height:26px;letter-spacing:2px}.bar{display:flex;align-items:center;gap:6px;font-size:12px;margin:3px 0}.bar label{width:46px}.bar i{flex:1;height:10px;background:#0009;border:1px solid #000}.bar b{display:block;height:100%;width:50%;background:#4caf50;transition:width .3s}#edu,#district{font-size:13px;color:#ddd;margin-top:3px}#district{color:#f2b705;font-weight:700}#right{position:absolute;right:12px;top:12px;width:184px;text-align:right}#minimap{border:2px solid #000;background:#000;border-radius:6px;box-shadow:0 2px 10px #000}#miniWrap{position:relative;display:inline-block}#minimap{pointer-events:auto;cursor:pointer;display:block}#mapBadge{position:absolute;left:5px;bottom:6px;background:#000000b3;color:#f2b705;font-size:10px;font-weight:700;padding:1px 5px;border-radius:4px;pointer-events:none}#tbtns #runBtn.on{background:#f2b705;color:#111;border-color:#fff}#city,#lb{font-size:12px;background:#0000008c;border-radius:6px;padding:6px 8px;margin-top:6px;text-align:left}#lb ol{margin:2px 0 0;padding-left:20px}#lb .on{color:#7cfc7c}#hint{position:absolute;bottom:90px;left:50%;transform:translate(-50%);background:#000000b3;padding:8px 16px;border-radius:20px;font-size:15px;white-space:nowrap}#hint:empty{display:none}#mission{position:absolute;top:12px;left:50%;transform:translate(-50%);background:#f2b705eb;color:#111;padding:6px 14px;border-radius:6px;font-weight:700}#topbars{position:absolute;top:12px;left:50%;transform:translate(-50%);width:min(560px,calc(100vw - 420px));display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none}#topbars #mission{position:static;transform:none;white-space:pre-line;text-align:center}#mission.late{background:#ff5252f2;color:#fff}#eventBar{background:#4c1d95eb;color:#fff;padding:6px 14px;border-radius:6px;font-weight:700;font-size:14px;text-align:center}#topbars #toasts{position:static;transform:none}#toasts{position:absolute;top:70px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:6px}.toast{background:#000c;padding:8px 16px;border-radius:6px;border-left:4px solid #4fa3ff;animation:fade 4s forwards}.toast.good{border-color:#4caf50}.toast.bad{border-color:#ff5252}.toast.big{font-size:42px;font-weight:700;font-style:italic;color:#ff3b3b;border:0;background:none;text-shadow:3px 3px 0 #000}@keyframes fade{0%,80%{opacity:1}to{opacity:0}}#chat{position:absolute;left:12px;bottom:12px;width:min(380px,60vw);pointer-events:auto}#chatLog{max-height:150px;overflow-y:auto;font-size:13px;text-shadow:1px 1px 0 #000;margin-bottom:4px}#chatLog div{padding:1px 0}#chatLog .sys{color:#aaa;font-style:italic}#chatInput{margin:0;padding:7px;font-size:13px;background:#00000080}#logout{position:absolute;right:12px;bottom:12px;pointer-events:auto;background:#0009;color:#fff;border:1px solid #444;border-radius:6px;padding:6px 10px;cursor:pointer}#panel{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:min(440px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow-y:auto;background:#161b24;border:2px solid #f2b705;border-radius:10px;padding:18px;z-index:10;box-shadow:0 10px 40px #000}#panel h2{margin:0 0 4px}#panel .sub{color:#aaa;margin-bottom:12px;font-size:14px}#panel .act{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-top:1px solid #262d3a}#panel .act small{color:#999;display:block}#panel .act button,#panelClose{background:#f2b705;border:0;border-radius:6px;padding:8px 12px;font-weight:700;cursor:pointer;white-space:nowrap}#panel .act button:disabled{background:#444;color:#888;cursor:not-allowed}#panelClose{width:100%;margin-top:12px;background:#333;color:#fff}.swatches{display:flex;gap:6px;margin:6px 0}.swatches span{width:26px;height:26px;border-radius:50%;cursor:pointer;border:3px solid transparent}.swatches span.sel{border-color:#fff}#bigmapWrap{position:fixed;inset:0;background:#000000d9;z-index:12;display:flex;align-items:center;justify-content:center;flex-direction:column}#bigmap{max-width:96vw;max-height:88vh;border:2px solid #f2b705;border-radius:6px}.maphint{margin-top:6px;color:#aaa;font-size:12px;text-align:center;padding:0 8px}#bigmap{touch-action:none;cursor:grab}#mapCtl{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap;justify-content:center}#mapCtl button,#zoomBtns button{background:#222a36;color:#fff;border:1px solid #f2b705;border-radius:6px;padding:6px 12px;font-size:15px;cursor:pointer}#mapIn,#mapOut{min-width:42px;font-weight:700}#legend{position:absolute;left:12px;top:12px;width:270px;max-width:calc(100vw - 24px);max-height:60vh;overflow-y:auto;background:#0d1117eb;border:1px solid #f2b705;border-radius:8px;font-size:13px}#legendHead{padding:7px 10px;font-weight:700;color:#f2b705;cursor:pointer}#legendHead:after{content:" \25be"}#legend.shut #legendHead:after{content:" \25b8"}#legend.shut #legendBody{display:none}#legendBody{padding:0 10px 8px}#legend .key{line-height:1.9;color:#ddd}#legend .key span{display:inline-block;white-space:nowrap;margin-right:10px}#legend .key i{display:inline-block;width:10px;height:10px;margin-right:4px;vertical-align:-1px;border:1px solid #000}#legend .mine{margin-top:6px;border-top:1px solid #333;padding-top:6px}#legend .none{color:#999;margin-top:4px}#legend .item{display:flex;gap:8px;align-items:center;padding:5px 0;cursor:pointer;border-bottom:1px solid #222}#legend .item:hover{background:#1c2430}#legend .item small{display:block;color:#9ab}#legend .pin{flex:none;width:20px;height:20px;border-radius:50%;border:2px solid #fff;color:#000;font-weight:700;font-size:11px;display:flex;align-items:center;justify-content:center}#zoomBtns{display:flex;gap:6px;justify-content:flex-end;margin-top:4px;pointer-events:auto}#zoomBtns button{padding:2px 12px;font-size:18px;font-weight:700;touch-action:manipulation}#game{touch-action:none}#touch{position:fixed;inset:0;pointer-events:none;z-index:6}#stick{position:absolute;left:24px;bottom:200px;width:130px;height:130px;border-radius:50%;background:#ffffff1f;border:2px solid rgba(255,255,255,.3);pointer-events:auto;touch-action:none}#knob{position:absolute;left:40px;top:40px;width:50px;height:50px;border-radius:50%;background:#ffffff73}#tbtns{position:absolute;right:16px;bottom:90px;display:grid;grid-template-columns:1fr 1fr;gap:10px;pointer-events:auto}#tbtns button{width:70px;height:70px;border-radius:50%;border:2px solid rgba(255,255,255,.4);background:#00000073;color:#fff;font-weight:700;touch-action:none}#bankline{font-size:13px;color:#cde;margin-bottom:2px}#taskBar{position:absolute;left:50%;bottom:130px;transform:translate(-50%);width:min(360px,80vw);background:#000c;border:2px solid #f2b705;border-radius:10px;padding:10px 12px;pointer-events:auto;text-align:center}#taskLabel{font-weight:700;margin-bottom:6px}#taskBar i{display:block;height:12px;background:#222;border-radius:6px;overflow:hidden}#taskBar b{display:block;height:100%;width:0;background:#f2b705;transition:width .2s linear}#taskBar button,#rideBar button{margin-top:8px;background:#444;color:#fff;border:0;border-radius:6px;padding:6px 14px;cursor:pointer}#rideBar{position:absolute;left:50%;top:60px;transform:translate(-50%);background:#000c;border:2px solid #ffd400;border-radius:10px;padding:8px 14px;pointer-events:auto;display:flex;gap:12px;align-items:center;white-space:nowrap}#rideBar button{margin:0;background:#ffd400;color:#111;font-weight:700}#quick{position:absolute;right:64px;bottom:12px;display:flex;gap:6px;pointer-events:auto}#quick button{background:#0009;color:#fff;border:1px solid #444;border-radius:6px;padding:6px 10px;cursor:pointer}#panel .pin{width:100%;margin-top:6px;padding:7px;border-radius:6px;border:1px solid #333;background:#0d1117;color:#fff;font-size:14px}#panel .minirow{display:flex;gap:6px;align-items:center;margin-top:4px}#panel .minirow .pin{width:80px;margin:0}#panel .minirow button{padding:6px 8px;font-size:12px}#panel .chk{display:block;font-size:13px;margin-top:4px;color:#ddd}#panel .act>div{flex:1;min-width:0}@media(max-width:700px){#topbars{top:236px;width:calc(100vw - 24px)}#mission,#eventBar{font-size:12px}#stats{width:160px}#money{font-size:22px}#right{width:130px}#minimap{width:126px;height:98px}#lb{display:none}#chatLog{max-height:54px;font-size:11px}#city{font-size:10px}#hint{bottom:345px;font-size:13px}#edu,#quick{display:none}#taskBar{bottom:345px}}
