@charset "UTF-8";
:root{--ink:#132c34;--deep:#10262d;--panel:#1b353d;--panel2:#203e46;--chart:#294b53;--text:#e2e9e1;--muted:#9cb2b6;--line:rgba(173,202,197,.15);--gold:#dab77a;--rust:#bb7556;--mint:#9fcbbb;--red:#e3937b;--font:system-ui,-apple-system,"Microsoft YaHei","PingFang SC",sans-serif;--display:"STZhongsong","Songti SC","SimSun",serif;--data:"Bahnschrift","DIN Alternate",monospace;--radius:12px}
*{box-sizing:border-box}html{background:var(--deep);scroll-behavior:smooth}body{margin:0;color:var(--text);font-family:var(--font);font-size:14px;line-height:1.65;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.4}button,a,input{outline-offset:5px}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--gold)}button{color:inherit}h1,h2,h3,h4,p{margin:0}button svg{flex-shrink:0}svg{vertical-align:middle}.icon{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.skip-link{position:fixed;z-index:1000;left:20px;top:-80px;padding:10px 16px;background:var(--gold);color:var(--ink)}.skip-link:focus{top:10px}
.shell{max-width:1920px;margin:auto;display:grid;grid-template-columns:202px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;border-right:1px solid var(--line);background:#112a32;padding:32px 20px 20px;display:flex;flex-direction:column;z-index:10}.brand{display:flex;align-items:center;gap:11px;margin:0 0 40px 8px}.brand img{width:41px;height:41px}.brand strong{font-family:var(--display);font-size:23px;font-weight:500;letter-spacing:3px;display:block;line-height:1.2}.brand small{font-family:var(--data);font-size:9px;letter-spacing:4px;color:var(--muted);display:block;margin-top:7px}.nav{display:grid;gap:8px}.nav button{display:flex;align-items:center;gap:13px;border:0;background:transparent;border-radius:8px;padding:12px 14px;color:var(--muted);text-align:left;transition:background .2s,color .2s;position:relative}.nav button:hover{color:var(--text);background:rgba(255,255,255,.035)}.nav button.active{background:#25474e;color:var(--gold)}.nav button.active:before{content:"";position:absolute;left:-20px;width:3px;height:20px;border-radius:0 3px 3px 0;background:var(--gold)}.nav .count{margin-left:auto;min-width:19px;height:19px;font-size:10px;border-radius:5px;background:rgba(218,183,122,.15);text-align:center;line-height:19px;color:var(--gold)}.side-ship{margin-top:auto;padding:24px 4px 14px}.side-ship .eyebrow{font-size:10px}.side-ship h3{font-size:16px;font-weight:500;margin:4px 0 12px;display:flex;justify-content:space-between}.side-ship h3 span{font-family:var(--data);font-size:12px;color:var(--muted)}.ship-state{margin-top:7px;display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}.save-tools{border-top:1px solid var(--line);padding:16px 0 0;display:flex;justify-content:space-around}.save-tools button{border:0;background:none;font-size:11px;color:var(--muted);padding:3px}.save-note{font-size:10px;color:#79969a;margin-top:8px;text-align:center}.content{min-width:0}.topbar{height:82px;padding:0 32px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:24px;background:#142d35}.wallet{display:flex;gap:28px}.resource{display:flex;align-items:center;gap:10px}.resource .icon{color:var(--gold);width:17px;height:17px}.resource small{display:block;color:var(--muted);font-size:10px;line-height:1.3}.resource strong{font:19px/1.5 var(--data);letter-spacing:.3px}.top-actions{display:flex;align-items:center;gap:12px}.time{font-size:11px;color:var(--muted);white-space:nowrap}.speed-control{display:flex;align-items:center;border:1px solid var(--line);border-radius:6px;overflow:hidden}.speed-control button{background:transparent;border:0;border-right:1px solid var(--line);font-family:var(--data);font-size:11px;padding:5px 8px;color:var(--muted)}.speed-control button:last-child{border-right:0}.speed-control button.active{background:#34515a;color:var(--gold)}.icon-button{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--line);border-radius:6px;min-width:32px;min-height:32px;color:var(--muted)}.icon-button:hover{background:var(--panel2);color:var(--text)}
main{padding:27px 32px 40px;max-width:1500px;margin:auto}.page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:21px;gap:15px}.page-head h1{font-family:var(--display);font-weight:400;font-size:28px;line-height:1.5;letter-spacing:1px}.page-head p{font-size:11px;color:var(--muted);margin-top:3px;letter-spacing:.4px}.eyebrow{font-family:var(--data);font-size:10px;letter-spacing:2px;color:var(--muted);text-transform:uppercase}.pill{display:inline-flex;align-items:center;gap:6px;font-size:11px;line-height:1.4;border:1px solid var(--line);background:rgba(255,255,255,.03);padding:6px 10px;border-radius:20px;color:var(--mint);white-space:nowrap}.pill:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}.pill.gold{color:var(--gold)}.pill.danger{color:var(--red)}.hero{height:244px;position:relative;overflow:hidden;border-radius:var(--radius);border:1px solid rgba(198,215,204,.16);background:var(--chart);margin-bottom:23px}.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:65% 57%}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,30,37,.92) 0%,rgba(9,30,37,.65) 30%,rgba(9,30,37,.02) 70%),linear-gradient(0deg,rgba(9,30,37,.24),transparent 60%)}.hero-copy{position:relative;z-index:1;padding:27px 31px;max-width:440px}.hero-copy .eyebrow{color:#b9c9c5;font-size:9px}.hero-copy h2{font-family:var(--display);font-size:32px;line-height:1.5;letter-spacing:2px;font-weight:400;margin:11px 0 7px}.hero-copy p{font-size:12px;color:#bfcecc;max-width:315px;line-height:1.9}.hero-bottom{display:flex;gap:14px;align-items:center;margin-top:17px}.hero-label{position:absolute;right:20px;bottom:17px;z-index:1;font-size:9px;font-family:var(--data);letter-spacing:2px;color:#e5e7d6;text-shadow:0 1px 5px #10262d}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);background:#29464d;color:var(--text);padding:9px 15px;border-radius:6px;font-size:12px;line-height:1.5;transition:background .15s,transform .15s;white-space:normal;text-align:center;min-height:36px}.btn:hover:not(:disabled){background:#365960;transform:translateY(-1px)}.btn.primary{background:var(--gold);border-color:var(--gold);color:#183239;font-weight:650}.btn.primary:hover:not(:disabled){background:#e5c58e}.btn.ghost{background:transparent}.btn.small{font-size:11px;padding:6px 10px;min-height:30px}.btn.danger{color:var(--red);border-color:rgba(227,147,123,.3);background:rgba(227,147,123,.04)}.btn.wide{width:100%}.btn .icon{width:15px;height:15px}.text-button{padding:2px 0;color:var(--gold);font-size:11px;background:none;border:0;text-align:left}.workgrid{display:grid;grid-template-columns:minmax(0,1.53fr) minmax(275px,1fr);gap:21px;align-items:start}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.panel-head{padding:17px 20px;display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid var(--line)}.panel-head h2,.panel-head h3{font-size:14px;font-weight:500;display:flex;align-items:center;gap:9px}.panel-head h2 .icon,.panel-head h3 .icon{width:16px;height:16px;color:var(--gold)}.panel-head .detail{font-size:10px;color:var(--muted)}.panel-body{padding:20px}.stack{display:grid;gap:20px}.map{position:relative;aspect-ratio:1.48;background-color:#264850;background-image:linear-gradient(rgba(184,210,198,.065) 1px,transparent 1px),linear-gradient(90deg,rgba(184,210,198,.065) 1px,transparent 1px);background-size:40px 40px;overflow:hidden;min-height:300px}.map-art{position:absolute;width:100%;height:100%;inset:0;pointer-events:none}.map-art .land{fill:#35565a;stroke:#64817c;stroke-width:1;stroke-opacity:.45}.map-art .land-inner{fill:none;stroke:#789087;stroke-width:.7;opacity:.23}.map-art .route{stroke:var(--gold);stroke-width:1.4;stroke-dasharray:4 5;fill:none;opacity:.65}.map-art .rays{stroke:#8da49a;stroke-width:.7;opacity:.13}.map-art .contour{fill:none;stroke:#829d93;stroke-width:1;opacity:.16}.map-label{position:absolute;color:#93afa9;font-size:10px;font-family:var(--display);letter-spacing:5px;pointer-events:none;opacity:.6}.map-label.ocean{left:45%;top:42%;font-size:18px;letter-spacing:10px;transform:rotate(-14deg);opacity:.35}.map-coordinates{position:absolute;left:12px;bottom:9px;font:8px var(--data);color:#849e9e;letter-spacing:1px}.map-compass{position:absolute;right:16px;bottom:16px;color:#9db0a3;width:54px;height:65px;text-align:center;font:9px var(--data);pointer-events:none}.map-compass svg{display:block;width:48px;height:48px}.map-node{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:5px;background:none;border:0;padding:6px;z-index:2;max-width:110px;isolation:isolate}.map-node .node-dot{width:23px;height:23px;display:grid;place-items:center;background:#1b353d;border:1px solid #9bb3ab;border-radius:50%;color:var(--mint);box-shadow:0 0 0 5px rgba(20,44,50,.45)}.map-node .node-dot .icon{width:12px;height:12px}.map-node .node-label{font-size:10px;line-height:1.3;white-space:nowrap;text-shadow:0 1px 5px #10262d;background:rgba(20,44,50,.65);border-radius:3px;padding:2px 5px;color:#d7e1d7}.map-node.selected .node-dot{background:var(--gold);border-color:var(--gold);color:#183239;box-shadow:0 0 0 5px rgba(218,183,122,.15),0 0 0 10px rgba(218,183,122,.05)}.map-node.selected .node-label{color:#f1d39e}.map-node.locked{opacity:.48}.map-node.port .node-dot{border-radius:6px;transform:rotate(-45deg);background:#759790;border:1px solid #b6ccc1;color:#16343b}.map-node.port .node-dot svg{transform:rotate(45deg)}.map-node.traveling .node-dot:after{content:"";position:absolute;width:36px;height:36px;border:1px solid var(--gold);border-radius:50%;animation:sonar 2.5s linear infinite}.map-bottom{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 17px;background:rgba(10,28,34,.14);font-size:10px;color:var(--muted)}.map-legend{display:flex;gap:13px}.map-legend span:before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--mint);margin-right:5px}.map-legend span:last-child:before{background:var(--gold)}
.location-detail .location-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:11px}.location-detail h3{font-family:var(--display);font-size:23px;font-weight:400;letter-spacing:1px;margin-bottom:3px}.location-detail .subtitle{color:var(--muted);font-size:10px}.location-detail .description{font-size:12px;color:#b6c8c8;line-height:1.95;margin:14px 0}.specs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:12px 0;margin:13px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.specs small{font-size:10px;color:var(--muted);display:block}.specs strong{font-family:var(--data);font-size:16px;font-weight:400}.specs strong span{font-family:var(--font);font-size:10px;color:var(--muted);margin-left:3px}.specs .good{color:var(--mint)}.specs .bad{color:var(--red)}.yield{font-size:10px;color:var(--gold);display:flex;gap:7px;align-items:center;margin:10px 0 16px}.yield .icon{width:14px;height:14px}.requirements{font-size:10px;color:var(--red);min-height:18px;margin-bottom:8px}.crew-inline{display:flex;align-items:center;gap:7px;margin-top:13px;color:var(--muted);font-size:10px}.crew-inline img{width:25px;height:25px;border-radius:50%;object-fit:cover;border:1px solid #78978e}.crew-inline .avatars{display:flex;margin-right:4px}.crew-inline .avatars img+img{margin-left:-6px}.log-list{padding:3px 20px 10px}.log-entry{display:grid;grid-template-columns:38px 1fr;gap:10px;padding:13px 0;border-bottom:1px solid var(--line);font-size:11px;line-height:1.8}.log-entry:last-child{border-bottom:0}.log-entry time{font:10px/1.8 var(--data);color:#7c9b9e}.log-entry p{color:#b7c9c9}.log-entry.story p,.log-entry.ending p{color:var(--gold)}.log-entry.success p{color:var(--mint)}.log-entry.warning p{color:var(--red)}.radio{display:flex;gap:12px;padding:17px 20px;border-top:1px solid var(--line);background:rgba(10,28,34,.12)}.radio .icon{color:var(--gold);width:17px;height:17px;margin-top:3px;flex-shrink:0}.radio p{font-size:11px;line-height:1.9;color:var(--muted)}.radio strong{font-size:10px;font-weight:500;color:#d6ddd0;display:block;margin-bottom:3px}.bar{height:5px;background:#0d272e;border-radius:4px;overflow:hidden}.bar span{display:block;width:100%;height:100%;background:var(--mint);border-radius:4px;transform-origin:left center;transition:transform .25s linear}.bar.gold span{background:var(--gold)}.bar.red span{background:var(--red)}.progress-info{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:var(--muted);margin:8px 0}.voyage-panel .voyage-title{font-family:var(--display);font-size:23px;font-weight:400;margin:10px 0}.voyage-status{font-size:12px;color:var(--mint);margin:13px 0}.voyage-status.battle{color:var(--red)}.loot-list{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}.loot-chip{padding:4px 7px;background:rgba(159,203,187,.07);border:1px solid var(--line);border-radius:4px;color:var(--mint);font-size:10px}.voyage-actions{display:flex;gap:8px;margin-top:17px}.battle-detail{padding:14px;background:rgba(0,0,0,.12);border-radius:8px;margin:12px 0}.battle-detail .name{display:flex;justify-content:space-between;font-size:12px;margin-bottom:9px}.battle-detail .name span{font-family:var(--data);color:var(--red)}.battle-detail p{font-size:10px;color:var(--muted);margin-top:8px}.goal-card{padding:17px 20px}.goal-card small{font-size:10px;color:var(--gold)}.goal-card h3{font-size:13px;font-weight:500;margin:5px 0}.goal-card p{font-size:11px;color:var(--muted);line-height:1.85}.goal-card .text-button{margin-top:8px}
.section-intro{color:var(--muted);font-size:12px;line-height:1.9;max-width:700px;margin-bottom:21px}.two-cols{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,1fr);gap:21px;align-items:start}.module-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.module-card{border:1px solid var(--line);background:var(--panel);border-radius:10px;padding:19px;position:relative;display:flex;flex-direction:column;gap:10px}.module-card.installed{border-color:rgba(218,183,122,.55);background:#263d41}.module-top{display:flex;align-items:center;gap:10px}.module-icon{width:37px;height:37px;border-radius:9px;background:rgba(218,183,122,.08);color:var(--gold);display:grid;place-items:center}.module-top h3{font-size:14px;font-weight:500}.module-top small{font-size:10px;color:var(--muted)}.module-card .effect{font-size:11px;color:var(--mint)}.module-card .desc{font-size:11px;color:var(--muted);line-height:1.85;flex:1}.cost{font-size:10px;line-height:1.8;color:var(--muted)}.cost .missing{color:var(--red)}.module-foot{display:flex;gap:8px;justify-content:space-between;align-items:center;margin-top:4px}.tag{font-size:9px;line-height:1.4;padding:3px 6px;border-radius:3px;background:rgba(159,203,187,.08);color:var(--mint);white-space:nowrap}.tag.gold{color:var(--gold);background:rgba(218,183,122,.1)}.ship-visual{position:relative;height:170px;background:linear-gradient(145deg,#33535a,#1c3b44);overflow:hidden}.ship-visual img{width:100%;height:100%;object-fit:cover;object-position:85% 72%;filter:brightness(.8)}.ship-visual .ship-name{position:absolute;left:20px;bottom:17px;font:24px var(--display);text-shadow:0 2px 5px #112a32}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px 10px;margin:17px 0}.stats-grid span{font-size:10px;color:var(--muted);display:block}.stats-grid strong{font:21px var(--data);font-weight:400;color:var(--text)}.panel-body .hint{font-size:11px;color:var(--muted);line-height:1.85}.divider{border:0;border-top:1px solid var(--line);margin:17px 0}.inventory{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.inventory-row{padding:9px 11px;border:1px solid var(--line);border-radius:6px;display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--muted)}.inventory-row strong{font-family:var(--data);font-size:14px;font-weight:400;color:var(--text)}.crew-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.crew-card{border:1px solid var(--line);border-radius:12px;background:var(--panel);overflow:hidden}.crew-card .crew-main{display:flex;gap:18px;padding:20px}.crew-card img{width:105px;height:128px;object-fit:cover;object-position:center 33%;border-radius:6px;flex-shrink:0}.crew-card h3{font-family:var(--display);font-size:23px;font-weight:400}.crew-card .role{font-size:10px;color:var(--gold);margin:3px 0 9px}.crew-card .intro{font-size:11px;line-height:1.9;color:var(--muted)}.crew-card .crew-trait{padding:13px 20px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:12px}.crew-trait .trait{font-size:11px;color:var(--mint)}.crew-trait small{font-size:10px;color:var(--muted);display:block;margin-top:3px}.crew-notice{display:flex;align-items:center;flex-wrap:wrap;gap:12px 18px;font-size:11px;color:var(--muted);padding:15px 20px;background:var(--panel);border:1px solid var(--line);border-radius:8px;margin-bottom:20px}.crew-notice strong{color:var(--gold);font-weight:500}.port-banner{background:linear-gradient(90deg,rgba(14,39,46,.98),rgba(14,39,46,.35)),url('assets/harbor.webp') 60% 42%/cover;border:1px solid var(--line);border-radius:12px;padding:26px;margin-bottom:22px}.port-banner h2{font:26px var(--display);margin-bottom:10px}.port-banner p{font-size:12px;line-height:1.9;color:#b8cbc8;max-width:480px}.market-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.market-row:last-child{border-bottom:0}.market-item{display:flex;gap:10px;align-items:center}.market-item .icon{color:var(--gold);width:17px;height:17px}.market-item h4{font-size:12px;font-weight:500}.market-item small{color:var(--muted);font-size:10px}.market-buttons{display:flex;gap:6px}.recipe{padding:16px 0;border-bottom:1px solid var(--line)}.recipe:last-child{border-bottom:0}.recipe-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.recipe h4{font-size:13px;font-weight:500}.recipe p{font-size:11px;color:var(--muted);line-height:1.8}.work-progress{padding:15px;background:#203e45;border-radius:8px;margin-bottom:12px}.work-progress h4{font-size:12px;font-weight:500}.work-progress .repeat{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted);margin-top:10px}.work-progress input{accent-color:var(--gold)}.contracts{display:grid;gap:15px}.contract-card{border:1px solid var(--line);border-radius:10px;background:var(--panel);padding:20px}.contract-card.claimed{opacity:.7}.contract-card .giver{font-size:10px;color:var(--gold);margin-bottom:6px}.contract-card h3{font:20px var(--display);font-weight:400;margin-bottom:9px}.contract-card p{font-size:12px;color:var(--muted);line-height:1.9}.contract-card .objective{margin:13px 0;font-size:11px;color:var(--mint);display:flex;gap:7px;align-items:center}.contract-card .objective .icon{width:14px;height:14px}.contract-card footer{border-top:1px solid var(--line);padding-top:12px;margin-top:12px;display:flex;justify-content:space-between;align-items:center;gap:12px}.contract-card footer span{font-size:10px;color:var(--gold)}.rep-row{margin-bottom:18px}.rep-row:last-child{margin-bottom:0}.rep-row .row{display:flex;justify-content:space-between;margin-bottom:7px;font-size:11px;color:var(--muted)}.rep-row strong{color:var(--mint);font-family:var(--data);font-weight:400}.tabs{display:flex;gap:7px;margin-bottom:20px;flex-wrap:wrap}.tabs button{background:transparent;border:1px solid var(--line);border-radius:6px;color:var(--muted);font-size:12px;padding:7px 14px}.tabs button.active{color:var(--gold);border-color:rgba(218,183,122,.5);background:rgba(218,183,122,.07)}.codex-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.codex-card{border:1px solid var(--line);border-radius:10px;background:var(--panel);padding:21px}.codex-card small{font-size:9px;color:var(--gold);letter-spacing:1px}.codex-card h3{font:21px var(--display);margin:7px 0 12px}.codex-card p{font-size:12px;line-height:2;color:#b9cac9}.ending-banner{padding:25px;border:1px solid rgba(218,183,122,.45);border-radius:12px;background:linear-gradient(115deg,#2b4749,#19373f);margin-bottom:22px}.ending-banner h2{font:27px var(--display);color:var(--gold);margin:8px 0 13px}.ending-banner p{font-size:12px;line-height:2;color:#c5d2cb;max-width:700px}.ending-banner .btn{margin-top:16px}.footer-note{display:flex;justify-content:space-between;gap:15px;font-size:9px;color:#708f94;letter-spacing:1px;margin-top:24px;padding-top:15px;border-top:1px solid var(--line)}
.overlay{position:fixed;inset:0;background:rgba(5,20,26,.76);backdrop-filter:blur(7px);z-index:100;display:grid;place-items:center;padding:24px;overflow-y:auto}.dialog{width:min(570px,100%);max-height:calc(100dvh - 48px);overflow:auto;border:1px solid rgba(190,211,196,.25);border-radius:14px;background:#1b363f;box-shadow:0 25px 100px rgba(0,0,0,.5);position:relative;animation:appear .2s ease-out}.dialog.wide{width:min(680px,100%)}.dialog-image{height:180px;width:100%;object-fit:cover;object-position:center 42%;display:block}.dialog-body{padding:27px 30px 30px}.dialog .eyebrow{color:var(--gold);font-size:9px}.dialog h2{font:28px/1.5 var(--display);letter-spacing:1px;margin:8px 0 14px}.dialog .narrative{font-size:13px;color:#bdd0cd;line-height:2.05;white-space:pre-line}.dialog .close{position:absolute;top:14px;right:14px;background:#1b363f;z-index:1}.choices{display:grid;gap:11px;margin-top:23px}.choice{padding:14px 16px;text-align:left;background:#26454d;border:1px solid var(--line);border-radius:8px;transition:border-color .2s,background .2s;position:relative}.choice:hover:not(:disabled){border-color:var(--gold);background:#2d5057}.choice strong{display:block;font-weight:500;color:var(--text);font-size:13px;padding-right:14px}.choice p{font-size:11px;line-height:1.85;color:var(--muted);margin-top:6px}.choice:after{content:'↗';position:absolute;top:13px;right:14px;color:var(--gold)}.dialog-footer{display:flex;gap:10px;margin-top:23px;justify-content:flex-end;flex-wrap:wrap}.form-label{font-size:12px;color:var(--muted);display:block;margin:18px 0 7px}.text-input{width:100%;border:1px solid var(--line);border-radius:7px;background:#112e37;color:var(--text);padding:11px 13px}.settings-grid{display:grid;gap:11px;margin-top:18px}.settings-grid .btn{justify-content:flex-start;padding:12px 16px}.settings-grid .hint{font-size:11px;color:var(--muted);line-height:1.9}.key{display:inline-block;border:1px solid var(--line);border-radius:3px;font:11px var(--data);padding:2px 6px}.toast{position:fixed;bottom:26px;left:calc(50% + 80px);transform:translate(-50%,20px);background:#d4c299;border:1px solid #e4d3a9;border-radius:8px;color:#17323a;box-shadow:0 10px 40px rgba(0,0,0,.25);font-size:12px;padding:12px 20px;max-width:min(520px,90vw);z-index:200;pointer-events:none;opacity:0;transition:opacity .2s,transform .2s}.toast.visible{opacity:1;transform:translate(-50%,0)}.toast.error{background:#e1b4a0;border-color:#efc4b2}.offline-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:17px}.offline-summary div{background:#24434a;border:1px solid var(--line);border-radius:6px;padding:11px 13px;font-size:11px;color:var(--muted)}.offline-summary strong{float:right;color:var(--mint);font-family:var(--data)}.muted{color:var(--muted)}.gold-text{color:var(--gold)}.empty-note{font-size:11px;color:var(--muted);line-height:1.9}.paused-note{color:var(--gold);font-size:11px}.inline-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}
.brand{margin-left:0;gap:9px}.brand strong{font-size:22px;letter-spacing:2px;white-space:nowrap}.hero{height:260px}.hero-copy h2{white-space:pre-line;line-height:1.25}
@keyframes sonar{0%{transform:scale(.6);opacity:.7}100%{transform:scale(1.5);opacity:0}}@keyframes appear{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1600px){main{padding:32px 40px 45px}.hero{height:290px}.hero-copy{padding:35px 38px}.hero-copy h2{font-size:38px}.map{aspect-ratio:1.6}.wallet{gap:40px}}
@media(max-width:1250px){.shell{grid-template-columns:175px minmax(0,1fr)}.sidebar{padding:26px 16px 16px}.brand{margin-left:0;gap:8px}.brand strong{font-size:20px;letter-spacing:2px}.brand img{width:35px;height:35px}.brand small{font-size:8px}.nav button.active:before{left:-16px}.topbar{padding:0 23px}.wallet{gap:18px}.resource{gap:7px}.top-actions{gap:8px}.time{display:none}main{padding:24px 23px 35px}.workgrid{grid-template-columns:minmax(0,1.25fr) minmax(270px,1fr);gap:16px}.panel-head{padding:15px 16px}.panel-body{padding:17px}.map{min-height:330px}.crew-card .crew-main{padding:17px;gap:13px}.crew-card img{width:85px;height:116px}.two-cols{grid-template-columns:minmax(0,1.4fr) minmax(245px,1fr);gap:16px}.crew-grid{gap:15px}.hero-copy h2{font-size:29px}}
@media(max-width:1000px){.shell{grid-template-columns:76px minmax(0,1fr)}.sidebar{padding:23px 12px}.brand{justify-content:center;margin-bottom:31px}.brand img{width:40px;height:40px}.brand .brand-word{display:none}.nav button{padding:12px;justify-content:center}.nav button .nav-label{display:none}.nav button.active:before{left:-12px}.nav .count{position:absolute;right:2px;top:2px;min-width:14px;height:14px;line-height:14px;font-size:8px}.nav .icon{width:21px;height:21px}.side-ship,.save-tools,.save-note{display:none}.topbar{height:75px}.wallet{gap:20px}.workgrid{grid-template-columns:minmax(0,1.3fr) minmax(260px,1fr)}.two-cols{grid-template-columns:1fr}.crew-grid{grid-template-columns:1fr 1fr}.crew-card .crew-main{display:block}.crew-card img{width:100%;height:170px;object-position:50% 34%;margin-bottom:12px}.crew-card .crew-trait{align-items:flex-start;flex-direction:column}.toast{left:calc(50% + 38px)}}
@media(max-width:760px){.shell{display:block}.sidebar{position:sticky;top:0;height:auto;display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:10px 16px;border-right:0;border-bottom:1px solid var(--line);gap:12px;background:rgba(17,42,50,.97)}.brand{margin:0}.brand img{width:32px;height:32px}.nav{display:flex;gap:4px;flex:1;justify-content:flex-end}.nav button{padding:9px 11px;border-radius:6px}.nav button.active:before{display:none}.nav .icon{width:19px;height:19px}.topbar{height:auto;min-height:71px;padding:11px 18px;gap:12px;flex-wrap:wrap}.wallet{gap:24px;flex:1;justify-content:space-between}.resource .icon{display:none}.resource strong{font-size:18px}.top-actions{margin-left:auto}.top-actions .speed-control{display:none}.top-actions .pause-button{display:none}.top-actions .icon-button{min-width:29px;min-height:29px}.top-actions .icon-button .icon{width:16px;height:16px}main{padding:19px 18px 28px}.page-head{margin-bottom:16px}.page-head h1{font-size:25px}.page-head p{font-size:10px}.hero{height:238px;margin-bottom:18px}.hero-copy{padding:25px 23px}.hero-copy h2{font-size:29px}.hero-copy p{max-width:250px;font-size:11px}.hero:after{background:linear-gradient(90deg,rgba(9,30,37,.88),rgba(9,30,37,.47) 55%,rgba(9,30,37,.03))}.hero-image{object-position:65% center}.hero-label{font-size:8px;right:14px;bottom:12px}.workgrid{grid-template-columns:1fr;gap:18px}.map{aspect-ratio:1.6;min-height:280px}.right-column{display:contents}.location-detail{order:0}.workgrid>.stack:first-child{display:contents}.map-panel{order:1}.location-detail{order:2}.journal-panel{order:4}.goal-panel{order:3}.voyage-panel{order:0}.crew-inline{margin-top:12px}.location-detail .description{margin:10px 0}.specs{padding:10px 0;margin:10px 0}.two-cols{gap:18px}.crew-grid{gap:14px}.crew-card .crew-main{padding:14px}.crew-card img{height:150px}.crew-card h3{font-size:22px}.crew-card .intro{font-size:10px}.crew-card .crew-trait{padding:12px 14px;gap:10px}.crew-trait .trait{font-size:10px}.crew-trait small{font-size:9px}.module-grid{gap:12px}.module-card{padding:15px;gap:8px}.module-top{gap:8px}.module-top h3{font-size:12px}.module-icon{width:30px;height:30px;flex-shrink:0}.module-top small{font-size:9px}.module-card .effect,.module-card .desc{font-size:10px}.module-foot{align-items:flex-start;gap:7px;flex-direction:column}.module-foot .btn{width:100%}.codex-grid{grid-template-columns:1fr}.overlay{padding:15px}.dialog{max-height:calc(100dvh - 30px)}.dialog-body{padding:23px}.dialog h2{font-size:25px}.dialog .narrative{font-size:12px}.dialog-image{height:155px}.toast{left:50%;bottom:18px}.footer-note{font-size:8px}.contract-card{padding:17px}.contract-card footer{align-items:flex-start;flex-direction:column}.contract-card footer .btn{align-self:flex-end}.port-banner{padding:22px}.hero-bottom{margin-top:15px}.hero-bottom .btn{font-size:11px}.page-head .pill{font-size:9px;padding:5px 8px}.panel-head .detail{font-size:9px}.section-intro{font-size:11px}}
@media(max-width:370px){.sidebar{padding:9px 10px;gap:5px}.nav{gap:0}.nav button{padding:9px}.wallet{gap:12px}.topbar{padding:10px 14px}.resource strong{font-size:16px}main{padding:17px 13px 26px}.hero-copy{padding:23px 18px}.hero-copy h2{font-size:26px}.hero-label{display:none}.page-head h1{font-size:23px}.crew-grid{grid-template-columns:1fr}.crew-card .crew-main{display:flex}.crew-card img{width:90px;height:115px;margin-bottom:0}.crew-card .crew-trait{flex-direction:row;align-items:center}.map-node .node-label{font-size:9px}.map-node{padding:4px}.module-grid{grid-template-columns:1fr}.module-foot{flex-direction:row;align-items:center}.module-foot .btn{width:auto}.hero-copy p{max-width:220px}.footer-note span:last-child{display:none}}
@media(max-width:760px){.nav button{flex-direction:column;gap:3px;padding:5px 7px}.nav button .nav-label{display:block;font-size:9px;line-height:1.2}.nav .icon{width:17px;height:17px}.sidebar{gap:8px}.hero{height:260px}.hero-copy h2{font-size:29px;line-height:1.3}}
@media(max-width:370px){.nav button{padding:5px}.nav button .nav-label{font-size:8px}.hero-copy h2{font-size:26px}}
.region-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:14px}.region-tabs button{display:flex;align-items:center;gap:8px;padding:12px;background:var(--panel);border:1px solid var(--line);border-radius:8px;color:var(--muted);font-size:12px;text-align:left}.region-tabs button.active{border-color:var(--gold);color:var(--gold);background:#294147}.region-tabs .icon{width:16px;height:16px;flex-shrink:0}.region-tabs small{margin-left:auto;font:10px var(--data);white-space:nowrap}.season-strip{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:13px 16px;margin-bottom:18px;border:1px solid var(--line);border-radius:8px;background:rgba(159,203,187,.04)}.season-strip>div{display:flex;align-items:center;gap:10px;font-size:11px}.season-strip strong{color:var(--mint);white-space:nowrap;font-weight:500}.season-strip span{color:var(--muted);line-height:1.8}.season-strip .icon{color:var(--mint);flex-shrink:0}.season-strip .text-button{white-space:nowrap}.dispatch-options{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:14px 0 9px}.dispatch-options>span{font-size:11px;color:var(--gold);margin-right:auto}.hazard-note{font-size:11px;color:#d5b38b;line-height:1.9;margin-top:12px}.dispatch-status{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px;border:1px solid #a0cbbb44;background:#29464a;border-radius:7px;margin-top:14px;font-size:11px}.dispatch-status strong{color:var(--gold);font-weight:500}.dispatch-status span{color:var(--muted)}.dispatch-status .btn{margin-left:auto}
.commission-board{border:1px solid #dab77a55;border-radius:10px;background:linear-gradient(140deg,#294349,#19363f);padding:20px}.commission-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.commission-heading h2{font:23px var(--display);margin:6px 0}.commission-heading p{font-size:11px;color:var(--muted);line-height:1.8}.commission-item{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:16px 0;border-top:1px solid var(--line)}.commission-item h3{font:17px var(--display);margin-bottom:7px}.commission-item p,.commission-item small{font-size:11px;color:var(--muted);line-height:1.85}.commission-item small{color:var(--mint)}.commission-item p.reward-line{color:var(--gold);font-size:10px;margin-top:6px}.commission-item>.btn{flex-shrink:0}
.legacy-summary{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(240px,1fr);gap:30px;background:linear-gradient(125deg,#304c4e,#19343d);border:1px solid #dab77a66;border-radius:12px;padding:25px;margin-bottom:22px}.legacy-summary h2{font:29px var(--display);margin:9px 0 13px}.legacy-summary p{color:var(--muted);font-size:12px;line-height:2}.legacy-facts{display:flex;gap:18px;flex-wrap:wrap;margin-top:18px;font-size:10px;color:var(--muted)}.legacy-facts strong{display:block;color:var(--gold);font:22px var(--data);margin-top:5px}.cycle-action{align-self:center;padding-left:25px;border-left:1px solid var(--line)}.cycle-action>strong{font:20px var(--display);color:var(--gold)}.cycle-action p{margin:12px 0}.cycle-action small{display:block;font-size:11px;color:var(--muted);line-height:1.9;margin-top:10px}.cycle-goals{margin-bottom:28px}.cycle-checklist{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:17px}.cycle-checklist button,.resolution-goal{background:#203f47;border:1px solid var(--line);border-radius:6px;padding:12px;color:var(--text);display:flex;align-items:center;gap:8px;text-align:left;font-size:12px}.cycle-checklist button:hover{border-color:var(--gold)}.cycle-checklist .icon{color:var(--mint);width:16px;height:16px;flex-shrink:0}.cycle-checklist small{font-size:9px;color:var(--muted);margin-left:auto}.resolution-goal{grid-column:1/-1;color:var(--gold);font-size:11px}.research-title{display:flex;align-items:center;justify-content:space-between;gap:30px;margin:22px 0 18px}.research-title h2{font:25px var(--display);margin-bottom:9px}.research-title p{font-size:11px;color:var(--muted);line-height:1.9;max-width:620px}.research-title>strong{font:38px var(--data);color:var(--gold);text-align:center;padding:0 20px}.research-title small{display:block;font:10px var(--font);color:var(--muted);white-space:nowrap;margin-top:5px}.research-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:26px}.research-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:19px;display:flex;flex-direction:column;gap:14px}.research-card h3{font-size:13px;font-weight:500}.research-card small{font-size:10px;color:var(--muted)}.research-card>p{font-size:11px;line-height:1.9;color:var(--muted);flex:1}.research-levels{display:flex;gap:5px}.research-levels span{height:4px;background:#3e5960;flex:1;border-radius:2px}.research-levels .filled{background:var(--gold)}.legacy-history article{display:flex;align-items:center;gap:22px;padding:18px 22px;border-top:1px solid var(--line);font-size:12px}.legacy-history article>span{color:var(--gold);white-space:nowrap;line-height:1.8}.legacy-history article h3{font:18px var(--display);margin-bottom:5px}.legacy-history article p{font-size:10px;line-height:1.9;color:var(--muted)}.legacy-history article>strong{margin-left:auto;color:var(--mint);font:24px var(--data);text-align:right}.legacy-history small{display:block;font-size:9px;color:var(--muted)}.undiscovered{opacity:.65}.inheritance-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:20px}.inheritance-grid>div{border:1px solid var(--line);background:#23424a;border-radius:7px;padding:14px}.inheritance-grid h3{font-size:13px;color:var(--gold);font-weight:500;margin-bottom:8px}.inheritance-grid p{font-size:11px;line-height:1.95;color:var(--muted)}.loadout-note{font-size:11px;line-height:1.9;padding:13px 0;color:var(--mint)}.season-selects{display:grid;grid-template-columns:1.3fr 1fr;gap:14px}.season-selects select{font-size:12px}
@media(max-width:1100px){.research-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cycle-checklist{grid-template-columns:repeat(2,minmax(0,1fr))}.region-tabs small{display:none}.legacy-summary{gap:20px}.cycle-action{padding-left:20px}}
@media(max-width:760px){.region-tabs{gap:6px}.region-tabs button{padding:10px 7px;gap:5px;justify-content:center;font-size:10px}.region-tabs .icon{width:12px;height:12px}.season-strip{padding:11px 12px;align-items:flex-start;gap:8px}.season-strip>div{flex-wrap:wrap;gap:6px;font-size:10px}.season-strip>div span{flex-basis:100%}.season-strip .text-button{font-size:9px;align-self:center}.legacy-summary{grid-template-columns:1fr;padding:21px;gap:20px}.legacy-summary h2{font-size:25px}.cycle-action{border-left:0;border-top:1px solid var(--line);padding:18px 0 0}.legacy-facts{gap:22px}.cycle-checklist{padding:13px;gap:8px}.cycle-checklist button{flex-wrap:wrap;padding:10px;font-size:11px}.cycle-checklist small{width:100%;margin-left:24px}.research-grid{gap:12px}.research-card{padding:15px}.research-title{gap:12px}.research-title h2{font-size:23px}.research-title>strong{padding:0 10px;font-size:32px}.commission-board{padding:16px}.commission-heading{align-items:flex-start;flex-wrap:wrap}.commission-heading h2{font-size:22px}.commission-item{gap:12px;flex-wrap:wrap}.commission-item>.btn{margin-left:auto}.inheritance-grid{gap:10px}.inheritance-grid>div{padding:11px}.legacy-history article{gap:13px;padding:15px}.legacy-history article>span{font-size:10px}.legacy-history article>strong{font-size:21px}.dispatch-options .btn{min-height:33px}.dispatch-status{gap:8px}}
@media(max-width:370px){.research-grid,.season-selects{grid-template-columns:1fr}.region-tabs button{font-size:9px;padding:10px 3px}.region-tabs .icon{display:none}.nav button{padding:5px 4px}.nav button .nav-label{font-size:8px}.brand img{width:27px;height:27px}.sidebar{gap:3px}.inheritance-grid{grid-template-columns:1fr}.legacy-facts{gap:17px}.legacy-history article{flex-wrap:wrap}.legacy-history article>div{flex:1}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Eight seas: brass chart instruments, working harbors, a living trade ledger. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.ambition{display:grid;grid-template-columns:1fr 1.2fr;gap:32px;padding:26px 30px;border:1px solid #b39d6644;border-radius:12px;background:linear-gradient(110deg,#334849,#203a42 70%);margin-bottom:22px}.ambition-title h2{font:27px/1.5 var(--display);font-weight:400;color:#ead3a8;margin:6px 0}.ambition-title p{font-size:11px;color:var(--muted)}.ambition-meters{display:grid;gap:13px;align-content:center}.ambition-meters>div>span{display:flex;justify-content:space-between;font-size:11px;margin-bottom:6px;gap:12px}.ambition-meters b{font:12px var(--data);color:var(--gold)}.ambition.compact{grid-template-columns:1fr 1.35fr;padding:20px 24px}.ambition.compact h2{font-size:23px}.ambition.compact .ambition-meters{grid-template-columns:1.4fr 1fr 1fr;gap:20px}.ambition.compact .ambition-meters>div>span{display:block}.ambition.compact b{display:block;margin-top:7px;font-size:15px}
.sea-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 18px}.sea-tabs button,.sailing-modes button{border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:5px;padding:7px 12px;font-size:11px;transition:background .2s,color .2s}.sea-tabs button:hover,.sea-tabs button.active,.sailing-modes button.active{background:#36555b;border-color:#dab77a66;color:var(--gold)}
.world-workgrid{display:grid;grid-template-columns:minmax(0,1fr) 315px;gap:20px;align-items:start}.world-workgrid>.stack,.market-workgrid>.stack{min-width:0}.chart-tools{display:flex;align-items:center;gap:9px;font:11px var(--data);color:var(--muted)}.chart-tools .btn{min-height:27px;padding:1px 10px;font-size:17px}.map-toolbar{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;gap:8px;background:#132e37;border-bottom:1px solid var(--line)}.map-toolbar .tabs{margin:0;border:0;gap:2px}.map-toolbar .tabs button{font-size:10px;padding:6px 10px}.map-select{color:var(--text);background:#24434b;border:1px solid var(--line);font-size:10px;border-radius:4px;max-width:170px;padding:6px}.world-map-viewport{width:100%;aspect-ratio:20/13;min-height:180px;max-height:min(68svh,700px);overflow:auto;position:relative;scrollbar-color:#5e7c80 #193640;scrollbar-width:thin;scrollbar-gutter:stable;overscroll-behavior:contain}.world-map-viewport.zoomed{cursor:grab;touch-action:none}.world-map-viewport.dragging{cursor:grabbing;user-select:none}.world-map-stage{position:relative;display:grid;place-items:center;width:100%;height:100%}.world-map-canvas{position:relative;isolation:isolate;width:100%;aspect-ratio:20/13;background:#203e49;overflow:hidden;flex-shrink:0}.world-map-art{position:absolute;inset:0;width:100%;height:100%}.world-lands path{fill:#455f61;stroke:#91aaa577;stroke-width:2}.shipping-lanes path{fill:none;stroke:#b3c1b135;stroke-width:1;stroke-dasharray:3 7}.planned-course{fill:none;stroke:var(--gold);stroke-width:2;stroke-dasharray:5 6;opacity:.7}.pirate-zone{fill:#c36f5512;stroke:#c36f552b;stroke-width:1;stroke-dasharray:3 5}.pirate-zone.hot{fill:#c36f551c;stroke:#c36f5555}.sea-name{position:absolute;color:#b1cbcb60;font:17px var(--display);letter-spacing:4px;transform:translate(-50%,-50%);pointer-events:none;white-space:nowrap}.dim{opacity:.3}.world-port{position:absolute;transform:translate(-50%,-50%);padding:4px;border:0;background:transparent;color:#d6e2d9;display:grid;justify-items:center;gap:0;z-index:2;min-width:44px;transition:color .2s,opacity .2s}.world-port>span{width:22px;height:22px;display:grid;place-items:center;background:#1c3942;border:1px solid #a6c4be88;border-radius:50%;box-shadow:0 0 0 3px #19364077}.world-port .icon{width:12px;height:12px}.world-port b{font-size:10px;font-weight:400;line-height:1.4;white-space:nowrap;text-shadow:0 1px 4px #061e28,1px 0 4px #061e28}.world-port.home-port{color:var(--gold)}.world-port.selected{color:#ffdda6;z-index:4;opacity:1}.world-port.selected>span{border-color:var(--gold);box-shadow:0 0 0 5px #dab77a22;background:#39504d}.world-port:hover{color:#ffe0a8;opacity:1;z-index:5}.world-ruin{position:absolute;transform:translate(-50%,-50%);z-index:6;border:1px solid #d2c49e77;border-radius:3px;background:#193841eb;color:#dec9a2;padding:3px 5px;display:flex;gap:4px;align-items:center;font-size:8px;white-space:nowrap}.world-ruin .icon{width:11px;height:11px}.world-ruin.selected{outline:2px solid var(--gold);background:#4c5149}.player-token{position:absolute;z-index:7;color:#ffdb9b;pointer-events:none;left:0;top:0;transform:translate(calc(var(--map-width) * var(--map-x)),calc(var(--map-height) * var(--map-y))) translate(-50%,-100%);filter:drop-shadow(0 0 4px #ffc97680);transition:transform .2s linear}.player-token .icon{width:23px;height:23px;animation:boat-rock 3s ease-in-out infinite}.fleet-token{position:absolute;z-index:5;display:grid;place-items:center;background:#173640;color:var(--fleet-color);border:1px solid currentColor;box-shadow:0 0 0 2px #132d36;border-radius:50%;width:24px;height:24px;left:0;top:0;transform:translate(calc(var(--map-width) * var(--map-x)),calc(var(--map-height) * var(--map-y))) translate(-50%,-100%);transition:transform .2s linear}.fleet-token>.icon{width:16px;height:16px}.fleet-label{position:absolute;bottom:calc(100% + 5px);left:50%;transform:translateX(-50%);padding:3px 6px;border:1px solid var(--line);border-radius:4px;background:#122d35;color:var(--fleet-color);font-size:10px;white-space:nowrap;pointer-events:none;opacity:0}.fleet-token:hover,.fleet-token:focus{z-index:9}.fleet-token:hover .fleet-label,.fleet-token:focus .fleet-label{opacity:1}.pirate-marker{position:absolute;z-index:3;display:flex;align-items:center;gap:2px;transform:translate(-50%,-50%);padding:2px 4px;border-radius:4px;background:#372d2dc9;color:#efad98;font-size:10px;line-height:1.2;white-space:nowrap}.pirate-marker>.icon{width:13px;height:13px}.pirate-marker:focus{outline:1px solid #efad98}.chart-key{position:absolute;left:22px;top:20px;font:18px var(--data);color:#bdd0c799;line-height:1.6;pointer-events:none}.chart-key small{display:block;font-size:8px;letter-spacing:2px}.world-chart .map-bottom{padding:12px 15px;font-size:9px;gap:8px;flex-wrap:wrap}.world-chart .panel-head{padding:15px 18px}.world-chart .panel-head h2{font-size:14px}.ruins-list{padding:15px;display:flex;flex-wrap:wrap;gap:7px}.ruins-list .btn{display:grid;justify-items:start;gap:3px;flex:1 0 140px}.ruins-list small{font-size:9px;color:var(--muted)}.ruins-list .chosen{border-color:var(--gold);color:var(--gold)}
.port-detail h3{font:28px/1.5 var(--display);font-weight:400;margin:10px 0}.port-detail .description{font-size:12px;color:var(--muted);margin:6px 0 16px}.port-specialties{display:grid;grid-template-columns:1fr 1fr;background:#102b3270;border:1px solid var(--line);padding:13px;gap:12px;font-size:10px;color:var(--muted)}.port-specialties b{display:block;font-size:14px;font-weight:500;color:var(--text);margin-top:4px}.port-specialties small{color:var(--gold);font-family:var(--data)}.port-detail .specs{gap:7px}.port-detail .specs strong{font-size:20px}.port-detail .specs small{font-size:9px}.sailing-modes{display:flex;gap:5px;margin:16px 0 8px}.sailing-modes button{padding:6px 7px;flex:1;font-size:10px}.trade-tip{background:#102b3244;border-left:2px solid #dab77a77;padding:12px;margin-top:18px}.trade-tip small{font-size:9px;color:var(--muted)}.trade-tip p{font-size:11px;margin:6px 0 9px}.weather-note p{font-size:11px;color:var(--muted)}.port-detail .btn.wide+.btn{margin-top:9px}.crew-inline{flex-wrap:wrap}.avatars .sailor-avatar{width:27px;height:27px;border-radius:50%;border:2px solid var(--panel);margin-left:-6px}.avatars .sailor-avatar .icon{display:none}.avatars .sailor-avatar b{font-size:10px}.avatars .sailor-avatar:first-child{margin-left:0}.crew-inline>span{font-size:9px;flex:1;min-width:90px}
.ship-drawing{width:100%;height:auto;display:block;color:#cfba8c}.ship-drawing .hull-drawing{transform-origin:50% 85%}.shipyard{margin-bottom:26px;border:1px solid #bca47755;background:linear-gradient(120deg,#2c4449,#173039);border-radius:12px;overflow:hidden}.shipyard-header{display:grid;grid-template-columns:1fr 300px;gap:22px;padding:30px 32px 20px;align-items:center}.shipyard-header h2{font:34px/1.5 var(--display);font-weight:400;margin:6px 0}.shipyard-header p{color:var(--muted);font-size:12px}.shipyard-facts{display:flex;flex-wrap:wrap;gap:22px;margin-top:20px;font-size:10px;color:var(--muted)}.shipyard-facts b{font:20px var(--data);color:var(--gold);margin-left:5px}.ship-tier-track{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-block:1px solid var(--line);background:#122b3366}.ship-tier-track>div{padding:20px 12px;text-align:center;position:relative;display:flex;flex-direction:column;align-items:center;border-right:1px solid var(--line);color:var(--muted);gap:5px}.ship-tier-track>div:last-child{border:0}.ship-tier-track small{position:absolute;left:11px;top:6px;font:9px var(--data);opacity:.6}.ship-tier-track .icon{width:25px;height:25px;margin:4px 0 6px}.ship-tier-track strong{font-size:12px;font-weight:500;color:var(--text)}.ship-tier-track span,.ship-tier-track em{font-size:9px;font-style:normal}.ship-tier-track .current{color:var(--gold);background:#dab77a0c;box-shadow:inset 0 -3px var(--gold)}.ship-tier-track .owned{color:var(--mint)}.shipyard-next{display:flex;gap:25px;align-items:center;justify-content:space-between;padding:22px 28px}.shipyard-next>div{flex:1}.shipyard-next h3{font-size:15px;font-weight:500}.shipyard-next p{font-size:11px;color:var(--muted);margin:6px 0}.shipyard-next .bar{margin-top:12px;max-width:440px}.refit-progress{padding:25px 30px;background:repeating-linear-gradient(135deg,#dab77a06 0 12px,transparent 12px 24px);animation:yard-work 10s linear infinite}.refit-progress .hint{margin-top:10px}.ship-visual{height:210px;background:radial-gradient(ellipse at center,#35505a,#19353f);display:flex;align-items:center;justify-content:center}.ship-visual .ship-drawing{max-width:320px}.ship-visual:after{pointer-events:none}.ship-visual .ship-name{z-index:2}
.journey-scene{position:relative;overflow:hidden;height:156px;background:linear-gradient(#243f49 0 70%,#345c65 70% 73%,#23444f 73%);border-radius:8px;border:1px solid #819c9f22;margin-bottom:15px}.journey-scene .ship-drawing{position:relative;z-index:2;width:245px;height:145px;margin:auto;animation:boat-rock 4s ease-in-out infinite}.journey-scene text{display:none}.sailing-sun{position:absolute;right:25px;top:22px;width:27px;height:27px;background:#e0c59555;border-radius:50%}.sea-wake{position:absolute;inset:70% -100% 0;width:300%;background:repeating-linear-gradient(175deg,transparent 0 13px,#94c3c52b 14px 15px,transparent 17px 25px);animation:sea-flow 9s linear infinite}.journey-destinations{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12px;margin-bottom:12px}.journey-destinations>span{color:var(--muted)}.journey-panel .cargo-meter{padding:17px 0}.pirate-encounter{margin:18px 0;padding:15px;background:#ab6b5520;border:1px solid #b7755655;border-radius:7px}.pirate-encounter h3{font:21px var(--display);margin:8px 0 14px}.pirate-encounter .progress-info{font-size:10px;margin-top:14px}.pirate-actions{display:flex;flex-wrap:wrap;gap:7px;margin:15px 0 10px}.pirate-encounter .hint{font-size:10px}.under-fire:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,#f6b26a44,transparent);animation:cannon-flash .9s ease-out infinite}.under-fire .ship-drawing{animation:battle-rock .9s ease-out infinite}.battle-detail{animation:battle-pulse .9s ease-out infinite}
.trade-dashboard{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0 0 22px;border-block:1px solid var(--line);background:#19353e}.trade-dashboard>div{padding:18px 22px;border-right:1px solid var(--line)}.trade-dashboard>div:last-child{border:0}.trade-dashboard small{font-size:10px;color:var(--muted)}.trade-dashboard strong{display:block;font:27px/1.5 var(--data);color:var(--gold)}.trade-dashboard em{font:12px var(--data);font-style:normal;color:var(--muted)}.trade-dashboard .bar{max-width:170px;height:3px}.market-workgrid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}.quantity-control{display:flex;border:1px solid var(--line);border-radius:4px;overflow:hidden}.quantity-control button{border:0;border-right:1px solid var(--line);background:transparent;font:11px var(--data);color:var(--muted);min-width:28px;padding:5px}.quantity-control button:last-child{border:0}.quantity-control .active{color:var(--gold);background:#3b5457}.commodity-heading,.commodity-row{display:grid;grid-template-columns:minmax(0,1.3fr) .55fr minmax(125px,.85fr);gap:8px;align-items:center;padding:16px 18px;border-bottom:1px solid var(--line)}.commodity-heading{font-size:9px;padding-block:10px;color:var(--muted);background:#102b3255}.commodity-heading>span:last-child{text-align:right}.commodity-name{display:flex;align-items:center;gap:10px;min-width:0}.goods-mark{width:31px;height:36px;display:grid;place-items:center;color:var(--goods-color);border:1px solid currentColor;background:#132e3766;flex-shrink:0}.goods-mark .icon{width:16px;height:16px}.commodity-name h3{font-size:12px;font-weight:500;display:flex;gap:7px;flex-wrap:wrap;align-items:center}.commodity-name h3 b{font-size:8px;font-weight:400;padding:1px 5px;background:#9fcbbb15;color:var(--mint)}.commodity-name h3 b.demand{color:var(--gold);background:#dab77a15}.commodity-name small,.commodity-price small{font-size:9px;color:var(--muted)}.commodity-price strong{font:19px var(--data);color:var(--gold);white-space:nowrap}.commodity-price i{font:12px var(--data);font-style:normal;color:var(--muted)}.commodity-price small{display:block;margin-top:4px}.commodity-actions{display:flex;justify-content:flex-end;gap:6px;flex-wrap:wrap}.commodity-actions .btn{font-size:10px;min-height:30px;padding:5px 8px;white-space:nowrap}.market-footnote{padding:13px 18px;color:var(--muted);font-size:10px}.hold-row{display:flex;gap:12px;justify-content:space-between;align-items:center;padding:15px 0;border-bottom:1px solid var(--line)}.hold-row h4{font-size:12px;font-weight:400}.hold-row small{font-size:9px;color:var(--muted)}.hold-row .btn{font-size:10px;padding-inline:8px}.route-selects{display:grid;grid-template-columns:1fr 1fr;gap:12px}.route-selects .text-input{min-width:0}.rival-list{padding:0 18px}.rival-list article{display:flex;gap:14px;align-items:center;border-bottom:1px solid var(--line);padding:15px 0}.rival-list article:last-child{border:0}.rival-number{font:23px var(--data);opacity:.8}.rival-list h4{font-size:12px;font-weight:500}.rival-list p{font-size:10px;color:var(--muted);margin:3px 0}.rival-list small{font-size:9px;color:#8ca7ab}.opportunities{padding:0 18px}.opportunities button{display:flex;width:100%;align-items:center;justify-content:space-between;gap:16px;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left;padding:15px 0}.opportunities button:last-child{border:0}.opportunities b{font-size:12px;font-weight:500}.opportunities div span{display:block;font-size:10px;color:var(--muted)}.opportunities strong{font:20px var(--data);color:var(--gold);margin-left:auto;white-space:nowrap}.opportunities strong small{display:block;font-size:8px;color:var(--muted)}.market-news{padding:0 18px}.market-news p{font-size:11px;padding:15px 0;border-bottom:1px solid var(--line);color:#b6c6c5}.market-news p:last-child{border:0}.market-news small{display:block;font:9px var(--data);color:var(--muted);margin-bottom:5px}.notice{border:1px solid #dab77a66;padding:12px 18px;border-radius:7px;margin-bottom:18px;color:var(--gold);font-size:11px;display:flex;gap:15px;align-items:center;justify-content:space-between}
.tavern-scene{position:relative;display:flex;gap:36px;padding:33px 42px;margin-bottom:23px;border-radius:12px;border:1px solid #b99a6866;overflow:hidden;background:radial-gradient(ellipse at 10% 40%,#96734455,transparent 55%),repeating-linear-gradient(0deg,transparent 0 50px,#b2936222 51px 52px),linear-gradient(110deg,#3b3b32,#24363a)}.tavern-lantern{width:100px;align-self:center;color:#f4ce8b;text-align:center;filter:drop-shadow(0 0 15px #f5bc5a88);animation:lantern-glow 4s ease-in-out infinite}.tavern-lantern .icon{width:70px;height:70px;stroke-width:.8}.tavern-scene h2{font:30px/1.6 var(--display);font-weight:400;color:#edd8b3;margin:8px 0 13px}.tavern-scene p{max-width:530px;font-size:12px;color:#bac4be}.tavern-scene small{display:block;font-size:10px;color:var(--muted);margin-top:16px}.tavern-scene small b{font-family:var(--data);color:var(--gold);font-weight:400}.tavern-candidates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.recruit-card{border:1px solid var(--line);border-top:2px solid #bfa37088;background:linear-gradient(130deg,#293f43,#1a343d);padding:23px;border-radius:8px}.recruit-top{display:flex;align-items:center;gap:18px}.sailor-avatar{position:relative;display:flex;flex-shrink:0;align-items:center;justify-content:center;border:1px solid var(--crew-color);border-radius:5px;background:radial-gradient(ellipse at 50% 90%,#b9d4c922,transparent),#18343c;color:var(--crew-color);width:68px;height:82px;overflow:hidden}.sailor-avatar>.icon{width:49px;height:49px;position:absolute;left:-8px;bottom:-7px;opacity:.13;stroke-width:1}.sailor-avatar b{font:28px var(--display);font-weight:400;position:relative}.sailor-avatar.large{width:78px;height:91px}.recruit-top h3{font:25px var(--display);font-weight:400;margin:5px 0}.recruit-top small{font-size:9px;color:var(--muted)}.recruit-top p{font-size:11px;color:var(--gold)}.recruit-skill{font-size:12px;min-height:52px;color:#c5d1c9;margin:20px 0 12px}.trait-line{display:flex;align-items:center;gap:12px;font-size:10px;padding:10px 0;border-top:1px solid var(--line);color:var(--muted)}.trait-line b{font-weight:400;border:1px solid #9fcbbb44;padding:1px 7px;color:var(--mint)}.recruit-fee{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-top:12px}.recruit-fee small{font-size:9px;color:var(--muted)}.tavern-bottom{display:grid;grid-template-columns:1.2fr 1fr;gap:20px;margin-top:22px}.tavern-bottom h3{font:22px var(--display);font-weight:400;margin-bottom:12px}.tavern-bottom .btn{margin-top:15px}.crew-main>.sailor-avatar{width:105px;height:130px}.crew-main>.sailor-avatar b{font-size:35px}.crew-main>div{min-width:0}.crew-training{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding:12px 19px;background:#102d3333}.crew-training small{color:var(--muted);font-size:10px}.crew-training .btn{font-size:10px;min-height:30px}.crew-main .progress-info{font-size:9px;margin:12px 0 5px}.crew-main .bar{height:4px}.training-progress{margin-bottom:20px}.crew-notice>strong{min-width:0;max-width:100%;overflow-wrap:anywhere}.crew-notice>.btn{flex:0 1 auto;max-width:100%;white-space:normal}.bar>span{position:relative;overflow:hidden}.bar.gold>span:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,#fff5,transparent);transform:translateX(-100%);animation:progress-shine 3s ease-in-out infinite}.paused *,.paused *:before,.paused *:after{animation-play-state:paused!important}
@keyframes boat-rock{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-3px) rotate(1deg)}}@keyframes sea-flow{to{transform:translateX(30%)}}@keyframes progress-shine{60%,100%{transform:translateX(100%)}}@keyframes lantern-glow{50%{opacity:.75;filter:drop-shadow(0 0 24px #f5bc5a88)}}@keyframes cannon-flash{0%{opacity:0}12%{opacity:1}35%,100%{opacity:0}}@keyframes battle-rock{0%,100%{transform:translateX(0)}12%{transform:translateX(-3px)}25%{transform:translateX(2px)}}@keyframes battle-pulse{10%{border-color:#e0ae77aa}60%{border-color:#ab6b5533}}@keyframes yard-work{to{background-position:80px 0}}
@media(min-width:1101px) and (max-height:850px){.sidebar{padding-top:22px}.brand{margin-bottom:23px}.nav{gap:3px}.nav button{padding-block:9px}.side-ship{padding-top:15px}.save-tools{padding-top:10px}}
@media(max-width:1250px){.world-workgrid{grid-template-columns:minmax(0,1fr) 285px;gap:16px}.market-workgrid{grid-template-columns:minmax(0,1fr) 270px;gap:16px}.commodity-heading,.commodity-row{grid-template-columns:minmax(0,1fr) 65px 110px;padding-inline:13px}.commodity-actions{gap:4px}.commodity-name{gap:7px}.commodity-name h3{font-size:11px}.goods-mark{width:24px}.commodity-market .panel-head{flex-wrap:wrap;gap:8px}.ambition.compact{gap:20px}.ambition.compact .ambition-meters{gap:13px}.shipyard-header{grid-template-columns:1fr 240px}.recruit-card{padding:18px}.recruit-top{gap:12px}.sailor-avatar.large{width:60px;height:78px}.tavern-candidates{gap:14px}.recruit-fee{flex-wrap:wrap}}
@media(max-width:1000px){.world-workgrid,.market-workgrid{grid-template-columns:minmax(0,1fr)}.world-workgrid>.right-column{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.8fr);align-items:start}.market-workgrid>.stack:last-child{display:grid;grid-template-columns:1fr 1fr;align-items:start}.ambition.compact{grid-template-columns:1fr 1.4fr}.ambition-title h2,.ambition.compact h2{font-size:22px}.shipyard-header{grid-template-columns:1fr 220px}.commodity-heading,.commodity-row{grid-template-columns:minmax(0,1.3fr) .6fr minmax(160px,1fr)}.commodity-actions{flex-wrap:nowrap}.tavern-scene{padding:28px}.tavern-candidates{grid-template-columns:repeat(3,minmax(0,1fr))}.recruit-top{flex-wrap:wrap}.recruit-fee .btn{width:100%}.tavern-scene p{font-size:11px}}
@media(max-width:760px){.sidebar{align-items:center;gap:6px;padding:8px 10px}.brand{flex-shrink:0}.nav{display:flex;min-width:0;overflow-x:auto;scrollbar-width:none;gap:2px;padding-bottom:3px;flex:1;justify-content:flex-start}.nav button{flex:0 0 auto;min-width:55px;padding:6px 6px}.nav button .nav-label{font-size:9px;white-space:nowrap}.brand-word{display:none}.ambition,.ambition.compact{grid-template-columns:1fr;padding:19px 20px;gap:17px}.ambition.compact .ambition-meters{grid-template-columns:1.4fr 1fr 1fr;gap:15px}.ambition-title p{font-size:10px}.ambition.compact b{font-size:12px}.ambition-meters>div>span{font-size:9px}.sea-tabs{gap:5px}.sea-tabs button{font-size:10px;padding:6px 9px}.world-chart .panel-head{padding:12px 14px}.map-toolbar{flex-wrap:wrap;padding:8px 10px}.map-toolbar .tabs button{font-size:10px}.map-select{max-width:160px}.world-workgrid>.right-column{display:flex;flex-direction:column}.world-workgrid>.right-column>*{width:100%}.world-workgrid .map-bottom{font-size:9px}.market-workgrid>.stack:last-child{display:flex;flex-direction:column}.market-workgrid>.stack:last-child>*{width:100%}.trade-dashboard{grid-template-columns:1fr 1fr}.trade-dashboard>div{padding:12px 15px}.trade-dashboard>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.trade-dashboard>div:nth-child(2){border-right:0}.trade-dashboard strong{font-size:23px}.trade-dashboard small{font-size:9px}.commodity-heading{display:none}.commodity-row{grid-template-columns:minmax(0,1fr) 76px;gap:8px 12px;padding:14px}.commodity-actions{grid-column:1 / -1;display:flex;justify-content:flex-end;gap:8px}.commodity-actions .btn{min-width:100px;font-size:10px;min-height:32px}.commodity-name h3{font-size:12px}.commodity-price strong{font-size:20px}.commodity-price{justify-self:end}.commodity-market .panel-head{gap:12px;flex-wrap:wrap}.quantity-control button{min-width:29px}.tavern-scene{gap:17px;padding:22px}.tavern-lantern{width:44px}.tavern-lantern .icon{width:42px;height:42px}.tavern-scene h2{font-size:25px}.tavern-scene p{font-size:11px}.tavern-scene small{font-size:9px}.tavern-candidates{grid-template-columns:1fr}.recruit-top{flex-wrap:nowrap}.sailor-avatar.large{width:65px;height:78px}.recruit-fee{flex-wrap:nowrap}.recruit-fee .btn{width:auto}.recruit-skill{min-height:0;margin-top:16px}.recruit-card{padding:20px}.tavern-bottom{grid-template-columns:1fr}.shipyard-header{grid-template-columns:1fr;padding:23px 22px 12px;gap:0}.shipyard-header>.ship-drawing{max-width:280px;margin:auto;height:150px}.shipyard-header h2{font-size:29px}.shipyard-facts{gap:15px}.shipyard-facts b{font-size:18px}.ship-tier-track{grid-template-columns:repeat(5,140px);overflow:auto}.shipyard-next{padding:20px;flex-direction:column;align-items:stretch;gap:17px}.shipyard-next .btn{width:100%}.refit-progress{padding:20px}.crew-main>.sailor-avatar{width:90px;height:115px}.crew-training{padding:11px 15px;flex-wrap:wrap}.ambition:not(.compact) .ambition-meters{gap:15px}.notice{align-items:flex-start;flex-wrap:wrap}.opportunities{padding-inline:14px}.opportunities button{gap:10px}.opportunities div span{font-size:9px}.panel-head h2{min-width:0}}
@media(max-width:370px){.ambition.compact .ambition-meters{grid-template-columns:1fr;gap:12px}.ambition.compact .ambition-meters>div>span{display:flex;align-items:center}.ambition.compact b{display:inline;margin:0;font-size:11px}.tavern-scene{padding:18px 15px;gap:12px}.tavern-scene h2{font-size:22px}.tavern-lantern{width:30px}.tavern-lantern .icon{width:30px}.quantity-control button{min-width:27px}.map-toolbar label{width:100%}.map-select{width:100%;max-width:none}.crew-main>.sailor-avatar{width:68px;height:95px}.crew-main>.sailor-avatar b{font-size:28px}.shipyard-facts{gap:13px}.sea-tabs button{font-size:9px}.commodity-actions .btn{min-width:90px}.journey-destinations{font-size:11px}.route-selects{gap:8px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.world-chart .panel-head{flex-wrap:wrap}.chart-tools{flex-wrap:wrap;gap:6px}.chart-tools .map-fit{font-size:11px;padding:4px 8px;line-height:1.3}.world-map-canvas.compact .world-port{min-width:0;width:18px;height:18px;padding:0;display:block}.world-map-canvas.compact .world-port>span{width:16px;height:16px;margin:auto}.world-map-canvas.compact .world-port .icon{width:9px;height:9px}.world-map-canvas.compact .world-port b{position:absolute;left:50%;top:100%;transform:translateX(-50%);font-size:8px;pointer-events:none}.world-map-canvas.compact .sea-name{font-size:11px;letter-spacing:1px;opacity:.55}.world-map-canvas.compact .pirate-marker{padding:1px 2px;background:transparent;pointer-events:none}.world-map-canvas.compact .pirate-marker>span{display:none}.world-map-canvas.compact .pirate-marker>.icon{width:10px;height:10px}.world-map-canvas.compact .fleet-token{width:18px;height:18px}.world-map-canvas.compact .fleet-token>.icon{width:12px;height:12px}.world-map-canvas.compact .player-token>.icon{width:18px;height:18px}.world-map-canvas.compact .chart-key{left:8px;top:7px;font-size:12px}.world-map-canvas.compact .chart-key small{display:none}.world-map-canvas.compact .world-ruin{font-size:7px;padding:1px 2px;gap:1px}.world-map-canvas.compact .world-ruin .icon{width:8px;height:8px}

.world-map-canvas.compact .world-port.label-above b{top:auto;bottom:100%}

.world-map-canvas.compact .world-port.label-inward b{top:50%;bottom:auto;left:auto;right:calc(100% + 2px);transform:translateY(-50%)}
