html,body{margin:0;height:100%;overflow:hidden;background:#14121b;color:#e9f1f2;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}#sea{position:fixed;left:0;top:0;display:block;touch-action:none;image-rendering:pixelated}.stats{position:fixed;top:calc(10px + env(safe-area-inset-top,0px));left:calc(10px + env(safe-area-inset-left,0px));padding:6px 9px;font:12px/1.4 ui-monospace,Cascadia Mono,Consolas,monospace;font-variant-numeric:tabular-nums;background:#04101ab3;border-radius:4px;white-space:pre;pointer-events:none}.prompt{position:fixed;left:50%;bottom:calc(14 * var(--px) + env(safe-area-inset-bottom,0px));transform:translate(-50%);border:calc(5 * var(--px)) solid transparent;border-image:url(/ui/input.png) 5 fill / calc(5 * var(--px)) stretch;image-rendering:pixelated;padding:0 calc(3 * var(--px));font:calc(9 * var(--px)) / 1 "VT323",ui-monospace,monospace;color:#f2dfb4;white-space:nowrap;pointer-events:none}.fade{position:fixed;top:0;right:0;bottom:0;left:0;background:#0e0a08;opacity:0;transition:opacity .2s;pointer-events:none}.fade.on{opacity:1}.shipmap{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:radial-gradient(ellipse at center,#141018e6,#0a0806f7);opacity:0;transition:opacity .18s}.shipmap.on{opacity:1}.shipmap[hidden]{display:none}.shipmap-panel{display:grid;justify-items:center;gap:16px;width:100vw}.shipmap-title{font-family:Georgia,Times New Roman,serif;font-size:20px;letter-spacing:.4em;text-transform:uppercase;color:#e8c35a}.shipmap-stage{position:relative;overflow:hidden;max-width:100vw}.shipmap-stage canvas{display:block;image-rendering:pixelated}.shipmap-labels{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.shipmap-label{position:absolute;transform:translate(-50%,-50%);display:grid;justify-items:center;font-family:Georgia,Times New Roman,serif;color:#f0e2bf;text-shadow:0 1px 0 #1c120c,0 0 4px #1c120c;white-space:nowrap;transition:transform .12s}.shipmap-label b{font-weight:400;font-variant:small-caps;letter-spacing:.06em}.shipmap-label span{font:.72em ui-monospace,Cascadia Mono,Consolas,monospace;color:#cbbfa6;opacity:.85}.shipmap-label.hot{transform:translate(-50%,-50%) scale(1.12)}.shipmap-label.hot b{color:#fff4d6}.shipmap-label.unbuilt{opacity:.45}.shipmap-hint{font:12px ui-monospace,Cascadia Mono,Consolas,monospace;color:#cbbfa6;opacity:.7}:root{--px: 2px;--chat-w: calc(176 * var(--px));--ink: #e6dcc6;--ink-dim: #6b7890;--green: #8fc46a}.chat-panel,.chat-toggle,.chat-send,.chat-bubble,.chat-panel img,.chat-bubble img{image-rendering:pixelated}.chat-panel{position:fixed;top:0;right:0;bottom:0;width:var(--chat-w);box-sizing:border-box;display:flex;flex-direction:column;border:calc(7 * var(--px)) solid transparent;border-image:url(/ui/panel.png) 7 fill / calc(7 * var(--px)) stretch;font:calc(9 * var(--px)) / 1.05 "VT323",ui-monospace,monospace;color:var(--ink);transform:translate(100%);transition:transform .18s ease-out}.chat-open .chat-panel{transform:none}.chat-header{display:flex;align-items:center;gap:calc(5 * var(--px));height:calc(22 * var(--px));padding:0 calc(3 * var(--px));border-bottom:var(--px) solid #ce8d39;box-shadow:0 var(--px) 0 #88520f;flex:none}.chat-anchor{width:calc(13 * var(--px));height:calc(16 * var(--px))}.chat-title{flex:1;margin:0;font:calc(8 * var(--px)) "Silkscreen","VT323",monospace;font-weight:400;letter-spacing:.22em;text-transform:uppercase;color:#f2dfb4;white-space:nowrap;overflow:hidden}.chat-people{display:flex;align-items:center;gap:calc(2 * var(--px));color:#efd9a8}.chat-people img{width:calc(9 * var(--px));height:calc(7 * var(--px))}.chat-body{position:relative;flex:1;min-height:0;margin-top:calc(2 * var(--px))}.chat-list{position:absolute;inset:0 calc(9 * var(--px)) 0 0;margin:0;padding:0;list-style:none;overflow-y:auto;scrollbar-width:none}.chat-list::-webkit-scrollbar{display:none}.chat-message{display:grid;grid-template-columns:calc(16 * var(--px)) 1fr;column-gap:calc(2 * var(--px));padding:calc(4 * var(--px)) calc(2 * var(--px));border-bottom:var(--px) solid #1a2638}.chat-hat{grid-row:span 2;width:calc(13 * var(--px));height:calc(6 * var(--px));margin-top:calc(2 * var(--px))}.chat-meta{display:flex;justify-content:space-between;align-items:baseline;font-size:calc(10 * var(--px))}.chat-time,.chat-no{font-size:calc(8 * var(--px));color:var(--ink-dim)}.chat-no{margin:0 auto 0 calc(3 * var(--px))}.chat-message{cursor:context-menu}.chat-message.targeted,.chat-message.flash{background:#efb65d1f}.chat-message.flash{animation:chat-flash 1.2s ease-out forwards}@keyframes chat-flash{0%{background:#efb65d4d}to{background:transparent}}.chat-ref{color:#efb65d;text-decoration:underline dotted;text-underline-offset:calc(2 * var(--px));cursor:pointer}.chat-ref.dead{color:var(--ink-dim);text-decoration:line-through;cursor:default}.chat-panel ::selection{background:#3a5078;color:#fff4d6}.chat-text p{margin:var(--px) 0 0;overflow-wrap:anywhere;white-space:pre-wrap}.chat-text .greentext{color:var(--green)}.hat-red .chat-name{color:#e8665c}.hat-blue .chat-name{color:#6e9cea}.hat-green .chat-name{color:#78c868}.hat-brown .chat-name{color:#d4a46c}.hat-purple .chat-name{color:#b48ce8}.chat-empty{padding:calc(8 * var(--px)) calc(4 * var(--px));color:var(--ink-dim)}.chat-track{position:absolute;top:0;right:0;bottom:0;width:calc(7 * var(--px));box-sizing:border-box;border:solid transparent;border-width:calc(2 * var(--px)) 0;border-image:url(/ui/scroll-track.png) 2 0 fill / calc(2 * var(--px)) 0 stretch;image-rendering:pixelated}.chat-thumb{position:absolute;top:0;left:calc(2 * var(--px));width:calc(3 * var(--px));box-sizing:border-box;border:solid transparent;border-width:var(--px) 0;border-image:url(/ui/scroll-thumb.png) 1 0 fill / var(--px) 0 stretch;image-rendering:pixelated;cursor:grab}.chat-form{display:flex;align-items:flex-end;gap:calc(3 * var(--px));padding-top:calc(4 * var(--px));flex:none}.chat-input{flex:1;min-width:0;box-sizing:border-box;min-height:calc(21 * var(--px));border:calc(5 * var(--px)) solid transparent;border-image:url(/ui/input.png) 5 fill / calc(5 * var(--px)) stretch;image-rendering:pixelated;cursor:text}.chat-input textarea{display:block;width:100%;height:calc(11 * var(--px));padding:0 calc(2 * var(--px));box-sizing:border-box;border:0;outline:0;background:transparent;color:var(--ink);font:inherit;line-height:calc(11 * var(--px));resize:none;overflow-y:auto;scrollbar-width:none}.chat-input textarea::placeholder{color:#56617a}.chat-input:focus-within{filter:brightness(1.12)}.chat-send,.chat-toggle{flex:none;padding:0;border:0;background:transparent center / 100% 100% no-repeat;cursor:pointer}.chat-send{width:calc(22 * var(--px));height:calc(21 * var(--px));background-image:url(/ui/send-button.png)}.chat-toggle{position:fixed;right:calc(6 * var(--px));bottom:calc(6 * var(--px));width:calc(28 * var(--px));height:calc(27 * var(--px));background-image:url(/ui/chat-button.png);transition:right .18s ease-out}.chat-open .chat-toggle{right:calc(var(--chat-w) + 4 * var(--px))}.chat-send:hover,.chat-toggle:hover{filter:brightness(1.15)}.chat-send:active,.chat-toggle:active{transform:translateY(var(--px))}.chat-send:focus-visible,.chat-toggle:focus-visible{outline:var(--px) solid #efb65d;outline-offset:var(--px)}.chat-unread{position:absolute;top:calc(-1 * var(--px));right:calc(-1 * var(--px));width:calc(4 * var(--px));height:calc(4 * var(--px));background:#efb65d;box-shadow:0 0 0 var(--px) #1b0d05;display:none}.chat-toggle.unread .chat-unread{display:block}.chat-bubbles{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.chat-bubble{position:absolute;left:0;top:0;max-width:calc(110 * var(--px));width:max-content;border:calc(2 * var(--px)) solid transparent;border-image:url(/ui/bubble.png) 5 fill / calc(5 * var(--px)) stretch;padding:var(--px) calc(3 * var(--px)) calc(2 * var(--px));margin-top:calc(-3 * var(--px));font:calc(9 * var(--px)) / 1 "VT323",ui-monospace,monospace;color:#2a1a10;overflow-wrap:anywhere;transition:opacity .4s}.chat-bubble.leaving{opacity:0}.chat-tail{position:absolute;left:50%;top:calc(100% + var(--px));width:calc(7 * var(--px));height:calc(4 * var(--px));transform:translate(-50%)}@media(max-width:640px){:root{--chat-w: 100vw}.chat-open .chat-toggle{right:calc(6 * var(--px));bottom:calc(30 * var(--px))}}
