:root{--bg:#0c1821;--panel:#11232e;--ink:#e5eae9;--muted:#7e969e;--gold:#e1bd78;--line:#29404a;--green:#6dd2b4;--serif:'Libre Caslon Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 60% 0,#142d37 0,transparent 65%),var(--bg);color:var(--ink);font-family:var(--sans);font-size:13px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:4px}a{color:inherit;text-decoration:none}button{border:0}button[hidden],[hidden]{display:none!important}.site-header{height:76px;border-bottom:1px solid #273942;display:flex;align-items:center;padding:0 36px;gap:60px}.brand{display:flex;gap:10px;align-items:center;font-size:24px;letter-spacing:-1px;font-weight:600}.brand small{display:block;font-size:8px;letter-spacing:2px;color:#95aaa9;margin-top:0}.brand-mark{color:var(--gold);font-size:41px;font-family:Georgia;line-height:1}.alpha{font:600 8px var(--sans);letter-spacing:1px;padding:4px 6px;border:1px solid #71603d;border-radius:4px;color:var(--gold);margin:0 0 17px 4px}.site-header nav{display:flex;align-items:center;gap:30px;height:100%;font-size:13px}.site-header nav>a{color:#90a2a7}.site-header nav>a span{font-size:10px;margin-left:8px}.nav-active{display:flex;align-items:center;gap:10px;border-bottom:2px solid var(--gold);height:100%;color:var(--gold)}.nav-active svg{width:19px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5}.header-end{display:flex;align-items:center;gap:22px;margin-left:auto}.chain{font-size:12px}.eth{color:#a6b9ef;font-size:20px;vertical-align:middle;margin-right:5px}.preview-tag{font-size:9px;letter-spacing:1.4px;color:#7e949d;border-left:1px solid var(--line);padding-left:22px}main{max-width:2000px;margin:auto;padding:32px 36px 18px}.heading-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px;gap:20px}.eyebrow{font-size:9px;font-weight:600;letter-spacing:2.4px;color:var(--gold);display:flex;align-items:center;gap:10px}.mini-line{width:24px;height:1px;background:var(--gold)}h1{font:46px/1.1 var(--serif);letter-spacing:-.6px;margin:12px 0 10px}h1 em{font-weight:400;color:var(--gold)}.heading-row p{color:#8fa4ab;margin:0;font-size:12px}.heading-actions{display:flex;gap:12px}.quiet-button,.primary-button{padding:12px 16px;border-radius:6px;display:inline-flex;gap:10px;align-items:center;font-weight:500;font-size:12px;white-space:nowrap}.quiet-button{background:#172b35;border:1px solid #30434b}.quiet-button span{color:var(--gold);font-size:17px}.primary-button{background:var(--gold);color:#172731;box-shadow:0 2px 10px #0002}.primary-button:hover{background:#f3d499}.primary-button span{font-size:17px}.stats-bar{display:flex;border:1px solid var(--line);border-radius:9px;margin-bottom:20px;background:#11232caa;min-height:83px}.stat{flex:1;display:flex;gap:15px;align-items:center;padding:15px 25px;position:relative}.stat+.stat:before{content:'';position:absolute;left:0;height:32px;width:1px;background:var(--line)}.stat-label{font-size:9px;color:#9bafb4;letter-spacing:1.3px;display:block;margin-bottom:8px}.stat-label small{font-size:7px;letter-spacing:.6px;color:#617d87;margin-left:6px}.stat strong{display:block;font-size:24px;font-weight:500;letter-spacing:-.7px;font-variant-numeric:tabular-nums}.stat-icon{font-size:27px;color:var(--gold);opacity:.8}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;flex-shrink:0}.green{background:var(--green);box-shadow:0 0 10px #6dd2b422}.amber{background:var(--gold)}.session-stat{justify-content:space-between;flex:1.35}.session-stat strong{color:var(--green)}.connection{display:flex;gap:5px;align-items:center;font-size:9px;color:#9aacaa;white-space:nowrap}.connection i{width:5px;height:5px;border-radius:50%;background:var(--gold)}.connection.live i{background:var(--green)}.plaza{border:1px solid #35505a;border-radius:10px;overflow:hidden;box-shadow:0 20px 60px #0002;background:#102b39}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;min-height:58px;padding:10px 18px;background:#122731;border-bottom:1px solid #35505a}.filter-group,.display-controls{display:flex;align-items:center;gap:13px}.toolbar-label{font-size:8px;letter-spacing:1.3px;color:#8ca4aa;white-space:nowrap}.segmented{display:flex;gap:3px;background:#0b1c26;padding:3px;border:1px solid #243d47;border-radius:6px}.segmented button{padding:6px 11px;border-radius:4px;background:transparent;color:#8a9fa7;font-size:10px;white-space:nowrap}.segmented button.active{background:#b99b5b2b;color:#eed29a;box-shadow:inset 0 0 0 1px #baa06944}.toggle{display:flex;align-items:center;gap:5px;padding:4px 0;background:none;color:#667f89;font-size:10px;white-space:nowrap}.toggle:before{content:'';width:10px;height:10px;border:1px solid #56717b;border-radius:2px}.toggle.active{color:#b9c8ca}.toggle.active:before{content:'✓';font-size:9px;line-height:9px;text-align:center;background:#cfb276;border-color:#cfb276;color:#142934}.toolbar-divider{height:18px;width:1px;background:#36505a}.icon-button{background:none;color:#a3b7bd;font-size:16px;width:24px}.ocean-viewport{position:relative;height:clamp(590px,calc(100vh - 395px),880px);min-height:590px;overflow:auto;scrollbar-width:thin;scrollbar-color:#456978 #112b39;isolation:isolate}.ocean-world{position:relative;width:100%;min-width:960px;height:100%;min-height:590px;overflow:hidden;background:radial-gradient(ellipse at 50% 45%,#235b6b 0,#174250 45%,#123343 90%)}#water,#effects{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}#effects{z-index:16}.coast{position:absolute;left:0;width:100%;height:98px;pointer-events:none;z-index:1}.coast-top{top:0}.coast-bottom{bottom:0}.harbour-label{position:absolute;z-index:2;left:50%;transform:translateX(-50%);color:#c0c6a7;font-size:8px;font-weight:600;letter-spacing:2px;background:#183d42bb;border:1px solid #66837655;border-radius:4px;padding:5px 10px;white-space:nowrap;pointer-events:none}.harbour-label span{font-size:11px;margin-right:4px}.harbour-label small{font-size:7px;font-weight:400;color:#829d94;letter-spacing:1px;margin-left:10px}.north{top:6px}.south{bottom:6px}.sea-lettering{position:absolute;left:50%;top:47%;transform:translate(-50%,-50%) rotate(-7deg);text-align:center;pointer-events:none;opacity:.12;white-space:nowrap;color:#c6decd}.sea-lettering span{font-size:9px;letter-spacing:5px}.sea-lettering b{display:block;font:44px var(--serif);letter-spacing:6px;margin:9px 0}.sea-lettering i{font:15px var(--serif);letter-spacing:2px}.compass{position:absolute;bottom:105px;left:25px;width:84px;opacity:.26;pointer-events:none;color:#d4cfab;text-align:center;font:9px Georgia;z-index:1}.compass svg{fill:none;stroke:currentColor;stroke-width:.8;display:block}.compass-fill{fill:currentColor;stroke:none}.king-card{position:absolute;top:116px;left:20px;display:flex;align-items:center;gap:12px;background:linear-gradient(115deg,#142e36f5,#183944ed);border:1px solid #8d7c495c;border-radius:7px;padding:13px 15px;color:var(--gold);text-align:left;box-shadow:0 6px 18px #0002;z-index:5;max-width:240px}.king-emblem{font-size:32px}.king-card small{font-size:7px;letter-spacing:1.5px;display:block;margin-bottom:5px}.king-card strong{font-size:14px;display:block;font-weight:500;color:#e4dfc7;margin-bottom:4px}.king-card span span{font-size:10px;color:#9cafac}.card-arrow{align-self:flex-start;margin-left:8px;font-size:13px}.ships{position:absolute;inset:0;z-index:3}.ship{position:absolute;border:0;outline:none;background:none;padding:0;touch-action:none;user-select:none;will-change:transform;cursor:grab;-webkit-user-select:none;overflow:visible}.ship:active{cursor:grabbing}.ship-art{width:100%;height:100%;overflow:visible;display:block;filter:drop-shadow(0 5px 2px #061e2c55);animation:bob 5s ease-in-out infinite;animation-delay:var(--phase)}body:not(.marine) .ship:hover,.ship:focus-visible{z-index:12!important}body:not(.marine) .ship:hover .ship-art,body:not(.marine) .ship:focus-visible .ship-art{filter:drop-shadow(0 0 7px #d4e5c999)}.ship:focus-visible{outline:1px dashed #e6c886;outline-offset:2px;border-radius:50%}.ship-label{position:absolute;bottom:7%;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:4px;white-space:nowrap;background:#102e3dcc;border:1px solid #7eb1be25;border-radius:3px;padding:2px 4px;font-size:9px;line-height:1.15;font-weight:600;letter-spacing:.4px;pointer-events:none}.ship-label .position-id{font-size:7px;color:#8ca7af;font-weight:400}.ship-principal{position:absolute;bottom:-8%;left:50%;transform:translateX(-50%);font-size:9px;color:#e6d4a7;text-shadow:0 1px 4px #00131c;white-space:nowrap;pointer-events:none;font-variant-numeric:tabular-nums}.king .ship-principal{font-size:11px;font-weight:600;color:#ffe0a0}.king .ship-label{background:#51482de8;border-color:#cfac70;color:#ffe2a1}.ship.docked .ship-art{opacity:.85;animation-duration:8s}.ship.dragging{z-index:20!important}.ship.dragging .ship-art{animation:none;filter:drop-shadow(0 12px 10px #0008)}.ship.duel-selected:after,.ship.target:after{content:'';position:absolute;inset:10%;border:2px dashed #f3c66e;border-radius:50%;box-shadow:0 0 20px #edb34d44;pointer-events:none}.ship.in-battle .ship-art{animation:battle-shake .23s infinite}.ship.in-battle{z-index:15!important}.ship.loser .ship-art{filter:grayscale(.55) drop-shadow(0 5px 3px #0005)}.ship.winner .ship-art{filter:drop-shadow(0 0 12px #f3c66e)}.hide-names .ship-label,.hide-apr .apr-pennant,.hide-treasure .treasure,.hide-age .age-badge{display:none}.paused .ship-art{animation-play-state:paused}.ocean-footer{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 16px;background:#112832;color:#91aab1;border-top:1px solid #35505a;font-size:10px}.ocean-footer strong{font-weight:400;color:#c3cecc}.tiny-swords{color:#d8bc83;font-size:15px;margin-right:7px}.footer-right{display:flex;align-items:center;gap:10px;font-size:9px}.footer-right button{background:none;color:#a9bdc1;font-size:17px;padding:0 3px}.below-ocean{display:flex;justify-content:space-between;align-items:center;margin-top:15px;gap:15px}.fleet-key{display:flex;gap:25px;color:#829ba4;font-size:9px;flex-wrap:wrap}.fleet-key>span{display:flex;gap:7px;align-items:center}.gold{color:var(--gold)}.log-toggle{display:flex;gap:10px;align-items:center;background:none;color:#b7c7c9;font-size:10px}.log-toggle #eventCount{font-size:9px;padding:3px 6px;background:#1d3741;border-radius:3px;color:var(--gold)}.source-note{font-size:9px;color:#607b86;line-height:1.6;margin:13px 0 0}.hover-card{position:fixed;z-index:40;pointer-events:none;background:#102530f5;border:1px solid #55727a;border-radius:7px;padding:13px 15px;min-width:185px;box-shadow:0 10px 30px #0005;font-size:10px}.hover-card h3{font-size:13px;margin:0 0 8px;color:#e6d4aa}.hover-card dl{display:grid;grid-template-columns:1fr auto;gap:6px 22px;margin:0}.hover-card dt{color:#91a7ad}.hover-card dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}.hover-card p{margin:10px 0 0;font-size:9px;color:#718b95}.battle-result{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);z-index:30;min-width:320px;text-align:center;background:linear-gradient(135deg,#142932f5,#233e45f5);border:1px solid #d4b270;border-radius:10px;padding:23px 28px;box-shadow:0 15px 80px #00121bcc;pointer-events:none;animation:reveal .3s ease-out}.battle-result .eyebrow{justify-content:center;font-size:8px}.battle-result h2{font:32px var(--serif);color:#f2d79d;margin:10px 0 12px}.battle-result .scoreboard{display:flex;align-items:center;justify-content:center;gap:20px}.scoreboard strong{font-size:24px;font-weight:500;display:block;color:#d6e5e1}.scoreboard .winning strong{color:#a5e5c4}.scoreboard small{font-size:9px;color:#a0b6b8}.scoreboard .vs{color:#627f8b;font:italic 17px var(--serif)}.battle-result p{font-size:9px;color:#8ea7ac;margin:15px 0 0}.duel-hint{position:absolute;top:95px;left:50%;transform:translateX(-50%);z-index:21;border:1px solid #c6a46a;background:#233841;padding:10px 15px;border-radius:5px;color:#ead4a5;font-size:11px;white-space:nowrap;box-shadow:0 3px 20px #0004}.duel-hint button{background:none;color:inherit;font-size:20px;margin-left:18px;vertical-align:middle}.drawer{position:fixed;right:0;top:0;height:100dvh;width:380px;max-width:100vw;z-index:60;background:linear-gradient(140deg,#152c36,#0d1d28);border-left:1px solid #557079;box-shadow:-20px 0 80px #0006;padding:28px;overflow:auto;animation:drawer-in .25s ease-out}.drawer-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.drawer h2{font:38px var(--serif);margin:18px 0 5px}.close-drawer,.drawer-top button{font-size:25px;color:#a8b8b9;background:none}.drawer .muted{font-size:11px;color:#839da7;line-height:1.6}.captain-ship{height:170px;background:radial-gradient(ellipse,#28576a66,transparent 65%);margin:5px 0 0;display:flex;justify-content:center;position:relative}.captain-ship svg{width:170px;height:170px;filter:drop-shadow(0 5px 8px #0003)}.captain-status{font-size:10px;color:var(--green);display:flex;align-items:center;gap:6px}.captain-status.is-docked{color:var(--gold)}.captain-metrics{display:grid;grid-template-columns:1fr 1fr;gap:20px 10px;padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:18px}.captain-metrics dt{color:#91a7af;font-size:10px;margin-bottom:7px}.captain-metrics dd{font-size:22px;margin:0;letter-spacing:-.5px}.captain-metrics dd small{display:block;font-size:9px;color:#66838e;letter-spacing:0;margin-top:4px}.range-box{margin:24px 0}.range-box h3{font-size:11px;font-weight:500;margin:0 0 14px}.range-track{height:6px;background:#29434f;border-radius:5px;position:relative;margin:20px 8px 12px}.range-active{position:absolute;left:15%;right:15%;height:100%;background:#58a995;border-radius:4px}.range-marker{position:absolute;top:-4px;width:4px;height:14px;background:var(--gold);box-shadow:0 0 0 2px #132a35}.range-labels{display:flex;justify-content:space-between;font-size:10px;color:#b3c3c4}.range-current{font-size:10px;color:#889fa7;margin-top:10px}.captain-details{display:grid;grid-template-columns:1fr auto;gap:12px;font-size:11px;border-top:1px solid var(--line);padding-top:18px}.captain-details dt{color:#849da7}.captain-details dd{margin:0;color:#c3d0d1}.captain-details a{color:var(--gold)}.drawer-actions{display:flex;flex-direction:column;gap:10px;margin-top:25px}.drawer-actions .primary-button,.drawer-actions .quiet-button{justify-content:center}.drawer-footnote{font-size:9px;color:#708b95;line-height:1.7;margin-top:22px}.activity-item{padding:15px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr auto;gap:5px;font-size:11px}.activity-item strong{color:var(--green);font-weight:500}.activity-item small{font-size:9px;color:#7d97a1}.ledger-empty{padding:45px 0;text-align:center;font:24px var(--serif);color:#b0c3c8}.ledger-empty span{font:11px var(--sans);line-height:3;color:#76939e}dialog{color:var(--ink);background:linear-gradient(135deg,#182f38,#101f2a);border:1px solid #4c6268;border-radius:12px;width:780px;max-width:calc(100vw - 32px);padding:30px;max-height:90dvh;box-shadow:0 30px 100px #0008}dialog::backdrop{background:#00111acc;backdrop-filter:blur(5px)}.dialog-heading{display:flex;justify-content:space-between;align-items:flex-start}.dialog-heading h2{font:38px var(--serif);margin:12px 0 25px}.dialog-heading button{background:none;color:#a6b8ba;font-size:25px}.rules-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px 30px}.rules-grid article>span{color:#b89c65;font-size:9px;letter-spacing:2px}.rules-grid h3{font:23px var(--serif);margin:8px 0}.rules-grid p{font-size:11px;line-height:1.8;color:#91a8af;margin:0}.rules-note{margin-top:25px;padding-top:18px;border-top:1px solid var(--line);color:#77929c;font-size:10px;line-height:1.8}.toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);z-index:90;padding:13px 20px;border:1px solid #7e7355;background:#263b42;color:#ead4a5;font-size:12px;border-radius:6px;max-width:90vw;box-shadow:0 5px 25px #0007}.empty-state{position:absolute;inset:35% 0 auto;text-align:center;z-index:10}.empty-state>span{font-size:32px;color:var(--gold)}.empty-state h2{font:32px var(--serif);margin:10px}.empty-state p{color:#8ca9b4}.empty-state button{margin:auto}.plaza:fullscreen{display:flex;flex-direction:column}.plaza:fullscreen .ocean-viewport{height:auto;flex:1}.plaza:fullscreen .toolbar{min-height:65px}@keyframes bob{0%,100%{transform:translateY(-2px) rotate(-1.5deg)}50%{transform:translateY(2px) rotate(1.5deg)}}@keyframes battle-shake{0%,100%{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}@keyframes reveal{from{opacity:0;transform:translate(-50%,-50%) scale(.9)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes drawer-in{from{transform:translateX(100%)}to{transform:translateX(0)}}@media(min-width:1700px){.ocean-viewport{min-height:700px}h1{font-size:52px}.heading-row{margin-bottom:32px}}@media(max-width:1200px){.site-header{padding:0 22px;gap:35px}main{padding:25px 22px 15px}.stat{padding:15px;gap:10px}.stat-label small{display:none}.toolbar{flex-wrap:wrap}.display-controls{margin-left:auto}.stat-icon{display:none}.stat strong{font-size:22px}.heading-actions{gap:8px}h1{font-size:41px}.preview-tag{display:none}.fleet-key{gap:15px}}@media(max-width:750px){.site-header{height:65px;padding:0 16px;gap:22px}.brand{font-size:21px}.brand-mark{font-size:32px}.site-header nav>a{display:none}.site-header nav{font-size:11px}.header-end{gap:0}.chain{font-size:10px}.alpha{display:none}main{padding:22px 12px 16px}.heading-row{display:block;margin-bottom:22px}.heading-row .eyebrow{font-size:8px}h1{font-size:38px}.heading-row p{font-size:11px}.heading-actions{margin-top:20px}.quiet-button,.primary-button{font-size:11px;padding:10px 13px}.stats-bar{flex-wrap:wrap}.stat{flex:1 0 45%;padding:13px 16px;min-height:71px}.stat:nth-child(3):before{display:none}.stat:nth-child(n+3){border-top:1px solid var(--line)}.stat.session-stat{flex:1 0 100%}.stat.session-stat:before{display:none}.stat-label{font-size:8px;margin-bottom:6px}.stat strong{font-size:21px}.toolbar{padding:10px;gap:12px}.filter-group{gap:9px}.segmented button{padding:6px 8px}.display-controls{margin-left:0;gap:12px}.toolbar-label{font-size:7px}.toggle{font-size:9px}.ocean-viewport{min-height:590px;height:65vh}.ocean-footer{font-size:9px;align-items:flex-start;line-height:1.5}.ocean-footer>span:first-child{max-width:190px}.footer-right{font-size:8px;gap:6px}.below-ocean{align-items:flex-start}.fleet-key{gap:12px;font-size:8px;max-width:240px}.log-toggle{font-size:9px}.source-note{font-size:8px}.king-card{left:12px;top:108px;transform:scale(.85);transform-origin:top left}.rules-grid{grid-template-columns:1fr;gap:20px}dialog{padding:24px}.duel-hint{font-size:10px;white-space:normal;width:300px;top:110px}.harbour-label{font-size:7px}.harbour-label small{font-size:6px}.drawer{width:350px;padding:23px}}@media(prefers-reduced-motion:reduce){.ship-art,.ship.in-battle .ship-art{animation:none!important}*{scroll-behavior:auto!important}}

.battle-dismiss{position:absolute;top:7px;right:10px;background:none;color:#b0c4c4;font-size:22px;pointer-events:auto}

/* The title follows the reigning ship, independent of optional data labels. */
.king-aura{position:absolute;left:50%;top:68%;width:145%;height:62%;transform:translate(-50%,-50%);border:2px solid #f3cf7a;border-radius:50%;background:radial-gradient(ellipse,#f2c76124,transparent 70%);box-shadow:0 0 18px #efc55c44,inset 0 0 16px #efc55c33;pointer-events:none;animation:royal-tide 3.4s ease-in-out infinite}
.king-aura:after{content:'';position:absolute;inset:-9px;border:1px dashed #f4d89788;border-radius:50%;animation:royal-tide 3.4s ease-in-out infinite reverse}
.king-banner{position:absolute;left:50%;top:-27px;transform:translateX(-50%);padding:5px 10px 5px 8px;border:1px solid #ffe1a0;border-radius:4px;background:linear-gradient(120deg,#e8b85b,#ffdda0);color:#302918;font-size:10px;font-weight:700;letter-spacing:1.1px;white-space:nowrap;line-height:1.2;box-shadow:0 3px 14px #03192299,0 0 20px #f3ce7b33;pointer-events:none}
.king-banner span{font-size:16px;vertical-align:-1px;margin-right:4px}
.king-banner:after{content:'';position:absolute;left:calc(50% - 4px);bottom:-5px;width:8px;height:8px;transform:rotate(45deg);background:#f5ce84;border-right:1px solid #ffe1a0;border-bottom:1px solid #ffe1a0}
.king .ship-art{filter:drop-shadow(0 0 5px #ffdb8d88) drop-shadow(0 5px 3px #061e2c99)}
.ship.king{z-index:60!important}
body:not(.marine) .ship:hover,.ship:focus-visible{z-index:80!important}
.ship.in-battle,.ship.winner,.ship.loser{z-index:90!important}
.ship.dragging{z-index:100!important}
.paused .king-aura,.paused .king-aura:after{animation-play-state:paused}
@keyframes royal-tide{0%,100%{opacity:.75;scale:.96}50%{opacity:1;scale:1.06}}
@media(prefers-reduced-motion:reduce){.king-aura,.king-aura:after{animation:none!important}}

/* Connected marinas reserve their own water, leaving a clear sailing channel. */
.ocean-viewport{min-height:var(--marina-height,700px)}
#marinas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}
.harbour-label{border:0;background:#173d43ed;padding:4px 12px;letter-spacing:1.7px;box-shadow:0 1px 8px #061e2633}
.harbour-label b{font-size:7px;letter-spacing:1px;font-weight:500;margin-left:12px;padding-left:12px;border-left:1px solid #7e9f8e66;color:#e4cf9e}
.harbour-label.north{top:5px}.harbour-label.south{bottom:5px}
.king-card{top:calc(var(--north-depth,160px) + 18px)}
.ship.docked .ship-art{opacity:1;animation:moored-rock 7s ease-in-out infinite;animation-delay:var(--phase)}
.ship.docked .ship-label{border-color:#b9a67c55;background:#17383ced;color:#e1d5b7}
.ship.docked .ship-label:before{content:'⚓';font-size:8px;color:#c9ad74}
.ship.docked.dragging .ship-art{animation:none}
.ship.docked.in-battle .ship-art{animation:battle-shake .23s infinite}
.paused .ship.docked .ship-art{animation-play-state:paused}
@keyframes moored-rock{0%,100%{transform:translateY(-.6px) rotate(-.5deg)}50%{transform:translateY(.6px) rotate(.5deg)}}
@media(max-width:750px){.king-card{top:calc(var(--north-depth,160px) + 18px)}.harbour-label{letter-spacing:1px}.harbour-label b{font-size:6px}}

#battleFrames{position:absolute;inset:0;z-index:20;pointer-events:none}.battle-arena{filter:drop-shadow(0 0 4px #ff343466)}.battle-ring{transform-origin:center;animation:battle-orbit 24s linear infinite}@keyframes battle-orbit{to{transform:rotate(360deg)}}.paused .battle-ring{animation-play-state:paused}@media(prefers-reduced-motion:reduce){.battle-ring{animation:none}}
.ship.dueling .ship-label{border-color:#ff6c66;background:#491f27;color:#ffe7df}
#feeEffects{position:absolute;inset:0;z-index:18;pointer-events:none}
.fee-pop{position:absolute;transform:translate(-50%,-100%);white-space:nowrap;pointer-events:none;filter:drop-shadow(0 3px 5px #03212caa)}
.fee-amount{display:flex;align-items:center;gap:5px;padding:6px 9px;background:#0c3036f5;border:1px solid #80dfb6;border-radius:7px;box-shadow:0 0 13px #69deb233;color:#afffcf}
.fee-amount b{font-size:15px;font-variant-numeric:tabular-nums;letter-spacing:.2px}.fee-amount small{font-size:7px;letter-spacing:.8px;color:#9ac3b6}
.fee-coins{display:flex;justify-content:center;align-items:center;gap:9px;height:23px;color:#ffda78;font-size:17px}
.fee-coins i{font-style:normal;text-shadow:0 0 7px #ffe5a2;animation:coin-sparkle .8s ease-in-out 2}
.fee-coins i:nth-child(2){font-size:14px;color:#eebb4d;-webkit-text-stroke:1px #ffe8aa;animation-delay:.15s}.fee-coins i:last-child{animation-delay:.3s}
.fee-status{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;padding:12px 2px 0;color:#859fa8;font-size:10px}
#feeFeedState{color:#d4bc85}#feeFeedState:before{content:'●';font-size:7px;margin-right:6px}#feeFeedState.is-live{color:#83d7ba}
#feeFeedChecked{font-size:9px;color:#698995}#lastFee{margin-left:auto;color:#b5c9c5;font-size:10px}
@keyframes coin-sparkle{0%,100%{transform:translateY(0) scale(.8);opacity:.5}45%{transform:translateY(-7px) scale(1.2);opacity:1}}
@media(max-width:750px){#lastFee{margin-left:0;width:100%;line-height:1.5}.fee-status{font-size:9px}}
@media(prefers-reduced-motion:reduce){.fee-coins i{animation:none}}

.heading-row h1{max-width:850px;font-size:clamp(32px,3vw,50px)}.heading-row>div:first-child{min-width:0}.ship[data-motion="docking"] .ship-label:before{content:'↗';color:#e1bd78}.ship[data-motion="departing"] .ship-label:before{content:'↗';color:#6dd2b4}

.ship.docked .ship-label{bottom:-8%;font-size:8px;padding:1px 3px}.ship.docked .ship-principal{bottom:-24%}.ship.docked .king-banner{top:-18px;font-size:8px}.ship.docked .king-aura{width:70%;height:105%;top:50%}

/* Tight berths use narrow hit areas and compact, upright two-line labels. */
.ship.docked .ship-art{position:absolute;left:50%;top:0;width:var(--dock-size);height:var(--dock-size);margin-left:calc(var(--dock-size) / -2)}
.ship.docked .ship-label{bottom:-15px;flex-direction:column;gap:0;font-size:7px;line-height:1.05;padding:1px 2px;letter-spacing:0;min-width:24px}
.ship.docked .ship-label:before{display:none}.ship.docked .ship-label .position-id{font-size:6px}
.ship.docked .ship-principal{display:none}body:not(.marine) .ship.docked:hover .ship-principal,.ship.docked:focus-visible .ship-principal{display:block;bottom:-29px}
.ship.docked .king-banner{font-size:0;top:-19px;padding:1px 3px}.ship.docked .king-banner span{font-size:14px}.ship.docked .king-aura{width:130%}

.replay-fees{margin:8px 0 16px;padding:8px 12px;border:1px solid #6d949b;background:transparent;color:inherit;border-radius:6px}.activity-item a{text-decoration:underline}

.drawer .position-title{display:flex;align-items:baseline;gap:10px;margin:12px 0 10px;min-width:0}.drawer .position-title h2{flex:none;white-space:nowrap;margin:0}.drawer .position-title p{flex:1;min-width:0;margin:0;font-size:11px;line-height:1.4;overflow-wrap:anywhere}
