/* Arrival shares the game's palette, typography and spacing tokens. */
body.arriving #hud,body.arriving #chat,body.arriving #dock{visibility:hidden}
.arrival{position:fixed;z-index:var(--z-modal);left:var(--s4);top:calc(var(--s4) + var(--st));width:min(340px,calc(100vw - var(--s6)));padding:var(--s5);box-sizing:border-box}
.arrival p{margin:var(--s2) 0;line-height:1.4}
.arrival .arrival-kicker,.arrival-dialog .arrival-kicker{color:var(--accent);font:500 var(--text-small)/1.5 var(--mono);text-transform:uppercase;letter-spacing:.08em}
.arrival h1{font:700 28px/1.1 var(--display);margin:var(--s2) 0 var(--s4)}
.arrival .btn,.arrival-dialog .btn{min-height:var(--target);min-width:var(--target);padding:var(--s2) var(--s4);font:700 18px/1.2 var(--prose)}
.arrival a,.arrival-dialog a{color:var(--accent);display:inline-flex;align-items:center;min-height:var(--target)}
.arrival-dialog{color:var(--text);background:var(--surface);width:min(650px,calc(100vw - var(--s6)));max-height:calc(100dvh - var(--s6));padding:var(--s5);box-sizing:border-box;overflow:auto;border:2px solid var(--trim);box-shadow:0 16px 60px var(--well);font:18px/1.4 var(--prose)}
.arrival-dialog::backdrop{background:rgba(18,12,7,.38)}
.arrival-dialog h2{font:700 30px/1.15 var(--display);margin:var(--s2) 0 var(--s4)}
.arrival-dialog p{margin:var(--s3) 0}
.arrival-dialog label,.arrival-dialog legend{font-weight:700}
.arrival-dialog input,.arrival-dialog select{display:block;width:100%;box-sizing:border-box;min-height:var(--target);margin:var(--s2) 0;padding:var(--s2) var(--s3);border:1px solid var(--trim);border-radius:3px;color:var(--text);background:var(--well);font:inherit}
.arrival-dialog fieldset{border:0;margin:var(--s4) 0;padding:0;min-width:0}
.arrival-dialog :is(button,input,select,a):focus-visible,.arrival :is(button,a):focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.arrival-dialog button:disabled{opacity:.65;cursor:wait}
.arrival-dialog .arrival-actions{display:flex;gap:var(--s2);flex-wrap:wrap;margin-top:var(--s5)}
.arrival-dialog .arrival-primary{background:var(--accent);color:var(--ink);border-color:var(--accent)}
.arrival-dialog .arrival-primary:hover{background:var(--paper)}
.arrival-dialog button:active{transform:translateY(1px)}
.arrival-dialog .arrival-error{color:var(--bad)}
.arrival-dialog .arrival-help{color:var(--muted);font-size:var(--text-body)}
.arrival-look{display:grid;grid-template-columns:160px 1fr;gap:var(--s4);align-items:center}
.arrival-look canvas{width:160px;height:176px;max-width:100%;object-fit:contain}
.arrival-swatches{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s2)}
.arrival-swatches button{width:var(--target);height:var(--target);padding:var(--s2);border:1px solid var(--trim);border-radius:3px;background:var(--well);cursor:pointer}
.arrival-swatches button span{display:block;height:100%;background:var(--swatch-color);border-radius:50%}
.arrival-swatches button:hover{background:var(--raised)}
.arrival-swatches button[aria-pressed="true"]{outline:2px solid var(--accent);outline-offset:2px}
.arrival-steps{display:flex;gap:var(--s4);list-style:none;padding:0;font:500 var(--text-small)/1.5 var(--mono);color:var(--muted)}
.arrival-steps [aria-current="step"]{color:var(--accent);text-decoration:underline;text-underline-offset:4px}
@media(max-width:600px){.arrival{padding:var(--s4);width:min(310px,calc(100vw - var(--s6)))}.arrival-look{grid-template-columns:1fr}.arrival-look canvas{justify-self:center;width:120px;height:132px}.arrival-dialog{padding:var(--s4)}.arrival-dialog h2{font-size:26px}.arrival-steps{gap:var(--s3)}}
