:root{--sea:#a9c5c2;--paper:#f1e8d2;--paper2:#e5d9bb;--ink:#1f2a24;--ink2:#5d6a5f;--border:#c9bb94;--danger:#c2412d;--waterLine:#2f5c63;--enamel:#1e4636;--enamelDeep:#15332a;--enamelEdge:#2f5c49;--cream:#f1e6c8;--creamDim:#bfc3a8;--brass:#caa24c;--brassHi:#e6c97f;--maroon:#7a2433;--board:#101815;--flap:#1b2521;--amber:#f2b84b;--display:"DIN Alternate","DIN Condensed","Bahnschrift","Avenir Next Condensed","Roboto Condensed","Arial Narrow",sans-serif;--body:"Avenir Next","Segoe UI","Helvetica Neue",system-ui,sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--enamelDeep);color:var(--ink);overflow:hidden;font-family:var(--body);user-select:none;-webkit-user-select:none}canvas{display:block;position:fixed;inset:0;touch-action:none}.card{--ink:var(--cream);--ink2:var(--creamDim);--paper2:#2b5141;--panelEdge:var(--enamelEdge);color:var(--cream);background:var(--enamel);border:1px solid var(--enamelDeep);border-radius:10px;box-shadow:inset 0 0 0 1px #caa24c61,0 8px 24px #08140f47}button{font:inherit;color:inherit;background:var(--enamelDeep);border:1px solid var(--enamelEdge);border-radius:7px;padding:5px 9px;cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:border-color .12s,background .12s}button:hover{border-color:var(--brass)}button.on{border-color:var(--brassHi);box-shadow:inset 0 0 0 1px var(--brassHi);background:#22503d}button:disabled{opacity:.38;cursor:default;border-color:var(--enamelEdge)}button.primary,.go{background:var(--brass);color:var(--enamelDeep);border-color:var(--brassHi);font-weight:700}button.primary:hover,.go:hover{background:var(--brassHi)}.cost{font-size:11px;color:var(--creamDim);font-variant-numeric:tabular-nums}h1,h2,h3,h4,.brand{font-family:var(--display)}input{font:inherit;color:var(--cream);background:var(--enamelDeep);border:1px solid var(--enamelEdge);border-radius:7px;padding:8px 10px}input:focus{outline:none;border-color:var(--brass)}input::placeholder{color:#7f8f80}#top{position:fixed;top:12px;left:12px;display:flex;gap:8px;align-items:center;padding:6px 10px}#top .brand{font-weight:700;letter-spacing:.16em;text-transform:uppercase;margin-right:4px;font-size:15px}#top .ver{font-family:var(--body);font-weight:400;font-size:10.5px;letter-spacing:0;color:var(--creamDim);text-transform:none}#top .clock{font-family:var(--display);font-variant-numeric:tabular-nums;color:var(--amber);background:var(--board);padding:2px 7px;border-radius:4px;min-width:50px;text-align:center;letter-spacing:.06em}#panel{position:fixed;left:12px;top:64px;width:240px;padding:12px;font-size:13px;max-height:calc(100vh - 150px);overflow-y:auto}#panel h3{margin:12px 0 6px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--brassHi);font-weight:700;display:flex;align-items:center;gap:8px}#panel h3:after{content:"";flex:1;height:1px;background:#caa24c59}#panel h3:first-of-type{margin-top:8px}#panel .row{display:flex;flex-wrap:wrap;gap:5px;align-items:center}#panel .me{display:flex;align-items:center;gap:8px;font-weight:700;font-size:15px;font-family:var(--display);letter-spacing:.04em}#panel .bank{display:inline-block;width:60px;height:6px;border-radius:3px;background:var(--board);overflow:hidden}#panel .bank i{display:block;height:100%;background:var(--amber)}#panel .lvl{min-width:44px;text-align:center;font-weight:700;font-variant-numeric:tabular-nums}#panel .coins{margin-left:auto;font-variant-numeric:tabular-nums;font-size:17px;color:var(--brassHi)}#panel .inc{display:flex;gap:10px;flex-wrap:wrap;color:var(--creamDim);font-variant-numeric:tabular-nums}#panel .inc span{display:inline-flex;align-items:center;gap:3px}#players{position:fixed;right:12px;top:12px;width:244px;padding:8px 10px;font-size:12.5px;max-height:calc(100vh - 110px);overflow-y:auto}#players .p{display:flex;align-items:center;gap:7px;padding:3px 0;border-bottom:1px dotted rgba(202,162,76,.22)}#players .p:last-child{border-bottom:0}#players .p span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#players .p.dead{opacity:.35;text-decoration:line-through}#players .me{font-weight:700;color:var(--brassHi)}#players .bar{flex:1;height:5px;border-radius:3px;background:var(--board);overflow:hidden;min-width:18px}#players .bar i{display:block;height:100%;background:var(--danger)}#players .tg{display:inline-flex;align-items:center;gap:2px;color:var(--creamDim);width:30px}#cheats{position:fixed;top:auto;left:50%;bottom:64px;transform:translate(-50%);width:214px;padding:8px 10px;font-size:12.5px}#cheats h4{margin:0 0 6px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--brassHi);font-weight:700}#cheats .row{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:5px}#lines{position:fixed;bottom:14px;left:50%;transform:translate(-50%);display:flex;gap:6px;padding:7px 9px;align-items:center}#lines .sw{white-space:nowrap;display:inline-flex;align-items:center;gap:6px;padding:4px 6px 4px 8px}#lines .dot{width:22px;height:7px;border-radius:4px;box-shadow:0 0 0 1px #f1e6c880}#lines .x{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;border:1px solid var(--enamelEdge);font-size:13px;line-height:1;color:var(--creamDim)}#lines .x:hover{color:var(--cream);background:var(--danger);border-color:var(--danger)}#cam{position:fixed;right:12px;bottom:14px;display:flex;gap:4px;padding:5px}#cartouche{position:fixed;left:12px;bottom:14px;padding:6px 14px 7px;background:var(--paper);color:var(--ink);border:1.5px solid var(--ink);box-shadow:inset 0 0 0 3px var(--paper),inset 0 0 0 4px #1f2a2473;pointer-events:none;text-align:center}#cartouche small{display:block;font-family:var(--display);font-size:9px;letter-spacing:.3em;text-transform:uppercase;color:var(--ink2)}#cartouche b{font-family:var(--display);font-size:15px;letter-spacing:.22em;text-transform:uppercase}#cam button{min-width:34px;justify-content:center}#hint{position:fixed;bottom:62px;left:50%;transform:translate(-50%);font-size:13px;color:var(--cream);background:#101815c7;padding:4px 12px;border-radius:999px;text-align:center;max-width:620px;pointer-events:none}#hint:empty{display:none}#toast{position:fixed;top:66px;left:50%;transform:translate(-50%);padding:8px 14px;font-size:13.5px;opacity:0;transition:opacity .25s;pointer-events:none;border-left:4px solid var(--brass)}#toast.show{opacity:1}#tip{position:fixed;max-width:240px;padding:8px 11px;font-size:12.5px;line-height:1.4;pointer-events:none;opacity:0;transition:opacity .1s;z-index:5}#tip.show{opacity:1}#tip b{display:block;margin-bottom:2px;font-family:var(--display);letter-spacing:.06em;color:var(--brassHi)}#tip span{color:var(--creamDim)}#banner{position:fixed;top:22%;left:50%;display:flex;align-items:center;gap:16px;padding:16px 26px;pointer-events:none;opacity:0;transform:translate(-50%) scale(.85);transition:opacity .3s,transform .35s cubic-bezier(.2,1.4,.4,1);border-top:4px solid var(--maroon)}#banner.show{opacity:1;transform:translate(-50%) scale(1)}#banner .big{font-family:var(--display);font-size:26px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}#banner .sub{color:var(--creamDim);font-size:14px;margin-top:2px}.modChips,.topMods{display:flex;flex-wrap:wrap;gap:4px}.modChips i,.topMods i{font-style:normal;font-size:11px;letter-spacing:.03em;padding:1px 7px;border-radius:3px;border:1px solid var(--brass);color:var(--brassHi);background:#caa24c14}.topMods{margin-left:2px}#draft{position:fixed;top:14px;left:50%;transform:translate(-50%);width:min(560px,calc(100vw - 32px));padding:0 18px 16px;font-size:13.5px;line-height:1.5;overflow:hidden}#draft h1{margin:0 -18px 10px;padding:10px 18px;font-size:22px;letter-spacing:.14em;text-transform:uppercase;background:var(--enamelDeep);border-bottom:2px solid var(--brass)}#draft p{margin:6px 0;color:var(--creamDim)}#draft .row{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:10px}#draft .row>span:not(#draftMsg):not(.mapName){color:var(--brassHi);font-family:var(--display);letter-spacing:.12em;text-transform:uppercase;font-size:12px;margin-right:4px}#draft .count{min-width:30px;text-align:center;font-family:var(--display);font-size:18px;font-variant-numeric:tabular-nums}#draft .go{margin-left:auto;padding:7px 18px;letter-spacing:.1em;text-transform:uppercase}#draft .mods button{font-size:12px;padding:3px 8px}#draftPub{margin-top:8px}#draftPub b{font-family:var(--display);letter-spacing:.08em}#draftPub .leaves{color:var(--amber);font-family:var(--display);font-variant-numeric:tabular-nums;letter-spacing:.06em}#lobbyInfo{margin-top:10px}#lobbyInfo .codeRow{display:flex;align-items:center;gap:10px}#lobbyInfo .codeRow>span{color:var(--brassHi);font-family:var(--display);letter-spacing:.12em;text-transform:uppercase;font-size:12px}#lobbyInfo .codeRow b{font-family:var(--display);font-size:24px;letter-spacing:.3em;color:var(--amber);background:var(--board);padding:2px 10px;border-radius:4px}#seatList{list-style:none;margin:10px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:4px 14px;max-height:30vh;overflow-y:auto}#seatList li{display:flex;align-items:center;gap:6px;font-size:13px}#seatList li .off{color:var(--creamDim)}#end{position:fixed;inset:0;display:none;align-items:center;justify-content:center;background:#08140f59}#end .card{padding:22px 26px;text-align:center;min-width:300px;border-top:4px solid var(--brass)}#end h2{margin:0 0 6px;font-size:28px;letter-spacing:.08em;text-transform:uppercase}#end p{color:var(--creamDim);margin:4px 0 14px}.endBtns{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}#menu{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#08140f73}#menu .card{padding:24px 28px;width:min(400px,calc(100vw - 32px));text-align:center}#menu h1{margin:0;font-size:34px;letter-spacing:.2em;text-transform:uppercase}#menu .tag{margin:4px 0 18px;color:var(--creamDim)}#menu .btns{display:flex;flex-direction:column;gap:8px}#menu .btns button{justify-content:center;padding:10px;font-size:15px}#menu .howto{text-align:left;font-size:13.5px;line-height:1.55;color:var(--creamDim);margin:16px 0 4px}#menu .howto p{margin:0 0 8px}#menu .howto b{color:var(--cream)}#menu .vol{display:flex;align-items:center;gap:10px;justify-content:center;margin-top:14px;font-size:13px;color:var(--creamDim)}#menu .vol input{width:160px;accent-color:var(--brass);padding:0;background:none;border:0}#menu .keys{font-size:12px;color:var(--creamDim);margin-top:16px}#netPill{position:fixed;top:14px;left:50%;transform:translate(-50%);padding:6px 12px;font-size:13px;color:var(--amber);z-index:6}#fatal{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#0006;z-index:10}#fatal .card{padding:22px 26px;max-width:420px;text-align:center;border-top:4px solid var(--danger)}#fatal p{color:var(--creamDim)}#fatal .detail{font:11px ui-monospace,SFMono-Regular,Menlo,monospace;opacity:.8;word-break:break-word;user-select:text}.hidden{display:none!important}#hub{position:fixed;inset:0;overflow:auto;display:flex;justify-content:center;align-items:flex-start;padding:4vh 16px 28px}.hubWrap{width:min(900px,100%);display:flex;flex-direction:column;gap:14px}.stationSign{display:flex;align-items:center;gap:18px;padding:12px 18px;background:var(--enamel);border-radius:10px;border:1px solid var(--enamelDeep);box-shadow:inset 0 0 0 1px #caa24c73,inset 0 0 0 5px var(--enamel),inset 0 0 0 6px #caa24c40,0 10px 30px #08140f59;color:var(--cream);flex-wrap:wrap}.roundel{position:relative;width:64px;height:64px;flex:none;border-radius:50%;border:9px solid var(--maroon);box-shadow:0 0 0 1.5px var(--brass),inset 0 0 0 1.5px var(--brass)}.roundel span{position:absolute;left:-16px;right:-16px;top:50%;transform:translateY(-50%);height:18px;background:var(--enamelDeep);border:1.5px solid var(--brass);border-radius:2px;font-family:var(--display);font-weight:700;font-size:12px;letter-spacing:.2em;line-height:15px;text-align:center;color:var(--cream)}.signText{flex:1;min-width:200px}.stationSign h1{margin:0;font-size:46px;line-height:1;letter-spacing:.24em;text-transform:uppercase;font-weight:700}.stationSign .tag{margin:6px 0 0;color:var(--brassHi);font-family:var(--display);letter-spacing:.2em;text-transform:uppercase;font-size:13px}.pass{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--brassHi);letter-spacing:.18em;text-transform:uppercase;font-family:var(--display)}.pass input{font-family:var(--body);letter-spacing:0;text-transform:none;font-size:16px;width:220px}.board{background:var(--board);border-radius:10px;padding:12px;border:1px solid #000;box-shadow:inset 0 0 0 1px #26322d,0 10px 30px #08140f59;color:var(--cream)}.boardHead{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin:0 2px 10px}.boardHead h2{margin:0;font-size:20px;letter-spacing:.28em;text-transform:uppercase;color:var(--amber)}.boardHead span{color:#8d9a8f;font-size:12.5px}#lobbyList{display:grid;grid-template-columns:1.45fr 1fr;gap:10px}#lobbyList .muted{grid-column:1/-1;margin:18px 4px;color:#8d9a8f}.dep{display:flex;flex-direction:column;align-items:stretch;gap:0;padding:0;overflow:hidden;text-align:left;border-radius:8px;background:var(--flap);border:1px solid #2a3631;color:var(--cream)}.dep:hover{border-color:var(--amber)}.dep.feat{grid-row:span 2}.dep .pic{position:relative;display:block;aspect-ratio:16/10;background:var(--sea)}.dep:not(.feat) .pic{aspect-ratio:16/6}.dep .pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.dep .clockTag{position:absolute;top:8px;right:8px;font-family:var(--display);font-variant-numeric:tabular-nums;font-weight:700;font-size:15px;letter-spacing:.08em;padding:2px 8px;border-radius:4px;color:var(--amber);background:linear-gradient(#18221e 0 49%,#0b110e 49% 51%,#18221e 51%);border:1px solid #000}.dep .lobInfo{display:flex;flex-direction:column;gap:5px;padding:9px 11px 11px}.dep .lobInfo b{font-family:var(--display);letter-spacing:.1em;text-transform:uppercase;font-size:15px}.dep.feat .lobInfo b{font-size:19px}.dep .route{font-size:12px;color:#8d9a8f;letter-spacing:.02em}.dep .meta{font-size:12px;color:#8d9a8f;display:flex;align-items:center;gap:8px}.dep .clockTag.inline{display:none}.dep .modChips i{border-color:#6d5a2c}.tickets{display:grid;grid-template-columns:1.3fr 1fr 1.2fr;gap:12px}.ticket{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 18px 12px 22px;text-align:left;border-radius:8px;background:var(--cream);color:var(--enamelDeep);border:0;-webkit-mask:radial-gradient(circle at 0 50%,transparent 9px,#000 9.5px) left/51% 100% no-repeat,radial-gradient(circle at 100% 50%,transparent 9px,#000 9.5px) right/51% 100% no-repeat;mask:radial-gradient(circle at 0 50%,transparent 9px,#000 9.5px) left/51% 100% no-repeat,radial-gradient(circle at 100% 50%,transparent 9px,#000 9.5px) right/51% 100% no-repeat}.ticket:before{content:"";position:absolute;left:12px;top:8px;bottom:8px;border-left:2px dashed rgba(21,51,42,.25)}.ticket:hover{background:#fbf3dc}.ticket small{font-family:var(--display);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--maroon)}.ticket b{font-family:var(--display);font-size:22px;letter-spacing:.08em;text-transform:uppercase}.ticket em{font-style:normal;font-size:12px;color:#5d6a5f}.ticket.primary{background:var(--brass);color:var(--enamelDeep)}.ticket.primary:hover{background:var(--brassHi)}.ticket.primary small{color:var(--enamelDeep)}.ticket.primary em{color:#3b3a26}.ticket.punch .join{display:flex;gap:6px;width:100%;margin:2px 0}.ticket.punch input{width:0;flex:1;text-transform:uppercase;letter-spacing:.3em;text-align:center;font-family:var(--display);font-size:18px;color:var(--enamelDeep);background:#fffaf0;border-color:#cbbd97}.ticket.punch button{background:var(--enamel);color:var(--cream);border-color:var(--enamelDeep);font-family:var(--display);letter-spacing:.12em;text-transform:uppercase}#hub .err{margin:0;color:var(--cream);background:var(--maroon);font-size:13px;padding:6px 12px;border-radius:6px;align-self:flex-start}#hub .err:empty{display:none}#hubHow .howto{font-size:13.5px;line-height:1.55;color:var(--creamDim);padding:14px 16px;background:var(--enamel);border-radius:10px;box-shadow:inset 0 0 0 1px #caa24c61}#hubHow .howto p{margin:0 0 8px}#hubHow .howto b{color:var(--cream)}.hubFoot{display:flex;gap:8px;align-items:center}.hubFoot button{background:#15332ad9;color:var(--cream)}.hubFoot .credit{margin-left:auto;font-size:11px;color:var(--cream);opacity:.7}@media(max-width:760px){#cam{display:none}#draft{top:auto;bottom:12px}#draft p{display:none}#top{left:8px;top:8px;padding:5px 8px;gap:6px}#top .brand{display:none}#panel{inset:auto 8px 62px;width:auto;max-height:55vh;overflow:auto;padding:10px}#panel.collapsed>:not(.me){display:none}#panel .ptog{margin-left:6px}#lines{left:8px;right:8px;bottom:8px;transform:none;overflow-x:auto;justify-content:flex-start}#hint{display:none}#toast{top:54px;max-width:calc(100vw - 24px)}#players,#cheats,#cartouche,.topMods{display:none}#hub{padding-top:12px}.stationSign{gap:12px;padding:10px 14px}.roundel{width:46px;height:46px;border-width:7px}.roundel span{height:14px;font-size:9px;line-height:11px;left:-12px;right:-12px}.stationSign h1{font-size:30px;letter-spacing:.18em}.pass,.pass input{width:100%}#lobbyList{grid-template-columns:1fr}.dep.feat{grid-row:auto}.dep:not(.feat) .pic{display:none}.dep:not(.feat) .clockTag.inline{display:inline;position:static;padding:0 7px}.dep.feat .pic{aspect-ratio:16/8}.tickets{grid-template-columns:1fr 1fr}.ticket.primary,.ticket.punch{grid-column:1/-1}}#draft .mapRow .mini{width:72px;height:45px;border-radius:5px;background:var(--sea);object-fit:contain;box-shadow:0 0 0 1px #caa24c80;display:inline-block}#draft .mapName{display:flex;flex-direction:column;line-height:1.25}#draft .mapName b{font-family:var(--display);letter-spacing:.1em;text-transform:uppercase}#draft .mapName em{font-style:normal;font-size:12px;color:var(--creamDim)}#maps{position:fixed;inset:0;z-index:4;display:flex;align-items:center;justify-content:center;background:#08140f80;padding:16px}#maps .card{width:min(940px,100%);max-height:calc(100vh - 32px);display:flex;flex-direction:column;padding:0 16px 16px;overflow:hidden}.mapsHead{display:flex;align-items:center;margin:0 -16px 10px;padding:10px 16px;background:var(--enamelDeep);border-bottom:2px solid var(--brass)}.mapsHead h2{margin:0;font-size:20px;letter-spacing:.2em;text-transform:uppercase}.mapsHead button{margin-left:auto}.mapsFilter{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.mapsFilter .row{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.mapsFilter .row>span:first-child{width:52px;color:var(--brassHi);font-family:var(--display);letter-spacing:.12em;text-transform:uppercase;font-size:12px}.mapsFilter .count{min-width:30px;text-align:center;font-family:var(--display);font-size:18px}.mapsFilter .surprise{margin-left:auto}#mapGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));grid-auto-rows:max-content;align-content:start;gap:10px;overflow-y:auto;padding:2px;flex:1;min-height:0}#mapGrid .muted{grid-column:1/-1;color:var(--creamDim)}.mapCard{display:flex;flex-direction:column;align-items:stretch;gap:3px;padding:0 0 8px;overflow:hidden;text-align:left;border-radius:8px;background:var(--enamelDeep)}.mapCard .pic{position:relative;display:block;aspect-ratio:16/10;background:var(--sea);margin-bottom:4px}.mapCard .pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.mapCard b{padding:0 9px;font-family:var(--display);letter-spacing:.08em;text-transform:uppercase;font-size:14px}.mapCard .meta{padding:0 9px;font-size:11.5px;color:var(--creamDim)}.mapCard.on{box-shadow:0 0 0 2px var(--brassHi)}@media(max-width:760px){#mapGrid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}#maps{padding:8px}}#tut{position:fixed;right:12px;bottom:64px;width:min(400px,calc(100vw - 24px));padding:10px 14px 12px;z-index:3;border-top:4px solid var(--brass)}#tut .tutHead{display:flex;align-items:center;gap:10px;font-family:var(--display);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--brassHi)}#tut .tutTrack{flex:1;height:4px;border-radius:2px;background:var(--board);overflow:hidden}#tut .tutTrack i{display:block;height:100%;background:var(--amber);transition:width .3s}#tut h3{margin:6px 0 2px;font-size:19px;letter-spacing:.08em;text-transform:uppercase}#tut p{margin:0;font-size:13.5px;line-height:1.45;color:var(--cream)}#tut .tutBtns{display:flex;justify-content:space-between;margin-top:9px}.pulse{animation:pulse 1.1s ease-in-out infinite;border-color:var(--amber)!important}@keyframes pulse{0%,to{box-shadow:0 0 #f2b84bbf}50%{box-shadow:0 0 0 6px #f2b84b00}}#tut #tutNote{margin-top:6px;font-size:12.5px;color:var(--amber)}#tut #tutNote:empty{display:none}#draft.tut #pcount,#draft.tut #modRow,#draft.tut #levelRow,#draft.tut #mapRow button{display:none}@media(max-width:760px){#tut{bottom:auto;top:52px;right:12px}}#panel .further{flex-basis:100%;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--creamDim);margin:2px 0 -2px}
