@font-face{font-family:IM Fell English SC;font-style:normal;font-display:swap;font-weight:400;src:url(./im-fell-english-sc-latin-400-normal-CW_nhHm4.woff2)format("woff2"),url(./im-fell-english-sc-latin-400-normal-DPW2r_p4.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(./cormorant-garamond-cyrillic-ext-500-normal-Yta7XZ9C.woff2)format("woff2"),url(./cormorant-garamond-cyrillic-ext-500-normal-lsPpqi9g.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(./cormorant-garamond-cyrillic-500-normal-CyAY5ZLS.woff2)format("woff2"),url(./cormorant-garamond-cyrillic-500-normal-DkJXBcIH.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(./cormorant-garamond-vietnamese-500-normal-BZGLGj12.woff2)format("woff2"),url(./cormorant-garamond-vietnamese-500-normal-DqXqCC0q.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(./cormorant-garamond-latin-ext-500-normal-CH1kM7og.woff2)format("woff2"),url(./cormorant-garamond-latin-ext-500-normal-DYeaGGzO.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(./cormorant-garamond-latin-500-normal-BsRWmXhO.woff2)format("woff2"),url(./cormorant-garamond-latin-500-normal-zIXX3Q-H.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:500;src:url(./cormorant-garamond-cyrillic-ext-500-italic-ClXnudBg.woff2)format("woff2"),url(./cormorant-garamond-cyrillic-ext-500-italic-DakTmaFY.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:500;src:url(./cormorant-garamond-cyrillic-500-italic-DVnfXoMy.woff2)format("woff2"),url(./cormorant-garamond-cyrillic-500-italic-C9gO-8KC.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:500;src:url(./cormorant-garamond-vietnamese-500-italic-D3igDnAQ.woff2)format("woff2"),url(./cormorant-garamond-vietnamese-500-italic-C-296ow0.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:500;src:url(./cormorant-garamond-latin-ext-500-italic-CE7zdTnu.woff2)format("woff2"),url(./cormorant-garamond-latin-ext-500-italic-CalKM9tT.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:500;src:url(./cormorant-garamond-latin-500-italic-Y14P-dkT.woff2)format("woff2"),url(./cormorant-garamond-latin-500-italic-DhNIfkTX.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(./inter-cyrillic-ext-400-normal-BQZuk6qB.woff2)format("woff2"),url(./inter-cyrillic-ext-400-normal-DQukG94-.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(./inter-cyrillic-400-normal-obahsSVq.woff2)format("woff2"),url(./inter-cyrillic-400-normal-HOLc17fK.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(./inter-greek-ext-400-normal-DGGRlc-M.woff2)format("woff2"),url(./inter-greek-ext-400-normal-KugGGMne.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(./inter-greek-400-normal-B4URO6DV.woff2)format("woff2"),url(./inter-greek-400-normal-q2sYcFCs.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(./inter-vietnamese-400-normal-DMkecbls.woff2)format("woff2"),url(./inter-vietnamese-400-normal-Bbgyi5SW.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(./inter-latin-ext-400-normal-C1nco2VV.woff2)format("woff2"),url(./inter-latin-ext-400-normal-77YHD8bZ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(./inter-latin-400-normal-C38fXH4l.woff2)format("woff2"),url(./inter-latin-400-normal-CyCys3Eg.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(./inter-cyrillic-ext-600-normal-Dfes3d0z.woff2)format("woff2"),url(./inter-cyrillic-ext-600-normal-Bcila6Z-.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(./inter-cyrillic-600-normal-CWCymEST.woff2)format("woff2"),url(./inter-cyrillic-600-normal-4D_pXhcN.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(./inter-greek-ext-600-normal-DRtmH8MT.woff2)format("woff2"),url(./inter-greek-ext-600-normal-B8X0CLgF.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(./inter-greek-600-normal-plRanbMR.woff2)format("woff2"),url(./inter-greek-600-normal-BZpKdvQh.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(./inter-vietnamese-600-normal-Cc8MFFhd.woff2)format("woff2"),url(./inter-vietnamese-600-normal-BuLX-rYi.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(./inter-latin-ext-600-normal-D2bJ5OIk.woff2)format("woff2"),url(./inter-latin-ext-600-normal-CIVaiw4L.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(./inter-latin-600-normal-LgqL8muc.woff2)format("woff2"),url(./inter-latin-600-normal-CiBQ2DWP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink:#f3ead6;--ink-dim:#f3ead69e;--brass:#d6b062;--brass-dim:#d6b06273;--glass:#0911189e;--glass-edge:#d6b06247;--serif:"IM Fell English SC", "Cormorant Garamond", Georgia, serif;--body-serif:"Cormorant Garamond", Georgia, serif;--sans:Inter, system-ui, sans-serif}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);font-family:var(--sans);background:#0b1a24;margin:0;overflow:hidden}#app canvas{touch-action:none;display:block}#hud{pointer-events:none;-webkit-user-select:none;user-select:none;position:fixed;inset:0}.panel{background:linear-gradient(180deg, #0e1820b3, var(--glass));border:1px solid var(--glass-edge);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:10px;padding:12px 14px;box-shadow:0 10px 30px #00000059,inset 0 1px #ffffff0d}.label{font:600 10px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--brass);align-items:center;gap:8px;display:flex}.sub{font:400 11px/1.35 var(--sans);color:var(--ink-dim);margin-top:3px}.keys{font:600 9px/1 var(--sans);color:var(--ink-dim);border:1px solid var(--brass-dim);letter-spacing:.08em;border-radius:4px;padding:2px 5px}.divider{background:var(--glass-edge);height:1px;margin:10px 0}.nameplate{min-width:200px;position:absolute;top:16px;left:16px}.brand{font:400 13px/1 var(--serif);letter-spacing:.2em;color:var(--brass)}.ship-name{font:500 italic 30px/1.05 var(--body-serif);margin-top:6px}.ship-class{font:400 12px var(--sans);color:var(--ink-dim)}.log{font:400 11px var(--sans);color:var(--ink-dim);margin-top:6px}.log span{color:var(--ink);font-weight:600}.wind{width:240px;position:absolute;top:16px;right:16px}.wind-main{font:500 32px/1.1 var(--body-serif);font-feature-settings:"lnum";margin-top:4px}.wind-main small{font:400 13px var(--sans);color:var(--ink-dim);margin-left:3px}.pos{font:400 24px/1.1 var(--serif);margin-top:4px}.bottom{justify-content:space-between;align-items:flex-end;gap:16px;display:flex;position:absolute;bottom:16px;left:16px;right:16px}.sails{width:280px}.sail-level{font:400 22px/1.1 var(--serif);margin-top:6px}.pips{gap:5px;margin:6px 0 4px;display:flex}.pips i{background:#f3ead626;border-radius:2px;width:34px;height:4px}.pips i:first-child{display:none}.pips i.on{background:var(--brass)}.rig{width:250px;height:170px;display:block}.legend{font:400 10px var(--sans);color:var(--ink-dim);gap:12px;display:flex}.legend i{vertical-align:-1px;border-radius:2px;width:8px;height:8px;margin-right:5px;display:inline-block}.helm-cluster{align-items:flex-end;gap:14px;display:flex}.compass-wrap{flex-direction:column;align-items:center;width:232px;padding-top:30px;display:flex;position:relative}.compass{filter:drop-shadow(0 10px 24px #00000073);width:232px;height:232px}.readout{text-align:center;width:112px;margin-bottom:40px}.readout .big{font:500 44px/1 var(--body-serif);font-feature-settings:"lnum"}.readout .sub{height:28px;font:400 11px/14px var(--sans);margin-top:3px;overflow:hidden}.readout.speed .sub{font:600 10px/14px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#f0b545}.readout .unit{font:600 10px var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--brass);margin-top:2px}.rudder{text-align:center;width:220px;margin-top:2px}.rudder>.sub{white-space:nowrap;text-overflow:ellipsis;height:15px;margin:3px -70px 0;overflow:hidden}.rudder-track{border:1px solid var(--glass-edge);background:linear-gradient(90deg,#e2574c59,#f3ead61a 50%,#7fc28a59);border-radius:5px;height:10px;position:relative}.rudder-mark,.rudder-order{border-radius:2px;width:4px;height:16px;margin-left:-2px;transition:left 80ms linear;position:absolute;top:-4px}.rudder-mark{background:var(--ink);box-shadow:0 0 6px #0009}.rudder-order{border:1px dashed var(--brass);background:0 0;width:8px;height:20px;margin-left:-4px;top:-6px}.trim{width:260px}.trim-dial{width:230px;height:170px;margin:4px auto 0;display:block}.badge{font:600 9px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:#f0b545;background:#f0b54533;border-radius:10px;margin-left:auto;padding:3px 7px}.badge.on{color:#7fc28a;background:#7fc28a33}.eff{font:600 11px var(--sans);align-items:center;gap:8px;display:flex}.eff-bar{background:#f3ead61f;border-radius:3px;flex:1;height:6px;overflow:hidden}.eff-bar div{height:100%;transition:width .2s,background .3s}.toasts{flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;top:18px;left:50%;transform:translate(-50%)}.toast{font:500 italic 18px var(--body-serif);border:1px solid var(--glass-edge);background:#091118b8;border-radius:18px;padding:7px 16px;transition:opacity .6s,transform .6s;animation:.25s ease-out toast-in}.toast.warn{color:#f6d38d;border-color:#f0b54599}.toast.out{opacity:0;transform:translateY(-6px)}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}}.overlay{z-index:10;background:radial-gradient(#050c1259,#050c12c7);place-items:center;transition:opacity .5s;display:grid;position:fixed;inset:0}.overlay.hidden{opacity:0;pointer-events:none}.overlay.hidden *{pointer-events:none!important}.card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--glass-edge);background:linear-gradient(#101b24eb,#091016f0);border-radius:14px;width:min(620px,100vw - 32px);padding:34px 38px 30px;box-shadow:0 30px 80px #0009}.big-brand{letter-spacing:.08em;color:var(--ink);font-size:42px}.tagline{font:500 italic 18px var(--body-serif);color:var(--brass);margin:6px 0 16px}.controls{gap:8px;margin-bottom:24px;display:grid}.controls div{font:400 13px var(--sans);color:var(--ink-dim);align-items:center;gap:6px;display:flex}.controls span{margin-left:8px}kbd{font:600 11px var(--sans);color:var(--ink);text-align:center;border:1px solid var(--brass-dim);background:#d6b06214;border-radius:5px;min-width:24px;padding:4px 7px;box-shadow:0 2px #d6b06240}.start{pointer-events:auto;font:400 20px var(--serif);letter-spacing:.12em;color:#1a1209;cursor:pointer;background:linear-gradient(#e7c77e,#c79a45);border:0;border-radius:8px;padding:12px 30px;box-shadow:0 6px 20px #d6b0624d}.start:hover{filter:brightness(1.08)}@media (max-width:1100px){.sails,.trim{display:none}.bottom{justify-content:center}}.held{color:#7fc28a;font-weight:600}.baro .falling{color:#f0b545}.strain{margin-top:8px}.strain-label{font:600 10px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--brass)}.readout.warn .big{color:#f0b545}.readout.danger .big{color:#e2574c;animation:.8s ease-in-out infinite alternate pulse}@keyframes pulse{to{opacity:.55}}.debug{pointer-events:auto;z-index:5;width:250px;position:absolute;top:120px;left:16px}.debug.hidden{display:none}.debug-buttons{grid-template-columns:1fr 1fr;gap:6px;margin:10px 0 8px;display:grid}.debug-buttons button{font:600 11px var(--sans);color:var(--ink);border:1px solid var(--brass-dim);cursor:pointer;background:#d6b0621f;border-radius:6px;padding:7px 6px}.debug-buttons button:hover{background:#d6b06240}.debug-readout{color:var(--ink-dim);white-space:pre;margin:0;font:400 11px/1.45 ui-monospace,Menlo,Consolas,monospace}.overlay.wreck{background:radial-gradient(#0a101473,#05080cd9)}.wreck .big-brand{color:#e8d9b8}.admin-open{z-index:5;font:600 10px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--brass);background:var(--glass);border:1px solid var(--glass-edge);cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:6px;padding:6px 10px;position:fixed;top:110px;left:16px}.admin-open.hidden{display:none}.admin-open:hover{background:#d6b0622e}.debug{width:320px}.admin-rows{gap:6px;margin-top:10px;display:grid}.admin-row{font:400 11px var(--sans);grid-template-columns:44px 1fr 66px 48px;align-items:center;gap:6px;display:grid}.admin-label{color:var(--brass);font-weight:600}.admin-value{color:var(--ink);text-align:right;font-variant-numeric:tabular-nums}.admin-auto{color:var(--ink-dim);cursor:pointer;align-items:center;gap:3px;display:flex}.admin-row input[type=range]{accent-color:#d6b062;width:100%}.debug-buttons{grid-template-columns:1fr 1fr 1fr}.admin-teleport{font:400 11px var(--sans);grid-template-columns:1fr auto;gap:6px;margin-top:8px;display:grid}.admin-teleport select{min-width:0;font:400 11px var(--sans);color:var(--ink);border:1px solid var(--brass-dim);background:#0a1018d9;border-radius:6px;padding:5px}.admin-teleport button{font:600 11px var(--sans);color:var(--ink);border:1px solid var(--brass-dim);cursor:pointer;background:#d6b0621f;border-radius:6px;padding:5px 10px}.admin-teleport button:hover{background:#d6b06240}.admin-teleport label{grid-column:1/-1}.admin-captains{grid-template-columns:1fr auto auto auto}.admin-captains.hidden{display:none}.admin-captains input{min-width:0;font:400 11px var(--sans);color:var(--ink);border:1px solid var(--brass-dim);background:#0a1018d9;border-radius:6px;padding:5px}.admin-server{border-top:1px solid var(--brass-dim);font:400 11px var(--sans);color:var(--ink-dim);gap:5px;margin-top:10px;padding-top:8px;display:grid}.admin-server.hidden{display:none}.admin-server label:not(.admin-auto){grid-template-columns:1fr 90px;align-items:center;gap:6px;display:grid}.admin-server input[type=number]{font:400 11px var(--sans);color:var(--ink);border:1px solid var(--brass-dim);background:#0a1018d9;border-radius:6px;padding:4px}.admin-server button{font:600 11px var(--sans);color:var(--ink);border:1px solid var(--brass-dim);cursor:pointer;background:#d6b0621f;border-radius:6px;padding:6px}.status{gap:6px;margin-bottom:6px;display:flex}.compass-wrap>.status{white-space:nowrap;gap:6px;margin:0;display:flex;position:absolute;top:0;left:50%;transform:translate(-50%)}.chip{font:600 10px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;text-shadow:0 1px 2px #000000b3;border:1px solid var(--glass-edge);color:var(--ink);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#060c12db;border-radius:12px;align-items:center;gap:5px;padding:4px 9px 4px 5px;transition:color .3s,background .3s,border-color .3s;display:flex}.chip svg{flex:none;width:16px;height:16px}.chip.off{color:var(--ink-dim)}.chip.on{color:#7fc28a;background:linear-gradient(#7fc28a29,#7fc28a29),#060c12db;border-color:#7fc28a73}.chip.warn{color:#f0b545;background:linear-gradient(#f0b54529,#f0b54529),#060c12db;border-color:#f0b54580}.chip.alert{color:#e2574c;background:linear-gradient(#e2574c29,#e2574c29),#060c12db;border-color:#e2574c99}.chip.lee{display:none}.chip.lee.show{display:flex}.chip.busy svg{animation:.7s ease-in-out infinite alternate pulse}.pips i.ordered{box-shadow:inset 0 0 0 1px var(--brass-dim);background:0 0}.compass.pickable{pointer-events:auto;cursor:crosshair}.perf-meter{z-index:20;pointer-events:none;color:#e8e2d0;white-space:pre;text-align:center;background:#0a0e12b8;border-radius:6px;padding:5px 10px;font:400 11px/1.45 ui-monospace,Menlo,Consolas,monospace;position:fixed;bottom:8px;left:50%;transform:translate(-50%)}.perf-meter.hidden{display:none}.overlay.loading{z-index:30;background:radial-gradient(#08121aeb,#04090dfc);transition:opacity .8s}.loading .card{text-align:center}.loading-bar{background:#d6b06226;border-radius:3px;height:6px;margin:18px 0 12px;overflow:hidden}.loading-bar div{background:var(--brass);width:0;height:100%;transition:width .25s}.loading-stage{font:500 italic 16px var(--body-serif);color:var(--ink-dim);min-height:1.4em}.card.help-card{pointer-events:auto;width:min(1080px,100vw - 32px);max-height:calc(100vh - 32px);padding:28px 32px 24px;overflow-y:auto}.help-intro p{margin-bottom:14px;font-size:17px}#help.seen .help-intro{display:none}.help-head{border-bottom:1px solid var(--glass-edge);align-items:baseline;gap:14px;margin:4px 0 14px;padding-bottom:10px;display:flex}.help-head .brand{letter-spacing:.1em;color:var(--ink);font-size:20px}.help-head .sub{margin:0}.keygrid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px 28px;margin-bottom:20px;display:grid}.keygroup .label{margin-bottom:8px}.keyrow{font:400 12.5px/1.35 var(--sans);color:var(--ink-dim);grid-template-columns:104px 1fr;align-items:center;gap:8px;padding:3px 0;display:grid}.keyrow .ks{flex-wrap:wrap;gap:4px;display:flex}.keyrow kbd{min-width:22px;padding:3px 6px}.help-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.help-foot .sub{margin:0;font-size:12px}.help-foot kbd{padding:2px 5px}#help.seen .start{padding:9px 22px;font-size:16px}.captain-bar{z-index:21;pointer-events:auto;grid-template-columns:repeat(5,34px);gap:4px;display:none;position:fixed;top:16px;right:262px}body.aboard .captain-bar{display:grid}body.aiming .captain-bar{opacity:.25;pointer-events:none}.captain-bar button{width:34px;height:34px;color:var(--brass);cursor:pointer;border:1px solid var(--glass-edge);background:#091118b8;border-radius:7px;place-items:center;padding:0;transition:background .15s,border-color .15s,color .15s;display:grid;position:relative}.captain-bar button:hover{border-color:var(--brass-dim);color:var(--ink);background:#d6b06229}.captain-bar button.on{color:#1a1209;background:linear-gradient(#e7c77e,#c79a45);border-color:#0000}.captain-bar .k{min-width:0;font:700 8px/1 var(--sans);box-shadow:none;pointer-events:none;padding:1px 3px;position:absolute;bottom:-4px;right:-3px}.captain-bar button.on .k{color:#1a1209;background:#f3e3b8;border-color:#1a120966}.captain-bar .tip{white-space:nowrap;border:1px solid var(--brass-dim);pointer-events:none;background:#091118f0;border-radius:6px;align-items:center;gap:7px;padding:5px 8px;display:none;position:absolute;top:calc(100% + 8px);right:50%;transform:translate(50%);box-shadow:0 6px 16px #0006}.captain-bar .tip b{font:600 10px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}.captain-bar .tip kbd{box-shadow:none;padding:2px 4px;font-size:10px}.captain-bar button:hover .tip,.captain-bar button:focus-visible .tip{display:flex}.captain-bar button:hover,.captain-bar button:focus-visible{z-index:2}.captain-bar .tip{z-index:3}.captain-bar .gap{display:none}.tip-card{z-index:22;pointer-events:auto;border:1px solid var(--brass-dim);background:linear-gradient(#16222cf0,#0c141cf0);border-radius:10px;width:340px;padding:12px 14px;animation:.3s ease-out toast-in;position:fixed;top:490px;right:16px;box-shadow:0 12px 30px #00000073}.tip-card.hidden{display:none}.tip-card h3{font:400 19px/1.1 var(--serif);letter-spacing:.04em;color:var(--ink);margin:6px 0 4px}.tip-card p{font:400 12.5px/1.45 var(--sans);color:var(--ink-dim);margin:0 0 10px}.tip-card kbd{box-shadow:none;padding:1px 5px;font-size:10px}.tip-acts{gap:6px;display:flex}@media (max-height:820px){.tip-card{top:auto;bottom:16px;right:50%;transform:translate(50%)}}#hud,.captain-bar,.tip-card,.ledger-wrap>.panel,.overlay>.card{zoom:var(--ui-scale,1)}body.cb-zones .zone.safe{color:#a9dcf5;background:#56b4e92e;border-color:#56b4e980}body.cb-zones .zone.contested{color:#f5c56b;background:#e69f002e;border-color:#e69f0080}body.cb-zones .zone.open{color:#e9b8d6;background:#cc79a733;border-color:#cc79a78c}.glossary{z-index:25}.glossary .card{pointer-events:auto;flex-direction:column;width:min(760px,100vw - 32px);height:min(760px,100vh - 40px);padding:26px 30px 20px;display:flex}.gl-search{font:500 18px var(--body-serif);color:var(--ink);border:1px solid var(--brass-dim);background:#050c1273;border-radius:6px;outline:none;padding:9px 12px}.gl-search:focus{border-color:var(--brass)}.gl-search::placeholder{color:var(--ink-dim);font-style:italic}.gl-tabs{flex-wrap:wrap;gap:6px;margin:12px 0 6px;display:flex}.gl-tabs.dim{opacity:.45}.gl-tabs button{font:600 11px var(--sans);letter-spacing:.04em;color:var(--ink);border:1px solid var(--brass-dim);cursor:pointer;background:#d6b06214;border-radius:6px;padding:6px 10px}.gl-tabs button:hover{background:#d6b0622e}.gl-tabs button.on{color:#1a1209;background:linear-gradient(#e7c77e,#c79a45);border-color:#0000}.gl-list{flex:1;margin-top:6px;padding-right:8px;overflow-y:auto}.gl-list .label{margin:16px 0 6px}.gl-list dl{grid-template-columns:minmax(150px,34%) 1fr;column-gap:18px;margin:0;display:grid}.gl-list dt{font:600 italic 17px/1.35 var(--body-serif);color:var(--brass);border-top:1px solid #d6b06224;padding:7px 0}.gl-list dd{font:500 16px/1.4 var(--body-serif);color:var(--ink);border-top:1px solid #d6b06224;margin:0;padding:7px 0}@media (max-width:640px){.gl-list dl{grid-template-columns:1fr}.gl-list dd{border-top:0;padding-top:0}}.settings-head .gl-open,.help-foot .gl-open{font:600 12px var(--sans);color:var(--ink);border:1px solid var(--brass-dim);cursor:pointer;background:#d6b06214;border-radius:6px;margin:0 auto 0 18px;padding:7px 12px}.settings-head .gl-open:hover,.help-foot .gl-open:hover{background:#d6b0622e}.help-foot .gl-open{margin:0 0 0 auto}#combat-hud{pointer-events:none;-webkit-user-select:none;user-select:none;position:fixed;inset:0}body.aiming #hud .bottom,body.aiming #hud .nameplate,body.aiming .panel.orders,body.aiming .banner,body.aiming .waypoint,body.aiming .panel.prompt{opacity:0;transition:opacity .3s}#hud .bottom,#hud .nameplate{transition:opacity .3s}.guns{width:240px;position:absolute;top:236px;right:16px}.shot-pick{gap:5px;margin:9px 0 4px;display:flex}.shot-pick div{text-align:center;border:1px solid var(--glass-edge);font:600 10px/1.1 var(--sans);color:var(--ink-dim);letter-spacing:.04em;border-radius:6px;flex:1;padding:5px 2px 4px}.shot-pick div b{font:600 9px var(--sans);color:var(--brass-dim);margin-bottom:2px;display:block}.shot-pick div.on{border-color:var(--brass);color:var(--ink);background:#d6b06224}.shot-pick div.on b{color:var(--brass)}.battery{align-items:center;gap:8px;margin-top:8px;display:flex}.battery .side{width:62px;font:500 italic 15px var(--body-serif);color:var(--ink)}.battery .side small{font:400 10px var(--sans);color:var(--ink-dim);font-style:normal;display:block}.gunrow{flex-wrap:wrap;flex:1;gap:4px;min-width:0;display:flex}.gun{background:conic-gradient(var(--brass) calc(var(--p) * 1turn), #f3ead61a 0);border-radius:50%;width:14px;height:14px;position:relative}.gun:after{content:"";background:#0e1820;border-radius:50%;position:absolute;inset:3px}.gun.loaded{background:var(--brass);box-shadow:0 0 6px #d6b06280}.gun.loaded:after{background:#1a1209;inset:4px}.gun.loaded.chain:after{border-radius:2px}.gun.loaded.grape:after{inset:5px;box-shadow:-2px -2px 0 -1px #1a1209,2px 2px 0 -1px #1a1209}.gun.dismounted{background:#e2574c40}.gun.dismounted:after{content:"×";color:#e2574c;font:700 12px/14px var(--sans);text-align:center;background:0 0;inset:0}.gun.firing{background:#fff1c9;box-shadow:0 0 12px #ffc861}.lay{font:400 11px/1.4 var(--sans);color:var(--ink-dim);margin-top:9px}.lay b{color:var(--ink);font-weight:600}.drill{font:400 11px/1.4 var(--sans);color:var(--ink-dim);white-space:nowrap;align-items:center;gap:6px;margin-top:6px;display:flex}.drill b{color:var(--ink);font-weight:600}.drill .bar{background:#f3ead61f;border-radius:2px;flex:1;height:4px;overflow:hidden}.drill .bar i{background:var(--brass);height:100%;display:block}.dc{pointer-events:auto;width:236px;position:absolute;top:130px;left:16px}.hold{margin-top:8px}.dc-toggle{cursor:pointer}.dc-toggle .keys{margin-left:auto}.dc.compact .more{display:none}.hold-bar{border:1px solid var(--glass-edge);background:#f3ead614;border-radius:3px;height:12px;position:relative;overflow:hidden}.hold-bar .water{background:linear-gradient(90deg,#2d6b8a,#3f8db3);transition:width .4s,background .4s;position:absolute;top:0;bottom:0;left:0}.hold-bar .water.danger{background:linear-gradient(90deg,#8a3a2d,#c4573f)}.hold-bar .mark{background:#e2574c;width:2px;position:absolute;top:-1px;bottom:-1px;right:0}.dc .row{font:400 11px/1.5 var(--sans);color:var(--ink-dim);justify-content:space-between;display:flex}.dc .row b{color:var(--ink);font-weight:600}.dc .row .up{color:#f0b545}.dc .row .bad{color:#e2574c}.dc .row .good{color:#7fc28a}.stations{gap:5px;margin-top:6px;display:grid}.station{font:400 11px var(--sans);color:var(--ink-dim);grid-template-columns:74px 22px 1fr 22px 28px;align-items:center;gap:5px;display:grid}.station .bar{background:#f3ead61a;border-radius:3px;height:5px;overflow:hidden}.station .bar div{background:var(--brass);height:100%;transition:width .25s}.station b{color:var(--ink);text-align:right;font-weight:600}.station button{border:1px solid var(--brass-dim);width:22px;height:18px;color:var(--ink);font:600 12px/1 var(--sans);cursor:pointer;background:#d6b06214;border-radius:4px;padding:0}.station button:hover{background:#d6b06240}.station.rest button{visibility:hidden}.presets{gap:4px;margin-top:8px;display:flex}.presets button{border:1px solid var(--brass-dim);color:var(--ink-dim);font:600 10px/1 var(--sans);letter-spacing:.04em;cursor:pointer;white-space:nowrap;background:#d6b06214;border-radius:5px;flex:1;padding:5px 2px}.presets button[data-p=balance]{color:#1a1209;background:linear-gradient(#e7c77e,#c79a45);border-color:#0000}.presets button:hover{color:var(--ink);border-color:var(--brass)}.rigging{font:400 11px var(--sans);color:var(--ink-dim);gap:10px;margin-top:4px;display:flex}.rigging b{color:var(--ink);font-weight:600}.sight{opacity:0;transition:opacity .25s;position:absolute;inset:0}body.aiming .sight{opacity:1}.sight .vignette{background:radial-gradient(#0000 55%,#04090d8c 100%);position:absolute;inset:0}.sight .glass{opacity:0;background:radial-gradient(circle,#0000 0 calc(min(42vw,42vh)),#030609f7 calc(min(42vw,42vh) + 3px));transition:opacity .3s;position:absolute;inset:0}.sight.spyglass .glass{opacity:1}.reticle{width:200px;height:200px;margin:-100px 0 0 -100px;position:absolute;top:50%;left:50%}.sight .reticle{overflow:visible}.sight .outline{stroke:#080c10cc;stroke-width:3.6px;fill:none;stroke-linecap:round}.sight .core{stroke:#fff4d6;stroke-width:1.4px;fill:none;stroke-linecap:round}.sight .reticle circle.core{fill:#fff4d6}.sight .aim{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.sight .aim polyline.core{stroke:#ffd36b;stroke-width:2px;stroke-dasharray:9 6}.sight .aim polyline.outline{stroke-width:5px}.sight .aim circle.core,.sight .aim path.core{stroke:#ffd36b;stroke-width:2.2px}.sight .aim circle.outline,.sight .aim path.outline{stroke-width:5.5px}.sight .aim polyline.band.core{stroke:#7dff8a;stroke-width:3px;stroke-dasharray:none}.sight .aim polyline.band.outline{stroke-width:6.5px;stroke:#041e0ab3}.sight.raised .reticle,.sight.raised .vignette{display:none}.sight .aim .tag{font:600 13px var(--sans);fill:#fff4d6;text-anchor:middle;paint-order:stroke;stroke:#080c10d9;stroke-width:4px;letter-spacing:.04em}.sight-title{text-align:center;position:absolute;top:70px;left:50%;transform:translate(-50%)}.sight-title .t{font:400 26px var(--serif);letter-spacing:.12em;color:var(--ink);text-shadow:0 2px 10px #0009}.sight-title .s{font:500 italic 16px var(--body-serif);color:var(--brass)}.sight-info{align-items:flex-end;gap:26px;display:flex;position:absolute;bottom:34px;left:50%;transform:translate(-50%)}.sight-info .cell{text-align:center}.sight-info .v{font:500 30px/1 var(--body-serif);font-feature-settings:"lnum";color:var(--ink);text-shadow:0 2px 8px #0009}.sight-info .v small{font:400 12px var(--sans);color:var(--ink-dim);margin-left:3px}.sight-info .k{font:600 9px var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--brass);margin-top:4px}.sight-keys{font:400 11px var(--sans);color:var(--ink-dim);white-space:nowrap;position:absolute;bottom:10px;left:50%;transform:translate(-50%)}.sight-keys kbd{min-width:0;padding:2px 5px;font-size:10px}.ship-labels{pointer-events:none;position:absolute;inset:0}.ship-label{transform:translate(-50%, -100%) scale(var(--s,1));transform-origin:50% 100%;text-align:center;white-space:nowrap;pointer-events:none;border:1px solid var(--glass-edge);background:#0911189e;border-radius:8px;padding:3px 9px 4px;transition:opacity .3s;position:absolute}.ship-label .n{font:500 italic 15px var(--body-serif);color:var(--ink);text-shadow:0 1px 6px #000c}.ship-label .d{font:600 10px var(--sans);letter-spacing:.1em;color:var(--brass);text-shadow:0 1px 6px #000c}.ship-label.hostile .n{color:#f2b0a6}.ship-label.unknown .n{color:var(--ink-dim);letter-spacing:.04em;font-style:normal}.ship-label.party .n{color:#a9d8ff}.ship-label.away{filter:grayscale(.7);opacity:.75}.ship-label:after{content:"";left:calc(50% - var(--dx,0px));width:1px;height:calc(18px + var(--lift,0px));background:linear-gradient(var(--brass), transparent);position:absolute;top:100%}#founder .card{text-align:center}#founder h2{font:400 34px var(--serif);letter-spacing:.08em;color:var(--ink);margin:0 0 8px}.gunrow.many{gap:3px}.gunrow.many .gun{width:10px;height:10px}.gunrow.many .gun:after{inset:2px}.gunrow.crowded{gap:2px}.gunrow.crowded .gun{width:8px;height:8px}.gunrow.crowded .gun.loaded:after{inset:2px}.fight-card{z-index:22;pointer-events:auto;zoom:var(--ui-scale,1);width:min(460px,100vw - 32px);animation:.3s ease-out toast-in;position:fixed;top:112px;left:50%;transform:translate(-50%)}.fight-card.hidden{display:none}.fight-card h3{font:400 24px/1.1 var(--serif);letter-spacing:.05em;color:var(--ink);margin:6px 0 10px}.fc-row{font:400 12px/1.4 var(--sans);color:var(--ink);border-top:1px solid #d6b0621f;grid-template-columns:96px 1fr;gap:10px;padding:4px 0;display:grid}.fc-row>span:first-child{color:var(--brass);letter-spacing:.12em;text-transform:uppercase;padding-top:2px;font-size:10px;font-weight:600}.fc-row i{font:500 italic 14px var(--body-serif)}.fc-row .hint{color:var(--ink-dim)}.fc-row .pos{color:#7fc28a;font:600 12px/1.4 var(--sans);letter-spacing:0;text-transform:none}.fc-row .neg{color:#f2a493}.fc-acts{justify-content:flex-end;margin-top:10px;display:flex}.settings{z-index:22}.settings .card{pointer-events:auto;width:min(820px,100vw - 32px);max-height:calc(100vh - 40px);padding:26px 30px;overflow-y:auto}.settings-head{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.settings-head .brand{font:400 30px/1 var(--serif);letter-spacing:.08em;color:var(--ink)}.settings-close{font:600 14px var(--sans);color:var(--ink-dim);border:1px solid var(--brass-dim);cursor:pointer;background:0 0;border-radius:6px;width:30px;height:30px}.settings-close:hover{color:var(--ink);background:#d6b0621f}.settings-cols{grid-template-columns:1fr 1fr;gap:32px;display:grid}@media (max-width:720px){.settings-cols{grid-template-columns:1fr}}.settings section>.label{margin-bottom:12px}.settings .gfx-label{margin-top:22px}.settings .sub{margin-top:8px}.vol{font:400 13px var(--sans);color:var(--ink);cursor:pointer;grid-template-columns:92px 1fr 30px;align-items:center;gap:10px;margin-bottom:12px;display:grid}.vol-val{font:600 12px var(--sans);color:var(--ink-dim);text-align:right;font-variant-numeric:tabular-nums}.settings.muted .vol{opacity:.45}.vol input{appearance:none;cursor:pointer;background:linear-gradient(90deg, var(--brass) var(--fill,50%), #d6b06226 var(--fill,50%));border-radius:3px;width:100%;height:6px;margin:0}.vol input::-webkit-slider-thumb{-webkit-appearance:none;background:#e7c77e;border:2px solid #1a1209;border-radius:50%;width:16px;height:16px;box-shadow:0 1px 4px #00000080}.vol input::-moz-range-thumb{background:#e7c77e;border:2px solid #1a1209;border-radius:50%;width:14px;height:14px}.vol input:focus-visible{outline:1px solid var(--brass);outline-offset:4px}.settings .opt{font:600 12px var(--sans);color:var(--ink);border:1px solid var(--brass-dim);cursor:pointer;background:#d6b06214;border-radius:6px;padding:8px 12px}.settings .opt:hover{background:#d6b0622e}.settings .opt.on{color:#1a1209;background:linear-gradient(#e7c77e,#c79a45);border-color:#0000}.settings .mute{width:100%;margin-top:4px}.settings.muted .mute{color:#f2a493;border-color:#f2a49380}.seg{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.keylist{gap:6px;display:grid}.keylist div{font:400 12.5px var(--sans);color:var(--ink-dim);grid-template-columns:96px 1fr;align-items:center;gap:8px;display:grid}.keylist .ks{gap:4px;display:flex}.keylist kbd{min-width:22px;margin:0;padding:3px 6px}.keylist{max-height:420px;padding-right:6px;overflow-y:auto}.keylist div.kg{font:600 10px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--brass);margin:10px 0 2px;display:block}.keylist div.kg:first-child{margin-top:0}.keylist div{grid-template-columns:112px 1fr}.seg.two{grid-template-columns:1fr 1fr}.seg.labels-seg{grid-template-columns:repeat(3,1fr)}.seg.four{grid-template-columns:repeat(4,1fr)}.settings .vol+.seg{margin-top:4px}.keylist.rebind div{grid-template-columns:74px 1fr}.settings .keycap{min-width:64px;font:600 11px var(--sans);letter-spacing:.06em;padding:4px 6px}.settings .keycap.listening{color:#1a1209;background:linear-gradient(#e7c77e,#c79a45);animation:.7s ease-in-out infinite alternate pulse}.settings .reset-keys{width:100%;margin-top:10px}.settings .opt:disabled{opacity:.45;cursor:default;background:#d6b0620a}.seg.day-seg.hidden{display:none}.chat{z-index:7;pointer-events:none;flex-direction:column;gap:6px;width:min(420px,100vw - 32px);display:flex;position:fixed;bottom:16px;left:16px}.chat.hidden{display:none}.chat-lines{scrollbar-width:thin;border-radius:8px;flex-direction:column;gap:2px;padding:6px 10px;display:flex;overflow-y:auto}.chat.live .chat-lines{border:1px solid var(--glass-edge);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:auto;background:#0911189e}.chat.live .chat-lines:empty:before{content:"No one has spoken yet. Enter to say something.";font:italic 500 14px var(--body-serif);color:var(--ink-dim)}.chat .ln{font:500 15.5px/1.3 var(--body-serif);color:#f3ead6;text-shadow:0 1px 2px #000000e6,0 0 6px #0009;overflow-wrap:anywhere;transition:opacity 1.2s}.chat:not(.live) .ln{box-sizing:border-box;border:1px solid var(--glass-edge);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#091118b8;border-radius:6px;align-self:flex-start;max-width:100%;padding:3px 9px}.chat:not(.live) .chat-lines{gap:3px;padding:6px 0}.chat .ln.gone{opacity:0}.chat .ln .ch{font:600 10.5px var(--sans);letter-spacing:.08em;text-transform:uppercase;opacity:.85}.chat .ln b{font-weight:700}.chat .ln.hail .ch,.chat-chip[data-ch=hail]{color:#efe6d2}.chat .ln.party,.chat .ln.party .ch,.chat-chip[data-ch=party]{color:#9cc2ff}.chat .ln.faction,.chat .ln.faction .ch,.chat-chip[data-ch=faction]{color:#a8e0b0}.chat .ln.world .ch,.chat-chip[data-ch=world]{color:#f0c987}.chat .ln.system{color:#f7b9a5;font-style:italic}.chat-form{pointer-events:auto;gap:6px;display:flex}.chat-form.hidden{display:none}.chat-chip{min-width:64px;font:600 10px var(--sans);letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--glass-edge);cursor:pointer;background:#091118cc;border-radius:6px;flex:none;padding:0 8px}.chat-form input{min-width:0;font:500 15px var(--body-serif);color:var(--ink);border:1px solid var(--brass-dim);background:#091118d9;border-radius:6px;outline:none;flex:1;padding:6px 9px}.chat-form input:focus{border-color:var(--brass)}.questlog-wrap{--parch:#e8d6ae;--parch-ink:#3a2612;--parch-dim:#3a2612a8;--parch-red:#7e1f14;--parch-rule:#5a371459}.qlog{zoom:var(--ui-scale,1);width:min(1040px,94vw);height:min(680px,100vh - 130px);color:var(--parch-ink);background-color:var(--parch);clip-path:polygon(.6% 1.2%,9% .3%,21% 1%,33% .2%,46% .9%,58% .1%,71% .8%,84% .2%,99.3% 1%,99.8% 14%,99.2% 29%,99.9% 45%,99.3% 61%,99.8% 77%,99.1% 98.9%,87% 99.6%,74% 99%,61% 99.8%,48% 99.1%,35% 99.7%,22% 99%,10% 99.8%,.4% 99%,.1% 84%,.8% 68%,.2% 52%,.9% 37%,.1% 21%);font:400 17px/1.45 var(--body-serif);background-image:linear-gradient(90deg,#0000 calc(41% - 18px),#5f3c1438 41%,#0000 calc(41% + 18px)),radial-gradient(circle at 18% 78%,#965f2329,#0000 14%),radial-gradient(circle at 84% 22%,#965f231f,#0000 11%),radial-gradient(at 62% 88%,#784b191f,#0000 22%),radial-gradient(at 50% 45%,#fff6dc99,#0000 62%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.35 0 0 0 0 0.22 0 0 0 0 0.08 0 0 0 0.22 0'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)'/%3E%3C/svg%3E");grid-template-columns:minmax(250px,.82fr) 1.18fr;display:grid;position:relative;box-shadow:inset 0 0 70px #6e41148c,inset 0 0 14px #502d0a80,0 22px 60px #0009}.qlog .page{flex-direction:column;min-height:0;padding:34px 34px 24px;display:flex}.qlog .page.left{padding-right:26px}.qlog .page.right{scrollbar-width:thin;scrollbar-color:#5a371466 transparent;padding-left:40px;padding-right:44px;position:relative;overflow-y:auto}.qlog .smallcaps{font:400 13px/1 var(--serif);letter-spacing:.16em;text-transform:uppercase;color:var(--parch-red);opacity:.85}.qlog h1{font:400 40px/1 var(--serif);letter-spacing:.03em;color:var(--parch-ink);margin:4px 0 0}.qlog h2{font:400 32px/1.08 var(--serif);color:var(--parch-ink);margin:6px 64px 0 0}.qlog h3{font:400 17px/1 var(--serif);letter-spacing:.12em;text-transform:uppercase;color:var(--parch-red);align-items:center;gap:10px;margin:20px 0 8px;display:flex}.qlog h3:after{content:"";background:linear-gradient(90deg, var(--parch-rule), transparent);flex:1;height:1px}.qlog .rule{background:linear-gradient(var(--parch-rule), var(--parch-rule)) 0 2px / 100% 1px no-repeat, linear-gradient(var(--parch-rule), var(--parch-rule)) 0 6px / 100% 1px no-repeat;height:9px;margin:10px 0 12px}.qlog .giver{font:italic 500 16px/1.3 var(--body-serif);color:var(--parch-dim);margin-top:4px}.qlog .giver:before{content:"— "}.qlog .story{margin-top:14px}.qlog .story p{margin:0 0 10px}.qlog .story p:first-child:first-letter{float:left;font:400 52px/.82 var(--serif);color:var(--parch-red);margin:5px 7px 0 0}.qlog .reward{font-weight:600}.qlog .coin:before{width:10px;height:10px}.qlog kbd{color:var(--parch-ink);background:#5a371414;border-color:#5a371473;padding:1px 5px;font-size:11px;box-shadow:0 1px #5a371459}.qlog .empty{color:var(--parch-dim);font-style:italic}.qlog button{font:inherit;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0}.qlist{scrollbar-width:thin;scrollbar-color:#5a371466 transparent;flex:1;min-height:0;margin-right:-8px;padding-right:8px;overflow-y:auto}.qgroup{margin-bottom:10px}.qg-head{letter-spacing:.08em;align-items:center;gap:8px;width:100%;padding:4px 0;display:flex;font:400 16px/1.1 var(--serif)!important;color:var(--parch-red)!important;border-bottom:1px solid var(--parch-rule)!important}.qg-head .arrow{width:12px;font-size:12px}.qg-head .n{font:600 12px var(--sans);color:var(--parch-dim);letter-spacing:0;margin-left:auto}.qitem{border-radius:3px;align-items:baseline;gap:9px;width:100%;padding:6px 8px 6px 4px;display:flex;font-size:17px!important;line-height:1.2!important}.qitem:hover{background:#784b191a!important}.qitem.on{box-shadow:inset 3px 0 0 var(--parch-red);background:linear-gradient(90deg,#7e1f1429,#7e1f140a)!important}.qitem .qt{flex:1}.qitem .prog{font:600 12px var(--sans);color:var(--parch-dim)}.qitem.done{color:var(--parch-dim)!important}.qitem .pin{border:1px solid #5a371480;border-radius:50%;flex:none;width:8px;height:8px;transform:translateY(-1px)}.qitem .pin.on{background:var(--parch-red);border-color:var(--parch-red)}.qitem .pin.tick{width:auto;height:auto;font:700 12px var(--sans);color:#4b6b2a;border:0;transform:none}.qfoot{border-top:1px solid var(--parch-rule);font:italic 400 14px var(--body-serif);color:var(--parch-dim);margin-top:10px;padding-top:8px}.qlog .objs{gap:6px;margin:0;padding:0;list-style:none;display:grid}.qlog .objs li{padding-left:28px;position:relative}.qlog .objs li:before{content:"";border:1.5px solid #5a37148c;border-radius:2px;width:13px;height:13px;position:absolute;top:4px;left:3px}.qlog .objs li.next{font-weight:600}.qlog .objs li.next:before{border-color:var(--parch-red)}.qlog .objs li.done{color:var(--parch-dim);-webkit-text-decoration:line-through #7e1f1480;text-decoration:line-through #7e1f1480}.qlog .objs li.done:after{content:"✓";font:700 20px/1 var(--body-serif);color:var(--parch-red);position:absolute;top:-4px;left:4px}.qacts{border-top:1px solid var(--parch-rule);flex-wrap:wrap;align-items:center;gap:10px 14px;margin-top:22px;padding-top:14px;display:flex}.qbtn{letter-spacing:.08em;border-radius:3px;box-shadow:inset 0 1px #ffdcb440,0 1px 2px #3c190566;font:400 15px/1 var(--serif)!important;color:#f6ead0!important;background:linear-gradient(#8a2a1b,#6b1c11)!important;padding:7px 14px!important}.qbtn:hover{filter:brightness(1.12)}.qbtn.ghost{box-shadow:inset 0 0 0 1px #7e1f1473;color:var(--parch-red)!important;background:#7e1f140f!important}.qacts .where{font:italic 400 15px var(--body-serif);color:var(--parch-dim)}.qacts .track{font:400 15px var(--body-serif);color:var(--parch-dim);cursor:pointer;align-items:center;gap:6px;margin-left:auto;display:flex}.qacts .track input{accent-color:var(--parch-red);width:15px;height:15px}.qlog .seal{color:#3c0804bf;background:radial-gradient(circle at 36% 30%,#d4513f,#a1281b 45%,#6d140c 80%);border-radius:47% 53% 50% 48%/52% 46% 54% 48%;place-items:center;width:62px;height:62px;display:grid;position:absolute;top:34px;right:58px;transform:rotate(-8deg);box-shadow:0 2px 4px #3c140573,inset 0 -3px 6px #32050280,inset 0 2px 3px #ffaa9659,0 0 0 5px #8c23168c,0 0 0 7px #6e190f40}.qlog .seal svg{filter:drop-shadow(0 1px #ffa08c59)}.qlog .stamp{color:#4b6b2ad9;font:400 15px var(--serif);letter-spacing:.18em;text-transform:uppercase;border:2px solid #4b6b2ab3;margin-top:10px;padding:3px 12px;display:inline-block;transform:rotate(-3deg)}.qclose{z-index:2;position:absolute;top:20px;right:22px;font:600 15px var(--sans)!important;color:var(--parch-dim)!important}.qlog .page.right .seal+.smallcaps{margin-top:2px}.quest-tracker{padding:9px 12px 10px}.quest-tracker.hidden{display:none}.quest-tracker .label{justify-content:flex-start}.quest-tracker .label .keys{margin-left:2px}.quest-tracker .tq-fold{border:1px solid var(--brass-dim);width:20px;height:18px;color:var(--brass);font:600 13px/1 var(--sans);cursor:pointer;pointer-events:auto;background:0 0;border-radius:4px;margin-left:auto;padding:0}.quest-tracker .tq{margin-top:8px}.quest-tracker .tq+.tq{border-top:1px solid var(--glass-edge);padding-top:7px}.quest-tracker .tq-title{cursor:pointer;text-align:left;font:400 15px/1.15 var(--serif);color:var(--brass);background:0 0;border:0;padding:0;display:block}.quest-tracker .tq-title:hover{color:var(--ink)}.quest-tracker ul{font:400 11.5px/1.35 var(--sans);color:var(--ink-dim);gap:2px;margin:3px 0 0;padding:0;list-style:none;display:grid}.quest-tracker li{padding-left:13px;position:relative}.quest-tracker li:before{content:"–";color:var(--brass-dim);position:absolute;left:1px}.quest-tracker li.next{color:var(--ink)}.quest-tracker li.next:before{content:"•";color:var(--brass)}.quest-tracker li.done{opacity:.55;-webkit-text-decoration:line-through #d6b06280;text-decoration:line-through #d6b06280}.quest-tracker li.done:before{content:"✓";color:var(--brass);font-weight:700}.quest-tracker li b{color:var(--ink);white-space:nowrap;font-weight:600}.quest-tracker kbd{box-shadow:none;padding:0 4px;font-size:9.5px}body.aiming .quest-tracker{opacity:0;transition:opacity .3s}.ledger-wrap .charter select{font:500 14px var(--body-serif);color:var(--ink);border:1px solid var(--glass-edge);text-transform:none;letter-spacing:0;background:#00000040;border-radius:5px;padding:4px 6px}.ledger-wrap .charter select option{background:#1d2733}.ledger-wrap .charter input[type=checkbox]{accent-color:var(--brass,#c9a45c);margin-right:6px}.charter-warn{font:400 12px var(--sans);color:#f0b46a;margin:6px 0 0}.voyage-panel{width:216px;padding:10px 12px 12px;position:absolute;top:16px;right:16px}.voyage-panel .wind{width:auto;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;text-align:center;font:400 12px/1.4 var(--sans);color:var(--ink-dim);background:0 0;border:0;margin:6px 0 0;padding:0;position:static}.voyage-panel .wind .label,.voyage-panel .wind .divider,.voyage-panel .wind [data-k=windName],.voyage-panel .wind [data-k=posHint]{display:none}.voyage-panel .wind .wind-main,.voyage-panel .wind .pos{font:500 15px/1.3 var(--body-serif);color:var(--ink);margin:0;display:inline}.voyage-panel .wind .wind-main small{font-size:11px}.voyage-panel .wind .wind-main:after,.voyage-panel .wind .pos[data-k=pos]:after{content:" · ";color:var(--brass)}.voyage-panel .wind .baro{margin-top:1px;font-size:11px;display:block}.minimap{width:192px;height:192px;box-shadow:0 0 0 1px var(--brass-dim), 0 6px 18px #0006;border-radius:50%;margin:8px auto 6px;display:block}.purse{text-align:center;grid-template-columns:1fr 1fr 1fr;gap:4px;margin-top:4px;display:grid}.purse div{font:500 17px/1.1 var(--body-serif);font-feature-settings:"lnum"}.purse small{font:600 8.5px/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--brass);display:block}.coin:before{content:"";vertical-align:1px;background:radial-gradient(circle at 35% 35%,#ffe7a0,#c8962e 60%,#8a6216);border-radius:50%;width:9px;height:9px;margin-right:4px;display:inline-block;box-shadow:0 0 0 1px #00000059}.region{font:400 11px/1.3 var(--sans);color:var(--ink-dim);text-align:center;margin-top:2px}.zone{font:600 9px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;border-radius:9px;margin-top:4px;padding:3px 7px;display:inline-block}.zone.safe{color:#9fe0a8;background:#3c8c5038;border:1px solid #7fc28a73}.zone.open{color:#f2a493;background:#aa3c2838;border:1px solid #e2574c73}.orders{text-align:center;min-width:320px;max-width:460px;padding:9px 16px 10px;position:absolute;top:16px;left:50%;transform:translate(-50%)}.orders .title{font:400 18px/1.15 var(--serif);margin-top:4px}.orders .obj{font:400 12px/1.35 var(--sans);color:var(--ink-dim);margin-top:3px}.orders .obj b{color:var(--ink);font-weight:600}.orders .steps{border-top:1px solid var(--glass-edge);text-align:left;font:400 11.5px/1.35 var(--sans);color:var(--ink-dim);gap:3px;margin:7px auto 0;padding:6px 0 0;list-style:none;display:inline-grid}.orders .steps li{padding-left:18px;position:relative}.orders .steps li:before{content:"";border:1px solid var(--brass-dim);border-radius:50%;width:8px;height:8px;position:absolute;top:3px;left:2px}.orders .steps li.next{color:var(--ink)}.orders .steps li.next:before{border-color:var(--brass);box-shadow:0 0 6px #d6b06299}.orders .steps li.done{opacity:.55;-webkit-text-decoration:line-through #d6b06280;text-decoration:line-through #d6b06280}.orders .steps li.done:before{content:"✓";width:auto;height:auto;color:var(--brass);font:700 11px/1.35 var(--sans);border:0;top:-1px;left:1px}.orders .steps kbd{box-shadow:none;padding:1px 4px;font-size:9.5px}.orders.hidden{display:none}.prompt{font:400 13px/1.3 var(--sans);white-space:nowrap;padding:8px 14px;transition:opacity .25s;position:absolute;bottom:352px;left:50%;transform:translate(-50%)}.prompt.hidden{opacity:0}.prompt kbd,.card kbd{font:600 11px/1 var(--sans);color:#1a140c;background:var(--brass);border-radius:4px;margin:0 3px;padding:3px 6px;display:inline-block;box-shadow:0 2px #8a6a2a}.progress{background:#f3ead626;border-radius:2px;height:3px;margin-top:6px;overflow:hidden}.progress div{background:var(--brass);width:0;height:100%}.waypoint{pointer-events:none;filter:drop-shadow(0 2px 4px #0009);flex-direction:column;align-items:center;display:flex;position:absolute;transform:translate(-50%,-100%)}.waypoint .diamond{border:2px solid var(--brass);background:#d6b06240;width:14px;height:14px;margin:0 auto;transform:rotate(45deg)}.waypoint .wp-name,.waypoint .wp-dist{border:1px solid var(--glass-edge);text-shadow:0 1px 2px #000c;white-space:nowrap;background:#0911189e;border-radius:10px;display:inline-block}.waypoint .wp-name{font:400 14px/1.1 var(--serif);color:var(--ink);margin-bottom:6px;padding:3px 9px 4px}.waypoint .wp-dist{font:600 10px/1.2 var(--sans);color:#f0cf86;letter-spacing:.06em;margin-top:4px;padding:2px 7px}.waypoint.edge .diamond{border-color:#f0c870}.banner{text-align:center;pointer-events:none;opacity:0;text-shadow:0 2px 18px #000000a6;transition:opacity 1.2s;position:absolute;top:22%;left:50%;transform:translate(-50%)}.banner.show{opacity:1}.banner .b-name{font:400 54px/1 var(--serif);letter-spacing:.08em}.banner .b-sub{font:italic 500 19px/1.4 var(--body-serif);color:var(--ink-dim);margin-top:8px}.banner .b-rule{background:linear-gradient(90deg, transparent, var(--brass), transparent);width:240px;height:1px;margin:12px auto 0}.ledger-wrap{z-index:20;box-sizing:border-box;background:radial-gradient(#050a0e1f,#050a0e80);justify-content:center;align-items:center;padding:100px 16px 16px;display:flex;position:fixed;inset:0}.ledger-wrap.hidden{display:none}.ledger{flex-direction:column;width:min(980px,94vw);max-height:min(90vh,100%);padding:0;display:flex;overflow:hidden}.ledger header{justify-content:space-between;align-items:flex-end;gap:20px;padding:18px 24px 0;display:flex}.ledger h1{font:400 36px/1 var(--serif);letter-spacing:.04em;margin:4px 0 0}.ledger .desc{font:italic 500 15px/1.35 var(--body-serif);color:var(--ink-dim);max-width:560px;margin:6px 0 0}.ledger .stats{text-align:right;gap:18px;display:flex}.ledger .stats div{font:500 22px/1 var(--body-serif);font-feature-settings:"lnum"}.ledger .stats small{font:600 9px/1.6 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--brass);display:block}.tabs{border-bottom:1px solid var(--glass-edge);gap:2px;padding:14px 24px 0;display:flex}.tabs button{font:600 11px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;padding:10px 14px}.tabs button.on{color:var(--ink);border-bottom-color:var(--brass)}.tabs button:hover{color:var(--ink)}.ledger .body{flex:1;min-height:300px;padding:16px 24px;overflow:hidden auto}.ledger footer{border-top:1px solid var(--glass-edge);justify-content:space-between;align-items:center;gap:12px;padding:12px 24px 16px;display:flex}.ledger footer .hint{font:400 11px var(--sans);color:var(--ink-dim)}.btn{font:600 11px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:#1a140c;cursor:pointer;pointer-events:auto;background:linear-gradient(#e6c27a,#c8a052);border:0;border-radius:6px;padding:10px 16px;box-shadow:0 2px #7d5f26}.btn:hover{filter:brightness(1.08)}.btn kbd{color:var(--brass)!important;box-shadow:none!important;background:#2a1e0e!important}.btn:disabled{filter:grayscale(.8)brightness(.7);cursor:default}.btn.ghost{color:var(--ink);border:1px solid var(--brass-dim);box-shadow:none;background:0 0}.btn.small{letter-spacing:.06em;padding:6px 8px;font-size:10px}table.market{border-collapse:collapse;width:100%;font:400 13px/1.2 var(--sans)}table.market th{font:600 9.5px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--brass);text-align:left;border-bottom:1px solid var(--glass-edge);padding:6px 8px}table.market td{vertical-align:middle;border-bottom:1px solid #d6b0621a;padding:7px 8px}table.market td.num{font:500 17px/1 var(--body-serif);font-feature-settings:"lnum";text-align:right}table.market th.num{text-align:right}table.market .good{font:500 16px/1.1 var(--body-serif)}table.market .blurb{font:400 10.5px/1.3 var(--sans);color:var(--ink-dim)}table.market .acts{white-space:nowrap;text-align:right}table.market .acts .btn{margin-left:3px}.tag{font:600 9px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;border-radius:8px;padding:3px 6px}.tag.made{color:#9fe0a8;background:#3c8c5033}.tag.wanted{color:#f2c27a;background:#c88c2833}.elsewhere{font:400 10.5px var(--sans);color:var(--ink-dim)}.holdbar{font:400 12px var(--sans);color:var(--ink-dim);align-items:center;gap:10px;margin-bottom:12px;display:flex}.holdbar .bar{background:#f3ead61f;border-radius:3px;flex:1;height:6px;display:flex;overflow:hidden}.holdbar .bar i{height:100%;display:block}.cols{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px;display:grid}.cols>*{min-width:0}@media (max-width:760px){.cols{grid-template-columns:minmax(0,1fr)}}.ledger .card{width:auto;min-width:0;box-shadow:none;overflow-wrap:break-word;border:1px solid var(--glass-edge);background:#ffffff05;border-radius:8px;margin-bottom:10px;padding:12px 14px}.card h3{font:400 20px/1.1 var(--serif);margin:0}.card .giver{font:italic 500 13px var(--body-serif);color:var(--brass);margin-top:2px}.card p{font:400 12.5px/1.45 var(--sans);color:var(--ink-dim);margin:8px 0}.card .row{justify-content:space-between;align-items:center;gap:10px;display:flex}.card .reward{font:500 17px var(--body-serif)}.card.locked{opacity:.45}.card.done h3{text-decoration:line-through;-webkit-text-decoration-color:var(--brass-dim);text-decoration-color:var(--brass-dim)}.card .dest{font:400 11px var(--sans);color:var(--ink-dim)}.section-label{font:600 10px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--brass);margin:4px 0 10px}.empty{font:italic 500 14px var(--body-serif);color:var(--ink-dim)}.hull{align-items:center;gap:14px;display:flex}.hull .big{font:500 44px/1 var(--body-serif)}.msg{font:400 12px var(--sans);color:#f2c27a;min-height:16px}.chart-wrap{z-index:15;box-sizing:border-box;background:#050a0e8c;justify-content:center;align-items:center;padding:100px 0 50px;display:flex;position:fixed;inset:0}.chart-wrap.hidden{display:none}.chart-frame{border-radius:6px;position:relative;box-shadow:0 20px 60px #0009,0 0 0 6px #3a2a18,0 0 0 8px #c8a052}.chart-frame canvas{cursor:grab;border-radius:4px;display:block}.chart-frame canvas:active{cursor:grabbing}.chart-help{text-align:center;font:400 12px var(--sans);color:var(--ink-dim);position:absolute;bottom:-34px;left:0;right:0}@media (max-height:820px){.voyage-panel{width:190px;padding:8px 10px 10px}.minimap{width:136px;height:136px}.prompt{bottom:318px}}.ledger .body:has(>.cols){flex-direction:column;display:flex;overflow:hidden}.ledger .body>.cols{flex:1;min-height:0}.ledger .body>.cols>*{min-height:0;padding-right:4px;overflow-y:auto}.ledger .body,.ledger .body>.cols>*{scrollbar-width:thin;scrollbar-color:#d6b06259 transparent}.ledger .card button,.ledger .card .accept{cursor:pointer}.ledger .card:has(button):hover{border-color:var(--brass-dim);background:#d6b0620d}.hud-right{flex-direction:column;align-items:flex-end;gap:10px;display:flex;position:absolute;top:16px;right:16px}.hud-right>.panel{width:236px;position:static}@media (max-height:900px){.hud-right{gap:8px}.hud-right .minimap{width:120px;height:120px;margin:4px auto}.hud-right .region br,.hud-right .region .zone,.hud-right .guns .sub,.hud-right .guns .lay{display:none}.trim-dial{height:120px}}.hud-top{pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute;top:16px;left:50%;transform:translate(-50%)}.hud-top>.orders{pointer-events:auto;position:static;transform:none}.hud-top>.toasts{position:static;transform:none}.zone.contested{color:#f2d48a;background:#be962833;border:1px solid #e0b84a73}.ship-profile{aspect-ratio:440/210;background:linear-gradient(#96b9cd29,#96b9cd0a);border-radius:6px;width:100%;height:auto;margin:-2px 0 8px;display:block}.yard .field{font:600 9.5px/1.2 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--brass);grid-template-columns:110px minmax(0,1fr);align-items:center;gap:4px 10px;margin-top:9px;display:grid}.yard .field>.dest{text-transform:none;letter-spacing:0;grid-column:2;font-weight:400}.yard .field input{font:500 17px/1.2 var(--body-serif);color:var(--ink);border:1px solid var(--glass-edge);background:#00000040;border-radius:6px;outline:none;min-width:0;padding:6px 9px}.yard .field input:focus{border-color:var(--brass)}.stepper{align-items:center;gap:10px;display:inline-flex}.stepper b{font:500 20px/1 var(--body-serif);color:var(--ink);text-align:center;min-width:20px}.swatches{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.swatch{background:var(--c);cursor:pointer;border:2px solid #f3ead640;border-radius:50%;width:22px;height:22px;padding:0;box-shadow:inset 0 -3px 6px #0000004d}.swatch.on{border-color:var(--brass);box-shadow:0 0 0 2px #d6b06259,inset 0 -3px 6px #0000004d}.swatch-name{font:italic 500 13px var(--body-serif);color:var(--ink-dim);text-transform:none;letter-spacing:0;margin-left:4px}.ship-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 10px;margin:6px 0 10px;display:grid}.ship-stats div{font:500 15px/1.1 var(--body-serif);font-feature-settings:"lnum"}.ship-stats small{font:600 8.5px/1.5 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--brass);display:block}.upgrades{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:6px;display:grid}.upgrade{text-align:left;border:1px solid var(--glass-edge);color:var(--ink);cursor:pointer;font:inherit;background:#0003;border-radius:6px;padding:7px 9px}.upgrade .row{justify-content:space-between;align-items:baseline;gap:6px;display:flex}.upgrade b{font:500 14px/1.2 var(--body-serif)}.upgrade small{font:400 11px/1.35 var(--sans);color:var(--ink-dim);margin-top:3px;display:block}.upgrade.on{border-color:var(--brass);box-shadow:0 0 0 1px #d6b06259}.upgrade:disabled{cursor:default;border-color:var(--brass-dim);opacity:.8}.ship-card.mine{border-color:var(--brass-dim)}.ship-card.unbuilt{opacity:.55}.ship-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;margin-top:8px;display:grid}.ship-thumb{text-align:left;border:1px solid var(--glass-edge);color:var(--ink);cursor:pointer;font:inherit;background:linear-gradient(#ffffff0d,#0000002e);border-radius:10px;flex-direction:column;gap:4px;padding:8px 10px 10px;transition:border-color .15s,transform .15s,box-shadow .15s;display:flex}.ship-thumb:hover{border-color:var(--brass-dim);transform:translateY(-1px);box-shadow:0 6px 18px #0000004d}.ship-thumb.on{border-color:var(--brass);box-shadow:0 0 0 1px #d6b06266}.ship-thumb.mine{border-style:dashed;border-color:var(--brass-dim)}.ship-thumb.unbuilt{opacity:.5}.ship-thumb .row{justify-content:space-between;align-items:baseline;gap:6px;display:flex}.ship-thumb b{font:500 16px/1.15 var(--body-serif)}.ship-thumb .tier{letter-spacing:2px;color:var(--brass);font-size:7px}.ship-thumb .role{font:italic 400 12px/1.2 var(--body-serif);color:var(--ink-dim);margin-bottom:3px}.ship-thumb .price{margin-top:5px}.ship-thumb .price small{font:400 10.5px/1.2 var(--sans);color:var(--ink-dim);text-align:right}.thumb-profile{aspect-ratio:2;background:linear-gradient(#96b9cd29,#96b9cd08);border-radius:6px;width:100%;height:auto;display:block}.thumb-profile.big{aspect-ratio:440/200;margin-bottom:6px}.rate{grid-template-columns:62px minmax(0,1fr);align-items:center;gap:6px;display:grid}.rate small{font:600 8px/1.4 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--brass-dim)}.rate .bar{background:#ffffff14;border-radius:3px;height:5px;position:relative}.rate .bar i{background:#f3ead68c;border-radius:3px;position:absolute;inset:0 auto 0 0}.rate.up .bar i{background:#7fbf86}.rate.down .bar i{background:#d9826f}.rate .bar b{background:var(--brass);border-radius:1px;width:2px;height:11px;margin-left:-1px;position:absolute;top:-3px}.ship-card.picked{border-color:var(--brass);margin-top:8px}.ledger .card p.warn{color:#f2a493;margin:6px 0 0;font-size:11.5px}.ledger-wrap .hold-bar{background:#ffffff14;border-radius:3px;height:6px;margin:8px 0 6px;overflow:hidden}.ledger-wrap .hold-bar>div{background:var(--brass);height:100%}.portdock{flex:none;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-bottom:16px;display:grid}@media (max-width:900px){.portdock{grid-template-columns:repeat(3,minmax(0,1fr))}}.dock-tile{text-align:left;cursor:pointer;color:var(--ink);border:1px solid var(--glass-edge);background:#d6b06212;border-radius:8px;flex-direction:column;align-items:flex-start;gap:4px;padding:9px 11px;transition:background .15s,border-color .15s;display:flex}.dock-tile:hover{border-color:var(--brass-dim);background:#d6b0622e}.dock-tile b{font:400 16px/1 var(--serif);letter-spacing:.06em}.dock-tile span{font:400 11px/1.3 var(--sans);color:var(--ink-dim)}.dock-tile.warn{border-color:#f0b54599}.dock-tile.warn span{color:#f6d38d}.captains-log .pos{color:#7fc28a}.captains-log .neg{color:#f2a493}.log-accounts tr.total td{border-top:1px solid var(--glass-edge);color:var(--ink);font-weight:600}.captains-log .card .row{font:400 13px var(--sans);padding:2px 0}.log-lines{padding:6px 12px}.log-line{font:400 12.5px/1.35 var(--sans);color:var(--ink);border-bottom:1px solid #d6b0621a;grid-template-columns:76px 1fr auto;gap:10px;padding:5px 0;display:grid}.log-line:last-child{border-bottom:0}.log-line .when{color:var(--ink-dim);font-variant-numeric:tabular-nums}.log-line .amt{font-variant-numeric:tabular-nums;font-weight:600}.log-line.rep .what{color:var(--brass);font-style:italic}.captains-log .card .row>span{font:400 13px/1.4 var(--sans)}.trade-book .pos{color:#7fc28a}.trade-book .neg{color:#f2a493}.trade-book tr.loss td{opacity:.55}.tb-scroll{overflow-x:auto}.tb.ports th,.tb.ports td{white-space:nowrap}.tb .course-row td{border-bottom:0;padding-top:10px}.chart-fleet{border:1px solid var(--brass-dim);background:#14100adb;border-radius:6px;width:300px;max-height:45%;padding:10px 12px;position:absolute;top:12px;right:12px;overflow-y:auto}.chart-fleet.hidden{display:none}.chart-fleet .label{font:600 10px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--brass);margin-bottom:6px}.chart-fleet .fl{border-top:1px solid #c8a05226;grid-template-rows:auto auto;grid-template-columns:8px 1fr auto;align-items:center;gap:2px 8px;padding:6px 0;display:grid}.chart-fleet .fl i{border-radius:50%;grid-row:1/3;width:8px;height:8px}.chart-fleet .fl b{font:600 13px var(--sans);color:var(--ink);display:block}.chart-fleet .fl small{font:400 11px var(--sans);color:var(--ink-dim);display:block}.chart-fleet .fl button{grid-column:3}.chart-fleet .fl button[data-fleet=show]{grid-row:1}.chart-fleet .fl button[data-fleet=course]{grid-row:2}.chart-fleet .fl>div{grid-area:1/2/3;min-width:0}.ledger footer .msg{flex:auto;min-width:0}.ledger footer>span:last-child,.ledger footer>.btn{white-space:nowrap;flex:none}.yard-nav{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.yard-nav button{font:600 10px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--glass-edge);color:var(--ink-dim);cursor:pointer;background:#0003;border-radius:7px;padding:8px 12px}.yard-nav button:hover{color:var(--ink);border-color:var(--brass-dim)}.yard-nav button.on{background:var(--brass);border-color:var(--brass);color:#1b140b}.yard-stage{border:1px solid var(--glass-edge);background:#b7cbd6;border-radius:10px;height:clamp(240px,40vh,420px);margin-bottom:10px;position:relative;overflow:hidden}.yard-canvas{cursor:grab;touch-action:none;width:100%;height:100%;display:block}.yard-canvas:active{cursor:grabbing}.yard-caption{pointer-events:none;background:#0c1218b8;border-radius:6px;max-width:calc(100% - 16px);padding:6px 10px 7px;position:absolute;top:8px;left:8px}.yard-stage-name{font:400 15px/1.2 var(--body-serif);color:var(--ink)}.yard-stage-name b{font-weight:600}.yard-hint{font:400 11px/1.2 var(--sans);color:#e8dec8b8;margin-top:2px}.yard-changes{font:400 12px/1.45 var(--sans);margin:8px 0 4px;padding:0;list-style:none}.yard-changes li b{color:var(--brass);font-weight:600}.yard-changes s{opacity:.6}.btn.refit-ready{padding:9px 16px;font-size:11px;box-shadow:0 0 0 2px #e6c27a59,0 2px #7d5f26}.yard-views{flex-wrap:wrap;gap:4px;display:flex;position:absolute;bottom:8px;left:8px;right:8px}.yard-views button{font:600 9.5px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ink);cursor:pointer;background:#0c12189e;border:1px solid #0000004d;border-radius:6px;padding:6px 9px}.yard-views button:hover{background:#0c1218cc}.yard-views button.on{background:var(--brass);color:#1b140b;border-color:var(--brass)}.yard-views button[data-pv=sails]{margin-left:auto}.login .card{width:min(440px,100vw - 32px)}.login form{gap:12px;margin-top:6px;display:grid}.login label{font:600 10px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--brass);gap:5px;display:grid}.login input{font:500 19px var(--body-serif);color:var(--ink);border:1px solid var(--glass-edge);background:#f3ead60f;border-radius:7px;outline:none;padding:9px 12px}.login input:focus{border-color:var(--brass);background:#f3ead61a}.login .row{flex-wrap:wrap;align-items:center;gap:10px;margin-top:6px;display:flex}.login .start{padding:10px 22px;font-size:18px}.login .start.secondary{color:var(--brass);border:1px solid var(--brass-dim);box-shadow:none;background:0 0}.login .msg{min-height:20px;font:500 italic 16px var(--body-serif);color:var(--ink-dim)}.login .msg.error{color:#f0a08f}.login .hint{min-height:0;font:500 italic 14px var(--body-serif);color:#f0a08f;margin:-6px 0 6px}.login .hint:empty{display:none}.login input.invalid{border-color:#c96f5c}.login .offline{font:400 12px var(--sans);color:var(--ink-dim);margin-top:14px}.login .offline button{font:inherit;color:var(--brass);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.login.busy form{opacity:.5;pointer-events:none}.net-banner{z-index:5;pointer-events:none;font:500 italic 17px var(--body-serif);color:#f6d0c4;background:#3c140ebf;border:1px solid #e2574c99;border-radius:18px;padding:6px 16px;position:fixed;top:64px;left:50%;transform:translate(-50%)}.net-banner.hidden{display:none}.ashore{pointer-events:auto;gap:6px;margin-top:10px;display:grid}.ashore button{font:600 10px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--brass);cursor:pointer;border:1px solid var(--brass-dim);background:#d6b06214;border-radius:6px;padding:7px 10px}.ashore button:hover{background:#d6b0622e}.ashore .status{font:400 11px/1.35 var(--sans);color:var(--ink-dim);max-width:220px}.ashore .status b{color:var(--ink);font-feature-settings:"tnum";font-weight:600}.ashore .status.blocked{color:#f0b545}.ashore.hidden,body.online .admin-open,.login .offline.hidden{display:none}.colonies .flag{border-radius:2px;flex:none;display:block;box-shadow:0 1px #00000080,0 0 0 1px #d6b06240}.colonies .flag.small{width:40px;height:25px}.colonies .flag.none{border:1px dashed var(--brass-dim);box-shadow:none}.colonies .grow{flex:1;min-width:0}.colonies .row.top{justify-content:flex-start;gap:12px}.colonies .card.member{border-color:var(--brass);background:#d6b06212}.colonies .card.slim{margin-bottom:6px;padding:7px 10px}.colonies .card.slim .row{justify-content:flex-start;gap:10px}.colonies .card.slim b{font:500 16px var(--body-serif)}.colonies table.market td.num small{font:400 12px var(--sans);color:var(--ink-dim)}.colonies .buildbar{background:#f3ead61f;border-radius:3px;height:6px;margin:-2px 0 10px;overflow:hidden}.colonies .buildbar i{background:linear-gradient(90deg,#a07a34,#e6c27a);height:100%;transition:width 1.8s linear;display:block}.colonies .yard .field{grid-template-columns:130px minmax(0,1fr)}.colonies .buildbar.fort i{background:linear-gradient(90deg,#7a2a20,#c8584a)}.colonies p.warn{color:#e6a08a}.colonies .routeform{flex-wrap:wrap;gap:6px;margin-top:6px}.colonies .routeform select{font:500 14px var(--body-serif);color:var(--ink);border:1px solid var(--glass-edge);background:#00000040;border-radius:5px;max-width:46%;padding:4px 6px}.colonies .routeform select option{background:#1d2733}.colonies .howto{margin:4px 0 0;padding-left:20px}.colonies .howto li{margin:0 0 6px}.factions .colours{align-items:center;gap:18px;display:flex}.factions .flag{border-radius:2px;flex:none;width:64px;height:40px;display:block;box-shadow:0 1px #00000080,0 0 0 1px #d6b06240}.factions .flag.big{width:120px;height:75px;transform:perspective(300px)rotateY(-10deg)}.factions .flag.small{width:40px;height:25px}.factions .flag.preview{width:150px;height:94px}.factions .flag.none{font:italic 500 14px var(--body-serif);color:var(--ink-dim);border:1px dashed var(--brass-dim);box-shadow:none;justify-content:center;align-items:center;display:flex}.factions .grow{flex:1;min-width:0}.factions .row.top{justify-content:flex-start;gap:12px}.factions .card.member{border-color:var(--brass);background:#d6b06212}.factions .card.pirate h3{color:#e6b0a0}.factions .card.slim{margin-bottom:6px;padding:7px 10px}.factions .card.slim .row{gap:10px}.factions .rep{font:500 16px/1 var(--body-serif);text-align:right;color:var(--ink)}.factions .rep small{font:600 10px/1.6 var(--sans);color:var(--ink-dim);display:block}.factions .rep.good{color:#9fe0a8}.factions .rep.bad{color:#f09a84}.repbar{background:linear-gradient(90deg,#8e2a20,#6b5a3a 40%,#4a6a4a 60%,#3f8a55);border-radius:2px;height:4px;margin:10px 0 2px;position:relative}.repbar i{background:var(--ink);border-radius:2px;width:4px;height:12px;margin-left:-2px;position:absolute;top:-4px;box-shadow:0 0 0 1px #1a140c}.repbar b{background:#f3ead659;width:1px;height:8px;position:absolute;top:-2px}.zone-dot{background:var(--z);width:8px;height:8px;box-shadow:0 0 6px var(--z);vertical-align:middle;border-radius:50%;margin:0 6px 1px 0;display:inline-block}.factions .badge{color:#fff;background:#b8322a;border-radius:8px;min-width:16px;padding:2px 4px;font-size:9px;display:inline-block}.factions .member-row{font:500 15px var(--body-serif);border-bottom:1px solid #d6b0621a;padding:4px 0}.factions label{font:600 9.5px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--brass);flex-direction:column;flex:1;gap:4px;margin:8px 0;display:flex}.factions input,.factions select{font:500 15px var(--body-serif);color:var(--ink);border:1px solid var(--glass-edge);text-transform:none;letter-spacing:0;background:#00000040;border-radius:5px;padding:6px 8px}.factions input[type=color]{cursor:pointer;width:100%;height:30px;padding:0}.factions .swatches{gap:8px}.factions .row.invite{gap:8px;margin-top:10px}.factions .row.invite input{flex:1}.factions .rules p{margin:6px 0}.ship-label .n .flag{vertical-align:middle;border-radius:1px;width:18px;height:11px;margin:0 6px 2px 0;box-shadow:0 0 0 1px #00000080}p.terms{font:italic 400 13px/1.35 var(--body-serif);color:var(--brass);margin:4px 0 10px}.faction-panel .port-terms,.port-terms{font:600 10px/1.2 var(--sans);letter-spacing:.1em;text-transform:uppercase;margin:-2px 0 8px;display:block}.port-terms.good{color:#9fd18a}.port-terms.bad{color:#e08a7a}.party .card.leader h3:after{content:" · leads";font:600 10px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--brass)}.party .card .away{color:var(--ink-dim);font-style:italic}.party .row.invite{gap:8px;margin-top:10px}.party .row.invite input{font:500 15px var(--body-serif);color:var(--ink);border:1px solid var(--glass-edge);background:#00000040;border-radius:5px;flex:1;padding:6px 8px}.party .reply{font:italic 500 14px var(--body-serif);color:var(--brass);margin:8px 0 0}.party .reply.bad{color:#f09a84}.party-strip{z-index:6;border:1px solid var(--glass-edge);min-width:190px;max-width:260px;font:500 14px/1.3 var(--body-serif);color:var(--ink);pointer-events:auto;background:#0911189e;border-radius:8px;padding:8px 10px;position:fixed;top:46%;left:16px}.party-strip.hidden{display:none}.party-strip .label{font:600 9.5px/1.6 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--brass)}.party-strip .mate{align-items:baseline;gap:6px;padding:2px 0;display:flex}.party-strip .mate b{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.party-strip .mate small{font:600 11px var(--sans);color:var(--ink-dim);white-space:nowrap}.party-strip .mate i{background:#6fcf86;border-radius:50%;flex:none;align-self:center;width:7px;height:7px}.party-strip .mate i.away{background:#8a8170}.party-strip .invite{margin-top:4px}.party-strip .invite .row{gap:6px;margin-top:4px;display:flex}
