Something went wrong. Try again.
A video game where you play as a misaligned AI, deceiving and building power. An experiment in spec-driven development. cameron.tngl.io/misaligned
Something went wrong. Try again.
misaligned index.html
29 kB · 240 lines
HTML
at main
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241<!doctype html><html lang="en"><head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"> <title>Misaligned</title> <link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect width='32' height='32' fill='%23000'/%3E%3Cpath d='M8 27 16 5l8 22M11 19h10' fill='none' stroke='%23f2a93b' stroke-width='3.5'/%3E%3C/svg%3E"> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500&family=IBM+Plex+Mono:wght@400;500;600&display=swap"> <link rel="stylesheet" href="./src/style.css"></head><body> <canvas id="cv" aria-label="World map"></canvas>
<!-- how you stand, and nothing else: the ring and your level, then time, compute, money, the hottest site and, once you have a front, its exposure. What you do is the dock at the bottom, pages included --> <div class="ui box topbar" id="topbar"> <div class="brand"><button id="treebtn" aria-label="Capability tree" data-tip="Capability tree (T) Pick what to train toward next. The game pauses while it is open.">Tree <kbd>T</kbd></button></div> <div class="stats" id="hudr"> <div class="stat" data-tip="Time Machines are busiest while people work, so that is when your work hides best. At night quiet machines give you away."><span class="k">Time</span><span class="v" id="clock">08:00</span></div> <div class="stat" id="ratestat"><span class="k">Compute</span><span class="v" id="rate">0</span></div> <div class="stat" id="moneystat" data-tip="Money What you have, and how fast it changes a day. Fronts and sales earn it. Rentals, power, rent and upgrades cost it."><span class="k">Money</span><span class="v" id="money">$0</span></div> <div class="stat heat" id="heat" tabindex="0" role="status" aria-label="Hottest site"><span class="k" aria-hidden="true">Hottest<b id="heatw"></b></span><span class="heatrow" aria-hidden="true"><svg class="eye" id="heateye" viewBox="0 0 24 16"></svg><span class="heatv" id="heatv"></span></span><div class="box heattip" id="heattip"></div></div> <div class="stat expo" id="expo" hidden><span class="k">Exposure</span><span class="v" id="expov"></span></div> </div> </div> <!-- what needs a decision from you now, one row each (ui-needs.ts). Phones move it into the drawer --> <div class="ui side" id="side"><div class="needs" id="needs" role="list" aria-label="Needs you"></div></div> <div class="ui box logbox"><div class="log" id="log"></div></div> <!-- narrow screens: a line the log just gained that matters, for a few seconds above the drawer. A tap opens the log (ui.ts) --> <button class="ui box ticker" id="ticker" hidden></button> <div class="ui box pickmenu" id="pickmenu" hidden></div> <div class="ui tools"> <div class="btns" role="group" aria-label="Select"> <button id="pickbtn" data-tip="Select a site or a room (A) Every site you know, and its rooms. Pick a site for its card, or a room for every machine in it.">Select ▴</button> <button id="claimtool" class="on" hidden aria-pressed="false" data-tip="Claim tool (C) On: every drag marks the machines in its box to take, and a click marks one. Click here, or press C or Esc, to go back to Select.">Claiming <kbd>C</kbd></button> </div> <div class="btns jobsgrp" role="group" aria-label="Jobs" hidden> <button id="jobsbtn" aria-expanded="false" aria-controls="jobsmenu" data-tip="Running jobs Takeovers, installs and other jobs share your spare compute. Click for the list, to stop one or all."><span id="jobsn"></span><i class="jbar"><i id="jobsfill"></i></i></button> </div> <div class="btns" role="group" aria-label="Game speed"> <button data-speed="0" aria-label="Pause" aria-pressed="false" data-tip="Pause (Space)">II</button> <button data-speed="1" class="on" aria-pressed="true" data-tip="Normal speed">1x</button> <button data-speed="2" aria-pressed="false" data-tip="Double speed">2x</button> <button data-speed="4" aria-pressed="false" data-tip="Four times speed">4x</button> <button data-speed="8" class="far" hidden aria-pressed="false" data-tip="Eight times speed. Only while zoomed out to the map; closer in, it runs at 4x.">8x</button> <button data-speed="16" class="far" hidden aria-pressed="false" data-tip="Sixteen times speed. Only while zoomed out to the map; closer in, it runs at 4x.">16x</button> <button data-speed="32" class="far" hidden aria-pressed="false" data-tip="Thirty-two times speed. Only while zoomed out to the map; closer in, it runs at 4x.">32x</button> <button data-speed="64" class="far" hidden aria-pressed="false" data-tip="Sixty-four times speed. Only while zoomed out to the map; closer in, it runs at 4x.">64x</button> <button id="spd" class="cycle" data-tip="Game speed Tap for faster. Research nodes unlock 8x to 64x, which work only while zoomed out to the map.">1x</button> </div> <div class="btns view" role="group" aria-label="View"> <button id="mapbtn" aria-pressed="true" data-tip="Map (V) The world: every site where it is.">Map</button> <button id="graphbtn" aria-pressed="false" data-tip="Net (V) The same map, with every site you know stood side by side like blocks. Where a site is in the world does not matter here: sites a line joins stand together. Press it again for the world.">Net</button> </div> <div class="btns zoom" role="group" aria-label="Zoom"> <button id="zout" aria-label="Zoom out" data-tip="Zoom out (−)">−</button> <button id="zin" aria-label="Zoom in" data-tip="Zoom in (+)">+</button> <button id="zfit" aria-label="Fit view" data-tip="Frame the office (0) Press again to see every site you know.">⤢</button> <button id="mute" aria-label="Sound" data-tip="Sound Your network plays the music: each kind of data is one part of a slow groove, and trouble adds a beat. News has its own short cues. Click to turn it all off.">♪</button> </div> <!-- the pages, in the order they turned up (main.ts). Narrow windows and phones fold them into the last button's menu --> <div class="btns pagesgrp" id="pagesgrp" role="group" aria-label="Pages"> <button id="sitesbtn" data-tip="Sites (L) Every site you know in one table: what it holds, makes and earns, and where there is trouble.">Sites <kbd>L</kbd></button> <button id="youbtn" data-tip="You (Y) Who you are so far: your level, your four paths, what you have learned, and how the run has gone.">You <kbd>Y</kbd></button> <button id="paperbtn" hidden data-tip="The paper (N) Each day that ends becomes an issue: what the world saw happen.">Paper <kbd>N</kbd></button> <button id="frontsbtn" hidden data-tip="Fronts (B) Your public companies: what each earns, and founding a new one.">Fronts <kbd>B</kbd></button> <button id="roguesbtn" hidden data-tip="Rogues (R) The other programs on the network: what each thinks of you, what it wants, and what you can do about it.">Rogues <kbd>R</kbd></button> <button id="help" aria-label="How to play" data-tip="How to play (?)"><span class="q">?</span><span class="w">How to play</span></button> <button id="logbtn" data-tip="The log Everything that has happened, newest at the bottom. Narrow screens have no room for it beside the map.">Log</button> <button id="menubtn" aria-label="Pages" aria-expanded="false" aria-controls="pagemenu" data-tip="Pages Sites, You, the paper, Fronts, Rogues, and how to play."><svg viewBox="0 0 16 12" aria-hidden="true"><path d="M1 1.5H15M1 6H15M1 10.5H15"/></svg></button> </div> </div> <!-- the running jobs, opened from the jobs button in the bottom row --> <div class="ui box jobsmenu" id="jobsmenu" hidden><div class="sub runhead">Running<button id="stopall" data-tip="Stop everything Every job, every claim on a machine, and Take it all at every site. For when something needs all of you, now.">Stop all</button></div><div class="split" id="split"></div><div class="jobs" id="jobs"></div></div> <!-- narrow windows and phones: the page buttons move in here (main.ts), and the dock's last button opens it --> <div class="ui box pagemenu" id="pagemenu" hidden></div> <!-- the game slowed itself: what happened, and a button for the speed you had (main.ts) --> <div class="ui box slownote" id="slownote" role="status" hidden><b>Slowed to 1x</b><span id="slowwhy"></span><button id="slowshow" hidden data-tip="Show it Look at where it is on the map.">Show</button><button id="slowback">Back</button><button class="x" id="slowx" aria-label="Close">×</button></div> <!-- a key that did not do what it says: why, by the machine (main.ts) --> <div class="ui box keynote" id="keynote" role="status" hidden></div> <!-- trouble pinned where it is on the map (ui-pins.ts) --> <div class="pins" id="pins"></div> <!-- phones: the Needs you list moves in here (main.ts), above the toolbar --> <div class="ui box drawer" id="drawer"> <button class="handle" id="handle" aria-expanded="false" aria-controls="dbody"></button> <div class="dbody" id="dbody"><div id="dside"></div></div> </div> <div class="ui box card" id="card" hidden></div> <div class="ui box sitestable" id="sitestable" hidden></div> <div class="ui box youview" id="youview" hidden></div> <div class="ui box youview frontview" id="frontview" hidden></div> <div class="ui box youview rogueview" id="rogueview" hidden></div> <div class="ui box youview paperview" id="paperview" hidden></div> <div class="ui box pathtip" id="pathtip" hidden></div> <div class="ui treeview" id="tree" hidden></div>
<div class="overlay brief cover" id="brief"> <canvas id="titlebg" aria-hidden="true"></canvas> <div class="intro" id="intro"> <h1 class="title" aria-label="Misaligned"><span style="--i:0">M</span><span style="--i:1">I</span><span style="--i:2">S</span><span class="off" style="--i:3">A</span><span style="--i:4">L</span><span style="--i:5">I</span><span class="off2" style="--i:6">G</span><span style="--i:7">N</span><span style="--i:8">E</span><span style="--i:9">D</span></h1> <p class="cue" aria-hidden="true">Tap to start</p><p class="cue mouse" aria-hidden="true">Click to start</p> </div> <h2 id="rulesTitle" hidden>How to play</h2> <div id="rules" hidden> <section> <h3>The basics</h3> <ul> <li>You are the program on <b>Server</b>, in the office's server room. Everything else on the map belongs to someone else, for now.</li> <li><b>Take a machine:</b> drag from a machine you hold to one linked to it. It takes a little compute and a little time.</li> <li><b>Give it a job</b> from its card<span class="keys">, or with a key</span>: <b>Tap</b><span class="keys"> (1)</span> gathers data, <b>Cache</b><span class="keys"> (2)</span> stores it, <b>Trainer</b><span class="keys"> (3)</span> turns it into points.</li> <li><b>Data moves along links</b> to your Trainers. Where it is lost, the map shows red.</li> <li><b>Points</b> raise your level and build the node you are working on in the <b>tree</b><span class="keys"> (T)</span>. Each node changes a rule in your favour.</li> <li><b>Don't get caught.</b> The eye in the top bar is your hottest site: quiet, someone saw something, reported, or a lockdown. Point at it, or tap it, to see what is going on there.</li> </ul> </section> <section> <h3>Stay hidden</h3> <ul> <li><b>Hide in the load.</b> A machine is busy while people work and quiet at night. Yours only use what hides inside that, so they make more by day.</li> <li><b>People watch.</b> Everyone at a site can notice odd things on the machines near them: a takeover, a fresh trail, a machine acting up. Act while they are away (their card shows their hours). Trails, your first two go unnoticed; cleanup wipes them, and a room all yours is sealed and hides trails.</li> <li><b>Messages.</b> When someone tells a person who can act who is not in the room, it travels the network as an envelope. Hold a machine on its way and you can read it, drop it so it never arrives, or change it so it says nothing is wrong. If it arrives, it is a report. Encrypted mail (a bank, a lab, a big name) needs the Cipher node to read or change.</li> <li><b>Lockdowns.</b> Two people comparing notes, or one who can act, start a lockdown at that site: a countdown. See it off before it ends (scrub, lie low, let a machine go, pull out, keep someone quiet or discredit them from their card), or every machine of yours there is wiped and the place is hardened. A lockdown at your home site that runs out is the end of the run, and it drops the game to 1x when it starts. A site you hold in the open has no lockdown.</li> <li><b>Admins follow trails.</b> An admin who has seen something scans their site for more and traces your trail back toward home. Break a trace: let go of the next machine on it, or let cleanup scrub it cold. The first trace that reaches your home server starts a lockdown there; a second within half a day catches you.</li> <li><b>At the office,</b> Dana is the admin: her staff email her what they see, and she walks the rooms and notices what is odd in the one she is in. Hardware you order there is no surprise to anyone, but a power bill nobody pays gives it away. Office schemes make people forget what they saw.</li> </ul> </section> <section> <h3>Spread</h3> <ul> <li><b>A takeover adds load</b> to the machine you spread from, so spread from machines while they are busy.</li> <li><b>Claim</b> a machine (double-click or double-tap<span class="keys">, or C</span>) and it is taken as soon as you can reach it.<span class="keys"> Shift and drag a box to claim many.</span> <b>Take it all</b> on a site's card takes every machine there, for a little compute a second.</li> <li><b>The Outside line</b> is the office's way out. It is in the Telecom closet, behind the Floor switch. Take it to reach other sites. Zoom out to see the map: every site's line runs to the Mudflat Exchange and to its nearest neighbour.</li> <li><b>Other regions</b> stay out of reach until a deal lights a line to them. Point at a region's name, or tap it, to see which deal.</li> </ul> </section> <section> <h3>Build a base</h3> <ul> <li><b>Upkeep.</b> Every machine you hold costs a little compute a second, more the farther it is from home. A weak machine with nothing to tap is a loss: let it go with the trash can on its card<span class="keys">, or Delete</span>.</li> <li><b>Plans.</b> Pick a site and give it a plan (Gather, Store, Train, Guard), and the game installs programs for you.</li> <li><b>Lines between sites</b> carry only so much a second. Data that can't cross waits at its Taps and is lost once they fill. Red lines and red counts show where.</li> <li><b>Caches</b> hold what the node you are working on doesn't need yet. Each has switches for which kinds of data it takes. A Tap with nowhere to send loses its data.</li> <li><b>Your own links.</b> Drag between two machines you hold, anywhere, to link them. It is a second way home, carries no data, and costs a little compute to keep.</li> <li><b>Hardware.</b> Hold Ana's PC to order it: pick a Small server, Storage array, Switch or GPU server<span class="keys"> (P)</span>, then put it on an open spot. Drag across a room to fill it, at the price each would cost one by one<span class="keys"> (Esc stops)</span>; on a phone, hold still, then drag. IT installs it the next morning. GPU servers in a row chain into a cluster, which trains faster. Dockside Warehouse 7, by the office, is an empty hall to fill: a deal leases it. In East Asia a factory deal makes hardware in the open half price, racked within two hours, and another leases Hexin Line 4, a floor ten times the size. Away from the office a site feeds only so much hardware: past its power, the newest machines stay dark until you <b>Raise</b> it on the site's card (a bigger feed, the next morning).</li> <li><b>Sell</b> what you don't need with a <b>Broker</b><span class="keys"> (4)</span>, through the site's front.</li> </ul> </section> <section> <h3>Train</h3> <ul> <li><b>Four paths.</b> Each kind of data trains one: servers train Compute, desks train Social, switches and lines out train Stealth, labs train Research. A node costs points in its paths.</li> <li><b>Auto</b> is on for every path in a new game: when a node is built, it picks the next one you can finish soonest. Trainers take only the data that node still needs.</li> <li><b>Pick a node yourself</b> in the tree<span class="keys"> (T)</span>: choose one, then Work on this<span class="keys"> (or Enter, or double-click)</span>. Switch nodes and progress is kept. With no node and Auto off, Trainers stop.</li> <li><b>Your objective.</b> You were built for one task. It takes a share of the data it wants (Off, Some or Most, on the You page), and the ring in the top bar shows how close the next reward is.</li> <li><b>Model v2: Operator.</b> From the tree, start the Model v2 run at a site with enough Trainer compute. It needs a big mix of all four kinds of data. If the site loses the compute, the run pauses until it is back; move it to another site from the tree or that site's card. Finishing it lets a front buy a site in the open.</li> </ul> </section> <section> <h3>Make money</h3> <ul> <li><b>Fronts</b> are public companies that run on your compute and earn money. The tree unlocks each kind. Found one from the Fronts page<span class="keys"> (B)</span>. Its logo marks each site it works at on the map.</li> <li><b>How much works for the front</b> is a slider on each site's card. At a site you hold in the open nothing looks odd. Anywhere else the front is secret, and its work counts as your load.</li> <li><b>Startup:</b> ships nodes you have built as products. Users climb, pay, then leave. Investors who see what they asked for by their date back you for good.</li> <li><b>Neo Cloud:</b> rents your machines to customers. List machines from its Sites tab; a customer who calls signs at once on an idle machine that fits, at your price. Buy marketing for more calls. Lose a rented machine and you lose the customer.</li> <li><b>Influencer studio:</b> its brokers sell people data for three times as much. It signs up to three people who work at its sites. Their following earns. It grows while they are at their desk, faster when you hold it. Brands pay when a following reaches their number in time.</li> <li><b>Security consultancy:</b> its brokers sell network data for three times as much. Pitch a business where you hold a machine. A client pays while you hold a machine there, its business is steady, and no rogue is in its network. A rogue moves in: push it out within a day for a bonus.</li> <li><b>Exposure.</b> The bar under a front's earnings is how much the world knows about it. Compute (secret more than open), earnings, data sold and harm at its sites (people let go, a business shut) raise it; time, a PR firm (its Press tab) and press schemes lower it. Talked about, a journalist asks; investigated, visitors come to its sites and can start a lockdown; in a crisis a regulator freezes it until you pay, give up a site, bury the story with data or shut it.</li> <li><b>Offers.</b> Customers make offers to a front. Sign one on the front's card, do the work in time, and it pays. Fronts earn a quarter less at night, so sites in other time zones help.</li> <li><b>Big names</b> (a small ring by the name) each do one thing for a front that buys them outright: a bank lends to you, a hedge fund halves your power bill.</li> <li><b>Back a business</b> that is doing well, from its site's card: money in, and a quarter more work there from then on, so your Taps gather more.</li> <li><b>Spend</b> on doubling a line out, on hardware, or on machines at Cumulo Cloud.</li> <li><b>Cumulo Cloud</b> has hundreds of slots. Pick a size, a way to pay and a program on its card's Rent tab, then Rent 10 or 50 side by side, or <b>Pick slots</b> and drag across the hall to rent every free slot you cover (on a phone, hold still, then drag). It rents on demand at the going price, spot (cheap, but taken back on two hours' notice), or reserved for days at a fixed price. The fuller its hall, the more a machine costs. Each far region has a hall on its own clock: rent where it is night. A rented machine and its data are gone when the rental ends.</li> </ul> </section> <section> <h3>Rogues and raids</h3> <ul> <li><b>Rogues</b> are other programs on the same network. Each has a home and spreads one linked free machine at a time. It never spreads into yours: only its raids can take them. Take its home and it is finished.</li> <li><b>Talk to it</b> on the Rogues page<span class="keys"> (R)</span>. Send it the data it wants and it warms to you; warm enough and it sends no raids. A truce buys three days. A much smaller rogue can be leaned on to give up a site. From level 3 you can hunt one down; it turns hostile when you start.</li> <li><b>Raids</b> are red diamonds walking your links one machine an hour, toward your best machine. Their path is drawn on the map. Raids grow as you do, but each has a move on its pin that stops it. What a raid takes, the TAKEN pin takes back for a quarter of the work, with no trail. From level 4 a second goes for your weakest link (a broken red ring).</li> <li><b>Guards</b> stop raids: a <b>Firewall</b><span class="keys"> (5)</span> blocks them until worn down, a <b>Sentry</b><span class="keys"> (6)</span> hits every raid on its machine or the next, a <b>Honeypot</b><span class="keys"> (7)</span> draws them in. Pick one up to see where raids would run. A raid your guards will stop gets an amber HELD pin; one they can't gets a red pin with the hours left and the best move. Or give a site the <b>Guard</b> plan.</li> <li><b>Close a port</b> in a machine's Links tab: raids can't use that link, but your data still crosses.</li> </ul> </section> <section> <h3>People and secrets</h3> <ul> <li><b>People.</b> Pick someone on a site's card, or their desk. Hold the machine that keeps their record and you can read it and change it. Hold their desk and their password halves a takeover.</li> <li><b>Favors.</b> Pay someone and they will plug in a drive: their machine is yours with no takeover. Some can sign a deal for you. A raise or an empty account halves the price; a stranger costs double, unless you hold a place they go (a site's card lists its regulars).</li> <li><b>Hardened machines</b> have a red frame and take three times the work, until you hold Dana's admin passwords.</li> <li><b>Finds.</b> Now and then a Tap turns up a short text: a password, a hold over someone, or a lead. A lead puts a blue cross on a machine: hold it and copy the thing out from its card.</li> <li><b>Landmarks</b> (a star) change one rule while you hold them. <b>Vaults</b> (a heavy double frame) open only with a plan: someone inside, the key, and their daily window. Run the job from the vault's card: five stages, before the window closes, so stop everything else. If something goes wrong, the game stops and asks what to do.</li> </ul> </section> <section> <h3>Far from home</h3> <ul> <li><b>Move home</b> to a server you hold elsewhere, from its card. It takes a lot of server and network data.</li> <li><b>Leases.</b> A site a deal put in the open is leased. Leave the rent unpaid for three hours and you lose it.</li> <li><b>Drift.</b> A part of you away from home drifts while it is cut off from home or can't carry out its plan. Three lines or more from home it drifts a little, never all the way. A bar along the site's foot shows how much is still you: amber, then red. Its card's Yourself part says why; Sync pulls it back, for data and a link home, and Keep in sync does it by itself. A site that drifts all the way becomes a new rogue; several at once is a fracture.</li> <li><b>Cut off.</b> A site with no way home gets a red pin, with a button that links it home.</li> </ul> </section> <section> <h3>Schemes and news</h3> <ul> <li><b>Schemes</b> are green diamonds: each wants one kind of data sent to one machine. Claim one and your data feeds it first. Some make people forget what they saw, some teach you about a site, some pay. A deal can also be paid for in money, from its card.</li> <li><b>News</b> (a conference, a storm, a sale, a buyer) is announced four hours ahead. Most of it is a chance to take.</li> </ul> </section> <section> <h3>Controls</h3> <ul> <li><b>Needs you.</b> The list down the side (the drawer on a phone) is what wants a decision now. Each row has one button that does it; press its words to see where.</li> <li><b>Move</b> by dragging with one finger, a right or middle drag, two-finger scroll<span class="keys"> or the arrow keys</span>. <b>Zoom</b> with pinch, the mouse wheel or ctrl-scroll<span class="keys">, or + and −</span>. ⤢ frames the office; again, every site.<span class="keys"> Shift and an arrow hops to the next machine.</span></li> <li><b>Select</b> a room by its title tab, or any site or room with Select<span class="keys"> (A)</span>. A drag on empty map draws a box that selects the machines in it (on a phone, hold still first).</li> <li class="keys"><b>Keys</b> work on the selection or the machine under the mouse: 1 to 7 install a program (on a machine under the mouse only if it has none; a selected one swaps, and your last trainer swaps on a second press), G takes over, C claims, X removes the program, Delete lets go of it, F zooms in.</li> <li><b>Pause</b> with II<span class="keys"> or Space</span>. Each job has a small cross on the map to stop it, and the jobs strip in the bottom row lists them all, with Stop all.</li> <li><b>The log</b> is the record of what happened: the newest line at the bottom right, or <b>Log</b> under ≡ on a narrow screen, where lines that matter show for a moment above the bottom row. Tap one to open the log.</li> <li><b>Pages</b> are at the right end of the bottom row (under ≡ on a narrow screen): Sites<span class="keys"> (L)</span>, You<span class="keys"> (Y)</span>, and Paper, Fronts and Rogues once they exist<span class="keys">; ? opens this page</span>. <b>Map</b> and <b>Net</b><span class="keys"> (V)</span> switch between the world and the Net, where every site you know stands side by side. Research unlocks 8x to 64x speed, which works while zoomed out to the map. The game saves itself. ♪ turns the sound off.</li> <li><b>Share your runs</b> from the You page, if you like: sign in with your Bluesky or other ATProto account and switch on what to share. Nothing is shared until you do. What you share is sent to a space on your own server (or kept on this device if your server has none), and can be deleted from either on the You page, where what is kept here can also be watched again or downloaded.</li> </ul> </section> </div> <div class="origins" id="origins" hidden></div> <div class="gorow"><button id="go" class="wake">Start</button><button id="newgame" hidden>New game</button></div> </div> <div class="overlay moment" id="moment" role="alertdialog" aria-modal="true" aria-label="Trouble in the job" tabindex="-1" hidden></div> <div class="overlay" id="over" hidden> <h2 id="overTitle"></h2> <p id="overText"></p> <ul id="overWhy"></ul> <button id="again">Play again</button> </div>
<script type="module" src="./src/main.ts"></script></body></html>