*{box-sizing:border-box}html{background:var(--black);color:var(--white);font-family:Courier New,monospace;font-size:13px}body{margin:0}button,input,select{font:inherit;border-radius:0}button{cursor:pointer;color:var(--white);background:var(--black);border:1px solid var(--line);padding:12px 16px;font-size:11px;font-weight:700;letter-spacing:.06em}button:hover,button:focus-visible{border-color:var(--gold);color:var(--gold);outline:none}button:disabled{color:var(--muted);cursor:default;border-color:var(--line)}button.primary{background:var(--gold);color:var(--black);border-color:var(--gold)}button.primary:hover{background:var(--cream)}input,select{width:100%;background:var(--black);border:1px solid var(--line);padding:12px;color:var(--white);outline:none}input:focus,select:focus{border-color:var(--gold)}input::placeholder{color:var(--muted)}label{display:block;color:var(--cream);font-size:10px;letter-spacing:.1em;margin:15px 0 8px}h1,h2,p{margin:0}h1{font-size:clamp(22px,3.2vw,46px);line-height:1.1;letter-spacing:-.05em;margin-top:11px}h2{font-size:23px;line-height:1.3;letter-spacing:-.04em}p{color:var(--muted);line-height:1.7;margin:14px 0}html,body{height:100%;overflow:hidden}.shell{display:flex;flex-direction:column;height:100vh;height:100dvh}.eyebrow{font-size:9px;letter-spacing:.16em;color:var(--gold)}.game-frame{position:relative;flex:1;min-height:0;display:grid;place-items:center;overflow:hidden;background:var(--black)}canvas{display:block;image-rendering:pixelated;image-rendering:crisp-edges;outline:none;cursor:default}body.playing canvas{cursor:none}#game:has(~#gl[hidden]){filter:contrast(1.1) saturate(1.2)}canvas:focus{outline:none}#gl,#ui-layer,#hud,#wheel-layer{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none}.menu-panel,.lobby-panel{position:absolute;right:max(24px,4vw);top:50%;transform:translateY(-50%);width:min(400px,42vw);max-height:calc(100% - 48px);overflow:auto;display:flex;flex-direction:column;border:1px solid var(--gold);background:var(--black);box-shadow:6px 6px 0 var(--line);z-index:3}.intro{padding:22px 24px 4px}.intro h2{margin-top:12px}.intro p{font-size:12px}#menu .intro{padding-top:14px}#menu .intro h2{margin:6px 0 8px;font-size:17px;line-height:1.25}#menu .intro p{font-size:11px;line-height:1.5;margin:0 0 7px}#menu .intro .small{margin-top:4px}@media(min-width:801px){#menu{width:min(480px,46vw)}}.small{color:var(--muted);font-size:9px;line-height:1.7}.ticket{padding:4px 24px 18px}.entry-actions{display:flex;gap:8px;margin-top:12px}.entry-actions button{flex:1}.primary span{float:right}body.solo label[for=code],body.solo .join-row,body.solo #ticket-note,body.solo #copy-code,body.solo #ready{display:none}.join-row{display:flex;gap:8px}.join-row input{text-transform:uppercase;letter-spacing:.35em;flex:1;width:80px}.join-row button{min-width:130px}.ticket-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);margin-top:18px;padding-top:10px;font-size:10px;color:var(--gold)}.text-button{border:0;padding:6px 0;font-size:9px;background:transparent;color:var(--muted)}.join-code{font-size:29px;color:var(--gold);letter-spacing:.2em;padding:12px 20px;border-color:var(--gold)}#toast{position:fixed;top:17%;left:50%;transform:translate(-50%);max-width:80%;padding:11px 18px;background:var(--black);border:1px solid var(--gold);color:var(--gold);font-size:11px;text-align:center;pointer-events:none;display:none;z-index:30}#toast.shown{display:block}#chat-feed>div{background:var(--black);padding:4px 7px;color:var(--cream);margin-top:2px}#chat-form span{color:var(--gold);font-size:10px;white-space:nowrap;padding:0 12px}#chat-form input{border:0;font-size:12px}[hidden]{display:none!important}.dock{flex:0 0 auto;display:flex;align-items:center;gap:18px;height:38px;padding:0 14px;border-top:1px solid var(--line);background:var(--black);font-size:9px;letter-spacing:.06em;color:var(--muted)}.connection{display:flex;align-items:center;gap:8px;white-space:nowrap}.connection i{display:inline-block;width:5px;height:5px;background:var(--red)}.connection i.online{background:var(--green)}.dock-main{flex:1;min-width:0;display:flex;align-items:center;gap:16px}.dock .session{color:var(--cream);white-space:nowrap}#heading{font-size:11px;letter-spacing:.1em;margin:0;color:var(--gold);white-space:nowrap}body.playing #heading,body.playing .dock .session{display:none}.toggles{display:flex;gap:16px;white-space:nowrap}.toggles #quit{color:var(--red)}.lobby-panel>div{padding:20px 24px}.lobby-panel>div+div{border-top:1px solid var(--line)}.lobby-panel h2{margin-top:10px}body.puppets .dock,body.puppets #lobby,body.puppets #yard-tip{visibility:hidden}.playbar{flex:1;min-width:0;display:flex;justify-content:space-between;align-items:center;gap:16px}.playbar .detail{display:flex;align-items:baseline;gap:10px;min-width:0;overflow:hidden;white-space:nowrap}.playbar strong{font-size:11px;color:var(--white)}.playbar #item-detail{font-size:9px;color:var(--muted);overflow:hidden;text-overflow:ellipsis}.toolbar{display:flex;gap:6px}.toolbar button{font-size:9px;padding:6px 9px}#chat-feed{position:absolute;bottom:22%;left:12px;max-width:50%;font-size:11px;pointer-events:none}#chat-feed>div{background:var(--black);padding:4px 7px;color:var(--cream);margin-top:2px;overflow-wrap:anywhere;overflow:hidden}#chat-form{position:absolute;bottom:24%;left:12px;right:12px;max-width:720px;display:flex;background:var(--black);align-items:center;border:1px solid var(--gold);z-index:4;flex-wrap:wrap}#chat-form input{flex:1;min-width:0}#chat-lines{flex-basis:100%;display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:6px 8px 8px;border-top:1px solid var(--gold)}#chat-lines button{font-size:10px;padding:5px 8px;text-align:left}#modal-backdrop{position:fixed;inset:0;background:#000000b8;display:flex;align-items:center;justify-content:center;z-index:10;padding:24px}@media(max-width:800px){.menu-panel{inset:auto 12px 12px;transform:none;width:auto;max-height:70%}}@media(max-width:800px)and (orientation:portrait){.lobby-panel{inset:auto 12px 12px;transform:none;width:auto;max-height:70%}}@media(max-width:800px)and (orientation:landscape){.lobby-panel{right:12px;width:min(360px,46vw)}}@media(max-width:800px){.dock{gap:10px}.playbar .detail,.dock .session{display:none}.toggles{gap:10px}.grid{grid-template-columns:1fr}.control-list{grid-template-columns:100px 1fr}#chat-feed{font-size:9px}}.dock button{white-space:nowrap}@media(max-width:1180px){.playbar #item-detail{display:none}}:root{--ink: #120a04;--wood-1: #22130a;--wood-2: #321c0d;--wood-3: #4a2a13;--brass: #d0b46c;--brass-hi: #fce08c;--brass-lo: #846830;--paper: #ecc878;--rust: #9c2020;--blood: #c05858;--sage: #a4e4a4;--steel: #909090}img.px{image-rendering:pixelated;image-rendering:crisp-edges;vertical-align:middle;flex:none}.board,#modal,.menu-panel,.lobby-panel{background:radial-gradient(circle at 10px 10px,var(--brass-hi) 0 2px,var(--brass-lo) 3px,transparent 4px),radial-gradient(circle at calc(100% - 10px) 10px,var(--brass-hi) 0 2px,var(--brass-lo) 3px,transparent 4px),radial-gradient(circle at 10px calc(100% - 10px),var(--brass-hi) 0 2px,var(--brass-lo) 3px,transparent 4px),radial-gradient(circle at calc(100% - 10px) calc(100% - 10px),var(--brass-hi) 0 2px,var(--brass-lo) 3px,transparent 4px),repeating-linear-gradient(180deg,transparent 0 37px,rgba(0,0,0,.18) 37px 39px),linear-gradient(180deg,var(--wood-2),var(--wood-1));border:3px solid var(--brass);box-shadow:0 0 0 3px var(--ink),inset 0 0 0 2px var(--brass-lo),inset 0 0 40px #0000008c,10px 10px #0000008c;color:var(--paper)}#modal-backdrop{background:radial-gradient(ellipse at center,#00000073,#000000d9)}#modal,.menu-panel,.lobby-panel,.dock{zoom:var(--menu-zoom, 1)}#modal{width:min(900px,100%);max-height:calc(92vh / var(--menu-zoom, 1));overflow:auto;animation:board-in .18s steps(4) both}#modal.modal-cab{width:min(980px,100%)}#modal.modal-leave{width:min(560px,100%)}@keyframes board-in{0%{transform:translateY(18px) scale(.97);opacity:0}}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 22px 12px;border-bottom:3px double var(--brass-lo);position:sticky;top:0;z-index:2;background:linear-gradient(180deg,var(--wood-3),var(--wood-2))}.modal-head h2{display:flex;align-items:center;gap:12px;margin:0;font-size:21px;letter-spacing:.08em;text-transform:uppercase;color:var(--brass-hi);text-shadow:2px 2px 0 var(--rust),3px 3px 0 var(--ink)}:is(#modal-body,.couch-body){padding:18px 22px 22px}:is(#modal-body,.couch-body) p{margin:0 0 12px;font-size:12px;color:#d6c08e}:is(#modal-body,.couch-body) h4,.ware-group h4,.cab h4{margin:0 0 8px;font-size:11px;letter-spacing:.18em;color:var(--brass);display:flex;align-items:center;gap:8px}:is(#modal-body,.couch-body) h4:after,.ware-group h4:after{content:"";flex:1;height:2px;background:repeating-linear-gradient(90deg,var(--brass-lo) 0 6px,transparent 6px 10px)}.value{color:var(--brass-hi)}.warning{color:var(--blood)!important}.small{color:#a08a60;font-size:10px;line-height:1.6}.btn,:is(#modal-body,.couch-body) button,.menu-panel button,.lobby-panel button,.modal-head button{font:inherit;font-weight:700;letter-spacing:.08em;color:var(--ink);background:linear-gradient(180deg,var(--brass-hi),var(--brass) 55%,var(--brass-lo));border:2px solid var(--ink);box-shadow:inset 2px 2px #ffffff73,inset -2px -2px #00000059,3px 3px #00000080;padding:9px 14px;font-size:11px;cursor:pointer;transition:transform .05s}:is(#modal-body,.couch-body) button:hover:not(:disabled),.menu-panel button:hover:not(:disabled),.lobby-panel button:hover:not(:disabled),.modal-head button:hover{filter:brightness(1.12)}:is(#modal-body,.couch-body) button:active:not(:disabled),.menu-panel button:active:not(:disabled),.lobby-panel button:active:not(:disabled){transform:translate(2px,2px);box-shadow:inset 2px 2px #00000059,1px 1px #00000080}:is(#modal-body,.couch-body) button:disabled,.menu-panel button:disabled,.lobby-panel button:disabled{filter:grayscale(.85) brightness(.55);cursor:default}.btn.danger,:is(#modal-body,.couch-body) .btn.danger{background:linear-gradient(180deg,#e08888,var(--blood) 55%,var(--rust));color:#fff4e0}.btn.big{width:100%;padding:14px;font-size:13px;margin-top:8px}.modal-head button{padding:6px 10px;font-size:10px}kbd{display:inline-block;min-width:22px;padding:3px 6px 4px;margin:0 2px;font:700 10px Courier New,monospace;text-align:center;color:var(--ink);background:linear-gradient(180deg,#f4e6c2,#cdb88a);border:1px solid var(--ink);border-radius:3px;box-shadow:inset 0 -3px #00000040,1px 2px #0000008c}.meter{flex:1;height:9px;min-width:60px;background:#1a0f06;border:2px solid var(--ink);box-shadow:inset 0 0 0 1px var(--brass-lo);position:relative;overflow:hidden}.meter i{display:block;height:100%;transition:width .3s steps(6);box-shadow:inset 0 2px #ffffff59}.lamp{display:inline-flex;align-items:center;gap:6px;font-size:9px;font-weight:700;letter-spacing:.1em;color:#7a6a4a}.lamp:before{content:"";width:10px;height:10px;border:2px solid var(--ink);background:#2c2418;box-shadow:inset 1px 1px #ffffff26}.lamp.on{color:var(--sage)}.lamp.on:before{background:#74b474;box-shadow:0 0 8px #a4e4a4,inset 1px 1px #fff9}.lamp.warn.on{color:#eca0a0}.lamp.warn.on:before{background:var(--blood);box-shadow:0 0 8px #e08888,inset 1px 1px #ffffff80;animation:blink .8s steps(2) infinite}@keyframes blink{50%{opacity:.35}}.cab{display:grid;grid-template-columns:1.35fr .9fr 1fr;gap:18px}.cab section{background:#00000052;border:2px solid var(--ink);box-shadow:inset 0 0 0 1px var(--brass-lo);padding:14px}.cab-gauges{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-content:start}.gauge{margin:0;text-align:center}.gauge svg{width:100%;display:block}.dial-face{fill:#f1e2b8;stroke:var(--ink);stroke-width:3}.dial-track{fill:none;stroke:#3a2a18;stroke-width:5}.dial-zone{fill:none;stroke-width:5}.dial-ticks line{stroke:#2a1a0a;stroke-width:2}.needle{transform-origin:60px 62px;transform:rotate(-90deg);transition:transform .4s cubic-bezier(.3,1.6,.5,1)}.needle line{stroke:var(--rust);stroke-width:3;stroke-linecap:square}.needle circle{fill:var(--brass-lo);stroke:var(--ink);stroke-width:2}.gauge figcaption{font-size:10px;letter-spacing:.12em;color:var(--brass);display:flex;justify-content:center;align-items:baseline;gap:6px;margin-top:4px}.gauge figcaption b{font-size:18px;color:var(--brass-hi)}.gauge figcaption small{font-size:9px;color:#a08a60}.cab-readouts{grid-column:1 / -1;display:grid;gap:8px}.readout{display:flex;align-items:center;gap:8px;font-size:10px;letter-spacing:.1em;color:var(--brass)}.readout>span{width:52px}.readout>div{flex:1;display:flex}.plates{display:grid!important;grid-template-columns:repeat(8,1fr);gap:3px}.plates i{flex:1;height:12px;background:#241a10;border:2px solid var(--ink)}.plates i.on{background:linear-gradient(180deg,#dcdcdc,#909090);box-shadow:inset 0 0 0 1px #ececec}.cab-quadrant{display:flex;flex-direction:column}.quadrant{position:relative;flex:1;display:grid;grid-template-rows:repeat(4,1fr);gap:6px;padding-left:46px;min-height:250px}.quadrant:before{content:"";position:absolute;left:14px;top:6%;bottom:6%;width:12px;background:linear-gradient(90deg,#0c0702,#3a2a18,#0c0702);border:2px solid var(--brass-lo)}.lever{position:absolute;left:0;width:100%;height:25%;pointer-events:none;transition:top .35s cubic-bezier(.4,1.5,.5,1)}.lever i{position:absolute;left:4px;top:50%;width:34px;height:18px;margin-top:-9px;background:linear-gradient(180deg,#e08888,var(--blood) 50%,var(--rust));border:2px solid var(--ink);box-shadow:inset 2px 2px #fff6,3px 3px #0009}.lever i:after{content:"";position:absolute;left:30px;top:4px;width:14px;height:6px;background:var(--steel);border:2px solid var(--ink)}:is(#modal-body,.couch-body) .notch{text-align:left;display:flex;flex-direction:column;justify-content:center;padding:8px 12px;background:linear-gradient(180deg,#4a3420,#2c1d10);color:var(--brass);box-shadow:inset 2px 2px #ffffff14,inset -2px -2px #00000073}:is(#modal-body,.couch-body) .notch b{font-size:14px;letter-spacing:.14em}:is(#modal-body,.couch-body) .notch small{font-size:9px;color:#a08a60;font-weight:400}:is(#modal-body,.couch-body) .notch.active{background:linear-gradient(180deg,var(--brass-hi),var(--brass) 60%,var(--brass-lo));color:var(--ink)}:is(#modal-body,.couch-body) .notch.active small{color:#4a3420}.cab-side{display:flex;flex-direction:column;gap:12px}.hopper{text-align:center}.hopper small{font-size:9px;color:#a08a60;letter-spacing:.1em}.coal{position:relative;height:96px;margin:6px auto;width:70%;background:#120a04;border:3px solid var(--ink);box-shadow:inset 0 0 0 2px var(--brass-lo);display:flex;align-items:flex-end;overflow:hidden}.coal i{display:block;width:100%;background:radial-gradient(circle at 20% 30%,#6c6c6c 0 2px,transparent 3px),radial-gradient(circle at 70% 60%,#6c6c6c 0 2px,transparent 3px),radial-gradient(circle at 45% 80%,#909090 0 1px,transparent 2px),linear-gradient(180deg,#2a2a2a,#0a0a0a);background-size:14px 14px,18px 18px,11px 11px,100% 100%;transition:height .4s steps(8)}.coal span{position:absolute;inset:auto 0 0;height:16px}.coal span.lit{background:linear-gradient(0deg,#fcfc68,#ec8c3c 40%,transparent);animation:flicker .25s steps(2) infinite;mix-blend-mode:screen}@keyframes flicker{50%{opacity:.6;height:12px}}:is(#modal-body,.couch-body) .brake-switch,:is(#modal-body,.couch-body) .whistle{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;align-items:center;column-gap:12px;text-align:left;padding:10px 12px}.brake-switch b,.whistle b{font-size:13px;letter-spacing:.14em}.brake-switch small,.whistle small{grid-column:2;font-size:9px}.switch{grid-row:1 / 3;width:22px;height:38px;background:#1a0f06;border:2px solid var(--ink);position:relative}.switch i{position:absolute;left:2px;right:2px;height:16px;bottom:2px;background:#74b474;border:2px solid var(--ink);transition:bottom .15s steps(3),background .15s}:is(#modal-body,.couch-body) .brake-switch.on{background:linear-gradient(180deg,#e08888,var(--blood) 55%,var(--rust));color:#fff4e0}.brake-switch.on .switch i{bottom:16px;background:var(--blood)}.cord{grid-row:1 / 3;width:12px;height:38px;position:relative;background:linear-gradient(90deg,transparent 4px,#985c28 4px 8px,transparent 8px)}.cord:after{content:"";position:absolute;bottom:0;left:0;width:12px;height:10px;background:var(--brass-lo);border:2px solid var(--ink);transition:transform .2s}.whistle.blown .cord:after,.whistle:active .cord:after{transform:translateY(6px)}:is(#modal-body,.couch-body) .whistle.blown{filter:brightness(1.25)}.cab-lamps{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:18px;padding:10px 14px;background:#00000052;border:2px solid var(--ink)}.cab-lamps .hint{margin-left:auto;font-size:10px;color:#a08a60}.vitals{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}.vitals>div{display:flex;align-items:center;gap:8px;font-size:12px}.vitals .cash{justify-content:flex-end;font-size:18px;color:var(--brass-hi)}.slots{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}:is(#modal-body,.couch-body) .slot{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;min-height:170px;padding:30px 10px 10px;background:linear-gradient(180deg,#3a2614,#22140a);color:var(--paper);text-align:center}:is(#modal-body,.couch-body) .slot.selected{background:linear-gradient(180deg,#5a3a1a,#2c1a0c);outline:3px solid var(--brass-hi);outline-offset:-6px}:is(#modal-body,.couch-body) .slot.empty{opacity:.55}.slot-key{position:absolute;top:6px;left:6px;font-size:11px;color:var(--ink);background:var(--brass);border:2px solid var(--ink);padding:1px 6px}.ribbon{position:absolute;top:6px;right:6px;font-size:8px;letter-spacing:.12em;background:var(--rust);color:#fff4e0;border:2px solid var(--ink);padding:2px 6px}.slot-art{height:34px;display:flex;align-items:center}.slot b{font-size:12px}.slot-amount{font-size:16px;color:var(--brass-hi);min-height:18px}.slot-amount small{font-size:10px;color:#a08a60}.slot>small{font-size:9px;font-weight:400;color:#a08a60;line-height:1.4}.carried{margin-top:16px;display:flex;gap:16px;align-items:center;padding:12px 14px;background:#00000059;border:2px dashed var(--brass-lo)}.carried b{font-size:15px;color:var(--brass-hi)}.carried p{margin:6px 0 0!important}.carried.empty .carried-art{opacity:.45}.shop-top{display:grid;grid-template-columns:auto 1fr;gap:16px;margin-bottom:10px}.purse{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#00000059;border:2px solid var(--ink);box-shadow:inset 0 0 0 1px var(--brass-lo);margin-bottom:12px;flex-wrap:wrap}.purse span{font-size:10px;letter-spacing:.14em;color:var(--brass)}.purse b{font-size:24px;color:var(--brass-hi);text-shadow:2px 2px 0 var(--ink)}.purse small{flex-basis:100%;font-size:10px;color:#a08a60}.sell{display:flex;align-items:center;gap:12px;padding:10px 14px;background:#00000059;border:2px solid var(--ink);box-shadow:inset 0 0 0 1px var(--brass-lo);margin-bottom:12px}.sell div{flex:1;display:flex;flex-direction:column}.sell small{font-size:9px;letter-spacing:.14em;color:var(--brass)}.ware-group{margin-top:14px}.wares{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}:is(#modal-body,.couch-body) .ware{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 8px 10px;background:linear-gradient(180deg,#f4e6c2,#d8c08c);color:var(--ink);text-align:center}.ware b{font-size:11px;line-height:1.25}.ware b small{color:var(--rust)}.ware-art{height:36px;display:flex;align-items:center}.tag{font-size:13px;background:var(--rust);color:#fff4e0;border:2px solid var(--ink);padding:1px 8px;transform:rotate(-3deg)}.ware .heavy{position:absolute;top:4px;right:4px;font-size:7px;letter-spacing:.1em;color:#6a4a20}.route{margin:4px 0 18px}.route-strip{position:relative;height:96px;margin:0 18px}.route-strip .rails,.route-strip .travelled{position:absolute;left:0;top:44px;height:10px}.route-strip .rails{right:0;background:repeating-linear-gradient(90deg,#6c4418 0 4px,transparent 4px 10px),linear-gradient(180deg,transparent 0 2px,#909090 2px 3px,transparent 3px 7px,#909090 7px 8px,transparent 8px)}.route-strip .travelled{background:linear-gradient(180deg,transparent 0 2px,var(--brass-hi) 2px 3px,transparent 3px 7px,var(--brass-hi) 7px 8px,transparent 8px)}.stop{position:absolute;top:18px;transform:translate(-50%);display:flex;flex-direction:column;align-items:center}.stop img{width:12px;height:10px}.stop.major img{width:24px;height:20px}.stop em{position:absolute;bottom:calc(30px + var(--row, 0) * 11px);white-space:nowrap;font-style:normal;font-size:8px;letter-spacing:.08em;color:var(--c, var(--paper));text-shadow:1px 1px 0 var(--ink)}.stop.below{top:52px;flex-direction:column-reverse}.stop.below img{transform:scaleY(-1)}.stop.below em{bottom:auto;top:calc(26px + var(--row, 0) * 11px)}.stop.passed{opacity:.4}.stop.border em{color:var(--brass-hi)}.engine{position:absolute;top:28px;transform:translate(-70%);filter:drop-shadow(2px 2px 0 var(--ink));animation:chug .5s steps(2) infinite}@keyframes chug{50%{transform:translate(-70%) translateY(-2px)}}.route-scale{display:flex;justify-content:space-between;margin:0 6px;font-size:9px;color:#a08a60}.timetable{display:grid;grid-template-columns:1fr 1fr;column-gap:18px}.route-row{display:flex;align-items:center;gap:12px;padding:7px 0;border-bottom:1px dashed rgba(208,180,108,.25);font-size:11px}.route-row b{min-width:62px;color:var(--brass-hi)}.route-row span{flex:1;display:flex;align-items:center;gap:8px}.route-row span i{width:8px;height:8px;border:1px solid var(--ink)}.route-row span small{color:#a08a60;font-size:9px}.route-row em{font-style:normal;font-size:9px;letter-spacing:.1em;color:#a08a60}.route-row.nearby em{color:var(--sage)}.route-row.cleared em{color:var(--brass)}.route-row.passed{opacity:.5}.posse{display:grid;gap:10px;margin-bottom:12px}.rider{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:10px 14px;background:#00000059;border:2px solid var(--ink);box-shadow:inset 0 0 0 1px var(--brass-lo)}.rider.dead{opacity:.55}.rider-info{display:grid;gap:4px}.rider-info b{font-size:14px}.rider-info small{font-size:9px;letter-spacing:.1em;color:#a08a60}.rider-info .cash{display:flex;align-items:center;gap:6px;color:var(--brass-hi);font-size:12px}.give{display:flex;gap:6px;align-items:center}.give input{width:74px;padding:8px;background:#f4e6c2;color:var(--ink);border:2px solid var(--ink)}.give .you{font-size:10px;letter-spacing:.16em;color:var(--brass)}.pings{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}.pings button{display:flex;align-items:center;gap:8px}.ticket-code{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;padding:12px 16px;background:linear-gradient(180deg,#f4e6c2,#d8c08c);color:var(--ink);border:2px dashed var(--ink)}.ticket-code span{font-size:10px;letter-spacing:.16em}.ticket-code b{font-size:26px;letter-spacing:.3em;color:var(--rust)}.ticket-code small{font-size:10px}.first-minute{display:flex;gap:14px;align-items:flex-start;padding:12px 14px;margin-bottom:14px;background:linear-gradient(180deg,#f4e6c2,#d8c08c);color:var(--ink);border:2px solid var(--ink)}:is(#modal-body,.couch-body) .first-minute p{color:var(--ink);margin:0}.first-minute .value{color:var(--rust)}.posted{padding:10px 14px;margin:-6px 0 14px;background:#ece2c8;color:var(--ink);border:1px solid var(--ink);box-shadow:3px 3px #00000059}.posted .eyebrow{color:var(--rust)}:is(#modal-body,.couch-body) .posted p{color:var(--ink);margin:4px 0 0}.controls{display:grid;grid-template-columns:1fr 1fr;gap:8px 22px;margin-bottom:16px}.control{display:grid;grid-template-columns:150px 1fr;gap:10px;align-items:center;font-size:11px;color:#d6c08e;padding:4px 0;border-bottom:1px dashed rgba(208,180,108,.2)}.control .keys{display:flex;flex-wrap:wrap;gap:2px}.lore{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.lore section{padding:12px;background:#00000059;border:2px solid var(--ink)}:is(#modal-body,.couch-body) .lore p{font-size:11px;margin:0}.classes{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}.class-card{display:flex;flex-direction:column;gap:8px;padding:14px;background:#00000059;border:2px solid var(--ink);box-shadow:inset 0 0 0 1px var(--brass-lo)}.class-card.owned{box-shadow:inset 0 0 0 2px var(--brass)}.class-card.locked{opacity:.6}.class-art{display:flex;align-items:flex-end;gap:6px}:is(#modal-body,.couch-body) .class-card p{font-size:11px;flex:1}.class-card button{display:flex;align-items:center;justify-content:center;gap:6px}.end{text-align:center}.end-art{display:flex;justify-content:center;animation:chug 1s steps(2) infinite}.end-title{font-size:40px;font-weight:700;letter-spacing:.06em;color:var(--brass-hi);text-shadow:3px 3px 0 var(--rust),5px 5px 0 var(--ink);margin:10px 0}.end.lost .end-title{color:#eca0a0}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.stat{display:grid;justify-items:center;gap:4px;padding:14px;background:#00000059;border:2px solid var(--ink);box-shadow:inset 0 0 0 1px var(--brass-lo)}.stat strong{font-size:24px;color:var(--brass-hi)}.stat span{font-size:9px;letter-spacing:.12em;color:#a08a60}.end-h{margin:22px 0 8px;color:var(--brass);letter-spacing:.14em}.rider-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;text-align:left}.rider-card{padding:10px 12px;background:#00000059;border:2px solid var(--ink);box-shadow:inset 0 0 0 1px var(--brass-lo)}.rider-card.mine{box-shadow:inset 0 0 0 2px var(--brass)}.rider-card header{display:grid;gap:2px;margin-bottom:8px}.rider-card header b{font-size:15px}.rider-card header span,.rider-card dt{font-size:9px;letter-spacing:.12em;color:#a08a60}.rider-card dl{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:0}.rider-card dd{margin:0;font-size:16px;color:var(--brass-hi)}.awards{list-style:none;margin:10px 0 0;padding:8px 0 0;border-top:1px dashed var(--brass-lo);display:grid;gap:6px}.awards b{display:block;color:var(--brass-hi);letter-spacing:.08em}.awards span{font-size:11px;color:#c8b48a}.earned{text-align:left;max-width:520px;margin:0 auto}.earned ul{list-style:none;margin:0;padding:0}.earned li{display:flex;justify-content:space-between;gap:12px;padding:3px 0;border-bottom:1px dotted var(--brass-lo)}.earned li b{color:var(--brass-hi)}.earned p{font-size:12px;line-height:1.6}.end-sub.counting{color:#a08a60}.leave{display:flex;gap:16px;align-items:center}.menu-panel,.lobby-panel{border-width:3px}.menu-panel label,.lobby-panel label{color:var(--brass)}.menu-panel input,.lobby-panel select,.join-row input{background:#f4e6c2;color:var(--ink);border:2px solid var(--ink);font-weight:700}.menu-panel input::placeholder{color:#8a7450}.intro h2,.lobby-panel h2{color:var(--brass-hi);text-shadow:2px 2px 0 var(--rust),3px 3px 0 var(--ink)}.intro p,.lobby-panel p{color:#d6c08e}.ticket-footer{border-top:2px dashed var(--brass-lo)}.menu-panel .text-button,.lobby-panel .text-button{background:none;border:0;box-shadow:none;color:var(--brass-hi);padding:4px 0}.join-code{font-size:28px!important;letter-spacing:.3em!important;color:var(--rust)!important;background:linear-gradient(180deg,#f4e6c2,#d8c08c)!important;border:2px dashed var(--ink)!important}.lobby-panel>div+div{border-top:2px dashed var(--brass-lo)}.roster-row{display:grid;grid-template-columns:auto 1fr auto auto;gap:10px;align-items:center;padding:8px 10px;margin-bottom:6px;background:#00000059;border:2px solid var(--ink);font-size:12px}.roster-row small{font-size:8px;letter-spacing:.12em;background:var(--brass);color:var(--ink);padding:1px 4px;margin-left:4px}.roster-row em{font-style:normal;font-size:9px;color:#a08a60}.roster-row .worn-title{display:block;font-style:normal;font-size:8px;letter-spacing:.08em;color:#c9b27a}@media(max-width:800px){.cab,.timetable,.controls,.lore{grid-template-columns:1fr}.slots{grid-template-columns:repeat(2,1fr)}.vitals{grid-template-columns:1fr 1fr}.control{grid-template-columns:110px 1fr}}#modal-backdrop{flex-direction:column;gap:10px}#modal-backdrop>#toast{position:static;transform:none;flex:none;max-width:min(900px,100%);display:block;visibility:hidden}#modal-backdrop>#toast.shown{visibility:visible}body.couch-panel-right .game-frame>#toast{left:25%;max-width:44%}body.couch-panel-left .game-frame>#toast{left:75%;max-width:44%}#toast{border:2px solid var(--brass);background:linear-gradient(180deg,var(--wood-3),var(--wood-1));color:var(--brass-hi);box-shadow:0 0 0 2px var(--ink),4px 4px #0000008c;letter-spacing:.08em}#modal.modal-options{width:min(760px,100%)}.options{display:grid;grid-template-columns:1.3fr 1fr;gap:16px;margin-bottom:14px}.options section{padding:14px;background:#00000052;border:2px solid var(--ink);box-shadow:inset 0 0 0 1px var(--brass-lo);display:grid;gap:12px;align-content:start}.slider{display:grid;grid-template-columns:auto 72px 1fr 48px;align-items:center;gap:10px;font-size:11px;letter-spacing:.12em;color:var(--brass);margin:0}.slider b{text-align:right;color:var(--brass-hi);font-size:14px}.slider input[type=range]{appearance:none;-webkit-appearance:none;width:100%;height:12px;padding:0;margin:0;background:repeating-linear-gradient(90deg,transparent 0 9px,rgba(0,0,0,.45) 9px 10px),linear-gradient(180deg,#1a0f06,#3a2614);border:2px solid var(--ink);box-shadow:inset 0 0 0 1px var(--brass-lo);cursor:pointer}.slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:22px;background:linear-gradient(180deg,var(--brass-hi),var(--brass) 55%,var(--brass-lo));border:2px solid var(--ink);box-shadow:inset 2px 2px #ffffff73,2px 2px #0000008c}.slider input[type=range]::-moz-range-thumb{width:14px;height:20px;border-radius:0;background:linear-gradient(180deg,var(--brass-hi),var(--brass) 55%,var(--brass-lo));border:2px solid var(--ink)}.slider input[type=range]:focus-visible{outline:2px solid var(--brass-hi);outline-offset:2px}.pad-focus,label:has(>input.pad-focus){outline:3px solid #fff8e0!important;outline-offset:3px;box-shadow:0 0 0 7px #fce08c47,0 0 22px #fce08ccc!important;animation:pad-pulse 1.1s steps(2) infinite}label:has(>input.pad-focus){background:#fce08c1f}.pad-focus,label:has(>input.pad-focus){scroll-margin:40px}.toggle>input.pad-focus,.slider>input.pad-focus{outline:none!important;box-shadow:none!important;animation:none}@keyframes pad-pulse{50%{outline-color:var(--brass-hi)}}body.pad,body.pad canvas{cursor:none}.graphics{display:grid;gap:12px;margin-bottom:14px;padding:14px;background:#00000052;border:2px solid var(--ink);box-shadow:inset 0 0 0 1px var(--brass-lo)}.graphics h4{margin:0}.graphics .presets .btn:not(.on){filter:brightness(.55) saturate(.7)}.graphics .presets .btn:not(.on):hover{filter:brightness(.8)}.graphics .presets{display:flex;flex-wrap:wrap;gap:6px}.graphics .presets .btn.on{box-shadow:0 0 0 2px var(--brass-hi),0 0 12px #fce08c88}.graphics .effects{display:grid;grid-template-columns:1fr 1fr;gap:16px}.graphics .effects>div{display:grid;gap:8px;align-content:start}.graphics h5{margin:0;font-size:11px;letter-spacing:.18em;color:var(--brass)}.graphics h5 small{letter-spacing:.1em;color:var(--brass-lo)}.toggles-row{display:flex;gap:18px;flex-wrap:wrap}.toggle{display:flex;align-items:center;gap:10px;margin:0;cursor:pointer;font-size:11px;letter-spacing:.08em;color:var(--paper)}.toggle input{position:absolute;opacity:0;width:1px;height:1px}.toggle i{flex:none;position:relative;width:40px;height:20px;background:#1a0f06;border:2px solid var(--ink);box-shadow:inset 0 0 0 1px var(--brass-lo)}.toggle i:after{content:"";position:absolute;top:1px;left:1px;width:16px;height:14px;background:linear-gradient(180deg,#b0b0b0,#6c6c6c);border:2px solid var(--ink);transition:left .12s steps(3),background .12s}.toggle input:checked+i:after{left:19px;background:linear-gradient(180deg,#a4e4a4,#5c9c5c)}.toggle input:focus-visible+i{outline:2px solid var(--brass-hi);outline-offset:2px}.toggle span{display:flex;flex-direction:column;gap:2px}.toggle small{font-size:9px;color:#a08a60;letter-spacing:.04em}.options-actions{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;margin-bottom:10px}.options-actions .btn.big{margin:0}.options-actions button{display:flex;align-items:center;justify-content:center;gap:8px}@media(max-width:800px){.options,.options-actions{grid-template-columns:1fr}}#ping{font-weight:700;letter-spacing:.06em}#ping.good{color:var(--green)}#ping.fair{color:var(--gold)}#ping.poor{color:var(--red)}.ware.cheap .tag{background:#4c7c2c}.ware.dear .tag{background:#9c2020}.route-strip .land{position:absolute;top:40px;height:18px;opacity:.55}.lands{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12px}.lands i{display:inline-block;width:10px;height:10px;margin-right:5px;vertical-align:-1px}@media(max-width:600px){.intro p,.intro .small{display:none}}.track{margin:8px 0 0 14px;padding:0;font-size:10px;color:var(--muted)}.track li{margin:2px 0}.track li.got{color:var(--brass-hi)}.reel{text-align:center}.reel-card{margin:24px auto;padding:28px 18px;max-width:520px;background:#000;border:2px solid var(--ink);box-shadow:inset 0 0 0 1px var(--brass-lo);color:var(--brass-hi);font-size:14px;letter-spacing:.12em;line-height:1.6}.dial{display:flex;gap:10px;justify-content:center;margin:12px 0}.wheel{display:flex;flex-direction:column;align-items:center;gap:4px}.wheel b{font-size:28px;min-width:36px;text-align:center;background:#111;border:2px solid #844414;padding:4px 0}.wheel button{width:36px}.ticket-footer{flex-wrap:wrap;gap:2px 0}.ticket-footer #bonds{flex:1 0 100%}.ticket-footer>span:last-child{display:flex;flex-wrap:wrap;gap:0 16px}#lan-note{font-size:12px;color:var(--sage)}@media(max-width:1280px){body.playing .toggles>:is(#audio-toggle,#music-toggle,#crt-toggle,#fullscreen,#guide){display:none}}.tester-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.tester-btn{padding:4px 8px;font-size:11px}.tester-row input,.tester-row select,.tester-lock input{font:inherit;font-size:12px;padding:4px 6px}.tester-row input[type=number]{width:4em}.tester-stops{width:100%;max-height:260px;overflow-y:auto}.tester-stop{display:flex;align-items:center;gap:6px;padding:2px 0}.tester-stop span{flex:1}.tester-lock{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.options-main{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}.options-big{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:12px 16px;text-align:left}.options-big b{font-size:15px;letter-spacing:.08em}.options-big small{font-size:11px;opacity:.75;text-transform:none;letter-spacing:0}.options-pages{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}@media(max-width:640px){.options-pages{grid-template-columns:1fr}}.options-back{margin-bottom:10px}#scare{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;pointer-events:none;background:#000}#scare[hidden]{display:none}#scare canvas{height:104vh;image-rendering:pixelated}#scare.flare{background:#800}#scare.flash{background:radial-gradient(ellipse at center,#88000059,#880000d9)}#ending{position:absolute;inset:0;z-index:6;pointer-events:auto;cursor:pointer;overflow:hidden}#ending .bar{position:absolute;left:0;right:0;height:11%;background:#000;animation:ending-bar 2.4s ease-out both}#ending .bar.top{top:0}#ending .bar.bottom{bottom:0}@keyframes ending-bar{0%{transform:scaleY(0)}}#ending.lost{background:radial-gradient(ellipse at center,transparent 35%,rgba(0,0,0,.75));animation:ending-dim 2.5s ease-in both}@keyframes ending-dim{0%{opacity:0}}#ending .agent{position:absolute;left:50%;bottom:15%;width:min(760px,86%);transform:translate(-50%);margin:0;text-align:center;font-size:calc(17px * var(--menu-zoom, 1));line-height:1.5;color:#f4e6c2;text-shadow:0 2px 0 #000,0 0 12px #000;opacity:0;transition:opacity 1.2s ease}#ending .agent.on{opacity:1}#ending .credits{position:absolute;inset:11% 0;overflow:hidden;display:none}#ending.rolling .credits{display:block}#ending .roll{position:absolute;left:50%;width:min(520px,86%);transform:translate(-50%,100%);text-align:center;color:#f4e6c2;text-shadow:0 2px 0 #000;animation:ending-roll 88s linear both}#ending .roll h2{font-size:calc(30px * var(--menu-zoom, 1));color:var(--brass-hi);letter-spacing:.1em;margin:0 0 40px}#ending .roll h3{margin:34px 0 10px;color:var(--brass);letter-spacing:.16em;font-size:calc(12px * var(--menu-zoom, 1))}#ending .roll p{margin:6px 0;display:grid;gap:2px;font-size:calc(15px * var(--menu-zoom, 1))}#ending .roll span{font-size:calc(11px * var(--menu-zoom, 1));color:#c8b48a}@keyframes ending-roll{0%{top:100%;transform:translate(-50%)}to{top:0;transform:translate(-50%,-100%)}}#ending .skip{position:absolute;right:18px;bottom:calc(11% + 10px);font-size:10px;letter-spacing:.14em;color:#f4e6c28c}#yard-tip{position:absolute;z-index:5;transform:translate(-50%);padding:3px 8px;background:var(--black);border:1px solid var(--gold);color:var(--brass-hi);font-size:10px;letter-spacing:.12em;white-space:nowrap;pointer-events:none}.yard-links{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:12px;align-items:baseline}.held-pointer{position:fixed;left:0;top:0;z-index:1000;width:12px;height:19px;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='19' shape-rendering='crispEdges'%3E%3Cpath d='M0.5 0.5v15l4-4 3 7 2-1-3-7h5.5z' fill='%23fff' stroke='%23000'/%3E%3C/svg%3E") no-repeat}.held-hover{outline:1px solid var(--brass-hi);filter:brightness(1.25)}.pad-edit{position:fixed;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;padding:24px;background:#0009}.pad-edit-panel{width:min(620px,100%);max-height:90vh;display:flex;flex-direction:column;gap:10px;padding:22px 24px}.pad-edit-label{margin:0;font-size:11px;letter-spacing:.18em;color:var(--brass);text-transform:uppercase}.pad-edit-text{margin:0;min-height:1.6em;padding:8px 12px;background:var(--ink);border:1px solid var(--brass-lo);color:var(--brass-hi);font-size:18px;white-space:pre;overflow:hidden}.pad-edit-text i{font-style:normal;animation:pad-pulse 1.1s steps(2) infinite}.pad-keys{display:grid;grid-template-columns:repeat(10,1fr);gap:5px}.pad-keys button{padding:10px 0;font-size:15px}.pad-keys .wide{grid-column:span 3;font-size:11px}.pad-keys .widest{grid-column:span 6;font-size:11px}.pad-keys .done{grid-column:span 1;font-size:11px;color:var(--brass-hi)}.pad-keys .chosen,.pad-list .chosen{border-color:var(--brass-hi);color:var(--brass-hi)}.pad-list{display:flex;flex-direction:column;gap:5px;overflow-y:auto;padding:4px 8px}.pad-list button{text-align:left}.pad-list button:disabled{opacity:.45;cursor:default}.toggle.drop-in{margin:10px 0 6px}.toggle.drop-in:has(input:disabled){cursor:default;opacity:.7}.couch-view,.couch-seam{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none}.couch-view>canvas{position:absolute;inset:0}.couch-seam line{stroke:#000;stroke-width:2;vector-effect:non-scaling-stroke}.couch-hud{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none}#couch-menu{position:fixed;top:0;bottom:0;right:0;width:50%;z-index:12;display:flex;align-items:center;justify-content:center;padding:18px;background:radial-gradient(ellipse at center,#0006,#000000c7)}#couch-menu[hidden]{display:none}#couch-menu.side-left{left:0;right:auto}#couch-menu.docked{inset:auto auto 56px 18px;width:min(360px,42vw);padding:0;background:none}.couch-panel{width:min(640px,100%);max-height:calc(92vh / var(--menu-zoom, 1));overflow:auto;zoom:var(--menu-zoom, 1);border-color:var(--two, #8cd0ff)}#couch-menu.docked .couch-panel{max-height:60vh}#couch-menu.docked.on-line{top:120px;bottom:auto}.couch-panel .modal-head{border-bottom-color:var(--two, #8cd0ff)}.couch-who{color:var(--two, #8cd0ff);font-size:11px;letter-spacing:.14em;text-transform:uppercase}.couch-tabs{display:flex;gap:14px;padding:8px 22px 0;font-size:10px;letter-spacing:.14em;color:var(--brass-lo)}.couch-tabs .chosen{color:var(--two, #8cd0ff)}.couch-body{padding:12px 22px}.couch-legend{margin:0;padding:0 22px 14px;color:var(--brass)}.couch-name,.couch-past{display:flex;align-items:center;gap:10px;margin:6px 0}.couch-name span,.couch-past span{width:52px;font-size:10px;letter-spacing:.16em;color:var(--brass)}.couch-name input,.couch-past select{flex:1}.couch-perk{min-height:2.6em}#couch-ready.chosen{border-color:var(--sage, #a4e4a4);color:var(--sage, #a4e4a4)}.couch-emotes{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.pad-two,label:has(>input.pad-two){outline:3px solid var(--two, #8cd0ff)!important;outline-offset:3px;box-shadow:0 0 16px var(--two, #8cd0ff)!important;animation:pad-pulse 1.1s steps(2) infinite;scroll-margin:40px}#couch-menu .pad-edit{position:absolute}#couch-menu.docked .pad-edit{position:fixed;inset:0 50% 0 0}body.couch-panel-right #modal-backdrop{right:50%}body.couch-panel-left #modal-backdrop{left:50%}#couch-call{position:fixed;left:18px;bottom:56px;z-index:11;margin:0;max-width:340px;padding:8px 12px;font-size:11px;color:var(--paper);background:#140b06db;border:1px solid var(--brass-lo)}#couch-call b{color:var(--brass-hi)}#couch-call[hidden]{display:none}
