@font-face{font-family:Pixelify Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/assets/pixelify-sans-latin-wght-normal-Cbhn5ptY.woff2)format("woff2-variations");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:Atkinson Hyperlegible Next Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/atkinson-hyperlegible-next-latin-wght-normal-BcXVPD7q.woff2)format("woff2-variations");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:Atkinson Hyperlegible Mono Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/atkinson-hyperlegible-mono-latin-wght-normal-CoA7y8X5.woff2)format("woff2-variations");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{--space:#120f2e;--hull:#1b1640;--hull-raised:#241c50;--rule:#392d68;--rule-strong:#4e3f86;--ink:#f7ede8;--ink-2:#d2c3d9;--ink-3:#a898c4;--sailing:#ffd166;--docked:#79dcc6;--adrift:#ff6b81;--docked-wash:#79dcc61a;--peach:#ffb38a;--peach-light:#ffcfb2;--coral:#ff8a73;--maroon:#842640;--slate:#6f97a3;--pixel:"Pixelify Sans Variable", ui-monospace, monospace;--sans:"Atkinson Hyperlegible Next Variable", ui-sans-serif, system-ui, -apple-system, sans-serif;--mono:"Atkinson Hyperlegible Mono Variable", ui-monospace, "SF Mono", Menlo, monospace;--step--1:.75rem;--step-0:.875rem;--step-1:1rem;--step-2:1.5rem;--step-display:4.5rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--inset:var(--space-4);--gutter:clamp(1rem, 3vw, 2.5rem);--row:2.5rem;--row-head:2rem;--panel-head:3rem;--ease-out:cubic-bezier(.16, 1, .3, 1);--stars:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='173' height='173' fill='%23e9d9f0' fill-opacity='0.55' shape-rendering='crispEdges'%3E%3Crect x='82' y='38' width='1' height='1'/%3E%3Crect x='101' y='166' width='1' height='1'/%3E%3Crect x='12' y='18' width='1' height='1'/%3E%3Crect x='137' y='24' width='1' height='1'/%3E%3Crect x='93' y='149' width='1' height='1'/%3E%3Crect x='14' y='129' width='1' height='1'/%3E%3Crect x='54' y='9' width='1' height='1'/%3E%3Crect x='22' y='111' width='1' height='1'/%3E%3Crect x='107' y='17' width='1' height='1'/%3E%3C/svg%3E"), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='251' height='251' fill='%23e9d9f0' fill-opacity='0.3' shape-rendering='crispEdges'%3E%3Crect x='61' y='23' width='1' height='1'/%3E%3Crect x='141' y='108' width='1' height='1'/%3E%3Crect x='15' y='211' width='1' height='1'/%3E%3Crect x='144' y='31' width='1' height='1'/%3E%3Crect x='242' y='57' width='1' height='1'/%3E%3Crect x='161' y='160' width='1' height='1'/%3E%3C/svg%3E");--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;accent-color:var(--peach)}*,:before,:after{box-sizing:border-box;border-radius:0}html{background:var(--space);overscroll-behavior:none;scrollbar-color:var(--rule-strong) var(--hull);-webkit-text-size-adjust:100%;height:100%}body{overscroll-behavior:none;background:var(--stars), var(--space);height:100%;color:var(--ink);font-family:var(--sans);font-size:var(--step-0);caret-color:var(--peach);-webkit-font-smoothing:antialiased;margin:0;line-height:1.5;overflow:hidden}::selection{background:var(--peach);color:var(--space)}h1,h2,h3,p,dl,dd,ol,ul{margin:0}ol,ul{padding:0;list-style:none}a{color:inherit;text-decoration:none}code{font-family:var(--mono);font-size:.9em}:focus-visible{outline:2px solid var(--peach);outline-offset:2px}.sprite{width:18px;height:18px;image-rendering:pixelated;flex:none;display:block}.wordmark{align-items:center;gap:var(--space-2);font-family:var(--pixel);font-size:var(--step-2);font-weight:700;line-height:1;display:inline-flex}.wordmark-name{color:var(--peach-light);text-shadow:2px 2px 0 var(--maroon);letter-spacing:.02em}.wordmark-ship .sprite{width:27px;height:27px}.wordmark-ship{color:var(--peach);display:block}.wordmark-ship[data-underway]{animation:.48s step-end infinite bob}.wordmark-ship[data-bearing=sailing]{color:var(--sailing);animation:1.2s step-end infinite bob}.wordmark-ship[data-bearing=adrift]{color:var(--adrift);animation:2.4s step-end infinite drift}@keyframes drift{0%{transform:translate(0)}25%{transform:translate(-3px,2px)}50%{transform:translate(-6px)}75%{transform:translate(-3px,-2px)}}@keyframes bob{0%{transform:translateY(0)}50%{transform:translateY(2px)}}.state{align-items:center;gap:var(--space-2);font-family:var(--sans);font-size:var(--step--1);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);white-space:nowrap;font-weight:600;display:inline-flex}.state:before{content:"";width:6px;height:6px;transition:background-color .2s var(--ease-out);border:1px solid}.state[data-state]{color:var(--ink-2)}.state[data-state]:before{border:0}.state[data-state=sailing]:before{background:var(--sailing)}.state[data-state=docked]:before{background:var(--docked)}.state[data-state=adrift]{color:var(--adrift)}.state[data-state=adrift]:before{background:var(--adrift)}.horizon{--px:3;z-index:0;height:calc(96px * var(--px));pointer-events:none;background:url(/art/horizon-rocks.png) repeat-x left bottom / calc(160px * var(--px)) auto, url(/art/horizon-scene.png) no-repeat right bottom / calc(320px * var(--px)) auto, url(/art/horizon-sky.png) repeat-x left bottom / calc(160px * var(--px)) auto;image-rendering:pixelated;position:absolute;inset:auto 0 0}.horizon:before,.horizon:after{content:"";width:calc(1px * var(--px));height:calc(1px * var(--px));animation:2.6s step-end infinite twinkle;position:absolute;top:0;left:0}.horizon:before{box-shadow:calc(14px * var(--px)) calc(11px * var(--px)) 0 0 var(--ink), calc(57px * var(--px)) calc(24px * var(--px)) 0 0 var(--ink), calc(103px * var(--px)) calc(7px * var(--px)) 0 0 var(--ink)}.horizon:after{box-shadow:calc(31px * var(--px)) calc(33px * var(--px)) 0 0 var(--peach-light), calc(124px * var(--px)) calc(19px * var(--px)) 0 0 var(--ink), calc(186px * var(--px)) calc(9px * var(--px)) 0 0 var(--peach-light);animation-delay:-1.3s}@keyframes twinkle{0%{opacity:1}50%{opacity:.25}}.sheet{min-width:0;min-height:0;padding:var(--space-5) var(--gutter) var(--space-4);gap:var(--space-4);flex-direction:column;flex:1;display:flex}.sheet>*{flex:none}.hold{overscroll-behavior:contain;gap:var(--space-4);flex-direction:column;flex:auto;min-height:0;display:flex;overflow:auto}.hold>*{flex:none;min-width:0}.sheet-head{align-items:center;gap:var(--space-3);width:100%;display:flex}.sheet-sprite{width:27px;height:27px;color:var(--peach)}.sheet-head h1{font-family:var(--pixel);font-size:var(--step-2);font-weight:600;line-height:1}.sheet-head .state{margin-left:auto}.sheet-action{align-self:flex-start}.sheet-lede{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-5);flex-wrap:wrap;display:flex}.lede{max-width:70ch;color:var(--ink-2);font-size:var(--step-1)}.legend{gap:var(--space-1) var(--space-4);color:var(--ink-3);font-size:var(--step--1);flex-wrap:wrap;display:flex}.legend div{align-items:center;gap:var(--space-2);display:inline-flex}.legend dd{margin:0}.panel{background:var(--hull);border:1px solid var(--rule)}.panel-head{align-items:center;gap:var(--space-3);min-height:var(--panel-head);padding:0 var(--inset);border-bottom:1px solid var(--rule);display:flex}.panel-head h2,.chart-head h2,.port-head h2{font-family:var(--sans);font-size:var(--step-1);font-weight:700;line-height:1.25}.hint{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink-3);font-size:var(--step--1);overflow:hidden}.failure,.readout{padding:var(--space-2) var(--space-3);border:1px solid var(--adrift);color:var(--adrift);font-size:var(--step-0);align-self:flex-start}.panel-foot{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.action{appearance:none;justify-content:center;align-items:center;gap:var(--space-2);height:var(--row);min-width:6.5rem;padding:0 var(--space-5);background:var(--peach);color:var(--space);font-family:var(--sans);font-size:var(--step-0);cursor:pointer;transition:background-color .15s var(--ease-out), transform 80ms steps(1, end);border:0;font-weight:700;display:inline-flex;box-shadow:inset 0 -3px #120f2e4d}.action:hover{background:var(--peach-light)}.action:active{box-shadow:none;transform:translateY(2px)}.action:disabled{cursor:default;background:var(--rule-strong);color:var(--ink-3);box-shadow:none}.action[aria-busy=true]{cursor:progress;background:var(--sailing);color:var(--space)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}.keys{flex:none;gap:3px;display:inline-flex}.keycap{min-width:1.25rem;height:1.25rem;padding:0 var(--space-1);border:1px solid var(--rule-strong);background:var(--hull-raised);color:var(--ink-2);font-family:var(--mono);font-size:var(--step--1);border-bottom-width:3px;place-items:center;font-weight:600;line-height:1;display:inline-grid}.action .keycap{color:var(--space);background:#120f2e1f;border-color:#120f2e59}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.stub-face[data-blip=a] .stub-sprite{animation:.6s step-end blip-a}.stub-face[data-blip=b] .stub-sprite{animation:.6s step-end blip-b}@keyframes blip-a{0%,66%{color:var(--docked)}33%{color:var(--ink)}}@keyframes blip-b{0%,66%{color:var(--docked)}33%{color:var(--ink)}}@keyframes arrive{0%{transform:translateY(48%)}}@keyframes sail-in{0%{transform:translate(-36px)}}.palette,.manual{color:var(--ink);background:0 0;border:0;max-width:calc(100vw - 2rem);max-height:calc(100dvh - 2rem);padding:0}.palette{width:40rem;margin-top:12vh}.palette::backdrop,.manual::backdrop{background:#120f2eb8}.palette-card{border:2px solid var(--peach);outline:2px solid var(--space);background:var(--hull)}.palette-field{border-bottom:1px solid var(--rule-strong);align-items:center;gap:.75rem;padding:0 1rem;display:flex}.palette-sprite{width:27px;height:27px;color:var(--peach)}.palette-field input{min-width:0;height:3.5rem;color:var(--ink);font-family:var(--sans);font-size:var(--step-1);background:0 0;border:0;outline:none;flex:1}.palette-field input::placeholder{color:var(--ink-3)}.palette-field:focus-within{background:var(--hull-raised)}.palette-list{max-height:min(24rem,60dvh);padding:var(--space-2) 0;overflow-y:auto}.palette-heading{padding:var(--space-2) var(--inset) var(--space-1);font-size:var(--step--1);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-weight:600}.palette-option{appearance:none;width:100%;font:inherit;text-align:left;align-items:center;gap:var(--space-3);height:var(--row);padding:0 var(--inset);color:var(--ink-2);cursor:pointer;background:0 0;border:0;grid-template-columns:18px minmax(0,1fr) auto auto;display:grid}.palette-option[data-active]{background:var(--hull-raised);color:var(--ink);outline:1px solid var(--peach);outline-offset:-1px}.palette-option[data-active] .palette-option-sprite{color:var(--peach)}.palette-option-sprite{color:var(--ink-3)}.palette-verb{font-size:var(--step-0);font-weight:700}.palette-detail{font-size:var(--step--1);color:var(--ink-3)}.palette-empty{color:var(--ink-2);padding:1rem}.palette-foot{gap:var(--space-5);padding:var(--space-2) var(--inset);border-top:1px solid var(--rule);font-size:var(--step--1);color:var(--ink-3);display:flex}.palette-foot span{align-items:center;gap:.375rem;display:inline-flex}.manual{width:44rem}.manual-card{--paper:#ffcfb2;--paper-ink:#2a1338;--paper-muted:#6b3550;padding:var(--space-5);outline:3px solid var(--paper);outline-offset:-9px;background:var(--paper);color:var(--paper-ink);border:3px solid #6e1f3c}.manual-plate{font-size:var(--step--1);letter-spacing:.06em;text-transform:uppercase;color:var(--paper-muted);font-weight:600}.manual-head h2{margin-top:var(--space-2);font-family:var(--pixel);font-size:var(--step-2)}.manual-note,.manual-small{color:var(--paper-muted);font-size:var(--step--1)}.manual-chapters{margin:var(--space-5) 0;padding-top:var(--space-5);background:linear-gradient(90deg,#6e1f3c 50%,#0000 50%) 0 0/6px 2px repeat-x;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;display:grid}.manual-chapter h3{font-size:var(--step-1);margin-bottom:var(--space-2);font-weight:700}.manual-line{align-items:center;gap:.625rem;padding:.25rem 0;display:flex}.manual-line dd{font-size:var(--step-0)}.manual-small{margin-top:.5rem}.manual .keycap{color:var(--paper-ink);background:#ffe6d4;border-color:#6e1f3c}.manual-foot{justify-content:flex-end;display:flex}.frame{height:100dvh;padding:0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr);display:grid;position:relative;overflow:hidden}.frame>.helm{grid-row:1}.frame>.deck,.frame>.gangway,.frame>.mooring{grid-row:2}.frame[data-arriving] .horizon{animation:.72s steps(6,end) both arrive}.frame[data-arriving] .wordmark-ship{animation:.72s steps(6,end) both sail-in}.deck{z-index:1;flex-direction:column;width:min(100%,78rem);min-height:0;margin:0 auto;display:flex;position:relative}.helm{z-index:5;padding:calc(var(--space-3) + env(safe-area-inset-top)) var(--space-4) 0;justify-content:center;display:flex;position:relative}.helm-bar{align-items:center;gap:var(--space-1);max-width:100%;padding:var(--space-1);border:2px solid var(--rule-strong);outline:2px solid var(--space);background:url(/art/strip.png) repeat-x left top / 320px 48px, var(--hull);image-rendering:pixelated;display:flex;box-shadow:0 10px 28px #06041473}.helm .wordmark{padding:0 var(--space-3) 0 var(--space-2)}.helm-rule{background:linear-gradient(var(--rule-strong) 50%, transparent 50%) 0 0 / 2px 4px;width:2px;height:1.5rem;margin:0 .25rem}.stub{display:block}.stub-face{align-items:center;gap:var(--space-2);height:var(--row);padding:0 var(--space-3);color:var(--ink-2);font-size:var(--step-0);transition:color .15s var(--ease-out), background-color .15s var(--ease-out);font-weight:700;display:flex}.stub-sprite{color:var(--ink-3)}.stub:hover .stub-face{color:var(--ink);background:var(--hull-raised)}.stub-face[data-current]{color:var(--ink);background:var(--hull-raised);box-shadow:inset 0 -2px 0 var(--peach)}.stub-face[data-current] .stub-sprite{color:var(--peach)}.stub-keys{opacity:.7}.stub:hover .stub-keys,.stub-face[data-current] .stub-keys{opacity:1}.tool{appearance:none;align-items:center;gap:var(--space-2);height:var(--row);padding:0 var(--space-3);color:var(--ink-2);font-family:var(--sans);font-size:var(--step-0);cursor:pointer;transition:color .15s var(--ease-out), background-color .15s var(--ease-out);background:0 0;border:0;font-weight:700;display:inline-flex}.tool:hover{color:var(--ink);background:var(--hull-raised)}.tool[aria-pressed=true]{color:var(--peach)}.toasts{inset:auto 0 calc(var(--space-4) + env(safe-area-inset-bottom));z-index:20;justify-items:center;gap:var(--space-2);padding:0 var(--space-4);pointer-events:none;display:grid;position:fixed}.toast{appearance:none;pointer-events:auto;align-items:center;gap:var(--space-3);max-width:min(100%,32rem);min-height:var(--row);padding:var(--space-2) var(--space-4);border:2px solid var(--rule-strong);outline:2px solid var(--space);background:var(--hull);color:var(--ink);font:inherit;text-align:left;cursor:pointer;animation:.24s steps(3,end) surface;display:flex;box-shadow:0 10px 28px #06041473}.toast[data-tone=adrift]{border-color:var(--adrift)}.toast[data-tone=sailing]{border-color:var(--sailing)}@keyframes surface{0%{opacity:0;transform:translateY(12px)}}.tool-crew .state:before{width:8px;height:8px}.crew-card{inset:calc(4.5rem + env(safe-area-inset-top)) auto auto 50%;width:min(100vw - 2rem,22rem);padding:var(--space-4);border:2px solid var(--rule-strong);outline:2px solid var(--space);background:var(--hull);color:var(--ink-2);margin:0;display:none;translate:-50%;box-shadow:0 10px 28px #06041473}.crew-card:popover-open{gap:var(--space-3);justify-items:start;display:grid}.crew-line{align-items:center;gap:var(--space-2) var(--space-3);font-size:var(--step-0);flex-wrap:wrap;display:flex}.link{appearance:none;color:var(--peach);font:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.gangway,.mooring{z-index:1;overscroll-behavior:contain;min-height:0;padding:calc(var(--space-6) + env(safe-area-inset-top)) var(--space-4) var(--space-6);place-items:center;display:grid;position:relative;overflow:auto}.mooring-line{font-size:var(--step-0);color:var(--ink-3)}.gangway-card{width:min(100%,28rem);padding:var(--space-6) var(--space-6) var(--space-5);border:2px solid var(--rule-strong);outline:2px solid var(--space);background:var(--hull);text-align:center;box-shadow:0 16px 40px #06041480}.gangway-plate{font-size:var(--step--1);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-weight:600}.gangway-title{align-items:center;gap:var(--space-4);margin:var(--space-3) 0 var(--space-2);font-family:var(--pixel);font-size:var(--step-display);color:var(--peach-light);text-shadow:3px 3px 0 var(--maroon);font-weight:700;line-height:1;display:inline-flex}.gangway-ship{width:72px;height:72px;color:var(--peach)}.gangway-lede{color:var(--ink-2);margin:0 auto var(--space-5);max-width:22rem}.gangway-refusal{margin:0 0 var(--space-4);padding:var(--space-2) var(--space-3);border:1px dashed var(--adrift);color:var(--adrift);font-size:var(--step-0);text-align:left}.gangway-board{width:100%;height:3rem}.gangway-note{margin-top:var(--space-3);color:var(--ink-3);font-size:var(--step--1)}.sheet-tools{gap:var(--space-2);margin-left:auto;display:flex}.chip{appearance:none;align-items:center;gap:var(--space-2);height:var(--row-head);padding:0 var(--space-3);border:1px solid var(--rule-strong);background:var(--hull);color:var(--ink);font-family:var(--sans);font-size:var(--step--1);cursor:pointer;font-weight:700;display:inline-flex}.chip:hover{border-color:var(--peach)}.chip-label{color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.notice{align-self:flex-start;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--rule-strong);background:var(--hull);color:var(--ink-2);font-size:var(--step--1);display:flex}.notice.gaps{gap:var(--space-1);display:grid}.notice.gaps li{align-items:center;gap:var(--space-1) var(--space-3);flex-wrap:wrap;display:flex}.form-keys{align-items:center;gap:var(--space-2);color:var(--ink-3);font-size:var(--step--1);display:flex}.mono,.numeric,code{font-family:var(--mono);font-variant-numeric:tabular-nums}.uncharted-body{gap:var(--space-3);padding:var(--inset);max-width:52rem;color:var(--ink-2);display:grid}.uncharted-gaps{gap:var(--space-2);font-size:var(--step--1);display:grid}.uncharted-gaps li{align-items:center;gap:var(--space-1) var(--space-3);flex-wrap:wrap;display:flex}.letter-range,.letter-ref{color:var(--ink-3);font-size:var(--step--1)}.plain{overscroll-behavior:contain;border:1px solid var(--rule);background:var(--hull);overflow:auto}.plain table,.cargo{border-collapse:collapse;width:100%;font-size:var(--step-0)}.plain table{table-layout:fixed}.plain th,.route-head{font-family:var(--sans);font-size:var(--step--1);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-weight:600}.plain th{z-index:1;height:var(--row-head);padding:0 0 0 var(--space-3);text-align:left;background:var(--hull);box-shadow:inset 0 -1px 0 var(--rule-strong);white-space:nowrap;position:sticky;top:0}.plain th:first-child,.plain td:first-child{padding-left:var(--inset)}.plain th:last-child,.plain td:last-child{padding-right:var(--inset)}.plain th[aria-sort]{color:var(--peach)}.plain th[aria-sort]:after{content:" ↓"}.plain td{height:var(--row);padding:0 0 0 var(--space-3);border-top:1px solid var(--rule);color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.plain tr:first-child td{border-top:0}.plain .plain-empty{color:var(--ink-3);font-family:var(--sans)}.hold>.course,.hold>.correspondence,.hold>.harbor,.hold>.plain,.hold>.logbook{min-height:calc(var(--panel-head) + var(--row) * 2);flex:0 auto}.course,.correspondence,.harbor{gap:var(--space-4);flex-direction:column;min-width:0;display:flex}.course>*,.correspondence>*,.harbor>*{flex:none}.routes,.letters,.ports{overscroll-behavior:contain;flex:0 auto;min-height:0;overflow:auto}.chart{padding:var(--inset);border:1px solid var(--rule);background:var(--hull)}.chart-head{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-4);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.chart-id{margin-right:var(--space-3);font-family:var(--mono);color:var(--peach)}.chart-bound,.route-bound{white-space:nowrap;font-size:var(--step--1);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);font-weight:600}[data-bound=production]{color:var(--peach)}[data-bound=alpha]{color:var(--sailing)}[data-bound=delta]{color:var(--slate)}.chart-legs{margin-bottom:var(--space-2);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.chart-legs span{grid-column:calc(var(--from) + 1) / span var(--span);padding-top:var(--space-2);text-align:center;font-size:var(--step--1);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);background:linear-gradient(var(--rule-strong), var(--rule-strong)) no-repeat center top / calc(100% - 1rem) 2px;font-weight:600}.chart-line{padding-top:2rem;position:relative;container-type:inline-size}.chart-ship{color:var(--peach-light);transform:translateX(calc(100cqw / var(--stations) * (var(--at) + .5) - 13px));transition:transform .36s steps(6,end);position:absolute;top:0;left:0}.chart-ship .sprite{width:27px;height:27px}.chart-ship[data-bearing=sailing]{animation:1.2s step-end infinite bob}.chart-ship[data-bearing=adrift]{color:var(--adrift)}.stations{background:linear-gradient(90deg, var(--rule-strong) 50%, transparent 50%) repeat-x 0 6px / 6px 2px;grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.station{align-items:center;gap:var(--space-2);cursor:help;flex-direction:column;min-width:0;display:flex}.station-node{border:2px solid var(--ink-3);background:var(--hull);width:14px;height:14px}.station[data-mark=docked] .station-node{border-color:var(--docked);background:var(--docked)}.station[data-mark=sailing] .station-node{border-color:var(--sailing);background:var(--sailing)}.station[data-mark=adrift] .station-node{border-color:var(--adrift);background:var(--adrift)}.station[data-here] .station-node{animation:1.4s step-end infinite glow}@keyframes glow{0%{box-shadow:0 0 0 3px #ffd16659}50%{box-shadow:0 0 0 6px #ffd16626}}.station-name{text-align:center;max-width:100%;font-size:var(--step--1);color:var(--ink-2)}.station[data-mark=ahead] .station-name{color:var(--ink-3)}.scrub{margin-top:var(--space-4);padding:var(--space-3);border:1px solid var(--rule);background:var(--space);position:relative}.scrub:focus-within{outline:2px solid var(--peach);outline-offset:2px}.scrub-range{inset:var(--space-3) var(--space-3) auto;width:calc(100% - var(--space-5));opacity:0;cursor:pointer;height:1.25rem;margin:0;position:absolute}.scrub-track{grid-template-columns:repeat(var(--count), minmax(0, 1fr));align-items:end;gap:3px;height:1.25rem;display:grid}.scrub-tick{appearance:none;background:var(--rule-strong);cursor:pointer;border:0;height:.75rem;padding:0}.scrub-tick[data-bearing=docked]{background:#79dcc673}.scrub-tick[data-bearing=adrift]{background:var(--adrift)}.scrub-tick[data-active]{background:var(--peach);height:1.25rem}.scrub-caption{align-items:center;gap:var(--space-3);margin-top:var(--space-2);color:var(--ink-2);font-size:var(--step-0);display:flex}.scrub-time{font-family:var(--mono);color:var(--ink)}.chart-foot{align-items:baseline;gap:var(--space-2) var(--space-4);margin-top:var(--space-3);color:var(--ink-3);font-size:var(--step--1);flex-wrap:wrap;display:flex}.chart-trouble{color:var(--adrift)}.scrub-keys{align-items:center;gap:var(--space-2);font-size:var(--step--1);color:var(--ink-3);margin-left:auto;display:inline-flex}.routes{border:1px solid var(--rule);background:var(--hull)}.routes li+li{border-top:1px solid var(--rule)}.route,.route-head{align-items:center;gap:var(--space-3);padding:0 var(--inset);grid-template-columns:4.5rem 6.5rem minmax(0,1fr) 6rem 4.5rem 8.5rem;display:grid}.route-head{z-index:1;height:var(--row-head);background:var(--hull);box-shadow:inset 0 -1px 0 var(--rule-strong);position:sticky;top:0}.route{appearance:none;width:100%;height:var(--row);color:var(--ink-2);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0}.route:hover{background:var(--hull-raised)}.route[aria-current=true]{background:var(--hull-raised);color:var(--ink);outline:1px solid var(--peach);outline-offset:-1px}.route:focus-visible{outline:2px solid var(--peach);outline-offset:-2px}.route-id,.route-time{font-family:var(--mono);font-variant-numeric:tabular-nums}.route-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.route-line{background:linear-gradient(var(--rule-strong), var(--rule-strong)) no-repeat center / 100% 2px;align-items:center;gap:3px;height:8px;display:flex}.route-stop{border:1px solid var(--ink-3);background:var(--hull);flex:1;height:8px}.route-stop[data-mark=docked]{border-color:var(--docked);background:var(--docked)}.route-stop[data-mark=sailing]{border-color:var(--sailing);background:var(--sailing)}.route-stop[data-mark=adrift]{border-color:var(--adrift);background:var(--adrift)}.route-at{justify-content:flex-end;align-items:center;gap:var(--space-2);white-space:nowrap;display:inline-flex}.route-at .state:before{margin:0}.stack-deck{gap:var(--space-4);grid-template-columns:minmax(0,1.5fr) minmax(16rem,1fr);align-items:stretch;display:grid}.stack{display:grid;position:relative}.stack[data-count="2"],.stack[data-count="3"]{padding:0 16px 16px 0}.stack:before,.stack:after{content:"";background:#c98f72;border:2px solid #4a1530;position:absolute;inset:16px 0 0 16px}.stack:after{background:#e9b493;inset:8px}.stack[data-count="1"]:before,.stack[data-count="1"]:after,.stack[data-count="0"]:before,.stack[data-count="0"]:after,.stack[data-count="2"]:before{display:none}.charter,.stack-empty{--paper:#ffcfb2;--paper-ink:#2a1338;--paper-muted:#6b3550;z-index:1;padding:var(--space-5);background:var(--paper);color:var(--paper-ink);border:2px solid #6e1f3c;position:relative}.stack-empty{align-content:start;gap:var(--space-2);display:grid}.stack-empty h2,.charter-head h2{font-size:var(--step-2);font-weight:700;line-height:1.25}.charter-plate{font-size:var(--step--1);letter-spacing:.06em;text-transform:uppercase;color:var(--paper-muted);font-weight:600}.charter-head h2{margin-top:var(--space-2)}.charter-head [data-bound]{color:#842640}.charter-terms{gap:var(--space-4);margin:var(--space-4) 0;padding:var(--space-3) 0;border-top:2px dashed #6e1f3c;border-bottom:2px dashed #6e1f3c;grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.charter-terms dt{font-size:var(--step--1);letter-spacing:.06em;text-transform:uppercase;color:var(--paper-muted);font-weight:600}.charter-terms dd{font-size:var(--step-1)}.charter-cargo{gap:.375rem;margin-bottom:1.25rem;padding-left:1rem;list-style:square;display:grid}.charter-foot{gap:var(--space-2);justify-items:start;display:grid}.seal{appearance:none;align-items:center;gap:var(--space-3);height:3rem;padding:0 var(--space-4) 0 var(--space-2);color:var(--paper-ink);font-family:var(--sans);font-size:var(--step-0);cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:none;background:#ffe6d4;border:2px solid #6e1f3c;font-weight:700;display:inline-flex;position:relative;overflow:hidden}.seal:after{content:"";transform-origin:0;background:#842640;height:4px;position:absolute;inset:auto 0 0;transform:scaleX(0)}.seal[data-pressing]:after{animation:.9s steps(6,end) forwards wax}@keyframes wax{to{transform:scaleX(1)}}.seal-wax{clip-path:polygon(30% 0,70% 0,100% 30%,100% 70%,70% 100%,30% 100%,0 70%,0 30%);background:#842640;width:32px;height:32px;box-shadow:inset -4px -4px #4a1530}.seal[data-pressing] .seal-wax{animation:.9s steps(3,end) stamp}@keyframes stamp{0%{transform:translateY(-6px)scale(1.25)}}.seal .keycap{color:var(--paper-ink);background:#ffcfb2;border-color:#6e1f3c}.charter-hint,.charter-own{max-width:60ch;color:var(--paper-ink);font-size:var(--step-0)}.signed{contain:size;flex-direction:column;min-height:0;display:flex}.signed-rows{overscroll-behavior:contain;flex:1;min-height:0;overflow:auto}.signed .form-keys{padding:var(--space-2) var(--inset);border-top:1px solid var(--rule)}.signed-row,.signed-empty{align-items:center;gap:var(--space-3);height:var(--row);padding:0 var(--inset);color:var(--ink-2);display:flex}.signed-row+.signed-row{border-top:1px solid var(--rule)}.signed-row{animation:.36s steps(3,end) moor}.signed-seal{background:#842640;width:12px;height:12px;box-shadow:inset -2px -2px #4a1530}.charter-reason{margin-bottom:var(--space-4);color:var(--paper-ink);font-size:var(--step-0)}.charter-withdraw{appearance:none;color:var(--paper-muted);font:inherit;font-size:var(--step-0);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.charter-terms dd[data-overdue]{color:#b0203f}.signed-row .signed-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.logbook{flex-direction:column;display:flex}.logbook-tools{gap:var(--space-2);margin-left:auto;display:flex}.logbook-rows{overscroll-behavior:contain;flex:1;min-height:0;overflow:auto}.logbook-row,.logbook-empty{gap:var(--space-3);min-height:var(--row);padding:0 var(--inset);color:var(--ink-2);grid-template-columns:10rem 10rem 9rem minmax(0,1fr);align-items:center;display:grid}.logbook-row+.logbook-row{border-top:1px solid var(--rule)}.logbook-empty{color:var(--ink-3);display:flex}.logbook-detail{text-overflow:ellipsis;white-space:nowrap;color:var(--ink-3);overflow:hidden}.terminal-code{margin:var(--space-4) 0;font-size:var(--step-2);letter-spacing:.2em;color:var(--peach)}.letters{border:1px solid var(--rule);background:var(--hull)}.letter+.letter{border-top:1px solid var(--rule)}.letter-fold{appearance:none;align-items:center;gap:var(--space-3);width:100%;height:var(--row);padding:0 var(--inset);color:var(--ink-2);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:14px 4.5rem minmax(0,1fr) auto;display:grid}.letter-fold:hover{background:var(--hull-raised)}.letter[data-open] .letter-fold{color:#2a1338;background:#ffcfb2}.letter-seal{background:#842640;width:12px;height:12px;box-shadow:inset -2px -2px #4a1530}.letter-headline{text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.letter-date{font-family:var(--mono)}.letter-body{grid-template-rows:0fr;transition:grid-template-rows .24s steps(4,end);display:grid}.letter[data-open] .letter-body{grid-template-rows:1fr}.letter-inner{column-gap:var(--space-6);padding:0 var(--inset) 0 calc(var(--inset) + 14px + var(--space-3));grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);display:grid;overflow:hidden}.letter[data-open] .letter-inner{padding-top:var(--space-4);padding-bottom:var(--space-4);background:linear-gradient(#ffcfb2,#ffcfb2) 0 0/100% 2px no-repeat}.letter-inner h3{margin-bottom:var(--space-2);font-size:var(--step--1);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);grid-area:1/1;font-weight:600}.letter-inner ul{gap:var(--space-2);padding-left:var(--space-4);color:var(--ink);grid-area:2/1;max-width:70ch;list-style:square;display:grid}.letter-inner .letter-aboard{grid-column:2}.letter-inner .cargo,.letter-none{grid-area:2/2;align-self:start}.letter-none{color:var(--ink-3)}.cargo th,.cargo td{height:var(--row-head);padding:0 var(--space-2) 0 0;text-align:left;font-family:var(--mono);color:var(--ink-2);font-weight:400}.cargo th{color:var(--ink)}.harbor-build{align-items:baseline;gap:var(--space-1) var(--space-3);color:var(--ink-2);font-size:var(--step-0);flex-wrap:wrap;display:flex}.harbor-by,.harbor-read{color:var(--ink-3);font-size:var(--step--1)}.harbor-build .mono{color:var(--docked)}.ports{align-content:start;gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(20rem,1fr));display:grid}.port{border:1px solid var(--rule);background:var(--hull);flex-direction:column;display:flex}.port[data-chosen]{outline:1px solid var(--peach);outline-offset:-1px}.port-head{align-items:center;gap:var(--space-3);min-height:var(--panel-head);padding:0 var(--inset);border-bottom:1px solid var(--rule);display:flex}.port-sprite{color:var(--peach)}.port-tally{font-size:var(--step--1);color:var(--ink-3);margin-left:auto}.berths{background:linear-gradient(#0000 calc(100% - 6px),#3a1d4c99 0) no-repeat;flex:1}.berth{align-items:center;gap:var(--space-3);height:var(--row);padding:0 var(--inset);color:var(--ink-2);grid-template-columns:22px minmax(0,1fr) auto 6.5rem;display:grid}.berth+.berth{border-top:1px solid var(--rule)}.berth-ship{color:var(--docked)}.berth[data-bearing=sailing] .berth-ship{color:var(--sailing);animation:1.2s step-end infinite bob}.berth[data-bearing=adrift] .berth-ship{color:var(--adrift);animation:2.4s step-end infinite drift}.berth[data-bearing=docked] .berth-ship{animation:.48s steps(4,end) moor}@keyframes moor{0%{transform:translate(-10px)}}.berth[data-bearing=docked] .berth-build{color:var(--docked)}.berth-seen{text-align:right;color:var(--ink-3);font-variant-numeric:tabular-nums}@media (width<=1100px){.stack-deck{grid-template-columns:minmax(0,1fr)}.signed{contain:none}.signed-rows{max-height:calc(var(--row) * 6)}.stub-keys{display:none}}@media (width<=900px){.helm .wordmark-name,.tool-label{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.tool-orders .keys{display:none}}@media (width<=720px){:root{--step-display:4rem}.hold>.course,.hold>.correspondence,.hold>.harbor,.hold>.plain,.hold>.logbook,.routes,.letters,.ports{flex:none;min-height:auto}.routes,.letters,.ports,.logbook-rows,.signed-rows{max-height:none;overflow:visible}.logbook-row{gap:var(--space-1) var(--space-4);padding:var(--space-2) var(--inset);grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.logbook .panel-head .hint,.signed .panel-head .hint{display:none}.horizon{--px:2}.helm{padding:calc(var(--space-2) + env(safe-area-inset-top)) var(--space-2) 0}.helm-bar{scrollbar-width:none;overflow-x:auto}.stub-label,.tool-label,.tool-manual,.helm .wordmark-name{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.helm-rule{margin:0}.sheet{padding:var(--space-4) var(--space-4) var(--space-3);gap:var(--space-3)}.sheet-head{flex-wrap:wrap}.sheet-tools{width:100%;margin-left:0}.route,.route-head{grid-template-columns:4.5rem minmax(0,1fr) 7rem}.route-bound,.route-title,.route-time{display:none}.charter-terms{grid-template-columns:minmax(0,1fr)}.letter-fold{height:auto;min-height:var(--row);padding:var(--space-3) var(--inset);grid-template-columns:14px minmax(0,1fr)}.letter-voyage,.letter-date{display:none}.letter-headline{white-space:normal}.letter-inner{padding-left:var(--inset);grid-template-columns:minmax(0,1fr)}.letter-inner h3,.letter-inner .cargo,.letter-none,.letter-inner ul{grid-area:auto}.letter-inner .letter-aboard{margin-top:var(--space-4);grid-column:auto}.stations{gap:var(--space-1)}.station-name{white-space:nowrap;max-width:none}.station:nth-child(2n) .station-name{padding-top:1lh}.scrub-caption{row-gap:var(--space-2);flex-wrap:wrap}.scrub-note{flex-basis:100%;order:1}.stub-face,.tool{padding:0 var(--space-2)}}@media (hover:none){.keys,.palette-foot,.form-keys,.scrub-keys{display:none}}
