/* Marine enamel instruments. Hub-only: no dialog, actor, scene geometry or game state. */
body.hub-v50{--hub-face:linear-gradient(145deg,#365a88 0%,#213e69 42%,#102746 100%);--hub-rim:#a1c4df;--hub-text:#f7f6e8;--hub-muted:#b8cfe6;--hub-depth:inset 0 1px 1px #effaff70,inset 0 -3px 0 #071a3680,0 3px 0 #071c3ec9,0 7px 16px #071c3c45}
.hub-v50 .balances :is(#money,#level,.quests-button,.icon),.hub-v50 main>.profile-top .identity-button,.hub-v50 .daily-btn{background:var(--hub-face);border:1px solid #91b6d28c;border-radius:15px;box-shadow:var(--hub-depth);color:var(--hub-text)}
.hub-v50 .balances #money{color:#ffe2a3;font-variant-numeric:tabular-nums;text-shadow:0 1px 2px #071c3d}
.hub-v50 .identity-button b{color:var(--hub-text)}.hub-v50 .identity-button small,.hub-v50 .profile-name>span,.hub-v50 .daily-btn small{color:var(--hub-muted)}
.hub-v50 .profile-pic{border:2px solid #c1f3e0;box-shadow:0 0 0 2px #245078,inset 0 2px 4px #07192c44;background:linear-gradient(#e8f4da,#94d4c3)}
.hub-v50 #map .pin{background:var(--hub-face);border:1px solid #aecce2b3;border-radius:17px;box-shadow:var(--hub-depth);overflow:visible;transition:box-shadow 100ms,filter 100ms,translate 90ms;isolation:isolate}
.hub-v50 #map .pin>i{background:radial-gradient(ellipse at 50% 25%,#75bed448,#18345d22 70%);border:0;border-radius:11px;box-shadow:none;color:#fff0c8;overflow:visible}
.hub-v50 #map .pin>i svg{width:38px;height:38px;overflow:visible;filter:drop-shadow(0 2px 1px #06162f80)}
.hub-v50 #map .pin span{color:var(--hub-text);text-shadow:0 1px 2px #061b39;letter-spacing:.3px}.hub-v50 #map .pin small{color:var(--hub-muted);text-shadow:none}.hub-v50 #map .pin>b{color:#b7e6ed}
.hub-v50 .goal{background:var(--hub-face);border:1px solid #a2bdd5;border-left:3px solid #91e8db;border-radius:17px;box-shadow:var(--hub-depth)}
.hub-v50 .goal h3{color:var(--hub-text);text-shadow:0 1px 2px #091e3b}.hub-v50 .goal p{color:#c1d4e8}.hub-v50 .goal .eyebrow{color:#a8c9e0;letter-spacing:1px}.hub-v50 .goal .progress{background:#091d38;box-shadow:inset 0 2px 3px #0007;border:1px solid #607fa0;height:7px;border-radius:8px}.hub-v50 .goal .progress span{background:linear-gradient(#c8ffe7,#5ed8bf);border-radius:8px;box-shadow:inset 0 1px #f6fff1}
.hub-v50 .goal .primary{background:linear-gradient(#d7ffcf,#91e9c0 48%,#56baab);border:1px solid #e8ffdf;border-bottom-color:#8de2c9;border-radius:12px;box-shadow:inset 0 2px #f4ffe4,0 3px 0 #245d69,0 5px 10px #061a3655;color:#102e44;text-shadow:0 1px #e8ffe680;font-weight:800}
.hub-v50 .city-scene-action{background:linear-gradient(140deg,#2d5380,#153254);border:1px solid #8ab7d3;border-left:3px solid #f4d59c;border-radius:12px;color:#fff3d8;box-shadow:var(--hub-depth)}
.hub-v50 .game-modes{background:linear-gradient(#27456d,#10243f);border:1px solid #87aaca;border-radius:20px;box-shadow:inset 0 1px #c5e8ff77,0 4px 0 #071b35,0 8px 20px #061a3655}
.hub-v50 .game-modes button{background:linear-gradient(#3a5b8044,#10264444)!important;border:1px solid #789bb642;border-radius:13px;color:#c8dbf0;box-shadow:inset 0 1px #bfe9ff15}
.hub-v50 .game-modes #locations{background:linear-gradient(#c8f8e0,#72c9bd)!important;color:#102e47;border-color:#d0fff0;box-shadow:inset 0 1px #f1fff1,0 2px 0 #23516b}.hub-v50 .game-modes #locations:before{background:#16445a}
.hub-v50 :is(#map .pin,.goal .primary,.city-scene-action,.daily-btn,.game-modes button,.balances button):hover{filter:brightness(1.09);transform:none}
.hub-v50 :is(#map .pin,.goal .primary,.city-scene-action,.daily-btn,.game-modes button,.balances button):active{transform:none;translate:0 2px;filter:brightness(.96);box-shadow:inset 0 2px 4px #071a3655,0 1px 0 #071a36}
.hub-v50 :is(#map .pin,.goal .primary,.city-scene-action,.daily-btn,.game-modes button,.balances button,.identity-button):focus-visible{outline:3px solid #f8e5aa;outline-offset:3px}
.hub-v50 :is(#map .pin,.goal .primary,.city-scene-action,.daily-btn,.game-modes button,.balances button):disabled{filter:saturate(.45);opacity:.65;translate:none;cursor:not-allowed}
@media(max-width:720px){.hub-v50 main:before{background:linear-gradient(135deg,#2a4c76f5,#102946f5);border-color:#91bad4a8;box-shadow:var(--hub-depth);border-radius:18px}.hub-v50 main>.profile-top .identity-button{background:none;border:0;box-shadow:none}.hub-v50 #map .pin>i,.hub-v50 #map .pin.p-chill>i{width:32px;height:30px}.hub-v50 #map .pin>i svg,.hub-v50 #map .pin.p-chill>i svg{width:32px;height:32px}.hub-v50 #map .pin{gap:2px}.hub-v50 #map .pin span{letter-spacing:0}.hub-v50 .goal h3{font-size:15px}.hub-v50 .goal .eyebrow{color:#b5d1e8}.hub-v50 .balances .quests-button,.hub-v50 .balances .icon{border-radius:10px}.hub-v50 .daily-btn{border-radius:10px}}
@media(prefers-reduced-motion:reduce){.hub-v50 :is(#map .pin,.goal .primary,.city-scene-action,.daily-btn,.game-modes button,.balances button){animation:none!important;transition:none!important;translate:none!important}}
/* Shared coastal :is() inherits its two-ID branch specificity. Repeated existing
   ID is deliberate specificity matching, not a duplicate DOM ID or global reset. */
.hub-v50 .goal #goalAction#goalAction{background:linear-gradient(#d7ffcf,#91e9c0 48%,#56baab);border:1px solid #e8ffdf;border-bottom-color:#8de2c9;box-shadow:inset 0 2px #f4ffe4,0 3px 0 #245d69,0 5px 10px #061a3655;color:#102e44;text-shadow:0 1px #e8ffe680;transition:translate 90ms,filter 100ms,box-shadow 100ms}
.hub-v50 .goal #goalAction#goalAction:hover{background:linear-gradient(#e5ffdc,#a4f4d0 48%,#67c8b9);transform:none;filter:brightness(1.03)}
.hub-v50 .goal #goalAction#goalAction:active{transform:none;translate:0 2px;box-shadow:inset 0 2px 4px #225b6d44,0 1px 0 #245d69}
.hub-v50 .goal #goalAction#goalAction:focus-visible{outline:3px solid #f8e5aa;outline-offset:3px}
.hub-v50 .goal #goalAction#goalAction:disabled,.hub-v50 .goal #goalAction#goalAction:disabled:active{transform:none;translate:none;filter:saturate(.45);opacity:.65;cursor:not-allowed}
.hub-v50 :is(#map .pin,.city-scene-action,.daily-btn,.game-modes button,.balances button):disabled:active{transform:none;translate:none}
@media(prefers-reduced-motion:reduce){.hub-v50 .goal #goalAction#goalAction{animation:none!important;transition:none!important;translate:none!important;transform:none!important}}
