:root{--navy:#0b1a2a;--cream:#e8e2c8;--gold:#ffd27a;--red:#ff5a4d;--green:#8fd16a;--panel-bg:#0b1a2aeb;--ui-scale:2;--font:"Pixelify Sans", monospace}@media (pointer:coarse){:root{--ui-scale:3}}@font-face{font-family:Pixelify Sans;src:url(/assets/pixelify-latin-DLrIX9QE.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Pixelify Sans;src:url(/assets/pixelify-latin-ext-DdH6zlBQ.woff2)format("woff2");font-display:swap;unicode-range:U+100-2AF,U+304,U+308,U+329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}html,body{background:var(--navy);height:100%;margin:0;overflow:hidden}[hidden]{display:none!important}#motd{max-width:min(90vw,640px);color:var(--cream);font:14px/1.4 var(--font);text-align:center;pointer-events:none;z-index:5;padding:6px 12px;position:fixed;top:44px;left:50%;transform:translate(-50%)}#game{width:100vw;height:100vh;image-rendering:pixelated;touch-action:none;display:block}#hud{color:var(--cream);font:14px/1.5 var(--font);pointer-events:none;padding:2px 6px;position:fixed;top:8px;left:8px}#hud>div{white-space:nowrap}#minimap{cursor:pointer;border-radius:50%;width:168px;height:168px;position:fixed;bottom:8px;right:8px}@media (pointer:coarse){#minimap{width:120px;height:120px;top:72px;bottom:auto}}#hud em{color:var(--red);font-style:normal}#hud em.warn{color:var(--gold)}@media (pointer:coarse){#hud{padding:0 6px;font-size:12px;line-height:1.2}#hud .ico{vertical-align:middle;margin:-1px 0}}.bar{vertical-align:middle;gap:1px;display:inline-flex}.bar b,.bar s{width:calc(3px * var(--ui-scale));height:calc(4px * var(--ui-scale));background:var(--green)}.bar s{background:var(--navy);outline:1px solid var(--cream);outline-offset:-1px;text-decoration:none}#touch{pointer-events:none;position:fixed;inset:0}#touch>*{pointer-events:auto}#rudder{touch-action:none;appearance:none;border:2px solid var(--cream);background:#00000073;border-radius:28px;width:42vw;max-width:260px;height:56px;margin:0;position:absolute;bottom:24px;left:16px}#rudder::-webkit-slider-runnable-track{background:0 0;height:100%}#rudder::-moz-range-track{background:0 0;height:100%}#rudder::-webkit-slider-thumb{-webkit-appearance:none;background:var(--cream);border:0;border-radius:50%;width:44px;height:44px}#rudder::-moz-range-thumb{background:var(--cream);border:0;border-radius:50%;width:44px;height:44px}#rudder:focus-visible{outline:3px solid var(--gold);outline-offset:2px}#sails{flex-direction:column;gap:8px;display:flex;position:absolute;bottom:96px;right:16px}#touch button{touch-action:manipulation;font:16px var(--font);padding:7px 12px}#anchor{position:absolute;bottom:24px;right:16px}#fire{position:absolute;bottom:24px;right:144px}#repair{position:absolute;bottom:80px;right:144px}#ammo{position:absolute;bottom:136px;right:144px}#board{position:absolute;bottom:192px;right:144px}#strip{position:absolute;bottom:248px;right:144px}@media (orientation:portrait){#fire{bottom:264px;right:16px}#repair{bottom:320px;right:16px}#ammo{bottom:376px;right:16px}#board{bottom:432px;right:16px}#strip{bottom:488px;right:16px}}#back-port{position:absolute;bottom:92px;left:16px}#zoom{position:absolute;bottom:92px;left:216px}@media (orientation:portrait){#zoom{bottom:148px;left:16px}}#back-star{position:absolute;bottom:92px;left:116px}#conn{color:var(--cream);font:14px/1.4 var(--font);text-shadow:0 1px #000;pointer-events:none;position:fixed;top:8px;left:50%;transform:translate(-50%)}#conn[data-state=reconnecting]{color:#ffb347}#conn[data-state=rejected]{color:var(--red)}#debug{z-index:6;color:var(--cream);font:13px/1.4 var(--font);padding:2px 6px;position:fixed;top:8px;right:8px}#debug pre{font:inherit;margin:0 0 4px}#login{z-index:10;background:var(--navy);color:var(--cream);font:18px var(--font);flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:16px;display:flex;position:fixed;inset:0}#login h1{margin:0;font-size:28px}#login .btn,#login button{box-sizing:border-box;min-height:48px;font:inherit;align-items:center;padding:10px 18px;text-decoration:none;display:inline-flex}#login form{gap:8px;display:flex}#login input{width:8em;min-width:0;color:var(--cream);font:inherit;padding:10px}#hold{color:var(--cream);font:13px/1.3 var(--font);text-shadow:0 1px #000;pointer-events:none;position:fixed;bottom:8px;left:8px}.fresh{border:1px solid var(--cream);background:#00000080;width:40px;height:6px;margin-left:6px;display:inline-block}.fresh i{background:var(--green);height:100%;display:block}#tutorial{z-index:1;width:200px;max-width:calc(50vw - 16px);color:var(--cream);font:12px/1.35 var(--font);padding:6px 8px;position:fixed;top:272px;left:8px}#tutorial summary{cursor:pointer}#tutorial ul{margin:4px 0 0;padding:0;list-style:none}#tutorial li.done{color:#8fd18f;text-decoration:line-through}#tutorial .reward{color:var(--gold);margin:4px 0}#tutorial button{font:12px var(--font);padding:1px 6px}#party{width:200px;max-width:calc(50vw - 16px);color:var(--cream);font:12px/1.35 var(--font);padding:6px 8px;position:fixed;top:272px;left:8px}#tutorial:not([hidden])~#party{top:312px}#party ul{margin:2px 0 4px;padding:0;list-style:none}#party li.away{opacity:.55}#party .crown{color:var(--gold)}#party .invite{margin-bottom:4px}#party button{font:12px var(--font);padding:1px 6px}#toasts{pointer-events:none;flex-direction:column;gap:4px;display:flex;position:fixed;top:60px;left:50%;transform:translate(-50%)}body:has(#motd:not([hidden])) #toasts{top:96px}#toasts div{color:var(--gold);font:14px var(--font);padding:6px 12px}#port,#trade{color:var(--cream);font:13px/1.4 var(--font);max-width:calc(100vw - 32px);padding:8px;position:fixed}#port,#trade,#captain,#shore,#guild,#shipwright,#season,#chart{z-index:2}#port{max-height:60vh;top:90px;right:8px;overflow:auto}#trade{bottom:8px;left:50%;transform:translate(-50%)}#port h2{margin:0 0 4px;font-size:16px}#port .debt:not(:empty){color:var(--red)}#port td,#port th{text-align:left;padding:2px 6px}#port button,#trade button{font:inherit;margin-right:2px;padding:2px 6px}#port input,#trade input,#trade select{width:5em;font:inherit}#port ul{margin:6px 0 0;padding-left:16px}#captain-btn{top:calc(12px + 13px * 1.4 + 4px + 4px * var(--ui-scale));font:13px var(--font);padding:2px 6px;position:fixed;right:8px}#captain,#guild,#shipwright,#season,#chart{box-sizing:border-box;width:min(640px,100vw - 32px);max-height:calc(100vh - 110px);color:var(--cream);font:13px/1.4 var(--font);padding:8px;position:fixed;top:90px;left:50%;overflow:auto;transform:translate(-50%)}#chart{width:min(900px,100vw - 32px)}#chart .cap{text-align:center;min-height:1.4em}#chart button{font:inherit;margin-right:2px;padding:2px 6px}#captain h2,#captain h3{text-transform:capitalize;margin:4px 0;font-size:14px}#captain ul,#port ul{padding-left:16px}#captain button,#port .tabs button{font:inherit;padding:2px 6px}#captain select{font:inherit}.xp{border:1px solid var(--cream);background:#00000080;height:8px}.xp i{background:var(--gold);height:100%;display:block}#shore{box-sizing:border-box;width:320px;max-width:calc(100vw - 32px);max-height:60vh;color:var(--cream);font:13px/1.4 var(--font);padding:8px;position:fixed;top:90px;right:8px;overflow:auto}#shore h2{margin:0 0 4px;font-size:16px}#shore ul{margin:6px 0 0;padding-left:16px}#shore button,.minigame button{font:inherit;margin:2px 2px 2px 0;padding:4px 8px}#shore input{width:4em;font:inherit}#shore select{font:inherit;max-width:100%}#shore .shore-art{object-fit:cover;width:100%;max-height:140px;image-rendering:pixelated;margin-bottom:6px;display:block}#shore .badge{background:var(--red);color:var(--navy);border-radius:4px;padding:1px 6px;font-size:11px}#shore .threat{border:1px solid var(--red);color:var(--red);margin:6px 0;padding:4px}.minigame{z-index:10;box-sizing:border-box;color:var(--cream);font:14px/1.4 var(--font);background:#0b1a2af5;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:16px;display:flex;position:fixed;inset:0}.minigame h2{margin:0}.mg-bar{border:2px solid var(--cream);width:min(420px,90vw);height:28px;margin-bottom:8px;position:relative}.mg-bar i{background:var(--green);position:absolute;top:0;bottom:0}.mg-bar b{background:var(--gold);width:4px;margin-left:-2px;position:absolute;top:-4px;bottom:-4px}.mg-grid{grid-template-columns:repeat(6,48px);gap:4px;display:grid}.mg-grid button{width:48px;height:48px;padding:0}.mg-cipher{letter-spacing:4px;font-size:28px}.minigame input{font:inherit;text-transform:uppercase}#guild-btn{top:calc(12px + 13px * 1.4 + 4px + 4px * var(--ui-scale));font:13px var(--font);padding:2px 6px;position:fixed;right:120px}#guild h2,#guild h3{margin:4px 0;font-size:14px}#guild td,#guild th{text-align:left;padding:2px 6px}#guild ul{margin:4px 0;padding-left:16px}#guild button{font:inherit;margin:1px;padding:2px 6px}#guild input{width:8em;font:inherit}#guild input[type=number]{width:5em}#guild select{font:inherit;max-width:7em}#guild canvas{width:64px;height:40px;image-rendering:pixelated;vertical-align:middle}#guild .debt,#guild .threat-text{color:var(--red)}.nameplate{cursor:pointer;white-space:nowrap;color:var(--cream);font:12px var(--font);background:#0000008c;border-radius:3px;padding:0 4px;position:fixed;top:0;left:0;transform:translate(-50%,-100%)}#hint-btn{font:13px var(--font);padding:2px 6px;position:fixed;top:8px;right:8px}#hint{z-index:2;width:300px;max-width:calc(100vw - 16px);color:var(--cream);font:12px/1.35 var(--font);padding:6px 8px;position:fixed;top:40px;left:50%;transform:translate(-50%)}#hint .hint-head{align-items:center;gap:6px;display:flex}#hint .hint-head b{color:var(--gold);flex:1}#hint p{margin:6px 0}#hint button{font:12px var(--font);padding:1px 6px}@media (pointer:coarse){#hint{box-sizing:border-box;font-size:11px;line-height:1.25;transform:none}#hint .hint-head{flex-wrap:wrap;row-gap:2px}#hint .hint-head b{flex:1 0 100%;order:1}#hint .hint-acts{flex-wrap:wrap;gap:4px;display:flex}#hint p{margin:4px 0}#hint button{font-size:11px}}@media (pointer:coarse) and (orientation:portrait){#hint{width:calc(100vw - 142px);max-height:calc(100vh - 602px);top:352px;left:8px;overflow-y:auto}}@media (pointer:coarse) and (orientation:landscape){#hint{width:min(300px,100vw - 566px);max-height:210px;top:8px;left:268px;overflow-y:auto}}@media (pointer:fine) and (max-width:900px){#hint{width:min(300px,100vw - 300px);top:76px;left:292px;transform:none}}#mute-btn{font:13px var(--font);padding:2px 6px;position:fixed;top:8px;right:76px}#look-btn{top:calc(12px + 13px * 1.4 + 4px + 4px * var(--ui-scale));font:13px var(--font);padding:2px 6px;position:fixed;right:212px}#shipwright h2,#shipwright h3{margin:4px 0;font-size:14px}#shipwright h2 button{float:right}#shipwright ul{margin:4px 0;padding-left:16px}#shipwright button{font:inherit;margin:1px;padding:2px 6px}#shipwright input{width:12em;font:inherit}#shipwright select{font:inherit;max-width:9em}#shipwright .threat-text{color:var(--red)}.sw-grid{flex-wrap:wrap;gap:2px;display:flex}.sw-parts{flex-wrap:wrap;gap:2px 8px;display:flex}#shipwright .swatch{border:1px solid var(--navy);width:20px;height:20px;margin:0;padding:0}#shipwright .swatch[aria-pressed=true]{outline:2px solid var(--gold);outline-offset:1px}#shipwright .swatch.locked{opacity:.3}.portrait,#sw-portrait,#inspect canvas{image-rendering:pixelated;vertical-align:middle}#sw-portrait{width:64px;height:64px}#inspect{z-index:5;box-sizing:border-box;width:280px;max-width:calc(100vw - 32px);max-height:calc(100vh - 110px);color:var(--cream);font:13px/1.4 var(--font);padding:8px;position:fixed;top:90px;left:50%;overflow:auto;transform:translate(-50%)}#inspect h2{margin:0 0 4px;font-size:14px}#inspect h2 button{float:right;font:inherit;padding:0 6px}#inspect ul{margin:4px 0;padding-left:16px}#inspect .swatch{border:1px solid var(--cream);width:16px;height:16px;display:inline-block}#in-portrait{width:64px;height:64px}#in-flag{width:64px;height:40px}.portrait{width:32px;height:32px}#season-btn{font:13px var(--font);padding:2px 6px;position:fixed;top:8px;right:200px}#season h2,#season h3{margin:4px 0;font-size:14px}#season h2 button{float:right}#season ul,#season ol{margin:4px 0;padding-left:20px}#season p{margin:4px 0}#season button{font:inherit;margin:1px;padding:2px 6px}#chat{z-index:1;box-sizing:border-box;width:min(340px,100vw - 16px);color:var(--cream);font:13px/1.3 var(--font);position:fixed;bottom:100px;left:8px}#chat .log{overflow-wrap:anywhere;text-shadow:0 1px #000;max-height:110px;padding:4px 6px;overflow-y:auto}#chat .log:empty{display:none}#chat .sys{color:var(--gold);font-style:italic}#chat .ch-guild{color:var(--green)}#chat .ch-party{color:#ffd27e}#chat .ch-trade{color:#7ec8ff}#chat .ch-global{color:#f0b3ff}#chat .bar{gap:4px;margin-top:4px;display:flex}#chat .bar>*{font:inherit;min-width:0;padding:2px 4px}#chat input{flex:1}#chat .toggles{background:0 0;border:0;gap:2px;padding:0;display:flex}#chat .toggles button{font:inherit}#chat .toggles button.off{opacity:.4;text-decoration:line-through}#season .threat-text{color:var(--red)}.mg-lamps{gap:12px;display:flex}.mg-lamps .mg-lamp{border:3px solid var(--cream);opacity:.45;touch-action:manipulation;border-radius:50%;width:64px;height:64px;padding:0;font-size:18px}.mg-lamp.l0{background:#a8372c}.mg-lamp.l1{background:#3f7a3a}.mg-lamp.l2{background:#2f5d8f}.mg-lamp.l3{background:#b08a2e}.mg-lamps .mg-lamp.on{opacity:1;box-shadow:0 0 18px 6px var(--gold)}@media (pointer:coarse){#chat{bottom:148px}}@media (pointer:coarse) and (orientation:portrait){#chat{bottom:204px}}.frame,#hud,#debug,#port,#trade,#captain,#chart,#guild,#shipwright,#season,#shore,#inspect,#tutorial,#hint,#party,#toasts div,#chat .log,#motd,#conn{border-style:solid;border-width:calc(2px * var(--ui-scale));border-image:var(--frame-panel) 2 fill / calc(2px * var(--ui-scale));image-rendering:pixelated;background:0 0;border-radius:0}button,.btn,select,input:not([type=range]){font:inherit;color:var(--cream);border-style:solid;border-width:calc(2px * var(--ui-scale));border-image:var(--frame-btn) 2 fill / calc(2px * var(--ui-scale));image-rendering:pixelated;background:0 0;border-radius:0}button:active,.btn:active,button.on,button[aria-pressed=true]{border-image-source:var(--frame-btn-down);color:var(--gold)}button:disabled{opacity:.4}option{background:var(--navy);color:var(--cream)}.ico{width:calc(8px * var(--ui-scale));height:calc(8px * var(--ui-scale));background:var(--ico) center / 100% 100% no-repeat;image-rendering:pixelated;vertical-align:middle;display:inline-block}.ico.off{opacity:.3}#conn:empty{display:none}
