:root{--bg:#06082a;--panel:#0c1150;--line:#55ffff;--text:#e6e6e6;--dim:#8f96c8;--gold:#ffff55;--good:#55ff55;--bad:#ff5555;--hi:#aa00aa;--f-pix:"Press Start 2P", ui-monospace, monospace;--f-ko:"Nanum Gothic Coding", "D2Coding", ui-monospace, monospace;color-scheme:dark}[hidden]{display:none!important}html,body{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--f-ko);font-size:14px;line-height:1.45;-webkit-user-select:none;user-select:none}.wrap{max-width:560px;margin:0 auto;padding-block:10px 24px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));display:flex;flex-direction:column;gap:10px}h1{font-family:var(--f-pix);font-size:13px;color:var(--gold);letter-spacing:1px;margin:0;display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}h1 small{font-family:var(--f-ko);font-size:12px;color:var(--dim);letter-spacing:0;font-weight:400}.status{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;border:2px solid var(--line);background:var(--panel);padding:6px}.stat{display:flex;flex-direction:column;min-width:0}.stat b{font-family:var(--f-pix);font-size:10px;color:var(--gold);font-weight:400;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat b.low{color:var(--bad)}.stat span{font-size:11px;color:var(--dim)}.view{position:relative;border:2px solid var(--line);background:#000;line-height:0;overflow:hidden}#sea{width:100%;max-width:100%;aspect-ratio:1/1;image-rendering:pixelated;image-rendering:crisp-edges;display:block;touch-action:none;cursor:crosshair}.hud{position:absolute;left:6px;top:6px;line-height:1.3;font-size:11px;background:#06082acc;padding:3px 6px;border:1px solid var(--line);pointer-events:none}.hud .deep{color:var(--bad)}.plbl{position:absolute;transform:translate(-50%,-100%);font-size:11px;line-height:1;padding:2px 4px;background:#06082ad9;color:#fff;white-space:nowrap;pointer-events:none;font-weight:700;border:1px solid var(--line)}.plbl.site{color:var(--dim);border-color:var(--dim)}.plbl.mine{color:var(--good);border-color:var(--good)}.toast{position:absolute;left:50%;bottom:10px;transform:translate(-50%);background:var(--gold);color:#000;font-weight:700;font-size:12px;line-height:1.3;padding:6px 10px;max-width:90%;text-align:center;pointer-events:none;box-shadow:3px 3px #000}.ctrl{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center}.pad{display:grid;grid-template-columns:repeat(3,48px);grid-template-rows:repeat(3,48px);gap:4px}.pad button{font-family:var(--f-pix);font-size:12px;background:var(--panel);color:var(--line);border:2px solid var(--line);cursor:pointer;touch-action:none;padding:0}.pad button:active,.pad button.on{background:var(--line);color:#000}.pad .mid{border-style:dotted;color:var(--dim);font-family:var(--f-ko);font-size:11px}.side{display:flex;flex-direction:column;gap:8px;min-width:0}.side p{margin:0;font-size:12px;color:var(--dim)}.win{border:2px solid var(--line);background:var(--panel)}.tabs{display:flex;border-bottom:2px solid var(--line)}.tabs button{flex:1;font-family:var(--f-ko);font-weight:700;font-size:13px;background:transparent;color:var(--dim);border:0;border-right:1px solid var(--line);padding:9px 2px;cursor:pointer}.tabs button:last-child{border-right:0}.tabs button[aria-selected=true]{background:var(--line);color:#000}.pane{padding:10px;display:flex;flex-direction:column;gap:10px}.pane h2{margin:0;font-size:14px;color:var(--gold)}.note{margin:0;color:var(--dim);font-size:12px}table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}th,td{padding:6px 4px;text-align:right;font-size:13px;border-bottom:1px dotted #2a3380}th{color:var(--dim);font-weight:400;font-size:11px}th:first-child,td:first-child{text-align:left}tbody tr{cursor:pointer}tbody tr.sel{background:var(--hi)}.tag{font-size:10px;padding:0 3px;margin-left:4px;border:1px solid currentColor}.tag.cheap{color:var(--good)}.tag.want{color:var(--gold)}.up{color:var(--good)}.down{color:var(--bad)}.tradebar{border:1px solid var(--gold);padding:8px;display:flex;flex-direction:column;gap:8px}.tradebar .row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}input[type=range]{flex:1;min-width:120px;accent-color:var(--gold)}.btn{font-family:var(--f-ko);font-weight:700;font-size:13px;background:var(--line);color:#000;border:0;padding:8px 12px;cursor:pointer;box-shadow:3px 3px #000}.btn.alt{background:var(--gold)}.btn.warn{background:var(--bad);color:#fff}.btn.ghost{background:transparent;color:var(--line);border:1px solid var(--line);box-shadow:none}.btn:disabled{background:#3a3f6e;color:#8890b8;cursor:not-allowed;box-shadow:none}.btn:active:not(:disabled){transform:translate(2px,2px);box-shadow:1px 1px #000}button:focus-visible,input:focus-visible{outline:2px dashed var(--gold);outline-offset:2px}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.card{border:1px solid var(--line);padding:8px;display:flex;flex-direction:column;gap:6px;min-width:0}.card h3{margin:0;font-size:13px;color:var(--line)}.card p{margin:0;font-size:12px;color:var(--dim)}.pips{font-family:var(--f-pix);font-size:9px;color:var(--gold);letter-spacing:2px}.log{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px;max-height:220px;overflow:auto;font-size:12px}.log li{border-left:2px solid var(--line);padding-left:6px}.log li em{font-style:normal;color:var(--dim);font-family:var(--f-pix);font-size:8px;margin-right:6px}.modal{position:fixed;inset:0;background:#000000bf;display:flex;align-items:center;justify-content:center;padding:16px;z-index:10}.modal .box{background:var(--panel);border:3px double var(--gold);max-width:520px;width:100%;max-height:92vh;overflow:auto;padding:14px;display:flex;flex-direction:column;gap:10px}.modal h2{margin:0;font-family:var(--f-pix);font-size:12px;color:var(--gold);line-height:1.6}.modal p{margin:0}.vs{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center;text-align:center}.vs b{display:block;font-family:var(--f-pix);font-size:16px;color:var(--gold);margin-top:4px}.vs i{font-family:var(--f-pix);font-style:normal;color:var(--bad)}.meter{height:12px;border:1px solid var(--line);background:#000}.meter div{height:100%;background:var(--good)}.btnrow{display:flex;gap:8px;flex-wrap:wrap}.btnrow .btn{flex:1}#world{width:100%;max-width:100%;image-rendering:pixelated;image-rendering:crisp-edges;border:1px solid var(--line);cursor:pointer;display:block;touch-action:manipulation}.legend{display:flex;gap:10px;flex-wrap:wrap;font-size:11px;color:var(--dim)}.legend i{display:inline-block;width:10px;height:10px;margin-right:4px;vertical-align:-1px}.foot{font-size:11px;color:var(--dim);text-align:center;margin:0}@media(max-width:420px){.status{grid-template-columns:repeat(3,minmax(0,1fr))}.grid2{grid-template-columns:1fr}.pad{grid-template-columns:repeat(3,44px);grid-template-rows:repeat(3,44px)}}.status{grid-template-columns:repeat(4,minmax(0,1fr))}.field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--dim)}.field input{font-family:var(--f-ko);font-size:14px;background:#000;color:var(--text);border:1px solid var(--line);padding:8px}input[type=number]{width:5.5em;font-family:var(--f-ko);font-size:13px;background:#000;color:var(--text);border:1px solid var(--line);padding:4px}.err{color:var(--bad);font-size:12px;margin:0}.pill{display:inline-block;font-size:11px;padding:1px 6px;border:1px solid currentColor;margin-left:6px}.roll{font-family:var(--f-pix);font-size:22px;text-align:center;color:var(--gold);letter-spacing:2px}.busy{opacity:.6;pointer-events:none}.kv{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;font-size:12px}.kv span:nth-child(odd){color:var(--dim)}.dev{border:1px dashed var(--dim);padding:8px;display:flex;flex-direction:column;gap:6px}.crewgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:6px;margin:6px 0 10px}.crewcard{display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 2px;background:#0d0d14;border:1px solid #30303f;color:inherit;font:inherit;cursor:pointer}.crewcard:hover,.crewcard:focus{border-color:var(--gold);outline:none}.crewcard .face{line-height:0}.crewcard .face canvas{image-rendering:pixelated;width:48px;height:48px}.crewcard .nm{font-size:10px;text-align:center;line-height:1.25}.crewcard .bn{font-size:10px;color:var(--good)}.tavcard{display:flex;align-items:center;gap:8px;padding:6px;margin-bottom:6px;background:#0d0d14;border:1px solid #30303f}.tavcard .face{line-height:0;flex:0 0 auto}.tavcard .face canvas{image-rendering:pixelated;width:48px;height:48px}.tavcard .who{flex:1;min-width:0;font-size:11px;line-height:1.5}.tavcard .who .note{font-size:10px}.talk{display:flex;gap:8px;align-items:flex-start;margin:8px 0}.talk .face{line-height:0;flex:0 0 auto}.talk .face canvas{image-rendering:pixelated;width:96px;height:96px}.talk .bubble{flex:1;min-width:0;padding:8px 10px;background:#efe6d2;color:#201a12;border:3px solid #8a6a3a;box-shadow:inset 0 0 0 2px #efe6d2}.talk .bubble b{display:block;margin-bottom:4px;color:#6a3a1a}.talk .bubble p{margin:0;font-size:12px;line-height:1.7}.picks{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:6px 0}.picks select{background:#0d0d14;color:inherit;border:1px solid #30303f;font:inherit;font-size:11px;padding:3px}.crewcard.on{border-color:var(--gold);background:#1a1608}.crewcard.have{border-color:#3a6a3a}.crewcard.locked{opacity:.45}.mail{padding:6px 8px;margin-bottom:6px;background:#0d0d14;border:1px solid #30303f}.mail.new{border-color:var(--gold)}.mail b{display:block}.mail p{margin:4px 0 0;font-size:11px;line-height:1.6}.pity{display:inline-block;padding:0 4px;border-radius:2px;background:var(--gold);color:#000;font-size:10px;vertical-align:middle}.landcard{display:flex;align-items:center;gap:8px;padding:6px;margin:4px 0;background:#0d0d14;border:1px solid #30303f}.lprev{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#17349a;flex:0 0 auto}.lprev img{width:48px;height:48px;object-fit:contain;image-rendering:pixelated}.lmcard{border-color:#ffd34d}.shapes{display:flex;flex-wrap:wrap;gap:6px 14px;margin:6px 0}.shapes label{display:flex;align-items:center;gap:4px;cursor:pointer}.signprev{display:flex;align-items:center;justify-content:center;background:#17349a;border:1px solid var(--line);margin:8px 0;max-width:100%}.signprev img{width:100%;height:100%;image-rendering:pixelated}.fld{display:flex;flex-direction:column;gap:2px;margin:6px 0}.fld input{font-family:var(--f-ko);font-size:13px;background:#000;color:var(--text);border:1px solid var(--line);padding:5px;width:100%;box-sizing:border-box}.signcard{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:8px;margin:6px 0;background:#0d0d14;border:1px solid #ffd34d}.signimg{max-width:100%;background:#17349a}.signimg img{width:100%;height:100%;image-rendering:pixelated}.signcard p{margin:0}.lwho{flex:1 1 auto;min-width:0}.lact{display:flex;flex-direction:column;gap:4px;flex:0 0 auto}.lkprize{border-collapse:collapse;margin:6px 0;width:100%}.lkprize th,.lkprize td{border:1px solid #30303f;padding:4px 6px;text-align:left;font-size:13px}.lkprize th{color:var(--gold);white-space:nowrap}.lksteps{display:flex;gap:6px;margin:4px 0}.lkstep{padding:3px 8px;border:1px solid #30303f;color:var(--dim);font-size:13px}.lkstep.got{border-color:var(--gold);color:var(--gold)}.lkwin{margin:4px 0;padding-left:18px}.lkwin li{margin:2px 0}.notice{margin:6px 0;padding:6px 10px;border:1px solid var(--gold);color:var(--gold);background:#1a1606;font-size:13px;line-height:1.5}.notice.demo{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}.notice.demo .demo-acts{display:inline-flex;gap:6px;margin-left:auto}.notice.demo .btn{padding:3px 8px;font-size:12px;text-decoration:none}
